firewalld是防火墙的另外一种程序,与iptables相同,可是使用起来要比iptables简单的点,不须要了解3张表和5条链也可使用。linux
一、firewall的基本命令vim
"firewall-cmd --list-all"。查看当前的firewall的信息和配置。网络
"firewall-cmd --reload"。从新加载firewall配置,ssh
"firewall-cmd --add-service=xxxx"。添加一个服务,例以下图,添加http,使得这个服务的数据能够经过,可是这个添加是临时的,从新加载配置后就会消失。tcp
"firewall-cmd --permanent --add-service=xxxx"。能够永久添加这个服务。post
"vim /etc/firewalld/zones/public.xml"。firewall的默认模式"public"的配置文件,以下图所示,能够看到添加的服务都在里面,若是在其中按照格式添加"ftp",从新加载后就添加了这个服务了。测试
"firewall-cmd --remove-service=xxxx"。能够去掉某一个服务。spa
"cd /usr/lib/firewalld/services/"。进入这个目录后,以下图所示,输入"ls",就能够看到能够添加哪些服务,而且能够看到这些服务的名称了。.net
"firewall-cmd --permanent --add-port=xxxx/tcp"。使某个端口的数据能够经过。例如在Apache配置文件中将端口改成8080,则即便firewall中添加了htpp也没法访问,由于其设置的能够经过的端口是80。此时须要用上述命令,添加8080端口,完成后,便可使用Apache访问。rest
"firewall-cmd --permanent --add-source=172.25.254.102 --zone=trusted"。表示来自"172.25.254.102"的数据所有经过。若是开启,firewall不添加http,且改成8080端口后不添加到firewall,"172.25.254.102"主机也能够访问Apache。"add"改成"remove"能够取消。
"firewall-cmd --permanent --remove-interface=eth1 --zone=public"。将eth1网卡从public模式下移除。
"firewall-cmd --permanent --add-interface=eth1 --zone=trusted"。将eth1网卡添加到trusted模式下。可是完成后须要重启防火墙"systemctl restart firewalld"才能够生效。
二、firewall的模式
"firewall-cmd --get-default-zone"。查看firewall的默认模式,是public。
"firewall-cmd --get-zones"。查看firewall都有哪几种模式。
"firewall-cmd --set-default-zone=xxx"。将firewall的默认模式改成xxx,这是一个临时更改。
firewall中经常使用的几种模式以下所示:
trusted:信任。可接受全部的网络链接。
home :家庭。用于家庭网络,仅接受dhcpv6-client ipp-client mdns samba-client ssh服务链接。
work :工做。工做网络,仅接受dhcpv6-client ipp-client ssh服务链接。
public :公共。公共区域使用,仅接受dhcpv6-client ssh服务链接,这是firewalld的默认区域。
external:外部。出去的ipv4网络链接经过此区域假装和转发,仅接受ssh服务链接。
dmz :非军事区。仅接受ssh服务链接。
block :限制。拒绝全部网络链接。
drop :丢弃。任何接收的网络数据包都被丢弃,没有任何回复。
三、firewall的应用
例以下图所示,client的主机能够经过ssh链接上server主机。去掉server主机上所添加的ssh服务,这样全部主机都不能链接了。而后在server主机上配置"firewall-cmd --permanent --direct --add-rule -ipv4 filter INPUT 0 ! -s 172.25.254.102 -p tcp --dport 22 -j ACCEPT",该策略表示除了172.25.254.102的主机的数据均可以经过22端口。添加后可使用"firewall-cmd --direct --get-all-rules"来查看所添加的策略。
完成后用client测试,从新经过ssh链接,发现就链接不上了。
去除这条策略将"add"改成"remove"便可。
四、firewall的路由策略
与iptables相同,firewall也能够添加路由策略,使得不一样网段的主机也能够链接。三台主机的IP与网关与iptables篇中相同。
"firewall-cmd --list-all"。基本上是最初的样子。
firewall的路由策略配置以下所示:
"firewall-cmd --permanent --add-masquerade"。打开地址假装功能。
"firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.202 masquerade""。该策略表示,将经过server主机的数据都封装为IP"172.25.254.202"。
"firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.0/24 forward-port port=22 protocol=tcp to-port=22 to-addr=172.25.2.102""。该条策略表示,将全部"172.25.254"网段的经过22端口的数据转到"172.25.2.102"主机上。
完成后重启firewall生效。"firewall-cmd --list-all"能够看到这些策略。
测试时,"2"网段的client主机能够成功链接"254"网段的"172.25.254.2"主机。与iptables相同,"172.25.254.2"的主机上看到的依旧是"172.25.254.202"的链接,ssh链接这个IP就会自动链接到"2"网段的client主机。
iptables和firewall是防火墙中经常使用的两种程序,能够灵活运用。