iptables服務(wù)配置介紹以及使用前的注意事項

1.iptables的概念

netfilter/iptables:IP信息包過濾系統(tǒng)饺著,它實際上由兩個組件netfilter 和 iptables 組成仁烹。

2.iptables的三表五鏈

三表

  • filter負責過濾數(shù)據(jù)包捆憎,包括的規(guī)則鏈有印衔,input尼变,output和forward;
  • nat則涉及到網(wǎng)絡(luò)的地址轉(zhuǎn)換卸勺,包括的規(guī)則鏈有砂沛,prerouting,postrouting和output;
  • mangle表則主要應(yīng)用在修改數(shù)據(jù)包內(nèi)容上曙求,用來做流量整形的碍庵,給數(shù)據(jù)包打個標識映企,默認的規(guī)則鏈
    有:INPUT,OUTPUT静浴,forward卑吭,POSTROUTING,PREROUTING;

五鏈

  • input匹配目標IP本機的數(shù)據(jù)包
  • output出口數(shù)據(jù)包,一般不在此鏈上做配置
  • forward匹配流經(jīng)本機的數(shù)據(jù)包
  • prerouting用來修改目的地址马绝,用來做DNAT。(端口映射)
  • postrouting用來修改源地址用來做snat挣菲。(路由器功能富稻,內(nèi)網(wǎng)機通過路由器nat轉(zhuǎn)換實現(xiàn)內(nèi)網(wǎng)機通過公網(wǎng)ip上網(wǎng))


    如圖

3.iptables過濾封包流程,表->鏈->規(guī)則

Iptables過濾封包流程

4.iptables服務(wù)安裝及相關(guān)配置

關(guān)閉firewall防火墻

systemctl stop firewalld.service            #停止firewall
systemctl disable firewalld.service        #禁止firewall開機啟動

安裝iptables

yum  -y install iptables-services

iptables服務(wù)配置文件存放的位置

ls /etc/sysconfig/iptables

設(shè)置開機自啟動

systemctl start iptables && systemctl enable iptables

5.使用方法

iptables命令的語法格式

Iptables [-t 表名] 管理選項 [鏈名] [條件匹配] [-j 目標動作或或跳轉(zhuǎn)]

iptables語法總結(jié)

操作命令

  • -A 添加規(guī)則白胀,追加到最后一行
  • -I num 插入椭赋,把當前規(guī)則插入為第幾條
  • -D num 刪除,明確指定刪除第幾條規(guī)則
  • -P 設(shè)置默認策略的
  • -F 清空規(guī)則鏈的
  • -R 替換修改第幾條規(guī)則
  • -nvL 查看
--line-number 查看規(guī)則號
  • -A <鏈名> APPEND或杠,追加一條規(guī)則(放到最后)
    例如:
iptables -t filter -A INPUT -j DROP     #拒絕所有人訪問服務(wù)器
在 filter 表的 INPUT 鏈里追加一條規(guī)則(作為最后一條規(guī)則)
匹配所有訪問本機 IP 的數(shù)據(jù)包哪怔,匹配到的丟棄
  • -I <鏈名> [規(guī)則號碼] INSERT,插入一條規(guī)則
例如:
iptables -I INPUT -j DROP
在 filter 表的 INPUT 鏈里插入一條規(guī)則(插入成第 1 條)
iptables -I INPUT 3 -j DROP
在 filter 表的 INPUT 鏈里插入一條規(guī)則(插入成第 3 條)
注意: 
-t filter 可不寫向抢,不寫則自動默認是 filter 表
-I 鏈名 [規(guī)則號碼]认境,如果不寫規(guī)則號碼,則默認是 1
確保規(guī)則號碼 ≤ (已有規(guī)則數(shù) + 1)挟鸠,否則報錯
  • -R num:Replays替換/修改第幾條規(guī)則
格式:iptables –t filter -R INPUT 3 ……… 修改filter的INPUT鏈第三條規(guī)則
  • -D <鏈名> <規(guī)則號碼 | 具體規(guī)則內(nèi)容> DELETE叉信,刪除一條規(guī)則
例如:
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere
iptables -D INPUT -s 192.168.0.1 -j DROP        #按內(nèi)容匹配。

刪除 filter 表 INPUT 鏈中內(nèi)容為“-s 192.168.0.1 -j DROP”的規(guī)則
   (不管其位置在哪里)
注意:
    若規(guī)則列表中有多條相同的規(guī)則時艘希,按內(nèi)容匹配只刪除序號最小的一條
    按號碼匹配刪除時硼身,確保規(guī)則號碼 ≤ 已有規(guī)則數(shù),否則報錯
    按內(nèi)容匹配刪除時覆享,確保規(guī)則存在佳遂,否則報錯
  • -P <鏈名> <動作> POLICY,設(shè)置某個鏈的默認規(guī)則
ex:
例如:
iptables -L   #查看默認規(guī)則是ACCEPT
Chain INPUT (policy ACCEPT)
target     prot opt source               des ation  tin 
 iptables -P INPUT DROP
 設(shè)置 filter 表 INPUT 鏈的默認規(guī)則是 DROP
iptables -L   #查看已經(jīng)變?yōu)镈ROP
Chain INPUT (policy DROP)
target     prot opt source               destination     

注意:
當數(shù)據(jù)包沒有被規(guī)則列表里的任何規(guī)則匹配到時撒顿,按此默認規(guī)則處理丑罪。動作前面不能加 –j,這也是唯一 一種匹配動作前面不加 –j 的情況核蘸。
  • -F [鏈名] FLUSH巍糯,清空規(guī)則
例如:
添加規(guī)則:
iptables -t filter -A INPUT -j DROP
iptables -F INPUT       #清除INPUT鏈上的規(guī)則
iptables -F     #清除filter表中所有鏈上的規(guī)則
iptables -t nat -F      #清空NAT表中所有鏈上的規(guī)則
iptables -t nat -F PREROUTING   #清空NAT表中PREROUTING鏈上的規(guī)則

注意:
-F 僅僅是清空鏈中規(guī)則,并不影響 -P 設(shè)置的默認規(guī)則客扎。 需要手動改:

iptables -P INPUT ACCEPT
-P 設(shè)置了 DROP 后祟峦,使用 -F 一定要小心!徙鱼!

在生產(chǎn)環(huán)境中宅楞,使用-P DROP 這條規(guī)則针姿,一定要小心,設(shè)置之前最好配置下面兩個任務(wù)計劃厌衙,否則容易把自己drop掉距淫,鏈接不上遠程主機。

配置crontab :(線上服務(wù)器需提前設(shè)置好15分鐘后進行執(zhí)行定時任務(wù):接受訪問和清除所有規(guī)則)

*/15 * * * *  iptables -P INPUT ACCEPT
*/15 * * * *  iptables -F

常用規(guī)則:(配置防火墻時直接在/etc/sysconfig/iptables添加)

  • *filter
  • :INPUT ACCEPT [0:0]
  • :FORWARD ACCEPT [0:0]
  • :OUTPUT ACCEPT [0:0]
  • -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • -A INPUT -p icmp -j ACCEPT
  • -A INPUT -i lo -j ACCEPT
  • -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

配置22婶希,80端口

iptables -P INPUT ACCEPT
iptables -F
iptables -A INPUT -i lo -j ACCEPT       #放行環(huán)回口所有數(shù)據(jù)
iptables -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT

snat路由模式(B通過連接A路由器上網(wǎng))

虛擬路由器A

echo "1">/proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1">>/etc/sysctl.conf
sysctl -p #( 改完執(zhí)行sysctl -p命令使配置生效)
iptables -t nat -A POSTROUTING -s  A路由器ip所在網(wǎng)段(192.168.2.0/24)    -j  SNAT  --to A路由器的wan口地址(192.168.1.63)
ex1: iptables -t nat -A POSTROUTING -s 192.168.2.0/24   -j  SNAT  --to 192.168.1.63
ex2: iptables -t nat -A POSTROUTING -s 192.168.2.0/24  -o ens33  -j MASQUERADE 

客戶端pc機B

vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
NM_CONTROLLED=yes
IPADDR=192.168.2.2
NETMASK=255.255.255.0
GATEWAY=192.168.2.1         #網(wǎng)關(guān)指向虛擬路由器A的wan口地址
DNS1=223.5.5.5
ONBOOT=yes
TYPE=Ethernet
榕暇。。喻杈。
NAME=" ens33"
HWADDR=00:0C:29:12:EC:1E
systemctl restart network
test: ping g.cn

使用DNAT功能彤枢,把內(nèi)網(wǎng)webPC機B的端口映射到虛擬路由器A的外網(wǎng)

虛擬路由器A

iptables -t nat -A PREROUTING -d  虛擬路由器wan口ip  -p tcp  --dport 80  -j DNAT  --to PC機B的ip:80

EX:

 iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80 -j DNAT --to 192.168.2.2:80
或:
 iptables -t nat -A PREROUTING -d 192.168.1.63 -p tcp --dport 80 -j DNAT --to 192.168.2.2:80

iptables命令使用總則總結(jié):

所有鏈名必須大寫
INPUT/OUTPUT/FORWARD/PREROUTING/POSTROUTING
所有表名必須小寫
filter/nat/mangle
所有動作必須大寫
ACCEPT/DROP/SNAT/DNAT/MASQUERADE
所有匹配必須小寫
-s/-d/-m <module_name>/-p

注意事項:

表、鏈筒饰、規(guī)則處理的順序

  • 表間的優(yōu)先順序
    raw > mangle > nat > filter
  • 鏈間的匹配順序
    入站數(shù)據(jù):PREROUTING缴啡、INPUT
    出站數(shù)據(jù):OUTPUT、POSTROUTING
    轉(zhuǎn)發(fā)數(shù)據(jù):PREROUTING瓷们、FORWARD业栅、POSTROUTING
  • 鏈內(nèi)的匹配順序
    自上向下按順序依次進行檢查,找到相匹配的規(guī)則即停止
    若在該鏈內(nèi)找不到的相匹配的規(guī)則谬晕,則按該鏈的默認策略處理(未修改的情況下碘裕,默認策略為允許)
注意:規(guī)則的次序非常關(guān)鍵,誰的規(guī)則越嚴格固蚤,應(yīng)該放的越靠前娘汞,而檢查規(guī)則的時候,是按照從上往下的方式進行檢查的夕玩。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末你弦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子燎孟,更是在濱河造成了極大的恐慌禽作,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揩页,死亡現(xiàn)場離奇詭異旷偿,居然都是意外死亡,警方通過查閱死者的電腦和手機爆侣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門萍程,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兔仰,你說我怎么就攤上這事茫负。” “怎么了乎赴?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵忍法,是天一觀的道長潮尝。 經(jīng)常有香客問我,道長饿序,這世上最難降的妖魔是什么勉失? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮原探,結(jié)果婚禮上乱凿,老公的妹妹穿的比我還像新娘。我一直安慰自己咽弦,他們只是感情好告匠,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著离唬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪划鸽。 梳的紋絲不亂的頭發(fā)上输莺,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音裸诽,去河邊找鬼嫂用。 笑死,一個胖子當著我的面吹牛丈冬,可吹牛的內(nèi)容都是我干的嘱函。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼埂蕊,長吁一口氣:“原來是場噩夢啊……” “哼往弓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蓄氧,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤函似,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后喉童,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撇寞,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年堂氯,在試婚紗的時候發(fā)現(xiàn)自己被綠了蔑担。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡咽白,死狀恐怖啤握,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情局扶,我是刑警寧澤恨统,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布叁扫,位于F島的核電站,受9級特大地震影響畜埋,放射性物質(zhì)發(fā)生泄漏莫绣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一悠鞍、第九天 我趴在偏房一處隱蔽的房頂上張望对室。 院中可真熱鬧,春花似錦咖祭、人聲如沸掩宜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牺汤。三九已至,卻和暖如春浩嫌,著一層夾襖步出監(jiān)牢的瞬間檐迟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工码耐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留追迟,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓骚腥,卻偏偏與公主長得像敦间,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子束铭,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344