策略需求:
定義一個有效的防火墻配置需求,該配置針對的是幾個由客戶端機器和兩個服務器構成的網絡。服務器(一個web服務器和一個DNS服務器)必須可以從外部網絡訪問。內部網絡的系統(tǒng)可通過防火墻向外部服務器發(fā)起下列類型的通信:
- 域名系統(tǒng)(DNS)查詢
- 文件傳輸協(xié)議(FTP)傳輸
- 網絡時間協(xié)議(NTP)查詢
- 安全Shell(SSH)會話
- 簡單郵件傳輸協(xié)議(SMTP)會話
- 通過HTTP/HTTPS/進行Web會話
- whois查詢
除了允許訪問上面列出的服務以外,所有其他通信都應被阻止。從內部網絡或直接從防火墻上發(fā)起的會話都應該被iptables進行狀態(tài)跟蹤(那些不符合有效狀態(tài)定義的數(shù)據(jù)包應遲早被記錄并丟棄),防火墻還應提供NAT服務。
此外,防火墻還應對從內部網絡轉發(fā)給任一外部IP地址的偽造數(shù)據(jù)庫進行控制。
- 防火墻本身必須允許內部網絡的用戶通過SSH進行訪問,但不允許用戶從任何其他地方訪問,除非防火墻上運行一個用于驗證的fwknop(端口碰撞)。SSH應該是防火墻上運行的唯一一個服務器進程。
- 防火墻應接受來自內部和外部網絡的ICMP回應請求,但來自任何源IP地址的非回應請求的其它ICMP數(shù)據(jù)包應被丟棄。
- 最后,防火墻應配置一個默認的日志記錄和丟棄規(guī)則,以使任何離群的數(shù)據(jù)包,端口掃描或其他沒有明確允許的連接企圖被記錄并丟棄。
為了簡化建立iptables策略的任務,假設只有一個內部網絡,并且它使用的是一個不可路由的網絡地址192.168.10.0,具有C類子網掩碼255.255.255.0(或使用CIDR表示法/24)。
防火墻上的內部網絡接口(見下圖)是eth1,IP地址為192.168.10.1,所有內部主機都以這個地址為它們的默認網關。這使得內部系統(tǒng)發(fā)往192.168.10.0/24子網以外系統(tǒng)的所有數(shù)據(jù)包都必須路由經過防火墻。防火墻上的外部接口是eth0,為保持網絡的不可知性,指定這個外部接口的IP地址為71.157.X.X。
下圖中列出了兩個惡意系統(tǒng),一個在內部網絡中(192.168.10.200,主機名int_scanner),另一個在外部網絡中(144.202.X.X,主機名ext_scanner)。
OS: CentOS 5.4 Kernel: 2.6.18-164.el5
Iptables : 1.3.5 - 1.3.7
|