Linux之iptables命令用法解讀
一、netfilter/iptables
netfilter:Linux內(nèi)核中的一個軟件框架,用于處理網(wǎng)絡(luò)數(shù)據(jù)包,提供的功能包括:網(wǎng)絡(luò)地址轉(zhuǎn)換NAT,數(shù)據(jù)包內(nèi)容修改、過濾、轉(zhuǎn)發(fā)等防火墻的功能iptables:運行在用戶空間的應(yīng)用軟件,命令行工具,通過其設(shè)置規(guī)則,來控制netfilter模塊,從而實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的管理,從而實現(xiàn)防火墻的配置。
二者組成Linux下的包過濾防火墻。
二、四表五鏈
1、規(guī)則表
filter表:過濾數(shù)據(jù)包nat表:網(wǎng)絡(luò)地址轉(zhuǎn)換mangle表:管理mangle包raw表:關(guān)閉在nat表啟用的連接追蹤機制
2、規(guī)則鏈
PREROUTING:對數(shù)據(jù)包作路由選擇前應(yīng)用此鏈中的規(guī)則INPUT:進(jìn)來的數(shù)據(jù)包FORWARD:轉(zhuǎn)發(fā)數(shù)據(jù)包OUTPUT:出去的數(shù)據(jù)包POSTROUTING:路由選擇后

三、規(guī)則配置
1、命令格式
iptables [-t table] command chain parameter target
table:指定操作的表,默認(rèn)filter表
command:操作的命令
- -A:在指定鏈尾添加一條新的規(guī)則(append)
- -D:刪除指定鏈中的一條規(guī)則,可以根據(jù)序號或內(nèi)容進(jìn)行刪除(delete)
- -I:在指定鏈插入一條新的規(guī)則,默認(rèn)在第一行(insert)
- -L:列出所有規(guī)則(list)
- -R:修改、替換指定鏈的某一條規(guī)則,可以根據(jù)序號和內(nèi)容進(jìn)行替換(replace)
- -N:新建一條自定義規(guī)則鏈(new-chain)
- -X:刪除自定義的規(guī)則鏈
- -E:重命名自定義鏈
- -F:清空(flush)
…
chain:規(guī)則鏈(INPUT、OUTPUT、FORWARD…)
parameter:匹配規(guī)則
- -s:匹配報文的源地址,可以同時指定多個,每個用逗號進(jìn)行隔開
- -d:匹配報文的目標(biāo)地址,可以同時指定多個,每個用逗號進(jìn)行隔開
- -p:匹配報文的協(xié)議類型,如tcp、udp、icmp、sctp、udplite、esp等
- -i:匹配報文從哪個網(wǎng)卡接口流入
- -o:匹配報文將要從哪個網(wǎng)卡接口流出
…
- –sport:匹配源端口,可以用冒號指定一個連續(xù)的端口范圍
- –dport:匹配目的端口,可以用冒號指定一個連續(xù)的端口范圍
- -m multiport --sports/dports:匹配多個離散的端口號,用逗號隔開
示例: iptables -t filter -I OUTPUT -s 192.168.1.111 -p tcp -m tcp --dports 22:25 -j DROP
target:處理數(shù)據(jù)包的方式
-j ACCEPT:允許數(shù)據(jù)包通過-j DROP:丟棄數(shù)據(jù)包,不給回應(yīng)信息-j REJECT:拒絕數(shù)據(jù)包通過,必要時會給數(shù)據(jù)發(fā)送端一個響應(yīng)信息
…
四、常用規(guī)則示例
1、規(guī)則保存
service iptables save
若不保存,待服務(wù)器重啟時會恢復(fù)原先狀態(tài)。
2、查看規(guī)則(帶編號)
iptables -L -n --line-number
3、刪除OUTPUT第一條規(guī)則
iptables -D OUTPUT 1
4、拒絕進(jìn)入防火墻的所有ICMP協(xié)議數(shù)據(jù)包
iptables -I INPUT -P icmp -j REJECT
5、限制udp53端口只進(jìn)不出
iptables -I OUTPUT -p udp --dport 53 -j REJECT
6、獲取域名服務(wù)端口號
grep domain /etc/services
五、注意點
1、規(guī)則順序
若報文已被前面的規(guī)則匹配,則會直接執(zhí)行對應(yīng)的操作,即使后續(xù)規(guī)則也能匹配,但不會再執(zhí)行。
2、匹配條件
若一條規(guī)則中有多個匹配條件,則需同時滿足所有匹配條件,報文才能被匹配,即"與"的關(guān)系。
3、將更容易被匹配的規(guī)則放在前面
在沒有順序要求的情況下,不同類別的規(guī)則,被匹配次數(shù)多、匹配頻率高的規(guī)則應(yīng)放在前面。
4、當(dāng)IPTABLES所在主機作為網(wǎng)絡(luò)防火 墻時,在配置規(guī)則時,應(yīng)著重考慮方向性,雙向都要考慮,從外到內(nèi),從內(nèi)到外。
5、在配置IPTABLES白名單時,往往會將鏈的默認(rèn)策略設(shè)置為ACCEPT,通過在鏈的最后設(shè)置REJECT規(guī)則實現(xiàn)白名單機制,而不是將鏈的默認(rèn)策略設(shè)置為DROP,如果將鏈的默認(rèn)策略設(shè)置為DROP,當(dāng)鏈中的規(guī)則被清空時,管理員的請求也將會被DROP掉。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
單臺服務(wù)器中利用Apache的VirtualHost如何搭建多個Web站點詳解
這篇文章主要給大家介紹了關(guān)于在單臺服務(wù)器中利用Apache的VirtualHost如何搭建多個Web站點的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Linux 安裝二進(jìn)制MySQL 及 破解MySQL密碼的方法
這篇文章主要介紹了Linux 安裝二進(jìn)制MySQL 及 破解MySQL密碼的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09
詳解CentOS7 安裝 MariaDB 10.2.4的方法
這篇文章主要介紹了CentOS7 安裝 MariaDB 10.2.4的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11
詳解 MAC/Linux Vi配置環(huán)境變量及Java環(huán)境變量配置
這篇文章主要介紹了詳解 MAC/Linux Vi配置環(huán)境變量及Java環(huán)境變量配置的相關(guān)資料,需要的朋友可以參考下2017-06-06

