読者です 読者をやめる 読者になる 読者になる

yuri memo

コーディングとかのメモ帳

はじめてのさくらVPS。はじめてのサーバー構築で大変だったところ。

VPS サーバー

以前から気になっていたVPSに先日手を出しました。
メモリ 1GB・SSD 30GBで月972円ですよ〜〜〜。

その時の初期設定メモです。
基本はさくらの公式設定ガイド通り。
さくらの初期設定ガイドそこそこ分かりやすくてよかっです。
【さくらのVPS】サーバの初期設定ガイド – さくらのサポート情報

ちなみに、サーバーの知識はほぼないです。
レンタルサーバーでたまにDNS切り替えとかドメイン移管とかそんなくらいで。
コマンドがしがし叩いてサーバー立てるなんてほんとにもう・・・。

〈ちょっと迷ったところ〉 SSH接続の設定変更方法

さくらの公式設定ガイドには以下のようにありますが。

TeraTermを利用して、ログイン方法をパスワード認証から公開鍵認証へ変更する方法です。 

えー、めんどくさい。。。と思い別な方法で。(やったことないくせに)
以下の記事を参考にしました。
Linuxコマンド【 ssh-keygen 】認証用の鍵を生成 - Linux入門 - Webkaru

rootでログインして、

# ssh-keygen

するといろいろ聞かれます。

Enter file in which to save the key (/home/user/.ssh/id_rsa): ← キーの保存先です。Enterぽち
Created directory '/home/user/.ssh'. ← ~/.ssh がない場合ディレクトリを作成
Enter passphrase (empty for no passphrase): ← パスフレーズを入力
Enter same passphrase again: ← もう一度入力
Your identification has been saved in /home/user/.ssh/id_rsa. ← ここにつくったよ
Your public key has been saved in /home/user/.ssh/id_rsa.pub. ←公開鍵これだよ

カギを無事につくれたら、ssh接続をするユーザでサーバへログイン。
公開鍵をサーバに登録します。
ここは以下の記事を参考にしました。
さくらのVPS初期設定 - Qiita

$ mkdir .ssh
$ chmod 700 .ssh
$ vi .ssh/authorized_keys

これそのままコマンドに打ってくです。
で、作った公開鍵(.ssh/id_rsa.pub)の内容をコピペして保存し、
以下のコマンドでパーミッションの変更。

$ chmod 600 .ssh/authorized_keys

これでSSHログインできるようになります。
直後にさっそくログインしようと思ったら、なぜかタイムアウトしてしまう現象にハマって・・
よくみたら起動していたはずのサーバーが停止してました。てへ。起動したらログインできた。

〈詰んだところ〉ポート番号変えたらログインできなくなった

さくらの公式設定ガイドや他の方の記事にもあるように以下の設定をします。

  • 攻撃を回避するために、SSH接続のポートを22番から変更する
  • rootユーザでのログインを無効にする
  • パスワード認証を無効にする
$ su -
Password: ← rootのパスワードでログイン
# vi /etc/ssh/sshd_config
#Port22 
→Port65228
49152番〜65535番の間で

#PermitRootLogin yes 
→PermitRootLogin no
rootユーザでのログインを無効

PasswordAuthentication yes 
→PasswordAuthentication no
パスワード認証を無効

設定変更したら、設定ファイルの変更読み込みして終了でし。

# service sshd restart

いざログイン。

# ssh admin@xxx-222-12345.vs.sakura.ne.jp -p 65228 -i ./.ssh/id_rsa

※admin@xxx-222-12345.vs.sakura.ne.jpのところはVPSのコンパネに書いてあったよ!

で、ログインできない。何回やってもできない・・・。
ポートを22に戻すとログインできる。いみわかんない(´;ω;`)

調べた結果、
☑️ 変更後のポートをリッスンしているか確認
→ リッスンしていれば正常にポート番号の変更がされてるのでファイアウォールが原因かも
☑️ ファイアウォールの停止をしてログインできるか確認
→ ログインできたらファイアウォールの影響なので指定したポートを解放する
とのことで、まさにファイアウォールが原因でした。

●リッスンしているポートの確認

# netstat -tanp | grep LISTEN

ファイアウォールの停止方法

# /etc/rc.d/init.d/iptables stop 
iptables: Setting chains to policy ACCEPT: filter [  OK  ]
iptables: Flushing firewall rules: [  OK  ]
iptables: Unloading modules: [  OK  ]

ポートを解放するためにiptablesを編集します。
サーバの利用用途に合わせて許可するポート番号を設定する

# iptables -A INPUT -p tcp -m tcp --dport 65228 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

※ 80 HTTP / 443 HTTPS

iptablesを再起動して変更を適用します。

$ service iptables restart

これで無事SSHログインできました。

順番が逆になっちゃったけど最後にOSのアップデートで終了。

# yum update

途中で[y/n]が表示されたら「y」を選択。
Complete!が表示されればOK。

ポート番号変更してログインできなくなった時は心折れそうでしたが
無事にサーバー立てられてよかったです。
せっかくサーバー契約したので真面目に使っていく所存♡