iptables知識小結

來源:互聯網
上載者:User

iptables知識小結  最近工作上一個作業用到了iptables命令,主要進行連接埠映射,在網上查了好多資料,儘管有很多例子,但還是整了好幾天才整明白。在這裡將學習到的知識總結一下。以下均屬個人見解。(有一些是從網路中總結的,不斷完善中...)  一、基本知識 (1) iptables簡介            iptables是一個Linux下優秀的nat+防火牆工具,iptables操作的是2.4以上核心的netfilter,所以需要linux的核心在2.4以上。其功能性與安全性遠遠比其前輩ipforward、ipchains強大,iptables大致是工作在OSI七層的二、三、四層。           首先簡單介紹一下netfilter的大致工作流程,也就是一個資料包(或者分組,packet),在到達linux的網路介面(網卡)的時候,如何處理這個包。然後再介紹一下如何利用iptables改變或控制這個資料包。          netfilter的內部有三個表嗎,分別是filter、nat和mangle。每個表有不同的操作鏈結(Chain)。          filter表中,即起防火牆功能的表,定義了三個Chain,分別是INPUT、FORWARD、OUTPUT(即對包的進入、轉寄和出進行定義的三個鏈),對這個filter表的操作是實現防火牆功能的一個重要手段。         nat表(Network Address Translation網路地址翻譯),定義了PREROUTING、POSTROUTING、OUTPUT三個鏈,主要用於實現地址轉換和連接埠轉寄。         mangle表,是一個自訂表格,包括上述的filter和nat表中的各種chains,它可以讓我們進行一些自訂的操作。mangle表中的chains存在netfilter對包的處理流程中處於一個比較優先的位置(對此表的瞭解不多,一般情況我們用不到這個mangle表,在此不做介紹)。         下述圖清晰的描繪了netfilter對包的處理流程                                                    (2)基本操作  ①iptables命令啟動、停止、重啟、儲存:   #/etc/init.d/iptables start  #service iptables start  #/etc/init.d/iptables stop  #/etc/init.d/iptables restart  #service iptables restart  #/etc/init.d/iptables save 二、應用 (1)連接埠映射  前提:一台Linux雙網卡電腦IP:192.168.1.2、202.201.1.2,內網有一個Web伺服器192.168.1.6  要求:在外網的瀏覽器輸入202.201.1.2:8000訪問到192.168.1.6的80Web服務連接埠 詳細配置: 注意:在此之前要開啟連接埠轉寄服務 /etc/sysctl.conf設定檔的  net.ipv4.ip_forward = 1 預設是0 可以獲得root許可權修正,也可以用如下命令: echo "1" > /etc/sysctl.conf/net.ipv4.ip_forward ①清除原有規則 #iptables -F -t nat #iptables -F -t filter #/etc/init.d/iptables save ②配置映射規則 #iptables -t nat -A PREROUTING -d 202.201.1.2 -t tcp  --dport 8000 -t tcp -j DNAT -to--destination 192.168.1.6:80 #iptables -t nat -A POSTROUTING -d 192.168.1.6 -p tcp --dport 80 -j SNAT -- to 192.168.1.2 #iptables -A FORWARD -o eth0 -d 192.168.1.6 -p tcp --dport 80 -j ACCEPT #iptables -A FORWARD -i eth0 -s192.168.1.6 -p tcp --dport 80 -j ACCEPT #iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT ③儲存,啟動服務  #/etc/init.d/iptables save  #service iptables restart註:在/proc/net/ip_conntrack檔案裡有包的流向 (2)IP映射 前提:Linux先在一個網卡上追加一個IP地址,Linux上的一個網卡可以有多個IP地址。   LINUX雙網卡,IP分別為eth0:192.168.1.2/24、eth1:192.168.2.2/24 要求:將IP:192.168.2.5映射到LINUX上的192.168.1.2上 ①追加linux的eth0一個網址 #ip address add 1.1.1.1/30 brd + dev eth0 ②iptables配置 #iptables -A FORWARD -s 192.168.12.95 -j ACCEPT #iptables -A FORWARD -d 192.168.12.95 -j ACCEPT #iptables -t nat -A PREROUTING -d 202.201.1.2 -j DNAT -to--destination 192.168.1.6 #iptables -t nat -A POSTROUTING -d 192.168.1.6 -j SNAT -- to -source 192.168.1.2 #/etc/init.d/iptables save  #service iptables restart

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.