CentOS 7 搭建ftp服务并配置虚拟用户

1、上传vsftp的rpm安装包及相关依赖(无),并安装
vsftpd-3.0.2-27.el7.x86_64.rpm
rpm -ivh vsftpd-3.0.2-27.el7.x86_64.rpm

第1步:建立虚拟FTP用户数据库文件。
第2步:创建FTP根目录及虚拟用户映射的系统用户。
第3步:建立支持虚拟用户的PAM认证文件。
第4步:为虚拟用户设置不同的权限。
第5步:在vsftpd.conf文件中添加支持配置。
第6步:重启vsftpd服务,验证实验效果。

一、虚拟用户配置
#创建用户密码文本,奇行是用户名,偶行是密码
vi /etc/vsftpd/vmuser_passwd.txt
user1
123456
user2
456789
#生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vmuser_passwd.txt /etc/vsftpd/vmuser_passwd.db
chmod 600 /etc/vsftpd/ vmuser_passwd.db
#编辑虚拟用户认证文件,注释掉原来语句,再增加以下两句
vi /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vmuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vmuser_passwd
#创建ftpuser用户(虚拟用户主用户),并指定虚拟用户主目录
useradd -d /mnt/data/ftpuser -s /sbin/nologin ftpuser
mkdir -p /mnt/data/ftpuser
chmod 755 /mnt/data/ftpuser
chown -R ftpuser:ftpuser /mnt/data/ftpuser
mkdir liumingming
chown -R ftpuser:ftpuser liumingming
#创建虚拟用户权限文件存放的目录
mkdir /etc/vsftpd/vmuser_conf/
vi user1
#指定家目录
local_root=/mnt/data/ftpuser/user1
#可以浏览目录下载文件
anon_world_readable_only=YES
#可以上传文件
anon_upload_enable=YES
#可以创建 删除目录
anon_mkdir_write_enable=YES
#可以更名删除文件
anon_other_write_enable=YES
#对自己的主目录有写的权限,(若不加此参数,而virtual用户对其家目录又有写权限,则会出现登录出错,这是ftp的安全机制。)
allow_writeable_chroot=YES

二、配置文件修改
vi /etc/vsftpd/vsftpd.conf
#设定不允许匿名访问
anonymous_enable=NO
#设定启用虚拟用户功能
guest_enable=YES
#指定虚拟用户的宿主用户
guest_username=ftpuser
#当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限
virtual_use_local_privs=YES
#设定虚拟用户的配置文件存放路径
user_config_dir=/etc/vsftpd/vmuser_conf
#开启被动模式,指定端口
pasv_enable=YES
pasv_min_port=35001
pasv_max_port=35020

启动服务
systemctl start vsftpd
开放防火墙
firewall-cmd --add-port=35001-35020/tcp --permanent
firewall-cmd --reload

vsftp.conf详细说明
设置vsftpd是否可以独立运行
listen=NO
是否监听ipv6端口
listen_ipv6=YES
是否运行匿名访问
anonymous_enable=NO
是否运行本地用户登录
local_enable=YES
是否启用ftp的写入权限
write_enable
本地用户默认上传文件权限为077
local_umask=022
是否运行匿名ftp用户上传文件
anon_upload_enable=YES
是否运行匿名ftp用户创建文件夹
anon_mkdir_write_enable=YES
在用户切换目录时是否发送信息
dirmessage_enable=YES
vsftp目录列表是否显示本地时间
use_localtime=YES
是否启用上传/下载日志记录
xferlog_enable=YES
传输端口来自20
connect_from_port_20=YES
上传匿名文件
chown_uploads=YES
chown_username=whoever
日志保存路径
xferlog_file=/var/log/vsftpd.log
启用xferlog默认保存路径(参考xferlog_file配置项)
xferlog_std_format=YES
允许的空闲时间
idle_session_timeout=600
允许的数据传输时间
data_connection_timeout=120
是否启用port模式
port_enable=YES
启用被动模式
pasv_enable=YES
最小端口
pasv_min_port=xxxx
最大端口
pasv_max_port=xxxx
启用此功能服务器能够识别异步ABOR请求
async_abor_enable=YES
启用ascii上传模式(启用可能会被dos攻击)
ascii_upload_enable=YES
启用ascii下载模式
ascii_download_enable=YES
ftp登录欢迎语
ftpd_banner=Welcome
禁止登录的email用户列表
banned_email_file=/etc/vsftpd.banned_emails
开启禁止email用户登录(参考banned_email_file配置项)
deny_email_enable=YES
将登录用户限制在其主目录
chroot_local_user=YES
不受目录限制影响的用户列表
chroot_list_file=/etc/vsftpd.chroot_list
是否开启不受目录影响用户功能(参考chroot_list_file配置项)
chroot_list_enable=YES
定义sftpd的空目录
secure_chroot_dir=/var/run/vsftpd/empty
定义vsftpd使用的PAM服务的名称
pam_service_name=sftpd
rsa证书位置
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
密钥位置
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.keyrsa
是否启用SSL
ssl_enable=NO
是否允许匿名用户启用SSL
allow_anon_ssl=NO
dsa证书的位置
dsa_cert_file=/path/file
非匿名用户登陆时是否加密,默认为yes
force_local_logins_ssl=YES
非匿名用户传输数据时是否加密,默认为yes
force_local_data_ssl=YES
匿名用户登录时是否加密
force_anon_logins_ssl=NO
匿名用户数据传输时是否加密,默认为no
force_anon_data_ssl=NO
是否激活sslv2加密
ssl_sslv2=NO
是否激活sslv3加密
ssl_sslv3=NO
是否激活tlsv1加密
ssl_tlsv1=YES
加密方法
ssl_ciphers=DES-CBC3-SHA
禁用SSL会话重用(WinSCP需要)
require_ssl_reuse=NO
选择哪个SSL密码vsftpd将允许加密的SSL连接(FileZilla需要)
ssl_ciphers=HIGH

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章