1. 程式人生 > >ubuntu 14.04 搭建vsftpd

ubuntu 14.04 搭建vsftpd

什麼是vsftpd?

vsftpd 的名字代表”very secure FTP daemon”, 安全是它的開發者 Chris Evans 考慮的首要問題之一。在這個 FTP 伺服器設計開發的最開始的時候,高安全性就是一個目標。
而如果你不知道什麼是FTP,那麼可以百度

本文目的

在ubuntu 14.04上搭建一個ftp server,同時設定幾個賬戶,使得該賬戶只能訪問伺服器指定目錄下的內容,擁有下載的權利,但是無法修改server上的檔案內容。

步驟

1.安裝vsftpd

sudo apt-get update 
sudo apt-get install vsftpd

2.啟動,關閉vsftpd

sudo service vsftpd status//檢視vsftpd狀態
sudo service vsftpd start//啟動vsftpd
sudo service vsftpd stop//關閉vsftpd
sudo service vsftpd restart//重新啟動vsftpd

上面幾條命令是讓你確保vsftpd程序已經啟動,有的時候啟動失敗可能是埠21被佔據,可以利用如下命令檢視佔據21埠的程序。

sudo netstat -naplt |grep 21
//執行結果如下則正常
tcp  0  0 0.0.0.0:21    0.0.0.0:*    LISTEN      2717
/vsftpd

3.配置/etc/vsftpd.conf檔案

#如果設定為YES,則vsftpd將以獨立模式執行,由vsftpd自己監聽和處理IPv4埠的連線請求
listen=YES
#不允許匿名訪問,匿名訪問者的使用者名稱和密碼均為ftp
anonymous_enable=NO
#允許本地使用者(即linux系統中的使用者帳號)登入FTP伺服器
local_enable=YES
#允許本地使用者對FTP伺服器檔案具有寫許可權
write_enable=NO
#不允許匿名使用者上傳檔案
anon_upload_enable=NO
#不允許匿名使用者新建資料夾
anon_mkdir_write_enable=NO
# 是否啟用目錄歡迎資訊功能
# 當用戶用CMD模式首次訪問伺服器上某個目錄時,FTP伺服器將顯示歡迎資訊 # 預設情況下,歡迎資訊是通過該目錄下的.message檔案獲得的 # 此檔案儲存自定義的歡迎資訊,由使用者自己建立 dirmessage_enable=YES #使用當地本機時間 use_localtime=YES #讓系統自動維護上傳和下載的日誌檔案 xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log #登入歡迎資訊 ftpd_banner=Welcome to work9. #所有使用者均不允許自由訪問其他目錄 chroot_local_user=YES #這兩句配套使用,存在特殊使用者可以訪問伺服器其他目錄 ,使用者名稱存放在/etc/vsftpd/chroot_list中 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list #指定使用者登入伺服器後所在目錄 #注意需要將該目錄的許可權修改為555,即sudo chmod 555 ./ local_root=/home/work9/文件/work9 secure_chroot_dir=/var/run/vsftpd/empty rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #允許虛擬使用者訪問 guest_enable=YES #指定虛擬使用者對應的伺服器本地系統使用者名稱 guest_username=virtual #虛擬使用者配置資料夾 user_config_dir=/etc/vsftpd/vsftpd_user_conf #虛擬使用者資料庫 pam_service_name=/etc/pam.d/vsftpd.vu

以上就是我的配置檔案了。給個建議,先對原始的配置檔案進行備份,比如:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bake

然後最好是按照上面的一個一個新增,測試vsftpd是否執行正常,否則
不是很容易發現問題在哪裡。

4.建立虛擬使用者資料庫

//下載一個數據庫
sudo apt-get install db5.1-util
//生成一個使用者和密碼的檔案,奇數行是使用者名稱,偶數行密碼
sudo vim login.txt
//生成資料夾
sudo mkdir /etc/vsftpd
//chroot_list裡存放這可以訪問伺服器中其他目錄的使用者名稱
sudo vim /etc/vsftpd/chroot_list
//使用db_load命令生成口令庫檔案
sudo db5.1_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
//建立虛擬使用者訪問所需要的目錄並且設定相應的訪問許可權,這裡增加了一個使用者名稱"virtual"的本地賬戶,因此在配置檔案/etc/vsftpd.conf中是"guest_username=virtual"
sudo mkdir /home/ftp
sudo useradd -d /home/ftp/ virtual
sudo chmod 700 /home/ftp/
//配置PAM檔案,新建/etc/pam.d/vsftpd.vu
sudo vim /etc/pam.d/vsftpd.vu
//增加以下兩行內容
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login

5.每次修改/etc/vsftpd.conf檔案後需要重新啟動,方能生效。