环境如下图所示,网关服务器和网站服务器都采用centos 7操作系统,网关服务器安装3块千兆网卡,分别连接Internet、企业内网、网站服务器。

  • 网关服务器连接互联网卡ens33配置为公网IP地址,分配到firewall的external区域;连接内网网卡ens37地址为192.168.1.1,分配到firewall的trusted区域;连接服务器网卡ens38地址为192.168.2.1,分配到firewall的DMZ区域。
  • 网站服务器和网关服务器都通过SSH来远程管理,为了安全,将SSH默认端口改为2234。
  • 网站服务器开启https,过滤未加密的http流量。
  • 网站服务器拒绝ping,网关服务器拒绝来自互联网上的ping。
  • 内网用户需要通过网关服务器共享上网。
  • 互联网用户需要访问网站服务器。

一、开始基本的环境配置:

1、在网关服务器上配置网卡地址:

[root@localhost network-scripts]# ip addr               #查看已配置完成的IP地址信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP  1000link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ffinet 100.1.1.10/24 brd 100.1.1.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::2695:e1d7:cfa2:b427/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP  1000link/ether 00:0c:29:9a:09:a2 brd ff:ff:ff:ff:ff:ffinet 192.168.1.1/24 brd 192.168.1.255 scope global noprefixroute ens37valid_lft forever preferred_lft foreverinet6 fe80::ac5f:6d92:f29a:6852/64 scope link noprefixroute valid_lft forever preferred_lft forever
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP  1000link/ether 00:0c:29:9a:09:ac brd ff:ff:ff:ff:ff:ffinet 192.168.2.1/24 brd 192.168.2.255 scope global noprefixroute ens38valid_lft forever preferred_lft foreverinet6 fe80::e21e:7093:d418:a0a3/64 scope link noprefixroute valid_lft forever preferred_lft forever

2、开启网关服务器的路由转发功能。

root@localhost network-scripts]# vim /etc/sysctl.conf ...................
net.ipv4.ip_forward = 1
[root@localhost network-scripts]# sysctl -p
net.ipv4.ip_forward = 1

3、配置web服务器的网卡地址。

[root@localhost ~]# ip addr          #查看已配置完成的IP地址信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500  1000link/ether 00:0c:29:77:2c:03 brd ff:ff:ff:ff:ff:ffinet 192.168.2.10/24 brd 192.168.2.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute valid_lft forever preferred_lft forever
[root@localhost ~]# route -n                    #查看网关信息
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG    100    0        0 ens33.............................

二、网站服务器环境搭建:

[root@localhost ~]# systemctl start firewalld           #启动防火墙
[root@localhost ~]# yum -y install httpd mod_ssl          #安装httpd和mod_ssl
[root@localhost ~]# systemctl start httpd   #启动httpd服务
[root@localhost ~]# systemctl enable httpd          #设置为开机自启动
[root@localhost ~]# vim /var/www/html/index.html          #新建网站测试首页
<h1>this is intranet web test </h1>
[root@localhost ~]# vim /etc/ssh/sshd_config              #更改SSH的侦听端口(需关闭SELinux):................
Port 2234................
[root@localhost ~]# systemctl restart sshd

三、在网站服务器上配置firewalld防火墙:

1、设置默认区域为dmz区域:

[root@localhost ~]# firewall-cmd --set-default-zone=dmz
success

2、为dmz区域打开https服务并添加tcp的2344端口:

[root@localhost ~]# firewall-cmd --zone=dmz --add-service=https --permanent
success
[root@localhost ~]# firewall-cmd --zone=dmz --add-port=2234/tcp --permanent
success

3、禁止ping:

[root@localhost ~]# firewall-cmd --add-icmp-block=echo-request --zone=dmz --permanent
success

4、因为已经更改了预定义SSH服务的默认端口,所以将预定义SSH服务移除:

[root@localhost ~]# firewall-cmd --zone=dmz --remove-service=ssh --permanent
success

5、重新加载firewalld配置,并查看之前的配置:

[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --list-all
dmz (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: httpsports: 2234/tcpprotocols: masquerade: noforward-ports: source-ports: icmp-blocks: echo-requestrich rules: 

四、在网关服务器上配置firewalld防火墙:
1、将网卡添加至指定区域:

[root@localhost /]# systemctl start firewalld                     #启用防火墙
[root@localhost /]# firewall-cmd --set-default-zone=external          #设置默认区域为external
success
[root@localhost /]# firewall-cmd --change-interface=ens37 --zone=trusted    #将ens37添加至trusted区域
The interface is under control of NetworkManager, setting zone to 'trusted'.
success
[root@localhost /]# firewall-cmd --change-interface=ens38 --zone=dmz     #将ens38添加至dmz区域
The interface is under control of NetworkManager, setting zone to 'dmz'.
success

2、查看配置,并将配置保存到文件中,成为永久配置:

[root@localhost /]# firewall-cmd --get-active-zones
dmzinterfaces: ens38
externalinterfaces: ens33
trustedinterfaces: ens37
[root@localhost /]# firewall-cmd --runtime-to-permanent             #将 当前配置保存到文件中
success

3、在企业内网测试机上访问网站服务器,可以成功访问:

4、更改SSH的侦听端口,并重启服务(需关闭SELinux):

[root@localhost ~]# vim /etc/ssh/sshd_config      ................
Port 2234................
[root@localhost ~]# systemctl restart sshd

5、配置external区域添加tcp的2234端口:

[root@localhost /]# firewall-cmd --zone=external --add-port=2234/tcp --permanent
success

6、配置external区域移除SSH服务:

[root@localhost /]# firewall-cmd --zone=external --remove-service=ssh --permanent
success

7、配置external区域禁止ping:

[root@localhost /]# firewall-cmd --zone=external --add-icmp-block=echo-request --permanent
success

8、重新加载防火墙配置:

[root@localhost /]# firewall-cmd --reload
success

以下开始测试ssh连接:

9、在互联网测试机通过SSH连接网关服务器的外部接口地址的2234端口:

[root@localhost ~]# ssh -p 2234 100.1.1.10
root@100.1.1.10's password:
Last login: Tue Jun 18 05:34:03 2019 from 100.1.1.20
[root@localhost ~]# 

10、使用内网测试机SH登录web网站服务器的2234端口:

[root@localhost /]# ssh -p 2234 192.168.2.10
root@192.168.2.10's password:
Last login: Tue Jun 18 05:40:25 2019 from gateway
[root@localhost ~]# 

五、配置IP伪装与端口转发:
1、在公网测试机上搭建web服务,用于测试:

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# vim /var/www/html/index.html
<h1> www.baidu.com</h1>
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl start httpd

2、在内部测试机和dmz的网站服务区都可以访问外网的网站(若访问不了,则可能是公网测试机的防火墙配置问题,可先将公网测试机的防火墙关闭,或放行相关服务的流量即可):

3、查看网关服务器的external区域是否开启了地址伪装:

[root@localhost ~]# firewall-cmd --list-all --zone=external
externaltarget: defaulticmp-block-inversion: nointerfaces: sources: services: sshports: protocols: masquerade: yes                       #地址伪装已启用forward-ports: sourceports: icmp-blocks: rich rules:

4、只为源地址192.168.1.0/24网段的地址开启地址IP伪装。
在网关服务器上关闭external默认的地址伪装,添加富规则,要求external区域内,源地址为192.168.1.0/24网段的地址开启地址IP伪装:

[root@localhost ~]# firewall-cmd --remove-masquerade --zone=external
success
[root@localhost ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade'
success

在dmz区域的网站服务器上测试,发现无法访问外网网站,但是内网测试机可以:

[root@localhost ~]# curl http://100.1.1.20
curl: (7) Failed connect to 100.1.1.20:80; 没有到主机的路由

5、配置端口转发实现互联网用户可以访问内部web服务器。

①在网关服务器下做如下配置:

[root@localhost ~]# firewall-cmd --zone=external --add-forward-port=port=443:proto=tcp:toaddr=192.168.2.10
success

②在互联网测试机上访问内网的web服务器成功,如下:

六、最后来一个使用富规则实现端口转发:

上述配置完成后,若现在公司申请了一个新的公网ip地址100.1.1.15,那么就需要重新做端口转发了:

1、将新申请的公网地址100.1.1.15配置在网关服务器的外网接口ens33上,作为第二个IP地址:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR0=100.1.1.10              #从这行配置项开始,到下面第四行,属于配置IP地址
PREFIX0=24
IPADDR1=100.1.1.15
PREFIX1=24                            #只需改动以上四行即可
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yesZONE=external
[root@localhost ~]# ifdown ens33 && ifup ens33                        #重启网卡,使配置生效
[root@localhost ~]# ip add                   #查看IP地址是否配置成功
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state  default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc UP group default qlen 1000link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ffinet 100.1.1.10/24 brd 100.1.1.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 100.1.1.15/24 brd 100.1.1.255 scope global secondary noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::2695:e1d7:cfa2:b427/64 scope link noprefixroute valid_lft forever preferred_lft forever

2、使用富规则配置端口转发:

[root@localhost ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 destination address=100.1.1.15/32 forward-port port=443 protocol=tcp to-addr=192.168.2.10'
success

3、在互联网测试机上访问测试结果:

齐活.....................

转载于:https://blog.51cto.com/14154700/2410203

centos 7配置firewall防火墙的地址伪装和端口转发实例相关推荐

  1. 服务器配置防火墙的地址伪装和端口转发实例

    网关服务器和网站服务器都采用centos 7操作系统: 要求如下:基本的环境配置:网关服务器配置 网卡 : [root@localhost network-scripts]# ip a = ip ad ...

  2. firewalld防火墙配置ip地址伪装和端口转发

    IP地址伪装 通过地址伪装,NAT设备将经过设备的包转发到指定接收方,同时将通过的数据包的原地址更改为NAT的接口地址转发到不同步目的地.当是返回数据包是,会将目的地之修改为原始主机地址并路由. 端口 ...

  3. firewalld防火墙(二)实验案例:ip地址伪装,端口转发

    实验要求: 全网互通 搭建网站 配置防火墙,划分区域,配置默认区域 配置ip地址伪装centos01-centos03 配置端口映射centos04-centos01 实验步骤: 一.全网互通 1.配 ...

  4. centos 7的firewalld防火墙配置IP伪装和端口转发(内附配置案例)

    IP地址伪装和端口转发都属于NAT(网络地址转换). 地址伪装和端口转发的区别如下: IP地址伪装: 通过地址伪装,NAT设备将经过设备的包转发到指定的接收方,同时将通过的数据包 源地址更改为其NAT ...

  5. firewalld防火墙配置IP伪装和端口转发

    IP地址伪装和端口转发都属于NAT(网络地址转换). 地址伪装和端口转发的区别如下: IP地址伪装: 1.通过地址伪装,NAT设备将经过设备的包转发到指定的接收方,同时将通过的数据包 2.源地址更改为 ...

  6. mysql查看防火墙状态命令,centos 7中firewall防火墙的常用命令总结

    前言 在CentOS7.0中默认使用firewall代替了iptables service.虽然继续保留了iptables命令,但已经仅是名称相同而已. firewall是centos7的一大特性,最 ...

  7. Firewalld ip伪装和端口转发

    Firewalld  ip伪装和端口转发 伪装: 此举启用区域的伪装功能.私有网络的地址将被隐藏并映射到一个公有IP.这是地址转换的一种形式,常用于路由.由于内核的限制,伪装功能仅可用于IPv4. # ...

  8. 云服务器 ECS CentOS 7配置默认防火墙 Firewall

    说明:Centos7 下默认的防火墙是 Firewall,替代了之前的 iptables,Firewall 有图形界面管理和命令行管理两种方式,本文简要介绍命令 行Firewall 的使用. 配置 F ...

  9. firewalld防火墙配置、测试服务、高级配置与IP伪装、端口转发

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Firewalld防火墙 防火墙基础 一.防火墙配置 二.使用防火墙安装http服务测试分别测试内网.外网.dmz 三.firewal ...

最新文章

  1. 如何将txt文档插入sql2000数据库
  2. 第一章---对象导论
  3. 白盒测试工具 - sonar的安装、配置与使用入门手册,用sonar检查代码质量实战演示
  4. 48. Rotate Image ~
  5. python地图散点图_在地图上叠加散点图(img)
  6. jQuery1.3.2 源码学习 -1 $ 是什么?jQuery 又是什么?
  7. python做界面用什么软件好_pyqt | 做一个好用的图形界面软件
  8. 用js实现分页功能以及利用xml实现分页功能——数据岛
  9. [转载] Python利用pandas处理Excel数据的应用
  10. c++gdal如何在大图像中截取小图像并获取其图像信息_如何模拟不规则形状并构建几何模型
  11. MybatisPlus的CRUD操作
  12. 慧荣SM2259XT主控贴镁光B27A测试分享,SM2258XT、SM2259XT2可参考
  13. 人工智能在物流行业的发展与应用
  14. 前后端交互之——AJAX提交
  15. Z-Blog模板安装和使用教程
  16. 实验三 LZW编解码实验
  17. 实际案例说明计算机网络安全,计算机网络安全案例教程
  18. Json概述以及python对json的相关操作(至尊宝错过了紫霞仙子,难道你也要错过python对json的相关操作吗?)
  19. C2B的未来:大数据定制
  20. The underlying provider failed on Open

热门文章

  1. 深入理解分布式技术 - 分库分表后的扩容解决方案
  2. 删除机器人 异星工厂_10个视频,它们是国内智能工厂的标杆
  3. java mysql查询界面_Java GUI小程序 实现数据库查询界面-Go语言中文社区
  4. 自己建服务器 语音盒子_自建sip语音服务器
  5. 2021-04-15 深入理解SLAM技术 【2】 SLAM的框架
  6. cmd oracle 连接实例_基于winserver的Oracle数据库跨版本下的rman备份恢复
  7. python 日期_python日期操作
  8. python opencv ImportError: libGL.so.1: cannot open shared object file: No such file or directory
  9. 红帽子怎么vi编译c语言,在RedHat5.3上编译和配置Vim
  10. top与bottom、left与right的优先级