Iptables
iptables服務(wù)規(guī)則:
在進行路由選擇前處理數(shù)據(jù)包(PREROUTING)鲸湃;
處理流入的數(shù)據(jù)包(INPUT)亭饵;
處理流出的數(shù)據(jù)包(OUTPUT)休偶;
處理轉(zhuǎn)發(fā)的數(shù)據(jù)包(FORWARD);
在進行路由選擇后處理數(shù)據(jù)包(POSTROUTING)冬骚。
iptables命令
iptables命令中常用的參數(shù)以及作用
參數(shù) | 作用 |
---|---|
-P | 設(shè)置默認(rèn)策略 |
-F | 清空規(guī)則鏈 |
-L | 查看規(guī)則鏈 |
-l num | 在規(guī)則鏈的頭部加入新規(guī)則 |
-D num | 刪除某一條規(guī)則 |
-s | 匹配來源地址IP/MASK椅贱,加嘆號“!”表示除這個IP外 |
-d | 匹配目標(biāo)地址 |
-i 網(wǎng)卡名稱 | 匹配從這塊網(wǎng)卡流入的數(shù)據(jù) |
-o 網(wǎng)卡名稱 | 匹配從這塊網(wǎng)卡流出的數(shù)據(jù) |
-p | 匹配協(xié)議,如TCP只冻、UDP庇麦、ICMP |
--dport num | 匹配目標(biāo)端口號 |
--sport num | 匹配來源端口號 |
在iptables命令后添加-L參數(shù)查看已有的防火墻規(guī)則鏈:
在iptables命令后添加-F參數(shù)清空已有的防火墻規(guī)則鏈:
把INPUT規(guī)則鏈的默認(rèn)策略設(shè)置為拒絕:
向INPUT鏈中添加允許ICMP流量進入的策略規(guī)則:
刪除INPUT規(guī)則鏈中剛剛加入的那條策略(允許ICMP流量),并把默認(rèn)策略設(shè)置為允許:
將INPUT規(guī)則鏈設(shè)置為只允許指定網(wǎng)段的主機訪問本機的22端口喜德,拒絕來自其他所有主機的流量:
訪問192.168.122.1主機服務(wù)器:
向INPUT規(guī)則鏈中添加拒絕所有人訪問本機12345端口的策略規(guī)則:
向INPUT規(guī)則鏈中添加拒絕192.168.10.5主機訪問本機80端口(Web服務(wù))的策略規(guī)則:
向INPUT規(guī)則鏈中添加拒絕所有主機訪問本機1000~1024端口的策略規(guī)則:
如果想讓配置的防火墻策略永久生效山橄,還要執(zhí)行保存命令:
service iptables save
Firewalld
firewalld常用的區(qū)域名稱及策略規(guī)則
區(qū)域名稱 | 默認(rèn)策略規(guī)則 |
---|---|
trusted | 允許所有的數(shù)據(jù)包 |
home | 拒絕流入的流量,除非與流出的流量相關(guān)舍悯;而如果流量與ssh航棱、mdns、ipp-client萌衬、amba-client與dhcpv6-client服務(wù)相關(guān)饮醇,則允許流量 |
internal | 等同于home區(qū)域 |
work | 拒絕流入的流量,除非與流出的流量相關(guān)秕豫;而如果流量與ssh朴艰、ipp-client與dhcpv6-client服務(wù)相關(guān)观蓄,則允許流量 |
public | 拒絕流入的流量,除非與流出的流量相關(guān)祠墅;而如果流量與ssh侮穿、dhcpv6-client服務(wù)相關(guān),則允許流量 |
external | 拒絕流入的流量毁嗦,除非與流出的流量相關(guān)亲茅;而如果流量與ssh服務(wù)相關(guān),則允許流量 |
dmz | 拒絕流入的流量狗准,除非與流出的流量相關(guān)克锣;而如果流量與ssh服務(wù)相關(guān),則允許流量 |
block | 拒絕流入的流量驶俊,除非與流出的流量相 |
drop | 拒絕流入的流量娶耍,除非與流出的流量相關(guān) |
firewall-cmd命令中的參數(shù)以及作用
參數(shù) | 作用 |
---|---|
--get-default-zone | 查詢默認(rèn)的區(qū)域名稱 |
--set-default-zone=<區(qū)域名稱> | 設(shè)置默認(rèn)的區(qū)域免姿,使其永久生效 |
--get-zones | 顯示可用的區(qū)域 |
--get-services | 顯示預(yù)先定義的服務(wù) |
--get-active-zones | 顯示當(dāng)前正在使用的區(qū)域與網(wǎng)卡名稱 |
--add-source= | 將源自此IP或子網(wǎng)的流量導(dǎo)向指定的區(qū)域 |
--remove-source= | 不再將源自此IP或子網(wǎng)的流量導(dǎo)向某個指定區(qū)域 |
--add-interface=<網(wǎng)卡名稱> | 將源自該網(wǎng)卡的所有流量都導(dǎo)向某個指定區(qū)域 |
--change-interface=<網(wǎng)卡名稱> | 將某個網(wǎng)卡與區(qū)域進行關(guān)聯(lián) |
--list-all | 顯示當(dāng)前區(qū)域的網(wǎng)卡配置參數(shù)饼酿、資源、端口以及服務(wù)等信息 |
--list-all-zones | 顯示所有區(qū)域的網(wǎng)卡配置參數(shù)胚膊、資源故俐、端口以及服務(wù)等信息 |
--add-service=<服務(wù)名> | 設(shè)置默認(rèn)區(qū)域允許該服務(wù)的流量 |
--add-port=<端口號/協(xié)議> | 設(shè)置默認(rèn)區(qū)域允許該端口的流量 |
--remove-service=<服務(wù)名> | 設(shè)置默認(rèn)區(qū)域不再允許該服務(wù)的流量 |
--remove-port=<端口號/協(xié)議> | 設(shè)置默認(rèn)區(qū)域不再允許該端口的流量 |
--reload | 讓“永久生效”的配置規(guī)則立即生效,并覆蓋當(dāng)前的配置規(guī)則 |
--panic-on | 開啟應(yīng)急狀況模式 |
--panic-off | 關(guān)閉應(yīng)急狀況模式 |
查看firewalld服務(wù)當(dāng)前所使用的區(qū)域:
firewall-cmd --get-default-zone
//顯示
public
查詢enp0s3網(wǎng)卡在firewalld服務(wù)中的區(qū)域:
firewall-cmd --get-zone-of-interface=enp0s3
//顯示
public
把firewalld服務(wù)中enp0s3網(wǎng)卡的默認(rèn)區(qū)域修改為external紊婉,并在系統(tǒng)重啟后生效药版。分別查看當(dāng)前與永久模式下的區(qū)域名稱:
firewall-cmd --permanent --zone=external --change-interface=eno16777728
//顯示
success
firewall-cmd --get-zone-of-interface=eno16777728
//顯示
public
firewall-cmd --permanent --get-zone-of-interface=eno16777728
//顯示
external
把firewalld服務(wù)的當(dāng)前默認(rèn)區(qū)域設(shè)置為public:
firewall-cmd --set-default-zone=public
//顯示
success
firewall-cmd --get-default-zone
//顯示
public
啟動/關(guān)閉firewalld防火墻服務(wù)的應(yīng)急狀況模式,阻斷一切網(wǎng)絡(luò)連接(當(dāng)遠程控制服務(wù)器時請慎用):
firewall-cmd --panic-on
//顯示
success
firewall-cmd --panic-off
//顯示
success
查詢public區(qū)域是否允許請求SSH和HTTPS協(xié)議的流量:
firewall-cmd --zone=public --query-service=ssh
//顯示
yes
firewall-cmd --zone=public --query-service=https
//顯示
no
把firewalld服務(wù)中請求HTTPS協(xié)議的流量設(shè)置為永久允許喻犁,并立即生效:
firewall-cmd --zone=public --add-service=https
//顯示
success
firewall-cmd --permanent --zone=public --add-service=https
//顯示
success
firewall-cmd --reload
//顯示
success
把firewalld服務(wù)中請求HTTP協(xié)議的流量設(shè)置為永久拒絕槽片,并立即生效:
firewall-cmd --permanent --zone=public --remove-service=http
//顯示
success
firewall-cmd --reload
//顯示
success
把在firewalld服務(wù)中訪問8080和8081端口的流量策略設(shè)置為允許,但僅限當(dāng)前生效:
firewall-cmd --zone=public --add-port=8080-8081/tcp
//顯示
success
firewall-cmd --zone=public --list-ports
//顯示
8080-8081/tcp
把原本訪問本機888端口的流量轉(zhuǎn)發(fā)到22端口肢础,要且求當(dāng)前和長期均有效:
//流量轉(zhuǎn)發(fā)命令格式為firewall-cmd --permanent --zone=<區(qū)域> --add-forward-port=port=<源端口號>:proto=<協(xié)議>:toport=<目標(biāo)端口號>:toaddr=<目標(biāo)IP地址>
firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10
//顯示
success
firewall-cmd --reload
//顯示
success
在客戶端使用ssh命令嘗試訪問192.168.10.10主機的888端口:
ssh -p 888 192.168.10.10
//顯示
The authenticity of host '[192.168.10.10]:888 ([192.168.10.10]:888)' can't be established.
ECDSA key fingerprint is b8:25:88:89:5c:05:b6:dd:ef:76:63:ff:1a:54:02:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.10.10]:888' (ECDSA) to the list of known hosts.
root@192.168.10.10's password:此處輸入遠程root管理員的密碼
Last login: Sun Jul 19 21:43:48 2017 from 192.168.10.10
在firewalld服務(wù)中配置一條富規(guī)則还栓,使其拒絕192.168.10.0/24網(wǎng)段的所有用戶訪問本機的ssh服務(wù)(22端口):
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
//顯示
success
firewall-cmd --reload
//顯示
success
圖形管理工具 firewall-config
firewall-config的功能如下:
1:選擇運行時(Runtime)模式或永久(Permanent)模式的配置。
2:可選的策略集合區(qū)域列表传轰。
3:常用的系統(tǒng)服務(wù)列表剩盒。
4:當(dāng)前正在使用的區(qū)域。
5:管理當(dāng)前被選中區(qū)域中的服務(wù)慨蛙。
6:管理當(dāng)前被選中區(qū)域中的端口辽聊。
7:開啟或關(guān)閉SNAT(源地址轉(zhuǎn)換協(xié)議)技術(shù)。
8:設(shè)置端口轉(zhuǎn)發(fā)策略期贫。
9:控制請求icmp服務(wù)的流量跟匆。
10:管理防火墻的富規(guī)則。
11:管理網(wǎng)卡設(shè)備通砍。
12:被選中區(qū)域的服務(wù)玛臂,若勾選了相應(yīng)服務(wù)前面的復(fù)選框,則表示允許與之相關(guān)的流量。
13:firewall-config工具的運行狀態(tài)垢揩。
打開firewall-config:
輸入root管理員密碼: