操作firewalld
前面已有文章大概介绍了firewalld,这个Centos 7新引入的组件,
Centos7引入了新的防火墙firewalld, iptables被取代
启动,停止,或者查看状态,使用service或者centos 7新引入的systemd
$> sudo service firewalld [start|stop|restart|status]
$> sudo systemd [start|stop|restart|status] firewalld
除了使用service或者systemd的status选型来查看状态,还可以firewall-cmd
$> firewall-cmd –state
running
会直接告诉你firewalld是否运行,
firewalld引入2个重要的概念,zone(域)和service(服务),zone是来一些列规则的集合,service表示了这些规则中一条。zone有默认的zone。这些概念有些复杂,这里我们暂且不去讨论这些概念,看看如何简单添加我们需要的端口,例如我们要添加tcp的8080端口
$> sudo firewall-cmd --zone=public --add-port=8080/tcp
success
上面命令就有个zone,名字是public,这个firewalld初始就有的zone,并且是默认的域。下面查看我们刚才添加的端口是否成功:
$> firewall-cmd --list-ports
8080/tcp
可以看到8080已经添加成功。
下面我们添加udp的端口,下面是端口范围,当然udp可以换成tcp
$> sudo firewall-cmd --zone=public --add-port=8000-8010/udp
下面再查看添加的端口:
$> firewall-cmd --list-ports
8000-8010/udp 8080/tcp
上面的添加都是零时的,系统重启后,都将消失,为了永久添加,使用 permanent参数,例如:
$> sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
下面简单提一下zone
列出所有的zone
firewall-cmd --list-all-zones | less
当前活动的zone
firewall-cmd --get-active-zones
设置默认的zone
sudo firewall-cmd --set-default-zone=home
列出所有的services
firewall-cmd --get-services
所有的services对应一个xml文件,全部放在下面的文件夹下面:
sudo ls /usr/lib/firewalld/services/
amanda-client.xml dns.xml ipp-client.xml ldap.xml mysql.xml pmwebapis.xml RH-Satellite-6.xml telnet.xml
bacula-client.xml ftp.xml ipp.xml libvirt-tls.xml nfs.xml pmwebapi.xml rpc-bind.xml tftp-client.xml
bacula.xml high-availability.xml ipsec.xml libvirt.xml ntp.xml pop3s.xml samba-client.xml tftp.xml
dhcpv6-client.xml https.xml kerberos.xml mdns.xml openvpn.xml postgresql.xml samba.xml transmission-client.xml
dhcpv6.xml http.xml kpasswd.xml mountd.xml pmcd.xml proxy-dhcp.xml smtp.xml vnc-server.xml
dhcp.xml imaps.xml ldaps.xml ms-wbt.xml pmproxy.xml radius.xml ssh.xml wbem-https.xml
下面列出ssh的service文件
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22"/>
</service>
可以根据自己的需要添加service,然后让firewalld重新加载就可以了
sudo firewall-cmd --reload
再次查看所有services
firewall-cmd --get-services
更多内容,请参看:
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章转载自:IT夜班车,否则按侵权处理 .