linux--firewalld(1)

一.firewalld和iptables的关系

firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。

firewalld的配置模式

firewalld的配置文件以xml格式为主(主配置文件firewalld.conf例外),他们有两个存储位置

1、/etc/firewalld/ 用户配置文件

2、/usr/lib/firewalld/ 系统配置文件,预置文件

 

我们知道每个zone就是一套规则集,但是有那么多zone,对于一个具体的请求来说应该使用哪个zone(哪套规则)来处理呢?这个问题至关重要,如果这点不弄明白其他的都是空中楼阁,即使规则设置的再好,不知道怎样用、在哪里用也不行。

对于一个接受到的请求具体使用哪个zone,firewalld是通过三种方法来判断的:

1、source,也就是源地址 优先级最高

2、interface,接收请求的网卡 优先级第二

3、firewalld.conf中配置的默认zone 优先级最低

这三个的优先级按顺序依次降低,也就是说如果按照source可以找到就不会再按interface去查找,如果前两个都找不到才会使用第三个,也就是firewalld.conf中配置的默认zone。


在此之前需要先关闭iptables 打开firewalld防火墙



二.使用命令接口访问防火墙

firewall-cmd --state  ##查看火墙状态


firewall-cmd --get-active-zones  ##查看火墙目前所允许的域


firewall-cmd --get-default-zone  ##默认数据所流通时所用的规则


firewall-cmd --get-zones      ##所有的域


firewall-cmd --zone=public --list-  ##查看public域的信息


firewall-cmd --all-zones     ##所有域的信息


firewall-cmd --list-all      ##火墙所与寻的策略


firewall-cmd --get-services  ##列出火墙中可以用名称显示的服务



三.域的设定不一样造成的效果不一样

下载一个    hpptd


systemctl start hpptd

echo westos>/var/www/html/index.html  将westos倒入到http的根目录下可以看见


firewall-cmd --set-default-zones=srusted (trusted是所有都可以)


ip登陆查看

四.对ip和网络接口的控制

 desktop添加一个新的网卡


两个网卡配置如下:





域改回来发现httpd不能访问了

firewall-cmd --add-source=172.25.30.250 --zone=trusted  ##只有172.25.254.30.250/24的ip访问时是用的trusted域,trusted域可以访问任何

在主机172.25.30.250测试


firewall-cmd --remove-source=172.25.30.250 --zone=trusted  ##删除ip172.25.30.250

firewall-cmd --remove-source=172.25.30.250/24 --zone=trusted  ##删除网段172.25.30.250/24、


测试 172.25.30.135 失败


五.修改端口默认走的区域:

firewall-cmd --list-interfaces   ##查看系统生效的网络接口


firewall-cmd --get-zone-of-interface=eth1  ##查看eth1的接口默认走的区域

 

firewall-cmd --get-zone-of-interface=eth0   ##查看eth0的接口默认的区域

 

firewall-cmd --change-interface=eth0 --zone=trusted   ##修该eth0接口的区域为trusted


firewall-cmd --remove-interface=eth0 --zone=trusted   ##将trusted从eth0端口移除


firewall-cmd --add-interface=eth0 --zone=public       ##添加public域到eth0端口

 


六.保存火墙策略

firewall-cmd --permanent --add-cource=172.25.30.111

firewall-cmd --reload    ##刷新策略是其生效

firewall-cmd --list-all  ##查看系统生效的册策略

 

七.用配置文件更改策略

grep 172.25.30.111 -r /etc   ##过滤/etc下的配置文件172.25.30.111

 

vim /etc/firewalld/zones/public.xml   ##打开配置文件 进行修改添加http策略查看是否生效

 

systemctl restart firewalld   ##刷新防火墙查看是否生效

firewall-cmd --list-all   生效



用端口的方式来

添加端口

firewall-cmd --add-port=8080/tcp --zone=public


访问权力的更改

firewall-cmd --remove-service=ssh  ##临时更改ssh端口

firewall-cmd --reload   ##刷新策略之后

firewall-cmd --list-all  ##查看火墙允许的策略发现又从新生效了

 

firewall-cmd  --permanent --remove-service=ssh  ##永久删除ssh端口

firewall-cmd --reload   ##刷新策略之后

firewall-cmd --list-all  ##查看火墙允许的策略发现消失

但是已经连接的ssh 不会中断 还可以使用命令

 


firewall-cmd --complete-reload  永久关闭并中断当前连接




猜你喜欢

转载自blog.csdn.net/a939029674/article/details/80765961
今日推荐