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


原文链接地址:https://blog.exsvc.cn/article/install-vsftpd-with-ssl.html
转载请注明:转载自 易科博客 ,谢谢!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注