ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

StroageSrv之VSFTPD

StroageSrv之VSFTPD VSFTPD题目内容1、禁止使用不安全的FTP请使用“CSK Global Root CA”证书颁发机构颁发的证书启用FTPS服务。2、用户webadmin登录ftp服务器根目录为/webdata/。3、登录后限制在自己的根目录。操作环境主机名操作系统IP地址StorageSrvCentos7192.168.100.200/24操作步骤​ 安装vsftpd服务[rootstoragesrv ~]# yum -y install vsftpd​ 在AppSrv上对证书进行拷贝进行沿用[rootappsrv csk-rootca]# mkdir /CA[rootappsrv csk-rootca]# scp httpd.* 192.168.100.200:/CA​ 创建用户[rootstoragesrv ~]# useradd webadmin[rootstoragesrv ~]# passwd webadminChanging passwordforuser webadmin. New password: GDSkills26!Retype new password: GDSkills26!​ 创建用户数据库文件[rootstoragesrv ~]# vi user.txtEOF webdamin GDSkills26!EOF[rootstoragesrv ~]# db_load -T -t hash -f user.txt user.db-T允许文本文件转换成数据库文件。-t hash使用hash格式的数据库。-f user.txt输入文件是user.txt。user.db输出数据库文件名。​ 备份vsftpd的配置文件[rootstoragesrv ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk​ 提取vsftpd配置文件中非#的内容[rootstoragesrv ~]# grep -v # /etc/vsftpd/vsftpd.conf.bk /etc/vsftpd/vsftpd.conf​ 编辑vsftpd的配置文件[rootstoragesrv ~]# vi /etc/vsftpd/vsftpd.confEOFlistenYES#listen_ipv6YESguest_enableYESguest_usernamewebadminuser_config_dir/etc/vsftpdforce_local_data_sslYESforce_local_logins_sslYESssl_enableYESrsa_cert_file/CA/httpd.crtrsa_private_key_file/CA/httpd.keylocal_root/webdataallow_writeable_chrootYES EOFlisten作用让 vsftpd 以独立模式运行standalone mode解释vsftpd 会直接监听 FTP 端口默认 21而不是由 inetd/xinetd 超级服务器管理对比listenNO表示由 inetd 管理guest_enable作用启用虚拟用户guest users功能解释允许非系统用户的虚拟用户登录 FTP注意虚拟用户会被映射到指定的本地系统用户见下一条guest_username作用指定虚拟用户映射到的本地系统用户解释所有虚拟用户登录后都会以webuser这个系统用户的身份和权限操作文件安全考虑这样可以将 FTP 用户限制在特定权限下user_config_dir作用指定虚拟用户个人配置文件的目录解释可以在/etc/vsftpd目录下为每个虚拟用户创建单独的配置文件示例创建/etc/vsftpd/user1文件为该用户设置特定权限force_local_data_ssl强制所有数据传输上传、下载必须使用 SSL/TLS 加密force_local_logins_ssl强制所有登录过程必须使用 SSL/TLS 加密ssl_enable启用 SSL/TLS 支持启用 FTPSFTP over SSL/TLSrsa_cert_fileSSL 证书文件路径包含服务器的公钥和证书信息rsa_private_key_fileSSL 私钥文件路径服务器的私钥必须保密作用为 FTPS 连接提供加密和身份验证local_root作用设置本地用户包括虚拟用户映射的本地用户登录后的根目录解释用户登录后会被锁定在/webdata目录下无法访问其他目录示例用户只能看到和操作/webdata目录下的文件allow_wirteable_chroot作用允许用户在chroot 监狱限制的根目录中进行写操作背景出于安全考虑vsftpd 默认不允许在 chroot 目录下有写权限风险启用此选项可能降低安全性但某些应用场景需要​ 配置vsftpd的认证文件[rootstoragesrv ~]# vi /etc/pam.d/vsftpdEOF auth required pem_userdb.sodb/root/user account required pem_userdb.sodb/root/user EOF​/etc/pam.d/vsftpd定义 vsftpd 如何进行用户身份验证。当用户尝试登录 FTP 时vsftpd 会调用 PAM 系统PAM 根据这个文件的配置决定如何验证用户。​auth required pem_userdb.so db/root/userauth认证类型负责验证用户身份用户名和密码required控制标志表示此模块必须成功但如果失败不会立即返回错误继续检查后续模块pam_userdb.soPAM 模块使用 Berkeley DB 数据库文件进行认证db/root/user指定数据库文件路径注意实际查找的是/root/user.db文件​account required pem_userdb.so db/root/useraccount账户类型负责检查账户状态是否过期、是否有权限等required控制标志表示此模块必须成功但如果失败不会立即返回错误继续检查后续模块pam_userdb.so db/root/user同上使用相同的数据库文件​ 编辑用户的权限文件可选[rootstoragesrv ~]# vi /etc/vsftpd/webadminEOFlocal_root/webdatadownload_enableYESwrite_enableYESanon_upload_enableYESanon_mkdir_write_enableYESanon_other_write_enableYES EOF​ 重启vsftpd服务生效[rootstoragesrv CA]# systemctl restart vsftpd验证测试​ 客户端测试​ 安装FTP客户端工具[rootinsidecli ~]# yum -y install lftp​ 在客户端导入证书[rootinsidecli ~]# cp -a csk-ca.pem /etc/pki/ca-trust/source/anchors/[rootinsidecli ~]# cd /etc/pki/ca-trust/source/anchors/[rootinsidecli anchors]# mv csk-ca.pem csk-ca.crt[rootinsidecli anchors]# update-ca-trust csk-ca.crt[rootinsidecli anchors]# reboot/etc/pki/ca-trust/source/anchors/这个目录用于存放用户自定义的受信任根证书系统会将这些证书添加到全局信任存储中。​ 客户端登录FTP服务器[rootinsidecli ~]# lftp -u webadmin:GDSkills26! ftp.chinaskills.cn​ 验证当前在根目录下lftp webadminftp.chinaskills.cn:/quotepwd257/quote: 在lftp中quote命令允许你直接发送原始FTP协议命令到服务器pwd: Print Working Directory 的缩写是标准的FTP命令用于显示当前远程工作目录温馨提示​ 问题故障内容关于FTP通过systemctl和vsftpd两种启动方式冲突的解决方式[rootserver02 vsftpd]# ps aux | grep vsftpd #查看当前vsftpd进程root27850.00.053288604? Ss17:160:00 vsftpd root32590.00.0112808964pts/0 S17:310:00grep--colorauto vsftpd[rootserver02 vsftpd]# kill -9 2785 #直接清除进程[rootserver02 vsftpd]# ps aux | grep vsftpd #检查进程是否清除干净root32610.00.0112808964pts/0 S17:310:00grep--colorauto vsftpd[rootserver02 vsftpd]# ss -anupt | grep 21 #查看端口是否还存在[rootserver02 vsftpd]# systemctl restart vsftpd #重启服务
返回列表