CentOS7.8安裝配置vsftpd


采用vsftpd在CentOS7上搭建FTP服務器。

1、安裝vsftpd

yum -y install vsftpd

2、設置開機啟動

systemctl enable vsftpd

3、啟動ftp服務

systemctl start vsftpd.service

4、打開防火牆,開放21端口

firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

5、添加ftp用戶

useradd -g root -d /var/www/html -s /sbin/nologin ftpuser

注:表示新增一個ftpuser(用戶名),且指定上傳目錄在/var/www/html/下

如果后期想變更此用戶的上傳目錄到(/home/ftpuser/),請使用下面的命令:

usermod -d /home/ftpuser/ ftpuser

6、設置用戶密碼

passwd ftpuser

7、配置selinux 允許ftp訪問home和外網訪問

setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on

8、設置權限

chown -R ftpuser:root /var/www/html/
#配合allow_writeable_chroot=YES使用,否則報503錯誤
chmod o-w /var/www/html/

9、修改vsftp配置文件,禁用匿名登錄 

#vi /etc/vsftpd/vsftpd.conf
 
#改為NO 就是禁止匿名用戶登錄
anonymous_enable=NO
#允許本地用戶訪問(/etc/passwd中的用戶) 
local_enable=YES
#允許寫入權限,包括修改,刪除
write_enable=YES
#禁止跳出當前用戶權限目錄
chroot_local_user=YES

ascii_upload_enable=YES
ascii_download_enable=YES
#末尾添加 不加會報5XX錯誤
allow_writeable_chroot=YES
#當chroot_local_user=NO時,chroot_list里面配置的用戶不可以跳出家目錄,當chroot_local_user=YES時,chroot_list里面配置的用戶可以跳出家目錄
chroot_list_file=/etc/vsftpd/chroot_list

10、被動模式端口

很多客戶端會通過被動模式連接FTP,涉及到映射的時候,數據端口是變化的。可給設置一個固定范圍

#開啟被動模式
pasv_enable=YES
pasv_min_port=64500
pasv_max_port=64999

 

虛擬用戶模式配置:

虛擬用戶的用戶認證是通過pam方式去認證的,pam文件里面指定了認證的db文件,db文件又是通過明文用戶名和密碼文件生成而來,首先要指定pam文件,這個在 /etc/vsftpd/vsftpd.conf 配置文件是通過 pam_service_name=vsftpd 配置指定的,其位置是 /etc/pam.d/vsftpd,編輯該文件,把auth兩行注釋掉,加上以下兩行(32位lib64改為lib): 

1、密碼策略

#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

2、配置文件vsftpd.conf說明

#以下這些是關於Vsftpd虛擬用戶支持的重要配置項目。默認Vsftpd.conf中不包含這些設定項目,需要自己手動添加配置
 
#用戶家目錄可寫,默認是只讀的
allow_writeable_chroot=YES
#設定啟用虛擬用戶功能。
guest_enable=YES
#指定虛擬用戶的宿主用戶。
guest_username=testftp
#設定虛擬用戶的權限符合他們的宿主用戶。
virtual_use_local_privs=YES
#設定虛擬用戶個人vsftp的配置文件存放路徑。也就是說,這個被指定的目錄里,將存放每個vsftp虛擬用戶個性的配置文件,一個需要注意的地方就是這些配置文件名必須和虛擬用戶名相同。
user_config_dir=/etc/vsftpd/vconf
 
#如果配置了以下配置,則還需要在user_list里面添加指定的虛擬用戶,如ftptest,不然不能登錄,如圖
#NO表示所有用戶均不可以登錄ftp,YES表示所有用戶均能訪問ftp,默認是YES
userlist_deny=NO
#當userlist_deny=NO時,user_list是白名單,當userlist_deny=YES時,user_list是黑名單
userlist_file=/etc/vsftpd/user_list

3、創建用戶

目錄新建virtusers文件,用於存放虛擬用戶及密碼。

touch /etc/vsftpd/virtusers
注:從第一行開始,奇數行為用戶名,偶數行為密碼

user1
123456
user2
123456
user3
123456
#留一個空行,否則報錯,可以驗證一下

4、生成數據文件

cd /etc/vsftpd/
db_load -T -t hash -f virtusers virtusers.db
#修改virtusers.db的用戶及組為宿主的用戶及組
chown testftp:testftp virtusers.db
#修改virtusers.db的權限,敏感文件只允許宿主讀寫
chmod 600 virtusers.db

5、建立配置文件

根據vsftpd.conf文件中user_config_dir=/etc/vsftpd/vconf的配置,在/etc/vsftpd/目錄創建vconf目錄,目錄里面存放各個虛擬用戶單獨的配置文件。

#創建vconf目錄
mkdir /etc/vsftpd/vconf
#創建虛擬用戶單獨的配置文件,ftptest為virtusers中配置的用戶名
touch /etc/vsftpd/vconf/ftptest

配置示例:

#指定此虛擬用戶的家目錄
local_root=/home/testftp/ftp-file
#設定不允許匿名用戶訪問
anonymous_enable=NO
#設定允許寫操作
write_enable=YES
#設定上傳文件權限掩碼
local_umask=022
#設定不允許匿名用戶上傳
anon_upload_enable=NO
#設定不允許匿名用戶建立目錄
anon_mkdir_write_enable=NO
#設定空閑連接超時時間
idle_session_timeout=600
#設定單次連續傳輸最大時間
data_connection_timeout=120
#設定並發客戶端訪問個數
max_clients=10
#設定單個客戶端的最大線程數,這個配置主要來照顧Flashget、迅雷等多線程下載軟件
max_per_ip=5
#設定該用戶的最大傳輸速率,單位b/s
local_max_rate=1024000

 

重啟FTP服務

systemctl restart vsftpd

systemctl stop vsftpd
systemctl start vsftpd

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM