[最終更新:2007/01/08]
SSH へ外部から接続する必要があるが、それでも不正進入を試みる輩からサーバーを守りたい。そんな一見矛盾する要求を、24時間以内のログに、1分間に5回以上の進入を試みた輩の IP アドレスがあったらそのアドレスからの接続をブロックしてしまうように設定。
login as: 一般ユーザー名もし、直接設定ファイルを変更する場合は、青線で囲った部分の記述を追加する。
# vi /etc/sysconfig/iptables|
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p ipv6-crypt -j ACCEPT -A RH-Firewall-1-INPUT -p ipv6-auth -j ACCEPT -A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
| |
設定を確認(青枠内の記述が追加されていることを確認する。)
# /sbin/iptables -L| ssh tcp -- anywhere anywhere tcp dpt:ssh |
| Chain ssh (1 references) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp flags:!SYN,RST,ACK/SYN state RELATED,ESTABLISHED REJECT tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN recent: UPDATE seconds: 86400 name: ssh_block side: source reject-with icmp-port-unreachable ssh_blute tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN recent: CHECK seconds: 60 hit_count: 5 name: ssh_conn side: source tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN recent: SET name: ssh_conn side: source ACCEPT tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN Chain ssh_blute (1 references) target prot opt source destination LOG all -- anywhere anywhere recent: SET name: ssh_block side: source LOG level debug prefix `ssh_block:' REJECT all -- anywhere anywhere reject-with icmp-port-unreachable |