iptables本身沒有TRACK target,以至于你不能指定需要被conntrack模塊處理的數據包白名單,比如我想實現:除了來源IP是192.168.10.0/16網段的需要被track之外,其它的都不要track。
當然,你可以通過下面的配置實現我的需求:
iptables -t raw -A PREROUTING ! -s 192.168.10.0/16 -j NOTRACK
...反向NOTRACK類似,-s換-d
如果更復雜一點呢?比如除了來源IP限制之外,還有協議,端口等。
熟悉訪問控制列表設計的都知道,ACL的“與”操作可以在單條規則中實現,而“或”操作則由多條規則實現,因此應用于上述隨便復雜的需求,都是可以完成
的,甚至拋開“單條與/多條或”原則,僅僅是擴充ipset也可以很好配置出來任意復雜的規則滿足任意復雜的需求。
但是有沒有一個更簡單的辦法?當然有,實現一個和NOTRACK對立的target,即TRACK target即可。它的實現就是清除已經附著在skb上的untracked conn。這樣當我需要添加track白名單時,我可以這么做:
iptables -t raw -A PREROUTING -j NOTRACK
iptables -t raw -A PREROUTING $mt1 $mt2 ... -j TRACK # 單條的matches AND操作
...# 多條的 matches OR操作
iptables -t raw -A PREROUTING $mt''1 $mt''2 ... -j TRACK
OK,就這樣,很簡單。
不過iptables沒有內置OR操作是完全符合ACL理念的,該理念中,如果想實現或,就配置多條規則,事實上大多數的鑒權系統都是如此的理念。看看C
語言的邏輯判斷會發現同樣的理念,如果是AND操作,逐條語句便和順序無關,因為最終必須將每個語句全部計算一遍,如果是OR操作,計算效率就和順序有關
了,只要到達“真”值,計算就可以結束了,當然內部細節還是和實現相關的。所以,對于AND操作,由于它是閉合的,一條語句就可以囊括進去,但是OR卻是
不閉合的,你不知道計算將在哪里結束。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網頁名稱:iptables配置conntrack的NOTRACK和TRACK-創新互聯
鏈接分享:http://vcdvsql.cn/article48/dcodhp.html
成都網站建設公司_創新互聯,為您提供做網站、App設計、動態網站、企業建站、網站營銷、域名注冊
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯