小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

iptables詳解

 mrjbydd 2011-05-06
  •  
iptables詳解   
Iptables原理
現(xiàn)在防火墻主要分以下三種類型:包過濾、應用代理、狀態(tài)檢測
包過濾防火墻:現(xiàn)在靜態(tài)包過濾防火墻市面上已經(jīng)看不到了,取而代之的是動態(tài)包過濾技術的防火墻哈~
代理防火墻:因一些特殊的報文攻擊可以輕松突破包過濾防火墻的保護,比如大家知道的SYN攻擊、ICMP洪水攻擊,所以以代理服務器作為專門為用戶保密或者突破訪問限制的數(shù)據(jù)轉發(fā)通道的應用代理防火墻出現(xiàn)了哈~其使用了一種應用協(xié)議分析的新技術。
狀態(tài)檢測防火墻:其基于動態(tài)包過濾技術發(fā)展而來,加入了一種狀態(tài)檢測的模塊,進一點發(fā)展了會話過濾功能,會話狀態(tài)的保留是有時間限制的,此防火墻還可以對包的內容進行分析,從而避免開放過多的端口。
netfilter/iptables IP數(shù)據(jù)包過濾系統(tǒng)實際上由netfilter和iptables兩個組件構成。netfilter是集成在內核中的一部分,其作用是定義、保存相應的規(guī)則,而iptables是一種工具,用來修改信息的過濾規(guī)則及其他配置,我們可以通過iptables來設置一些適合我們企業(yè)需求環(huán)境的規(guī)則哈~,而這些規(guī)則會保存在內核空間之中。
netfilter是Linux核心中的一個通用架構,其提供了一系列的表(tables),每個表由若干個鏈(chains)組成,而每條鏈可以由一條或若干條規(guī)則(rules)組成。實際上netfilter是表的容器,表是鏈的容器,而鏈又是規(guī)則的容器。
filter表
image
nat表
image
mangle表
image
iptables內置鏈
PREROUTING:數(shù)據(jù)包進入路由表之前
INPUT:通過路由表后目的地為本機
FORWARDING:通過路由表后,目的地不為本機
OUTPUT:由本機產生,向外轉發(fā)
POSTROUTIONG:發(fā)送到網(wǎng)卡接口之前
netfilter五條鏈相互關系,即iptables數(shù)據(jù)包轉發(fā)流程圖
image
Iptables工作流程圖
iptables擁有三個表和五條鏈組成
image
NAT工作原理
image
Iptables詳細參數(shù)表
iptables詳細參數(shù)表大圖
Iptables基本語法
iptables [-t 表名] -命令 -匹配 -j 動作/目標
iptables內置了filter、nat和mangle三張表,我們可以使用-t參數(shù)來設置對哪張表生效哈~也可以省略-t參數(shù),則默認對filter表進行操作。
具體命令參數(shù)可以通過man iptables查詢哈~
image
配置SNAT命令基本語法
iptables -t nat -A POSTROUTING -o 網(wǎng)絡接口 -j SNAT --to-source IP地址
配置DNAT命令基本語法
iptables -t nat -A PREROUTING -i 網(wǎng)絡接口 -p 協(xié)議 --dport 端口 -j DNAT --to-destination IP地址
企業(yè)環(huán)境及需求
1、企業(yè)環(huán)境
230臺客戶機,IP地址范圍為192.168.0.1~192.168.0.254,子網(wǎng)掩碼為255.255.255.0
Mail服務器:IP地址為192.168.0.1 子網(wǎng)掩碼為255.255.255.0
FTP服務器:IP地址為192.168.0.2 子網(wǎng)掩碼為255.255.255.0
WEB服務器:IP地址為192.168.0.3 子網(wǎng)掩碼為255.255.255.0
公司網(wǎng)絡拓撲圖如下:
image
2、配置默認策略
所有內網(wǎng)計算機需要經(jīng)常訪問互聯(lián)網(wǎng),并且員工會使用即時通信工具與客戶進行溝通,企業(yè)網(wǎng)絡DMZ隔離區(qū)搭建有Mail、FTP和Web服務器,其中Mail和FTP服務器對內部員工開放,僅需要對外發(fā)布Web站點,并且管理員會通過外網(wǎng)進行遠程管理,為了保證整個網(wǎng)絡的安全性,需要添加iptables防火墻并配置相應的策略
需求分析
企業(yè)的內部網(wǎng)絡為了保證安全性,需要首先刪除所有規(guī)則設置,并將默認規(guī)則設置為DROP,然后開啟防火墻對于客戶端的訪問限制,打開WEB、MSN、QQ及MAIL的相應端口,并允許外部客戶端登錄WEB服務器的80、22端口。
解決方案
1、配置默認策略
默認iptables已經(jīng)被安裝好了
image
(1)刪除策略
iptables -F:清空所選鏈中的規(guī)則,如果沒有指定鏈則清空指定表中所有鏈的規(guī)則
iptables -X:清除預設表filter中使用者自定鏈中的規(guī)則
iptables -Z:清除預設表filter中使用者自定鏈中的規(guī)則
image
(2)設置默認策略
設置默認策略為關閉filter表的INPPUT及FORWARD鏈開啟OUTPUT鏈,nat表的三個鏈PREROUTING、OUTPUT、POSTROUTING全部開啟哈~默認全部鏈都是開啟的,所以有些命令可以不操作,另外mangle表本文沒用到,所以不做處理,mangle主要用在數(shù)據(jù)包的特殊變更處理上,比如修改TOS等特性。
image
image
2、設置回環(huán)地址
有些服務的測試需要使用回環(huán)地址,為了保證各個服務的正常工作,需要允許回環(huán)地址的通信,RHCE課程-RH253Linux服務器架設筆記二-NFS服務器配置己有涉及,如果不設置回環(huán)地址,有些服務不能啟動哈~。
iptables -A INPUT -i lo -j ACCEPT
 image
3、連接狀態(tài)設置
為了簡化防火墻的配置操作,并提高檢查的效率,需要添加連接狀態(tài)設置
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
連接跟蹤存在四種數(shù)據(jù)包狀態(tài)
NEW:想要新建連接的數(shù)據(jù)包
INVALID:無效的數(shù)據(jù)包,例如損壞或者不完整的數(shù)據(jù)包
ESTABLISHED:已經(jīng)建立連接的數(shù)據(jù)包
RELATED:與已經(jīng)發(fā)送的數(shù)據(jù)包有關的數(shù)據(jù)包
image
4、設置80端口轉發(fā)
公司網(wǎng)站需要對外開放,所以我們需要開放80端口
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
image
5、DNS相關設置
為了客戶端能夠正常使用域名訪問互聯(lián)網(wǎng),我們還需要允許內網(wǎng)計算機與外部DNS服務器的數(shù)據(jù)轉發(fā)。
開啟DNS使用UDP、TCP的53端口
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
image 
6、允許訪問服務器的SSH
管理員會通過外網(wǎng)進行遠程管理,所以我們要開啟SSH使用的TCP協(xié)議22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
image
7、允許內網(wǎng)主機登錄MSN和QQ相關設置
QQ能夠使用TCP80、8000、443及UDP8000、4000登錄,而MSN通過TCP1863、443驗證。因此只需要允許這些端口的FORWARD轉發(fā)即可以正常登錄。
iptables -A FORWARD -p tcp --dport 1863 -j ACCEPT
iptables -A FORWARD -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -p tcp --dport 8000 -j ACCEPT
iptables -A FORWARD -p udp --dport 8000 -j ACCEPT
iptables -A FORWARD -p udp --dport 4000 -j ACCEPT
注意:當然,如果公司要限制這樣即時通信工具的使用,只要禁止這些端口的轉發(fā)就可以了哈~特別注意,馬化騰這家伙忒壞~嘿嘿~,端口不固定,QQVIP會員專用通道什么的,代理登錄等等哈~,所以我們如果需要封殺就要收集全登錄端口及QQ服務器地址,根據(jù)本人總結,最好在企業(yè)實際配置中技術與行政管理相結合,這樣達到的效果最好~0(^_^)0
image
8、允許內網(wǎng)主機收發(fā)郵件
客戶端發(fā)送郵件時訪問郵件服務器的TCP25端口。接收郵件時訪問,可能使用的端口則較多,UDP協(xié)議以及TCP協(xié)議的端口:110、143、993及995
smtp:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
pop3:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 110 -j ACCEPT
imap:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 143 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 143 -j ACCEPT
imaps:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 993 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 993 -j ACCEPT
pop3s:
[root@rhel5 ~]# iptables -A FORWARD -p tcp --dport 995 -j ACCEPT
[root@rhel5 ~]# iptables -A FORWARD -p udp --dport 995 -j ACCEPT
image
9、NAT端口映射設置
由于局域網(wǎng)的地址為私網(wǎng)地址,在公網(wǎng)上不合法哈~所以必須將私網(wǎng)地址轉為服務器的外部地址進行地址映射哈~連接外網(wǎng)接口為ppp0
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
MASQUERADE和SNAT作用一樣哈~相樣是提供源地址轉換的操作,但是MASQUERADE是針對外部接口為動態(tài)IP地址來設置滴,不需要使用--to-source指定轉換的IP地址。如果網(wǎng)絡采用的是撥號方式接入互聯(lián)網(wǎng),而沒有對外的靜態(tài)IP地址(主要用在動態(tài)獲取IP地址的連接,比如ADSL撥號、DHCP連接等等),那么建議使用MASQUERADE哈~
注意:MASQUERADE是特殊的過濾規(guī)則,其只可以映射從一個接口到另一個接口的數(shù)據(jù)哈~
image
10、內網(wǎng)機器對外發(fā)布WEB網(wǎng)站
內網(wǎng)WEB服務器IP地址為192.168.0.3,我們需要進行如下配置哈~,當公網(wǎng)客戶端訪問服務器時,防火墻將請求映射到內網(wǎng)的192.168.0.3的80端口
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
image
11、保存與恢復iptables配置
保存:iptables-save
iptables-save [-c] [-t 表名]
-c:保存包和字節(jié)計數(shù)器的值??梢允乖谥貑⒎阑饓蟛粊G失對包和字節(jié)的統(tǒng)計
-t:用來保存哪張表的規(guī)則,如果不跟-t參數(shù)則保存所有的表
可以使用重定向命令來保存這些規(guī)則集
iptables-save > /etc/iptables-save
恢復:iptables-restore
iptables-restore [-c] [-n]
-c:如果加上-c參數(shù)則表示要求裝入包和字節(jié)計數(shù)器
-n:表示不覆蓋己有的表或表內的規(guī)則,默認情況下是清除所有己存在的規(guī)則
使用重定向來恢復由iptables-save保存的規(guī)則集
iptables-restore > /etc/iptables-save
如果要在服務或系統(tǒng)重啟后依然生效
service iptables save
image
12、最終iptables配置如下
[root@rhel5 ~]# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
Chain FORWARD (policy DROP)
target     prot opt source               destination        
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere            udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:msnp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:irdmi
ACCEPT     udp  --  anywhere             anywhere            udp dpt:irdmi
ACCEPT     udp  --  anywhere             anywhere            udp dpt:terabase
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3
ACCEPT     udp  --  anywhere             anywhere            udp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imap
ACCEPT     udp  --  anywhere             anywhere            udp dpt:imap
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:imaps
ACCEPT     udp  --  anywhere             anywhere            udp dpt:imaps
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:pop3s
ACCEPT     udp  --  anywhere             anywhere            udp dpt:pop3s
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        
[root@rhel5 ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination        
DNAT       tcp  --  anywhere             anywhere            tcp dpt:http to:192.168.0.3:80
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination        
MASQUERADE  all  --  192.168.0.0/24       anywhere           
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        
[root@rhel5 ~]#
注意:
SNAT將源網(wǎng)絡地址進行轉換,只能用在nat表的POSTROUTING鏈中,只要連接的第一個符合條件的包被SNAT了哈~,那么這個連接的其他所有的數(shù)據(jù)包都會自動地被SNAT。與SNAT對應,DNAT將目的地址進行轉換,只能用在nat表的PREROUTIONG和OUTPUT鏈中,或者是被這兩條鏈調用的鏈里面。包含DNAT的鏈不能被除此之外的其他鏈調用,比如POSTROUTING鏈。
附:
我們可以通過設置禁止訪問具體域名和IP地址哈~
禁止訪問QQ主頁:
[root@rhel5 ~]# iptables -A FORWARD -d [url]www.qq.com[/url] -j DROP
禁止訪問指定IP地址:
[root@rhel5 ~]# iptables -A FORWARD -d 119.147.15.17 -j DROP
image
我們可以通過查找QQ的安裝目錄來獲取QQ服務器的地址和端口號哈~
 image
 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多