Ubantu操作系統下搭建FTP服務器
1,安裝
安裝ftp服務器vsftpd
apt-get install vsftpd
安裝 存儲虛擬用戶的賬戶密碼 的數據庫
apt-get install db4.8-util
2,配置
創建虛擬賬戶主目錄
- 新建文件夾 /home/vsftpd/cmz_ftp_home
- 新建文件夾 /home/vsftpd/chyq_ftp_home
- 新建文件夾 /home/vsftpd/tony_ftp_home
- 新建文件夾 /home/vsftpd/zengjf_ftp_home
命令如下:
cd /home/
mkdir vsftpd
cd vsftpd
mkdir cmz_ftp_home chyq_ftp_home tony_ftp_home zengjf_ftp_home
創建虛擬用戶數據庫
生成數據庫
- 在home目錄下新建loguser.txt,並配置用戶名密碼
命令如下:
cd /home
sudo touch /home/loguser.txt
sudo gedit /home/loguser.txt
在loguser.txt編輯如下內容:
cmz -----用戶名
cmz -----密碼
chyq -----用戶名
chyq -----密碼
tony -----用戶名
tony -----密碼
zengjf -----用戶名
zengjf -----密碼
- 通過命令把loguser.txt 生成用來保存虛擬用戶的數據庫
命令如下:
sudo db4.8_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db
最後設置一下數據庫文件的訪問權限
sudo chmod 600 /etc/vsftpd_login.db
配置PAM文件,把數據庫關聯到vsftpd上
1,我們上一步建立的數據庫 vsftpd_login 在此處被使用
命令如下:
cd /etc/pam.d
sudo touch vsftpd.vu
gedit vsftpd.vu
編輯文本,如下:
auth sufficient pam_userdb.so db=/etc/vsftpd_login
account sufficient pam_userdb.so db=/etc/vsftpd_login
2,我們建立的虛擬用戶將採用PAM進行驗證,這是通過/etc/vsftpd.conf文件中的 語句pam_service_name=vsftpd.vu來啓用的,稍後你將發現。
爲虛擬用戶創建本地系統用戶
新建一個系統用戶vsftpd,用戶家目錄爲/home/vsftpd, 用戶登錄終端設爲/bin/false(即使之不能登錄系統)
添加系統用戶vsftpd 權限根目錄/home/vsftpd 並不能登錄系統
sudo useradd vsftpd -d /home/vsftpd -s /bin/false
設置/home/vsftpd 的owner vsftpd:vsftpd(user:group)
只有這個用戶和組內用戶能看到這個文件
sudo chown vsftpd:vsftpd /home/vsftpd
文件配置
配置vsftpd權限
進入/etc/vsftpd.conf,一般要確保含有以下設置:
listen=YES
#匿名登錄NO
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
#虛擬用戶登錄YES
guest_enable=YES
#虛擬用戶的本地用戶名vsftpd
guest_username=vsftpd
#虛擬用戶的權限配置文件
user_config_dir=/etc/vsftpd_user_conf
#虛擬用戶的關聯數據庫的配置文件
pam_service_name=vsftpd.vu
#本地登錄YES
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
配置虛擬用戶權限
如果沒有/etc/vsftpd_user_conf,創建vsftpd_user_conf目錄
sudo mkdir /etc/vsftpd_user_conf
創建虛擬用戶權限配置文件
cd /etc/vsftpd_user_conf
sudo touch cmz chyq tony zengjf
cmz 內容
local_root=/home/vsftpd/cmz
chyq 內容
local_root=/home/vsftpd/chyq
tony 內容
local_root=/home/vsftpd/tony
zengjf 內容
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/zengjf
重啓服務器
service vsftpd restart