SSH
さくらVPS
centos7

さくらvpsのセキュリティ設定でやったこと(CentOS7)

はじめに

さくらvpsを借りてみました。登録手続きが想像以上に簡単で、15分くらいでsshログイン確認までできてしまい驚きです。
グローバルIPが払い出された訳ですが、このままではどこからでもroot直ログできる危険な状態です。。。。
とりあえずインストール直後に最低限設定したことをまとめていこうと思います。

この設定もしたほうがイイよ! というものがあれば是非ご教授頂けると助かります。

一般ユーザを作る

初期状態はrootユーザしかないため、まずは一般ユーザを作成します。今後はrootユーザに直接ログインすることは禁止し、一般ユーザでログインしてスイッチするようにします。

useradd ユーザー名
passwd ユーザー名
usermod -G wheel ユーザー名

ssh設定

パスワードログインを禁止し、公開鍵認証のみ許可する設定を行う。

vi /etc/ssh/sshd_config
# sshd_configを次のように編集する

PermitRootLogin no # root直ログを禁止する
PermitEmptyPasswords no # 空パスワードの禁止
PasswordAuthentication no # パスワードログインの禁止

# 最後にsshdの再起動
service sshd restart

次にssh-keygenで秘密鍵、公開鍵のペアを作ります。クライアント側(自分のPC側)とサーバ側(さくらvps側)どちらで作成しても構いませんが、クライアント側に秘密鍵、サーバ側に公開鍵を配布します。
NW経由で秘密鍵を受け渡しはしたくないので、今回は自分のPC上でssh-keygenをして、サーバ側に公開鍵を配布するようにしました。

ssh-keygen -t rsa
Enter file in which to save the key (/home/user/.ssh/id_rsa): # 鍵の作成場所
Enter passphrase (empty for no passphrase): # パスワードの付与(そのままエンターしてパスワードをかけないこともできる)

~/.ssh/配下にid_rsaとid_rsa.pubのファイルができていることを確認。
このうち、id_rsa.pubをサーバに配布し、ssh_authorized_keysに追記すればOK。

echo id_rsa.pub~/ >> ~/.ssh/authorized_keys

ここで注意!!!

パーミッションは必ず下記のように設定します。過不足あるとうまく認証できません。私はどハマりしました、、、

chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys

ssh認証時に
Permission denied (publickey).
といったエラーメッセージが表示され、/var/log/secureに下記のようなエラーが出ている場合は要チェック!

Authentication refused: bad ownership or modes for file /home/ogyu/.ssh/authorized_keys

鍵交換ができたら、sshで接続してみます。
ssh user@xx.xx.xx.xx -i ~/.ssh/id_ira
※tips: -iつけなくてもデフォルトで~/.ssh/id_iraを参照する模様

問題なければsshのconfigファイルに設定を記述して、以降のログインを簡略化しちゃいましょう!

~/.ssh/config
Host vps
    HostName xx.xx.xx.xx
    Port 22
    User myuser
    IdentityFile ~/.ssh/id_rsa

これで次からssh vpsで接続できます。

firewalldの設定

基本的にはアプリケーションの使用ポートに従って随時ポートの穴あけすれば良いと思いますが、とりあえずhttpポートくらい開けておきました。
firewalldの設定は別記事にまとめていますのでご覧ください。
【CentOS7】firewalldによるパケットフィルタリング設定

他に必要だと思った設定があれば随時更新していこうと思います。