iptables连接跟踪ip_conntrack
一、ip_conntrack模塊介紹:
ip_conntrack 是Linux NAT一個(gè)跟蹤連接條目的模塊記錄著允許的跟蹤連接條目ip_conntrack 模塊會(huì)記錄 tcp 通訊協(xié)議的 established connection 記錄, 而且預(yù)設(shè) timeout 時(shí)間長(zhǎng)達(dá)五天 (432,000 秒).所以局域網(wǎng)中當(dāng)有人使用p2p類的軟件就很容易使ip_conntrack達(dá)到最大值…也由此造成:
ip_conntrack: table full, dropping packet. ?的錯(cuò)誤提示..網(wǎng)關(guān)丟棄數(shù)據(jù)包..網(wǎng)絡(luò)中斷..
具體解決辦法如下幾種:
1.加大ip_conntrack_max設(shè)定值
#modprobe ip_conntrack 需提前加載ip_conntrack模塊
#echo “986400″ > /proc/sys/net/ipv4/ip_conntrack_max 數(shù)值具體多大應(yīng)計(jì)算得出
開機(jī)使用新數(shù)值..有三種辦法:
除vi /etc/rc.local外亦有:
#vi /etc/sysctl.conf 加入: net.ipv4.ip_conntrack_max = 986400
#sysctl -w net.ipv4.ip_conntrack_max=986400
2.減小ip_conntrack timeout 的時(shí)限 默認(rèn)5天即432000s
ip_conntrack_tcp_timeout_established 值默認(rèn)432000s 即5天
#echo “3600″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
開機(jī)使用同于上例
#vi /etc/sysctl.conf 加入: net.ipv4.ip_tcp_timeout_established = 3600
#sysctl -w net.ipv4.ip_tcp_timeout_established=3600
3、為防止重啟Iptables后變?yōu)槟J(rèn),還需修改模塊參數(shù):
? ? ? ? vim/etc/modprobe.conf #添加以下內(nèi)容
? ? options ip_conntrack hashsize=12800 ? ? ? ?#值為102400/8
-允許的最大跟蹤連接條目,在這篇文檔中我們叫作CONNTRACK_MAX
-存儲(chǔ)跟蹤連接條目列表的哈西表的大小,在這篇文檔中我們叫做HASHSIZE(下面是這個(gè)結(jié)構(gòu)的描述)
CONNTRACK_MAX是在內(nèi)核內(nèi)存中netfilter可以同時(shí)處理的“任務(wù)”(連接跟蹤條目)。
一個(gè)跟蹤連接的條目是存儲(chǔ)在一個(gè)鏈接起來的列表的一個(gè)節(jié)點(diǎn)上,每個(gè)列表都是一個(gè)哈西表的元素。因此每個(gè)哈西表的條目(也叫一個(gè)桶-bucket)包含了一個(gè)鏈接起來的跟蹤連接條目。
要訪問一個(gè)特定包的跟蹤連接條目,內(nèi)核必須:
-針對(duì)一個(gè)包中的已經(jīng)定義的一些字符計(jì)算哈西值。這是一個(gè)不間斷的計(jì)算。
? 這個(gè)哈西值就會(huì)被當(dāng)作哈西表的索引來使用,而跟蹤連接條目的列表就存儲(chǔ)在這里。
-反復(fù)的查看鏈接列表中的跟蹤連接條目以找到匹配的那一個(gè)。
? 這是一個(gè)耗資源的操作,依賴于列表的大小(也依賴于列表中被操作的跟蹤連接條目的位置)。
哈西表包含了HASHSIZE大小的鏈接條目。當(dāng)條目滿的時(shí)候(總的跟蹤連接條目數(shù)達(dá)到了CONNTRACK_MAX),理想狀態(tài)下,每個(gè)列表(在最優(yōu)化的條件下)將包含大約CONNTRACK_MAX/HASHSIZE的條目數(shù)。
不管你是否有連接,哈西表都將占用一個(gè)固定大小的非交換內(nèi)核內(nèi)存。但是最大連接跟蹤條目會(huì)檢測(cè)最多可以存儲(chǔ)多少條目(globally into the linked lists),也就是說他們最多可以占用多少的內(nèi)核內(nèi)存。
在i386架構(gòu)上,HASHSIZE = CONNTRACK_MAX / 8
4、iptables raw表解決ip_conntrack: table full, dropping
RAW 表只使用在PREROUTING鏈和OUTPUT鏈上,因?yàn)閮?yōu)先級(jí)最高,從而可以對(duì)收到的數(shù)據(jù)包在連接跟蹤前進(jìn)行處理。一但用戶使用了RAW表,在某個(gè)鏈 上,RAW表處理完后,將跳過NAT表和 ip_conntrack處理,即不再做地址轉(zhuǎn)換和數(shù)據(jù)包的鏈接跟蹤處理了.
RAW表可以應(yīng)用在那些不需要做nat的情況下,以提高性能。如大量訪問的web服務(wù)器,可以讓80端口不再讓iptables做數(shù)據(jù)包的鏈接跟蹤處理,以提高用戶的訪問速度。
? ? ? ? iptables -A INPUT -m state --state UNTRACKED,ESTABLISHED,RELATED -j ACCEPT
iptables -t raw -A PREROUTING -p tcp --dport80 -j NOTRACK
iptables -t raw -A OUTPUT -p tcp --sport80 -j NOTRACK
5、舉例說明:
? 通過ip_conntrack buffer 使用狀況查出局域網(wǎng)中進(jìn)行p2p下載的主機(jī)
查看目前 ip_conntrack buffer 使用狀況
? #grep conn /proc/slabinfo
結(jié)果實(shí)例: ip_conntrack 5918 8140 384 10 1:tunables 54 27 0:slabdata 814 814 0 (各值說明如下)
? ip_conntrack the cache name
? 5918 the number of currently active objects
? 8140 the total number of available objects
? 384 the size of each object in bytes
? 814 the number of pages with at least one active object
? 814 the total number of allocated pages
? 1 the number of pages per slab are given
man slabinfo 可查詢?cè)敿?xì)說明.
查出目前 ip_conntrack 記錄最多的前五名 IP
? #cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -5
結(jié)果實(shí)例:
?2987 192.168.1.30
? 334 192.168.1.52
? 166 192.168.1.56
? ?99 192.168.1.43
? ?84 192.168.1.46
由此可知, 192.168.1.30占用了絕大多數(shù)的ip_connect buffer,推斷這個(gè)IP的User可能使用了P2P軟件
推薦一個(gè)清除某IP鏈接的方法:通過過濾ip_conntrack表得到ESTABLISHED狀態(tài)過多的ip,用hping工具將這些ip從表中清理掉…
?下載: http://www.hping.org/download.html
安裝: ./configure;make;make install
hping清理IP鏈接腳本:(此腳本修改鏈接狀態(tài)為closed)
? #!/bin/sh
? ? if [ -z $1 ] ; then
? ? ? ? ? ? echo “NO INPUT IP”
? ? ? ? ? ? exit
? ? fi
? ? grep -E “^tcp .{10,25}ESTABLISHED src=$1 ” /proc/net/ip_conntrack | while read line; do
? ? S_IP=`echo $line | awk ‘{print substr($5,5)}’`
? ? S_SOCK=`echo $line | awk ‘{print substr($7,7)}’`
? ? D_IP=`echo $line | awk ‘{print substr($6,5)}’`
? ? D_SOCK=`echo $line | awk ‘{print substr($8,7)}’`
? ? echo “$S_IP:$S_SOCK $D_IP:$D_SOCK”
? ? hping2 $D_IP -R -s $S_SOCK -p $D_SOCK -a $S_IP -k -c 1 > /home/huaying/1.log 2>&1 &
? ? done
附:linux NAT 性能優(yōu)化常用設(shè)置…
#echo “1024 65000″ > /proc/sys/net/ipv4/ip_local_port_range
#echo “100 1200 128 512 15 5000 500 1884 2″>/proc/sys/vm/bdflush
#echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#echo “1″ > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#echo “1048576″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
#echo “1″ > /proc/sys/net/ipv4/ip_forward
#echo “268435456″ >/proc/sys/kernel/shmall
#echo “536870912″ >/proc/sys/kernel/shmmax
#echo “600″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
#echo “1024″ > /proc/sys/net/ipv4/neigh/default/gc_thresh1
#echo “2048″ > /proc/sys/net/ipv4/neigh/default/gc_thresh2
#echo “4096″ > /proc/sys/net/ipv4/neigh/default/gc_thresh3
#echo “52428800″ > /proc/sys/net/ipv4/route/max_size
#echo “1″ > /proc/sys/net/ipv4/conf/all/proxy_arp
#echo “1″ > /proc/sys/net/ipv4/tcp_window_scaling
二、iptables連接跟蹤(Connection tracking)
? ? ? ?每個(gè)網(wǎng)絡(luò)連接包括以下信息:源地址、目的地址、源端口和目的端口,叫作套接字對(duì)(socket pairs);協(xié)議類型、連接狀態(tài)(TCP協(xié)議)和超時(shí)時(shí)間等。防火墻把這些信息叫作狀態(tài)(stateful),能夠檢測(cè)每個(gè)連接狀態(tài)的防火墻叫作狀態(tài)包 過濾防火墻。它除了能夠完成簡(jiǎn)單包過濾防火墻的包過濾工作外,還在自己的內(nèi)存中維護(hù)一個(gè)跟蹤連接狀態(tài)的表,比簡(jiǎn)單包過濾防火墻具有更大的安全性。
? ? ? iptables中的狀態(tài)檢測(cè)功能是由state選項(xiàng)來實(shí)現(xiàn)的。對(duì)這個(gè)選項(xiàng),在iptables的手冊(cè)頁中有以下描述:
? ? ? state ? ? ? ? ?這個(gè)模塊能夠跟蹤分組的連接狀態(tài) ? ?--state state
? ? ? 這里,state是一個(gè)用逗號(hào)分割的列表,表示要匹配的連接狀態(tài)。有效的狀態(tài)選項(xiàng)包括:
INVAILD,表示分組對(duì)應(yīng)的連接是未知 的;
ESTABLISHED,表示分組對(duì)應(yīng)的連接已經(jīng)進(jìn)行了雙向的分組傳輸,也就是說連接已經(jīng)建立;
NEW,表示這個(gè)分組需要發(fā)起一個(gè)連接,或者說,分組對(duì)應(yīng)的連接在兩個(gè)方向上都沒有進(jìn)行過分組傳輸;
RELATED,表示分組要發(fā)起一個(gè)新的連接,但是這個(gè)連接和一個(gè)現(xiàn)有的連接有關(guān),例如:FTP的數(shù)據(jù)傳輸 連接和控制連接之間就是RELATED關(guān)系。
? ? ? ?對(duì)于本地產(chǎn)生分組,在PREROUTING或者OUTPUT鏈中都可以對(duì)連接的狀態(tài)進(jìn)行跟蹤。在進(jìn)行狀態(tài)檢測(cè)之前,需要重組分組的分片。這就是為什么在iptables中不再使用ipchains的ip_always_defrag開關(guān)。
? ? 1、 ?UDP和TCP連接的狀態(tài)表由/proc/net/ip_conntrack進(jìn)行維護(hù)。稍后我們?cè)俳榻B它的內(nèi)容。狀態(tài)表能夠保存的最大連接數(shù)保存在/proc/sys/net/ipv4/ip_conntrack_max中。它取決于硬件的物理內(nèi)存。
? ? ? ?iptables的連接跟蹤(Connection tracking),是如何工作的?
? ? ? 首先了解一下netfilter框架。如果要在兩個(gè)網(wǎng)絡(luò)接口之間轉(zhuǎn)發(fā)一個(gè)分組,這個(gè)分組將以以下的順序接收規(guī)則鏈的檢查:
? ? ? 1) PREROUTING鏈
? ? ? ?如果必要對(duì)這個(gè)分組進(jìn)行目的網(wǎng)絡(luò)地址轉(zhuǎn)換(DNAT)和mangle處理。同時(shí),iptables的狀態(tài)檢測(cè)機(jī)制將重組分組,并且以以下某種方式跟蹤其狀態(tài):
? ? ? 分組是否匹配狀態(tài)表中的一個(gè)已經(jīng)實(shí)現(xiàn)(ESTABLISHED)的連接。它是否是和狀態(tài)表中某個(gè)UDP/TCP連接相關(guān)(RELATED)的一個(gè)ICMP分組。這個(gè)分組是否要發(fā)起一個(gè)新(NEW)的連接。如果分組和任何連接無關(guān),就被認(rèn)為是無效(INVALID)的。
? ? ? 2) FORWARD鏈
? ? ? ?把分組的狀態(tài)和過濾表中的規(guī)則進(jìn)行匹配,如果分組與所有的規(guī)則都無法匹配,就使用默認(rèn)的策略進(jìn)行處理。
? ? ? 3) POSTROUTING鏈
? ? ? ?如果有必要,就對(duì)分組進(jìn)行源網(wǎng)絡(luò)地址轉(zhuǎn)換(SNAT),
注意:所有的分組都必須和過濾表的規(guī)則進(jìn)行比較。如果你修改了規(guī)則,要拒絕所有的網(wǎng)絡(luò)流量,那么即使分組的狀態(tài)匹配狀態(tài)表中的一個(gè)ESTABLISHED條目,也將被拒絕。
下面,我們對(duì)UDP、TCP和ICMP三個(gè)協(xié)議分別進(jìn)行分析。
? ?2、UDP連接
? ? ? ?UDP(用戶數(shù)據(jù)包協(xié)議)是一種無狀態(tài)協(xié)議,以為這個(gè)協(xié)議沒有序列號(hào)。不過,這并不意味著我們不能跟蹤UDP連接。雖然沒有序列號(hào),但是我們還可以使用其它的一些信息跟蹤UDP連接的狀態(tài)。下面是狀態(tài)表中關(guān)于UDP連接的條目:
? ? ? ? ? ? ? ?udp 17 19 src=192.168.1.2 dst=192.168.1.50 sport=1032 dport=53 [UNREPLIED] src=192.168.1.50 ? ? ? ? ? ? dst=192.168.1.2 sport=53 dport=1032 use=1
? ? ? ? 這個(gè)狀態(tài)表項(xiàng)只有在iptables過濾規(guī)則允許建立新的連接時(shí),才能建立。以下的規(guī)則可以產(chǎn)生這類狀態(tài)表項(xiàng),這兩條規(guī)則只允許向外的UDP連接:
iptables -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -P udp -m state --state NEW,ESTABLISHED -j ACCEPT
上面的狀態(tài)表項(xiàng)包含如下信息:連接的協(xié)議是UDP(IP協(xié)議號(hào)17)。這個(gè)狀態(tài)表項(xiàng)還有19秒中就超時(shí)。發(fā)起連接方向上的源、目的地址和源、目的端口。應(yīng)答方向上的源、目的地址和源、目的端口。這個(gè)連接使用UNREPLIED標(biāo)記,表示還沒有收到應(yīng)答。
? ? ? ?UDP連接的超時(shí)時(shí)間在/usr/src/linux /net/ipv4/netfilter/ip_conntrack_proto_udp.c文件中設(shè)置,如果改變了這個(gè)值,需要重新編譯Linux內(nèi)核源代碼才能生效。下面是UDP連接超時(shí)時(shí)間的相關(guān)的源代碼:
#define UDP_TIMEOUT (30*HZ)
#define UDP_STREAM_TIMEOUT (180*HZ)
? ? ? 一個(gè)UDP請(qǐng)求等待應(yīng)答的時(shí)間是30*HZ(這個(gè)值一般是30秒)。在上面的例子中,等待的時(shí)間已經(jīng)消耗了11秒,還剩余19秒,如果在這段時(shí)間之內(nèi)沒有 收到應(yīng)答分組,這個(gè)表項(xiàng)就會(huì)被刪除。一旦收到了應(yīng)答,這個(gè)值就被重置為30,UNREPLIED標(biāo)志也被刪除。這個(gè)表項(xiàng)編程如下形式:
? ? udp 17 28 src=192.168.1.2 dst=192.168.1.50 sport=1032 dport=53 src=192.168.1.50 dst=192.168.1.2 sport=53 dport=1032 use=1
如果在這一對(duì)源、目的地址和源、目的端口上,發(fā)生了多個(gè)請(qǐng)求和應(yīng)答,這個(gè)表項(xiàng)就作為一個(gè)數(shù)據(jù)流表項(xiàng),它的超時(shí)時(shí)間是180秒。這種情況下,這個(gè)表項(xiàng)就變成如下形式:
? ? ? udp 17 177 src=192.168.1.2 dst=192.168.1.50 sport=1032 dport=53 src=192.168.1.50 dst=192.168.1.2 sport=53 dport=1032 [ASSURED] use=1
? ? ? 這時(shí)我們看到這個(gè)表項(xiàng)使用ASSURED標(biāo)志。一旦連接表項(xiàng)使用ASSURED標(biāo)志,那么即使在網(wǎng)絡(luò)負(fù)沉重的情況下,也不會(huì)被丟棄。如果狀態(tài)表已經(jīng)飽和,當(dāng)新的連接到達(dá)時(shí),使用UNREPLIED標(biāo)志的表項(xiàng)會(huì)受被丟棄。
? ? 3、TCP連接(被*** 的大戶人家)
? ? ? ? 一個(gè)TCP連接是通過三次握手的方式完成的。首先,客戶程序發(fā)出一個(gè)同步請(qǐng)求(發(fā)出一個(gè)SYN分組);接著,服務(wù)器端回應(yīng)一個(gè)SYN|ACK分組;最后返回一個(gè)ACK分組,連接完成。整個(gè)過程如下所示:
Client ? ? | ? ? Server
SYN --->;
? ? ? ? <--- SYN+ACK
ACK --->;
? ? ? ? <--- ACK
ACK --->;
? ? ? .........
? ? ? .........
? ? ? ?SYN和ACK是由TCP分組頭的標(biāo)志決定的。在每個(gè)TCP分組頭還有32位的序列號(hào)和應(yīng)答號(hào)用于跟蹤會(huì)話。
? ? ? ?為了跟蹤一個(gè)TCP連接的狀態(tài),你需要使用下面這樣的規(guī)則 :
iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT
? ? ? 一旦一個(gè)初始SYN分組進(jìn)入OUTPUT鏈,并且輸出規(guī)則允許這個(gè)分組建立一個(gè)新的連接,是通過linux Client端進(jìn)行連接,狀態(tài)表的相關(guān)表項(xiàng)將如下所示:
? ? ? ? tcp 6 119 SYN_SENT src=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 [UNREPLIED] src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 use=1
? ? ? ? 其中,TCP連接狀態(tài)是SYN_SENT,連接被標(biāo)記為UNREPLIED。
? ? ? ? Server端收到后返回SYN+ACK
? ? ? ? 現(xiàn)在,Clinet端等待SYN+ACK分組的響應(yīng)。一旦得到響應(yīng),這個(gè)TCP連接表項(xiàng)就變?yōu)?#xff1a;
? ? ? ?tcp 6 57 SYN_RECV src=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 use=1
? ? ? ? ?連接的狀態(tài)變?yōu)镾YN_RECV,UNREPLIED標(biāo)志被清除。
? ? ? ? ?現(xiàn)在等待完成握手的ACK分組。ACK分組到達(dá)后,首先對(duì)其序列號(hào)進(jìn)行一些檢查,如果正確,就把這個(gè)連接的狀態(tài)變?yōu)镋STABLISHED,并且使用ASSURED標(biāo)記這個(gè)連接。這時(shí),這個(gè)連接的狀態(tài)如下所示:
? ? ? ? ? tcp 6 431995 ESTABLISHED src=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 [ASSURED] use=1
了解了TCP連接的狀態(tài)。現(xiàn)在,分析一下TCP連接的鏈路跟蹤檢測(cè)。實(shí)際上,狀態(tài)表只知道NEW、ESTABLISHED、RELATED和INVALID。
? ? ? ? 要注意:鏈路跟蹤檢測(cè)的狀態(tài)不等于TCP狀態(tài)。當(dāng)一個(gè)SYN分組的響應(yīng)SYN+ACK分組到達(dá),Netfilter的狀態(tài)檢測(cè)模塊就會(huì)認(rèn)為連接已經(jīng)建立。但是,這時(shí)還沒有完成三次握手,因此TCP連接還沒有建立。
? ? ? ?另外,包過濾規(guī)則不能刪除狀態(tài)表中的表項(xiàng),只有連接超時(shí),對(duì)應(yīng)的狀態(tài)表項(xiàng)才會(huì)被刪除。ACK分組能夠建立一個(gè)NEW狀態(tài)表項(xiàng) 。向防火墻之后一臺(tái)并不存在主機(jī)發(fā)送ACK分組,并不會(huì)返回RST分組,可以證明這個(gè)結(jié)論。因此,你需要使用以下的規(guī)則明確新的TCP連接應(yīng)該是SYN分組建立的:
? ? ? ? ? ? ? ? iptables -A INPUT -p tcp !--syn -m state --state NEW -j DROP
這樣可以阻止空會(huì)話的繼續(xù)進(jìn)行。
超時(shí)
所謂狀態(tài)表項(xiàng)的超時(shí)值是指每個(gè)表項(xiàng)存在的最大時(shí)間,這些超時(shí)值的大小在/usr/src/linux/net/ipv4/netfilter/ip_conntrack_proto_tcp.c文件中設(shè)置。以下是相關(guān)的代碼:
static unsigned long tcp_timeouts[]
= { 30 MINS, /* TCP_CONNTRACK_NONE, */
? ?5 DAYS, /* TCP_CONNTRACK_ESTABLISHED, */
? ?2 MINS, /* TCP_CONNTRACK_SYN_SENT, */
? ?60 SECS, /* TCP_CONNTRACK_SYN_RECV, */
? ?2 MINS, /* TCP_CONNTRACK_FIN_WAIT, */
? ?2 MINS, /* TCP_CONNTRACK_TIME_WAIT, */
? ?10 SECS, /* TCP_CONNTRACK_CLOSE, */
? ?60 SECS, /* TCP_CONNTRACK_CLOSE_WAIT, */
? ?30 SECS, /* TCP_CONNTRACK_LAST_ACK, */
? ?2 MINS, /* TCP_CONNTRACK_LISTEN, */
};
? ? ?4、.ICMP
? ? ? ? ? 在iptables看來,只有四種ICMP分組,這些分組類型可以被歸為NEW、ESTABLISHED兩類:
ECHO請(qǐng)求(ping,8 和ECHO應(yīng)答(ping,0)。
時(shí)間戳請(qǐng)求(13)和應(yīng)答(14)。
信息請(qǐng)求(15)和應(yīng)答(16)。
地址掩碼請(qǐng)求(17)和應(yīng)答(18 。
? 這些ICMP分組類型中,請(qǐng)求分組屬于NEW,應(yīng)答分組屬于ESTABLISHED。而其它類型的ICMP分組不基于請(qǐng)求/應(yīng)答方式,一律被歸入RELATED。
一個(gè)簡(jiǎn)單的例子:
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED, RELATED -j ACCEPT
iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
這鏈條規(guī)則進(jìn)行如下的過濾:
? ? 一個(gè)ICMP echo請(qǐng)求是一個(gè)NEW連接。因此,允許ICMP echo請(qǐng)求通過OUTPUT鏈。
? ? 當(dāng)對(duì)應(yīng)的應(yīng)答返回,此時(shí)連接的狀態(tài)是ESTABLISED,因此允許通過INPUT鏈。而INPUT鏈沒有NEW狀態(tài),因此不允許echo請(qǐng)求通過INPUT鏈。也就是說,這兩條規(guī)則允許內(nèi)部主機(jī)ping外部主機(jī),而不允許外部主機(jī)ping內(nèi)部主機(jī)。
? ? 一個(gè)重定向ICMP(5)分組不是基于請(qǐng)求/應(yīng)答方式的,因此屬于RELATED。INPUT和OUTPUT鏈都允許RELATED狀態(tài)的連接,因此重定向(5)分組可以通過INPUT和OUTPUT鏈。
轉(zhuǎn)載于:https://blog.51cto.com/wushank/1264758
總結(jié)
以上是生活随笔為你收集整理的iptables连接跟踪ip_conntrack的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【职场攻略】是什么决定了我们的工资
- 下一篇: 丢失或损坏NDF文件如何附加数据库