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