Posted in Linux

FTP + Pure-FTPd

FTP + Pure-FTPd Posted on 2006 年 11 月 14 日1 Comment

[1]. 安裝套件 install pure-ftpd.xx.rpm

[2]. 啟動 /etc/init.d/pure-ftpd start

[3]. 測試 telnet localhost 21

220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
220-You are user number 2 of 50 allowed.
220-Local time is now 15:03. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.

[4]. pure-ftpd設定檔 vi /etc/pure-ftpd/pure-ftpd.conf

# 不允許匿名
NoAnonymous        yes   

# 使用unix下的/etc/passwd來認證,如果註解的話,就會使用pure-ftpd專用的db來認證
UnixAuthentication     yes

[5]. 考慮用什麼方式,pure-ftpd允許使用 symlinks,假如你在/home/cross家目錄利用,比如 ln -s /var/www/html/ ./

此時就要注意權限問題
方式一,在apache群組加入cross
方式二(較危險),chmod 777 /var/www/html/

但是呢以上,後續的會很麻煩,所以使用virtual user吧

建立virtual user
建立虛擬使用者帳號之前,先要有一個專用的系統帳號,比如要上傳網頁檔案,這時就會關系到apache使用者,它的系統UID為48、GID為48,使用者才能有權限存取。
且注意pure-ftpd.conf設定檔裡的一項目,必需設定MinUID最小多少之後的UID,才可被認證

# Minimum UID for an authenticated user to log in.
MinUID 14

新增帳號
pure-pw useradd wow -u 48 -g 48 -d /var/ftp/wow -m

wow為虛擬帳號
系統本身就有apache這user,這邊是當作虛擬User的群組
-m參數,立即更新pureftpd.pdb檔
-d參數,chroot user
-D參數,dont chroot user

註解一
    當新增虛擬使用者時,預設會在/etc/下產生pureftpd.passwd
    pureftpd.passwd  為儲存virtual user帳號密碼的檔案

註解二
    每新增一虛擬使用者時,就要執行一次pure-pw mkdb 產生pure-ftpd專用的db
    但是好像會自已更新pureftpd.pdb,當pure-pw useradd時
    會去讀取/etc/pureftpd.passwd 輸出到/etc/pure-ftpd/pureftpd.pdb

當使用者建立之後,下指令建立 pure-ftpd的 DB,如果沒有下 -m的話
pure-pw mkdb /etc/pure-ftpd/pureftpd.pdb

設定讀取 db檔
vi /etc/pure-ftpd/pure-ftpd.conf

PureDB      /etc/pure-ftpd/pureftpd.pdb

註解,
如果只是執行 pure-pw mkdb
會去讀取/etc/pureftpd.passwd 輸出到/etc/pureftpd.pdb
所以要注意到pure-ftpd.conf設定檔裡的pureDB設定,與路徑的正確位確                                       

另一執行方式
pure-pw mkdb /path/pureftpd.pdb -f /path/pureftpd.passwd

說明
秀出 wow虛擬使用者的資訊
pure-pw show wow

列出虛擬使用者清單
pure-pw list

限制頻寬參數
-t -> 下載50k
-T -> 上傳10k

範例
pure-pw usermod wow -t 50 -T 10

刪除virtual user,但家目錄要手動刪除
pure-pw userdel wow

變更密碼
pure-pw passwd wow

轉換系統帳號給pure-ftpd
pure-pwconvert >> /etc/pureftpd.passwd

[Q1.] 假如login時,出現了530 Authentication failed
[A1.] 看看是不是MinUID的原因

[Q2.] 如果在設定檔同時使用了UnixAuthentication yes 與 PureDB /etc/pureftpd.pdb 認證
[A2.] pure-ftpd會以PureDB /etc/pureftpd.pdb為優先認證

TLS/SSL連線
[1].
openssl req -x509 -nodes -newkey rsa:1024 -keyout pure-ftpd.pem -out pure-ftpd.pem

[2].
cp pure-ftpd.pem /etc/pki/pure-ftpd/

[3].
vi /etc/pure-ftpd/pure-ftpd.conf

TLS        1

rpm套件預設去存取/etc/pki/pure-ftpd底下的pure-ftpd.pem
tarball重編時,指定"–with-certfile="

[4]. 用 FlashFXP測式,SSL項目選擇TLS認證

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *