======iptables====== =====iptables用ログファイルの作成===== まず、iptablesのログを格納するフォルダとファイルを作成 $ sudo mkdir /var/log/iptables $ sudo chmod 600 /var/log/iptables $ sudo touch /var/log/iptables/iptables.log syslogがこのフォルダに掃き出すように設定 $ sudo vi /etc/syslog.conf kern.warning /var/log/iptables/iptables.log #追加 syslogの再起動 $ sudo /etc/init.d/syslog restart ローテションに追加。 $ sudo vi /etc/logrotate.d/syslog /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/iptables/iptables.log{ rotate 12 sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true endscript } =====iptablesスクリプトファイル作成===== とりあえずここで開けてるのはsshのポートだけ ====CentOS5==== iptable.sh #!/bin/bash #iptables IPT=/sbin/iptables # インタフェース定義 GLOBAL_DEV=eth0 LOCAL_DEV=eth0:0 # LOCAL_ADDR=192.168.1.0/24 /etc/init.d/iptables stop #初期化 $IPT -F $IPT -X $IPT -P INPUT DROP $IPT -P OUTPUT ACCEPT $IPT -P FORWARD DROP # 自ホストからのアクセスをすべて許可 $IPT -A INPUT -i lo -j ACCEPT # 内部からのアクセスをすべて許可 $IPT -A INPUT -s $LOCAL_ADDR -j ACCEPT # 内部アクセスからの応答を許可 $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # フラグメント化されたパケットはログを記録して破棄 $IPT -A INPUT -f -j LOG --log-level warning --log-prefix '[FRAGMENT] : ' $IPT -A INPUT -f -j DROP # 1分間に10回を超えるpingはログを記録して破棄 $IPT -N PINGOFDEATH $IPT -A LOG_PINGDEATH -m limit --limit 1/m --limit-burst 10 -j ACCEPT $IPT -A PINGOFDEATH -j LOG --log-level warning --log-prefix '[PING OF DEATH] : ' $IPT -A PINGOFDEATH -j DROP $IPT -A INPUT -p icmp --icmp-type echo-request -j LOG_PINGOFDEATH # 外部からのTCP1122番ポート(SSH)へのアクセス(ポートを1122に変更しています) # 送信元アドレスごとに最大一分間に1アクセスまで。送信元アドレスの情報を一時間保存 # 破棄したものはログに記録 $IPT -N SSHD $IPT -A SSHD -m hashlimit --hashlimit-name sshd_hosts --hashlimit 1/minute --hashlimit-burst 1 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT $IPT -A SSHD -j LOG --log-level warning --log-prefix '[ SSH ] : ' $IPT -A SSHD -j DROP $IPT -A INPUT -p tcp -m state --syn --state NEW --dport 1122 -j SSHD $IPT -A INPUT -j DROP $IPT -A FORWARD -j DROP /etc/init.d/iptables save /etc/init.d/iptables start hashlimitのipは/proc/net/ipt_hashlimit/の下にできる。