防火牆策略管理(firewall)python
做用:隔離安全
局域網和外網之間網絡
阻止入站,容許出站ssh
軟件防火牆tcp
系統服務:firewalldide
管理工具:firewall-cmd(命令工具、 Linux7),firewell-config(圖形工具)工具
查看防火牆服務狀態spa
[root@server0 ~]# systemctl status firewalld.service orm
firewalld.service - firewalld - dynamic firewall daemonserver
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running) since 三 2017-11-01 11:37:48 CST; 4h 6min ago
Main PID: 477 (firewalld)
CGroup: /system.slice/firewalld.service
└─477 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
11月 01 11:37:49 localhost systemd[1]: Started firewalld - dynamic firewall....
Hint: Some lines were ellipsized, use -l to show in full.
預設安全區域
根據所在的網絡場所區分,預設保護規則集
public:僅容許訪問本機的sshd等少數幾個服務(默認進入的區域)
trusted:容許任何訪問
block:拒絕任何來訪請求
drop:丟棄任何來訪的數據包
例:
[root@server0 ~]# firewall-cmd --get-default-zone
public
[root@server0 ~]# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0 eth1 eth2 team0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
防火牆判斷的規則:(匹配及中止)
1.首先看請求(客戶端)當中的源IP地址,全部區域中是否有對於該IP地址的策略,若是有則該請求進入該區域
2.若是沒有,進入默認區
[root@server0 ~]# firewall-cmd --zone=public --add-
--add-forward-port= --add-masquerade --add-service=
--add-icmp-block= --add-port= --add-source=
--add-interface= --add-rich-rule
[root@server0 ~]# firewall-cmd --zone=public --add-service=http #開啓http服務
success
[root@server0 ~]# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0 eth1 eth2 team0
sources:
services: dhcpv6-client http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@server0 ~]# firewall-cmd --zone=public --add-service=ftp #開啓ftp服務
success
[root@server0 ~]# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0 eth1 eth2 team0
sources:
services: dhcpv6-client ftp http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@server0 ~]# firewall-cmd --reload #從新加載配置
success
[root@server0 ~]# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0 eth1 eth2 team0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
--permanent選項 :永久生效,沒有此參數重啓後失效
[root@server0 ~]# firewall-cmd --permanent --zone=public --add-service=ftp #開啓永久ftp服務
success
[root@server0 ~]# firewall-cmd --permanent --zone=public --add-service=http#開啓永久http服務
success
[root@server0 ~]# firewall-cmd --reload #從新加載配置
success
[root@server0 ~]# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0 eth1 eth2 team0
sources:
services: dhcpv6-client ftp http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
修改默認區域
firewall-cmd --set-default-zone=區域名
例:
[root@localhost ~]# ping 172.25.0.11
PING 172.25.0.11 (172.25.0.11) 56(84) bytes of data.
64 bytes from 172.25.0.11: icmp_seq=1 ttl=64 time=0.174 ms
[root@server0 ~]# firewall-cmd --set-default-zone=block
success
[root@localhost ~]# ping 172.25.0.11
PING 172.25.0.11 (172.25.0.11) 56(84) bytes of data.
From 172.25.0.11 icmp_seq=1 Destination Host Prohibited
[root@server0 ~]# firewall-cmd --set-default-zone=drop
success
[root@localhost ~]# ping 172.25.0.11
PING 172.25.0.11 (172.25.0.11) 56(84) bytes of data.
開網段
[root@server0 ~]# firewall-cmd --permanent --zone=public --add-source=172.25.0.10
success
[root@server0 ~]# firewall-cmd --reload
success
[root@server0 ~]# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0 eth1 eth2 team0
sources: 172.25.0.10
services: dhcpv6-client ftp http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
實現本機的端口映射
本地應用的端口重定向(端口1-->端口2)
從客戶機訪問端口1的請求,自動映射到本機端口2
好比,訪問如下兩個地址能夠看到相同的頁面:
http://server0.example.com:5423/
http://server0.example.com/
例:
[root@server0 ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=5423:proto=tcp:toport=80
success
[root@server0 ~]# firewall-cmd --reload
success
[root@server0 ~]# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0 eth1 eth2 team0
sources: 172.25.0.10
services: dhcpv6-client ftp http ssh
ports:
masquerade: no
forward-ports: port=5423:proto=tcp:toport=80:toaddr=
icmp-blocks:
rich rules:
防火牆應對方法
方式1:默認區域block,容許的放入trusted
方式2:默認區域trusted,拒絕的放入block
在RHCE的考試中會涉及到各類服務的配置 爲了是考試變的簡單
能夠將防火牆的應對方法設置爲 默認區域trusted,拒絕的放入block
在兩臺虛擬機上執行以下操做
# firewall-cmd --set-default-zone=trusted
在RHCE的考試中有一道題目是:
在RHCE7的考試中有一道考試題目是:
按如下要求配置 SSH 訪問:
用戶可以從域 example.com(這個域名考試會改變) 內的客戶端 SSH 遠程訪問您的兩個虛擬機系統
在域 my133t.org (這個域名考試會改變) 內的客戶端不能訪問您的兩個虛擬機系統
這道題也能夠用經過配置防火牆策略 將這個網段放入block區域
例如 my133t.org 對應的網段爲 172.34.0.0 在兩臺虛擬機上執行以下操做
# firewall-cmd --permanent --add-source=172.34.0.0/24 --zone=block
*若是想要經過配置SSH服務來完成這道題 能夠訪問 http://www.javashuo.com/article/p-zwlufrva-kx.html
在系統 server 0上配置端口轉發,要求以下:
在 172.25.0.0/24 網絡中的系統,訪問 server0 的本地端口 5423 將被轉發到80
此設置必須永久有效
# firewall-cmd --permanent --zone=trusted --add-forward- port=port=5423:proto=tcp:toport=80
注意 凡是執行配置防火牆策略中 帶有 --permanent 選項的命令時 都要執行以下操做
# firewall-cmd --reload #從新加載配置