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

栏目: 服务器 · 发布时间: 5年前

内容简介:环境如下图所示,网关服务器和网站服务器都采用centos 7操作系统,网关服务器安装3块千兆网卡,分别连接Internet、企业内网、网站服务器。1、设置默认区域为dmz区域:

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

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

  • 网关服务器连接互联网卡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 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP  1000
    link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
    inet 100.1.1.10/24 brd 100.1.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 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  1000
    link/ether 00:0c:29:9a:09:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global noprefixroute ens37
       valid_lft forever preferred_lft forever
    inet6 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  1000
    link/ether 00:0c:29:9a:09:ac brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 brd 192.168.2.255 scope global noprefixroute ens38
       valid_lft forever preferred_lft forever
    inet6 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 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500  1000
    link/ether 00:0c:29:77:2c:03 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.10/24 brd 192.168.2.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 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: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: https
  ports: 2234/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: echo-request
  rich 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 
dmz
  interfaces: ens38
external
  interfaces: ens33
trusted
  interfaces: ens37
[root@localhost /]# firewall-cmd --runtime-to-permanent             #将 当前配置保存到文件中
success

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

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

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的网站服务区都可以访问外网的网站(若访问不了,则可能是公网测试机的防火墙配置问题,可先将公网测试机的防火墙关闭,或放行相关服务的流量即可):

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

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

[root@localhost ~]# firewall-cmd --list-all --zone=external 
external
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  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服务器成功,如下:

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

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

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

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

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=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=yes

ZONE=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 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc UP group default qlen 1000
    link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
    inet 100.1.1.10/24 brd 100.1.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 100.1.1.15/24 brd 100.1.1.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 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、在互联网测试机上访问测试结果:

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

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Convergence Culture

Convergence Culture

Henry Jenkins / NYU Press / 2006-08-01 / USD 30.00

"Convergence Culture" maps a new territory: where old and new media intersect, where grassroots and corporate media collide, where the power of the media producer, and the power of the consumer intera......一起来看看 《Convergence Culture》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具