firewall高级配置

1.1 IP伪装与端口转发

在互联网发展初期,设计者们并没有想到互联网会发展到现在这个空前繁荣的阶段,所以,设计的IPv4地址空间只有32位。但是随着互联网的发展,IP地址变得严重缺乏,并且地址分配不均匀,所以就在原有IPv4地址空间的基础上划分出来三段私网地址空间:10.0.0.0/8、172.16.0.0/12和192.168.0.0/16,这些地址可以在企业或者公司内部被重复使用,但是不能用于互联网,因为上三个范围内的地址无法在Internet上被路由。

于是NAT(网络地址转换)技术便产生了,当用户数据包经过NAT设备时,NAT设备将源地址替换为公网IP地址,而返回的数据包就可以被路由。NAT技术一般都是在企业边界路由器或者防火墙上来配置。

Firewalld支持两种类型的NAT:IP地址伪装和端口转发。

1.IP地址伪装

地址伪装(masquerade)通过地址伪装,NAT设备将经过设备的包转发到指定接收方,同时将通过的数据包的源地址更改为其自己的接口地址,当返回的数据包到达时,会将目的地址修改为原始主机的地址并做路由。地址伪装可以实现局域网多个地址共享单一公网地址上网。类似于NAT技术中的端口多路复用(PAT)。IP地址伪装仅支持IPV4,不支持IPv6。

2.端口转发

端口转发(Forward-port):也称为目的地址转换或端口映射。通过端口转发,将指定IP地址及端口的流量转发到相同计算机上的不同端口,或不同计算机上的端口。企业内网的服务器一般都采用私网地址,可以通过端口转发将使用私网地址的服务器发布到公网,以便让互联网用户访问。例如,当接收互联网用户的HTTP请求时,网关服务器判断数据包的目标地址与目标端口,一旦匹配指定规则,则将其目标地址修改为内网真正的服务器地址,从而建立有效连接。

1、直接规则

1).直接使用iptables语句或firewalld语句将规则写入管理区域中

2).执行优先级最高,优先规则:直接规则--富规则--区域规则

3).不会iptables语句的用户可以直接使用firewalld语句编写规则

4).适用于服务或应用程序

语句:

firewall-cmd --direct

direct [dəˈrekt]:直接的、最近的、笔直的

例1.将所有IPv4地址加入黑名单,并丢弃数据包

注:删除规则将 --add 改为 --remove

1.启用黑名单

firewall-cmd --direct --add-chain ipv4 raw blacklist

2.将192.168.0.0网段加入黑名单

firewall-cmd --direct --add-rule ipv4 raw PREROUTING 0 -s 192.168.0.0/24 -j blacklist

3.每分钟记录一次日志,记录加入黑名单的主机

firewall-cmd --direct --add-rule ipv4 raw blacklist 0 -m limit --limit 1/min -j LOG --log-prefix "/var/log/ipv4/blacklisted.log"

4.将加入黑名单的数据包丢弃

firewall-cmd --direct --add-rule ipv4 raw blacklist 1 -j DROP

1.2 firewall-cmd高级配置

1.firewall中理解直接规则

firewall提供了“direct interface(直接接口)”。它允许管理员手动编写的iptables、ip6tables和ebtables规则插入firewalld管理的区域中,适用于应用程序,而不是用户。如果对iptables不太熟,不建议使用直接接口,可能会无意中导致防火墙被入侵, firewalld保持对所增加项目的追踪,所以它还能质询firewall和发现使用直接端口模式的程序造成的更改。直接端口通过firewall-cmd命令中的--direct选项实现。除非将直接规则显式插入firewalld管理的区域,否则将首先解析直接规则,然后解析其他firewalld规则。执行以下命令即可添加一些直接规则以将某个IP范围列入黑名单。

[root@gateway-server ~]# firewall-cmd --direct --permanent --add-chain ipv4 raw blacklist

success

[root@gateway-server ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw PREROUTING 0 -s 192.168.0.0/24 -j blacklist

success

[root@gateway-server ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw PREROUTING 0 -m limit --limit 1/min -j LOG --log-prefix "blacklisted"

success

[root@gateway-server ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist 1 -j DROP

success

Logo

更多推荐