- 論壇徽章:
- 24
|
本帖最后由 woxizishen 于 2015-08-06 18:45 編輯
數(shù)據(jù)包在netfilter/iptables的流入流出過程示意圖:
小編以前也看過官方和不少非官方的關(guān)于linux下防火墻的工作示意圖,五花八門其實還是有很多問題的,大部分人的理解包括iptables作者本人早起的版本的理解都有偏差,經(jīng)常有童鞋問路由前和路由后的事情,其實糾結(jié)這個問題。等你看懂這個示意圖,可以幫助很多人糾正之前錯誤的理解,當(dāng)然如果有童鞋認為有異議,也可以提出來一起討論。
該版iptables有了4個表:
raw
mangle
nat
filter
4個表格的作用就不多解釋了,mangle和raw都是特殊表格,所以數(shù)據(jù)包流向的過程在特殊表格里能夠操作的動作是會有限制的噢。很多入門的童鞋,總想在特殊表格里來整一些在filter里的一些動作規(guī)則,可不要混淆了。iptables作者的重點只在于FILTER,其次是nat表格,至于剩下2個表格對于一些特殊需求的人會用到。有時候看到論壇不少朋友發(fā)帖在mangle直接進行過濾動作,認為他能夠和filter表一樣有相應(yīng)的功能,那你老人家就違背了iptables開發(fā)的作者的初衷了。這2個特殊表格的用途,官方已經(jīng)進行了詳細說明,我就不多說了。
1.jpg (31.15 KB, 下載次數(shù): 86)
下載附件
2015-08-06 18:37 上傳
為了更好讓大家理解,筆者也抓了部分日志供大家參考整個圖示流程:其實當(dāng)你真的理解了整個iptables的數(shù)據(jù)包流向的過程,iptables有問題時候,你看下日志,立即就能知道在哪一個表格,哪一個規(guī)則可能出現(xiàn)了問題
May 6 15:56:13 king kernel: TRACE: raw REROUTING:policy:3 IN=eth1 OUT= MAC=00:0c:29:91:44:18:00:25:11:88:dd:54:08:00 SRC=192.168.8.16 DST=192.168.8.142 LEN=40 TOS=0x00 PREC=0x00 TTL=255 ID=29926 DF PROTO=TCP SPT=4808 DPT=22 SEQ=1212369552 ACK=3096659045 WINDOW=64944 RES=0x00 ACK FIN URGP=0
第一步:數(shù)據(jù)外部流入到raw表的PREROUTING鏈
May 6 15:56:13 king kernel: TRACE: mangle REROUTING:policy:1 IN=eth1 OUT= MAC=00:0c:29:91:44:18:00:25:11:88:dd:54:08:00 SRC=192.168.8.16 DST=192.168.8.142 LEN=40 TOS=0x00 PREC=0x00 TTL=255 ID=29926 DF PROTO=TCP SPT=4808 DPT=22 SEQ=1212369552 ACK=3096659045 WINDOW=64944 RES=0x00 ACK FIN URGP=0
第二步:數(shù)據(jù)從raw表的PREROUTING鏈流向mangle表的PREROUTING鏈
May 6 15:56:13 king kernel: TRACE: mangle:INPUT:policy:1 IN=eth1 OUT= MAC=00:0c:29:91:44:18:00:25:11:88:dd:54:08:00 SRC=192.168.8.16 DST=192.168.8.142 LEN=40 TOS=0x00 PREC=0x00 TTL=255 ID=29926 DF PROTO=TCP SPT=4808 DPT=22 SEQ=1212369552 ACK=3096659045 WINDOW=64944 RES=0x00 ACK FIN URGP=0
第三步:數(shù)據(jù)從mangle表的PREROUTING鏈流向mangle表的:INPUT鏈
May 6 15:56:13 king kernel: TRACE: filter:INPUT:rule:1 IN=eth1 OUT= MAC=00:0c:29:91:44:18:00:25:11:88:dd:54:08:00 SRC=192.168.8.16 DST=192.168.8.142 LEN=40 TOS=0x00 PREC=0x00 TTL=255 ID=29926 DF PROTO=TCP SPT=4808 DPT=22 SEQ=1212369552 ACK=3096659045 WINDOW=64944 RES=0x00 ACK FIN URGP=0
第四步:數(shù)據(jù)從mangle表的INPUT鏈流向filter表的:INPUT鏈
May 6 15:56:13 king kernel: TRACE: raw:OUTPUT:policy:3 IN= OUT=eth1 SRC=192.168.8.142 DST=192.168.8.16 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=19358 DF PROTO=TCP SPT=22 DPT=4808 SEQ=3096659045 ACK=1212369553 WINDOW=557 RES=0x00 ACK FIN URGP=0 UID=0 GID=0
第五步:數(shù)據(jù)從filter表的INPUT鏈流向raw表的 OUTPUT鏈
May 6 15:56:13 king kernel: TRACE: mangle:OUTPUT:policy:1 IN= OUT=eth1 SRC=192.168.8.142 DST=192.168.8.16 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=19358 DF PROTO=TCP SPT=22 DPT=4808 SEQ=3096659045 ACK=1212369553 WINDOW=557 RES=0x00 ACK FIN URGP=0 UID=0 GID=0
第六步:數(shù)據(jù)從raw表的 OUTPUT鏈流向mangle表的:OUTPUT鏈
May 6 15:56:13 king kernel: TRACE: filter:OUTPUT:rule:1 IN= OUT=eth1 SRC=192.168.8.142 DST=192.168.8.16 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=19358 DF PROTO=TCP SPT=22 DPT=4808 SEQ=3096659045 ACK=1212369553 WINDOW=557 RES=0x00 ACK FIN URGP=0 UID=0 GID=0
第七步:數(shù)據(jù)從mangle表的:OUTPUT鏈流向filter表的 OUTPUT鏈
May 6 15:56:13 king kernel: TRACE: mangle OSTROUTING:policy:1 IN= OUT=eth1 SRC=192.168.8.142 DST=192.168.8.16 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=19358 DF PROTO=TCP SPT=22 DPT=4808 SEQ=3096659045 ACK=1212369553 WINDOW=557 RES=0x00 ACK FIN URGP=0 UID=0 GID=0
最后一步:數(shù)據(jù)從filter表的 OUTPUT鏈流向mangle表的 POSTROUTING鏈
|
|