1、Firewalld的网络区域
2、 Firewalld 防火墙配置方法
配置防火墙图形界面
firewall-config
(1)启动、停止、查看Firewalld服务
systemctl start firewalld (启动)
systemctl sotp firewalld (停止)
systemctl enable firewalld (开机自启动)
systemctl disable firewalld (开机不自启动)
systemctl status firewalld (查看运行状态)
(2)区域管理
显示当前系统默认区域
firewall-cmd --get-default-zone
显示默认区域的所有规则
firewall-cmd --list-all
显示网络接口ens33对应区域
firewall-cmd --get-zone-of-interface=ens33
将网络接口ens33对应区域更改为internal区域
firewall-cmd --zone=public --change一interface=ens33
firewall-cmd --zone=internal一list-interfaces
firewall-cmd --get-zone一of-interface=ens33
显示所有激活区域
firewall-cmd --get-active-zones
(3)服务管理
为默认区域设置允许访问的服务
firawall-cmd --list-services (显示默认区域内允许访问的所有服务)
firawall-cmd --add-service=http (设置默认区域允许访问http服务)
firawall-cmd --add-service=https (设置默认区域允许访问https服务)
为internsl区域设置允许访问的服务
firewall-cmd --zone=internal --add-service=mysgl
(设置internal区域允许访问mysql服务)
firewall-cmd --zone=internal --remove-service=samba-client
(设置internal区域不允许访问samba-client服务)
firewall-cmd --zone=internal --list-services
(显示internal区域内允许访问的所有服务)
(4)端口管理
指定区域internal添加端口443/tcp
firewall-cmd --zone=internal --add-part=443/tep
指定区域internal禁止443/tcp端口访问
firewall-cmd --zone=internal --remove-port=443/tep
3、Firewalld 防火墙配置应用
通过企业案例配置防火墙,如图所示先配置ip地址
网关服务器链接互联网网卡 ens33 地址为100.1.1.10,为公网IP地址,分配firewall的external(外部)区域,连接服务器网卡ens38地址为192.168. 2.1,分配到firewall的dmz(非军事)区域
(1)基本环境配置
在网关服务器上配置主机名及网卡
hostname gateway-server (更改临时主机名)
vim /etc/hostname (永久更改主机名)
开启网关服务器的路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
配置网站(web)服务器主机名及网卡地址
vim /etc/hostname
web
hostname web
(2)网站服务器环境搭配
安装httpd和mod-ssl软件包
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/a.repo
[aa]
name=aaa
baseurl=file:///media
gpgcheck=0
yum install -y httpd mod_ssl
启动并开机自启httpd服务
systemctl start httpd
systemctl enable httpd
创建网页测试页
vim /var/www/html/index.html
<h1>111111111111<h1>
更改ssh的侦听地址,并重启sshd服务,需要关闭SELinux
vim /etc/ssh/sshd_config
Port 12345
systemctl restart sshd
(3)在网站服务器上启动并配置Firewalld防火墙
启动防火墙并设置默认区域为dmz区域
systemctl start firewalld
systemctl enable firewalld
systemctl status firewalld (查看服务器状态)
firewall-cmd --set-default-zone=dmz
为dmz区域打开https服务及添加TCP的12345端口
firewall-cmd --zone=dmz --add-service=https --permanent
firewall-cmd --zone=dmz --add-port=12345/tcp --permanent
禁止ping
firewall-cmd --add-icmp-block=echo-request --zone=dmz --permanent
因为预定义的SSH服务已经更改默认端口。所以将预定义SSH服务移除
firewall-cmd --zone=dmz --remove-service=ssh --permanent
重新加载Firewalld激活配置,并查看刚才的配置.
firewall-cmd --reload
firewall-cmd --list-all --zone=dmz
(4)在网关服务器上配置firewalld防火墙
验证firewalld在网关服务器上启动并且正在运行
systemctl start firewalld
systemctl enable firewalld
systemctl status firewalld
设置默认区域为external区域,并查看配晋结果
firewall-cmd --set-default-zone=external
firewall-cmd --list-all
将ens37网卡配置到trusted区域.将ens38配置到dmz区域
firewall-cmd --change-interface=ens37 --zone=trusted
firewall-cmd --change-interface=ens38 --zone=dmz
查看配置情况如下
firewall-cmd --get-active-zones
在企业内网测试机上访问网站服服务器
更改SSH的侦听端口并重启服务(需关闭SELinux )
vim /etc/ssh/sshd_config
Port 12345
systemctl restart sshd
配置external区域添加TCP的12345端口
firewall-cmd --zone=external --add-port=12345/tcp --permanent
配置external区域移除SSH服务
firewall-cmd --zone=external --remove-service=ssh --permanent
配置external区域禁止ping
firewall-cmd --zone=external --add-icmp-block=echo-request --permanent
重新加载防火墙激活配置
firewall-cmd --reload
在互联网测试计算机上通过SSH登录网关外部接口地址的12345端口.成功
ssh -p 12345 root@100.1.1.10
在企业内网测试计算机上SSH登录web网站服务器的12345端口.成功
ssh -p 12345 root@192.168.2.10
4、配置IP伪装与端口转发
(1)内网用户通过网关服务器共享网络
外网测试机搭建网站服务,并添加网页测试内容
vim /etc/hostname
internet
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/a.repo
[aaa]
name=aaa
baseurl=file:///media
gpgcheck=0
yum install -y httpd
vim /var/www/html/index.html
<h1>22222<h1>
systemctl enable httpd
systemctl start httpd
在内部测试机上访问外网
在网站服务器上测试
curl http://100.1.1.20
查看网关服务器的external区域是否开启地址伪装
firewall-cmd --list-all --zone=external
(显示伪装地址开启)
masquerade: yes
在网关服务器上关闭 exteranl的伪装地址,在external区域内,源地址192.168.1.0/24网段开启地址IP伪装
firewall-cmd --remove-masquerade --zone=external
firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 masquerade'
在网站服务器上测试,发现无法访问外网网站
curl https://100.1.1.20
curl: (7) Failed connect to 100.1.1.20:443; 没有到主机的路由
(2)配置端口转发实现互联网用户访问内部web服务器 在网关服务器上配置如下
firewall-cmd --zone=external --add-forward-port=port=443:proto=tcp:toaddr=192.168.2.10
在互联网测试机上访问内部web服务器成功
(1) 给内网web服务器申请一个新的ip地址100.1.15端口转发
需要将新公网地址100.1.1.15配置在网关服务器的外网接口ens33上。作为第二个IP地址.
vim /etc/sysconfig/network-scripts/ifcfg-ens33
(添加)
IPADDR1=100.1.1.15
PREFIX1=8
IPADDR0=100.1.1.10
PREFIX0=8
ifdown ens33
ifup ens33
使用富规则配置端口转发
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'
在互联网测试机上访问测试结果