1. 程式人生 > >Linux搭建FTP服務,實現只上傳,不下載

Linux搭建FTP服務,實現只上傳,不下載

筆者最近收到一個需求,搭建Linux上的Ftp服務,但是隻能上傳,不能下載,且使用者不能跳開Ftp,通過Sftp來獲得檔案。大致看了些網上分享。通過配置,完成這個“奇葩”需求。

  • 首先跳開Ftp,使用Sftp那麼可以通過設定虛擬賬戶來實現。
  • 其次Ftp上只上傳,不下載,那麼通過配置Ftp服務來實現。

作業系統Redhat6.8,安裝vsftp包。通過rpm命令:(這裡通過掛載了iso,進入包目錄)

  1. # rpm -ivh vsftpd-xxxxx

安裝db4

  1. # rpm -ivh db4-xxxxx

也可以通過Yum命令,道理是一樣的。


安裝完成後,首先配置vsftpd.conf.進入/etc/vsftpd

  1. # vim vsftpd.conf

這裡刪除了#註釋的內容,故可以在檔案末尾直接新增下列配置。

  1. anonymous_enable=NO
  2. local_enable=YES
  3. write_enable=YES
  4. local_umask=022
  5. dirmessage_enable=YES
  6. xferlog_enable=YES
  7. connect_from_port_20=YES
  8. chown_uploads=YES
  9. xferlog_std_format=YES
  10. download_enable=NO
  11. anonymous_enable=NO
  12. local_enable=YES
  13. write_enable=YES
  14. local_umask=022
  15. dirmessage_enable=YES
  16. ftpd_banner=Welcome to blah FTP service .
  17. chroot_local_user=YES
  18. chroot_list_enable=YES
  19. chroot_list_file=/etc/vsftpd/chroot_list
  20. listen=YES
  21. pam_service_name=vsftpd
  22. userlist_enable=YES
  23. tcp_wrappers=YES
  24. guest_enable=YES
  25. virtual_use_local_privs=NO
  26. guest_username=ftpuser
  27. user_config_dir=/etc/vsftpd/vsftpd_user_conf

新建虛擬賬戶,同樣在/etc/vsftpd目錄下新建logins.txt檔案(檔名隨意)

編輯: 
第一行使用者名稱:ftpcs 
第二行:密碼XXX 
多個使用者依次新增。(奇數行為使用者,偶數行為密碼)

檔案新增完成後:

  1. # db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_logins.db

為了安全性,這個時候logins.txt檔案可以移除。

賦予許可權

  1. # chmod 600 /etc/vsftpd/logins.db

放置虛擬使用者:

  1. # vim /etc/vsftpd/chroot_list

在這邊新增上面的虛擬使用者,只有使用者沒有密碼。

新建系統使用者,這裡筆者新建了ftpuser,指定到/home/ftpsite目錄,同時在ftpsite目錄下新建虛擬使用者對應的ftp目錄。

  1. # useradd -d /home/ftpsite -s /sbin/nologin ftpuser
  2. # mkdir /home/ftpsite/ftpcs
  3. # chmod 700 /home/ftpsite/
  4. # chown -R ftpuser:ftpuser /home/ftpsite

還是當前目錄新建:

  1. # mkdir vsftpd_user_conf

進入該目錄,新建對應虛擬使用者的檔案:

  1. # vi ftpcs

新增內容

  1. local_root=/home/ftpsite/ftpcs
  2. write_enable=YES
  3. anon_umask=022
  4. anon_world_readable_only=NO
  5. anon_upload_enable=YES
  6. anon_mkdir_write_enable=YES
  7. anon_other_write_enable=NO

配置pam.d

  1. # vim /etc/pam.d/vsftpd

加入下面內容,其他行全部註釋: 
(64位系統:)

  1. auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
  2. account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

完成重啟,測試ftpcs賬戶。

  1. # service vsftpd restart

這個時候虛擬賬戶ftp登入,只能停留在當前目錄,只可上傳檔案,不能下載,刪除。 
測試比較匆忙,歡迎補充。