|NO.Z.00025|——————————|LinuxNetwork|——|Linux&VSFTP服务.V07|

一、VSFTP实验部署:匿名用户验证实验:
### --- 注:先关闭服务器和客户机上的防火墙和SElinux
### --- 匿名用户验证实验:
~~~     匿名用户权限控制

anonymous_enable=yes                                            // 启用匿名用户
anon_umask=022                                                  // 匿名用户所上传文件的权限掩码
anon_root=/var/ftp                                              // 匿名用户的FTP根目录
anon_upload_enable=YES                                          // 允许上传文件
anon_mkdir_write_enable=YES                                     // 允许创建目录
anon_other_write_enable=YES                                     // 开发其他写入权限(删除、覆盖、重命名)
anon_max_rate=0                                                 // 限制最大传输速率(0为不限速,单位:bytes/秒)
### --- 实验需要与流程:
### --- 注意:在客户端登录后,默认情况下是可以下载的,但不能上传
### --- 实验可以上传

~~~     a、anon_upload_enable=YES
~~~     b、在/var/ftp/下创建上传目录
~~~     c、修改上传目录的权限或所有者,让匿名用户有写入权限
### --- 实验创建目录和文件其他操作

anon_mkdir_write_enable=YES                                     // 允许创建目录
anon_other_write_enable=YES                                     // 删除文件,文件改名,文件覆盖
### --- 用户进入某个文件夹时,弹出相应的说明:

~~~     a、在对应目录下创建.message文件,并写入相应的内容
~~~     b、确认dirmessage_enable=YES是否启用
~~~     c、尝试切换目录好看效果(同义词登录仅提示一次)
### --- 实现上传的文件可下载

~~~     默认情况下开放上传权限后,上传的文件是无法被下载的,
~~~     因为文件的其它人位置没有r权限设置anon_umask=022,
~~~     可以让上传的文件其他人位置拥有r权限,然后才能被其他人下载
二、本地用户验证实验:
### --- 本地用户权限控制

local_enable=YES                                                // 是否启用本地系统用户
local_umask=022                                                 // 本地用户所上传文件的权限掩码
local_root=/var/ftp                                             // 设置本地用户的FTP根目录
chroot_local_user=YES                                           // 是否将用户禁锢在主目录
local_max_rate=0                                                // 限制最大传输速率
ftpd_banner=Welcome to blah FTP service                         // 用户登录时显示的欢迎信息
userlist_enable=YES & userlist_deny=YES                         // 禁止/etc/vsftpd/user_list 文件中出现的用户名登录FTP 
userlist_enable=YES & userlist_deny=NO                          // 仅允许/etc/vsftpd/user_list文件中出现的用户登录FTP
//配置文件:ftpusers                                             // 禁止/etc/vsftpd/ftpusers文件中出现的用户名登录FTP权限比user_list更高,即时生效
### --- 实验需求与流程:
### --- 服务端需要创建用户并设置密码(所创建的用户,不需要登录操作系统,仅用来登录VSFTP)

useradd -s  /sbin/nologin username
### --- 将所有用户禁锢在自己的家目录下
~~~     注:默认没有禁锢用户时,客户端登录后可以随意切换目录,查看文件所在位置和文件名

chroot_local_user=YES
### --- 开启用户家目录限制,限制所有用户不能随便切换目录
### --- 将部分用户禁锢在自己的家目录下

chroot_list_enable=YES 
~~~     开启白名单功能,允许白名单中的用户随意切换目录
chroot_list_file=/etc/vsftpd/chroot_list
~~~     白名单文件所在位置(需自己创建)
### --- 配置文件:/etc/vsftpd/sftpusers

~~~     所有写入此文件内的用户名都不允许登录ftp,立刻生效。
### --- 修改被动模式数据传输使用端口

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=35000
三、虚拟用户验证实验:
### --- 建立FTP的虚拟用户的用户数据库文件(在/etc/vsftpd)
vim vsftpd user
~~~     注:该文件名可以随时定义,文件内容格式,奇数行用户,偶数行密码

db_load —T -t hash -f  vsftpd.user vsftpd.db
~~~     将用户密码的存放文本转化为数据库类型,并使用hash加密

chmod 600 vsftpd.db
~~~     修改文件权限为600,保证其安全性
### --- 创建FTP虚拟用户的映射用户,并制定其用户家目录
~~~     创建virtual用户作为ftp的虚拟用户的映射用户

useradd -d /var/ftproot -s /sbin/nologin virtual
### --- 建立支持迅疾用户的PAM认证文件,添加虚拟用户支持

cp -a /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pam
~~~     使用模板生成自己的认证配置文件,方便一会调用
~~~     编辑新生成的文件,vsftpd.pam(清空原来内容,添加下列两行)
auth    required    pam_userdb.so   db=/etc/vsftpd/vsftpd
account required    pam_userad.so   db=/etc/vsftpd/vsftpd
~~~     在vsftpd.conf文件中添加支持配置
~~~     修改:
pam_service_name=vsftpd.pam
~~~     添加:
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/dir
### --- 为虚拟用户创建独立的配置文件,启动服务并测试
~~~     注:做虚拟用户配置文件设置时,将主配置文件中自定义的匿名用户相关设置注释掉
~~~     用户名可以上传:

anon_upload_enable=YES                                          // 允许上传文件
~~~     用户可以创建目录或文件
anon_mkdir_write_enable=YES                                     // 允许穿件目录
~~~     用户可以修改文件名:
anon_upload_enable=YES                                          // 允许上传文件(为了覆盖开启的)
anon_other_write_enable=YES                                     // 允许重名和删除文件/覆盖
~~~     注:给映射用户的家目录设置otr让虚拟用户有读权限
四、openssl+vsftpd加密验证方式
### --- 拓展:使用tcpdump工具进行指定端口抓包,抓取ftp登录中的数据包

tcpdump -i eth0 -nn -X -vv tcp port 21 and  ip host 来源ip
-i                                                              // interface:指定tcpdump需要监听的接口
-n                                                              // 对地址以数字方式显示,否则显示为主机名
-nn                                                             // 除了-n的作用外,还把端口显示为数值,否则显示端口服务名
-X                                                              // 输出包的头部文件,会以16进制的ASCII两种方式同时输出。
-xx                                                             // 产生更详细的输出
### --- 查看是否安装了openssl
rpm -q  openssl

### --- 查看vsftpd是否支持openssl
ldd /usr/sbin/vsftpd |grep libssl
### --- 生成加密信息的秘钥和证书文件位置
/etc/ssl/certs/
a、openssl genrsa -out vsftpd.key 1024                           // 建立服务器私钥,生成RSA秘钥

~~~     需要以此输入国家,地区,城市,组织,组织单位,Email等信息,最重要的是有一个common name可以写你的名字或者域名,如果为了https申请,这个必须和域名吻合,否则会引发浏览器警报,生成的csr文件交给CA签名后形成服务端自己的证书
c、openssl x509 -req -days 365 -sha256 -in vsftpd.csr -singkey vsftpd.key -out vsftpd.crt
~~~     使用CA服务器签发证书,设置证书的有效期等信息
~~~     注意1:生成秘钥和证书文件后,将本目录/etc/ssl/certs/的权限修改为500.
~~~     注意2:在实验环境中可以用命令生成测试,在生产环境中必须要在hosts证书厂商注册(否则浏览器不识别)
### --- 修改注配置文件/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格式的秘钥
~~~     注:秘钥文件要在配置文件中单独声明(写入配置文件时,注释要单独一行,否则会报警)
### --- 重启服务:
service vsftpd restart

### --- 测试(使用第三方客户端连接)
//FileZilla-FTP(第三方客户端工具)
~~~     连接测试时选择:
~~~     服务器类型:
~~~     服务器类型:显示TLS/SSL
~~~     登录类型:一般或匿名

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(24)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示