天天看點

linux--Firewalld、Iptables防火牆的設定

一、Firewalld

1..啟動服務

systemctl start firewalld

firewall-config ##打開圖形管理界面

圖示:圖形管理界面

linux--Firewalld、Iptables防火牆的設定

Configuration 的設定有兩種:permanent 永久設定

Runtime 臨時設定,設定臨時後需(reload),重新加載

示例:永久添加http服務到public

[root@localhost ~]# vim /etc/firewalld/zones/public.xml 

linux--Firewalld、Iptables防火牆的設定

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目前狀态

檢視目前活動的工作區域

linux--Firewalld、Iptables防火牆的設定

檢視目前預設的工作區域

linux--Firewalld、Iptables防火牆的設定

檢視所擁有的工作區域

linux--Firewalld、Iptables防火牆的設定

檢視所有可設定的服務

linux--Firewalld、Iptables防火牆的設定

檢視目前預設區域的内容

linux--Firewalld、Iptables防火牆的設定

檢視指定的trusted區的内容

linux--Firewalld、Iptables防火牆的設定

設定預設區域為trusted

linux--Firewalld、Iptables防火牆的設定

永久添加可接收資料包來源,需要重新加載

linux--Firewalld、Iptables防火牆的設定

永久移除可接收資料包來源

linux--Firewalld、Iptables防火牆的設定

永久在trusted區域添加資料包來源

linux--Firewalld、Iptables防火牆的設定

移除

linux--Firewalld、Iptables防火牆的設定

在trusted區域添加eth0接口

linux--Firewalld、Iptables防火牆的設定

在預設區添加可通路端口8080,協定為tcp

linux--Firewalld、Iptables防火牆的設定

移除8080端口

linux--Firewalld、Iptables防火牆的設定

Firewall-cmd --reload (執行明快ing為永久的時候,每次執行完徐重新加載,不然指令不會生效。如果向取消可以執行--complete-reload)

3.direct參數設定

檢視目前國有的direct rules

添加direct rules,設定為ipv4,在filter表中第一條,60主機可以通路,通路端口22,協定tcp

linux--Firewalld、Iptables防火牆的設定

4.僞裝和端口轉發

開啟僞裝

linux--Firewalld、Iptables防火牆的設定

添加僞裝

linux--Firewalld、Iptables防火牆的設定

測試僞裝:用ssh去連接配接60主機,用(w -i)檢視登陸曆史,顯示的是121主機IP,僞裝成功

linux--Firewalld、Iptables防火牆的設定

端口轉發(不轉發之前不能連接配接)

linux--Firewalld、Iptables防火牆的設定

測試:用1虛拟機通路60主機,檢視是IP為121主機進行通路

linux--Firewalld、Iptables防火牆的設定

注意:

/usr/lib/firewalld/services 中存放了firewalld政策可以添加的服務,都以xml格式存在

linux--Firewalld、Iptables防火牆的設定
linux--Firewalld、Iptables防火牆的設定

二、IPTABLES 【防火牆的管理工具】

實驗前需要關閉firewalld,得到一個純淨的環境

linux--Firewalld、Iptables防火牆的設定

安裝iptables

linux--Firewalld、Iptables防火牆的設定

開啟iptables服務

linux--Firewalld、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表中的政策

linux--Firewalld、Iptables防火牆的設定

重新整理filter表中的政策

linux--Firewalld、Iptables防火牆的設定

儲存之前的政策到kelnel

linux--Firewalld、Iptables防火牆的設定

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時加行号

linux--Firewalld、Iptables防火牆的設定

插入到第2條政策

linux--Firewalld、Iptables防火牆的設定

删除INPUT鍊的第三條政策

linux--Firewalld、Iptables防火牆的設定

修改INPUT中的第二條政策

linux--Firewalld、Iptables防火牆的設定

把INPUT的policy由之前預設ACCEPT修改為DROP

linux--Firewalld、Iptables防火牆的設定

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 ##除以上條件的全部拒絕

linux--Firewalld、Iptables防火牆的設定

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

linux--Firewalld、Iptables防火牆的設定
linux--Firewalld、Iptables防火牆的設定

本文轉自 無緣 51CTO部落格,原文連結:http://blog.51cto.com/13352594/2048137

繼續閱讀