实验环境
? ? ? ?某公司的Web服务器,网关服务器均采用Linux CentOS 7.3操作系统,如图2.13所示。为了 加强网络访问的安全性,要求管理员熟悉firewalld防火墙规则的编写,以便制定有效、可行的主机防护策略。
需求描述
> 网关服务器ens36网卡分配到external(外部)区域,ens37网卡分配到trusted(信任)区域,ens38网卡分配到dmz(非军事)区域。
> 网站服务器和网关服务器将SSH默认端口都改为12345。
> 网站服务器开启https,过滤未加密的 http 流量,且拒绝ping。
推荐步骤
①基本环境配置。
(1)为网关服务器与网站服务器配置主机名及网卡地址,并更改SSH的侦听地址。
(2)开启网关服务器的路由转发功能。
②在网站服务器上部署Web站点。
③为网站服务器与网关服务器编写firewalld规则。
④ 实验结果验证。
1.基本环境配置
(1)在网关服务器上配置主机名及网卡地址。
[root@node01 ~]# hostname gateway-server
[root@node01 ~]# vim /etc/hostname
gateway-server
[root@gateway-server ~]# ifconfig
(2)开启网关服务器的路由转发功能。
[root@gateway-server ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@gateway-server ~]# sysctl -p
(3)配置 web服务器主机名及网卡地址。
[root@node01 ~]# hostname web
[root@node02 ~]# vim /etc/hostname
web
[root@web ~]# ifconfig
2.网站服务器环境搭建
(1)安装httpd和mod_ssl 软件包。
[root@web ~]# mount /dev/cdrom /mnt/
[root@web ~]# cd /etc/yum.repos.d/
[root@web yum.repos.d]# vim centos7.repo
[local]
name=CnetOS 7.3
baseurl=file:///mnt/
enabled=1
gpgcheck=0
[root@web ~]# yum -y install httpd mod_ssl
(2)启用并启动httpd服务。
[root@web ~]# systemctl start httpd
[root@web ~]# systemctl enable httpd
(3)创建网站首页测试页index.html。
[root@web ~]# vim /var/www/html/index.html
<h1>this is a web</h1>
(4)更改SSH的侦听地址,并重启sshd服务,需要注意的是这里需要将SELinux关闭。
[root@web ~]# vim /etc/ssh/sshd_config
Port 12345
[root@web ~]# systemctl restart sshd
3.在网站服务器上启动并配置firewalld 防火墙
(1)在网站服务器上启动firewalld防火墙并将默认区域设置为dmz区域,firewalld在系统安装 后默认处于启动状态,如果不确定机器上的firewalld是否启动,可使用systemctl status firewalld或 firewall-omd--state 命令查看其运行状态。
[root@web ~]# systemctl start firewalld.service
[root@web ~]# systemctl enable firewalld.service
[root@web ~]# systemctl status firewalld.service
(2)为dmz区域打开https服务及添加TCP的12345端口。
[root@web ~]# firewall-cmd --zone=dmz --add-service=https --permanent
[root@web ~]# firewall-cmd --zone=dmz --add-port=12345/tcp --permanent
(3)禁止ping。
[root@web ~]# firewall-cmd --add-icmp-block=echo-request --zone=dmz --permanent
(4)因为预定义的SSH服务已经更改默认端口,所以将预定义SSH服务移除。
[root@web ~]# firewall-cmd --zone=dmz --remove-service=ssh --permanent
(5)重新加载Firewalld激活配置,并查看刚才的配置。
[root@web ~]# firewall-cmd --reload
[root@web ~]# firewall-cmd --zone=dmz --change-interface=ens33
[root@web ~]# firewall-cmd --list-all --zone=dmz
4.在网关服务器上配置firewalld 防火墙
(1)验证 firewalld在网关服务器上启动并且正在运行。
[root@gateway-server ~]# firewall-cmd --state
[root@gateway-server ~]# systemctl start firewalld.service
[root@gateway-server ~]# systemctl enable firewalld.service
[root@gateway-server ~]# firewall-cmd --state
(2)设置默认区域为external 区域,并查看配置结果。
[root@gateway-server ~]# firewall-cmd --set-default-zone=external
[root@gateway-server ~]# firewall-cmd --list-all
(3)将ens37网卡配置到trusted区域,将ens38配置到dmz区域。
[root@gateway-server ~]# firewall-cmd --change-interface=ens37 --zone=trusted
[root@gateway-server ~]# firewall-cmd --change-interface=ens38 --zone=dmz
(4)查看配置情况如下。
[root@gateway-server ~]# firewall-cmd --get-active-zones
(5)在企业内网测试机上访问网站服务器,可以成功访问,如图中所示。
(6)更改SSH的侦听端口,并重启服务(需关闭SELinuJx)。
[root@gateway-server ~]# vim /etc/ssh/sshd_config
Port 12345
[root@gateway-server ~]# systemctl restart sshd
(7)配置external 区域添加TCP的12345端口。
[root@gateway-server ~]# firewall-cmd --zone=external --add-port=12345/tcp --permanent
(8)配置external 区域移除SSH服务。
[root@gateway-server ~]# firewall-cmd --zone=external --remove-service=ssh --permanent
(9)配置external 区域禁止ping。
[root@gateway-server ~]# firewall-cmd --zone=external --add-icmp-block=echo-request --permanent
(10)重新加载防火墙激活配置。
[root@gateway-server ~]# firewall-cmd --reload
(11)使用Internet测试用机访问网站服务器。
?