Ubuntu 12.04 Server vsftpd change root 的應用

chroot_local_user=YES到底是定義本機帳戶「可」或「不可」逸出根目錄,我在鳥哥的網站找到答案,chroot=change root,這就是「可」以逸出帳戶的根目錄。

以此延伸,那麼chroot_list_file內的名單,就是允許逸出自己根目錄的名單,當然,同一組設定chroot_list_enable=YES一樣不能少,那麼,這三個條件都設定好了,就可以盡如人意了麼?我在Ubuntu 12.04 Server試了很久,得到的回應都是「500 OOPS: vsftpd: refusing to run with writable root inside chroot()」,後來使用chown,將根目錄own改為ftp,FTP client才順利得到正確回應。

我的另一個建議是,無限逸出根目錄也沒有必要,如果某組帳戶須要,那就變更這組帳戶的根目錄為/home,再使用ssh利用ln指令,連結/home下的任何子目錄來加以應用即可。

Ubuntu Server 12.04 設定 DNS client位置

Ubuntu 設定 DNS client ,以往都是編輯 /etc/resolv.conf,但在Server 12.04時,該檔案編輯後,會被蓋掉,resolv.conf上面也註明不能在這裡編輯,也註明會被蓋掉。

必須編輯 /etc/resolvconf/resolv.conf.d/base,DNS client編在這裡就不會被蓋掉。

好用的防火牆iptables

閱讀相關的文章,一再推荐iptables,幾次嚐試失敗後,再爬文,終於有一些心得,提供同好參考。

上一篇文章提到,我把網站伺服器與檔案傳輸服務結合在Ubuntu 12.04 Server上,而網站伺服器,設定須要做客戶服務,須要將意見反應給公司業務的郵件服務,簡單想到開啟21 25 80埠,事實比較複雜,網路上,大都部份描述,今天把它湊合一起:

  • #vi /etc/vsftpd.conf

    增加下列3行
    pasv_enable=YES
    Pasv_min_port=4000
    pasv_max_port=4500

  • #vi /root/iptables.sh

    #!/bin/bash
    /sbin/iptables -F
    /sbin/iptables -X
    /sbin/iptables -A INPUT -p tcp -m multiport –dport 20:21,22,80,4000:4500 -j ACCEPT
    /sbin/iptables -A INPUT -p tcp -sport 25 -j ACCEPT
    /sbin/iptables -A INPUT -p tcp –dport 25 -j ACCEPT
    /sbin/iptables -A INPUT -p tcp -I eth0 -j DROP

最後,將/etc/rc.local加入一行:

/root/iptables.sh

別忘了reboot…

vsftpd設定不同使用者的各別目錄

第一次嚐試將網站伺服器與檔案傳輸服務結合在Ubuntu 12.04 Server,剛開始也很頭痛,原因是:我不想讓網站內容暴露在FTP使用者可視範圍,經過參考網路的幾篇文章,終於完成我的心願。

  • 改變FTP的根目錄,同時限定FTP用戶不得切換根目錄以外的名單位置,將FTP使用者限制在/home/ftp底下
    • root@xxx:~#vi /etc/vsftpd.conf

    chroot_list_enable=YES
    chroot_list_file=/etc/vsftp.chroot_list
    local_root=/home/ftp

  • 將欲限制的FTP使用者(本機用戶)寫入名單
    • root@xxx:~#vi /etc/vsftpd.chroot_list

    (受限的本機帳戶xxx)
    (受限的本機帳戶ooo)

  • 將自己的帳戶,排除在上面的名單外,自然可以逸出上面根目錄的限制,而可以另外設定網站對應的根目錄

在apache2的根目錄,我設在/home/(網站管理員本機用戶位置)/www/html,也就是本機用戶的預設位置,然後再利用ln –s方式,將它連結到/var/www/html位置。

最後,設定目錄權限,使用chmod將/home/ftp之下設為755,這樣,可讓FTP用戶間,可以彼此下載,並使用chgrp 及chown設定/home/ftp/(各別用戶專用目錄),設定為各別本機帳戶,這樣設定的用意在於,本機帳戶只能上傳到自己的專用目錄裡。

備註:本文是在Ubuntu 12.04 Server vsftpd v.2.3.5條件下

建置Ubuntu Server 12.04的中文環境

相信很多人都跟我一樣,建置好Ubuntu Server 以後,使用apt-get指令,會出現一堆亂碼,亂碼之所以令人不舒服,是因為不知道到底發生了什麼事。

當然,最多被採用的是,轉回英文環境,問題在於;台灣環境裡,當然會被使用到中文,尤其在FTP裡,使用英文檔名不如使用中文檔名來得容易被接受。

如果使用desktop ,這件事情比較容易解決,我在Ubuntu Desktop 10.04就成功地使用嘸蝦米輸入法,建立中文環境,比較困難的是在Server環境裡,在前一篇文章裡,述說Server無法建立中文輸入法,而在這裡,則發表個人在Ubuntu Server 12.04建立中文環境的經驗,提供同好參考。

Google可以找到許許多多對於建立中文環境的文章,但不如這篇文章來得有效及容易理解,依照這篇文章,可以迅速解決中文環境的問題,但在Windows 7環境裡,卻出現新的問題。

UTF-8是新的趨勢,這是無法擋的事實,在普遍使用Windows 7,甚至Windows 8,都被採用UTF-8,但是SSH遙控軟體如Pietty都還使用Big5,要解決FTP的中文檔名著實須要費些功夫,這裡是我的變通辦法:

主目錄我使用了英文,主目錄通常必須使用SSH遙控軟體編輯,次目錄,我則利用目前很通用的FTP Client FileZilla的字碼集來編輯中文目錄,通常,使用者被告知這個特性後,如果使用BIG5編輯目錄時,則將FileZilla Client字碼集調在BIG5,使用UTF-8時,則調在「強制使用UTF-8」,如果使用者發現無法點入次目錄,則調整字碼集。

至於在pietty或是Hyper-V,如果使用環境單純BIG5或UTF-8問題比較容易解決,就將default環境調在BIG5或是UTF-8,否則使用複製的特性,也可解決中文檔名的問題,只是須要再一次使用FileZilla Client來印證檔名,比較麻煩,不過這是BIG5 UTF-8參雜時代很無奈的問題。

建議使用單純的Big5或是UTF-8,我的經驗是:

Vi /var/lib/locales/supported.d/local
並列
zh_TW.BIG5 BIG5
en_US.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8

vi /etc/default/locale

使用Big5環境:
LANG=”zh_TW.Big5″
LANGUAGE=”zh_TW:Big5″

使用UTF-8環境:
LANG=”zh_TW.UTF-8″
LANGUAGE=”zh_TW:zh”

遙控端軟體則使用putty模式,當使用UTF-8環境時,調整:Category/Windows/Translation/Received data assumed to be in which character set:UTF-8

參考:http://zgod.pixnet.net/blog [初建置的中文環境]

Ubuntu 12.04 Server 無法使用中文輸入法

使用中文輸入法有很大的方便性,直接標出生活慣用的文字,易懂、易讀。

上個月,因為兩部使用Ubuntu Desktop 安裝的伺服器,由於由7.04升級到12.04跑起來總有些功能不見了,因此升起重新安裝的念頭。

即是重新來過,也總想就直接安裝Server版本,用以降低使用資源,因為是架在Hyper-V上,資源能省則省,可也把檔案傳輸與網站伺服器並在一起,反正多給些Memory就是了。

使用Ubuntu來安裝Server版本,第一次嚐試,就算是學習,幾次失敗也就比較沒有挫折感,但對於試了好多方法,都無法安裝中文輸入法,打從心裡就起了毛球。

試試Google吧,卻發現Ubuntu論壇有篇文章,版主直接表明:最後放棄(安裝中文輸入)了,而另一篇文章明白地說明方法。

既然已有高手放棄,看來是件難以達成的工作,先照著方法去做吧。

我的烏托邦 Ubuntu

玩過 Fedora 2.0 / 3.0,後來中斷了,也記不起來為什麼,不過,已沒那麼重要。

去年,開始試著 Ubuntu,耶~~有點成績。現在想想,除了自己累積的經驗以外,這套軟體容易上手也不無關係。

考慮到,身邊的同事,使用電腦,不出微軟的 Office ,要說服使用Open-Office得花點功夫,所以從 Server 著手。

引發使用 Linux,也是因為公司連放6天假(到泰國清邁旅遊),結果網站伺服器被攻擊。翻閱紀錄,2007.7.24 PM15:35,Device: ASUS P4B533VM M/B、P4 2.00Ghz CPU、512MB DRam。

在DOS紮下的基礎,並沒有助益,選擇 Server 版本是第一步錯誤的嚐試。還好 借助 http://www.ubuntu-tw.org 上面的協助,利用 apt-get install ubuntu-desktop 的命令,讓它順利地轉換成圖形介面,接著,照書一步一步往前,完成第一部網站伺服器。

由 Ubuntu 7.04 升級到 7.10,嚐到苦頭。沒有詳細收集升級要領,產生的錯誤,差點前功盡棄。摸索了很長時間,最後將它救回,頭髮白了不少。

也不是那麼順利的,在 Ubuntu 之前,用了 Slackware ,指令式的作業,讓時間白白花了不少。聽說 Slackware 很穩,但是,台灣的參考資料不易取得。徵詢網友,都是很久以前取得的(他是這麼說的),英文文件沒想去嚐試。

第二部 Ubuntu Server 就比較順利,今年一月九日安裝的。Device: Aopen AK-72 、AMD Athlon(0.18) 700MHz M/B、256Mb DRam。雖說比較順利,其中也出了狀況,安裝時,一直出現安裝的 CD 資料抓不到,重複燒錄了幾片CD,再換過 CD ROM,就沒想到 DRam 的問題。原來 DRam的插排是 256+128,拿掉128只剩 256MB 問題解決了。直接Install Ubuntu 7.10。