删除已有规则

iptables -F

设置链默认策略(默认为ACCEPT,保持默认的话需要在最后一行规则添加iptables -A INPUT -j REJECT)

iptables -P INPUT DROP

阻止指定IP地址

iptables -A INPUT -s 黑名单IP -j DROP

允许所有ssh连接请求

iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

仅允许来自指定网络的SSH连接请求

iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -m state --state NEW,established -j ACCEPT

使用multiport合并端口规则

iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT

流量负载均衡

iptables -A PREROUTING -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.1:443
iptables -A PREROUTING -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 1 -j DNAT --to-destination 192.168.1.2:443
iptables -A PREROUTING -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 2 -j DNAT --to-destination 192.168.1.3:443 

允许外部主机ping内部主机

iptables -A input -p ICMP --icmp-type echo-request -j ACCEPT
iptables -A output -p icmp --icmp-type echo-reply -j ACCEPT

允许内部主机ping外部主机

iptables -A output -p ICMP --icmp-type echo-request -j ACCEPT
iptables -A input -p icmp --icmp-type echo-reply -j ACCEPT

允许回环访问

iptables -A INPUT -i lo ACCEPT

端口转发

echo 1 > /proc/sys/net/ipv4/ip_forward
//启动网卡转发功能
iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-ports 222
//将22端口请求转发到222
iptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 --dport 22 -j DNAT --to 192.168.1.1:22
iptables -t nat -A POSTROUTING  -d 192.168.1.1 -p tcp --dport 22 -j SNAT --to-source 192.168.0.1
//将192.168.0.1:22转发到192.168.1.1:22

防止dos攻击

iptables -A INPUT -p tcp --dport 80 -m limit 25/minute --limit-burrst 100 -j ACCEPT
//-m limit: 启用limit扩展
//--limit 25/minute: 允许最多每分钟25个连接(根据需求更改)。
//--limit-burst 100: 只有当连接达到limit-burst水平(此例为100)时才启用上述limit/minute限制

自定义链

iptables -N WEB
//创建自定义链
iptables -I WEB -s 192.168.1.1 REJECT
//拒绝来自192.168.1.1的报文
iptables -I INPUT -p tcp --dport -j WEB
//在INPUT链中引用WEB自定义链
iptables -D INPUT -p tcp --dport -j WEB
//删除引用
iptables -X WEB
//删除自定义链