vsftpd.sh(创建ftp服务器,配置虚拟用户,虚拟用户目录不能超出系统用户目录)
#!/bin/bash
Listen=7021
MinPort=7022
MaxPort=7030
UserName=ftpuser
UserHome=/home/ftp
echo "安装ftp服务器"
yum install -y vsftpd
echo "创建ftp系统用户"
useradd -d $UserHome -s /sbin/nologin $UserName
echo "创建ftp虚拟用户"
touch /etc/vsftpd/vsftpd_login
chmod 600 /etc/vsftpd/vsftpd_login
echo -e 'test\ntestpass' >> /etc/vsftpd/vsftpd_login
echo "配置ftp虚拟用户"
mkdir /etc/vsftpd/vsftpd_user_conf
touch /etc/vsftpd/vsftpd_user_conf/test
echo "local_root=/home/ftp/test
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10" > /etc/vsftpd/vsftpd_user_conf/test
echo "同步ftp虚拟用户账号密码"
sed -i '1 a auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login \naccount sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login' /etc/pam.d/vsftpd
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
echo "修改ftp配置"
sed -i -e 's/.*anonymous_enable=YES/anonymous_enable=NO/' -e 's/.*anon_upload_enable=YES/anon_upload_enable=NO/' -e 's/.*anon_mkdir_write_enable=YES/anon_mkdir_write_enable=NO/' -e 's/.*xferlog_enable=NO/xferlog_enable=YES/' -e 's/.*xferlog_std_format=NO/xferlog_std_format=YES/' -e 's|.*xferlog_file=/var/log/xferlog|xferlog_file=/var/log/xferlog|' /etc/vsftpd/vsftpd.conf
echo -e "chroot_local_user=YES
guest_enable=YES
guest_username=$UserName
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
listen_port=$Listen
pasv_enable=YES
pasv_min_port=$MinPort
pasv_max_port=$MaxPort" >> /etc/vsftpd/vsftpd.conf
echo "开启防火墙,关闭SELinux"
firewall-cmd --add-port=$Listen/tcp --permanent
firewall-cmd --add-port=$MinPort-$MaxPort/tcp --permanent
firewall-cmd --reload
setenforce 0
sed 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
echo "启动ftp"
systemctl enable vsftpd
systemctl start vsftpd
vsftpdssl.sh
#!/bin/bash
cd /etc/pki/tls/certs
make vsftpd.pem
cp -a vsftpd.pem /etc/vsftpd/
echo -e "ssl_enable=YES
ssl_tlsv1=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem" >> /etc/vsftpd/vsftpd.conf
make证书时需依次输入
Country Name (2 letter code) [XX]:CN 国家名称(2个字母代码)[XX]:CN
State or Province Name (full name) []:CHINA 国家或省名(全称)[]:中国
Locality Name (eg, city) [Default City]:CHINA 地名(如城市)[默认城市]:中国
Organization Name (eg, company) [Default Company Ltd]:ORG 组织名称(如公司)[默认公司有限公司]:ORG
Organizational Unit Name (eg, section) []:ORG 组织单元名称(例如,节)[]:ORG
Common Name (eg, your name or your server's hostname) []:NAME 常用名称(例如,您的名称或服务器的主机名)[]:Name
Email Address []:EMAIL@163.com 电子邮件地址[]:EMAIL@163.com
配置内容
#定义虚拟用户的家目录
local_root=/home/virftp/testuser1
#不允许匿名用户登陆,如果允许则用YES
anonymous_enable=NO
#允许写权限
write_enable=YES
#设定umask,用来控制用户创建文件和目录的默认权限
local_umask=022
#不允许匿名用户上传
anon_upload_enable=NO
#不允许匿名用户创建目录和写权限
anon_mkdir_write_enable=NO
#空闲时限600秒,超时自动断开
idle_session_timeout=600
#数据连接(请求)时限120秒,超时会自动断开
data_connection_timeout=120
#客户端的最大连接数
max_clients=10
#将所有用户限制在主目录
chroot_local_user=YES
#打开来宾用户
guest_enable=YES
#定义来宾用户为virftp,可以给每个虚拟用户单独配置系统用户
guest_username=virftp
#允许虚拟用户映射到系统用户,虚拟用户和本地用户有相同的权限
virtual_use_local_privs=YES
#定义用户配置文件目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#允许写权限
allow_writeable_chroot=YES
#监听端口
listen_port=1802
#使用被动模式
pasv_enable=YES
#数据端口范围
pasv_min_port=30000
pasv_max_port=30999
#表明FTP服务器记录上传下载的情况
xferlog_enable=YES
#表明将记录的上传下载情况写在xferlog_file所指定的文件中
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
# 是否启用SSL
ssl_enable=YES
# 匿名用户将被允许使用安全的SSL连接
allow_anon_ssl=YES
# 所有匿名登录将被强制使用安全的SSL连接,以便在数据连接上发送和接收数据。
force_anon_data_ssl=YES
# 所有匿名登录将被强制使用安全的SSL连接以发送密码。
force_anon_logins_ssl=YES
# 所有非匿名登录将被强制使用安全的SSL连接,以便在数据连接上发送和接收数据。
force_local_data_ssl=YES
# 所有非匿名登录将被强制使用安全的SSL连接以发送密码。
force_local_logins_ssl=YES
# 允许TLS v1协议连接。TLS v1连接是首选。
ssl_tlsv1=YES
# 允许SSL v2协议连接。TLS v1连接是首选。
#ssl_sslv2=NO
# 允许SSL v3协议连接。TLS v1连接是首选。
#ssl_sslv3=NO
# SSL加密连接的RSA证书的位置。
rsa_cert_file=/etc/vsftpd/vsftpd.pem
在配置用户配置文件/etc/vsftpd/vsftpd_login时一行为用户名,一行为用户密码
用户登陆的日志在/var/log/secure
虚拟用户的根目录的所有者应为系统用户
文章内容来源于:https://blog.csdn.net/langyue919/article/details/80796369 https://blog.csdn.net/llljjlj/article/details/104357421 https://blog.csdn.net/weixin_42867972/article/details/88716341