2010/08/05 13:58
iptablesの設定は再起動で消えてしまう為、設定用シェルスクリプトを作成してシステム起動時に実行する。ただし、今回はサーバ運用を想定しての設定。
# /sbin/chkconfig --level 2345 iptables on
# vi /root/iptables.sh
#!/bin/bash # 設定をクリア iptables -F # 受信を全て破棄 iptables -P INPUT DROP # 送信を全て許可 iptables -P OUTPUT ACCEPT # 通過を全て破棄 iptables -P FORWARD DROP # ICMPを許可 iptables -A INPUT -p icmp -j ACCEPT # ローカルホストからの通信を許可 iptables -A INPUT -i lo -j ACCEPT # ローカルエリアからの通信を許可 iptables -A INPUT -s (ローカルエリアのアドレス) -j ACCEPT # 自分が出したリクエストに対して戻ってきた通信は許可 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # ブロードキャストアドレス,マルチキャストアドレス宛のパケットを破棄 iptables -A INPUT -d 255.255.255.255 -j DROP iptables -A INPUT -d 224.0.0.1 -j DROP # SSHの許可 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # ローカルエリアからのNetBIOS(Samba)の許可 iptables -A INPUT -d (ローカルエリアのアドレス) -p tcp --dport 139 -j ACCEPT iptables -A INPUT -d (ローカルエリアのアドレス) -p udp --dport 137 -j ACCEPT iptables -A INPUT -d (ローカルエリアのアドレス) -p udp --dport 138 -j ACCEPT # HTTPの許可 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTPSの許可 iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 上記のルールにマッチしなかったパケットをログに記録して破棄 iptables -A INPUT -m limit --limit 1/s -j LOG --log-prefix "[IPTABLES INPUT] : " iptables -A INPUT -j DROP iptables -A FORWARD -m limit --limit 1/s -j LOG --log-prefix "[IPTABLES FORWARD] : " iptables -A FORWARD -j DROP # 設定の保存 service iptables save # iptablesの再起動 service iptables restart
# chmod 700 /root/iptables.sh
# vi /etc/rc.d/rc.local
#起動時に iptables を設定 sh /root/iptables.sh
関連記事