Centos7 iptables快速使用

前言

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

限制方式有两种,第一种直接通过命令,第二种是通过修改配置文件限制。
如果没有iptables,可以安装一个。

安装iptables

yum install -y iptables
yum update -y iptables

访问限制

#不允许进
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,也就是伪装后的1.1.1.1:20188
iptables -t nat -A PREROUTING  -p tcp --dport 50002 -j DNAT --to 1.1.1.1:20188
#外部访问本服务器 50003端口将会转发至本服务器的20188,也就是伪装后的2.2.2.2:20188
iptables -t nat -A PREROUTING  -p tcp --dport 50003 -j DNAT --to 2.2.2.2:20188
#允许本地20188端口 进行ip伪装 
iptables -t nat -I POSTROUTING -p tcp --dport 20188 -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
发布了54 篇原创文章 · 获赞 36 · 访问量 11万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览