centos安裝使用vsftpd服務器

1 安裝

現查看一下系統版本,確定適用的vsftpd版本

$ cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)

下載rpm包,然后安裝

$ sudo su -
# rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm

默認安裝位置

# which vsftpd
/usr/sbin/vsftpd

# vsftpd -v
vsftpd: version 3.0.2

2 配置vsftpd

由于采用虛擬用戶登錄ftp server,先配置虛擬用戶
/etc/vsftpd目錄下創建一個vusers文件,記錄ftp的虛擬用戶名和密碼,單行是用戶名,雙行是密碼。文件名可以任意指定。我在文件中創建了一個虛擬用戶ftptest,密碼是ftptest123,如下所示:

# vim /etc/vsftpd/vusers
ftptest
ftptest123

然后使用db_load命令生成相應的認證數據文件,同樣數據文件的名字可以任意指定,我這里把文件名命名為vusers.db

# db_load -T -t hash -f /etc/vsftpd/vusers  /etc/vsftpd/vusers.db

然后配置一個vsftpd的pam文件,因為ftp虛擬用戶的權限認證是委托給pam模塊進行認證的,這個文件指定pam使用上面生成的vusers.db數據庫進行權限認證

# vim /etc/pam.d/vsftpd

auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

上面pam_userdb.so是pam具體執行認證的模塊,db指定我們上面生成的vusers.db文件,注意,由于pam會自動在db文件后面添加.db后綴,所以需要填寫.db后綴

編輯vsftpd.conf配置文件

# vim /etc/vsftpd/vsftpd.conf

##########  全局配置  ##########
listen=YES
connect_from_port_20=YES
#pasv 傳輸方式端口上下限
pasv_min_port=61000
pasv_max_port=62000

write_enable=YES
local_umask=022
dirmessage_enable=NO

userlist_enable=YES
tcp_wrappers=YES



#設置禁止用戶跳出主目錄
chroot_local_user=NO
#設置允許特殊用戶跳出主目錄
chroot_list_enable=YES
#設置特殊用戶配置文件
chroot_list_file=/etc/vsftpd/chroot_list

##########  日志   ##########
xferlog_enable=YES
xferlog_std_format=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
log_ftp_protocol=YES

##########  匿名用戶配置  ##########
#禁止匿名用戶訪問
anonymous_enable=NO
#指定匿名用戶訪問根目錄
anon_root=/home/ftp/ftptest
#匿名用戶允許上傳文件
anon_upload_enable=NO
#匿名用戶不允許創建文件夾
anon_mkdir_write_enable=NO
#匿名用戶不允許刪除/更名文件/文件夾
anon_other_write_enable=NO
#匿名用戶代理系統用戶
ftp_username=ftp

##########  虛擬用戶配置  ##########
# 設置運行本地用戶登錄
local_enable=YES
# 開啟虛擬用戶登錄
guest_enable=YES

#指定pam 服務名稱, 和/etc/pam.d 目錄下的文件vsftpd 保持一致
pam_service_name=vsftpd
# 設置虛擬用戶代理系統用戶名
guest_username=ftp
# 設置默認登錄路徑
local_root=/home/ftp/ftptest
# 設置具體用戶配置文件目錄
user_config_dir=/etc/vsftpd/vusers_conf

還可以為每個虛擬用戶設定單獨的配置文件,該文件中的配置會覆蓋/etc/vsftpd/vsftpd.conf文件中的配置

# 虛擬用戶的配置文件統一放在vusers_conf目錄下
# mkdir -p /etc/vsftpd/vusers_conf

# 為虛擬用戶ftptest創建一個配置文件,文件名就是虛擬用戶的名字
# vim /etc/vsftpd/vusers_conf/ftptest

# 設定根目錄
local_root=/home/ftp/ftptest

# 設定權限,不擁有和代理系統用于同樣的權限
virtual_use_local_privs=YES

# 允許上傳文件
write_enable=YES

3 啟動

編輯vsftpd.service文件

# cat /usr/lib/systemd/system/vsftpd.service
[Unit]
Description=Vsftpd ftp daemon
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Restart=on-failure

[Install]
WantedBy=multi-user.target

啟動

# systemctl daemon-reload
# systemctl enable etcd.service
# systemctl start etcd.service

驗證正常啟動

# lsof -i :21
COMMAND   PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
vsftpd  23431 root    4u  IPv4 2474859639      0t0  TCP *:ftp (LISTEN)
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容