注意:这篇文章是第一篇文章的升级版
说明:
基本的配置与第一篇大同小异,包括更改主机名、网卡的配置、开启路由转发、更改区域、SSH侦听端口、放行、禁止那些规则都是一样的,那么本篇文章的要求是可以已经理解firewalld中的直接规则、富语言等等,这里并不在陈述细讲,如果是需要了解的可以百度了解。
要求与上一篇的大同小异,只不过加入了两个新的需求:
- 公司内网用户需要通过网关服务器共享上网
- 互联网用户需要访问内部的网站服务器
拓扑图:
配置IP伪装与端口转发:
-
内网用户通过网关服务器共享上网
如果在外网测试机上搭建的网站服务,无论是内部测试机还是DMZ Web服务器访问外网网站,都是可以访问的。原因是网关服务器的external区域默认开启了地址伪装,通过一下测试来验证上述说法:1.1 在外网测试机100.1.1.20搭建网站服务
yum -y install httpd1.2 启用并启动httpd服务
systemctl enable httpd systemctl start httpd1.3 创建网站首页
echo "<center><h1>My is internet Site</h1></center>" >/var/www/html/index.html1.4 在内网客户机上访问网站,是可以访问的:
1.5 同样!在DMZ访问外网网站竟然也是可以的:1.6 查看网关服务器的external区域是否开启了地址伪装:
firewall-cmd --list-all --zone=external
1.7 对源地址为192.168.1.0/24网段的地址开启地址IP伪装在网关服务器上关闭external的地址伪装,添加富规则,要求external区域内,源地址为192.168.1.0/24网段开启IP地址伪装
关闭external的地址伪装: firewall-cmd --remove-masquerade --zone=external 添加富规则: firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade'1.8 此时再去DMZ访问外网网站就提示: No route to host
2.配置端口转发实现外网访问内部网站服务器
2.1 在网关服务器上作如下nat映射配置:
firewall-cmd --zone=external --add-forward-port=port=443:proto=tcp:toaddr=192.168.2.10
2.2 此时,外网服务器就可以通过网关的外网卡IP地址https://100.1.1.10来访问内部的网站服务器:
2.3 可以发现,端口转发也可以使用富规则,这样就可以更大程度的控制端口转发规则,如果防火墙服务器新添加了一个公网IP地址呢?该怎么映射?
2.3.1 需要将新的公网IP地址:100.1.1.66/24 配置在网关服务器对应的外网卡接口上面,(我这个接口是eth0),作为哦第二个IP地址。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
重启网卡管理服务,使其多IP生效
systemctl restart NetworkManager
通过ip addr命令查询(如果多IP没显示出来,就重启网卡服务:systemctl restart network)
2.3.2 使用富规则配置端口转发IP100.1.1.66到192.168.2.10的443端口
firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 destination address=100.1.1.66/32 forward-port port=443 protocol=tcp to-addr=192.168.2.10'
3.在internal测试机上访问https://100.1.1.66测试结果: