linux(ubuntu)之ftp配置vsftpd


目標,配置ftp並且限制其訪問路徑。

第一步、安裝vsftpd

  

  • sudo apt-get update
  • sudo apt-get install vsftpd

備份一份配置文件 sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

第二步、查看是否啟動了vsftpd

sudo ufw status

 

Output
Status: active

To Action  From
-- ------  ----
OpenSSH ALLOW   Anywhere
OpenSSH (v6)   ALLOW   Anywhere (v6)

第三步、關閉防火牆或者防火牆添加了白名單

白名單操作

 

  • sudo ufw allow 20/tcp
  • sudo ufw allow 21/tcp
  • sudo ufw allow 990/tcp
  • sudo ufw allow 40000:50000/tcp//好像是客戶端ftp主動接受的端口范圍吧
  • sudo ufw status//查看防火牆狀態

第四步、配置ftp用戶(具體參考linux怎么添加刪除用戶。設定用戶主目錄)

給個參考鏈接吧https://blog.csdn.net/piaocoder/article/details/50719149

https://www.cnblogs.com/sparkdev/p/5823353.html

 

創建用戶

useradd -d /home/sammy -m sammy

sudo adduser sammy

創建文件夾

  • sudo mkdir /home/sammy/ftp
  • sudo chown nobody:nogroup /home/sammy/ftp
  • sudo chmod a-w /home/sammy/ftp
  • sudo ls -la /home/sammy/ftp
  • sudo mkdir /home/sammy/ftp/files
  • sudo chown sammy:sammy /home/sammy/ftp/files

 

 

第五步、配置vsftpd(關鍵的一步,麻蛋坑逼的地方到了)

前面已經備份了/etc/vsftpd.conf,一定要記得備份,錯了還能恢復

取消注釋write_enable、chroot_local_user=YES

 

主要配置

# Uncomment this to indicate that vsftpd use a utf8 filesystem.
#utf8_filesystem=YES
user_sub_token=$USER
local_root=/home
#local_root=/opt/lampp/apache2/htdocs
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
# user dir config
user_config_dir=/etc/vsftpd/userconfig


pasv_max_port=10090
pasv_min_port=10060

/etc/vsftpd/userconfig(這個路徑是我手動建的)中添加文件夾為ftp用戶名的文件,文件里面配置用戶允許登錄的路徑

對於chroot_local_user與chroot_list_enable的組合效果見下圖

 

vsftpd其實過程並不是很復雜,配置花了一天多時間才達到預期效果,原因有三:1、自身linux功底太弱、2、直接想到的事百度方案,百度上的東西要么比較老老么不全,最后輔助google得到解決、3vsftpd官方有點坑啊,安裝后默認的配置文件里面不是所有的配置項都全,不需要的配置你注釋起來不就行了,能有多少個配置,都不寫全。。。。

 

遇到的問題:

1、ftp: connect: Connection refused 

vsftpd.conf文件里的#listen_ipv6=YES被取消注釋了。

參考了https://blog.csdn.net/zwd574011074/article/details/80242986

2、500 OOPS: priv_sock_get_cmd

vsftpd.conf文件添加seccomp_sandbox=NO

參考了https://stackoverflow.com/questions/16589570/windows-azure-ubuntu-500-oops-priv-sock-get-cmd-error-while-making-an-ftp-con

 3、發現怎么配置在winscp中輸入密碼后都遠程拒絕,發現新建的用戶需要根據下面鏈接中的過程來建立才成功https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-for-a-user-s-directory-on-ubuntu-16-04#step-6-%E2%80%94-securing-transactions

其他參考:

https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-for-a-user-s-directory-on-ubuntu-16-04#prerequisites

http://vsftpd.beasts.org/vsftpd_conf.html

 

 

 

 


免責聲明!

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



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