日記25年の記事で、Evernote依存から長期的にレンタルサーバ上で管理したいという話を書いた。
夏休みの課題としていろいろと調べたところ、さくらレンタルサーバのスタンダードプランだと、確かにSSH接続はできるようになるけれど、権限の関係で自由にできない部分も多いことがわかってきた。それで月500円くらいなので、だったらもう500円プラスして、VPS(Virtual Private Server;仮想専用サーバ)を借りてみるのはどうだろう。
サーバの構築や管理なんてもちろん経験がないけれど、誰だって初めてはあるわけだし、Linuxのシェルは3台のラズパイの管理で、ググりながらではあるものの、多少は触っているので。
ということで、お試し期間の2週間使ってみて、難しすぎてどうにもならなければ、やっぱりレンタルサーバにすることにして、VPSを契約。プランは1G(CPU仮想2Core, メモリ1GB, SSD50GB)で年間1万円ほど。
さくらインターネット自体はアカウントがあるので、VPSはオンラインで手続きしてすぐに利用可能になった。最初はOSも何も入っていないので、セットアップから。もしサーバのハードを買ってセットアップするとなったら大変だけど、VPSならコントロールパネルで用意されているOSの中から好きなものを選んでクリックすれば、SSHで接続できるところまで自動でセットアップしてくれる。これは便利だし、もしおかしくなってしまったら、再インストールも簡単。
最初はラズパイのOSと系統が近いと思われるUbuntuを入れてみたけれど、公式の入門はCentOS7で、Ubuntuで使う時の情報が意外と検索してもヒットしないので、早速再インストールでCentOS7を入れ直した。データや設定は消えてしまうけれど、自前でハードを初期化するより全然手軽で助かる。
SSHでログインしてまず驚くのが、ブルートフォースアタックという不正アクセスの試みの多さ。CentOSはrootログイン時に、前回の正常ログイン時間と今回までの間に何件の不正ログインの試行があったかを教えてくれるんだけど、1分に1回以上、数時間放っておくと何百件ものログイン試行が記録されている。ログを見るとrootを始め、userとかadminとかのIDで何度も何度もログインを試しているIPがたくさん。
いろいろ調べて、以下を設定。
- rootの直接ログインを禁止
- 国内IPのみ許可
- ssh接続のポートを変更
rootログインの禁止は、実効性は高いと思うけど、結局ID:rootでログイン試行(して失敗する)のログは記録されてしまう。外国のIPを弾く設定は、うまく設定ができていないのか、ほとんど効果がなかった(注)。最終的にはsshの標準ポート(22)を塞いで、わかりにくいポートに変更するのが一番効果があった。それでもポートスキャンなどで(?)アタックしてくるIPは個別に拒否するようにする。さくらVPSのパケットフィルタリングも同様に22番を塞ぐようにする。
(注)これはiptablesで設定していて、その後firewalldを改めて設定したのでiptablesが無効になった模様。
最低ここまでやってようやく落ち着いていじれるようになった感じ。
やっぱりiPadのターミナルアプリ(Termius)でどこからでも直接アクセスできるのは最初は感動する。今まではTeamViewerとかChromeリモートデスクトップで(PCを踏み台にして)自宅のラズパイにアクセスしていたけれど、TeamViewerは商利用チェック(誤認識)が入って切断されたり、ChromeデスクトップはiPadからだとCtrlキーとカーソルキーが使えないという致命的バグがある。
一応ドメインも取って、常時SSLの設定も済ませたので、Wordpressとかでブログを作ったりもできるんだけど、そこまでするかどうかはまだ悩んでいる。一応レンタルサーバでサイトを公開していることもあるし、VPSの方はいろいろいじり回す想定なので。安定稼働はレンタルサーバに任せて、個人の日記プロジェクトとか、日替わり通信術練習の裏方スクリプトなんかを動かすようにしようかな。いずれにしろやろうと思うことはなんでもできる環境にはなったので、これから色々勉強していきたい。
その後もググりながら使いそうな環境を構築。ある程度は公式の入門記事がある。
- Apacheインストール、設定
- phpの設定、pythonの各種ライブラリインストール(日替わり通信術関係)
- ドメイン取得(ムームードメイン)
- 常時SSL化
- メールサーバ設定(postfix)
- CGI許可設定(httpd.conf)
入門記事やググって設定できるとは言え、手順が多いのでできればイメージバックアップを取っておきたいところ。たださくらVPSはバックアップのサービスがないので、自分で考える必要があるらしい。これは後日かな。