Linux防火墙之iptables和firewalld

本文详细介绍了iptables的规则优先级以及多个扩展模块的使用,包括iprange、string、time和connlimit等,用于实现地址范围匹配、字符串匹配、时间限制和连接数限制。此外,还讲解了iptables的端口转发功能以及如何在selinux和firewalld中进行相关配置,以增强服务器的安全性和网络管理。最后,提供了几个实际示例来演示如何应用这些规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iptables

优先级:raw>mangle>nat>filter

iptables扩展

使用 -m调用扩展,也可以用 !取反

iprange 指定范围

  - -src-range :源地址范围

  - -dst-range:目标地址范围

  iptables -I INPUT -p tcp -m iprange - -src-range 192.168.75.130-192.168.75.134 -j DROP

string 指定字符串

  - -algo :指定匹配算法,可选算法有bm和kmp

  - - string:指定要匹配的字符串。

iptables -I INPUT -m string - - algo bm - -string “mike” -j REJECT

time 指定时间

time模块使用OTC时间,而我们使用CST中国标准时间,东八区比UTC时间快8小时,因此要-8

  - -timestart :起始时间 格式 时:分:秒

  - - timestop:终止时间

  - -weekdays:用于指定星期几,也可以用数字表示

  - -monthdays;- -datestart;- -datestop

  iptables -A INPUT -p tcp  - -dport 80 -m time - -weekdays 3,5  - -timestart 08:00:00 - -timestop 09:00:00 -j REJECT         #周三和周五的0点到1点不允许访问80端口

connlimit 限制连接数量

不指定IP,则默认为每个客户端IP做出限制

  - -connlimit-above:限制连接上限

  - -connlimit-mask:按照网段限制连接上限

iptables -I INPUT -p tcp - -dport 22 -m connlimit - -connlimit-above 2 -j REJECT

#限制ssh登陆数为2个,超过则就拒绝

limit 限制速率

  - -limit :限制单位时间内流入的数据包的数量

  iptables -I INPUT -p icmp -m limit - -limit 10/min -j ACCEPT

#限制每分钟流入10个包

iptables之forward转发

把本机的80端口转发到另一台服务器的8080端口

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.75.134:8080

iptables -t nat -A POSTROUTING -p tcp -d 192.168.75.134 --dport 8080 -j SNAT --to 192.168.75.130

selinux的设置

配置文件:/etc/selinux/config

查看selinux的状态:getenforce 返回为enforcing,为开启;disabled为关闭

firewalld

查看防火墙状态:firewall-cmd - -state

重新加载配置:firewall-cmd - -reload

查看预设的服务:firewall-cmd - -get-services

查看:firewall-cmd - -list-all

添加服务:firewall-cmd - -zone=public - -add-service=http - -permanent

移除:- -add改为 - -remove

允许或拒绝端口:firewall-cmd - -zone=public - -add-port=80/tcp - -permanent

禁用一个网段:firewall-cmd - -add-source=192.168.75.1/24 - -zone=drop

实例:

##在同一个服务器上将80端口转发到8080端口

firewall-cmd - -zone=”public” - -add-forward-port=port:80:proto=tcp:toport=8080

##将当前服务器的80端口转发到另一台主机192.168.75.134的8080端口

(1)firewall-cmd - -zone=public - -add-masquerade

(2)firewall-cmd - -zone=”public” - -add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.75.134

丰富规则:

##拒绝来自192.168.75.134到22端口的IPV4的TVP数据

firewall-cmd - -zone=public- -add-rich-rule ‘rule family=”ipv4” source address=”192.168.75.134” port port=22 protocol=tcp reject’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值