`
xieye
  • 浏览: 804149 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

centos7下vsftp的虚拟用户安装和配置

阅读更多
安装ftp在centos7下,
此类文章很多,这里也只是总结一下实践经历。

本文主要来源:
https://blog.51cto.com/meiling/2071122
作者M_ling

但做了修改,否则不对,主要是#guest_enable=YES ,需去除井号。
另做了限制,只允许ftp访问特定目录,这是必须的。
另外设置了umask,确保文件666属性,文件夹777属性。

安装依赖
yum -y install vsftpd
yum -y install db4-utils
yum -y install pam*

首先,应该使用被动模式。PASV模式。

查看版本
vsftpd -v
vsftpd: version 3.0.2

创建两个测试用文件夹
/var/test1
/var/test2
当前用户最好是root,
然后
chmod 777 /var/test1
chmod 777 /var/test2

核心配置
备份原配置
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

这里使用虚拟用户模式配置。

防火墙需开启一个命令端口(假定3378,不使用默认的21),和一段数据端口假定 21221到21231

如果是阿里云,则
云服务器-》右侧更多 -》 网络和安全组 -》 安全组配置 -》
内网入方向全部规则 -》 添加
允许,自定义tcp,21221/21231,IPv4地址段访问,0.0.0.0/0
允许,自定义tcp,3378,IPv4地址段访问,0.0.0.0/0

总之,加两条通过规则。

然后
vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
local_umask=022
#tcp_wrappers=NO
reverse_lookup_enable=NO
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#listen=YES
listen_port=3378
connect_from_port_20=YES
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=21221
pasv_max_port=21231
#accept_timeout=120
connect_timeout=120
data_connection_timeout=180
idle_session_timeout=600
local_max_rate=0
#dirmessage_enable=NO
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
#log_ftp_protocol=YES
xferlog_std_format=YES
guest_enable=YES
guest_username=root
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vuser_conf


guest_username 一般填写目录所有者,一般为 root 或者 www、ftp 等。

虚拟用户权限配置
mv /etc/vsftpd/user_list /etc/vsftpd/user_list.bak
vi /etc/vsftpd/user_list
内容如下:

test1
test2

表示我用这两个虚拟用户。

touch /etc/vsftpd/chroot_list

mkdir /etc/vsftpd/vuser_conf

vim /etc/vsftpd/vuser_conf/test1
内容如下:注意此文件名必须是其中一个虚拟用户

local_root=/var/test1
write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=000
anon_umask=000

继续,
vim /etc/vsftpd/vuser_conf/test2
内容如下:注意此文件名必须是其中一个虚拟用户

local_root=/var/test2
write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=000
anon_umask=000

local_roo这项,这是该虚拟用户特定的文件夹,可以随意改,无限制。

日志文件
touch /var/log/vsftpd.log
chown ftp:ftp /var/log/vsftpd.log

虚拟用户认证

vi /etc/vsftpd/vsftpd_vuser
内容:

test1
123456
test2
123456

db_load -T -t hash -f /etc/vsftpd/vsftpd_vuser /etc/vsftpd/vsftpd_vuser.db
chmod 600 /etc/vsftpd/vsftpd_vuser.db

mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vi /etc/pam.d/vsftpd

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser

最后。
systemctl start vsftpd

然后用客户端去连接就可以了。

test1用户 123456
对应的是/var/test1这个目录,注意这个目录是可以随意指定的。

然后上传的文件权限是666,文件夹权限是777

test2用户,密码123456
对应的是/var/test2目录,都一样。






0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics