SSHは現在公開鍵認証で接続制限をしている。
お陰で鍵を持っていない人はアカウントを持っていてもSSH接続できないのだ。
鍵を持っていれば世界中のどこのホストからでもSSHでアクセスできるのはいいのだが、困ったことにログにはアクセスに失敗した情報が記録されてしまう。
これがまた半端な数じゃないので、ログチェックする時に骨が折れる。
いかに世界中からの無差別SSHアクセスが多いかがわかる。
いいかげんSSHのログに知らないホストが記録されるのが目障りなので、ホスト制限をすることにした。
/etc/sysconfig/iptablesより
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
CentOSのiptablesの設定ファイルにポート22の設定箇所はこうなっている。通常はすべて許可。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -s ***.***.***.*** -j ACCEPT
"-s"オプション、つまり接続を許可したいソースホストのIPアドレスを追加すればいい。 複数のホストから接続させたい場合は同じ行をIPアドレスだけ変えて追加する。
"***.***.***.***"はIPアドレスを示す。
お陰でログがすっきりした。
ちょっとだけ応援してください♪
無差別アクセスのSSHのログ(”フィッシングに悪用されるWEBサーバー”より)
iptablesの設定(”サーバーのセキュリティ”より)