FreeBSD 在 3.1 (含) 版以後,把一些系統預設的主要設定移置於 /etc/defaults/rc.conf
這個檔案中,您可以針對自己的運作需求,將相關的設定存寫於 /etc/rc.conf 這個檔案。
請注意,日後您可能會發現直接修改 /etc/defaults/rc.conf
這個檔案也是可以,但是這並不是一個好的使用習慣。其一,它是您在針對不清楚的設定部份中,第一步要查詢的解說與範本;其二,因為它本身的內容較多,維護與修改較不方便。
在您安裝完 FreeBSD 重新開機之後,第一件要做的事,便是修訂 /etc/rc.conf 檔案。 雖然說在 FreeBSD
中,不論是使用哪一個版本,其使用的基本觀念都是一樣的,但是不同的版本之間其指令名稱、可用的設定參數等等都可能會有所變化,所以在學習使用 FreeBSD
一定要有個觀念︰使用或設定前,務必先行查看相關的文件或範例。
根據上文所提的,底下我們將會針對 rc.conf
這個檔案中一般最常用到的設定做一解說,但是難免會有所不足或與您目前所使用的版本有所不同,這時您就得需要先查看
/etc/defaults/rc.conf 中的範例與其基本解說,如果還是不足夠的話,您就需使用查看該版本的技術手冊 (handbook)
了;如果您使用的版本為 FreeBSD 2.2.2 (含) 以後版本的話,您可以下 man 5 rc.conf 來查看。
關於 manpages 線上說明文件,您可以參考 manpages 章節。
在 rc.conf 這個設定檔中,凡是位於符號 #
之後直到換行為止的內容,都將會被視為註解,而不會當成設定的內容。基於這個特性,您可以利用 #
來為相關的設定做上註解,以方便日後查看時用。
各設定值中的參數,若不只一項的話,請以空格來區隔。
所有的設定項目皆需以一行來完成;底下若看到有一行以上的仍因版面因素,請特別留意。
項目 | autoboot_delay="10"
| 簡介
| 這是可以讓您決定開機時要等待幾秒的時間來設定開機時的參數,這在初安裝完系統後的 /etc/rc.conf
檔案中是不存在的。如果您很介意開機的速度,您需要手動將它建立。若未設定此值,系統預設是等待 10 秒鐘。
| 項目 | defaultrouter="xxx.xxx.xxx.xxx"
| 簡介
| 設定預設的通訊匣 (geteway) 位址。
如果主機不是採用撥接方式來連結網路或主機不是要拿來做通訊匣用的話,通常您是需要設定的。
如︰defaultrouter="192.168.168.1"
| 項目 | gateway_enable="YES"
| 簡介
| 是否啟用封包轉送 (IP forwarding) 功能。 主機打算做 router/gateway
時才需要。通常啟用時,defaultrouter 設定值是不需設定的。 可用參數︰YES / NO
| 項目 | hostname="www.mycorp.com"
| 簡介
| 設定主機名稱。 預設是主機的完整網域名稱,如︰www.mycorp.com 您可以只輸入主機名稱,如︰www
此設定參數是沒有預設值的,需由您來指定 如果要改變主機名稱 (三思而後行),也是在此變更即可。
| 項目 | network_interfaces="rl0 ed0
lo0"
| 簡介
| 設定您的網路介面。 預設值為 auto。
通常此設定無需指定,您可以刪除或註解掉它 -- 如果您在 /etc/rc.conf 看見此設定的話。
然如果您有某網路介面想短期間不啟動,您需於此設定要啟動使用的網路介面名稱。
| 項目 | ifconfig_lo0="inet
127.0.0.1"
| 簡介
| 遞迴裝置 (loopback)。 這是個虛擬出來的網路介面,讓您可以連線到主機本身。
通常您只會在 /etc/defaults/rc.conf 中看到它,您無需去改變它的設定。
| 項目 | ifconfig_zzY="inet
xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"
簡介
| 設定網路介面的 IP 位址與網路遮罩等等。
其中 zz 為裝置介面的名稱;Y 為該裝置的編號;xxx 為 IP 的數值;inet 為網路位址 (Internet address),即所謂的 IP
位址;netmask 為網路遮罩。 如︰ifconfig_ed0="inet 192.168.168.1 netmask
255.255.255.0"
如果您的網路中有 DHCP,且想讓此網路介面經由 DHCP 來抓取設定值,可用 ifconfig_zzY="DHCP"
設定它。如︰ifconfig_ed0="DHCP"
| 項目 | ifconfig_zzY_aliasxY="inet
xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"
簡介
| 設定網路介面 zzY 的 IP Alias。 如果您想讓同一個網路介面使用一個以上的 IP 位址,您就會需要了解此設定。
ifconfig_zzY_aliasY 與 ifconfig_zzY 的設定方式是相同的,不過不能使用 DHCP
參數。
範例︰
ifconfig_rl0="inet 192.168.168.1 netmask 255.255.255.0"
ifconfig_rl0_alias0="inet 192.168.168.254 netmask 0xffffff00"
ifconfig_rl0_alias1="inet 192.168.169.1 netmask 255.255.255.240
ifconfig_rl0_alias2="inet 192.168.169.15 netmask 255.255.255.240
0xffffff00 為 255.255.255.0 的十六進位表示值。
| 項目 | kern_securelevel="-1"
| 簡介
| 設定系統安全等級。
預設值為 -1;最大值為 3
- -1 => 非安全模式。效用等於 0
- 0 => 非安全模式。具『不可移除』與『只能附加』的旗標屬性 (flags) 可以被設定者或 root 移除;所有的裝置 (device)
其讀取、寫入動作將取決於本身的權限設定。
- 1 => 安全模式。具『不可移除』與『只能附加』的 flags 無法被移除;/dev/mem 、/dev/kmem
只能唯讀;硬碟中已掛載的檔案系統無法再 newfs;核心模組無法動態載入或卸載。
- 2 => 高度安全模式。除了「安全模式」的限制之外,硬碟無論掛載與否皆無法再 newfs。為了預防入侵者先行卸載硬碟後再將它給 newfs
摧毀硬碟內容。此模式下您也無法再加裝任何硬碟給系統。
- 3 => 網路安全模式。除了「高度安全模式」的限制之外,IP 封包過濾規則無法再變更且頻寬控管 (dummynet) 等功能將無法使用。
需 kern_securelevel_enable 設定為 YES 才有作用。
| 項目 | kern_securelevel_enable="YES"
| 簡介
| 設定為 YES 將會在系統啟動時設依據 kern_securelevel 中的設定值來設定系統安全等級。
可用參數︰YES / NO
| 項目 | local_startup="/usr/local/etc/rc.d
/usr/X11R6/etc/rc.d"
| 簡介
| 設定啟動目錄。
如果有程式想在一開機時就自動執行,以往是寫在 /etc/rc.local 檔案中;現在可以將這些程式的執行動作寫成 shell 指令稿 (shell
script),放在 local_startup 所指定的目錄下,日後維護與偵錯時皆相當方便。
| 項目 | ntpdate_enable="YES"
| 簡介
| 設定開機後執行系統時間校時。 可用參數︰YES / NO
| 項目 | ntpdate_flags="clock.stdtime.gov.tw"
| 簡介
| 設定系統時間要以哪部主機來做標準時間校時。 請選您可信任、距離近、頻寬足的主機來做校時。
| 項目 | sshd_enable="YES"
| 簡介
| OpenSSH SSH daemon
telnet 的安全性頗受爭議,如果您沒有提供 telnet 的必需性的話,請將它設為 YES 來替代 telnet 吧。
| 項目 | inetd_enable="YES"
| 簡介
| Internet super-server
這通常是需要的,特別是在您的主機打算用來提供網路服務時。 相關的網路服務設定檔在 /etc/inetd.conf
| | |
目前為止,您只需要了解上述幾項設定即可,同時依據情況予以做最適當的設定;至於其他的部?驉A將會在後續的章節中提及。
如果您想要更深入的了解,請參考線上手冊 (manual page) 取得更多關於 rc.conf(5) 的資訊。
|