CentOS7的发布,防火墙功能由现在的Firewalld取代以往的IPtables。在Firewalld的各种服务里,是以区域为定义进行设定的。设定的区域和网络接口关联起来才能有效。今天本文就介绍一下Firewalld基本管理操作。
开/关启Firewalld
1.启动Firewalld,及开机自启。
# systemctl start firewalld # systemctl enable firewalld ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/basic.target.wants/firewalld.service'
2.停止Firewalld,及关闭开机自启。
# systemctl stop firewalld # systemctl disable firewalld rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' rm '/etc/systemd/system/basic.target.wants/firewalld.service'
区域管理
「public」作为默认区域,为网络接口所应用,允许dhcpv6-client, ssh服务。使用「firewall-cmd」可进行多种操作。如果省略指定的应用区域(–zone=***),就使用该默认区域。
1.查看默认区域。
# firewall-cmd --get-default-zone Public
2.查看现在的区域设定。
# firewall-cmd --list-all public (default) interfaces: sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules:
3.查看定义的所有区域。
# firewall-cmd --list-all-zones block interfaces: sources: services: ports: masquerade: no forward-ports: icmp-blocks: rich rules: dmz interfaces: sources: ????? ?????
4.查看指定区域(如external),所允许的服务。
# firewall-cmd --list-service --zone=external ssh
5.变更默认区域(如external)。
# firewall-cmd --set-default-zone=external success
服务管理
1.确认所定义的服务一览。
# firewall-cmd --get-services amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https
2. 所定义的服务保存目录。
# ls /usr/lib/firewalld/services amanda-client.xml ipp-client.xml mysql.xml rpc-bind.xml bacula-client.xml ipp.xml nfs.xml samba-client.xml bacula.xml ipsec.xml ntp.xml samba.xml ????? ?????
注:如果单独追加定义服务的话,在/usr/lib/firewalld/services下,添加XML文件。
添加/删除服务
1.添加http服务(设定即时有效)。
# firewall-cmd --add-service=http success # firewall-cmd --list-service http ssh
2.删除http服务。
# firewall-cmd --remove-service=http success # firewall-cmd --list-service ssh
3.永久添加http服务(为使设定生效,需重启firewalld)。
# firewall-cmd --add-service=http --permanent success # firewall-cmd --reload success # firewall-cmd --list-service http ssh
注:永久变更的话,需要指定「–permanent」参数。如果不指定「–permanent」的话,系统重启后,设定就无效了。
端口的管理
1.添加888端口。
# firewall-cmd --add-port=888/tcp success # firewall-cmd --list-port 888/tcp
2.删除888端口。
# firewall-cmd --remove-port=888/tcp Success # firewall-cmd --list-port
3.永远追加888端口(为使设定生效,需重firewall-cmd )。
# firewall-cmd --add-port=888/tcp --permanent success # firewall-cmd --reload success # firewall-cmd --list-port 888/tcp
ICMP类型的添加/删除
1.添加echo-reply。
# firewall-cmd --add-icmp-block=echo-reply success # firewall-cmd --list-icmp-blocks echo-reply
2.删除echo-reply。
# firewall-cmd --remove-icmp-block=echo-reply success # firewall-cmd --list-icmp-blocks echo-request
3.查看可以指定的ICMP类型一览。
# firewall-cmd --get-icmptypes destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded
本文暂时没有评论,来添加一个吧(●'◡'●)