centos搭建vsftp记录--虚拟用户方式登录

58 阅读2分钟

这里使用root用户操作

yum -y install vsftpd

setenforce 0 如果显示 getsebool: SELinux is disabled

vi /etc/selinux/config 将disabled 改成这样 SELINUX=permissive

解释 强制模式SELINUX=enforcing:表示所有违反安全策略的行为都将被禁止。
宽容模式SELINUX=permissive:表示所有违反安全策略的行为不被禁止,但是会在日志中作记录
SELINUX=disabled,也可以直接关闭

需要创建一个这样的文件不然会无法重启服务器 touch /.autorelabel 然后重启 reboot

先创建一些虚拟用户,文件名vu_pw.txt可以自定义 以用户密码的方式填写 admin用户名,admin123是密码

cat >>/etc/vsftpd/vu_pw.txt<<EOF admin 123456 EOF

把vu.txt明文文件转换成vu.db数据库文件

db_load -T -t hash -f /etc/vsftpd/vu_pw.txt /etc/vsftpd/vu_pw.db

授权

chmod 600 vu_pw.db

然后创建一个系统用户用于映射虚拟用户但不做系统登录用户(提高安全)

useradd -d /ftp的目录路径 -s /sbin/nologin ftpadmin

创建虚拟用户upadmin的目录

mkdir /ftp的目录路径

#修改虚拟用户upadmin的所属组和所属用户

chown -R ftpadmin:ftpadmin /ftp的目录路径

修改/ftp的目录的权限

chmod -R 755 /ftp的目录路径

创建用于支持虚拟用户的PAM文件

cat >>/etc/pam.d/vs.vu<<EOF

auth required pam_userdb.so db=/etc/vsftpd/vu_pw

account required pam_userdb.so db=/etc/vsftpd/vu_pw

EOF

这个vu_pw就是上面创建的vu_pw.txt (db) 用户身份认证吧 修改权限

chmod -R 600 /etc/vsftpd/vu_perm/

创建一个文件夹用于存放对应用户的权限 mkdir /etc/vsftpd/vu_perm 比如这里为admin创建一个具备上传、下载、创建目录、删除和移动文件的权限

cat >>/etc/vsftpd/vu_perm/admin<<EOF

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_root=/ftp的目录路径

EOF

修改配置文件 vim /etc/vsftpd/vsftpd.conf 修改成以下内容,没有就加

anonymous_enable=NO

guest_enable=YES

guest_username=ftpadmin

allow_writeable_chroot=YES

xferlog_file=/var/log/xferlog

pam_service_name=vs.vu

user_config_dir=/etc/vsftpd/vu_perm

防火墙配置,如果你直接关闭也可以不安全而已(如果本来就不安全开了也没用) firewall-cmd --permanent --zone=public --add-service=ftp

firewall-cmd --reload

ftp相关的SeLinux布尔值设置.

setsebool -P ftpd_connect_all_unreserved=on

setsebool -P ftpd_full_access=on

重启vsftpd服务并设置跟随系统自启动

systemctl restart vsftpd

systemctl enable vsftpd