歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux2.4內核下的代理ARP和透明防火牆

  作者:吳阿亭     一: 操作環境     Redhat 7.X, iptables, iproute2       二: 為什麼需要Proxy ARP?     目前而言,為了添加防火牆,重新布署網絡結構主要有如下方法:     a. 防火牆兩端分別使用真實地址和私有地址,用NAT或者端口轉發實現對外服務,缺點是不能支持所有協議。   b. 把現有從ISP得到的IP地址分段成兩個子網在防火牆兩端使用,缺點是需要更改服務器默認網關及子網掩碼等設置   c. 用代理ARP技術構建透明防火牆,可以Linux 2.4內核中輕易實現,它能保持現有的IP地址、 網關和子網掩碼設置,加上使用真實IP地址,所以支持所有協議。     三: 典型應用圖例     下面我們來考慮一個典型的小型企業網絡環境:     1> 公司有專線連結互聯網,為了保護DMZ區內的服務器,我們想架設一台防火牆直接連接路由器,下面再連結所有向外提供服務的各種WEB,Mail,DNS服務器,如下圖:         Internet       DDN   ________    Router   _________e0: a.b.c.1      ____ eth0: a.b.c.2       F 用Proxy ARP技術的透明防火牆 (gw: a.b.c.1)   _____    eth1: a.b.c.2 (兩邊可以用同一個IP,節省IP地址)      _________________________      ____ __ __   mail relay A ip:a.b.c.3 B C   web proxy gw:a.b.c.1 ___ ___   _____ WEB DNS    ip:a.b.c.4 IP:a.b.c.5   __ Intranet_____ _ gw:a.b.c.1 gw:a.b.c.1   192.168.1.0/24   ____    D   Mail   _____       注:   1. 一台防火牆F保護整個DMZ區和內部網絡,兩邊可以用同一個IP地址a.b.c.2 。   2. 透明防火牆F兩邊在同一網段,且被保護的機器的IP和網關設置與同沒有透明防火牆時一樣,對被保護的服務器和外部用戶而言都是透明的。當拿掉防火牆F時整個網絡仍然能工作。   3. 服務器A連結內部網絡作代理服務器共享上網,且配置Sendmail為內部網上的郵件服務器D作郵件relay。   4. 服務器A也可以直接連接到Router,和服務器F一樣,這樣要單獨為服務器A設置防火牆規則。   5. 如果只有服務器F連接路由器,則只需用一個交叉電纜連結即可,不用HUB或者Switch 。   6. 你也可以合並A到F中,這樣需要在F上有三塊網卡同時連結DMZ和內部網絡。     四: 如何設置Proxy ARP?     Redhat 7.2已經帶有iproute2,用 #ip route命令而不是以前用的#route命令   假定從ISP得到的IP地址為a.b.c.0/28 即可有a.b.c.0-15 共16個IP可用,但a.b.c.0(網絡地址)和a.b.c.15(廣播地址)不可用,故實際可用IP為a.b.c.1-14共14個IP地址。     a. 安裝時先設置eth0和eth1的IP地址都是a.b.c.2,且默認網關為a.b.c.1 。   b. 啟動後運行下面的命令或者放入/etc/rc.d/rc.local   ip route del a.b.c.0/28 dev eth0     ip route add a.b.c.1 dev eth0     echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp   echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp     echo 1 > /proc/sys/net/ipv4/ip_forward       最後當你運行ip route命令時你應該看到類似下面的輸出。     a.b.c.1 dev eth0 scope link   a.b.c.0/28 dev eth1 proto kernel scope link src a.b.c.2   127.0.0.0/8 dev lo scope link   default via a.b.c.1 dev eth0     c. 我從防火牆F ping DMZ區的所有機器和路由器,再確保你能從web,DNS上能夠ping路由器,   如果你是後來添加的透明防火牆,你可能要等一段長的時間讓路由器知道現在你在用代理ARP,   最終路由器會清除自身的ARP cache的,如果可能,關掉路由器電源再打開以使更快地清除ARP cache.     d. 不同的Linux 內核響應新的ARP cache的時間不同,用Linux 2.4內核比較快。     e. 當然你也可以在透明防火牆F兩端用不同的IP地址。       五: 其它應用       下面是另一種情況的代理ARP應用。     在公司局域網上,有兩台數據庫服務器你需要單獨保護,你可以添加一個透明防火牆,同樣不需要改動任何現有的IP地址設置,類似上面的道理,如下圖。         ip:192.168.1.201     gw:192.168.1.1      database1 ____ ___   __________eth1 F2 eth0____________F1 公司防火牆    ____ ___ 192.168.1.1    database2 內部代理ARP防火牆     ip:192.168.1.202   gw:192.168.1.1         設置步驟如下:   1. 為F2兩端設置相同的IP為192.168.1.200,默認網關為192.168.1.1     2. 啟動後運行   ip route del 192.168.1.0/24 dev eth1     ip route add 192.168.1.201 dev eth1   ip route add 192.168.1.202 dev eth1     echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp   echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp     echo 1 > /proc/sys/net/ipv4/ip_forward     3. 保證從database服務器能ping通代理ARP防火牆另一端的服務器,然後開始在F2上設置具體的防火牆規則。




Copyright © Linux教程網 All Rights Reserved