网络服务--VSFTP

实验部署

注:先关闭服务器和客户机上的防火墙和SELinux

配置文件位置  /etc/vsftpd/vsftpd.conf

重启服务  systemctl restart vsftpd.service

一、匿名用户验证实验

  

 1、实现可以上传

  (1)  anon_upload_enable=YES

  (2)  在 /var/ftp/ 下创建上传目录

  (3)  修改上传目录的权限或所有者,让匿名用户有写入权限

2、实现创建目录和文件其他操作

  anon_mkdir_write_enable=YES  #允许创建目录

  anon_other_write_enable=YES  #删除文件、文件改名、文件覆盖

3、用户进入某个文件夹时,弹出相应的说明

  (1)  在对应目录下创建  .message 文件,并写入相应内容

  (2)  确认 dirmessage_enable=YES 是否启用 

  (3)  尝试切换目录查看效果

4、实现上传的文件可下载

  设置 anon_umask=022

二、本地用户验证实验

1、服务端需要创建用户并设置密码(不需要登录操作系统,仅用来登录VSFTP)

  useradd -s /sbin/nologin username

2、将所有用户禁锢在自己的家目录下

  chroot_local_user=YES

3、将部分用户禁锢在自己的家目录下

  chroot_list_enable=YES     #开启白名单功能,允许白名单中的用户随意切换目录

  chroot_list_file=/etc/vsftpd/chroot_list   #白名单文件,需要自己创建

4、配置文件: /etc/vsftpd/ftpusers

  所有写入此文件内的用户名都不允许登陆 ftp ,立刻生效

5、修改被动模式数据传输使用端口

  pasv_enable=YES

  pasv_min_port=30000

  pasv_max_port=35000

三、虚拟用户验证实验

1、建立FTP的虚拟用户的用户数据库文件(/etc/vsftpd)

  vi vsftpd.user  #奇数行用户,偶数行密码

  db_load -T -t hash  -f  vsftpd.user  vsftpd.db  

  #将用户密码的存放文本转化为数据库类型,并使用 hash 加密

  chmod 600 vsftpd.db

  #修改文件权限为600,更安全

2、创建FTP虚拟用户的映射用户,并制定其用户家目录

  useradd  -d  /var/ftproot  -s  /sbin/nologin  virtual

  #创建 virtual 用户作为 ftp 的虚拟用户的映射用户

3、建立支持虚拟用户的PAM认证文件

  cp  -a  /etc/pam.d/vsftpd  /etc/pam.d/vsftpd.pam

  #使用模板生成自己的认证配置文件,方便调用

 4、

 四、 OpenSSL + vsftpd 加密验证方式

  使用 tcpdump 工具进行指定端口抓包,抓取 ftp 登录过程中的数据包

     tcpdump -i ens33 -nn -X -vv tcp port 21 and ip host  来源IP

1、查看是否安装

2、查看 vsftpd 是否支持 OpenSSL

  ldd /usr/sbin/vsftpd | grep libssl

3、生成加密信息的秘钥和证书文件

  位置:/etc/ssl/certs

  a、openssl genrsa -out vsftpd.key 2048

  #建立服务器私钥,生成RSA密钥 vsftpd.key 

  b、openssl req -new -key vsftpd.key -out vsftpd.csr

  #通过密钥文件生成证书文件 vsftpd.csr ,填写多种信息

  c、openssl x509 -req -days 365 -sha256 -in vsftpd.csr -signkey vsftpd.key -out vsftpd.crt

  #根据 vsftpd.key  vsftpd.csr 产生签字后的证书 vsftpd.crt

 4、修改主配置文件 /etc/vsftpd/vsftpd.conf

ssl_enable=YES
#启用ssl认证

ssl_tlsv1=YES

ssl_sslv2=YES

ssl_sslv3=YES

#开启tlsv1、sslv2、sslv3都支持

allow_anon_ssl=YES

#允许匿名用户(虚拟用户)

force_anon_logins_ssl=YES

force_anon_data_ssl=YES

#匿名登录和传输时强制使用ssl

force_local_logins_ssl=YES

force_local_data_ssl=YES

#本地登录和传输时强制使用ssl

rsa_cert_file=/etc/ssl/certs/vsftpd.crt

#rsa格式的证书

rsa_private_key_file=/etc/ssl/certs/vsftpd.key

#rsa格式的密钥

5、重启服务

6、测试

  

 未解决问题:无法连接上ftp服务器

原文地址:https://www.cnblogs.com/yellowzunzhi/p/12533098.html