前言∶
最近台灣網路環境的蓬勃發展,許多寬頻上網的方案更是讓大家爭相申請,其中 ADSL 也是許多網路族的最愛,以 Hinet 所推出的 ADSL 為例,有分固定制和計時制兩種,其中最大的差別在於固定制有固定的 IP 位址,所以價格較貴,而計時制則采用動態分配 IP 的方式,價格較為便宜。一般來說,如果小型的公司機構或是個人 SOHO 族會申請固定制,以提供一些伺服器的功能,如 Web、FTP……等等,而一般的民眾則會選擇申請計時制的。
一般說來,現在擁有超過兩部電腦的家庭越來越多了,或者是學生們一起租外面的公寓,每個人有一部電腦也不是甚麼稀奇的事,這時候大家就會希望以最少的花費讓所有的電腦都能上網,但以 Hinet 的 ADSL 計時制為例,最多也只能同時提供兩部電腦同時撥接,如何能利用其中一部電腦來提供網路分享的功能,也變成網路上非常的熱門的話題,而 Linux 優異的網路特性,當然能夠為大家提供理想的網路共享環境。
由於計時制的 ADSL 有較多的人申請,所以這篇文章會教大家如何配合 Linux 來讓 ADSL 計時制達到最大的效益。
安裝前准備∶
硬體∶
一般說來,要以 Linux 拿來做路由的 PC 等級並不需要很高,486 或 Pentium 100 等級的電腦就綽綽有余了,重點是在網路卡,因為他們負責所有的網路交通,所以挑選兩張較好的網卡是網路順暢的關鍵。
軟體∶
Linux 的作業系統∶
在這篇文章中將以 OpenLinux 的 eServer 2.3 及 eDesktop 2.4 為例,所使用的 packet filter 工具為 ipchains 套件(內建),以避免因 Linux Distributions 的版本不同而產生的問題。
pppd 撥接軟體∶
要使用 ADSL 計時制的撥接軟體,首先要先確定你的系統中有安裝 pppd 才能安裝,而且版本必需為 2.3.10 或之後的版本,在 OpenLinux 的 eServer 2.3 及 eDesktop 2.4 中皆有。
rp-pppoe ADSL 撥接軟體∶
ADSL 計時制是采 PPPoE (Point-to-Point Over Ethernet) 的通訊協定,所以我們必須要找一套在 Linux 上執行的撥接軟體,本文所采用的軟體為 rp-pppoe,目前最新的版本為 3.2 版,你可以至 http://www.roaringpenguin.com/pppoe/ 查詢相關的資料及下載檔案,本文所下載的檔案范例為 tarBall 的原始檔 rp-pppoe-3.2.tar.gz。
在進行安裝之前,請先確定你的兩張網卡皆驅動正常,且先確定哪張網卡對內,哪張網卡對外,本文將以 eth0 對內,且 ip 設為私有 ip (192.168.1.254),eth1 對外,將 ip 設為 dhcp 的方式取得,但預設開機時不啟動,你可以使用 ifconfig 的指令檢查如下就表示正確了。
[root@linux /root]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:00:E8:11:E2:F1
inet addr:192.168.1.254 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0x300
eth1 Link encap:Ethernet HWaddr 00:00:E8:11:E2:F2
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:10 Base address:0x320
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
開始安裝∶
將你於 http://www.roaringpenguin.com/pppoe/ 所取得的 rp-pppoe-3.2.tar.gz 以 tar 指令解開。
[root@linux /root]# tar zxvf rp-pppoe-3.2.tar.gz
解開後會產生一個名為 rp-pppoe-3.2 的目錄,你可以先閱讀裡面的 README 檔,裡面有簡介一些使用及安裝方式,本文介紹自行編譯的方式,所以先將工作目錄切換至 rp-pppoe-3.2/src/ 下。
[root@linux /root]# cd rp-pppoe-3.2/src/
接著依序輸入下列指令,就可以完成安裝。
[root@linux src]# ./configure
[root@linux src]# make
[root@linux src]# make install
設定∶
安裝完成之後,接著我們來設定撥接 ADSL 的相關資料,輸入下面的指令開始設定∶
[root@linux /root]# adsl-setup
Welcome to the Roaring Penguin ADSL client setup. First, I will run
some checks on your system to make sure the PPPoE client is installed
properly...
Looks good! Now, please enter some information:
USER NAME
>>> Enter your PPPoE user name (default
[email protected]):
[email protected]
在這裡輸入 ISP 給你的帳號,如
[email protected]
INTERFACE
>>> Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where 'n' is a number.
(default eth1):eth1
輸入要用來撥接 ADSL 的界面,如本文例為 eth1
Do you want the link to come up on demand, or stay up continuously?
If you want it to come up on demand, enter the idle time in seconds
after which the link should be dropped. If you want the link to
stay up permanently, enter 'no' (two letters, lower-case.)
NOTE: Demand-activated links do not interact well with dynamic IP
addresses. You may have some problems with demand-activated links.
>>> Enter the demand value (default no):no
這裡是設定 ADSL 是否自動斷線,如果你希望 ADSL 一直保持連線狀態則輸入 no,如果你希望一段時間沒有使用則自動斷線的話,則輸入你希望的秒數
DNS
Please enter the IP address of your ISP's primary DNS server.
If your ISP claims that 'the server will provide DNS addresses',
enter 'server' (all lower-case) here.
If you just press enter, I will assume you know what you are
doing and not modify your DNS setup.
>>> Enter the DNS information here:168.95.1.1
輸入你的 DNS Server 的 ip,如 Hinet 所提供的 168.95.1.1
Please enter the IP address of your ISP's secondary DNS server.
If you just press enter, I will assume there is only one DNS server.
>>> Enter the secondary DNS server address here:168.95.192.1
輸入你次要的 DNS Server 的 ip,如 Hinet 所提供的 168.95.192.1
PASSWord
>>> Please enter your PPPoE password:********
>>> Please re-enter your PPPoE password:********
輸入 ISP 提供給你撥接 ADSL 的密碼,並多輸入一次以確認密碼正確
FIREWALLING
Please choose the firewall rules to use. Note that these rules are
very basic. You are strongly encouraged to use a more sophisticated
firewall setup; however, these will provide basic security. If you
are running any servers on your machine, you must choose 'NONE' and
set up firewalling yourself. Otherwise, the firewall rules will deny
Access to all standard servers like Web, e-mail, ftp, etc. If you
are using SSH, the rules will block outgoing SSH connections which
allocate a privileged source port.
The firewall choices are:
0 - NONE: This script will not set any firewall rules. You are responsible
for ensuring the security of your machine. You are STRONGLY
recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
for a LAN
>>> Choose a type of firewall (0-2):0
這個選項是設定 firewall,共有 0、1、2 三種設定,0 是沒有設定任何有關 firewall 的選項,只有提供撥接至 Internet 的功能,1 是為你提供一些基本的 firewall 功能,較適合當你的 Linux 機器是獨立的 Server 時選擇,2 是由程式幫你設定 firewall的功能,把 Linux 設成 Gateway 的角色,讓內部機器可以連外;這裡我們選擇 0,沒有 firewall 的設定來示范,這樣我們可以使用 ipchains 來設定自己的