CentOS 安装 vsftpd 并启用SSL
vsftpd是用于UNIX系统(包括Linux)的使用GPL许可的FTP服务器。 特点是小巧轻快,安全易用。(官方配置文件参数说明:点我查看)
# 安装软件 yum -y install vsftpd pam pam-devel libdb-utils # 备份原始配置文件,以便出错时恢复 cp -n /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.mybak cp -n /etc/pam.d/vsftpd /etc/pam.d/vsftpd.mybak # 创建虚拟用户配置文件目录 mkdir -p /etc/vsftpd/vuser_conf # 生成 FTP 使用的 SSL 证书 openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -subj "/CN=ftp_ssl" -keyout /etc/vsftpd/vsftpd.key -out /etc/vsftpd/vsftpd..crt # 创建 FTP 使用的本地账号 useradd -U -s /sbin/nologin -M ftpuser -d / # 禁止匿名登录 sed -i 's|^anonymous_enable=.*|anonymous_enable=NO|g' /etc/vsftpd/vsftpd.conf # 启用 ASCII 上传和下载 sed -i 's|^#ascii_upload_enable=.*|ascii_upload_enable=YES|g' /etc/vsftpd/vsftpd.conf sed -i 's|^#ascii_download_enable=.*|ascii_download_enable=YES|g' /etc/vsftpd/vsftpd.conf # 将用户限制在主目录 sed -i 's|^#chroot_local_user=.*|chroot_local_user=YES|g' /etc/vsftpd/vsftpd.conf # 使用本地时间 echo 'use_localtime=YES' >> /etc/vsftpd/vsftpd.conf # 监听端口 echo 'listen_port=21' >> /etc/vsftpd/vsftpd.conf # 将ftp虚拟用户映射为本地用户 nobody echo 'guest_enable=YES' >> /etc/vsftpd/vsftpd.conf echo 'guest_username=nobody' >> /etc/vsftpd/vsftpd.conf echo 'virtual_use_local_privs=YES' >> /etc/vsftpd/vsftpd.conf # 用户配置文件目录 echo 'user_config_dir=/etc/vsftpd/vuser_conf' >> /etc/vsftpd/vsftpd.conf # 被动模式使用的端口范围 echo 'pasv_min_port=30000' >> /etc/vsftpd/vsftpd.conf echo 'pasv_max_port=31000' >> /etc/vsftpd/vsftpd.conf # 超时设置 echo 'accept_timeout=5' >> /etc/vsftpd/vsftpd.conf echo 'connect_timeout=1' >> /etc/vsftpd/vsftpd.conf # 启用根目录写入 echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf # 单IP最大连接数 echo 'max_per_ip=5' >> /etc/vsftpd/vsftpd.conf # 启用 SSL 的相关设置 echo 'ssl_enable=YES' >> /etc/vsftpd/vsftpd.conf echo 'allow_anon_ssl=NO' >> /etc/vsftpd/vsftpd.conf echo 'force_local_data_ssl=YES' >> /etc/vsftpd/vsftpd.conf echo 'force_local_logins_ssl=YES' >> /etc/vsftpd/vsftpd.conf echo 'ssl_tlsv1_1=YES' >> /etc/vsftpd/vsftpd.conf echo 'ssl_tlsv1_2=YES' >> /etc/vsftpd/vsftpd.conf echo 'ssl_tlsv1=NO' >> /etc/vsftpd/vsftpd.conf echo 'ssl_sslv2=NO' >> /etc/vsftpd/vsftpd.conf echo 'ssl_sslv3=NO' >> /etc/vsftpd/vsftpd.conf echo 'require_ssl_reuse=YES' >> /etc/vsftpd/vsftpd.conf echo 'ssl_ciphers=HIGH' >> /etc/vsftpd/vsftpd.conf echo 'rsa_cert_file=/etc/vsftpd/vsftpd..crt' >> /etc/vsftpd/vsftpd.conf echo 'rsa_private_key_file=/etc/vsftpd/vsftpd.key' >> /etc/vsftpd/vsftpd.conf # 启用pam虚拟用户认证 echo 'auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser' > /etc/pam.d/vsftpd echo 'account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser' >> /etc/pam.d/vsftpd # 生成pam认证数据库 touch /etc/vsftpd/vsftpd_vuser db_load -T -t hash -f /etc/vsftpd/vsftpd_vuser /etc/vsftpd/vsftpd_vuser.db chmod 600 /etc/vsftpd/vsftpd_vuser.db # 启动 vsftpd 并设置为开机自启 systemctl enable vsftpd systemctl start vsftpd # firewalld 防火墙放行 ftp 相关端口 firewall-cmd --permanent --add-port=21/tcp firewall-cmd --permanent --add-port=20/tcp firewall-cmd --permanent --add-port=30000-31000/tcp firewall-cmd --reload
添加FTP用户的方法:
# 用户名:ftpuser1 echo 'ftpuser1' >> /etc/vsftpd/vsftpd_vuser # 密码:ftpuser1pwd echo 'ftpuser1pwd' >> /etc/vsftpd/vsftpd_vuser # 生成认证数据库 db_load -T -t hash -f /etc/vsftpd/vsftpd_vuser /etc/vsftpd/vsftpd_vuser.db # 添加ftp用户配置文件 cat > /etc/vsftpd/vuser_conf/ftpuser1 << \eof # 将用户映射为本地用户 ftpuser guest_username=ftpuser #设置登录后的根目录 local_root=/var/ftp/user0 # 开放写权限 write_enable=YES # 开放下载权限 anon_world_readable_only=NO # 开放上传权限 anon_upload_enable=YES # 开放创建目录的权限 anon_mkdir_write_enable=YES # 开放删除和重命名的权限 anon_other_write_enable=YES # 设置上传后文件的默认权限是644 anon_umask=133 eof
原文链接地址:http://blog.exsvc.cn/article/install-vsftpd-with-ssl.html
转载请注明:转载自 易科博客 ,谢谢!