# 每个ip的并发连接请求最大50,超过则丢弃,建议调大值,容易误伤nat上网用户
iptables -A INPUT -p tcp --syn --dport 80 -m state --state NEW -m connlimit ! --connlimit-above 50 -j DROP
3. 对icmp进行流控,防止icmp攻击
# 清空默认规则
iptables -F
iptables -X
# 添加已建立的连接规则
iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
# 设置默认规则
iptables -P INPUT DROP
iptables -P OUTPUT DROP
# 利用limit模块限制icmp速率,阀值为10个,当到达10个后,限速每秒钟1个
iptables -A INPUT -p icmp --icmp-type 0 -m limit --limit 1/s --limit-burst 10 -j ACCEPT
第四部分:NAT 常用规则
站在服务器的角度:
当内网服务器要访问外网时,需要做源地址转换;
# 打开转发功能
sysctl -w net.ipv4.ip_forward=1
# 把 192.168.1.0 网段流出的数据的 source ip address 修改成为 10.0.0.11:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 10.0.0.11
当外网主机要访问内网服务器服务时,需要做目标地址转换;
# 打开转发功能
sysctl -w net.ipv4.ip_forward=1
# 把访问 10.0.0.11:2222 的访问转发到 192.168.1.11:22 上::
iptables -t nat -A PREROUTING -d 10.0.0.11 -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.11:22
单纯的将访问本机80端口的请求转发到8080上
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
补充:
iptables 独立日志配置:
当在iptables中启用日志记录时,会被当做系统日志记录到/var/log/message里面,如果想要独立日志配置如下:
grep -r 'iptables' /etc/rsyslog.conf
kern.* /var/log/iptables.log
systemctl restart rsyslog
在 /etc/rsyslog.conf 中添加一条规则,并重启服务。
更多iptables相关教程见以下内容:
CentOS 7.0关闭默认防火墙启用iptables防火墙
Ubuntu 14.04 配置iptables防火墙
Linux下编译安装iptables
Linux下iptables防火墙设置