centos 7 firewalld

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章