Centos7 iptables快速使用

前言

例如
允许指定端口
拒绝指定端口
转发指定端口
限制指端端口连接数
限制指定端口访问频率

限制方式有两种,第一种直接通过命令,第二种是通过修改配置文件限制。

安装iptables

如果没有iptables,可以安装一个。

yum install -y iptables
yum update -y iptables

访问限制(命令)

通过命令修改防火墙规则

# 开启端口转发

echo 1 > /proc/sys/net/ipv4/ip_forward
#不允许进
iptables -P INPUT DROP 
#不允许转发
iptables -P FORWARD DROP
#允许出
iptables -P OUTPUT ACCEPT
#清空fllter表所有链
iptables -F
#清空nat表中的所有链,格式如下
iptables -t nat -F  
#清空nat表中的input链,格式如下
iptables -t nat -F INPUT
#查看到每个规则chain 的序列号,只能这样才能删除指定的规则。
iptables -L -n  --line-number 
#查看nat路由表(端口转发就放在这儿)
iptables -t nat -L -n 
#例如删除INPUT的第二条规则用如下命令。
iptables -D INPUT 2
#删除指定表的指定链上的规则, -D 并指定序号即可。
iptables -t nat -D PREROUTING 1
#允许内部访问外网(否则无法ping curl外部)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#开放61922端口
iptables -A INPUT -p tcp --dport 61922 -j ACCEPT
#仅允许ip-A对指定7000端口访问(拒绝其他IP对7000端口访问)
iptables -I INPUT -p tcp --dport 7000 -j DROP
iptables -I INPUT -s ip-A -ptcp --dport 7000 -j ACCEPT
#限制每个ip对61922端口,限制10个TCP连接,超过后拒绝
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j DROP
#60S 限制对80端口的10个新连接,超过的话记录日志
iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j LOG --log-prefix 'DDOS:' --log-ip-options
#60S 限制对80端口的10个新连接,超过的话拒绝
iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j DROP 
#正常情况允许通过
iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --set -j ACCEPT 


#配置完成后保存规则
service iptables save
#查看是否生效
iptables -L -n  --line-number 
#端口转发
#开启iptables forward转发功能。
echo 1 > /proc/sys/net/ipv4/ip_forward 
#本地端口转发(无需开启50001端口) 50001 转发到61922
iptables -t nat -A PREROUTING -p tcp --dport 50001 -j REDIRECT --to-port 61922
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>外网转外网
#外部访问本服务器 50002端口将会转发至本服务器的20188
iptables -t nat -A PREROUTING  -p tcp --dport 50002 -j DNAT --to 47.98.178.181:20188
#外部访问本服务器 50003端口将会转发至本服务器的20188
iptables -t nat -A PREROUTING  -p tcp --dport 50003 -j DNAT --to 147.139.5.113:20188
#允许本地20188端口 进行ip伪装 
iptables -t nat -I POSTROUTING -p tcp --dport 20188 -j MASQUERADE
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外网转外网
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>外网转内网--未验证
iptables -t nat -A PREROUTING -p tcp -d 47.111.10.19 --dport 50001 -j DNAT --to 47.98.178.181:61922
iptables -t nat -A POSTROUTING -p tcp -d 47.98.178.181 --dport 61922 -j SNAT --to-source 47.111.10.19
iptables -t nat -A POSTROUTING -j MASQUERADE
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外网转内网--未验证
#删除规则
iptables -D INPUT -s 192.168.0.21 -j ACCEPT

通过iptables配置文件修改防火墙规则

iptables防火墙的配置文件存放于:/etc/sysconfig/iptables ,将下列配置添加最后面

#开放22端口
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
#开放29000端口
-A INPUT -p tcp -m tcp --dport 29000 -j ACCEPT
#开放61922端口
-A INPUT -p tcp -m tcp --dport 61922 -j ACCEPT
#限制每个ip对29000端口,限制2个TCP连接,超过后拒绝
-A INPUT -p tcp -m tcp --dport 29000 -m connlimit --connlimit-above 10 --connlimit-mask 32 --connlimit-saddr -j DROP
#限制每个ip对61922端口,每5秒20个新连接,超过则拒绝
-A INPUT -p tcp -m tcp –dport 80 -m state –state NEW -m recent –update –seconds 5 –hitcount 20 –rttl –name WEB –rsource -j DROP
#60S 限制对80端口的10个新连接,超过的话记录日志
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --rcheck --seconds 60 --hitcount 10 --name webpool --mask 255.255.255.255 --rsource -j LOG --log-prefix "DDOS:" --log-ip-options
#60S 限制对80端口的10个新连接,超过的话拒绝
-A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --rcheck --seconds 60 --hitcount 10 --name webpool --mask 255.255.255.255 --rsource -j DROP
#正常情况允许通过
A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name webpool --mask 255.255.255.255 --rsource -j ACCEPT

#配置完成后重启iptables
service iptables restart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大锅霍皮久

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值