pure-ftpd.png

LNMP环境搭建好后,日后需要管理webroot路径下的文件,采用加密方式的FTP方式比较简单也安全


安装PureFTP

yum install pure-ftpd


配置PureFTP

vi /etc/pure-ftpd/pure-ftpd.conf
更改参数		
  VerboseLog no改为yes   #记录客户端日志
  NoAnonymous no改为yes   #拒绝匿名用户登录
添加注释
  #PAMAuthentication yes
删除注释
  PureDB /etc/pure-ftpd/pureftpd.pdb   #指定用户数据库文件路径
  UnixAuthentication yes   #启用unix认证
  CreateHomeDir yes
  IPV4Only yes   #只使用ipv4连接

设置自启

systemctl enable pure-ftpd
systemctl start pure-ftpd

在系统中添加相应的用户和组

groupadd ftpgroup
useradd ftpuser -g ftpgroup -d /usr/share/nginx/html/ -s /sbin/nologin 
pure-pw useradd ftptest -u ftpuser -g ftpgroup -d /usr/share/nginx/html/

回车后提示输入两次密码

pure-pw mkdb   #保存用户数据库


配置PureFTP加密

yum install openssl
vi /etc/pure-ftpd/pure-ftpd.conf
 删除注释
  TLS  1
  TLSCipherSuite HIGH

 创建证书目录

mkdir -p /etc/ssl/private/

创建证书

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

根据提示输入相关信息

Country Name (2 letter code) [XX]:    #输入国家名称
State or Province Name (full name) []:    #输入州或省名称
Locality Name (eg, city) [Default City]:   #输入城市名称
Organization Name (eg, company) [Default Company Ltd]:   #输入组织或公司名称
Organizational Unit Name (eg, section) []:    #输入部门名称
Common Name (eg, your name or your server's hostname) []:    #输入系统名称
Email Address []:   #输入邮件地址

更改证书权限

chmod 600 /etc/ssl/private/pure-ftpd.pem

重启ftp服务

systemctl restart pure-ftpd

客户端连接选择Require Explicit FTP over TLS

20180114144549.png


安装vsftpd

yum -y install vsftpd


配置vsftpd

vi /etc/vsftpd/vsftpd.conf
更改注释
  anonymous_enable=NO   #拒绝匿名用户登录
  local_enable=YES               #默认开启允许本地用户登录vsftpd
  write_enable=YES              #默认开启启用对本地用户的写访问
  listen=YES                           #开启监听ipv4的21端口
添加注释
#listen_ipv6=YES                 #关闭ipv6监听
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.
(centos7默认未注释掉ipv6,若当前网络环境不支持ipv6,从而导致出现服务无法启动的错误)
删除注释
  chroot_local_user=NO    #将用户限制在本目录
  chroot_list_enable=YES   #允许使用用户清单文件
  chroot_list_file=/etc/vsftpd/chroot_list    #只允许chroot_list里面的user可以切换文件夹
添加配置
  allow_writeable_chroot=YES    #允许用户写目录

新建配置文件

vi /etc/vsftpd/chroot_list  
加入登陆用户名ftpuser

设置自启

systemctl start vsftpd.service
systemctl enable vsftpd.service

系统中添加用户

useradd -g root -M -d /usr/share/nginx/html/ -s /sbin/nologin ftpuser
passwd ftpuser

加目录权限

chown -R ftpuser.root /usr/share/nginx/html/


配置vsftpd加密

mkdir -p /etc/ssl/private/ 
openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048
chmod 600 /etc/ssl/private/vsftpd.pem


增加配置

vi /etc/vsftpd/vsftpd.conf
ssl_enable=YES		                        #开启SSL	
ssl_tlsv1=YES		                        #使用TLS加密	
strict_ssl_read_eof=YES                     #上传数据使用SSL
strict_ssl_write_shutdown=YES        #下载数据使用SSL
force_local_data_ssl=YES                  #所有非匿名用户强制使用SSL发送和接受数据
force_local_logins_ssl=YES               #所有非匿名用户强制使用SSL进行登陆
rsa_cert_file=/etc/ssl/private/vsftpd.pem                  #证书路径
rsa_private_key_file=/etc/ssl/private/vsftpd.pem     #私钥路径
require_ssl_reuse=NO                      #要求所有SSL连接都会重用SSL会话
ssl_ciphers=HIGH                              #发现使用存在缺陷的特定算法的攻击者
debug_ssl=YES                                  #允许SSL调试日志
pasv_min_port=40000
pasv_max_port=41000
hide_file=.*


更改默认端口号

vim /etc/vsftpd/vsftpd.conf
添加
listen_port=2121

vim /etc/services
改为
ftp          2121/tcp

20191231152005.png

重启服务

systemctl restart vsftpd

设置防火墙

firewall-cmd --zone=public --add-port=2121/tcp --permanent
firewall-cmd --zone=public --add-port=40000-41000/tcp --permanent
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload



更新日期: 2018年01月14日
文章标签: Linux
文章链接: https://www.vos.cn/os/184.html  
版权说明:如非注明,本站文章均为vOS原创,转载请注明出处和附带本文链接。