Contributed by: akira on 2014年10月15日(水) 13:57 JST
Last modified on
前にやっていた、iptablesの設定が、巧く機能しなくなってた?
追記
sshguardのパッケージをインストールしてみる。
これだと、IPaddressを限定しない。
/sbin/iptables -A INPUT -p tcp --syn -m state --state NEW --dport 22 -m limit --limit 1/m --limit-burst 1 -j ACCEPT
こちらは、IPaddressを記憶する。
/sbin/iptables -A INPUT -p tcp -m state --syn --state NEW --dport 22 -m hashlimit --hashlimit-name t_sshd --hashlimit 3/m --hashlimit-burst 3 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --syn -m state --state NEW --dport 22 -j DROP
【オプション内容】
-m hashlimit :hashlimitモジュールの利用
--hashlimit-name t_sshd :ハッシュテーブル名の指定
--hashlimit 1/m :1分間に1回
--hashlimit-burst 1 :最大1回
--hashlimit-mode srcip :送信元アドレスでリクエスト数を管理する
--hashlimit-htable-expire 120000 :管理テーブル中のレコードの有効期間(単位:ms)
http://qiita.com/suin/items/5c4e21fa284497782f71[*1]
###########################################################
# 攻撃対策: SSH Brute Force
# SSHはパスワード認証を利用しているサーバの場合、パスワード総当り攻撃に備える。
# 1分間に5回しか接続トライをできないようにする。
# SSHクライアント側が再接続を繰り返すのを防ぐためDROPではなくREJECTにする。
# SSHサーバがパスワード認証ONの場合、以下をアンコメントアウトする
###########################################################
# iptables -A INPUT -p tcp --syn -m multiport --dports $SSH -m recent --name ssh_attack --set
# iptables -A INPUT -p tcp --syn -m multiport --dports $SSH -m recent --name ssh_attack --rcheck --seconds 60 --hitcount 5 -j LOG --log-prefix "ssh_brute_force: "
# iptables -A INPUT -p tcp --syn -m multiport --dports $SSH -m recent --name ssh_attack --rcheck --seconds 60 --hitcount 5 -j REJECT --reject-with tcp-reset
http://techracho.bpsinc.jp/yamasita-t...05_01/8351[*2]
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m hashlimit \
--hashlimit-name ssh_limit --hashlimit 1/m --hashlimit-burst 5 \
--hashlimit-mode srcip --hashlimit-htable-expire 360000 -j ACCEPT
これが一番妥当かも