yum install firewalld
systemctl enable firewalld
systemctl disable firewalld
systemctl start firewalld
systemctl status firewalld
FirewallD使用區域(zone)的概念來管理,每個網卡對應一個zone,這些zone的配置文件可在/usr/lib/firewalld/zones/下看到,默認的是public,其他區域:
drop
任何流入網絡的包都被丟棄,不作出任何響應,只允許流出的網絡連接。即使開放了某些服務(比如http),這些服務的數據也是不允許通過的。
block
任何進入的網絡連接都被拒絕,並返回 IPv4 的 icmp-host-prohibited 報文或者 IPv6 的 icmp6-adm-prohibited 報文。只允許由該系統初始化的網絡連接。
public(默認)
用以可以公開的部分。你認爲網絡中其他的計算機不可信並且可能傷害你的計算機,只允許選中的服務通過。
external
用在路由器等啓用僞裝的外部網絡。你認爲網絡中其他的計算機不可信並且可能傷害你的計算機,只允許選中的服務通過。
dmz
用以允許隔離區(dmz)中的電腦有限地被外界網絡訪問,只允許選中的服務通過。
work
用在工作網絡。你信任網絡中的大多數計算機不會影響你的計算機,只允許選中的服務通過。
home
用在家庭網絡。你信任網絡中的大多數計算機不會影響你的計算機,只允許選中的服務通過。
internal
用在內部網絡。你信任網絡中的大多數計算機不會影響你的計算機,只允許選中的服務通過。
trusted
允許所有網絡連接,即使沒有開放任何服務,那麼使用此zone的流量照樣通過(一路綠燈)。
/etc/firewalld/firewalld.conf
/etc/firewalld/zones/
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
<service name="http"/>
<service name="https"/>
</zone>
在public zone中開放ssh(22)、http(80)、https(443)端口,其中對應每一個在/usr/lib/firewalld/services/下*.xml文件定義好的服務類型
firewall-cmd --get-active-zones : Find (View) Active Zones in Firewalld
firewall-cmd --get-default-zone : Find (View) Default Zone for Firewalld
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --query-port=80/tcp 查詢是否開啓80端口
firewall-cmd --add-port=80/tcp 開啓80端口
# Check firewall state.
firewall-cmd --state
# Check active zones.
firewall-cmd --get-active-zones
# Check current active services.
firewall-cmd --get-service
# Check services that will be active after next reload.
firewall-cmd --get-service --permanent
#reload the config after making any changes.
firewall-cmd --reload
設置默認區域爲trusted,注意trusted是信任等級最高的,默認允許所有連接,即使沒有設置任何的服務
firewall-cmd --set-dedault-zone=trusted
添加http服務
firewall-cmd --add-service=http
禁用某種服務
firewall-cmd [--zone=<zone>] --remove-service=<service>
查詢區域中是否啓用了特定服務,如果服務啓用,將返回1,否則返回0
firewall-cmd [--zone=<zone>] --query-service=<service>
在firewalld裏添加一個端口
firewall-cmd --add-port=8080/tcp
查詢開啓的端口
firewall-cmd --query-poert=8080/tcp
關閉端口
firewall-cmd [--zone=<zone>] --remove-poert=<port>/tcp
啓用區域端口和協議組合,此舉將啓用端口和協議的組合。端口可以是一個單獨的端口或者是一個端口範
firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]
啓用區域的ICMP阻塞功能
firewall-cmd [--zone=<zone>] --add-icmp-block=<icmptype>
在區域中永久啓用端口轉發或映射
firewall-cmd [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address>}
參考
http://havee.me/linux/2015-01/using-firewalls-on-centos-7.html
http://jim0.com/server/firewalldconfig.html
centos 7 firewalld
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.