NAT服務器上巧用iptables之iptables技巧實例

NAT服務器上巧用iptables
iptables技巧實例:
       做爲nat服務器,必須制定一些規則來控制客戶機上網的行爲,下面我介紹一些經常使用的實例。需注意的是,爲了能保證新加如的規則有效,而不受原有規則的影響,這裏都是使用-I命令在第1條規則前插入。切勿使用-A命令,不然會因iptable以編號靠前的規則爲準,而覆蓋了後加人的新規則。
1、禁止客戶機訪問不健康網站
        爲了保證網絡的安全。須要禁止客戶機訪問某些不健康網站。iptables支持使用域名和ip地址兩種方法來指定禁止的網站。若是使用域名的方式指定站,iptable
就會經過dns服務器查詢該域名對應的全部ip地址,並將它們加人到規則中,因此使用域名指定網站時,iptables的執行速度會慢。
    [例1]       添加iptables規則禁止用戶訪問域名爲 [url]www.aaa.com[/url] 的網站。而後查看filter表的FORWARD鏈規則列表。
    iptables -I  FORWARD -d 
[url]www.aaa.com[/url]   -j DROP
    iptables -t filter -L FORWARD
 
    [例2]       添加iptables規則禁止用戶訪問ip地址爲10.10.10.10的網站。而後查看filter表的FORWARD鏈規則列表。
    iptables -I  FORWARD -d  10.10.10.10 -j DROP
    iptables -t filter -L FORWARD
2、禁止某些客戶機上網
         在網絡管理中會因各類緣由須要禁止部分客戶機上網,這時能夠經過iptables
來控制。
   
  【例1】     添加iptables規則禁止ip地址爲10.10.10.10的客戶機上網。而後查看filter表的FORWARD鏈規則列表。
    iptables -I  FORWARD -s 10.10.10.10  -j DROP
    iptables -t filter -L FORWARD
 【例1】      添加iptables規則禁止192.168.2.0子網裏的全部客戶機上網。而後查看filter表的FORWARD鏈規則列表。
    iptables -I  FORWARD -s 192.168.2.0/24  -j DROP
    iptables -t filter -L FORWARD
3、禁止客戶機訪問某些服務
          端口是tcp/ip協議裏的一個重要的概念,由於在網絡中許多應用程序可能會在同一時刻進行通訊,當多個應用程序在同一臺計算機上進行網絡通訊時,就要有一種方法來區分各個應用程序。tcp/ip協議使用「端口」來區分系統中不一樣的服務。如 web服務使用的是tcp協議80端口,ftp使用的是20和21號端口等。因爲不一樣的服務使用的不一樣端口與外界進行通訊,所以一臺計算機能夠互不干擾地爲客戶機提供多種不一樣的服務。計算機中可使用的端口號從0~65535,其中tcp和udp協議使用的端口號是彼此獨立的。
       在網絡管理過程當中。常常須要禁止客戶機訪問internet上的某些服務。要實現這個功能,只要將禁止服務使用的端口號封閉便可。
 
   【例1】    禁止192.168.1.0子網裏全部的客戶機使用ftp協議下載(即封閉tcp協議的21號端口)。而後查看filter表的FORWARD聯規則列表。
   iptables -I  FORWARD  -s 192.168.1.0/24 -p tcp --dport 21 -j DROP
   iptables -t filter -L FORWARD
  
   【例2】    禁止192.168.1.0子網裏全部的客戶機使用telnet協議連接遠程計算機(即封閉tcp協議的23號端口)。而後查看filter表的FORWARD聯規則列表。
   iptables -I  FORWARD  -s 192.168.1.0/24 -p tcp --dport 23 -j DROP
   iptables -t filter -L FORWARD
4、強制訪問指定站點
             在某些特殊場合(如領導強制要求全體員工訪問某個站點),須要強制訪問指定站點,即不管用戶在瀏覽器中輸入任何網址,都會被自動重定向到某個網站。使用DNAT目標網路地址轉換功能能夠很好的實現這個功能。
  【例1】  強制全部的客戶機訪問210.21.118.68  這臺web服務器,而後查看PREROUTING鏈規則列表。
         iptables -t nat -I PREROUTING -i eth0 -p tcp --dport 80  -j  DNAT --to 210.21.118.68:80
         iptables -t nat -L PREROUTING
   注意強制訪問指定的站點技術事項:
            (1)只能使用網站的ip地址,不能使用網站的域名。
            (2)不適用於使用虛擬主機技術的網站,應爲這種網站的ip地址是由多個網站共用的。
5、禁止客戶機使用QQ
        封鎖QQ是許多網絡管理員最爲頭痛的問題,特別是新版的QQ比較難封鎖,其實只要知道QQ使用的服務器地址和端口號就能夠封閉了。那如何得知QQ使用的服務器地址和端口號呢?其實很簡單,只要進入QQ安裝目錄,使用記事本或其餘編輯器打開以QQ號碼命名的子目錄下的config.db文件,便可看到QQ使用的服務器的地址和端口號。以下圖:

        從該文件能夠看到。首先要封鎖QQ使用的tcp或udp協議的8000端口,其次還要封鎖提供給新版的QQ 使用 tcp 的 80 端口服務器的 IP  地址,這些服務器對應的域名分別是 tcpconn.tencent.com  tcpconn2.tencent.com  tcpconn3.tencent.com 和 tcpconn4.tencent.com .最後要封鎖提供給vip會員使用的服務器http.tencent.com和http2.tencent.com. 
          
           iptable  -I FORWARD -p TCP --dport 8000 -j  DROP 
           iptable  -I FORWARD -p UDP --dport 8000 -j  DROP 
           iptable  -I FORWARD -d  tcpconn.tencent.com -j  DROP 
           iptable  -I FORWARD -d  tcpconn2.tencent.com -j  DROP 
           iptable  -I FORWARD -d  tcpconn3.tencent.com -j  DROP 
           iptable  -I FORWARD -d  tcpconn4.tencent.com -j  DROP 
           iptable  -I FORWARD -d   http.tencent.com -j  DROP 
           iptable  -I FORWARD -d   http2.tencent.com -j  DROP
 
6、禁止使用icmp協議        雖然ICMP協議在TCP/IP網絡中能夠提供測試網絡的聯通性和報告錯誤信息功能,但ICMP協議是一個無連接協議,也就是說只要發送端完成ICMP包文的封裝和發送,這個ICMP報文就能經過網絡傳遞給目標主機。這個特色使用的ICMP協議很是靈活快捷,可是同時也帶來了一個致命的缺陷——易假裝。任何人均可以發送一個僞造源地址的ICMP報文。ICMP協議也常常被用於發動如下兩種拒絕服務DOS***。    (1)耗盡服務器CPU資源。    (2) 耗盡服務器網絡帶寬。      爲了預防ICMP***,一般都是禁止來自internet的***,因此通常在PPP0接口上禁止ICMP協議。      【例1】  禁止INTERNET上計算機經過ICMP協議PING到NAT服務器的PPP0接口,但容許內網的客戶機經過ICMP協議PING的計算機,而後查看FILTER表的INPUT鏈規則列表。        iptables -I INPUT -i ppp0 -p icmp -j DROP        iptables -t filter -L INTUP        要實現上面的要求,能夠經過在FILTER表的INPUT鏈中進行設置將ICMP包丟棄。如此設置後INTERNET上的計算機就不能PING到NAT服務器了。固然NAT服務器也PING不到INTERNET上的計算機,可是局域網中的計算機仍是能夠PING通INTERNET上的計算機的,由於從局域網到INTERNET的數據包使用NAT方式傳輸,僅通過PREROUTING鏈——FORWARD鏈——POSTROUTING鏈——鏈這條通道,並無通過INPUT和OUPUT鏈。
相關文章
相關標籤/搜索