上星期又重灌了一次Debian Etch[?],趁著還沒忘記的時候留個紀綠好了。
Base System:
進入安裝畫面後,首先選擇的語言是英語,因為要儘可能排除外文支援的問題。之後的地區會自動定標為美洲,記得從Other裡改成Taiwan,因為這會決定預設的套件庫網址。
接下來會詢問是否使用網路的套件庫來源,請選擇yes;至於是否參加套件使用調查計劃,就自行決定吧。
base system裝完後會詢問要安裝哪些整合套件,可以選擇的有桌面環境、基本系統、網路伺服器等,我個人是全部取消,為的是一個乾淨的自訂系統。
全部安裝完成後會要求reboot,請在登入之後立刻更新。
接下來會詢問是否使用網路的套件庫來源,請選擇yes;至於是否參加套件使用調查計劃,就自行決定吧。
base system裝完後會詢問要安裝哪些整合套件,可以選擇的有桌面環境、基本系統、網路伺服器等,我個人是全部取消,為的是一個乾淨的自訂系統。
全部安裝完成後會要求reboot,請在登入之後立刻更新。
# aptitude update && aptitude upgrade由於Debian對套件庫的選擇要求很高,因此在stable出現的一定是重要性很高的更新,可以安心的使用。
Firewall:
第一件事當然是建立防火牆。在這裡個人使用的是iptables的前端程式--shorewall。這是一個可以用很簡單的方式去控制iptables的程式。
一開始應該是只有Makefile和shorewall.conf,先別動它們,先把
# aptitude install shorewall之後到/etc/shorewall/底下去設定它。
一開始應該是只有Makefile和shorewall.conf,先別動它們,先把
/usr/share/doc/shorewall/default-config/
底下的所有檔案copy到這裡;這是為了防止還沒設定好防火牆之前就被啟動導致無法登入的關係。
首先編輯zones這個檔案;這是定義網路架構各個部分的檔案。像這樣:
#ZONE TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall net ipv4fw代表防火牆,net使用ipv4。
然後編輯policy這個檔案;這個檔案算是總規則,沒有在rules裡限制的連線都會被policy限制。範例:
從外部到所有區域的連線全部丟棄,但是把info的部分寫入syslog[?]。
任何區域間的連線完全禁止,同樣把info紀錄下來。因為只有單一網域,不用考慮太多。
#SOURCE ZONE DESTINATION ZONE POLICY LOG LEVEL LIMIT:BURST $FW net ACCEPT net all DROP info all all REJECT info從防火牆連出到外部網路的連線全部允許;注意,這是有方向性的,所以不代表外部網路可以連入防火牆。如果不開這個就變成鎖國狀態了。
從外部到所有區域的連線全部丟棄,但是把info的部分寫入syslog[?]。
任何區域間的連線完全禁止,同樣把info紀錄下來。因為只有單一網域,不用考慮太多。
接下來設定interfaces,這是定義zones裡的區域是接在哪個界面上。以下請隨機應變:
#ZONE INTERFACE BOARDCAST OPTIONS net eth1 detect由於在zones裡只有net要定義,防火牆是算整台伺服器,所以不用分界面。boardcast的狀況也請自己判定。
最後終於可以設定rules了;這是設定特定連線的檔案,沒有在這裡定義的連線全部會使用policy的定義。
雖然通常會指定連線方式[?]和port,如:
但是為了方便,shorewall也提供了巨集以安全的設定規則。如:
我自己是這麼定的:
雖然通常會指定連線方式[?]和port,如:
#ACTION SOURCE DESTINATION PROTO DEST PORT(S) ACCEPT net $FW tcp 80即是允許HTTP的連線進入防火牆。
但是為了方便,shorewall也提供了巨集以安全的設定規則。如:
#ACTION SOURCE DESTINATION PROTO DEST PORT(S) HTTP/ACCEPT net $FW這個寫法跟上述等義。巨集列表請參照
/usr/share/shorewall/macro.*
。我自己是這麼定的:
#ACTION SOURCE DESTINATION PROTO DEST PORT(S) HTTP/ACCEPT net $FW FTP/ACCEPT net $FW SSH/ACCEPT net $FW Ping/DROP net $FW這樣是開HTTP、FTP、SSH三個服務,然後把所有的ping都drop掉。注意FTP不能因為有兩條通道就同時設定20和21,這會導致FTP出問題;你只需要設定21就好,不然就直接使用巨集。
如此就完成規則設定,接下來要開啟shorewall。首先確認
接下來只要
Reference: ShoreWall
/etc/default/shorewall
是STARTUP=1
,然後/etc/shorewall/shorewall.conf
是STARTUP_ENABLED=Yes
;這樣才會自動在開機時載入。接下來只要
# shorewall start即可。
Reference: ShoreWall
ssh server:
# aptitude install ssh結束。
ftp server:
FTP server有很多種,可以用
apt-cache search ftp-server
來查詢;這裡選用proftpd。# aptitude install proftpd結束。
Web server:
Well,最著名的還是Apache吧;這裡選用2.2[?]。視情況也要安裝PHP,我選擇5[?]。MySQL也是。
所有設定檔都在
從這版開始設定方式改為模組式,不再是httpd.conf一線到底;也就是說各部分的設定被分開到不同的檔案,在需要時才include進去。
以下是值得注意的地方:
請把php5及userdir相關檔案link起來。如果同時有*.conf和*.load,都要一起link。
記得修改userdir.conf,把Options的Indexes去掉,這是為了防止你沒有index.html時Apache自動列出所有檔案的目錄。
設定完成後記得重啟Apache。
# aptitude install apache2 php5 mysql-server接下來要設定apache。
所有設定檔都在
/etc/apache2/
底下。從這版開始設定方式改為模組式,不再是httpd.conf一線到底;也就是說各部分的設定被分開到不同的檔案,在需要時才include進去。
以下是值得注意的地方:
conf.d/charset:
設定預設編碼。如果有設定編碼,就會強制網頁使用該編碼,而忽視HTML文件的定義。如果設為Off,就是交給HTML文件去定義。建議AddDefaultCharset Off
。mods-available/:
這裡是可用模組,所有可以啟用的設定檔都在這裡。想要啟用就把檔案link到mods-enabled/
下即可。請把php5及userdir相關檔案link起來。如果同時有*.conf和*.load,都要一起link。
mods-enabled/:
這裡是已經啟用的模組,想更改設定內容來這裡改比較快,存檔時會一起更新原本在mods-available/
裡的檔案。只有*.conf的檔案才是可更改的,*.load請勿更動。記得修改userdir.conf,把Options的Indexes去掉,這是為了防止你沒有index.html時Apache自動列出所有檔案的目錄。
設定完成後記得重啟Apache。
暫時就這些了。之後可能會再寫一份quota和limit的設定吧。
沒有留言:
張貼留言