2010年11月5日 星期五

基本iptables規則

研究了一下iptables,寫了一個基本的iptables規則,並寫成script
可在開機時執行

#!/bin/bash

modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

#清空
iptables -F -t filter
iptables -t nat -F
iptables -X
iptables -t nat -X
iptables -F

#NAT setting
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.188.5 -j SNAT --to 140.137.215.188
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.188.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.238.0/24 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -d 140.137.215.188 -j DNAT --to 192.168.188.5

#Default policy setting
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#允許lo介面
iptables -A INPUT -i lo -j ACCEPT

#ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 22 -j ACCEPT

#www
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.7    #將連到80port轉給另一台主機

#smtp,pop3,icmp...
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -j ACCEPT
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to 192.168.1.6    #將連到25port轉給另一台主機

#DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT

#samba
iptables -A INPUT -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT

#rsync --一班rsync走ssh:22,故不須開通873
#iptables -A INPUT -p tcp ! -i eth0 --dport 873 -j ACCEPT
#iptables -A INPUT -p udp ! -i eth0 --dport 873 -j ACCEPT

#icmp
iptables -A INPUT -p icmp -j ACCEPT

#自訂一個鍊other
iptables -N other

#規則
iptables -A other -m state --state ESTABLISHED,RELATED -j ACCEPT  #允許建立連線與回應的封包通過

#將INPUT,OUTUT,FORWARD表格其餘未設定封包皆由other鍊規則處理
iptables -A INPUT -j other
iptables -A OUTPUT -j other
iptables -A FORWARD -j other

2 則留言:

  1. 寫的很好,但可否把iptables基本語介紹一下,不然會看不太懂 謝謝

    回覆刪除
  2. 歐~因為老師還沒教這些...
    只是個人的研究~怕還有些不懂
    詳細的部分會在上課後另外再寫一篇

    回覆刪除