一、图形化管理火墙
系统提供了图像化的配置工具 firewall-config 、 system-config-firewall, 提供命令行客户端 firewall-cmd, 用于配置 firewalld 永久性或非永久性运行时间的改变。
1、下载图形管理命令
yum install firewall-config
2、使用命令调出图形
firewall-config
3、在图形处进行选择,另一方进行监控firewalld的变化
watch -n 1 'firewall-cmd --list-all'
图形化的界面
若为runtime模式仅选中即可,不用重启火墙,但若选择permanent,要重启火墙才能使策略生效。
二、firewalld的配置存储
/etc/firewalld
进行所有的命令,均是改变此中文件/etc/firewalld/zones中的文件的内容,也可在文件中直接改动,改完后需要进行重启服务。
/usr/lib/firewalld中的各种xml文件中
三、firewalld的基本使用命令
启用命令
systemctl start firewalld ##开启防火墙
systemctl enable firewalld ##开机自动开启防火墙
systemctl stop firewalld ##关闭防火墙
systemctl disable firewalld ##开机不自动开启防火墙
配置火墙命令
firewall-cmd --state ##火墙状态,开启或者停止
firewall-cmd --get-active-zones ##正在活跃的火墙域
firewall-cmd --get-default-zone ##火墙中默认的域
firewall-cmd --get-zones ##火墙中所有存在的域
firewall-cmd --zone=public --list-all ##查看public域中的所有信息
firewall-cmd --get-services ##火墙中所有可以提供的服务
此中所有列出的服务的名字均可以进行自行改变,在/usr/lib/firewalld/service中有所有的服务列表,将其中的名字进行改变,但仍然以xml进行结尾,即可进行改变名字,但通常不这么做。
firewall-cmd --list-all-zones ##列出火墙中的所有域及所有信息
firewall-cmd --set-default-zone=dmz ##将dmz域设置为默认的域
[root@localhost zones]# firewall-cmd --add-service=http ##给默认域中添加服务http
[root@localhost zones]# firewall-cmd --remove-service=http ##删除默认域中的服务http
测试:
[root@localhost zones]# firewall-cmd --add-port=8080/tcp ##给默认域中添加tcp端口8080
[root@localhost zones]# firewall-cmd --remove-port=8080/tcp ##删除默认域中的8080端口
测试:将httpd服务的端口改为8080,并在火墙中加入该端口
此时,火墙的默认域为public,且没有添加http服务
[root@localhost zones]# firewall-cmd --add-source=172.25.254.73 --zone=trusted
[root@localhost zones]# firewall-cmd --remove-source=172.25.254.73 --zone=trusted
##此ip在访问时可以进行火墙中的额任何服务,走的是trusted这个域
测试:
此时server虚拟机有两块网卡,可以进行设置,将eth0走public域,eth1走bmz域
此间有一个问题,必须将两块网卡的ip设置为在不同的网段内,经过实验,若将两块网卡放在同一个网段内的话,会出现两块网卡都走的是默认的域,没有实验效果。
[root@localhost zones]# firewall-cmd --change-interface=eth1 --zone=dmz
测试:
172.25.71.1 走的是dmz域
172.25.254.173 走的是public域,我在其中加入了http服务
通过 firewall-cmd 工具 , 可以使用 --direct 选项在运行时间里增加或者移除链。
[root@localhost zones]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.73 -p tcp --dport 80 -j REJECT
表示在filter表中第一行加入 http服务(80端口)对于172.25.254.73不开放
测试:
语句成功后:
##使用--direct 语句使得172.25.254.73主机不能实现ftp服务的连接
[root@localhost zones]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.73 -p tcp --dport 21 -j REJECT
测试:
172.25.254.73主机:
别的主机:
地址伪装:
将172.25.71.2主机使用sshd访问172.25.254.73主机时访问的是173主机
思想:
1、需要一个双网卡的主机充当路由器,此路由器必须与172.25.71.2和172.25.254.73可以进行通信
2、172.25.71.2主机将可以与他进行通信的路由器的端口设置成网关
路由器:
[root@localhost zones]# firewall-cmd --add-masquerade
[root@localhost zones]# firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.173
测试: