firewalld的基本规则

一、图形化管理火墙

系统提供了图像化的配置工具 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

测试:






展开阅读全文

没有更多推荐了,返回首页