配置firewalld防火墙
案例5:配置firewalld防火墙
5.1问题
本例要求为两个虚拟机server0、desktop0配置防火墙策略:
允许从172.25.0.0/24网段的客户机访问server0、desktop0的任何服务
禁止从my133t.org域(172.34.0.0/24网段)的客户机访问server0、desktop0的任何服务
在172.25.0.0/24网络中的系统,访问server0的本地端口5423将被转发到80
上述设置必须永久有效
5.2方案
RHEL7的防火墙体系根据所在的网络场所区分,提供了预设的安全区域:
public:仅允许访问本机的sshd等少数几个服务
trusted:允许任何访问
block:阻塞任何来访请求
drop:丢弃任何来访的数据包
……
新增防火墙规则的位置包括:
运行时(runtime):仅当前有效,重载防火墙后失效
永久(permanent):静态配置,需要重载防火墙才能生效
本地端口转发(端口1-->端口2):
从客户机访问防火墙主机的端口1时,与访问防火墙的端口2时等效
真正的网络应用服务其实在端口2提供监听
5.3步骤
实现此案例需要按照如下步骤进行。
步骤一:采取“默认全允许,仅拒绝个别”的防护策略
1)启用防火墙服务
[root@server0~]#systemctl restart firewalld
[root@server0~]#systemctl enable firewalld
2)将默认区域设置为trusted
[root@server0~]#firewall-cmd --get-default-zone//修改前
public
[root@server0~]#firewall-cmd --set-default-zone=trusted//修改操作
success
[root@server0~]#firewall-cmd --get-default-zone//修改后
trusted
步骤二:封锁指定的IP网段
1)添加永久配置“阻塞来自网段172.34.0.0/24的任何访问”
[root@server0~]#firewall-cmd --permanent --zone=block --add-source=172.34.0.0/24
success
2)重载防火墙
[root@server0~]#firewall-cmd --reload
success
3)检查运行时规则
[root@server0~]#firewall-cmd --list-all --zone=block
block
interfaces:
sources:172.34.0.0/24
services:
ports:
masquerade:no
forward-ports:
icmp-blocks:
rich rules:
步骤三:实现5423-->80端口转发
1)针对80端口部署测试应用
快速搭建一个测试网站:
[root@server0~]#yum -y install httpd//装包
....
[root@server0~]#vim /var/www/html/index.html//部署测试网页
test site.
[root@server0~]#systemctl restart httpd//起服务
从客户端访问,确认测试网页:
[root@desktop0~]#yum -y install elinks
....
[root@desktop0~]#elinks -dump http://server0.example.com/
test site.
2)配置5423-->80端口转发策略
[root@server0~]#firewall-cmd --permanent --zone=trusted --add-forward-port=port=5423:proto=tcp:toport=80//添加永久配置
success
[root@server0~]#firewall-cmd --reload//重载服务
Success
[root@server0~]#firewall-cmd --list-all//确认运行时规则
trusted(default,active)
interfaces:eth1 eth2 eth0 team0
sources:
services:
ports:
masquerade:no
forward-ports:port=5423:proto=tcp:toport=80:toaddr=
icmp-blocks:
rich rules:
3)验证端口转发策略
从desktop0上访问server0的5423端口,与访问server0的80端口效果一样:
[root@desktop0~]#elinks -dump http://server0.example.com:5423/
test site.
[root@desktop0~]#elinks -dump http://server0.example.com/
test site.