2010年12月23日 星期四

在 Ubuntu 下安裝 pureadmin 管理 pure-ftpd

以 Ubuntu Lucid 為例安裝 pureadmin 管理 pure-ftpd

安裝 pureadmin , 一併會安裝 pure-ftpd 等需要套件
sudo apt-get install pureadmin

安裝完後預設只會使用 PAM 認証也就是系統有的一般使用者。如果要使用虛擬的帳號,就必須進行下列設定。

1) 新增虛擬使用者所要對應的系統使用者(ftpuser)與其家目錄
sudo adduser --system --home /home/ftpuser --shell /dev/null --disabled-password  --disabled-login ftpuser

2) 新增虛擬使用者
sudo pure-pw useradd user01 -u ftpuser -d /home/ftpuser
如果要不同使用者有不同家目錄需在 -d 指定且新增其家目錄, 如
sudo mkdir /home/ftpuser/joe; sudo chown -R ftpuser /home/ftpuser/joe
sudo pure-pw useradd joe -u mis91 -d /home/ftpuser/joe
預設會新增在 /etc/pure-ftpd/pureftpd.passwd 中,或使用 pure-pw -f your.passwd.file 指定

3) 建立 db 並確認 /etc/pure-ftpd/conf/PureDB 中資料為 /etc/pure-ftpd/pureftpd.pdb
sudo pure-pw mkdb /etc/pure-ftpd/pureftpd.pdb -f /etc/pure-ftpd/pureftpd.passwd
加入 DB 認証模式至設定中
sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/45puredb

4) 確認幾項設定
* 確認 /etc/pure-ftpd/conf/UnixAuthentication 中指有字串 no
* 確認 /etc/pure-ftpd/conf/MinUID 中的數值比 ftpuser 的 UID 還小(如: adduser --system 的 UID 通常會預設值) , 不然虛擬帳號無法登入

5)重新啟動 pure-ftpd service
sudo /etc/init.d/pure-ftpd restart

其他常用到的幾個設定,檔案都需寫在 /etc/pure-ftpd/conf 下
* ) echo "yes" > ChrootEveryone (使用者被限制在家目錄下)
* ) echo "no" > PAMAuthentication (不使用 PAM 認証:一般用者無法用 pure-ftpd 登入)
*) echo ",9188" > Bind (設定 ip/port )
* ) echo "yes" > KeepAllFiles (這個應該是不允許用戶端刪除文件)
* ) echo "yes" >DontResolve (不解釋主機名,可以加快登錄速度)

設定允許 symbolic links :
1) 編輯 /etc/default/pure-ftpd-common
將 VIRTUALCHROOT=false 改為 VIRTUALCHROOT=true
2) Restart service

設定允許 匿名登入
1) echo "no" > /etc/pure-ftpd/conf/NoAnonymous
2) sudo adduser --system --home /home/ftpuser --shell /sbin/nologin --disabled-password  --disabled-login  ftp
3) Restart service

設定 Passive mode
1) echo "29799 29899" > /etc/pure-ftpd/conf/PassivePortRange

 設定最多 clients 數量
1) echo "50" > /etc/pure-ftpd/conf/MaxClientsNumber

設定 Pureftp + TLS (先確認已安裝 openssl)
1) echo "1" > /etc/pure-ftpd/conf/TLS
("2" : If you want to accept TLS sessions only (no FTP))
("0" : To not allow TLS at all (only FTP), either delete /etc/pure-ftpd/conf/TLS)
2) Creating The SSL Certificate For TLS
sudo openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
sudo chmod 600 /etc/ssl/private/pure-ftpd.pem
3) Restart service

Reference:
http://ubuntuforums.org/showthread.php?t=91052
http://www.ivankristianto.com/os/ubuntu/howto-install-ftp-server-with-user-management-in-ubuntu/1181/
http://wiki.ubuntu.org.cn/index.php?title=Pure-ftpd%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE&variant=zh-tw

Ceasar's Photo

www.flickr.com