日本国内からSSH
7 月 5, 2008 3:29 pm FreeBSD最近、海外からのSSHアタックが酷くなってきているように感じます。基本的にSSHアタックされても「maxlogins」で対策を行ってますが、それでも、とっても、 ウザイ!! です。
なので日本国内からしかSSHアクセスできないように対策してみました。(本当はポート番号を変えたりパスワード認証を完全に禁止するとかすれば問題はなくなると思いますが、そうもいかないのが。。。。以下略)
まずFreeBSDのSSHはTCP Wrapperを用いてアクセス制限を行うことが可能です。よって「/etc/hosts.allow」ファイルに接続許可を行いたいIPアドレスを記載(日本国内からのアクセスに限定)して、それ以外は接続を拒否!!します。
まず、hosts.allowファイルの先頭付近(ALL : ALL : allowより前に記載)に接続したいIPを記載します。
sshd : 127.0.0.1 : allow ← ローカルホストからは接続を常に許可
sshd : 192.168.0.0/255.255.255.0 : allow ← プライベートIPからは接続を常に許可
sshd : /var/log/maxlogins : deny ← maxloginsでブロックするIPは拒否する
~ ここに国内のIPアドレスを記載する。 ~
sshd : ALL : deny ← 上記以外のIPからの接続は常に拒否
上記の通り設定を行います。ちなにみmaxloginsを国内IPアドレスを上に持ってくることで例え国内からのアクセスでもSSHアタックを行った場合には接続をブロックできるからです。(TCP Wrapperは上からルールセットを検証して、マッチすればそれ以降のルールセットはチェックしないので、優先したいルールセットを上に持ってくるようにします。)設定が完了したら
/etc/rc.d/sshd restart
で念のためSSHを再起動しましょう。以上で国内に払い出されているIPアドレス以外からの接続は出来なくなります。今回の方法以外にはmaxloginsを利用する、ログインできるユーザーを固定するという方法があります。それらの方法はまた今度。
SSHで利用している日本国内IPアドレスを記載したテキストファイル
Linuxなどでも同様に設定できると思います。。。。。。未チェックですが(笑)
