设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

iptables详解--转(6)

发布时间:2021-01-24 08:33 所属栏目:118 来源:网络整理
导读:[root@test3~]# iptables -P FORWARD DROP[root@test3 ~]# iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT[root@test3 ~]# iptables -A FORWARD -d 192.168.0.110 -p tcp --dport 8080 -mstate --sta

[root@test3~]# iptables -P FORWARD DROP[root@test3 ~]# iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT[root@test3 ~]# iptables -A FORWARD -d 192.168.0.110 -p tcp --dport 8080 -mstate --state NEW -j ACCEPT

假设在此服务器上还有mysql服务,假设mysql在内网工作在正常服务端口,但告知外面工作在6789端口上,那么

进入mysql并授权

mysql>grant all on *.* to 'root'@'%' identified by '123456';

mysql>flush privileges;

在iptables服务器上添加规则如下

[root@test3 ~]# iptables -t nat -A PREROUTING-d 10.0.10.62 -p tcp --dport 6789 -j DNAT --to-destination 192.168.0.110:3306

[root@test3~]# iptables -A FORWARD -d 192.168.0.110 -p tcp --dport 3306 -m state --stateNEW -j ACCEPT

[root@test~]# mysql -uroot -h10.0.10.62 -P6789 -p

切换至client端进行测试

[root@test~]# mysql -uroot -h10.0.10.62 -P6789 -p

4.ip_conntrack?功能

其扩展模块路径为

/proc/net/nf_conntrack

/proc/sys/net/nf_conntrack_max

不同版本的值和相关信息未必一致

[root@test3~]# cat /proc/sys/net/nf_conntrack_max31860

比起红帽5的值已经大的太多了

#这些超时时间非常长,如下所示:

[root@test3 ~]# cat/proc/net/nf_conntrackipv4 ? ? 2 tcp ? ? ?6 431999ESTABLISHED src=10.0.10.62 dst=10.0.10.1sport=22 dport=59448 src=10.0.10.1 dst=10.0.10.62 sport=59448 dport=22[ASSURED] mark=0 secmark=0 use=2

#可以在某些时候将值尽量调低,如果不尽量追踪过长时间

[root@test3~]# cat /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established432000 ? ? ? #5天时间

如果没有特殊需求的话,将其值调低,这样可以保证被追踪的连接尽早被记录的文件中清除出去,已腾出空间供其他被追踪使用

既然追踪连接功能有限制而且对性能有很大的影响为何还要开启呢?

启动其功能的原因在于 在某些场景中必须追踪状态,才能达到目的,如果在并发连接非常大的场景下启用连接追踪是不明智的

因此需自己判断好应用场景,不得不启用,连接数也非常大,方法如下:

(1).调小nf_conntrack_tcp_timeout_established

(2).调大 /proc/sys/net/nf_conntrack_max ? ? ? ?#需要一定的内存容量,只要空间充足即可

扩展模块connlimit:

connlimit?连接数限制,一般可以实现控制某源ip地址发起来某连接个数的

--connlimit-above[number] ?#连接数的上限,如果某个连接数的个数超过为某个值之后(高于),通常用取反的方法来放行:

#iptables-A INPUT -s 10.0.10.0/24 -p tcp --dport 80 -m connlimit ! --connlimit-above 5-j ACCEPT ?

hashlimit,limit ? #能够分析每个ip地址的速率

5.recent模块

利用iptables的recent模块来抵御DOS攻击: 22,建立一个列表,保存有所有访问过指定的服务的客户端IP 对本机ssh: 远程连接

(1).利用connlimit模块将单IP的并发设置为3;会误杀使用NAT上网的用户,可以根据实际情况增大该值;

iptables-I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP

第二句是记录访问tcp 22端口的新连接,记录名称为SSH --set 记录数据包的来源IP,如果IP已经存在将更新已经存在的条目

(2).利用recent和state模块限制单IP在300s内只能与本机建立2个新连接。被限制五分钟后即可恢复访问

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读