centos7的firewalld防火墙有区域的概念,默认有下面九个区域,各自的作用如下

centos7新的firewalld防火墙有区域的概念,默认有下面九个区域,各自的作用如下

drop      任何传入本机的网络数据包都会被丢弃,并且不会回复,只允许本  机对外访问其他的服务器,推荐把需要进行网络限制的网卡绑定到这个区域
block      任何传入本机的网络数据包都会被丢弃,并且会回复一条拒绝访问的消息,只允许本机对外访问其他的服务器
public     除了ssh连接的22端口和dhcpv6-client的546端口,其他传入本机的网络数据包都会被丢弃,系统默认的防火墙就工作在这个区域
external    除了ssh连接的22端口和端口转发的连接,其他传入本机的网络数据包都会被丢弃
dmz         除了ssh连接的22端口,其他传入本机的网络数据包都会被丢弃
work        除了ssh连接的22端口和dhcpv6-client的546端口,其他传入本机的网络数据包都会被丢弃
home        除了ssh连接的22端口和dhcpv6-client的546端口,mdns的5353端口,samba服务的137,138端口,其他传入本机的网络数据包都会被丢弃
internal    除了ssh连接的22端口和dhcpv6-client的546端口,mdns的5353端口,samba服务的137,138端口,其他传入本机的网络数据包都会被丢弃
trusted     所有对本机的网络连接请求都会被接受,如果不想对网络进行任何限制,就把接口绑定到这个区域

使用firewall-cmd命令来对防火墙进行配置,经常使用的参数如下

--get-default-zone              查看系统默认的区域名称             
--set-default-zone=<区域名称>    设置系统默认的区域名称并永久生效
--get-zones                     显示可用的区域
--get-services                  显示可用的服务
--get-active-zones              显示当前正在使用的区域
--add-source=ip地址或ip地址段     把源自此ip地址或ip地址段的流量导入到指定的区域
--remove-source=ip地址或ip地址段  在指定的区域移除此ip地址或ip地址段的流量
--get-zone-of-interface=<网卡名称>  查看该网卡所在的区域
--add-interface=<网卡名称>       把该网卡的流量绑定到某个区域
--change-interface=<网卡名称>    把该网卡的流量更改到某个区域,一般使用这个命令,来对网卡的区域进行改变
--list-all                      显示当前指定区域的网卡配置
--list-all-zones                显示所有区域的网卡配置
--add-port=<端口号>              添加端口
--remove-port=<端口号>           删除端口
--reload                        让防火墙重新应用新更改的规则
--add-rich-rule                 创建富规则
--remove-rich-rule              删除富规则
--panic-on                      开启应急状况模式,会断开所有连接,只能本地登陆系统
--panic-off                     关闭应急状况模式,这时就可以远程连接机器
--zone                          指定区域

如果想让更改的规则永久生效,那么就需要在firewall-cmd命令后面加入

firewall-cmd --permanent

规则添加完了,以后在使用

firewall-cmd --reload

让规则生效
如果添加的规则,没有添加这个参数,那么系统重启后,新增加的规则就会失效


使用下面的命令启动和停止防火墙

systemctl start firewalld.service
systemctl restart firewalld.service
systemctl stop firewalld.service

firewall-cmd --get-active-zones
查看系统当前正在使用的区域和关联的网卡
firewall-cmd --zone=trusted --list-all
查看指定区域的详细配置,本例查看的是trusted区域
firewall-cmd --zone=drop --change-interface=ens33
把ens33网卡的区域设置为drop,这样任何想连接ens33的流量都会被丢弃,所有机器都不能访问ens33网卡,推荐把需要进行网络限制的网卡进行这样的设置,然后根据需要来开放某些端口,让指定的ip地址来访问
要把端口对某个ip地址开放,就需要使用下面的命令来进行设置

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.0.81" port protocol="tcp" port="22" accept"

上面的命令,就是在drop区域,设置了一条富规则,这个规则的意思就是允许192.168.0.81这个ip地址,可以访问22端口
如果要移除这个富规则,就使用下面的命令

firewall-cmd --zone=drop --remove-rich-rule="rule family="ipv4" source address="192.168.0.81" port protocol="tcp" port="22" accept"

想对网卡进行网络限制,就按照上面的规则设置就可以了


对于一个接受到的请求,具体使用哪个zone,防火墙是根据下面的规则来进行判断的:
一:source,来源地址
二,interface,接受请求的网卡地址
三,防火墙配置的默认区域
判断顺序就是按照上面的顺序来进行的,比如在
192.168.0.80上面配置了防火墙,然后在192.168.0.81上面访问192.168.0.80
那么192.168.0.80上面的防火墙,会首先判断网络请求的来源地址,本例就是192.168.0.81,如果防火墙中没有对这个来源地址配置规则,那么防火墙开始判断接受请求的网卡有没有配置规则,如果接受请求的网卡也没有配置规则,那么就会对这个请求按照防火墙配置的默认区域的规则进行处理


比如在192.168.0.80的上面设置了下面的防火墙规则

firewall-cmd --zone=trusted --add-source=192.168.0.81
firewall-cmd --zone=drop --change-interface=ens33

因为192.168.0.81作为来源地址,被绑定到了trusted区域,所以只要来源是192.168.0.81的网络请求,都会被trusted区域的规则处理,如果是其他的ip地址,并且是访问ens33网卡的,那么因为防火墙规则没有绑定其他的来源地址,所以都会被ens33网卡绑定的drop区域的规则处理


还有一点要注意,一个来源地址只能被绑定到一个区域,不能被绑定到多个区域,如果要更改绑定区域,要先删除原来的绑定区域

比如上面要把来源地址192.168.0.81绑定到home区域,那么就要先删除原来绑定的trusted区域
使用下面的命令进行删除

firewall-cmd --zone=trusted  --remove-source=192.168.0.81

在drop区域开放80端口

firewall-cmd --zone=drop --add-port=80/tcp

这个规则的作用就是允许任意地址访问80端口


在drop区域,允许ping

firewall-cmd --zone=drop --add-protocol=icmp

在drop区域,禁止ping

firewall-cmd --zone=drop --remove-protocol=icmp

注意上面的规则,都没有使用–permanent参数,所以只要服务器重启,这些规则就会失效,如果想让这些规则永久生效,就需要在这些规则前面加入–permanent参数

比如像下面这样

firewall-cmd  --permanent --zone=trusted --add-source=192.168.0.198
firewall-cmd --permanent --zone=drop --add-interface=ens33
firewall-cmd --permanent --zone=drop --add-protocol=icmp
firewall-cmd --reload

上面就是使用–permanent参数添加了3条防火墙的规则,最后使用firewall-cmd --reload命令来让配置立即生效,并且上面配置的规则在服务器重启以后,还会继续生效

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值