sshのちょっとしたセキュリティ対策

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認証ログが減少すれば良いですね。