動手干吧--跟我學構建一個Linux網路平台(一)

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

中小型企業是我國企業信息化的主體,他們本身的特點決定了它們在信息化過程中不可能投入大量的人力和物力.Linux作為一種開放的網路操作系統對中小企業來講,是一個很有吸引力的平台.Linux作為自由軟體的一個重要的成果,可以看作是互聯網發展的作品.可獲得源代碼的版權,保證了用戶有足夠的權利,不受傳統的商業許可證的限制.對專有商業軟體所帶來的安全方面的擔心,開放源代碼的Linux是不存在的.
Linux在我國的發展經歷了四五年時間,最初的幾年只是學校和科研單位使用.最近的兩年逐漸進入媒體、企業和普通大眾的視線,現在Linux已經成為鮮花和掌聲包圍的寵兒.儘管Linux在高端伺服器和嵌入式方面發展迅速,目前Linux的應用主要在網路應用上.成為中小企業、家庭的網路伺服器,提供Web服務、電子郵件(E-mail)服務、文件傳輸(FTP)服務、域名(DNS)服務.事實上,成功的安裝后的Linux就可以作為Web、E-mail、FTP、News伺服器.當然作為中小企業可能還需要一些更為複雜的功能,比如作為DNS伺服器、代理網關或者路由、虛擬主機、防火牆、撥入伺服器等,這些都需要特別的知識或者經驗.
本文從中小企業網路系統的規劃設計、實施和調試(主要是安全)角度,詳細地介紹了Linux的解決方案,內容涵蓋了企業Intranet/Internet建設的各個方面.希望對IT專業人士和廣大的Linux愛好者有所幫助.
網路拓撲、IP地址和域名分配
要想為一個中小企業規劃一個網路解決方案,只有了解他的需求,為之把脈、確診,才能找出一個切實可行的適合其本身特點的解決方案.那麼,一個企業的基本需求不外乎是大量的列印、收發信件、在網上尋找信息等等.在構造一個這樣的網路環境之前,我們首先要做的是建設好這個網路的基礎.就是要設計好網路拓撲、分配IP地址和分配域名.也就是設計網路的硬體連接方式,以及明確每台機器的名字和所使用的地址.


為了便於理解和討論,我們假設了一個物理的網路體系,如下圖所示:
如果你沒有ISP分配給你的有效的子網IP地址,你可以採用虛擬子網IP地址,可用於配置區域網的虛擬子網的IP地址段有三組:
一個A類網路地址 10.0.0.0 /255.0.0.0
十六個B類網路地址 172.16.0.0/255.255.0.0 - 172.31.0.0/255.255.0.0
二百五十六個C類網路地址 192.168.0.0/255.255.255.0 - 192.168.255.0/255.255.255.0
這些IP地址永遠不會被分配出去,它保留給虛擬網路使用,你不會在Internet上找到使用這些IP地址的主機,可以放心地使用.根據你網路的大小,選擇比較合適的虛擬子網IP地址段,對於速度有一定的好處.
上圖我們假設的區域網中沒有超過254台電腦,我們選擇的內部IP地址範圍是192.168.0.1-192.168.0.254,192.168.0.1作為整個子網的網關和防火牆,經由它將整個區域網連入Internet.192.168.0.2-5分別作為內部網的文件和列印伺服器、域名和郵件伺服器、內部Web伺服器、資料庫伺服器,為整個區域網提供服務.對於小的應用,也可以將這些服務在一台伺服器上實現,但推薦將網關同其他伺服器分離,這樣可以提高系統的安全性.
同時我們也可以給內部的網路一個域名以便於內部使用,這裡我們為了不和Internet上的域名衝突,選擇了一個特殊的域:mycompany.vvv.各台伺服器的完整域名如下:
網關:gw.mycompany.vvv
撥號接入伺服器:ppp.mycompany.vvv
域名/郵件伺服器:ns.mycompany.vvv
內部Web伺服器:www.mycompany.vvv
資料庫伺服器:database.mycompany.vvv
文件和列印共享伺服器:fp.mycompany.vvv
各個工作站的TCP/IP完整域名可以如tom.mycompany.vvv這樣地定義,當我們將域名伺服器按照後面所介紹的進行設置之後,就可以使用這些域名訪問內部網路上所有的機器了.對於Windows客戶的要求是將網關設置成192.168.0.1,並將首選域名伺服器設置成192.168.0.3.這裡我們沒有採用動態IP地址分配(DHCP),理由是我們可能在以後要進行基於IP的一些管理,如計費等.網路的規劃應該填寫一個如下的表格.


當然根據你的網路情況,還可以對這個表進行擴展,如增加各機器的軟、硬體配置信息.

伺服器操作系統的安裝
在這裡我們將要幫助大家使用Linux平台構建起一個實用的網路體系,您可以把本文作為一個網路應用的嚮導.本文的重點就是講述企業內部採用Linux作為系統平台時各種應用的安裝和配置過程.以前能夠在Windows系統實現的各種網路服務功能,現在都可以在Linux的環境中實施了.其中包括文件和列印共享(SAMBA),互聯網連接共享和代理(Proxy),Internet防火牆(Firewall),域名服務(DNS),電子郵件服務(E-mail),Web服務(HTTP),資料庫服務(DATABASE),文件傳輸服務(FTP)等,更進一步可以在Linux上實現諸如虛擬專用網(VPN),字元界面或Web界面的論壇服務(BBS),撥號網路接入服務(PPP)等等,更重要的是Linux的可擴展性很強,可以方便地在其上擴展眾多的網路應用.
本文介紹的是基於Linux平台的網路解決方案,伺服器操作系統當然選擇Linux.在眾多的Linux發布中,目前應用最多的是Redhat Linux.關於它的參考資料比較多,我們就以它作為我們的伺服器操作系統,這樣便於大家在遇到問題時更容易地找到答案,加上Redhat的包管理器RPM在使用上比較方便,安裝軟體相對來說就容易些了.對於Linux發布的選擇我們不做更多的討論,我個人認為只要對Linux比較熟悉之後,使用各種發布均可以完成你的任務.本文寫作時Redhat已經出了7.0,但我們還是以6.2作為討論的基礎,其原因是6.2相對來講要成熟一些,有些應用目前還不支持7.0,如oracle 8i.
Redhat 6.2光碟鏡像文件的下載地址為:「http://freesoft.online.sh.cn/」.
在這裡我們不對Redhat的安裝過程做詳細的說明,你可以在「http://freesoft.online.sh.cn/」找到關於安裝的中文詳細說明.在此,我們只對一些需要注意的問題提出一些建議.


機器的硬體配置
雖然Linux可以在386、4MB內存的機器上跑起來,但作為實際的應用,應該使用更好的機器以獲得較好的性能.在我們的區域網中,除了資料庫伺服器建議使用PII以上的CPU,128MB以上的內存外(若使用Oracle 8i資料庫,推薦256MB內存),其他的伺服器均可在Pentium 133、64MB內存以上的PC上良好運作.
作為文件和列印共享的伺服器請適當增加硬碟的容量,其他伺服器在一般應用的情況下1個9GB的硬碟可以滿足需要了.Linux系統的安裝最大需要大約1GB的空間,其他空間可供用戶安裝程序和存儲數據使用.在條件允許的情況下,請盡量選擇SCSI硬碟,其速度和穩定性較IDE硬碟好.
作為伺服器請選擇比較好的PCI網卡,這樣可以提高伺服器響應請求的能力.選擇PCI網卡的另一個好處是配置比較方便,無需提供諸如IO地址之類的參數.
在無需使用X Windows的伺服器上,安裝很好的顯卡是沒有必要的.對於伺服器,很多情況下可以進行遠程管理,使用基於字元界面的終端工具如Telnet、SSH登錄到伺服器就可以進行維護了.
伺服器硬碟分區
很多人習慣將硬碟只分一個「/」(根)分區,但作為伺服器,為了使系統在一些意外發生時(如:系統日誌文件或用戶文件超過了伺服器硬碟剩餘空間)仍然能夠運行,以便管理員可以檢查和處理這些問題,應該將一些分區獨立出來,以下是筆者的一些建議:交換分區的大小為16MB或伺服器內存的2倍中的大者,但不要超過1GB,超過1GB 的交換分區對於目前的Linux來說還用不上;「/boot」分區是系統啟動文件存放的地方,一般不會有多大的變化,推薦的分區大小是10MB;「/var」分區包括有系統的日誌文件等,這些文件會隨著系統的運行逐漸增大,對於一般區域網的系統推薦分區大小為250MB;「/tmp」為系統臨時文件存放區,比如你在壓縮或解壓縮的時候會在其中生成臨時文件,推薦的分區大小為250MB;「/」(根)分區包括系統的配置文件目錄、設備目錄、系統程序目錄等,變化也不大,推薦分區大小為250MB;剩下的2個分區「/home」和「/usr」分別包含了用戶數據以及系統和用戶的應用程序,可以根據需要將剩餘的硬碟空間分配給它們,如作為文件共享,並希望用戶的數據存儲在「/home」分區,就可以適當增加該分區的大小,如果要安裝很多應用程序,比如做測試的伺服器,應適當增加「/usr」分區的大小.具體的分區可以根據你的實際情況做一些調整,這裡提供一個最小的Linux可以正常運行的分區方案,供參考:


/ 40MB
/boot 5MB
/home 100MB
/tmp 30MB
/usr 232MB
/var 30MB
關於Redhat 6.2的安裝組件
Redhat 6.2在安裝時提示你選擇安裝方式:
Install CNOME Workstation
Install KDE Workstation
Install Server System
Install Custom System
Upgrade Existing Installation
請選擇Install Custom System在組件列表中可以選擇如下組件:
Printer Support(只在列印共享伺服器上需要)
X Window System(只在安裝Oracle 8i資料庫的伺服器上需要)
KDE(只在安裝Oracle 8i資料庫的伺服器上需要)
Mail/WWW/News Tools
DOS/Windows Connectivity
Networked Workstation
Dialup Workstation
SMB(Samba)Server
Anonymous FTP Server
Web Server
DNS Name Server
Network Management Workstation
Development
Kernel Development
Utilities
這樣的選擇大概需要564MB的硬碟空間.
一旦你按照前面的介紹安裝完Redhat 6.2之後,就可以開始設置伺服器的工作.下面我們將按照任務的形式結合我們假設的網路結構進行介紹,你可以根據自己的需要瀏覽不同的任務章節.
共享Internet連接
共享Internet連接是目前比較流行的低成本的上網方式,通過一台作為網關的伺服器將公司區域網上的電腦連上Internet,共用一個上網賬號,可以提高Internet連接的使用效率.在我們的例子中,192.168.0.1扮演的就是這樣一個角色.根據接入Internet的方式的不同,所進行的配置工作也不相同.我們將對3種常見的情況進行說明:
1. 通過DDN專線上網,這種情況就可能需要為該伺服器配置2塊網卡,一塊接入內部區域網,一塊通過路由器和你的ISP相連.
2. 使用ISDN上網,通過連接在串口的ISDN設備(TA)連接到你的ISP .
3. 使用普通電話線上網,使用內置或外置的撥號設備Modem連接到你的ISP.在我們的介紹中採用外置的數據機.


一、通過DDN專線上網
這裡涉及到在伺服器上安裝多塊網卡的問題,如果你沒有將網卡驅動程序編譯到核心當中(剛剛安裝完的Redhat 6.2就是這種情況),那麼系統將以模塊的形式動態載入所需的驅動程序,其配置文件為「/etc/conf.modules」.如果你的網卡使用的是PCI插槽,系統將會自動檢測到已經安裝的設備,而對於ISA類型的網卡,你還要提供它的IO地址信息.這裡假設我們使用的網卡都是PCI的,一塊為NE2000兼容卡,一塊為Intel EtherExpressPro/100網卡,「/etc/conf.modules」文件的內容有可能如下:
alias eth0 ne2k-pci
alias eth1 eepro100
如果是ISA的網卡,如1張3COM的3c509網卡和1張ne2000兼容ISA卡,/etc/conf.modules文件的內容有可能如下:
alias eth0 3c509
alias eth1 ne
options 3c509 io=0x300
options ne io=0x320
其中eth0和eth1分別是兩張網卡的別名,我們在以後進行網路配置時將會使用到它們.0x300和0x320這些就是ISA網卡的IO地址,通常,你可以使用網卡所附的驅動盤中的工具軟體進行修改和設置.
NE2000兼容PCI網卡連接到ISP,在前面網路拓撲圖中我們假定ISP分配給我們的IP地址為200.200.200.1,編輯/etc/sysconfig/network-scripts/ifcfg-eth0如下:
DEVICE=eth0
IPADDR=200.200.200.1
NETMASK=255.255.255.0
NETWORK=200.200.200.0
BROADCAST=200.200.200.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
請注意將IPADDR、NETMASK、NETWORK、BROADCAST根據ISP分配給你的值進行替換,其中NETWORK和BROADCAST可以根據IPADDR、NETMASK計算出來.
Intel EtherExpressPro/100網卡連接到內部區域網,分配的IP地址為192.168.0.1,編輯/etc/sysconfig/x:.
除了IP地址和子網掩碼外ISP還會給你提供ISP的預設網關的地址,這裡假設我們的ISP網關為200.200.200.254,你應該在「/etc/sysconfig/network」中註明:


DEVICE=eth1
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
NETWORKING=yes
HOSTNAME="gw.mycompany.vvv"
GATEWAY="200.200.200.254"
GATEWAYDEV="eth0"
FORWARD_IPV4="yes"
下一步,需要將該伺服器配置成一個透明網關,設置透明網關的好處是網路中的其他電腦只需要將網關的IP地址設置成該伺服器的地址即可訪問Internet.為了在每次伺服器啟動時,這些設置可以自動生效,需要將設置命令寫入到「/etc/rc.d/rc.local」文件當中,需要加入的內容如下:
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/depmod -a
/sbin/modprobe bsd_comp
/sbin/modprobe ip_masq_ftp
/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0
重新啟動電腦使配置生效.此時,你可以在區域網內部的一台電腦上將網關設置成192.168.0.1之後ping一下外部的任意一個IP地址,如:ping 204.71.200.74,反饋迴響應時間就表示網路配置正確了.
二、通過ISDN上網
在後面的說明中,我們假定使用外置的ISDN設備上網,TA通過串口1(COM1)同伺服器相連,同時我們也想讓ISDN在空閑的時候可以斷掉連接,而在有人訪問Internet時可以自動的建立連接,無需人工干預.要做到這一點需要一個額外的軟體diald,它的下載地址為:
ftp://ftp.interest.de/pub/redhat/contrib/libc6/i386/diald-0.16.5a-1.i386.rpm
ftp://ftp.interest.de/pub/redhat/contrib/libc6/i386/diald-config-0.16.5a-1.i386.rpm
之後你可以按如下步驟完成配置工作:
1.修改「/etc/rc.d/rc.local」以便每次系統啟動之時執行透明網關的設置,需添加的內容如下:
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/depmod -a
/sbin/modprobe ppp
/sbin/modprobe bsd_comp
/sbin/modprobe ip_masq_ftp
/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0


2.安裝diald-0.16-5 rpm 包
# rpm -ivh diald-0.16-5a-1.i386.rpm
# rpm -ivh diald-config-0.16-5a-1.i386.rpm
3.拷貝「/etc/diald/diald.conf到/etc/diald.conf」,編輯「/etc/diald.conf」如下:
accept any 420 any
device /dev/ttyS0 # 串口1
speed 115200
lock
mode ppp
dynamic
local 192.168.0.1 #不需改變這兩行,即使你的網路不用192.168.0.X網段
remote 192.168.0.2
up-delay 5
defaultroute
modem
crtscts
connect /etc/diald/connect
redial-timeout 10
fifo /etc/diald/diald.ctl
4.修改/etc/diald/connect文件,這裡假設我們的ISDN撥號號碼為169,用戶名為169,密碼為169,需要更改的參數如下:
PHONE_NUMBER="169"
USER_NAME="169"
PASSWORD="169"
使用dialdc up進行測試,如果連接成功,就可以使用ntsysv命令將diald設置成在系統啟動時自動運行.當區域網內的其他電腦發出連往外部IP的請求時,diald就會自動建立連接,ISDN可以很快建立連接,用戶幾乎察覺不到什麼延遲.
三、使用普通電話線上網
使用普通電話線上網的配置同ISDN的設置幾乎一樣,我們使用的設備也是外置的Modem,連接在串口1上,不同的是使用Modem連接可能需要十幾秒的時間,這可能會造成區域網用戶的連接失敗.Redhat有一個系統工具Linuxconf,使用它配置和管理撥號連接也比較方便,它可以通過Web訪問,這就使遠程管理撥號連接變得很容易了.下面做一個簡單的介紹:
1.為了可以通過Web訪問Linuxconf,我們打開這個功能,鍵入linuxconf,如果是第一運行會需要你確認一下.Linuxconf的各項管理功能按樹形結構組織,我們需要作如下的選擇:Config→Networking→Misc→Linuxconf network access,在出現的對話框中填寫可通過Web訪問的主機:
[X] Enable network access
Log access [X] in /var/log/htmlaccess.log


network or host 192.168.0.11
netmask(opt) 255.255.255.255
這裡我們只允許192.168.0.11的工作站可以通過Web訪問網關上的Linuxconf,你還可以增加其他可以訪問的主機的IP地址.退出Linuxconf時請選擇Activate the changes,以便設置生效.
2.在192.168.0.11上使用瀏覽器訪問網關(http://192.168.0.1:98)可以看到Linuxconf的Web界面,點擊start,在彈出的認證對話框中輸入root用戶和密碼.
3.選擇Networking→PPP/SLIP/PLIP,單擊Add,選PPP,點Accept,根據你的ISP填寫登錄信息,例如:
Phone number 169
Modem port /dev/ttyS0/dev/ttyS1/dev/ttyS2
[ ]Use PAP authentication
Login name 169
Password 169
單擊Accept.至此,你的撥號網路就設置完成了.
4.回到Linuxconf首頁,選擇Control panel→
Control PPP/SLIP/PLIP links→PPP0,此時點擊yes,
將開始撥號,並連接到Internet,使整個區域網可以開始
訪問Internet.
5.關閉連接只要回到PPP/SLIP/PLIP connection
Control頁,選擇ppp0,在提示是否中斷連接時選擇yes即可.





[火星人 ] 動手干吧--跟我學構建一個Linux網路平台(一)已經有380次圍觀

http://coctec.com/docs/linux/show-post-57796.html