目录
(2)将来自192.168.10.0/24的数据包指向这个链
(3)将192.168.10.202地址加入白名单,允许该主机的ipv4连接
设置external区域中只有192.168.1.0/24网段的数据包才有地址伪装效果
(3)将网关服务器的外网接口设置第二个ip地址,让外网主机能够通过两个IP访问Web服务
(5)最后在外网测试机,使用curl命令测试两个ip能否访问Web服务
直接规则
将iptables的规则插入到firewalld防火墙的策略中
示例
将某个IP范围列入黑名单
防止DDOS攻击
(1)创建一个黑名单功能链
先使用firewall-cmd --direct --add-chain ipv4 raw blacklist命令在规则中添加一个名为 blacklist 的新的ipv4原始防火墙链
- --direct:这个选项告诉firewall-cmd命令直接在防火墙的底层规则中进行操作,而不是通过firewalld的标准配置接口。
- --add-chain ipv4 raw blacklist:在IPv4协议下的原始(raw)表中添加一个名为blacklist的新防火墙链。
- 原始表(raw table)是Linux防火墙的一部分,它允许更低层次的处理,通常用于某些特定的高级网络配置和包过滤。
由此命令也可以延伸出其他功能
firewall-cmd --direct --remove-chain ipv4 raw blacklist:删除一个名为blacklist的ipv4原始防火墙链
firewall-cmd --direct --add-chain ipv4 raw blacklist --permanent:在规则中永久添加一个名为 blacklist 的新的ipv4原始防火墙链
(2)将来自192.168.10.0/24的数据包指向这个链
再在该链上加一条规则,用于将指定网段的数据包跳转到blacklist链中
[root@localhost ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw PREROUTING 0 -s 192.168.10.0/24 -j blacklist
PREROUTING: 原始表中的PREROUTING链,该链用于处理进入主机的数据包。
0: 规则的编号。这里的0表示第1行规则,优先级最高,规则从0开始。
-s 192.168.10.0/24: 源IP地址为192.168.10.0/24,匹配从这个网段发起的数据包。
-j blacklist: 如果数据包符合上述条件,则将其跳转到名为 blacklist 的防火墙链进行进一步处理。
(3)每分钟记录一次日志
记录匹配特定条件的流量
[root@localhost ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist 0 -m limit --limit 1/min -j LOG --log-prefix "blacklist"
blacklist 0:将规则添加到blacklist链中,0是规则的编号
-m limit --limit 1/min:使用limit模块限制每分钟记录的日志消息数量为1条。
-j LOG --log-prefix "blacklist":指定匹配的数据包应该使用前缀“blacklist”进行日志记录。
(4)设置该链的规则为DROP
在该链中添加一条规则,编号为 1,该规则的动作是丢弃 (DROP) 匹配的数据包。
[root@localhost ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist 1 -j DROP
(5)重载firewalld
[root@localhost ~]# firewall-cmd --reload
此时另一台虚拟机就ping不通了这台配置规则的主机了
使用另一台机器ping过以后,因为是规则指定范围内的IP,所以在/var/log/message日志文件中就可以看到相关日志,以及我们设置的前缀为blacklist
清空直接规则
cd到/etc/firewalld目录下,删除direct.xml文件,再重载防火墙就行了