對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2005/6/27 2:57:54
如何安裝一個簡單的防火牆?
原文作者:StoneLion
本份HowTo文件是針對使用者第一次要設定網際網路的通訊閘所寫。這是很簡單的HowTo並且沒有深入探討許多問題。在你覺得其他的HowTo太多餘的時候使用吧。這包含了設定DHCP, DNS與iptables。當你完成的時候,你客戶端的電腦只要插上線並且打開就好了。
我用RedHat9來作練習,不過這份簡介應該適用於多數的RedHat衍生版本,而且應該不太需要或者有些小修改爾爾。
在你開始前,請確認你了解以下關於你的網路設定:
1. 靜態IP
2. 來自你ISP的IP位址與DNS Server
‧安裝硬體與作業系統
安裝防火牆你必須要有兩張網卡在防火牆主機中。一張連到外部,而另一張連接內部網路。以下的硬體配備是最小需求:至少128MB記憶體與8GB硬碟,當然有任何新的會比較好。
安裝你要安裝的預設選項,並且確認你裝了所有的安裝元件,包含DNS,DHCP與iptables。你可以安裝更多的軟體,這取決於你要拿電腦來做什麼。
一旦作業系統安裝完成後,請按照ISP提供的指示確認網路連線是否正常。我假設你們的網路連線都在eth0,並且你可以正常上網。
你可以輸入以下指令確認你已經設定了正確的網路位址,並可以連到你的網際網路:
[code:1:5694754145]#ifconfig eth1 10.10.0.1 netmask 255.255.0.0 [/code:1:5694754145]
‧設定DHCP
接下來你必須去設定DHCP,這是一個按既定規則把IP位址分配給主機的服務。DHCP簡化了大量的網管工作,所以你不用一台台電腦逐一設定。
以root登入後修改/etc/dhcpd.conf如以下設定:
[code:1:5694754145]subnet 10.10.0.0 netmask 255.255.255.0 { # --- default gateway option routers 10.10.0.1; option subnet-mask 255.255.255.0; option broadcast-address 10.10.0.255; option domain-name-servers 10.10.0.1; range 10.10.0.2 10.10.0.254; default-lease-time 21600; max-lease-time 43200; } [/code:1:5694754145]
之後輸入以下指令啟動第二張網卡:
[code:1:5694754145]#/usr/sbin/dhcpd eth1 [/code:1:5694754145]
如果要確保每次DHCP都有起來的話,可以把上述這行加在/etc/rc.d/rc.local的結尾。
你可以把用戶端電腦連線來測試DHCP並且設定讓他自動取得IP位址,如果用戶端得到的是10.10.0.2到10.10.0.254的範圍那就表示他是正確運作的。
‧設定DNS
接下來我們將要設定DNS,這是個把數值位址例如64.233.161.99轉成較容易辨認的www.google.com。設定一台DNS Server一向被認為是件很複雜的工作,其實也是如此。但是對於我們的需求而言,你所要做的只是在/etc/named.conf中加上幾行爾爾。
在你的named.conf檔,在一個叫做options的開啟區段,插入:
[code:1:5694754145]forward first;
forwarders {
;
}; [/code:1:5694754145]
我的ISP的DNS位址是202.78.167.25,所以我的設定是長這個樣子:
[code:1:5694754145]forward first;
forwarders {
202.78.167.25;
}; [/code:1:5694754145]
啟動DNS是藉著叫做name的服務,如果要確認他每次都起來,可輸入以下指令:
[code:1:5694754145]#chkconfig --level 345 named on [/code:1:5694754145]
‧設定Iptables:
Iptables是你最後一個要設定的。對Linux而言Iptavles是個封包濾鏡。運作有如防火牆般,有效的自網路保護你的系統。Iptables是個很複雜的系統,但是設定簡單,我們會把心思放在把他當網路閘道器使用。所有的用戶將可順利連網,像即時通訊軟體、FTP或IRC程式也應該可以在不增加啥設定的情況下順利使用。
首先要先啟動IP forward。要達成此一目標,得先在/etc/sysctl.conf中加入以下這行:
[code:1:5694754145]net.ipv4.ip_forward = 1 [/code:1:5694754145]
以上會讓你在每次重開時自動啟動IP forward,如果你不想重開機,可輸入控制列:#echo 1 > /proc/sys/net/ipv4/ip_forward
接下來,啟動SNAT(Source Network Address Translation)這樣你的用戶端就可以使用網路了。SNAT要使用-j SNAT而- - to – source選項用以指定一個IP位址:
[code:1:5694754145]#iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE [/code:1:5694754145]
如果你使用DSL的話可把eth0換成ppp0。
要得到最小的安全性設定可以加入以下這行: [code:1:5694754145]
iptables –A INPUT –j DROP –m state - -state NEW, INVALID –i ippp0
iptables –A FORWARD –j DROP –m state - -state NEW, INVALID –i ippp0 [/code:1:5694754145]
最後,執行以下指令來儲存所有東西:
[code:1:5694754145]iptables-save > /etc/sysconfig/iptables [/code:1:5694754145]
一旦伺服器設定完成,你只要在用戶端使用DHCP設定好就可以從網路取得IP位址了。
既然你已經完成了安裝閘道器,我應該告訴你在這種設定上仍有許多短處。這防火牆只是丟掉無效的封包爾爾,而這多少會增加一些安全性,明顯的一個有經驗的駭客還是會進來。同時,要把你想封鎖的任何程式鎖住是不可能的。這優勢在於,應該會很容易裝起來。
我建議你到Netfilter documentation於安全性與iptable獲得更多指導,包含一個很簡單的網頁去了解tutorial。
原文作者:StoneLion
本份HowTo文件是針對使用者第一次要設定網際網路的通訊閘所寫。這是很簡單的HowTo並且沒有深入探討許多問題。在你覺得其他的HowTo太多餘的時候使用吧。這包含了設定DHCP, DNS與iptables。當你完成的時候,你客戶端的電腦只要插上線並且打開就好了。
我用RedHat9來作練習,不過這份簡介應該適用於多數的RedHat衍生版本,而且應該不太需要或者有些小修改爾爾。
在你開始前,請確認你了解以下關於你的網路設定:
1. 靜態IP
2. 來自你ISP的IP位址與DNS Server
‧安裝硬體與作業系統
安裝防火牆你必須要有兩張網卡在防火牆主機中。一張連到外部,而另一張連接內部網路。以下的硬體配備是最小需求:至少128MB記憶體與8GB硬碟,當然有任何新的會比較好。
安裝你要安裝的預設選項,並且確認你裝了所有的安裝元件,包含DNS,DHCP與iptables。你可以安裝更多的軟體,這取決於你要拿電腦來做什麼。
一旦作業系統安裝完成後,請按照ISP提供的指示確認網路連線是否正常。我假設你們的網路連線都在eth0,並且你可以正常上網。
你可以輸入以下指令確認你已經設定了正確的網路位址,並可以連到你的網際網路:
[code:1:5694754145]#ifconfig eth1 10.10.0.1 netmask 255.255.0.0 [/code:1:5694754145]
‧設定DHCP
接下來你必須去設定DHCP,這是一個按既定規則把IP位址分配給主機的服務。DHCP簡化了大量的網管工作,所以你不用一台台電腦逐一設定。
以root登入後修改/etc/dhcpd.conf如以下設定:
[code:1:5694754145]subnet 10.10.0.0 netmask 255.255.255.0 { # --- default gateway option routers 10.10.0.1; option subnet-mask 255.255.255.0; option broadcast-address 10.10.0.255; option domain-name-servers 10.10.0.1; range 10.10.0.2 10.10.0.254; default-lease-time 21600; max-lease-time 43200; } [/code:1:5694754145]
之後輸入以下指令啟動第二張網卡:
[code:1:5694754145]#/usr/sbin/dhcpd eth1 [/code:1:5694754145]
如果要確保每次DHCP都有起來的話,可以把上述這行加在/etc/rc.d/rc.local的結尾。
你可以把用戶端電腦連線來測試DHCP並且設定讓他自動取得IP位址,如果用戶端得到的是10.10.0.2到10.10.0.254的範圍那就表示他是正確運作的。
‧設定DNS
接下來我們將要設定DNS,這是個把數值位址例如64.233.161.99轉成較容易辨認的www.google.com。設定一台DNS Server一向被認為是件很複雜的工作,其實也是如此。但是對於我們的需求而言,你所要做的只是在/etc/named.conf中加上幾行爾爾。
在你的named.conf檔,在一個叫做options的開啟區段,插入:
[code:1:5694754145]forward first;
forwarders {
;
}; [/code:1:5694754145]
我的ISP的DNS位址是202.78.167.25,所以我的設定是長這個樣子:
[code:1:5694754145]forward first;
forwarders {
202.78.167.25;
}; [/code:1:5694754145]
啟動DNS是藉著叫做name的服務,如果要確認他每次都起來,可輸入以下指令:
[code:1:5694754145]#chkconfig --level 345 named on [/code:1:5694754145]
‧設定Iptables:
Iptables是你最後一個要設定的。對Linux而言Iptavles是個封包濾鏡。運作有如防火牆般,有效的自網路保護你的系統。Iptables是個很複雜的系統,但是設定簡單,我們會把心思放在把他當網路閘道器使用。所有的用戶將可順利連網,像即時通訊軟體、FTP或IRC程式也應該可以在不增加啥設定的情況下順利使用。
首先要先啟動IP forward。要達成此一目標,得先在/etc/sysctl.conf中加入以下這行:
[code:1:5694754145]net.ipv4.ip_forward = 1 [/code:1:5694754145]
以上會讓你在每次重開時自動啟動IP forward,如果你不想重開機,可輸入控制列:#echo 1 > /proc/sys/net/ipv4/ip_forward
接下來,啟動SNAT(Source Network Address Translation)這樣你的用戶端就可以使用網路了。SNAT要使用-j SNAT而- - to – source選項用以指定一個IP位址:
[code:1:5694754145]#iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE [/code:1:5694754145]
如果你使用DSL的話可把eth0換成ppp0。
要得到最小的安全性設定可以加入以下這行: [code:1:5694754145]
iptables –A INPUT –j DROP –m state - -state NEW, INVALID –i ippp0
iptables –A FORWARD –j DROP –m state - -state NEW, INVALID –i ippp0 [/code:1:5694754145]
最後,執行以下指令來儲存所有東西:
[code:1:5694754145]iptables-save > /etc/sysconfig/iptables [/code:1:5694754145]
一旦伺服器設定完成,你只要在用戶端使用DHCP設定好就可以從網路取得IP位址了。
既然你已經完成了安裝閘道器,我應該告訴你在這種設定上仍有許多短處。這防火牆只是丟掉無效的封包爾爾,而這多少會增加一些安全性,明顯的一個有經驗的駭客還是會進來。同時,要把你想封鎖的任何程式鎖住是不可能的。這優勢在於,應該會很容易裝起來。
我建議你到Netfilter documentation於安全性與iptable獲得更多指導,包含一個很簡單的網頁去了解tutorial。