侧边栏壁纸
博主头像
liunx小白的博客 博主等级

行动起来,活在当下

  • 累计撰写 2 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

centos7防火墙的一些操作

Administrator
2024-11-08 / 0 评论 / 0 点赞 / 27 阅读 / 0 字

centos7防火墙的一些操作


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

drop      任何传入本机的网络数据包都会被丢弃,并且不会回复,只允许本  机对外访问其他的服务器,推荐把需要进行网络限制的网卡绑定到这个区域
block      任何传入本机的网络数据包都会被丢弃,并且会回复一条拒绝访问的消息,只允许本机对外访问其他的服务器
public     除了ssh连接的22端口和dhcpv6-client的546端口,其他传入本机的网络数据包都会被丢弃,系统默认的防火墙就工作在这个区域
           默认其他主机可以ping通本机
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地址段的流量
--add-port                      添加端口
--remove-port                   移除端口
--add-protocol                  添加协议
--remove-protocol               移除协议
--add-rich-rule                 创建富规则
--remove-rich-rule              删除富规则
--get-zone-of-interface=<网卡名称>  查看该网卡所在的区域
--add-interface=<网卡名称>       把该网卡的流量绑定到某个区域
--change-interface=<网卡名称>    把该网卡的流量更改到某个区域,一般使用这个命令,来对网卡的区域进行改变
--list-all                      显示当前指定区域的网卡配置
--list-all-zones                显示所有区域的网卡配置
--reload                        让防火墙重新应用新更改的规则
--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 --permanent --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 --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.0.81" port protocol="tcp" port="22" accept"

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

如果要拒绝,那么就使用
firewall-cmd --zone=trusted --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.81" port protocol="tcp" port="22" reject"
表示如果源地址是192.168.0.81,那么就拒绝访问22端口

想对某个ip地址允许ping

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.31.77" protocol value="icmp" accept"

对于一个接受到的请求,具体使用哪个zone,防火墙是根据下面的规则来进行判断的:


如果使用了--add-source添加了某一个来源Ip地址,
如果设置的区域是drop区域,那么就会走drop区域的规则,如果不能匹配,那么就直接丢弃数据包
如果设置的区域是public区域,那么会先检查是否匹配public区域的规则,如果不匹配,那么还会继续匹配网卡默认区域的规则
如果设置的区域是trusted区域,那么就可以访问任何端口和协议



二,interface,接受请求的网卡地址的默认区域
如果来源地址不能和--add-source里面设置的地址匹配上,那么就会按照网卡设置的区域的规则进行匹配

比如在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命令来让配置立即生效,并且上面配置的规则在服务器重启以后,还会继续生效

0

评论区