1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| # 列出规则,供查看 iptables -L -n # stop iptables, 如果清空规则前没有停止,ssh 会断掉,必须重启系统 /etc/init.d/iptables stop # 清空规则 iptables -F # 允许内网ip访问所有端口 iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT # 允许本地回环接口(即运行本机访问本机) iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT # 允许访问22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许访问80端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许所有ip访问80端口 iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT # 允许本地发起的连接返回数据到任意端口。本地作为客户端可以发起到任何ip和端口的请求,这条规则确保能够收到返回 #------------------when conntrack unkonw error use this # sudo /sbin/iptables -A OUTPUT -m state --state NEW,ESTABLISHED -j ACCEPT # sudo /sbin/iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT # sudo /sbin/iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT #--------------------------------------------------------------- iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT # 允许80端口返回数据 iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT # 允许返回数据给所有ip所有端口 允许所有本机向外的访问 iptables -A OUTPUT -j ACCEPT # 除上面允许的规则,抛弃所有INPUT请求 (注意:如果22端口未加入允许规则,SSH链接会直接断开。) iptables -P INPUT DROP # 除上面允许的规则,抛弃所有FORWARD请求 iptables -P FORWARD DROP # 除上面允许的规则,抛弃所有OUTPUT请求 iptables -P OUTPUT DROP # 备份 iptables-save > /etc/iptables/iptables.rules # (cat /etc/sysconfig/iptables > /etc/iptables/iptables.rules ) # 保存(ArchLinux系统下的路径可能和其他系统下的路径不同) sudo /etc/rc.d/init.d/iptables save # 重新启动 sudo service iptables restart # (/etc/init.d/iptables restart) # 列出规则,供查看 iptables -L -n # iptables 安装后 iptables 命令无效,可能是因为该用户的PATH不包括/sbin和/usr/sbin, 可用 sudo /sbin/iptables 运行
|
文章转自:http://www.badnotes.com/2013/10/03/iptables/
原文作者:
liups.com
原文链接:
http://liups.com/posts/1d0c2853/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议