一、firewall管理
1、相关概念:
防火墙守护firewalld服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持ipv4与ipv6,并支持网桥,采用firewall-cmd(command)或firewall-config(gui)来动态的管理kernelnetfilter的临时或永久的接口规则,并实时生效而无需重启服务。iptablesservice在/etc/sysconfig/iptables中储存配置,而firewalld将配置储存在/usr/lib/firewalld/和/etc/firewalld/中的各种XML文件里.使用iptablesservice每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则,然而使用firewalld却不会再创建任何新的规则;仅仅运行规则中的不同之处。因此,firewalld可以在运行时间内,改变设置而不丢失现行连接。
Firewall能将不同的网络连接归类到不同的信任级别,Zone提供了以下几个级别:
drop:丢弃所有进入的包,而不给出任何响应
block:拒绝所有外部发起的连接,允许内部发起的连接
public:允许指定的进入连接
external:同上,对伪装的进入连接,一般用于路由转发
dmz:允许受限制的进入连接
work:允许受信任的计算机被限制的进入连接,类似workgroup
home:同上,类似homegroup
internal:同上,范围针对所有互联网用户
2、安装管理工具
yuminstall firewalld firewall-config -y
3、图形界面:firewall-config
runtime临时更改,即改即生效
permanent ,永久更改,需要重新加载火墙,并重启
4、相关命令
systemctlstart firewalld ---启动防火墙
systemctlstop firewalld ---关闭防火墙
firewall-cmd--state ---查看火墙状态
firewall-cmd--get-active-zones ---获取当前生效的工作域
firewall-cmd--get-default-zone ---默认域
firewall-cmd--get-zones ---获得所有域
firewall-cmd--zone=public --list-all ---显示指定域的所策略
firewall-cmd--get-services ---获取支持的服务
firewall-cmd--list-all-zones ---列出所有域策略
firewall-cmd--list-all-zones ---列出所有域策略
firewall-cmd--set-default-zone=xxx ---设定默认域
(--permanent参数表示永久生效设置,设置后需要要重新加载防火墙策略或重启防火墙使它生效。如果没有指定--zone=xxx参数,那么会加入默认区域,需要指定区域
firewall-cmd--zone=internal --add-source=172.25.254.139/24 ---允许来自139的访问
firewall-cmd--zone=internal --remove-source=172.25.254.139/24 ---移除策略
firewall-cmd--zone=internal --add-interface=eth0 ---添加网卡
firewall-cmd--zone=internal --change-interface=eth0
firewall-cmd--zone=internal --remove-interface=eth0 ---删除网卡
firewall-cmd--zone=public --add-port=80/tcp ---添加端口
firewall-cmd--zone=public --add-service=http ---添加服务
firewall-cmd--zone=public --remove-port=80/tcp ---删除端口
firewall-cmd--zone=public --remove-service=http ---删除服务
firewall-cmd--reload ---重新加载策略
firewall-cmd--complete-reload ---重新加载策略
f注意:这并不会中断已经建立的连接,如果打算中断,可以使用 --complete-reload选项)firewalld的规则被保存在/etc/firewalld目录下的文件中,你也可以直接编辑这些文件达到配置防火墙的目的。/usr/lib/firewalld目录下的内容是不可以被编辑的,但可以用做默认模板。
5、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 --remove-rule ipv4 filter IN_public_allow 10 -p tcp --dport80 -jACCEPT ---删除规则
6、RichRules
通过该方法,可以用比直接接口方式更易理解的方法建立复杂防火墙规则。此外,还能永久保留保留设置,这种语法使用关键词值。
主要参数:source源地址,destination目的地址,service服务名称,port端口,protocol协议名
地址伪装示例:
firewall-cmd --add-masquerade ---开启地址伪装
firewall-cmd--add-rich-rule='rule family=ipv4 source address=172.25.254.100masquerade' ---设定伪装的地址策略
端口转发示例:
firewall-cmd–add-forward-port=port=80:proto=tcp:toport=8080:toaddr=172.25.50.100