FTP伺服器——使用vsftpd搭建

chunyang315發表於2018-04-27

在centos中,自帶vfstpd軟體包。先介紹這一種安裝方式

1 . 安裝軟體包

yum install -y vsftpd 

2 . 建立使用者,因為該軟體可以使用系統級別的使用者,所以要設定為不能登入。建立與虛擬賬號相關聯的系統賬號

useradd -s /sbin/nologin virftp

3 . 建立與虛擬賬戶相關的檔案 vi /etc/vsftpd/vsftpd_login 在裡面寫入使用者名稱zchuny(奇數行)、密碼123456(偶數行)

4 . 修該許可權,提示安全性

chmod 600 /etc/vsftpd/vsftpd_login

5 . vsftpd使用的密碼檔案不是明文的,需要生成對應的庫檔案

[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

6 . 建立相關的目錄


mkdir /etc/vsftpd/vsftpd_user_conf

7 . cd 到新建立的目錄中去

cd /etc/vsftpd/vsftpd_user_conf

8 . 建立和使用者對應的配置檔案 vim zchuny

#定義虛擬使用者家目錄
local_root=/home/virftp/zchuny 
#是否允許匿名賬號登入  
anonymous_enable=NO  
#允許可寫
write_enable=YES 
local_umask=022  
# 不允許匿名賬號上傳檔案 
anon_upload_enable=NO  
#不允許匿名賬號建立目錄並可寫
anon_mkdir_write_enable=NO
#超時時間,非上傳或者下載狀態自動斷開的時間600秒
idle_session_timeout=600
#資料傳輸的超時時間為300秒
data_connection_timeout=300
#最大客戶端連線數為10
max_clients=10

9 . 建立虛擬使用者的家目錄

chown -R virftp:virftp /home/virftp
mkdir /home/virftp/zchuny

10 建立一個檔案,在登入的時候就可以看到

touch /home/virftp/zchuny/zcy.txt   

11 .定義密碼檔案的位置,在/etc/pam.d/vsftpd(認證檔案)最上面加入這2行

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

12 . 編輯vsftpd的主配置檔案/etc/vsftpd/vsftpd.conf,改動幾個地方,修改為如下這樣

anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO

在檔案末尾增加以下內容

chroot_local_user=YES
guest_enable=YES
#guest_username這行表示虛擬使用者對映到virftp這個系統使用者
guest_username=virftp
#virtual這行的作用是告訴系統現在使用的是虛擬使用者
virtual_use_local_privs=YES
#user這行用來定義虛擬使用者的配置檔案所在路徑
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES

13 . 啟動服務

啟動 systemctl start vsftpd

檢視程式  ps aux |grep vsftpd
root      17890  0.0  0.0  53212   580 ?        Ss   01:22   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      17892  0.0  0.0 112676   980 pts/0    S+   01:22   0:00 grep --color=auto vsftpd

檢視埠
netstat -lntp |grep vsftpd

tcp6       0      0 :::21                   :::*                    LISTEN      17890/vsftpd        

14 . 測試,安裝lftp軟體包來進行測試

yum  install -y lftp

執行測試

root@localhost vsftpd_user_conf]# lftp zchuny@127.0.0.1 
口令: 
lftp zchuny@127.0.0.1:~> ls         
-rw-r--r--    1 0        0               0 Apr 26 17:04 zcy.txt
lftp zchuny@127.0.0.1:/> 

這裡可能出現比如bad bool value in config file for: write_enable這樣的錯誤提示,大多是因為 vi zchuny(使用者配置檔案)或者時/etc/vsftpd/vsftpd.conf中修改或是增加內容,不小心多按了個空格,那麼就會出現這樣的錯誤。

相關文章