« Ubuntuのcompiz-fusionデモ動画&インストール | メイン | WordPressのXML Sitemap Generatorをバージョンアップしたのだが »

sshへの総当り攻撃をiptablesの2行で防ぐ方法

iptablesのオプションは間違うとひどいことになりますが、うまく動くと素晴らしい。わずか2行でsshへの総当り攻撃を防ぐことが出来る方法。知っている方には何をいまさらですが、不勉強な私は知りませんでした。ネタは以下のリンクです。

自宅サーバを立ち上げている方やサーバ管理をされている方は一度や二度はsshへの総当り攻撃を見たことがあると思います。私のところではログインする元がほぼ決まっているので/etc/hosts.allowにSSHで接続を許可するホスト/ネットワークを指定しており、これでほとんど問題ありません。

それでも一日100回以上アタックの形跡が残っています。もしポートが開いていると辞書攻撃などをガンガンかけてきてくれてうっとうしいことこの上ありません。そこで以下のようなiptablesの設定で繰り返しアクセスのあるサイトを締め出すことが出来ます。 

Ubuntu/Debian系

# iptables -A INPUT -ieth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
# iptables -A INPUT -ieth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP

iptablesに上のルールを追加することで過去60秒間に8回以上SSHポートに接続を試みたIPアドレスを拒否する設定になります。詳しくは上のリンクにUbuntuでの解説があります。

Redhat/Fedora/CentOS系

Redhat系(Fedora/CentOS含む)では/etc/sysconfig/iptablesのsshの設定の前あたりに以下の2行を追加して"/etc/init.d/iptables restart"すればいいと思います。

/etc/sysconfig/iptables: 

-A RH-Firewall-1-INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
-A RH-Firewall-1-INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP

hosts.allow/denyでの拒否 

もう少しお手軽で、セットでやると効果的な/etc/hosts.allow/denyの例。これだけでもずいぶんと違います。iptablesで同じことを設定してもいいのですが、ドメインでの指定も出来るので便利です。考えたらこちらも2行ですね。自分の許可した範囲からのアタックは防げませんが、海外からのものは十分防いでくれます。

/etc/hosts.allow: 

sshd: 192.168.  MY.IP.  HOGEHOGE.JP ...

 

/etc/hosts.deny:

sshd: ALL

ドキュメントなど

ネットフィルターにあるrecentフィルタの説明。  

浦島気分で軽く読んでみるといろいろモジュールが増えてますね。このrecentの持っているテーブルをうまく操作できたら、メールのスパム送信元やトラックバックスパマーの連続送信を蹴ることも出来そうなんですが。 後はlimitフィルタで激しいCrawlを拒否とか。

他の方法

元記事のコメントを見ると、下のDenyHostsというスクリプトがいいよとかあります。これはsshのログからアタックしてきた情報を集めて/etc/hosts.denyを使ってアクセス拒否するようです。同期モードでは中央のサーバと拒否リストを共有したりも出来るようです。少し大掛かりそうなので試していませんが。

他にも元記事コメントにはsshのポートを変えると0dayアタックにも耐えれるよとか(まあ当たり前か)いろいろサジェスチョンがあります。一読されればいいかもしれません。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/398


この一覧は、次のエントリーを参照しています: sshへの総当り攻撃をiptablesの2行で防ぐ方法:

» iptablesでお手軽なssh総当りログイン試行攻撃対策 送信元 SawanoBlog.
有用だと思ったのでメモ、元ネタチェインつきで。   元ネタ sshへの辞書攻撃をiptablesで防ぐ (曖昧スラッシュ) ↑ の元ネタ ssh... [詳しくはこちら]

» sshに辞書攻撃されまくりの巻 送信元 生産性がダンチなんだよ
外向きのネットに置いてあるvineに大量の攻撃を食らう。 突破されているわけではないだけれど、/var/log/secureが無駄に膨らんで行くので、i... [詳しくはこちら]

コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2007年07月31日 11:05に投稿されたエントリーのページです。

ひとつ前の投稿は「Ubuntuのcompiz-fusionデモ動画&インストール」です。

次の投稿は「WordPressのXML Sitemap Generatorをバージョンアップしたのだが」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー