vps(CentOS7)を運用していると、sshに対して
恐ろしいほどroot認証ログが見受けられます。
それこそ、毎日数千以上のログがあり
とても気持ち悪い。
それにrootを取られると、もうそのサーバーは諦めるしかないですよね。
そこで、sshの設定に工夫をして
少しでも気持ち悪いログを減らそうとやってみました。
設定を変える項目は2つです
1.ssh接続時のrootログインを禁止
2.sshのポート番号を変える
1.ssh接続時のrootログインを禁止
ここを編集します。
# vi /etc/ssh/sshd_config
PermitRootLogin yes
この部分を
PermitRootLogin no に変えます。
sshdを再起動して
# systemctl restart sshd
# systemctl status sshd
おっと!他に一般ユーザーがいないと
誰もssh接続が出来なくなってしまいますから、
ユーザーを作りましょう
ただ、このユーザー名も「database」や「office」や「support」など
よく使われそうな名前が、それこそaからzまで
総当たりで認証がやって来ますから、
ユーザー名も工夫が必要です。
また、そのパスワードも安易に解読できそうなのは
止めるべきですね。
そんな事を注意しながら一般ユーザーを登録しましょう。
# useradd ユーザー名
パスワードも設定して
# passwd ユーザー名
念のためユーザー名にログインできるか確認してみましょう
# su ユーザー名
ログインできたらオッケーです。
exitでsshから抜けまして、rootでログインできるか
確認してみましょう。
出来なければオッケーです。
一般ユーザーでログインして、その後にrootになれば良いですね。
これでちょっとだけセキュリティが向上しました。
2.sshのポート番号を変える
アタックを試みるbotなどのプログラムは
nmapを使って、sshデフォルトポート22番が開いてるかを見にいくようです。
だったら、22番を閉じちゃえばbotから無視される。
で、自分専用のsshポートを開けてあげれば
また少しセキュリティが向上しますよね
では、やってみましょう
設定ファイル
# vi /etc/ssh/sshd_config
#Port 22
の部分を
Port 12345 のように変えまして
sshd再起動です
# systemctl restart sshd
# systemctl status sshd
もう1つ忘れないで欲しいのが
firewalldの編集です。
自分用にカスタマイズしたい場合は、
/usr/lib/firewalld/にあるファイルを /etc/firewalld/にコピーしてから編集します。
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml
編集します
# vi /etc/firewalld/services/ssh.xml
この行を削除⇒ port protocol=”tcp” port=”22″/
この行を追加⇒ port protocol=”tcp” port=”12345″/
そしてfirewall再起動
# firewall-cmd –reload
確認
# iptables -L -n | grep 22
# iptables -L -n | grep 12345
これで、sshポートが12345みたいな任意のポート番号になりました。
気持ち悪いroot認証ログが減少すれば良いですね。