一、這份HOWTO的目的 這份HOWTO描述了如何在一台個人電腦上安裝OpenBSD 3.2,以及如何配置,使之成為一台DSL路由器。 在系統的配置中希望盡可能大地發揮它的功能。在安全性、功能性和易用性幾方面的斟酌中,會犧牲一點安全性。但是我還是會一如既往,盡力做到在這種要求下的盡可能高安全配置。同時,既然我因為功能性一定程序上降低了安全性,我也必須指出,這篇文章的論述和所描述的過程是盡我所能,但是我不是OpenBSD專家,錯誤或遺漏在所難免,因此對您的改進意見表示感謝。 首先我要聲明一點的是,OpenBSD目前還不能比如象Linux一樣,給局域網內的其它機器提供一些網絡服務(NetMeeting, 用ICQ或AIM收發文件等)。不過,如果是我搞錯了的話,請寫信告訴我,以便修正這篇HOWTO。 現在進入正題: 如果我按照這裡的說明去配置,這台機器能做什麼呢? 它上面將運行OpenBSD -- 目前來說最安全的自由操作系統。這個系統由眾多的安全專家不斷地針對安全漏洞進行檢查和改進著,更多的信息請查看 www.openbsd.org 它能夠建立DSL連接,並且斷線後自動重撥 網絡通過NAT(就象Linux的masquerade一樣)將局域網的機器與外網相連,做到完全透明,網內可以使用以下的服務: HTTP, HTTPS, SMTP, POP3, IRC, ... 等等所有的客戶端應用 FTP的主動和被動連接模式通過代理實現 上面會架設FTP服務器,可以被內網和外網訪問 通過時間服務器使局域網內的所有機器時間准確同步 它能過動態域名時刻被外界訪問,,類似“my-router.no-ip.com”這樣的域名,可以從www.no-ip.com 免費注冊獲得。 通過SSH管理,也就是說通過局域網內任何一台機器或互聯網上的機器來管理。一個很方便的客戶端軟件可以在這兒下載: SSHSecureShellClient-3.2.2.exe 給局域網內的其它機器提供作域名服務器,方便這些機器的設置。 有些IRC網(例如DALnet)必須有認證服務器,提供用戶的身份信息才能連接,因此我們這兒會運行一個“假的”認證服務器,用以返回“假的”用戶名字。 那我需要具備什麼呢 一台舊電腦(最低要求:486DX2/66 - 32兆內存),配置: 硬盤500MB以上,軟驅 兩張網卡(最好是PCI的,因為這樣會自動識別) 如果有能啟動的光驅更佳 當然內存少於20MB也是可以安裝的,但是具體如何做,這就要求好好閱讀FAQ的內容了 在安裝過程中還需要一個鍵盤和顯示器。 已經連通的網絡(對無光驅者),最好就是用自己將來使用的DSL線路。 如果熟悉UNIX類操作系統的和它們的程序,比如*BSD或Linux,會很有幫助。OpenBSD的默認編輯器是vi,我會介紹怎樣安裝一些容易使用些的編輯器,當然,懂得一點vi的基本操作是沒壞處的。 然後就是耐心、良好的神經和極大的熱情(取決於前面的步驟喽,;))
二、安裝 OpenBSD 3.2 在安裝過程中的注意事項的一些細節,這兒就不詳細說了,關於這方面已經有足夠多的資料了(比如安裝FAQ或者其它FAQ,當然還有Google。 用CD安裝的話我建議購買OpenBSD的原裝盤(也是在 www.openbsd.org )- 甚至單單是因為CD配給酷酷的不干膠標簽就值,此外還可以同時用精美的海報和T恤包裝一下自己 ;) 當然對此不感冒的或者沒有沒有支持光盤啟動的光驅另作別論,可以從FTP安裝。這樣也有好處,總是安裝最新的版本,只要機器是連網的,通過局網內另外一台機器(其實也就是一台當前的路由),和一張軟盤。鏡象文件可以到OpenBSD網站下載:floppy32.fs,解開的方法,在Linux或*BSD下: # dd if=floppy32.fs of=/dev/fd0 bs=32k 或者在windows下用 rawwrite.exe 寫到一張格式化好的 1.44MB 盤上。 FTP安裝過程中只需要一張網就行了,這張卡得是連外網的,然後放入軟盤或光盤,開始吧。 啟動後,經過一長串藍底白字的文字,出現這樣的選項: (I)nstall,(U)pgrade or (S)hell? i 當然我們選“安裝(i)”了。之後會問終端類型: Specify terminal type [vt220] _ 我們只要按回車就好了。接下來是選擇鍵盤布局: Do you wish to select a keyboard encoding table? [n] y Select your keyboard type: (P)C-AT/XT, (U)SB or 'done' [P] _ The available keyboard encoding tables are: be de dk es fr it jp lt no pt ru sf sg sv ua uk us Table name? (or 'done') [us] de keyboard mapping set to de 選完後會立即生效,這樣我們就不用再在鍵盤上盲人摸象啦(譯注:偶們中國人就不用管它,用默認的美式鍵盤就行了)。接下來有點意思,OpenBSD問我們在怎樣的硬盤上安裝。 IS YOUR DATA BACKED UP? As with anything that modifies disk contens, this program can cause SIGNIFICANT data loss. It is often helpful to have the installation notes handy. For complex disk configurations, relevant disk hardware manuals and a calculator are useful. Proceed with install? [n] y Cool! Let's get to it... You will now initialize the disk(s) that OpenBSD will use. To enable all avaliable security features you should configure the disk(s) to allow the creation of separate filesystems for /, /tmp, /var, /usr, and /home. Available disks are: wd0 Which one is the root disk? (or done) [wd0] _ 在這裡我假設的是,這台機器只安裝OpenBSD,所以用第一塊硬盤(wd0)就對了。wdX表示IDE接口的硬盤:wd0 - primary master, wd1 - primary slave, wd2 - secondary master, wd3 - secondary slave. 接下來的問題: Do you want to use the *all* of wd0 for OpenBSD? [no] yes 是否全歸OpenBSD使用?當然我就在這裡選“是”了。現在我們到了安裝過程中較棘手的地方 - disklabels. 與windows或Linux不同的是,*BSD用disklabel來建立“子分區”,不要混淆了。還好,我們這裡有且只有一個OpenBSD分區(上面回答“是”後,自動建立的),這個分區我們將用disklabel再劃分。在出現提示符後我們用“p”來顯示盤上的內容 Initial label editor (enter '?' for help at any prompt) > p device: /dev/rwd0c type: ESDI disk: ESDI/IDE disk label: VMware Virtual I bytes/sector: 512 sectors/track: 63 tracks/cylinder: 15 sectors/cylinder: 945 cylinders: 6502 total sectors: 6144390 free sectors: 6136641 rpm: 3600 16 partitions: # size offset fstype [fsize bsize cpg] a: 6136641 63 unused 0 0 c: 6144390 0 unused 0 0 > _ 我們感興趣的是的下面的部分,顯示的是目前的disklabel(a, c)及它們的大小。這裡我們要注意兩點 這裡的disklabel(a,b,...)跟M$的盤符一點關系都沒有。 Label “c”總是表示整個硬盤。 為更合理分盤,現在我們刪除目前所有的label(當然除了“c”以外,不過反正我們也刪不掉它),在這個例子裡我們只要刪除“a”就行了(“d a”)。然後我給根分區200MB空間,用“a”分區,接下來100MB交換分區(大約2倍的內存的大小),50MB給“/tmp”,還有50MB“/var” > d a > a a offset: [63] size: [6136641] 50m Rounding to nearest cylinder: 101997 FS type: [4.2BSD] mount point: [none] / > a b offset: [102060] size: [6034644] 100m Rounding to nearest cylinder: 205065 FS type: [swap] > a d offset: [307125] size: [5829579] 50m Rounding to nearest cylinder: 102060 FS type: [4.2BSD] mount point: [none] /tmp > a e offset: [409185] size: [5727519] 80m Rounding to nearest cylinder: 163485 FS type: [4.2BSD] mount point: [none] /var > a f offset: [572670] size: [5564034] 220m FS type: [4.2BSD] mount point: [none] /usr > _ (譯注:hmmm.... 好象作者從openbsd網站 copy & paste 過來,但忘記改數據了) 專門的分區 /tmp 和 /var 我們最好不要捨棄,因為這是放臨時文件和日志的地方。如果文件太多太大的超出空間的話,只會影響 /var 或 /tmp,而不會殃及根文件系統。如果硬盤足夠大的話,還應該多分給 /var 一些。如果想安裝圖形界面或者自己編譯OpenBSD團隊的新東東的話,/usr 還得再大一些(比較合理的上限是2.2G)。剩余的空間可以作為 /home。這裡也是後面我們要安裝的FTP服務器所使用的分區,如果不想安裝FTP的話,可以放心地減小這個分區,甚至不要都可以,空間分配給其它地方。 > a g offset: [1023435] size: [5113269] FS type: [4.2BSD] mount point: [none] /home > _ 做完這些,我們再用命令“p”檢驗一下,應該大致如此 > p device: /dev/rwd0c type: ESDI disk: ESDI/IDE disk label: VMware Virtual I bytes/sector: 512 sectors/track: 63 tracks/cylinder: 15 sectors