一、Firewalld
1..啟動服務
systemctl start firewalld
firewall-config ##打開圖形管理界面
圖示:圖形管理界面

Configuration 的設定有兩種:permanent 永久設定
Runtime 臨時設定,設定臨時後需(reload),重新加載
示例:永久添加http服務到public
[root@localhost ~]# vim /etc/firewalld/zones/public.xml
ZONE:【一般預設public】
Trusted(信任):可接受所有的網絡連接配接
Home(家庭):用于家庭網絡,僅接受ssh、mdns、ipp-client、或dhcpv6-client服務連接配接
Inter(内部):用于内部網絡,僅接受ssh、mdns、ipp-client、或dhcpv6-client服務連接配接
Work(工作):用于工作區,僅接受ssh、ipp-client、或dhcpv6-client服務連接配接
Public(公共):在公共區域内使用,僅接受ssh或dhcpv6-client赴俄u連接配接,為firewalld的預設區域
Enternal(外部):出去的ipv4網絡連接配接通過此區域僞裝和轉發,僅接受ssh服務連接配接
Dmz(非軍事區):僅接受ssh服務連接配接
Block(限制):拒絕所有網絡連接配接
Drop(丢棄):任何接收的網絡資料包被丢棄,沒有任何恢複
内容:
Services ##firewalld提供的服務
Ports ##端口
Masquerading ##僞裝
Port forwarding ##端口轉發
Interfaces ##接口
Sources ##指定源位址
2..基本參數的設定
檢視firewall目前狀态
檢視目前活動的工作區域
檢視目前預設的工作區域
檢視所擁有的工作區域
檢視所有可設定的服務
檢視目前預設區域的内容
檢視指定的trusted區的内容
設定預設區域為trusted
永久添加可接收資料包來源,需要重新加載
永久移除可接收資料包來源
永久在trusted區域添加資料包來源
移除
在trusted區域添加eth0接口
在預設區添加可通路端口8080,協定為tcp
移除8080端口
Firewall-cmd --reload (執行明快ing為永久的時候,每次執行完徐重新加載,不然指令不會生效。如果向取消可以執行--complete-reload)
3.direct參數設定
檢視目前國有的direct rules
添加direct rules,設定為ipv4,在filter表中第一條,60主機可以通路,通路端口22,協定tcp
4.僞裝和端口轉發
開啟僞裝
添加僞裝
測試僞裝:用ssh去連接配接60主機,用(w -i)檢視登陸曆史,顯示的是121主機IP,僞裝成功
端口轉發(不轉發之前不能連接配接)
測試:用1虛拟機通路60主機,檢視是IP為121主機進行通路
注意:
/usr/lib/firewalld/services 中存放了firewalld政策可以添加的服務,都以xml格式存在
二、IPTABLES 【防火牆的管理工具】
實驗前需要關閉firewalld,得到一個純淨的環境
安裝iptables
開啟iptables服務
iptables -F##重新整理政策
iptables -t ##指定清單,預設filter
iptables -I INPUT 2 -p tcp --dport 23 -j DROP:插入到第二條政策
iptables -E allowed disallowed:修改規則鍊名稱
iptables -D INPUT 3:删除filter表中的第三條規則
iptables -R INPUT 3 -j ACCEPT:将原來編号為3的規則内容替換為-j
iptables -P INPUT DROP: 設定filter表INPUT鍊的預設規則 ,當資料包沒
有被規則清單裡的任何規則比對到時,按此預設規則處理
iptables -t nat -nL:檢視nat政策
iptables -t nat -L PREROUTING:檢視nat表PREROUTING鍊的規則
iptables
有4可以連接配接
-N redhat:添加自定義鍊名
-D redhat 1:删除自定義鍊下的政策
-X redhat:删除自定義鍊
-A INPUT -s !192.168.0.4 -p tcp --dport 23 -j REJECT:隻
-i eth0:比對從網絡接口 eth0 進來
-o eth0:比對從網絡接口 eth0 出去
-s 192.168.0.1:比對來自 192.168.0.1 的資料包
-d 202.106.0.0/16 比對去往 202.106.0.0/16 網絡的資料包
1.部分示例:
檢視filter表中的政策
重新整理filter表中的政策
儲存之前的政策到kelnel
Iptables -A INPUT -i lo -j ACCPET ##允許lo通路
Iptables -A INPUT -P tcp -dporp 22 -j ACCPET ##允許通路22端口
Iptables -A INPUT -s 172.25.254.60 -j ACCPET ##允許60主機通路所有
Iptables -A INPUT -j REJECT ##拒絕所有
Iptables -nL | cat -b ##在執行cat時加行号
插入到第2條政策
删除INPUT鍊的第三條政策
修改INPUT中的第二條政策
把INPUT的policy由之前預設ACCEPT修改為DROP
2..辨別政策:
Iptables -A INPUT -m state --state NEW -i lo -j ACCEPT ##檢測第一次使用lo使用者通路,通路成功後可以直接允許通路
Iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT ##檢測第一次使用端口22通路,通路成功後可以直接允許通路
Iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
Iptables -A INPUT -j REJECT ##除以上條件的全部拒絕
3.NAT的設定
SNAT:改變轉發資料包的源位址 --to-source:
DNAT:改變轉發資料包的目的位址 --to-dest:
Iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.121 ##改變轉發資料包的目的位址為172.25.254.121
Iptables -t nat -A POSTROUTING -i eth0 -d 172.25.254.121 -j DNAT --to-dest 172.25.0.1 ##改變轉發資料包的源位址為172.25.0.1
本文轉自 無緣 51CTO部落格,原文連結:http://blog.51cto.com/13352594/2048137