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

クラウドにサーバを立てた時の ssh, ufw の設定[Ubuntu]

メモ Linux

環境: ubuntu 16.04

AWSVPS サービスでクラウドサーバを立てた時に安全に使うための一連の流れ。

まずは root でリモートにログイン。
パスワードか公開鍵かはサービスによる。

ssh root@example.com

普段使うユーザを作成する。基本的にこれ以降 root は使わない。
ユーザ名をローカルとそろえておくと一々名前を指定しなくてもよくなる。
パスワード以外は空でも良い。

adduser username

作成したユーザに sudo 権限を付与

gpasswd -a username sudo

一度ログアウトし、作成したユーザでログイン

logout
ssh example.com

ログインできることと、 sudo 権限を確認。

sudo aptitude update
sudo aptitude upgrade

ユーザのホームディレクトリに ssh 用のフォルダを作成。

mkdir .ssh

.ssh/authorized_keys
にローカルの cat .ssh/id_rsa.pub の内容をコピペ。
ログアウトし、パスワード無しでログイン出来ることを確認。
ssh の設定ファイルを書き換える。

# /etc/ssh/sshd_conf
PasswordAuthentication no
# パスワード認証を禁止
UsePAM no
# PAM の使用を禁止
PermitRootLogin no
# root へのログインを禁止

ssh やその他アップグレードの設定を反映させるため再起動する。

sudo reboot

一応 root ではじかれるかチェック

ssh root@example.com
# -> Permission denied (publickey).

ssh 設定はここまで。
ポートは基本的に ssh だけ開けておき、それ以外は使う都度に開けておくのがよい。

sudo ufw enable
# アクティブ化
sudo ufw default DENY
# デフォルトは拒否
sudo ufw allow 22
# ssh を許可
sudo ufw status
# 設定を確認
sudo ufw reload
# 設定を反映

一応ローカルからおかしなポートがあいていないか確認。

nmap -Pn example.com

参考