linux之firewalld

firewalld

1.定义:

    Firewalld 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。

zone概念:

drop(丢弃)
任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。
block(限制)
任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。
public(公共)
在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。
external(外部)
特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。
dmz(非军事区)
用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。
work(工作)
用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。
home(家庭)
用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。
internal(内部)
用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。
trusted(信任)
可接受所有的网络连接。
指定其中一个区域为默认区域是可行的。当接口连接加入了 NetworkManager,它们就被分配为默认区域。安装时,firewalld 里的默认区域被设定为公共区域。


2. 配置:

systemctl mask iptables   冻结iptables

firewall-config    图形界面的管理

firewall-cmd --zone=public --list-all   列出指定域的所有设置

linux之firewalld

firewall-cmd --state        查看火墙状态
firewall-cmd --get-active-zones    查看当前活动的区域,并附带一个目前分配给它们的接口列表
linux之firewalld
firewall-cmd --get-default-zone  查看默认区域:
firewall-cmd --get-zones                 查看所有可用区域
firewall-cmd --get-services   列出所有预设服务:(这样将列出 /usr/lib/firewalld/services/ 中的服务器名称。注意:配置文件是以服务本身命名的service-name. xml)
linux之firewalld

 firewall-cmd --list-all-zones  列出所有区域的设置

firewall-cmd --set-default-zone=dmz  设置默认区域

linux之firewalld

firewall-cmd --permanent --zone=internal --add-source=172.25.0.0/24  设置网络地址到指定的区域

linux之firewalld

firewall-cmd --reload
firewall-cmd --permanent --zone=internal --remove-source=172.25.0.0/24
(--permanent参数表示永久生效设置,如果没有指定--zone参数,那么会加入默认区域)
删除指定区域中的网路地址:
firewall-cmd --reload



添加、改变、删除网络接口:
firewall-cmd --permanent --zone=internal --add-interface=eth0
firewall-cmd --permanent --zone=internal --change-interface=eth0
firewall-cmd --permanent --zone=internal --remove-interface=eth0
linux之firewalld

添加、删除服务:
firewall-cmd --permanent --zone=public --add-service=smtp
firewall-cmd --permanent --zone=public --remove-service=smtp
linux之firewalld

firewall-cmd --reload
(注意:这并不会中断已经建立的连接,如果打算中断,可以使用 --complete-reload选项)

2.2Direct Rules


将服务改为默认拒绝      
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.21 -p tcp --dport 22 -j ACCEPT

firewall-cmd --direct --remove-rule ipv4 filter INPUT 0 ! -s 172.25.254.21 -p tcp --dport 22 -j ACCEPT

linux之firewalld

linux之firewalld
linux之firewalld


2.3 Rich Rules

定义:


端口转发
 firewall-cmd --permanent --add-masquerade
firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.1

登陆时是172.25.254.1的密码

linux之firewalld

测试:登陆172.25.254.121是却登陆到172.25.254.1

linux之firewalld
伪装:
 firewall-cmd --permanent --add-masquerade
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=172.25.254.0/24 masquerade'

firewall-cmd --reload

linux之firewalld

测试:172.25.21.21登陆172.25.254.1却显示172.25.254.121登陆

linux之firewalld