ToB企服应用市场:ToB评测及商务社交产业平台

标题: 24_VSFTPD:安全易用的 FTP 服务器 [打印本页]

作者: 梦见你的名字    时间: 2024-12-15 05:05
标题: 24_VSFTPD:安全易用的 FTP 服务器
系列文章导航:01_Linux基础操作CentOS7学习条记-CSDN博客

  

vsftpd 服务概述

1. vsftpd 简介

vsftpd(very secure FTP daemon)是一个在 UNIX 类操作体系上运行的 FTP 服务器软件。它以高安全性为最大特点,支持众多其他 FTP 服务器不支持的特性,如带脱期定、良好的可伸缩性、虚拟用户支持、IPv6 支持等。vsftpd 可在 Linux、BSD、Solaris、HP-UNIX 等多种体系上运行,是一个完全免费且开放源代码的软件。
2. vsftpd 特点


3. 其他常用的 FTP 服务器


FTP 客户端

命令行客户端


图形工具


FTP 工作模式

主动模式(PORT)

被动模式(PASV)

服务端设置 PASV 模式

  1. pasv_enable=YES
  2. pasv_min_port=41000
  3. pasv_max_port=42000
复制代码
客户端开启或关闭 PASV 模式

  1. ftp> passive
  2. Passive mode on.
复制代码
安装 vsftpd 服务

  1. # yum -y install vsftpd
复制代码
相关文件


主设置文件中的三种设置


FTP 设置文件常用选项


用户访问控制


实例 1:只启用匿名用户

只启匿名用户,匿名用户可读可写(上传/新建目录/删除/下载),禁用本地用户
  1. # vim /etc/vsftpd/vsftpd.conf
  2. anonymous_enable=yes
  3. local_enable=NO
  4. write_enable=yes
  5. local_umask=022
  6. anon_upload_enable=YES
  7. anon_mkdir_write_enable=YES
  8. anon_other_write_enable=YES
  9. anon_umask=022
  10. dirmessage_enable=YES
  11. xferlog_enable=YES
  12. connect_from_port_20=YES
  13. xferlog_std_format=YES
  14. listen=YES
  15. pam_service_name=vsftpd
  16. userlist_enable=YES
  17. userlist_deny=NO
  18. tcp_wrappers=YES
复制代码
给本地目录授权:
  1. # chown ftp /var/ftp/pub/
  2. # service vsftpd restart
  3. # netstat -tnlp | grep :21
复制代码
补充

匿名用户只能上传不能下载

  1. anonymous_enable=YES
  2. download_enable=NO
  3. anon_upload_enable=YES
复制代码
上传后主动更改属主

  1. chown_uploads=YES
  2. chown_username=root
复制代码
虚拟用户

虚拟用户实际上是体系本地用户的映射。例如,tom 映射为 aa bb cc,以后公布 aa bb cc 用户给他人用,包管体系用户不被泄漏。
Step 1: 创建虚拟用户的数据库

  1. # vim /tmp/userinfo.txt
  2. aa
  3. 123456
  4. bb
  5. 654321
  6. cc
  7. 112233
  8. # yum -y install libdb-utils.x86_64
  9. # db_load -T -t hash -f /tmp/userinfo.txt /etc/vsftpd/virtual.db
  10. # chmod 0600 /etc/vsftpd/virtual.db
  11. # rm -rf /tmp/userinfo.txt
复制代码
Step 2: 创建 PAM 的设置文件,指向新建用户数据库

  1. # vim /etc/pam.d/vsftp_virtual
  2. auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual
  3. account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual
复制代码
Step 3: 新建一个本地用户,用于映射虚拟用户

  1. # useradd -M -d /var/ftp -s /sbin/nologin virtual
复制代码
Step 4: 更改主设置文件,包括以下选项

  1. # vim /etc/vsftpd/vsftpd.conf
  2. anonymous_enable=NO
  3. local_enable=YES
  4. chroot_local_user=YES
  5. write_enable=YES
  6. local_umask=077
  7. dirmessage_enable=YES
  8. xferlog_enable=YES
  9. connect_from_port_20=YES
  10. xferlog_file=/var/log/xferlog
  11. xferlog_std_format=YES
  12. idle_session_timeout=600
  13. data_connection_timeout=120
  14. ftpd_banner=Welcome to blah FTP service.
  15. ls_recurse_enable=NO
  16. listen=NO
  17. listen_ipv6=YES
  18. userlist_enable=YES
  19. userlist_file=/etc/vsftpd/user_list
  20. userlist_deny=NO
  21. pam_service_name=vsftp_virtual
  22. guest_enable=YES
  23. guest_username=virtual
  24. virtual_use_local_privs=YES
  25. tcp_wrappers=YES
复制代码
Step 5: 启动 vsftpd

  1. # systemctl restart vsftpd
复制代码
Step 6: 测试

利用 aa bb cc 三个用户测试。
主机访问控制

  1. tcp_wrappers=YES
复制代码
注意:

  1. # vi /etc/hosts.allow
  2. vsftpd:192.168.110.1:DENY
  3. vsftpd:192.168.110.
复制代码
以上释义为允许 192.168.110. 网段的除 192.168.110.1 主机以外的所有主机访问 vsftpd 服务。
  1. # vi /etc/hosts.deny
  2. vsftpd:192.168.110.10:ALLOW
  3. vsftpd:192.168.110.
复制代码
当 hosts.allow hosts.deny 都存在时,先看 hosts.allow 规则,假如某主机在 allow 规则中被允许的则就被允许;假如某个主机没有在 hosts.allow 文件中出现,再看 hosts.deny,假如该主机在 hosts.deny 出现则被拒绝,假如该主机没有在该规则中出现则默认允许。
用户访问控制

  1. userlist_enable=YES
  2. userlist_file=/etc/vsftpd/user_list
  3. userlist_deny=YES
复制代码
启用服务安全模块 vsftpd

  1. pam_service_name=vsftpd
复制代码
流量控制

  1. anon_max_rate
  2. local_max_rate
复制代码
连接数控制

  1. max_clients
  2. max_per_ip
  3. max_login_fails
复制代码
通过这些设置和步骤,你可以乐成地在你的网络情况中部署和维护 vsftpd FTP 服务,确保其安全性和易用性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4