Iptables examples
- 格式:doc
- 大小:90.00 KB
- 文档页数:11
Iptables exampleso iptables基本操作▪查看iptables设置▪清除原有规则▪使修改的规则永久生效▪查看iptables 状态o iptables 规则实例▪设置默认规则▪允许ssh规则▪允许http/https规则▪把多条规则整合成一条▪允许ping本地主机▪允许loopback 访问▪允许dns访问▪防止DOS攻击(webserver)▪端口转发▪记录丢掉的包▪drop 非法连接▪更多例子Iptables examplesiptables基本操作查看iptables设置1. 查看filter表内规则iptables -L -niptables -t filter -L -n2. 查看ant表内规则iptables -t nat -L -n3. 查看匹配条目统计iptables -L -vChain INPUT (policy DROP 0 packets, 0 bytes)pkts bytes target prot opt in out source destination1623 106K ACCEPT tcp -- eth0 any anywhere anywhere tcp dpt:ssh state NEW,ESTABLISHED8 480 ACCEPT icmp -- any any anywhere anywhere icmp echo-request 32 1856 LOGGING all -- any any anywhere anywhereChain FORWARD (policy DROP 0 packets, 0 bytes)pkts bytes target prot opt in out source destinationChain OUTPUT (policy DROP 11 packets, 3608 bytes)pkts bytes target prot opt in out source destination1228 1002K ACCEPT tcp -- any eth0 anywhere anywhere tcp spt:ssh state ESTABLISHED 4 240 ACCEPT icmp -- any any anywhere anywhere icmp echo-replyChain LOGGING (1 references)pkts bytes target prot opt in out source destination18 936 LOG all -- any any anywhere anywhere limit: avg 2/min burst 5 LOG leveldebug prefix `IPTables Packet Dropped: '32 1856 DROP all -- any any anywhere anywhere4. 例子[root@bogon ~]# iptables -t filter -L -nChain INPUT (policy ACCEPT)target prot opt source destinationACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0ACCEPT all -- 0.0.0.0/0 0.0.0.0/0ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT)target prot opt source destinationREJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT)target prot opt source destination清除原有规则iptables -t filter -F 清除预设表filter中的所有规则链的规则iptables -X 清除预设表filter中使用者自定链中的规则iptables -t nat -F 清除预设表filter中使用者自定链中的规则注意:在没有保存这前,这些命令会生效,但系统重启后会失效,(也就是回到以前的配置)。
使修改的规则永久生效service iptables save 或者 /etc/rc.d/init.d/iptables saveservice iptables restart规则内容最终会写在/etc/sysconfig/iptables 文件查看iptables 状态service iptables statusiptables 规则实例设置默认规则iptables的默认规则是允许,我们改变input,forward,output链到drop.这样我们只需要根据服务器提供的服务添加适合的规则,所有不符合规则的数据包将会丢弃。
iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT DROP允许ssh规则1. 这条规则允许所有进入的SSH连接,在eth0接口iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT2. 只允许192.168.1.0/24网络的用户访问SSHiptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT192.168.1.0/24 也可以写成192.168.1.0、255.255.255.03. 当你需要从本地连接到一个外部ssh server时可以用下列规则。
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT4. 只允许192.168.1.100到访问外部ssh serveriptables -A OUTPUT -o eth0 -p tcp -d 192.168.1.100 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT允许http/https规则iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT把多条规则整合成一条当你想要对外提供多项服务的时候,你可以使用multiport将独立的规则整合在一起。
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT允许ping本地主机iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPTiptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT允许loopback 访问iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT允许dns访问iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPTiptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT防止DOS攻击(webserver)iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT-m limit: 使用limit扩展选项--limit 25/minute: 限制每分钟25个连接,可以根据具体需求改变这个值--limit-bursh 100: 当连接数目达到limit-burst指定的值后,会强制limit/minute 指定的值生效端口转发所有到本机422端口的包转发到192.168.102.37的22端口iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22iptables -A INPUT -i eth0 -p tcp --dport 422 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 422 -m state --state ESTABLISHED -j ACCEPT记录丢掉的包1. 创建一个新的链iptables -N LOGGING2. 使所有进入的连接关联到LOGGING链iptables -A INPUT -j LOGGINGiptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7iptables -A LOGGING -j DROPdrop 非法连接iptables -A INPUT -m state --state INVALID -j DROPiptables -A OUTPUT -m state --state INVALID -j DROPiptables -A FORWARD -m state --state INVALID -j DROP更多例子1. mysql例子iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT2. sendmail or postfixNeo ---- 2014-07 ----iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT3. imapiptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT4. rsynciptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT5. pop3/pop3siptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT。