By James T. Dennis, [email protected]
Starshine Technical Services, http://www.starshine.org/
翻譯:gaia
From Nilesh M.
Hi,
我有幾個問題.我想把Linux設置成我的家用電腦的服務器,讓它們共享一條 Internet連接,還想把它用做Internet服務器.
O.K.那是三種不同的角色:
網絡服務器 (要提供哪些服務)
Internet網關 (代理(proxy) 和/或 偽裝(masquerading))
Internet主機/服務器 (要提供哪些服務)
Linux可以同時扮演這三種角色---盡管就安全和風險評估而言"把所有的蛋放進一個籃子"未必是個好主意.
按常規,你還要考慮機器性能---不過擁有200+Pentium處理器,32M到256M RAM,4Gb到12Gb磁盤空間的典型的現代PC比起5到10年前的Unix已經是相當強大了 .
你知道不知道我能否用一個用於modem的10mbs以太網和一個用於家庭網絡的100mbs以太網來設置Linux?應該從哪著手,怎麼去做?
我猜想你指的是設一個10Mbps以太網用於cable modem,ISDN路由器(router)(如 Trancell/WebRamp,或Ascend Pipeline系列),或者DSL路由器.這些設備的功能是作 為你購買的cable,ISDN或xDSL服務的路由器,一般提供10Mbps接口.
你完全可以在Linux系統中安裝兩個或更多以太網卡.若你把任何標准的現代 100Mbps網卡用於10Mbps的局域網,它們會自動處理10Mbps的速率.所以你只管為你的系統安裝兩塊這樣的網卡,一塊接路由器,另一塊接高速HUB.
你通常要把以下這行加進/etc/lilo.conf文件裡好讓內核識別第二塊網卡:
append="ether=0,0,eth1"
... 0,0,表示自動檢測這個設備的 IRQ 及I/O基地址.否則你就需要像下面這樣指定參數:
append="ether=10,0x300,eth0 ether=11,0x280,eth1"
這一行必須出現在/etc/lilo.conf的每一個Linux"段"中(即每一組引導Linux的選項,分別指向不同的Linux kernel,相應的root文件系統及其它設置).
當然了,你必須運行 /sbin/lilo命令以讀入 /etc/lilo.conf 文件中的任何改變,並把它們"編譯"進新的引導區和映 像("maps").
如果你的系統安裝了普通的modem---照樣可以用.你可以用PPP(使用pppd程序)通過普通電話線建立Internet連接.Linux還提供了對內置ISDN, T1 "FRADs" (frame relay access devices)和 CSU/DSU (即Codecs --- coder decoder units)的支持.
我還聽說用於控制一些類型的內置ISDN卡的ipppd.我想多數其它設備都有相應的驅 動程序使它們"看似"Linux的 modem或以太網設備.
我只想買兩塊100mbs網卡互相連接...所以我想我並不需要集線器,對嗎?我只想讓兩台機器連在這個簡單網絡上.
你要麼需要一個HUB,要麼需要一個"十字交叉"的ethernet patch cord.普通的5個接頭(? cat 5)的ethernet patch cord沒法正確直接連接兩塊網卡.
感謝你的每一點幫助,特別是像一些站點鏈接之類的信息,能讓我找到教我怎樣一步步設置的資料.
我不知道這樣的鏈接.正如你可能已經知道的,Linux有一百多個HOWTO文件,其中許多和設置各種服務有關.
現在我們回到前面列出的幾種不同的角色:
網絡服務器(要提供哪些服務) Internet網關(代理(proxy)和/或IP偽裝(masquerading)) Internet主機/服務器(要提供哪些服務)
從第一項開始說吧.你有一個平時不連在Internet上的小網絡(即沒有永久的Internet專線連接).所以你會希望你的系統使用"私人網絡地址".這就是指保留的IP地址 ---它們不會被分配給任何Internet上的主機(所以,使用它們不會導致你的系統在選擇路由時產生歧義).
有三類這樣的地址:
192.168.*.* --- 255個C類網絡 172.16.*.* 到 172.31.*.* --- 15個B類網絡 10.*.*.* --- 1個A類網絡
... 我為我家裡的網絡分配了 192.168.42.*
... 這些地址還可以被防火牆和Internet網關(gateways)後面的系統使用.
就Linux而言,我們可以把一個Linux系統設置成本地服務器和Internet網關.我們的網關的實現可以通過"代理"(使用SOCKS或其它應用層工具在我們的私人網絡和 Internet之間轉發數據),或者通過IP偽裝(在數據包被轉發時,使用內建於內核的網絡地址翻譯代碼重寫數據包---一種網絡層透明的代理方式).
不過,我們說得太遠了點.
首先我們要設置Linux LAN服務器.所以,安裝好Linux並設置好其網卡的IP地址,如 192.168.5.1.內核路由表裡應該有指向我們的內部網絡的路由,就像下面這樣:
route add -net 192.168.5.0 eth0
... 這就告訴內核所有地址是 192.168.5.* 的主機位於與eth0相連的網段.
現在,想想你希望為你的其它機器提供什麼服務.
Linux在缺省安裝時就為任何能訪問你的系統的機器提供了一些常見服務 (telnet, NFS, FTP, rsh, rlogin, sendmail/SMTP, web,samba/SMB, POP和 IMAP等等).多數這些服務要通過名叫inetd的"internet服務分派程序 "才能得到.這些服務的清單在 /etc/inetd.conf裡.一些其它服務,如 mail傳送及轉發(sendmail),和web (Apache httpd)以"standalone"模式啟動 ---即由 /etc/rc.d/*/S* 腳本啟動而不需要inetd.NFS是一個特殊服務,需要幾個不同的守護進程參與完成---特別是 portmapper和 mountd.因為NFS是基於"RPC"(遠端過程調用)的服務.
既然所有能送數據包給你的系統都可以請求你的系統提供的服務,既然多數Unix和 Linux系統提供全套服務,這就出現了一個嚴重的安全問題.任何服務的守護進程的任何bug會導致整個系統的不可靠,從而可能被世界任何一個角落的人利用.這就導致了TCP包裝程序(TCP Wrappers)的產生.(所有主要Linux發布都缺省安裝了它---但缺省設置成提供全部權限).也就是為什麼我們有"防火牆"和"包過濾".
你容易以為你很隱蔽,誰也不會闖進來.然而,如今有很多cracker和script kiddies,他們花費大量時間在"端口掃描"("portscanning")上---尋找脆弱的系統 ---把他們叫過來,利用他們做進一步的portscanning sniffing, 破解口令 ,spamming,破解軟件,及其它活動.
我最近安裝了一條DSL線路.所以我現在可以一直連在Internet上.我裝上它還不足一個月,還沒有指向我的IP地址的DNS記錄.但我已經做了至少三次掃描尋找一些常見的 IMAP的bug,還有一次尋找一個mountd 的bug.所以,我敢說你並沒有隱避得能高枕無憂.
當你通過ISDN或POTS(plain old telephone service)線路使用撥號PPP時,你仍有些風險.當你做這些時,風險仍在你這邊.然而,設置你的系統以避免這類問題還是 值得的.
所以,你有必要如下編輯兩個文件:
/etc/hosts.allow
ALL:LOCAL
/etc/hosts.deny
ALL:ALL
... 這絕對是你最低限度要考慮的.這樣設置意味著tcpd程序(TCP Wrappers)允許 "local"系統訪問(相對於你的域名,其主機名中沒有"點"的那些主機),並且拒絕其它所有主機對一切服務的訪問.
為了讓這項措施正常工作,你要確認所有你的本地主機在/etc/hosts文件裡正確地有自己的一項,且/或你已經正確設置了你自己的DNS服務的 forward 和reverse區.你還有必要確認你的/etc/host.conf (libc5)文 件和/或 /etc/nsswitch.conf (glibc2,即libc6)設置成首先搜索 /etc/hosts文件.
我的host.conf文件是這樣的:
# /etc/host.conf
order hosts bind
multi on
我的/etc/nsswitch.conf是這樣:
passwd: db files nis
shadow: db files nis
group: db files nis
hosts: files dns
networks: files dns
services: db files
protocols: db files
rpc: db files
ethers: db files
netmasks: files
netgroup: files
bootparams: files
automount: files
aliases: files
glibc2提供了一些鉤函數,所以使用模塊化的服務庫(service libraries)對上面文件裡每一種數據庫的搜索和處理是可擴展的.所以很快我們將可以看到在這個服務調度文件(services switch file)中加入 LDAP服務---那樣主機(hosts)用戶(passwd或shadow?),用戶組 (group)等信息就可以用名為nss_ldap的模塊庫來查詢和處理,而nss_ldap模塊與 LDAP服務器打交道.我們還可能看到用某種nss_hesiod模塊對一些用戶和用戶組信息提供"Hesiod"服務(通過DNS或secureDNS協議).甚至我們會看到用一個 nss_nds模塊來提供NDS(Novell/Netware目錄服務).
不過話說得遠了點.
一旦你做完這些,你就可以為你的LAN提供普通服務了.簡單地說你如何設置你的客戶系統取決於它們運行什麼OS,和你想讓它們得到什麼服務.
比如,如果你想通過NFS讓你的Linux或其它Unix客戶共享文件,你要編輯你的 Linux服務器上的/etc/exports文件指定哪些目錄樹對哪些客戶系統是可訪問的.
以我自己的系統上的exports文件為例:
-+
# / *.starshine.org(ro,insecure,no_root_squash)
# / 192.168.5.*(ro,insecure,no_root_squash)
/etc/ (noaccess)
/root/ (noaccess)
/mnt/cdrom 192.168.5.*(insecure,ro,no_root_squash)
... 注意我在向我的LAN輸出根目錄時把兩個目錄標記為noaccess".這樣做是為了防止我的網絡上其它系統讀我的設置文件和passwd/shadow文件.我只用 read-only模式輸出我的根目錄,並且只是偶爾才暫時地輸出根目錄(這就是為什麼你看到時這幾行是被注釋掉的).我的CDROM設為可訪問的,因為我並不擔心屋子裡的任何人讀我的任何CD上的數據.
牢牢記住NFS就是 "no flippin security"(不堪一擊的安全性) --- 任何能控制你的網絡上任何系統的人都能夠變成非root用戶身份執行操作,並以那個用戶的"名義"訪問任何共享的NFS(NFS是為這樣一種情況設 計的:只有少數主機並且都被鎖在屋子裡嚴格控制;而不是為在現代辦公環境中使用而設計的:你夾著安裝了Linux,FreeBSD,甚至 Solaris x86系統的膝上機走進辦公室,把它連在最近的以太網插口上(這在現代辦 公室隨處可見---我在某些地方的接待區(reception areas)也見過).
為了與你的Windows系統共享文件,你需編輯 /etc/smb.conf.文件來設置 Samba.要想作MacOS的文件服務器,你需要安裝並設置 etatalk.要想模擬 Netware文件服務器,你要安裝Mars_nwe,和/或從Caldera (http://www.caldera.com)買一份Netware Server for Linux.
這些組件的每一個都有幾種方法能把你的系統設置為打印服務器.
說完文件和打印服務,我們來看看"標准的Internet服務"( "commodity internet services")如FTP,telnet,HTTP (WWW).一般說來,如果你安裝了任何通用的Linux發布,它們並不需要特殊的設置.
如果在/etc/passwd文件裡你建立了一個FTP帳號,就允許通過匿名FTP訪問你的某一子目錄.如果你把這個帳號改名為"noftp"或"ftpx"或除了"ftp"的任何名字,或者干脆刪除這個帳號,你的系統將關閉FTP服務.如果你開放FTP服務,你只需把你想共享的文件放進FTP的主目錄的/pub目錄下---確認它們是"可讀"權限.FTP服務缺省由tcpd運行,所以要依據你的hosts.allow/hosts.deny文件的設置.
如果你打算建立一個"真正的"FTP站點,用作公共鏡像或專業"extranet"應用,你恐怕需要用ncftpd, proftpd,或beroftpd代替已經過時的WU-ftpd或舊的BSD FTP守護程序(in.ftpd).這些替代的FTP守護程序有自己的設置文件,可以支持虛擬主機和其它特性.它們中有的允許你建立"虛擬用戶"---這些帳號只允許通過FTP訪問指定FTP子目錄;還有虛擬主機服務---這些帳號可以被用於訪問系統的任何其它服務.
Web服務由它們自己的設置文件控制.有幾本書專門介紹Apache服務器的設置.缺省情況下,它們允許所有人浏覽你放進魔力目錄(magic directories)的所有網頁 (/home/httpd/docs 或類似目錄).
你可以根據客戶的IP地址(或反過來找到它的DNS名字)來限制對特定目錄的訪問.和 TCP Wrappers一樣,這不能被認為是一種"認證"---但它可以用於區分"本地"與"非本地"系統,如果你設置了反欺騙包過濾措施( ANTI-SPOOFING PACKET FILTERS)(任何好的防火牆都會有這部分).
telnet, rlogin, rsh,和其它類型的交互式shell訪問通常極容易設置.像許多Unix/Linux服務一樣,取消或限制訪問比開放它們要麻煩得多.
在Red HatLinux下,這些和其它"需認證的"服務可通過編輯/etc/pam.d/下的PAM設置文件來控制.
所以,對於"如何把Linux設置成服務器"這個問題的簡單回答就是,安裝它,設置地址和路由選擇,然後安裝並設置你想提供的服務.
當我們想把Linux用作Internet網關時(或通向任何其它網絡的網關---把你的家庭網絡與你辦公室或朋友的網絡連接),你首先要解決的是地址分配和路由選擇問題(設好你的第二個接口,並把它正確地加入路由表).然後利用IP偽裝或代理服務 (SOCKS)使你的網絡系統(使用的是"私人網絡"地址)能夠訪問 Internet服務.
要用舊的ipfwadm(標准2.0.x內核)實現IP偽裝,你只需用這樣的命令行:
ipfwadm -F -a accept -m -D 0.0.0.0/0 -S 192.168.5.0/24
... 加入 (-a即add)一條規則到轉發表中 (-F即 forwarding)以"接受(accept)"並偽裝 (-m即"masquerading")符合以下條件的數據包:其目的地(-D即"destined for")為任何地址 (0.0.0.0/0),且其源IP地址(-S)符合192.168.5.0/24(24是一個地址掩碼(相當於255.255.255.0),指定地址的前24bit即三位八進制數作為IP地址的"網絡部分"---從而覆蓋了這個C類網絡的全部).
你應該使用模塊化編譯的內核,並且當你使用這種偽裝技術時,幾乎總是應該啟動 kerneld來裝載模塊.這是因為有一些常見協議(特別是FTP)在偽裝時需要特別處理(拿FTP協議來說,數據連接是從服務器向客戶端(發出請求),然而通常數據連接的方向是從客戶到服務器).
因為這個原因,我其實偏愛應用層的代理.你可以到任何Red Hat的站點的"contrib"目錄下,下載SOCKS服務器和客戶端軟件.把服務器安裝在你的Linux網關上,再把客戶軟件安裝在任何你的Linux客戶上.
在SOCKS網關上,創建一個文件: /etc/socks5.conf 照此寫入內容:
route 192.168.5. - eth0
permit - - - - - -
... 你可以用很多選項來限制對socks網關的訪問---不過這個是最簡單的例子.
在Linux客戶端,建立一個叫/etc/libsocks5.conf的文件,寫入類似下面的一項:
socks5 - - - - 192.168.5.2
noproxy - 192.168.5. -
... 其中".2"地址就是我運行SOCKS服務器的主機.
對非Linux客戶機,你要用各種不同設置方法.多數Windows TCP/IP工具集(除了 Microsoft的)支持SOCKS代理.有一些替代的WINSOCK.DLL,可以透明地為多數或全部其它Windows服務提供對這種代理協議的支持.MacOS應用程序似乎也廣泛支持 SOCKS.
還有一些NECs SOCKS服務器的替代品.我發現"DeleGate"就是相當不錯的一個(到 Freshmeat去搜索一下).DeleGate的優點在於,你不僅可以把它用作"SOCKS"兼容的代理,還可以用作"manually traversal"代理.SOCKS代理協議允許客戶端軟件與代理服務器軟件通訊,並發送給服務器有關請求信息,服務器反過來把請求轉發給外部的服務器上運行的某個進程.這就是所謂"traversal."
非SOCKS的代理不得不用其它" traversal"機制.很多就是"manually traversed" ---我telnet 或ftp到TIS FWTK代理上 (打個比方)然後以"[email protected]."登錄 ---換句話說,我向提示 符輸入了附加的帳號和目的地址的信息,而普通情況下只需輸入帳號名 .
DeleGate能讓你在碰到不支持SOCKS協議的客戶程序時使用" manual traversal"機 制.
我還聽說過另一種SOCKS服務器軟件,名叫"Dante"---也能在(http://www.freshmeat.net)找到.
還有幾種專一於特定服務的代理.比如 Apache web 服務器,CERN web服務器和其它幾種服務器可作為"caching web proxies"(不僅代理web訪問請求,還能cache傳輸 來的文件). Squid也可以代理並cache web和FTP請求.
有一些服務,如mail和DNS,本身就設計成具有"代理"功能.在這封信裡我不可能詳細介紹DNS或e-mail服務了.有幾本書專門介紹這些.
以上所說的是把Linux設成私人網絡與Internet之間的網關的非常基礎的知識 .如果你得到了一些"真正的"IP地址,並執意要使用它們從而在你的LAN中使用"DRIP"(directly routed IP),你不一定要設IP偽裝或代理---但你要采用包過濾措施來 保護你的客戶系統和服務器.
設計好包過濾是很困難的.問題之一我在前面已經有所提及,就是FTP需要兩個不同的連接---一個向外發出的控制連接和一個進來的數據連接.還有一個輔助的 "PASV"即"消極(passive)"模式,---不過它還是需要兩個連接.簡單的包過濾措施將把事情搞得一團糟,因為我們不能僅僅盲目地拒絕所有"進來的"連接請求(根據 TCP數據包報頭的SYN和ACK標志位的狀態來判斷)."狀態檢查"("stateful inspection")的一個"好處"(或復雜之處)就在於它跟蹤這些連接(及所有連接的 TCP序列號)以保證一致性.
一組像樣的包過濾措施將比我在這裡提供的代理和偽裝的例子復雜得多.我個人不喜歡DRIP類型的設置.我覺得它們給家庭和小公司的網絡帶來了太多風險.不過,下面有一個例子
# Flush the packet filtering tables
/root/bin/flushfw
# Set default policy to deny
/sbin/ipfwadm -I -p deny
/sbin/ipfwadm -F -p deny
/sbin/ipfwadm -O -p deny
# Some anti-martian rules -- and log them
## eth1 is outside interface
/sbin/ipfwadm -I -o -W eth1 -a deny -S 192.168.0.0/16
/sbin/ipfwadm -I -o -W eth1 -a deny -S 172.16.0.0/12
/sbin/ipfwadm -I -o -W eth1 -a deny -S 10.0.0.0/8
/sbin/ipfwadm -I -o -W eth1 -a deny -S 127.0.0.0/8
# Some anti-leakage rules -- with logging
## eth1 is outside interface
/sbin/ipfwadm -O -o -W eth1 -a deny -S 192.168.0.0/16
/sbin/ipfwadm -O -o -W eth1 -a deny -S 172.16.0.0/12
/sbin/ipfwadm -O -o -W eth1 -a deny -S 10.0.0.0/8
/sbin/ipfwadm -O -o -W eth1 -a deny -S 127.0.0.0/8
## these are taken from RFC1918 --- plus
## the 127.* which is reserved for loopback interfaces
# An anti-spoofing rule -- with logging
/sbin/ipfwadm -I -o -W eth1 -a deny -S 222.250.185.16/28
# No talking to our fw machine directly
## (all packets are destined for forwarding to elsewhere)
/sbin/ipfwadm -I -o -a deny -D 222.250.185.14/32
/sbin/ipfwadm -I -o -a deny -D 222.250.185.30/32
# An anti-broadcast Rules
## (block broadcasts)
/sbin/ipfwadm -F -o -a deny -D 222.250.185.15/32
/sbin/ipfwadm -F -o -a deny -D 222.250.185.31/32
# Allow DNS
## only from the servers listed in my caching servers
## /etc/resolv.conf
/sbin/ipfwadm -F -a acc -D 222.250.185.18/32 -P udp -S 192.155.183.72/32
/sbin/ipfwadm -F -a acc -D 222.250.185.18/32 -P udp -S 192.174.82.4/32
/sbin/ipfwadm -F -a acc -D 222.250.185.18/32 -P udp -S 192.174.82.12/32
# anti-reserved ports rules
## block incoming access to all services
/sbin/ipfwadm -F -o -a deny -D 222.250.185.16/28 1:1026 -P tcp
/sbin/ipfwadm -F -o -a deny -D 222.250.185.16/28 1:1026 -P udp
# Diode
## (block incoming SYN/-ACK connection requests)
## breaks FTP
/sbin/ipfwadm -F -o -a deny -D 222.250.185.16/28 -y
## /sbin/ipfwadm -F -o -i acc
## -S 0.0.0.0/0 20 -D 222.250.185.16/28 1026:65535 -y
## simplistic FTP allow grr!
# Allow client side access:
## (allow packets that are part of existing connections)
/sbin/ipfwadm -F -o -a acc -D 222.250.185.16/28 -k
這一組過濾規則有缺陷.讀一下注釋你就明白了,有一條規則處理FTP---卻讓所有使用1024以上端口的服務面臨風險---比如X windows(用6000以上端口)等.攻擊者只需擁有其系統的控制權(作為自己的Linux或其它Unix的root---並不很困難),並創建數據包使其看上去來自他們的TCP20號端口(FTP數據端口).同樣,對於任何擁有 spak(send package)的人來說也是易如反掌.
所以,我把這條規則注釋掉了,也沒給出一組規則能允許本地系統與一個代理FTP系統連接.
注意這些地址是假的.就我所知它們不會代表任何真正的主機.
這些過濾規則中我唯一感到滿意的是拒絕spoof數據包(即聲稱來自我自己的地址或者像本地主機一樣來自私有或假想的地址的那些數據包)進入的那部分.還有一些規則是為了防范私人網絡上任何走失的數據包不會"洩漏"到Internet上.這是一種禮貌---此外一個實際的好處是,我幾乎不會把"私人網絡"上分享的機密數據"洩漏"出去,哪怕我硬要把它們送出去.
我看過一些關於ipfil的資料,(Darren Reed開發的IP過濾軟件包 --- 是 FreeBSD和其它BSD系統上的事實標准,也可在Linux上編譯運行).這個軟件似乎提供了某種"狀態相關的"(stateful)特性,可能讓你在開放非消極模式FTP時能更安全 .不過,具體細節我就不知道了.
2.2版的內核將包括修改過的內核包過濾機制,由ipchain命令控制.一系列非正式的2.0系列內核的補丁也提供了這些功能.這似乎沒有提供任何"狀態檢查"特性 ,("stateful inspection")但比起現有的ipfwadm控制的表來說還是有不少改進的 .
你最後一個問題是想把Linux設成Internet服務器(可能用做公共WEB頁,FTP或其它常見Internet服務).
可能你已經看出來了,提供Internet服務與提供你自己的LAN的服務是一樣的 .在缺省情況下,Linux下(及其它類型的Unix)的任何服務都可在全世界范圍內被訪問 . (這也就是為什麼我們需要防火牆).
我已經花了些時間介紹如何對Linux和Unix系統做些特殊設置來限制 指定的那些網絡對你的服務的訪問.否則,在巴西的什麼人會像你自己一樣容易地在你的打印機上打印文件.
要成為Internet服務器,所有你要做的就是擁有一個靜態IP地址(或者定期更新你在 http://www.ml.org的地址記錄).只要人們知道怎樣把請求送達你的服務器,---假如你並沒有采取措施拒絕那些請 求---Linux就會服務於它們.
設置網絡過程中最具挑戰性的是涉及地址,路由選擇,域名和安全的那些部分.我們中的大多數在自己的網絡上還在使用"靜態"路由選擇---就是架設新系統時手工分配IP地址 .使用撥號PPP的多數是從ISP那裡得到動態IP地址.一些站點如今使用 DHCP來為桌面系統提供動態地址(服務器還是需要穩定的地址---為服務器使用 DHCP只會帶來更多的麻煩).
至於路由,劃分子網和LAN網段的問題---去看看我上個月貼出的關於路由的文章 (我想Heather會在這個月出版它).它長達30頁!
(那篇文章裡我省略了的一件事是以太網的 "proxyarp".這些將在這個月的另一封回信裡介紹.所以,要是你想學更多東西,可以看看它).
我希望安全問題已經能引起你的注意.哪怕你的系統上沒有任何有價值的東西---如果有cracker破壞你的文件取樂對你來說無關緊要---把一個不安全的系統連在 Internet上也是不負責任的(因為你的有漏洞的系統可能被用於破壞其它網絡).
我想在一切完成之後寫一個有關這個主題的FAQ...希望在我自己摸索了一些經驗後能對別人有所幫助.
盡管這種貢獻是令人贊賞的---能寫成書更好.不過,我更希望看到一些 "個案研究"---講述典型的SOHO(small office,home office即小辦公室,家庭辦公 室),部門的,企業的Linux方案.
這些方案研究應該包括網絡布局,並提供每一個客戶機和服務器的地址分配,路由表,網絡服務的設置文件的"一目了然的"示例.公司名,域名和其它名字及IP地址應該被隱去,以避免被別有用心的人利用,並盡量減少公布帶來的風險(提供者的 E-mail地址應該用假地址).
重要的是要確切描述你打算提供什麼服務,和打算提供給哪些用戶和用戶組.這就是一個我已在前面反復提到的過程---需求分析.
你要知道你向什麼人提供服務,他們需要什麼服務.