如何执行数据包过滤,网络地址转换和设置内核运行时参数 - 第2部分

作为承诺在第1部分 (“ 设置静态网络路由 ”),这篇文章(RHCE系列的第2部分 ),我们将在红帽企业推出的包过滤和网络地址转换(NAT)的原则Linux的7开始,跳水前进入设置运行时内核参数以修改正在运行的内核的行为,如果某些条件改变或需要出现的话。

RHCE:网络数据包过滤 - 第2部分

网络数据包过滤在RHEL 7

当我们谈论包过滤时,我们指的是由防火墙执行的一个过程,在该过程中它读取试图通过它的每个数据包的头部。 然后,它通过基于先前由系统管理员定义的规则采取所需的动作来过滤分组。

正如你可能知道,与RHEL 7起,一种管理防火墙规则的默认服务firewalld 像iptables,它谈到在Linux内核中的netfilter模块,以检查和操纵网络数据包。 与iptables不同,更新可以立即生效,而不会中断活动连接 - 您甚至不必重新启动服务。

firewalld的另一个优点是,它允许我们基于预先配置的服务名称(更上,在一分钟内)来定义规则。

第一部分 ,我们采用了以下方案:

静态路由网络图

但是,你会记得,我们在禁用路由器#2防火墙,以简化的例子,因为我们还没有覆盖的包过滤呢。 现在让我们看看我们如何启用目的地为目的地中的特定服务或端口的传入数据包。

首先,让我们添加一个永久性的规则,允许在enp0s3(192.168.0.19)入站流量enp0s8(10.0.0.18):

# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

上面的命令将保存规则/etc/firewalld/direct.xml:

# cat /etc/firewalld/direct.xml

检查防火墙已保存的规则

然后启用规则以使其立即生效:

# firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i enp0s3 -o enp0s8 -j ACCEPT

现在,你可以telnet从RHEL 7框中的Web服务器,并运行tcpdump的再次监测两台机器之间的TCP流量,此时路由器#2防火墙启用。

# telnet 10.0.0.20 80
# tcpdump -qnnvvv -i enp0s3 host 10.0.0.20

如果你想只允许192.168.0.0/24网络中的Web服务器( 端口80)192.168.0.18和块连接从其它来源传入的连接是什么?

在Web服务器的防火墙中,添加以下规则:

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.18/24" service name="http" accept' --permanent
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" drop' --permanent

现在,您可以发出HTTP请求到Web服务器,从192.168.0.18和其他一些机器192.168.0.0/24。 在第一种情况下,连接应该成功完成,而在第二种情况下它最终将超时。

为此,任何以下命令将会执行:

# telnet 10.0.0.20 80
# wget 10.0.0.20

我强烈建议你检查出Firewalld丰富的语言在Fedora项目的Wiki文档丰富规则的进一步细节。

RHEL 7中的网络地址转换

网络地址转换 (NAT)是,其中一组计算机(它也可以是只是其中之一)是一个专用网络将被分配一个独特的公共IP地址的过程。 因此,它们仍然由网络中的自己的私有IP地址唯一地标识,但对于外部,他们都“似乎”相同。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏