Home 阿里云ubuntu配置FTP服务器
Post
Cancel

阿里云ubuntu配置FTP服务器

阿里云ubuntu配置FTP服务器

FTP原理
  • 主动FTP:
    • 命令连接:客户端 >1023端口 -> 服务器 21端口
    • 数据连接:客户端 >1023端口 <- 服务器 20端口
  • 被动FTP:
    • 命令连接:客户端 >1023端口 -> 服务器 21端口
    • 数据连接:客户端 >1023端口 -> 服务器 >1023端口
教程
配置步骤
  1. apt-get install vsftpd
  2. ufw status //查看防火墙设置,用如下命令设置
    • sudo ufw allow 20/tcp //ftp端口
    • sudo ufw allow 21/tcp //ftp端口
    • sudo ufw allow 990/tcp //TLS端口
    • sudo ufw allow 40000:50000/tcp //设置配置文件
    • sudo ufw status
  3. adduser dangyuan //pswd:dangyuan
  4. 设置fpt用户的主目录
    • sudo mkdir /home/dangyuan/ftp
    • sudo chown nobody:nogroup /home/dangyuan/ftp
    • sudo chmod a-w /home/dangyuan/ftp
  5. 设置可以上传文件的文件夹:
    • sudo mkdir /home/dangyuan/ftp/files
    • sudo chown dangyuan:dangyuan /home/dangyuan/ftp/files
  6. 测试文件
    • echo “vsftpd test file” sudo tee /home/dangyuan/ftp/files/test.txt
  7. vi /etc/vsftpd.conf
    • write_enable=YES
    • chroot_local_user=YES
    • user_sub_token=$USER
    • local_root=/home/$USER/ftp
    • pasv_min_port=40000
    • pasv_max_port=50000
    • userlist_enable=YES
    • userlist_file=/etc/vsftpd.userlist
    • userlist_deny=NO
    • pam_service_name=ftp/svftpd //使用ftp服务或者sftp服务
    • chroot_local_user=YES
    • anon_root=/var/www/html/
  8. echo “dangyuan” sudo tee -a /etc/vsftpd.userlist
  9. systemctl restart vsftpd
  10. 测试ftp -p 101.132.100.213
  11. 设置防火墙
    • iptables -A INPUT -p tcp –dport 21 -j ACCEPT
    • iptables -A INPUT -p tcp –dport 20 -j ACCEPT
    • iptables -A INPUT -p tcp –dport 40000:50000 -j ACCEPT
  12. 遇到问题,测试抓包
    • tcpdump -n -i eth0 host 101.132.100.213 and 218.193.183.86
    • tcpdump host 101.132.100.213 and 218.193.183.86
    • ss -naltd
    • 结论:ftp客户端需要设置为FTP被动模式
  13. 设置虚拟用户
  • apt-get install db_util
  • db_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db
  • chmod 600 /etc/vsftpd_login.db
  • vi /etc/pam.d/vsftpd
    • 加入文件开头两行
    • auth sufficient pam_userdb.so db=/etc/vsftpd_login
    • account sufficient pam_userdb.so db=/etc/vsftpd_login
  • 值得注意的是,每次新增账号,需要在/etc/vsftpd.userlist中加入对应的用户名
This post is licensed under CC BY 4.0 by the author.

laravel自学

安全笔记概论