使用pure-ftpd搭建ftp服務器(簡單實現被動模式)

開始之前,實名吐槽VSFTPD,神坑!!!爲了活得久一點,不要用!!!

由於數據交換隻支持FTP,開始使用的sftp不能使用,於是採用vsfptd來搭建ftp服務器,結果,不幸的事發生了,這也是爲啥凌晨兩點還在寫博客的原因了。沒有比較就沒有傷害,pure-ftpd安裝簡單,配置簡單,更容易排查問題

下載安裝

apt-get install pure-ftpd

配置

pure-ftpd的配置比較特殊,不是用配置文件而是用命令行參數,這種方式比較怪異。不過pure-ftpd的作者還是爲偏好配置文件的用戶提供了wrapper,可以man一下pure-ftpd-wrapper. 在Debian/Ubuntu下的wrapper比較怪,是在/etc/pure-ftpd/conf下以設置項作爲文件名,該項的設置值作爲文件的內容,如需要設置ClientCharset=gbk,就建立一個名爲“ ClientCharset ”的文件,內容爲“GBK”.

一般使用如下參數即可:

ChrootEveryone                yes #限制所有用戶在其主目錄中
BrokenClientsCompatibility   no #兼容ie等比較非正規化的ftp客戶端
MaxClientsNumber          50 #服務器總共允許同時連接的最大用戶數
Daemonize                        yes #作爲守護(daemon)進程運行
MaxClientsPerIP               8 #同一IP允許同時連接的用戶數
VerboseLog                       no #如果你要記錄所有的客戶命令,設置這個指令爲yes
DisplayDotFiles                 yes #即使客戶端沒有發送‘-a’選項也列出隱藏文件
AnonymousOnly                no #不允許認證用戶,僅作爲一個公共的匿名FTP
NoAnonymous                  yes #不允許匿名連接,僅允許認證用戶使用
SyslogFacility                    auth #日誌
DontResolve                       yes #在日誌文件中不解析主機名
MaxIdleTime                       15 #客戶端允許的最大空閒時間(分鐘)
PureDB                                /etc/pureftpd.pdb #PureDB 用戶數據庫
LimitRecursion                   10000 8 #ls命令的遞歸限制。第一個參數給出文件顯示的最大數目。第二個參數給出最大的子目錄深度
AnonymousCanCreateDirs       no #允許匿名用戶創建新目錄
MaxLoad                            4 #如果系統的loaded超過下面的值,匿名用戶會被禁止下載
PassivePortRange            30000 50000   這兩個參數開啓的話,將會使FTP工作在被動模式,30000 50000分別是客戶端連接服務端後服務器在被動模式下返回給客戶端的可用端口
ForcePassiveIP                 172.30.51.200   被動模式傳輸的IP,寫自己的公網IP即可,最好進行配置,公有云可能會返回給客戶端交換機的IP
tiWarez                              yes #不接受所有者爲ftp的文件的下載
MinUID                               100 #認證用戶允許登陸的最小組ID(UID),此處要注意創建用戶時的UID
AllowUserFXP                    no #僅允許認證用戶進行FXP傳輸
AllowAnonymousFXP        no #對匿名用戶和非匿名用戶允許進行匿名FXP傳輸
ProhibitDotFilesWrite        no #禁止用戶刪除和寫 點文件(文件名以.開頭的文件)
ProhibitDotFilesRead         no #禁止讀點文件
AutoRename                       no   #永不復蓋文件。當上傳的文件名和服務器中文件同名,將自動重命名
AnonymousCantUpload     no #不允許匿名用戶上傳文件(no = 允許上傳)
MaxDiskUsage                   99 #保護日誌文件。當所在磁盤分區使用超過百分之x時,將不再接受新的上傳
CreateHomeDir                  yes  #當虛擬用戶第一次登錄時,自動創建homedir

添加用戶

-- 創建系統用戶及ftp主目錄
# groupadd -g 7777 pure-ftpd  	# pure-ftpd爲組名 可自定義
# useradd -g 7777 -u 7777 -d /var/empty pure-ftpd   #兩個7777分別是UID和GID,注意上面配置的MinUID
# mkdir /ftp/
# chown pure-ftpd:pure-ftpd /ftp   # 配置文件夾的權限
-- 創建ftp虛擬用戶,並通過uid和gid將其與系統用戶相關聯
#  pure-pw useradd xixi -u7777 -g7777 -d /ftp  #兩個7777分別是UID和GID,注意上面配置的MinUID
-- 創建用戶數據庫,每更改一次用戶,即添加或刪除,都需執行此命令來更新用戶數據庫
# pure-pw mkdb

# pure-pw list                                      		 #是看用戶列表的
# pure-pw show tony                                  #查看tony這個用戶的詳細信息
# pure-pw passwd tony -m                        #修改tony的密碼
# pure-pw usermod                                    #修改用戶

#  重中之重  一定要創建軟連接  否則提示用戶驗證失敗
#  ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb

重啓服務

service pure-ftpd restart

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章