firewall防火墙配置命令合集(centos7)

2022-10-08  本文已影响0人  堕落似梦

本合集整理所有firewall防火墙配置相关的命令,在使用firewall防火墙过程中,不常用的命令要搜索好久才找到,现将firewall的命令整理了一下,方便后面需要的时候查找。

查看防火墙的命令

firewall-cmd --version    #查看防火墙的版本
firewall-cmd --state    #查看firewall的状态
systemctl status firewalld    #查看firewall服务状态(普通用户可执行)
firewall-cmd --list-all    #查看防火墙全部的信息。
firewall-cmd --list-port    #查看防火墙已开通的端口
firewall-cmd --list-service    #查看防火墙已开通的服务
firewall-cmd --get-services    #查看全部的服务列表(普通用户可执行
systemctl is-enabled firewalld    #查看防火墙服务是否开机启动

配置防火墙的命令

启动、重启、关闭防火墙服务

systemctl start firewalld    #启动
systemctl restart firewalld    #重启
systemctl stop firewalld    #关闭

开放、移去某个端口

firewall-cmd --zone=public --add-port=80/tcp --permanent    #开放80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent    #移去80端口

开放、移去范围端口

firewall-cmd --zone=public --add-port=5000-5500/tcp --permanent    #开放5000-5500之间的端口
firewall-cmd --zone=public --remove-port=5000-5500/tcp --permanent    #移去5000-5500之间的端口

开放、移去服务。

firewall-cmd --zone=public --add-service=ftp --permanent    #开放ftp服务
firewall-cmd --zone=public --remove-service=ftp --permanent    #移去http服务

重新加载防火墙配置(修改配置后要重新加载防火墙配置或重启防火墙服务)

firewall-cmd --reload

配置文件位置:/etc/firewalld/zones/public.xml

设置开机时启用、禁用防火墙服务

systemctl enable firewalld    #启用服务
systemctl disable firewalld    #禁用服务

应用命令

允许ip或ip段访问某些端口

允许ip或ip段访问22端口的ssh服务,例如下面命令执行后,将允许192.168.1.0/24这个ip段允许访问ssh服务

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'

禁止ipv6访问22端口

firewall-cmd --zone=public --add-rich-rule=" rule family="ipv6" source address="::/0" port port="22" protocol="tcp" reject " --permanent

禁ping

常规禁止ping(没有白名单)

firewall-cmd --permanent --add-rich-rule='rule protocol value="icmp" drop'

禁止某一端口

优先级比开端口高

firewall-cmd --permanent --add-rich-rule='rule port protocol="tcp" port="25" drop'

通过'icmp-block-inversion'实现禁ping(有白名单)

该方式其实就是如下一条iptables策略(并不是-j drop):
-A IN_public -p icmp -j REJECT --reject-with icmp-host-prohibited
当ping目的服务器时,会收到“Destination host 192.168.xx.xx administratively prohibited”响应!
这和我们想要的(直接drop)有些出入,但是,我们可以设置白名单策略!

# 禁止所有源ping
firewall-cmd --permanent --add-icmp-block-inversion
# 允许192.168.188.30 ping
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="192.168.188.30" icmp-type name="echo-request" accept'

rich rule的匹配优先级策略

日志规则始终在拒绝规则之前发生。 拒绝规则总是发生在允许规则之前。
rich rule会完全封堵icmp包,不再允许白名单设置:即便有下面的“允许192.168.188.30”也不会放行;这是跟rich rule的匹配优先级策略有关!
因此firewalld的rich规则匹配顺序如下:

删除rich规则

firewall-cmd --permanent --zone=public --remove-rich-rule=" rule family="ipv6" source address="::/0" port port="22" protocol="tcp" reject "

端口转发

内部端口转发

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 forward-port port=22002 protocol=tcp to-port=22'
# 或者
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 forward-port port=22001 protocol=tcp to-port=22 to-addr=192.168.10.151'
# reload配置以令生效
firewall-cmd --reload

外部端口转发

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 forward-port port=22003 protocol=tcp to-port=22 to-addr=192.168.188.29'
firewall-cmd --permanent --add-masquerade
# 或者只允许源地址为192.168.14.0/23地址访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.14.0/23 masquerade'
firewall-cmd --reload

参考资料

【1】Firewalld禁止IP或端口访问命令
【2】端口转发:firewalld rich rule实现

上一篇 下一篇

猜你喜欢

热点阅读