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

網絡最高安全指南

作者:北京懷柔3380信箱92號 厲海燕 一般被保護的內部網絡可分成兩部分,一部分是內部通訊區,只允許內部用戶訪問,絕對禁止外部用戶訪問,另一部分是停火區DMZ,對外提供有條件的服務。前者是系統的核心子網,後者易受到外部的攻擊,是一個比較危險的子網環境。一方面要求嚴格保護內部子網,另一方面又要滿足DMZ對外提供服務的需要,因此,必須采用分別保護的策略,對上述兩個區域進行保護。兩個區域要盡量獨立,即使DMZ受到外部攻擊,內部子網仍處於防火牆的保護之下。 本文介紹利用Linux的iptables工具來建立一個具有DMZ的防火牆。 一、軟硬件要求 充當防火牆的機器是一台支持iptables的Linux系統,裝有三個網卡。 二、具體配置 步驟1:配置內核 netfilter要求Linux內核版本不低於2.3.5,在編譯新內核時,要求選擇和netfilter相關的項目,這些項目通常都是位於“Networking options”子項下。 步驟2:環境構造 這裡給出一個用於測試的例子,實際應用可根據具體的情況進行設置。 對外提供服務的內部主機構成一個停火區(假設分配的網段為192.168.1.0/24),防火牆的兩個網卡eth1、eth2分別通過hub1、hub2與停火區、內部通訊區相連,另一個網卡eth0通過直連線(或hub)與路由器的網卡eth1相連,路由器的另一網卡eth0通過一個hub與外部通訊區相連。如圖所示。 路由器增加以下設置: route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.9.200.2 arp -i eth1 -Ds 192.168.1.1 eth1 pub 防火牆的設置為: route add default gw 192.168.1.1 route add -host 192.168.1.1 gw 192.168.1.2 route add -net 192.169.1.0 netmask 255.255.255.0 gw 192.168.1.3 eth1 停火區主機的網關設為防火牆的網卡eth1地址192.168.1.3。 外部主機的網關設為路由器的外網卡eth0地址10.0.0.1。 內部主機的網關設為路由器的內網卡eth2地址168.1.1.1。 步驟3:建立規則 在防火牆上創建如下腳本並運行之。 #!/bin/sh ######## default firewall rules-deny all ######## iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP ############################################### # Rules between EXTERNAL LAN and INTERNAL LAN # ############################################### ######## masquerade INTERNAL Address to xx.xx.xx.xx when going out ######## iptables -t nat -A POSTROUTING -s 168.1.1.0/24 -d 10.0.0.0/24 -o eth0 -j SNAT --to xx.xx.xx.xx ######## deny all from EXTERNAL LAN to INTERNAL LAN directly ######## iptables -t nat -A PREROUTING -s 10.0.0.0/24 -d 168.1.1.0/24 -i eth0 -j DROP ###################################### # Rules between DMZ and INTERNAL LAN # ###################################### ######## allow INTERNAL LAN to DMZ ######## iptables -A FORWARD -p icmp -s 168.1.1.0/24 -d 192.168.1.0/24 -m limit --limit 1/s --limit-burst 10 -j ACCEPT iptables -A FORWARD -s 168.1.1.0/24 -d 192.168.1.0/24 -i eth2 -j ACCEPT ######## forbid DMZ to INTERNAL LAN except following instance ######## iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 168.1.1.0/24 ! --syn -i eth1 -j ACCEPT


iptables -A FORWARD -p tcp -s 192.168.1.0/24 --sport 20 -d 168.1.1.0/24 -i eth1 -j ACCEPT iptables -A FORWARD -p icmp --icmp-type 0 -s 192.168.1.0/24 -d 168.1.1.0/24 -m limit --limit 1/s --limit-burst 10 -j ACCEPT iptables -A FORWARD -p udp -s 192.168.1.0/24 -d 168.1.1.0/24 --sport 53 -j ACCEPT ###################################### # Rules between EXTERNAL LAN and DMZ # ###################################### ### allow EXTERNAL LAN to DMZ but deny all from EXTERNAL LAN to DMZ directly ### iptables -t nat -A PREROUTING -s 10.0.0.0/24 -d 192.168.1.0/24 -i eth0 -j DROP ### REAL_XX is real address of XX server in DMZ ### ### MASQ_XX is the masquaded address of REAL_XX supplied to EXTERNAL LAN ### ######## allow DNS service ######## iptables -t nat -A PREROUTING -p udp -d MASQ_DNS -s 10.0.0.0/24 --dport 53 -i eth0 -j DNAT --to REAL_DNS iptables -A FORWARD -p udp -s 10.0.0.0/24 -d REAL_DNS -i eth0 --dport 53 -j ACCEPT iptables -A FORWARD -p udp -d 10.0.0.0/24 -s REAL_DNS -i eth1--sport 53 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -d MASQ_DNS -s 10.0.0.0/24 --dport 53 -i eth0 -j DNAT --to REAL_DNS iptables -A FORWARD -p tcp -s 10.0.0.0/24 -d REAL_DNS -i eth0 --dport 53 -j ACCEPT iptables -A FORWARD -p tcp -d 10.0.0.0/24 -s REAL_DNS -i eth1 --sport 53 ! --syn -j ACCEPT ######## allow HTTP service ######## iptables -t nat -A PREROUTING -p tcp --dport 80 -d MASQ_HTTP -s 10.0.0.0/24 -i eth0 -j DNAT --to REAL_HTTP iptables -A FORWARD -p tcp -s 10.0.0.0/24 -d REAL_HTTP -i eth0 --dport 80 -j ACCEPT iptables -A FORWARD -p tcp -d 10.0.0.0/24 -s REAL_HTTP -i eth1 --sport 80 ! --syn -j ACCEPT ######## allow FTP service ######## iptables -t nat -A PREROUTING -p tcp --dport 21 -d MASQ_FTP -s 10.0.0.0/24 -i eth0 -j DNAT --to REAL_FTP iptables -A FORWARD -p tcp -s 10.0.0.0/24 -d REAL_FTP -i eth0 --dport 21 -j ACCEPT iptables -A FORWARD -p tcp -s REAL_FTP -d 10.0.0.0/24 -i eth1--sport 20 -j ACCEPT iptables -A FORWARD -p tcp -d 10.0.0.0/24 -s REAL_FTP -i eth1--sport 21 ! --syn -j ACCEPT ...... ### You can add other services in DMZ here sUCh as TELNET、SMTP、 POP3 & IMAP etc. ### ...... ######## deny DMZ to EXTERNAL LAN except to external smtp server ######## iptables -t nat -A POSTROUTING -p tcp --dport 25 -d 10.0.0.0/24 -s REAL_SMTP -o eth0 -j SNAT --to MASQ_SMTP iptables -A FORWARD -p tcp -s REAL_SMTP -d 10.0.0.0/24 -i eth1 --dport 25 -j ACCEPT iptables -A FORWARD -p tcp -d REAL_SMTP -s 10.0.0.0/24 -i eth0--sport 25 ! --syn -j ACCEPT

通過以上步驟,具有DMZ的防火牆達到了以下目標: 1.內部通訊區可以無限制的訪問外部通訊區以及DMZ,但訪問外部通信區時防火牆進行了源地址轉換。 2.外部通訊區可以通過對外公開的地址訪問DMZ的服務器,由防火牆完成對外地址到服務器實際地址的轉換。 3.外部通訊區不能訪問內部通訊區以及防火牆。 4.DMZ不可以訪問內部通訊區。 5.除外部通訊區郵件服務器外,DMZ不能訪問外部通訊區。



3.外部通訊區不能訪問內部通訊區以及防火牆。 4.DMZ不可以訪問內部通訊區。 5.除外部通訊區郵件服務器外,DMZ不能訪問外部通訊區。



Copyright © Linux教程網 All Rights Reserved