源碼安裝Proftpd與配置虛擬用戶
源碼安裝Proftpd, 并配置虛擬用戶:ProFTPD設計目標是實現一個安全且易于設定的FTP Server。目前Unix或類Unix平臺上 FTP Server十分有限,最常使用的恐怕就是wu-ftpd了。雖然wu-ftpd有著極佳的效能同時也是一套很好的軟件,然而它卻欠缺了許多Win32平臺上FTP Server的一些特色,同時wu-ftpd過去也有不少的安全漏洞陸續被發現。ProFTPD的原創者本身就曾經花非常多的時間尋找wu-ftpd 的漏洞加以改進并且增加許多功能。然而十分不幸的是,他很快地發現顯然wu-ftpd需要全部重新的改寫才能補足欠缺的設定能力以及缺乏的一些功能。ProFTPD不是從其它FTP Server的既有原始碼修改而產生的,相反的,它是完全獨立而完整、重新改寫的FTP Server。
一 . 實驗環境 : Red Hat Enterprise Linux 5.3
二 . 實驗目的 : 配置 proftp 虛擬用戶,為不同的虛擬用戶分配不同的權限
三 . 所需軟件 : proftpd-1.3.0.tar.bz2
四 . 用戶權限 : 以四個用戶為例
260804162: 上傳
260804163: 下載
實驗步驟 :
1 、檢查安裝 proftpd:
- #tar –jxvf proftpd-1.3.0.tar.bz2
- #cd proftpd-1.3.0
- #./configure --prefix=/proftpd //--prefix 為安裝路徑 , 其他參數可參考 ”./configure --help”
- #make
- #make install
#p#
2. 修改配置文件 , 在 /proftpd/etc/proftpd.conf 中加入
- DenyAll
- AllowUser 260804162
- DenyAll
- AllowUser 260804163
- RequireValidShell off
- AuthOrder mod_auth_file.c
- AuthUserFile /proftpd/ passwd
- AuthGroupFile /proftpd/group
- // 參數說明 :
- ----------------- à 1 、繼承性
- ------------------------- à 2 、優先級
- AllowUser u1 -------------------- à 3 、訪問控制的應用順序
- DenyAll
- AuthOrder mod_auth_pam.c* mod_auth_file.c // 啟用認證方式
- AuthUserFile /etc/proftpd/ftpd.passwd //ftp 用戶密碼文件
- AuthGroupFile /etc/proftpd/ftpd.group //ftp 用戶組文件
其中, Directory 指定用戶的文件夾 , Limit 分配了用戶對文件夾的權限 ,AuthOrder 指定了權限檢查的順序。這里只使用虛擬用戶。 AuthUserFile 和 AuthGroupFile 的文件格式看 passwd(5) 和 group(5) 。如果用戶名和組名與系統的重復,看 DirFakeUser 和 DirFakeGroup 。
#p#
3. 使用 ftpasswd 創建 passwd 和 group 文件 (/proftpd-1.3.0/contrib/ftpasswd)
- # ftpasswd --passwd --file= /proftpd/passwd --name=260804162 --uid=2001
- --home=/ftproot --shell=/bin/false
- # ftpasswd --passwd --file= /proftpd/passwd --name=260804163 --uid=2002
- --home=/ftproot --shell=/bin/false
- 創建了一個 260804162 和 260804163 用戶
- # ftpasswd --group --name=test --gid=2003
- 創建了一個 test 組
- # ftpasswd --group --name=test --gid=2003 --member=260804162 --member=260804163
把 260804162 和 260804163 加入 test 組
注腳 :
–passwd 指定建立一個新的虛擬用戶, –group 則建立一個虛擬組;
–file 指定存儲虛擬用戶的文件;
–name 指定此虛擬用戶的用戶名,密碼會在命令執行時要求輸入;
–uid 指定此虛擬用戶對應的系統用戶 UID ,此虛擬用戶將以此系統 UID 的身份讀寫文件
–home 指定此虛擬用戶的根目錄,就是其登陸 FTP 后的根目錄;
–shell 指定此虛擬用戶的 shell ,為了安全當然指定一個不可登陸的 shell 了。
#p#
4. 啟動 proftpd
- #/proftpd/sbin/proftpd –c /proftpd/etc/proftpd.conf
5. 常用全局設置:
DefaultRoot ~ # 限制每個 FTP 用戶在自己的目錄下,不可查看上一級目錄
AllowRetrieveRestart on # 下載時,允許斷點續傳
AllowStoreRestart on # 上傳時,允許斷點續傳
ServerIdent off # 屏蔽服務器版本信息
TransferRate STOR RETR 速度( Kbytes/s ) user 使用者 # 設定用戶傳輸速率
MaxHostsPerUser 1 # 每個帳戶最多允許來源 ip 為 1 個 , 對防止 ftp 帳號還是比較有用的。
MaxClientsPerUser 1 # 每個帳戶在每個客戶端最多可以同時登陸 1 次 , 可以防止多線程軟件下載對服務器的 破壞。
MaxClientsPerHost 1 # 同一個客戶端只能最多 1 個帳號可以登陸
WtmpLog on # 是否要把 ftp 記錄在日志中,如果不想可以設置成 off 屏蔽掉 log 日志。
TimeoutIdle 600 # 客戶端 idle 時間設置,默認就是 600 秒
DisplayLogin welcome.msg # 設置 ftp 登陸歡迎信息文件
RootLogin on # 允許 root 用戶登錄,默認是不允許的,安全起見不推薦此選項。
#p#
6.proftpd 中的 limit 的參數說明
CMD : Change Working Directory 改變目錄
MKD : MaKe Directory 建立目錄的權限
RNFR : ReName FRom 更改目錄名的權限
DELE : DELEte 刪除文件的權限
RMD : ReMove Directory 刪除目錄的權限
RETR : RETRieve 從服務端下載到客戶端的權限
STOR : STORe 從客戶端上傳到服務端的權限
READ :可讀的權限,不包括列目錄的權限,相當于 RETR , STAT 等
WRITE :寫文件或者目錄的權限,包括 MKD 和 RMD
DIRS :是否允許列目錄,相當于 LIST , NLST 等權限,還是比較實用的
ALL :所有權限
LOGIN :是否允許登陸的權限
============================================================
#p#
7.limit 中對用戶和群組的控制
AllowUser 針對某個用戶允許的 Limit
DenyUser 針對某個用戶禁止的 Limit
AllowGroup 針對某個用戶組允許的 Limit
DenyGroup 針對某個用戶組禁止的 Limit
AllowAll 針對所有用戶組允許的 Limit
DenyAll 針對所有用戶禁止的 Limit
Deny from 禁止 IP 來源
Deny all 允許 IP 來源
【編輯推薦】
- ProFTPD.conf的詳細配置方法
- Proftpd配置文件結構分析
- ProFTP下的參數說明
- Porftpd.conf的配置格式
- lampp的ProFTPd下新增FTP用戶的方法
- Debian下配置ProFTPd服務器
- Centos下ProFTPD配置FTP服務器