歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux業界 >> shorewall 企業防火牆的完美實現

shorewall 企業防火牆的完美實現

日期:2017/2/27 11:13:26   编辑:Linux業界

提要:相信大家一定很想自己做一個企業級應用得防火牆,看到大家在論壇上常常問到累似得問題,現在我將我自己身邊得一個防火牆企業級應用實例共享出來,希望能幫到需要幫助得朋友。

第一篇:網絡接入情況

現在很多企業有的是用專線接入,有的是用ADSL 接入,但最終結果都是一樣,就是在互聯網上有一個公網IP(或者一個網段)得Route 到你得網關服務器上或者接入路由器上。 好了,知道了這點我就來說一下互聯網得接入這一部分,我以專線接入為例子:

如圖:


Route A
( Internet or ISP )
/(192.168.5.2/255.255.255.252)
/
//
/
/ (IP:192.168.5.1/255.255.255.252)
(Route B)
| (IP 211.111.111.1/255.255.255.0)
|
|_____ (局域網)


當你是專線接入得時候,一般都會有一個專線接入單,上面會有如下相關信息:

1:你得IP地址范圍
2:用戶端接入IP,以及局端IP

從上圖中我們可以看出:
1:ISP分配給你得是一個C類公網地址
2:用戶端得接入IP 是 192.168.5.1,局端IP 是 192.168.5.2

好了,下面是我要重點說得了,很多人以為在一個防火牆得外網接口上一定得綁定公網IP,其實這是一個錯誤得認識,其實只要有 Route 信息,你就可以上互聯網。怎麼以上面得圖為例子,在 ISP 商得路由器那頭,就是綁定 192.168.5.2 那個路由器一定有一個 Route 信息是這樣得:
ip route 211.111.111.0/24 via 192.168.5.1

通常得做法就是像如圖一樣在Route B 得以太網口處幫定一個公網IP 211.111.111.1 ,然後大家以這個為網關上網,通常會先接入防火牆,然後後面接局域網用戶,如圖:



Route A
( Internet or ISP )
/(192.168.5.2/255.255.255.252)
/
//
/
/ (IP:192.168.5.1/255.255.255.252)
(Route B)
| (IP 211.111.111.1/255.255.255.0)
|
|
| (211.111.111.2/24)
|----------|
| Firewall |
|----------|
(10.1.2.0/24)/ (10.1.1.0/24)
/
/
/
(局域網 A) ____/ \_____ (局域網 B)




這是一個很典型得企業應用,我想我說得沒錯吧,但是我覺得這裡面有幾個不好得地方:

1:就是公網IP不能很好得管理,在 Firewall 和 Route B 之間是通過公網IP 連接得,比如通過交換機連接,這樣如果有人在交換機上接一個計算機自己隨意綁定公網IP 就可以上網了。
2:這是一個C類得IP ,在Firewall 上需要綁定很多公網IP ,才能使用這些IP ,這樣管理有很多弊端。

好了,說了這麼多,下面引入正題,就是分享一下我得防火牆得實際解決方案。(續看第二篇)
第二篇:網絡結構得設計

對於一個C類得公網IP 我們可以重新設計一個網絡拓撲:

方案一:就是不對C類網段分段,還是用一個網段,如圖:

Route A
( Internet or ISP )
/(192.168.5.2/255.255.255.252)
/
//
/
/ (IP:192.168.5.1/255.255.255.252)
(Route B)
| (IP 192.168.1.1/255.255.255.252)
|
|
| (192.168.1.2/255.255.255.252)
|----------|
| Firewall |
|----------|
(10.1.1.1/24)/ (10.1.2.1/24)
/
/
/
(局域網 A) ____/ \_____ (局域網 B DMZ 服務器區)



注意: 在 Route B 上需要添加一個靜態路由, ip route 211.111.111.0 255.255.255.0 192.168.1.2

好了,這樣 Firewall 就可以完全控制和分配這 254 個公網IP 了


方案二:就是對C類網段分段,分成兩個公網IP網段,有兩個防火牆如圖:


Route A
( Internet or ISP )
/(192.168.5.2/255.255.255.252)
/
//
/
/ (IP:192.168.5.1/255.255.255.252)
|----------|
| Route B |
|----------|
|(IP 192.168.1.1/255.255.255.248)
|
/------------
(IP 192.168.1.2/255.255.255.248)/ (IP 192.168.1.3/255.255.255.248)
|-----------| |-----------|
| Firewall A| | Firewall B|
|-----------| |-----------|
/
(局域網 A) ____/ \_____ (局域網 B)



在 Route B 上添加兩條靜態路由:
ip route 211.111.111.0 255.255.255.128 192.168.1.2
ip route 211.111.111.128 255.255.255.128 192.168.1.3



這樣一來,我們就將一個 C類得公網IP 拆分成了兩個:
Firewall A 得IP 范圍是211.111.111.1-127
Firewall B 得IP 范圍是211.111.111.129-254

好了,網絡設計好了,下面我就以 方案一 我來講如何配置防火牆 (續看第三篇)

第三篇 防火牆得實現

我選用的平台是:

Redhat 8.0 + Shorewall 1.4.8 (其實就是基於iptables), 有三塊網卡,以方案一為例。

可能很多朋友都不太清楚 shorewall (http://www.shorewall.net),我先介紹一下 shorewall ,其實他是一個基於 iptables 得一個防火牆,他得優點在於配置方便,便於管理,用它很容易就能配出一個企業級得防火牆策略。

這裡我說一下我個人觀點,iptables 得命令過於復雜和麻煩,在管理方面和可讀性方面比較差,我個人認為我們作為一個網管得精力應該放在如何設計防火牆策略,而不要陷身於一個命令得寫法上。好了,廢話不說了。

安裝好 Redhat 8.0 ,並裝好三塊網卡後,
在這裡下載shorewall 的rpm 包(或者 tar 包都可以)


一:安裝
rpm -ivh shorewall-1.4.8-1.noarch.rpm

二:配置

shorewall 得所有配置文件都在 /etc/shorewall 下面,好了我將詳細得講解如何配置 shorewall

這裡我們假設 DMZ區域有如下一些的服務器:

mail server: 10.1.2.2/24 公網地址:211.111.111.2
pptp vpn server: 10.1.2.3/24 公網地址:211.111.111.3
dns server:  10.1.2.4/24 公網地址:211.111.111.4
http server: 10.1.2.5/24 公網地址:211.111.111.5

在 /etc/shorewall 可以看到有很多配置文件:

(我只講我們要用到的配置文件,其它得很少用到,大家可以自己去看幫助,很好理解得)

zones (定義防火牆得區域)
interfaces (定義接口)
masq (定義偽裝IP)
policy (定義默認策略)
rules (定義防火牆規則)


下面是各個配置文件的內容


cat /etc/shorewall/zones:
================================================
wan Internet Internet
dmz DMZ Dmz
lan Lan Lan
================================================

cat /etc/shorewall/interfaces
================================================
wan eth0 detect
lan eth1 detect
dmz eth2 detect
================================================

cat /etc/shorewall/masq
================================================
eth0 192.168.1.2/32 211.111.111.1 #----- Firwall To Internet
eth0 10.1.1.1/24 211.111.111.1 #----- Lan A To Internet
eth0 10.1.2.2/24 211.111.111.2 #----- mail server To Internet

eth0 10.1.2.3/24 211.111.111.3 #----- pptp server To Internet
eth0 10.1.2.4/24 211.111.111.4 #----- dns server To Internet
eth0 10.1.2.5/24 211.111.111.5 #----- http server To Internet
================================================

cat /etc/shorewall/policy
================================================
fw all ACCEPT # Firewall 可以任意訪問所有區域,包括互聯網
lan wan ACCEPT # Lan A 可以任意訪問互聯網
dmz wan ACCEPT # DMZ 服務器可以任意訪問互聯網
lan dmz ACCEPT # Lan A 可以任意訪問和管理DMZ服務器區

wan all DROP # 互聯網不能隨意訪問內部網絡和DMZ
all all REJECT
================================================

cat /etc/shorewall/rules
================================================

#---------------------- Internet To mail Server -------------------------------

DNAT wan dmz:10.1.2.2 tcp smtp - 211.111.111.2
DNAT wan dmz:10.1.2.2 tcp POP3 - 211.111.111.2

#---------------------- Internet To PPTP Server -------------------------------

DNAT wan dmz:10.1.2.3 tcp 1723 - 211.111.111.3
DNAT wan dmz:10.1.2.3 47 - - 211.111.111.3

#---------------------- Internet To DNS Server -------------------------------

DNAT wan dmz:10.1.2.4 tcp 53 - 211.111.111.4
DNAT wan dmz:10.1.2.4 udp 53 - 211.111.111.4

#---------------------- Internet To http Server -------------------------------

DNAT wan dmz:10.1.2.5 tcp http - 211.111.111.5

================================================


好了,防火牆都配置好了,現在防火牆的結果如下:

Lan A 的用戶 10.1.1.0/24 的用戶全部偽裝成 211.111.111.1 去訪問互聯網
mail server: 10.1.2.2/24 以公網地址:211.111.111.2 訪問互聯網
pptp vpn server: 10.1.2.3/24 以公網地址:211.111.111.3 訪問互聯網
dns server:  10.1.2.4/24 以公網地址:211.111.111.4 訪問互聯網
http server: 10.1.2.5/24 以公網地址:211.111.111.5 訪問互聯網

Firewall 可以任意訪問所有區域,包括互聯網
Lan A 可以任意訪問互聯網
DMZ 服務器可以任意訪問互聯網
Lan A 可以任意訪問和管理DMZ服務器區
互聯網不能隨意訪問內部網絡和DMZ


好了,到這所有配置文件都已經配好了,然後刪除 /etc/shorewall/startup_disable 文件,
用 shorewall restart 就可以啟動防火牆了。

總結:

相信到現在,大家對 shorewall 的配置文檔有了一定的了解了,大家可以看出shorewall 的配置是很通俗易懂的,很容易的就可以配置好,希望我寫的這個文章能給大家一點幫助。

唉!!!! 寫了將近兩個小時,好累啊!
作者:xjdong (Andy_xjdong )
LinuxSir.org




Copyright © Linux教程網 All Rights Reserved