日常运维(5)firewalld的9个zone,zone的操作,service的操作

firewalld
是centos7的默认防火墙,比起centos6和5所使用的netfilter,firewalld为模块化设计, 使用服务(service) 和区域(zone)来代替 iptables 的规则(rule)和链(chain)。用的时候只需要将所需的service模板和所需的zone模板,拷贝至/etc/firewalld/下对应的zone和service目录里即可,简单修改,重新加载即可。

将前面使用的netfilter关闭,并开启firewalld
systemctl disable iptables   -----关闭iptables服务
systemctl stop iptables   ------停止iptables服务
systemctl enble firewalld  ------开启firewalld服务
systemctl start firewalld    ------启动firewalld服务

firewalld的9个zone
默认情况下,有以下的区域(zone)可用:

drop – 丢弃所有传入的网络数据包并且无回应,只有传出网络连接可用。
block — 拒绝所有传入网络数据包并回应一条主机禁止的 ICMP 消息,只有传出网络连接可用。
public — 只接受被选择的传入网络连接,用于公共区域。
external — 用于启用了地址伪装的外部网络,只接受选定的传入网络连接。
dmz — DMZ 隔离区,外部受限地访问内部网络,只接受选定的传入网络连接。
work — 非军事区,对于处在你工作区域内的计算机,只接受被选择的传入网络连接。
home — 对于处在你家庭区域内的计算机,只接受被选择的传入网络连接。
internal — 对于处在你内部网络的计算机,只接受被选择的传入网络连接。
trusted — 所有网络连接都接受。

firewall-cmd --get-zones 查看所有zone
firewall-cmd --get-default-zone 查看系统默认zone
firewall-cmd --set-default-zone=work 设置默认zone为work
firewall-cmd --get-zone-of-interface=ens33 查看指定网卡所在zone
firewall-cmd --zone=public --add-interface=lo 给指定网卡设置zone
firewall-cmd --zone=dmz --change-interface=lo 针对网卡更改zone
firewall-cmd --zone=dmz --remove-interface=lo 针对网卡删除zone
firewall-cmd --get-active-zones 查看系统所有网卡所在zone

空间模板放在/usr/lib/firewalld/zones/下


列出空间模板文件
[root@aliyun ~]# ls /usr/lib/firewalld/zones/
block.xml dmz.xml drop.xml external.xml home.xml internal.xml public.xml trusted.xml work.xml

要列出所有可用的区域:
[root@aliyun ~]# firewall-cmd --get-zones
work drop internal external trusted home dmz public block


列出默认的区域 :
[root@aliyun ~]# firewall-cmd --get-default-zone
public

改变默认的区域 :
[root@aliyun ~]# firewall-cmd --set-default-zone=public
[root@aliyun ~]# firewall-cmd --get-default-zone
public

firewalld的服务service
firewalld 服务使用 XML 配置文件,记录了 firewalld 服务信息。

firewall-cmd --get-service 列出系统所有的service
firewall-cmd --list-services 列出当前zone下所有的service
firewall-cmd --zone=public --list-services 查看指定zone下所有的service
firewall-cmd --zone=public --add-services=http 把http增加到public zone下
firewall-cmd --zone=public --add-services=http --permanent 把http增加到public zone下且永久生效

服务模板放在/usr/lib/firewalld/services/下

列出服务模板文件
[root@aliyun ~]# ls /usr/lib/firewalld/zones/
block.xml dmz.xml drop.xml external.xml home.xml internal.xml public.xml trusted.xml work.xml
[root@aliyun ~]# ls /usr/lib/firewalld/services/
amanda-client.xml high-availability.xml nfs.xml sane.xml
amanda-k5-client.xml https.xml nrpe.xml sips.xml
bacula-client.xml http.xml ntp.xml sip.xml
bacula.xml imaps.xml openvpn.xml smtp-submission.xml
bitcoin-rpc.xml imap.xml ovirt-imageio.xml smtps.xml
bitcoin-testnet-rpc.xml ipp-client.xml ovirt-storageconsole.xml smtp.xml
bitcoin-testnet.xml ipp.xml ovirt-vmconsole.xml snmptrap.xml
bitcoin.xml ipsec.xml pmcd.xml snmp.xml
ceph-mon.xml iscsi-target.xml pmproxy.xml spideroak-lansync.xml
ceph.xml kadmin.xml pmwebapis.xml squid.xml
cfengine.xml kerberos.xml pmwebapi.xml ssh.xml
condor-collector.xml kibana.xml pop3s.xml synergy.xml
ctdb.xml klogin.xml pop3.xml syslog-tls.xml
dhcpv6-client.xml kpasswd.xml postgresql.xml syslog.xml
dhcpv6.xml kshell.xml privoxy.xml telnet.xml
dhcp.xml ldaps.xml proxy-dhcp.xml tftp-client.xml
dns.xml ldap.xml ptp.xml tftp.xml
docker-registry.xml libvirt-tls.xml pulseaudio.xml tinc.xml
dropbox-lansync.xml libvirt.xml puppetmaster.xml tor-socks.xml
elasticsearch.xml managesieve.xml quassel.xml transmission-client.xml
freeipa-ldaps.xml mdns.xml radius.xml vdsm.xml
freeipa-ldap.xml mosh.xml RH-Satellite-6.xml vnc-server.xml
freeipa-replication.xml mountd.xml rpc-bind.xml wbem-https.xml
freeipa-trust.xml mssql.xml rsh.xml xmpp-bosh.xml
ftp.xml ms-wbt.xml rsyncd.xml xmpp-client.xml
ganglia-client.xml mysql.xml samba-client.xml xmpp-local.xml
ganglia-master.xml nfs3.xml samba.xml xmpp-server.xml

列出所有可用的服务:
[root@aliyun ~]# firewall-cmd --get-services
amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster radius rpc-bind rsyncd samba samba-client sane smtp smtps snmp snmptrap squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server


例:
运行一个 web 服务器,SSH 服务端口为 7022 ,以及邮件服务,你可以利用 firewalld 配置服务器:
首先设置默认区为 dmz
[root@aliyun ~]# firewall-cmd --set-default-zone=dmz[root@aliyun ~]# firewall-cmd --get-default-zonedmz
为 dmz 区添加 HTTP 和 HTTPS 规则:
[root@aliyun ~]# firewall-cmd --zone=dmz --add-service=http --permanent[root@aliyun ~]# firewall-cmd --zone=dmz --add-service=https --permanent
开启端口 25 (SMTP) 和端口 465 (SMTPS) :
[root@aliyun ~]#firewall-cmd --zone=dmz --add-service=smtp --permanent[root@aliyun ~]#firewall-cmd --zone=dmz --add-service=smtps --permanent
开启 IMAP、IMAPS、POP3 和 POP3S 端口:
[root@aliyun ~]#firewall-cmd --zone=dmz --add-service=imap --permanent[root@aliyun ~]#firewall-cmd --zone=dmz --add-service=imaps --permanent[root@aliyun ~]#firewall-cmd --zone=dmz --add-service=pop3 --permanent[root@aliyun ~]#firewall-cmd --zone=dmz --add-service=pop3s --permanent
因为将 SSH 端口改到了 7022,所以要移除 ssh 服务(端口 22),开启端口 7022:
[root@aliyun ~]#firewall-cmd --remove-service=ssh --permanent[root@aliyun ~]#firewall-cmd --add-port=7022/tcp --permanent
要应用这些更改,我们需要重新加载防火墙:
[root@aliyun ~]#firewall-cmd --reload
最后可以列出这些规则:
[root@aliyun ~]# firewall-cmd –list-alldmztarget: defaulticmp-block-inversion: nointerfaces:sources:services: http https imap imaps pop3 pop3s smtp smtpsports: 7022/tcpprotocols:masquerade: noforward-ports:sourceports:icmp-blocks:rich rules:


猜你喜欢

转载自blog.csdn.net/langyue919/article/details/80277434