linux下防火墙的管理工具firewall-cmd
作为内核的管理软件firewall-cmd,通过使用这个软件来间接管理linux内核的开启与关闭等等,而firewall-cmd软件也本身支持firewall-cmd(命令)firewall-config(图形管理工具)两种管理模式来管理kerne lnetfilte。
配置文件:/usr/lib/firewalld/和/etc/firewalld/中的各种XML文件里。
Firewall能将不同的网络连接归类到不同的信任级别,Zone提供了以下几个级别:
drop:丢弃所有进入的包,而不给出任何响应
block:拒绝所有外部发起的连接,允许内部发起的连接
public:允许指定的进入连接
external:同上,对伪装的进入连接,一般用于路由转发
dmz:允许受限制的进入连接
work:允许受信任的计算机被限制的进入连接,类似workgroup
home:同上,类似homegroup
internal:同上,范围针对所有互联网用户
trusted:信任所有连接
1)安装 yum install firewall -y (一般都会装机时候自带)
firewall-config ------firewalld 的图形管理工具
runtime : 改了当时生效,但所systemctl restart firewall 后就失效了。
permanent : y永久性生效,但是写完之后必须systemctl restart firewall
所有永久性的更改会保存在 /usr/lib/firewall/zones/ 目录下的对应xml文件中,比如下图就是保存在了/usr/lib/firewall/zones/public.xml文件中。
2)命令firewall-cmd 添加各种功能
firewall-cmd --state ------------查看火墙状态
firewall-cmd --get-default-zone ----------查看默认域
firewall-cmd --get-active-zones ---------------查看当前生效域的状态
firewall-cmd -get-zones -------------查看存在的所有域
firewall-cmd --zone=public --list-all ------------------查看public域的所有信息
firewall-cmd --list-all-zones --------------查看所有域的所有信息
firewall-cmd --set-default-zone=home ---------------将默认域设置为home
3)高级命令设置
1、firewall-cmd -zone=public --add-source=172.25.254.50/24 ---------将172.25.254.50的主机添加到本机public块中,使得它可以访问本地资源
firewall-cmd --zone=public --remove-source=172.25.254.50/24 --------------移除172.25.254.50 主机。
firewall-cmd --remove-intenface=eth0 ------------删除接口eth0
firewall-cmd --add-interface=eth0 -----------添加接口eth0.
firewall-cmd --permanent --remove-port=80/tcp ----------------删除端口80
firewall-cmd --reload 和 firewall-cmd --complete-reload的区别:
firewall-cmd --reload在执行之后并不会将正在运行的服务打断,而firewall-cmd --complete-reload 将会把正在运行的服务打断,比如先将172.25.254.50 通过ssh连接主机172.25.254.220,然后在将50主机加入到block域中,最后执行firewall-cmd --complete-reload 命令时候50主机将会连输入字符的机会都没有了。所以说通过firewall-cmd --complete-reload 可以随时禁止哪台主机。
3)、DirectRules
通过 firewall-cmd工具,可以使用--direct选项在运行时间里增加或者移除链。如果不熟悉iptables,使用直接接口非常危险,因为您可能无意间导致防火墙被入侵。直接端口模式适用于服务或者程序,以便在运行时间内增加特定的防火墙规则。直接端口模式添加的规则优先应用。
参数:filter(本地数据限制):(-s源地址,-d目的地址,-p协议,--dport端口,-j行为/REJECT拒绝/ACCEPT同意/DROP丢弃)
firewall-cmd--direct --add-rule ipv4 filter IN_public_allow 0 -p tcp --dport 80-jACCEPT ---添加规则
firewall-cmd--direct --get-all-rules ---列出规则
firewall-cmd --direct -add -rule ipv4 filter INPUT 1 -s 172.25.254.50 -p tcp -dport 22 -j REJECT ----------拒绝50主机的22端口访问。
4)RichRules
通过该方法,可以用比直接接口方式更易理解的方法建立复杂防火墙规则。此外,还能永久保留保留设置,这种语法使用关键词值。
主要参数:source源地址,destination目的地址,service服务名称,port端口,protocol协议名
地址伪装示例:
连接220主机,但是220主机成功将连接请求转到了50主机。