iptables常用命令

linux防火墙快速入门

常用操作

清除预设表filter中的所有规则链的规则

iptables -F

清除预设表filter中使用者自定链中的规则

iptables -X

保存iptables配置

service iptables save

重启iptables服务

service iptables restart

查看iptables规则

iptables -L -n

查看现有的策略

 iptables -L
Chain INPUT (policy ACCEPT)

target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

查看iptables规则文件

cat /etc/sysconfig/iptables

保存iptables规则 保存iptables文件,重启服务

service iptables save

配置NAT表防火墙

查看NAT表规则

iptables -t nat -L

清除NAT规则

iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

设置规程的流程

配置远端的server的时候,一定要注意的问题:

不要先设置 DROP 规程,一定要保留ssh的端口可以链接,否则一旦把ssh端口DROP,远端的server就不能链接了。
第一次创建规则要使用-F 清空,否者会出现很多奇怪的问题!

配置filter表防火墙

开启22端口 (如果改了ssh的端口22,使用对应得端口)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

如果OUTPUT设置成DROP需要添加

 iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

关闭22端口

 iptables -D INPUT -p tcp --dport 22 -j ACCEPT

开启常用端口

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

允许ping

iptables -A INPUT -p icmp -j ACCEPT

屏蔽指定ip

iptables -A INPUT -p tcp -s 192.168.10.1 -j DROP

减少不安全的端口连接

 iptables -A OUTPUT -p tcp --sport 31337 -j DROP
 iptables -A OUTPUT -p tcp --dport 31337 -j DROP

允许某个IP远程连接

iptables -A INPUT -s 192.168.10.1 -p tcp --dport 22 -j ACCEPT

允许某个网段的IP远程连接

iptables -A INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT

允许指定网段通过、指定网口通过SSH连接本机

 iptables -A INPUT -i eth0 -p tcp -s 192.168.10.0/24 --dport 22 -m state --state NEW,ESTABLESHED -j ACCEPT
 iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
 iptables -A INPUT -i eth0 -p tcp -s 192.168.10.0/24 --dport 22 -m state --state ESTABLESHED -j ACCEPT
 iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

其它

开启转发功能

 iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
 iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT

丢弃坏的TCP包

 iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP

处理IP碎片数量,防止攻击,允许每秒100个

 iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包

iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

丢弃非法连接

iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

允许所有已经建立的和相关的连接

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

设定默认规则,数据包的默认处规则

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

防止外网用内网IP欺骗

 iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
 iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
 iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP

禁止与某个IP的所有连接

 iptables -t nat -A PREROUTING -d 192.168.10.1 -j DROP

禁用80端口

 iptables -t nat -A PREROUTING -p tcp --dport 80 -j DROP

禁用某个IP的80端口

iptables -t nat -A PREROUTING -p tcp --dport 21 -d 192.168.10.1 -j DROP

如果OUTPUT设置成DROP需要添加 

iptables -A OUTPUT -p icmp -j ACCEPT

允许loopback

iptables -A INPUT -i lo -p all -j ACCEPT

如果OUTPUT设置成DROP需要添加

 iptables -A OUTPUT -o lo -p all -j ACCEPT
赞(1) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » iptables常用命令

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏