Firewalld防火墙高级配置——(实战篇!!)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Firewalld防火墙高级配置——(实战篇!!)相关的知识,希望对你有一定的参考价值。

实验拓扑图

技术图片

实验需求

1.公司内网用户需要通过网关服务器共享上网
2.互联网用户需要访问网站服务器
3.只允许192.168.10 .0/24ping网关和服务器
4.网站服务器和网关服务器均通过SSH来远程管理,为了安全,将SSH默认端口改为12345,只允许192.168.10.10主机SSH网关和服务器,允许互联网SSH内部服务器

实验环境

1.网关服务器:Centos7 -1
2.企业内网测试机:Centos7 -2
3.网站服务器:Centos7 -3
4.Internet测试机:Centos7 -4

1,配置网关服务器的网卡及地址

1)在网关服务器创建3块网卡,做静态,网卡1绑定VMnet1,为信任区域,网卡2绑定VMnet2,为DMZ区域,网卡3绑定VMnet3.为外部区域。

技术图片

2)配置各个网卡的网关地址

ens33网卡

    [root@localhost ~ ]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static            
    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
    UUID=88cf4975-29b8-4041-9cb0-456a56d1fddb
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=100.1.1.10          ##设置网关地址
    NETMASK=255.255.255.0  ##设置子网掩码

ens36 网卡

    [root@localhost ~ ]# vim /etc/sysconfig/network-scripts/ifcfg-ens36
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static            
    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=ens36    ##此处要修改网卡为36,UUID要删除
    DEVICE=ens36
    ONBOOT=yes
    IPADDR=192.168.10.1       ##网关地址和子网掩码  
    NETMASK=255.255.255.0

ens37网卡

    [root@localhost ~ ]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static            
    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=ens37     ##此处需要修改为37,UUID要删除
    DEVICE=ens37
    ONBOOT=yes
    IPADDR=192.168.20.1        ##设置网关地址,子网掩码 
    NETMASK=255.255.255.0

3)开启路由转发功能

    [root@localhost ~]# vim /etc/sysctl.conf 
    ......                                                                          //省略注释内容
    net.ipv4.ip_forward = 1                                         //添加此条目
    [root@192 network-scripts]# sysctl -p                   //载入sysctl配置文件
    net.ipv4.ip_forward = 1

2,配置internal信任区域中内网测试机的地址和网关

1)绑定网卡为vmnet3(仅主机模式)

技术图片

2)配置ip地址及网关

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ]#service network restart    //重启网络服务

技术图片

3,配置DMZ区域网站服务器的地址和网关,并开启网站服务

1)在nat模式下安装http服务

    [root@localhost ~]# yum install httpd -y

2)绑定网卡vmnet3(仅主机模式)

技术图片

3)配置ip地址及网关

    [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static           //将dhcp改为static
    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
    UUID=f4d8cf47-c855-4d04-8c68-75ab8644df70
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.20.20       //IP地址
    NETMASK=255.255.255.0     //子网掩码
    GATEWAY=192.168.20.1             //网关
    [root@localhost ~]# service network restart       //重启网络服务

4)开启网站服务并编辑网页内容

    [root@localhost ~]# vim /var/www/html/index.html
    [root@localhost ~]# cat /var/www/html/index.html
    <h1>this is dmz web</h1>
    [root@dmz html]# systemctl start httpd

4,在DMZ区域网站服务器上配置防火墙策略

    [root@localhost ~]# firewall-cmd --set-default-zone=dmz
    success
    [root@localhost ~]# firewall-cmd --add-service=http --zone=dmz --permanent
    //将防火墙的默认区域改为dmz区域
    success
    [root@localhost ~]# firewall-cmd --remove-service=ssh --zone=dmz --permanent
    //添加http服务到dmz区域永久设置中
    success
    [root@localhost ~]# firewall-cmd --add-icmp-block=echo-request  --zone=dmz --permanent                      
    //禁止使用ssh进行登录
    success
    [root@localhost ~]# firewall-cmd --reload                       
    //重载防火墙
    success

5,external外部区域的Internet测试机的网卡个地址,并启动网站服务

1)在nat模式下安装http服务

    [root@localhost ~]# yum install httpd -y

2)绑定网卡为vmnet1(仅主机模式)

技术图片

3)配置ip地址和网关

    [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=static           //将dhcp改为static
    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
    UUID=f4d8cf47-c855-4d04-8c68-75ab8644df70
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=100.1.1.20       //IP地址
    NETMASK=255.255.255.0     //子网掩码
    GATEWAY=100.1.1.10           //网关
    [root@localhost ~]# service network restart       //重启网络服务

4)开启网站服务,并关闭防火墙

    [root@localhost ~]# systemctl stop firewalld.service          //关闭防火墙
    [root@localhost ~]# setenforce 0                                
    [root@localhost ~]# systemctl start httpd                          //开启http服务
    [root@localhost ~]# vim /var/www/html/index.html            //配置网页内容
    <h1>this is external web</h1>

6,在网关服务器上配置防火墙的策略

[root@localhost ~]# firewall-cmd --set-default-zone=external                
//将防火墙默认区域改为extemal
success
[root@localhost ~]# firewall-cmd --change-interface=ens36 --zone=trusted --permanent                        
//将ens36网卡设为信任区域
The interface is under control of NetworkManager, setting zone to ‘trusted‘.
success
[root@localhost ~]# firewall-cmd --change-interface=ens37 --zone=dmz --permanent                        
//将ens37网卡设为dmz区域
The interface is under control of NetworkManager, setting zone to ‘dmz‘.
success
[root@localhost ~]# firewall-cmd --zone=dmz --remove-service=ssh --permanent                        
//dmz区域内禁止使用ssh登录
success
[root@localhost ~]# firewall-cmd --zone=dmz --add-service=http --permanent                      
//dmz区域内添加http服务
success
[root@localhost ~]# firewall-cmd --zone=dmz --add-icmp-block=echo-request --permanent                       
//dmz区域内阻塞icmp协议            
success
[root@localhost ~]# firewall-cmd --zone=external --add-service=http --permanent                             
//在外部区域添加http服务
success
[root@localhost ~]# firewall-cmd --reload                       
//重载防火墙
success

7,使用企业内网测试机验证网站服务器和Internet测试机提供的网站

技术图片
技术图片

8,在网关服务器上配置端口转换

[root@localhost ~]# firewall-cmd --zone=external --add-forward port=port=80:proto=tcp:toaddr=192.168.20.20 --permanent      
//设置端口映射
success
[root@localhost ~]# firewall-cmd --reload   //重载防火墙 
success

9,使用Internet测试机访问DMZ网站服务器,可以看到源地址被转换

技术图片

谢谢阅读!!!

以上是关于Firewalld防火墙高级配置——(实战篇!!)的主要内容,如果未能解决你的问题,请参考以下文章

Centos 7防火墙基础——理论篇

CentOS7防火墙服务(Firewalld)关闭实战

centos 7之firewalld防火墙配置IP伪装和端口转发案例详解

CentOS8提高篇18:防火墙高级使用 命令备忘 批量开放端口

第10篇 firewalld基于后端iptables的运行原理

前端进阶Nginx 负载均衡和缓存服务实战