FTP服务搭建安装
vsftpd相关文档
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件 /etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。 黑名单 /etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。 白名单 /etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些变量和设置脚本 /var/ftp/:默认情况下匿名用户的根目录
安装vsftp服务
[root@wxj ~]# yum install vsftpd -y
启动服务
[root@wxj ~]# systemctl start vsftpd [root@wxj ~]# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service. [root@wxj ~]# netstat -ntlp|grep vsftpd tcp6 0 0 :::21 :::* LISTEN 5755/vsftpd
允许匿名用户登录并允许上传
修改配置文件如下
[root@wxj ~]# vim /etc/vsftpd/vsftpd.conf
允许匿名用户访问 anonymous_enable=YES 允许匿名用户上传文件并可以创建目录 anon_upload_enable=YES anon_mkdir_write_enable=YES

如上图所示创建文件夹报错的解决办法:
[root@wxj ~]# chown ftp.ftp -R /var/ftp/pub/

重命令报错了,需要配置文件中增加
[root@wxj ~]# vim /etc/vsftpd/vsftpd.conf anon_other_write_enable=YES ##默认没有,需要手动添加下这行 [root@wxj ~]# systemctl restart vsftpd

成功重命名,但是也是能删除的,相当不安全
备注:默认匿名用户的目录是755,是不能修改权限,否则会报错
[root@wxj ~]# mkdir /var/ftp/wxj [root@wxj ~]# chown ftp:ftp /var/ftp/wxj/ [root@wxj ~]# systemctl restart vsftpd

无法删除了哦。一般情况下匿名FTP服务器只允许读不允许写的哦
只允许用户登陆FTP服务器和上传
创建用户不允许登陆系统
[root@wxj ~]# useradd -s /sbin/nologin test1 [root@wxj ~]# useradd -s /sbin/nologin test2 [root@wxj ~]# echo "Aa123456"|passwd --stdin test1 [root@wxj ~]# echo "Aa123456"|passwd --stdin test2
修改配置文件
[root@wxj ~]# vim /etc/vsftpd/vsftpd.conf # 修改 anonymous_enable=NO:禁止匿名用户登录 local_enable=YES:允许本地用户登录 chroot_list_enable=YES:激活chroot 功能 chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名 # 增加 local_root=/var/www/html:设置本地用户的根目录为/var/www/html allow_writeable_chroot=YES :允许锁定的用户有写的权限
创建chroot文件
[root@wxj ~]# vim /etc/vsftpd/chroot_list test1 test2
权限修改
[root@wxj ~]# chmod -R o+w /var/www/html/ [root@wxj ~]# ll -d /var/www/html/ drwxr-xrwx 3 root root 35 9月 16 10:07 /var/www/html/ [root@wxj ~]#
重启服务
[root@wxj ~]# systemctl restart vsftpd
测试
FTP设置虚拟用户登陆
[root@wxj ~]# yum install pam* libdb-utils libdb* --skip-broken -y
[root@wxj ~]# vim /etc/vsftpd/ftpusers.txt wxj 123456
[root@wxj ~]# db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
[root@wxj ~]# chmod 700 /etc/vsftpd/vsftpd_login.db
[root@wxj ~]# vim /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login account required pam_userdb.so db=/etc/vsftpd/vsftpd_login

[root@wxj ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES userlist_enable=YES tcp_wrappers=YES pam_service_name=vsftpd guest_enable=YES guest_username=ftpuser user_config_dir=/etc/vsftpd/vsftpd_user_conf virtual_use_local_privs=YES
[root@wxj ~]# mkdir -p /etc/vsftpd/vsftpd_user_conf/
[root@wxj ~]# vim /etc/vsftpd/vsftpd_user_conf/wxj //虚拟用户配置文件路径 local_root=/home/ftpuser/wxj //允许登陆用户有写权限 write_enable=YES //以下为允许匿名用户的各种权限 anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
[root@wxj ~]# mkdir /home/ftpuser/wxj
[root@wxj ~]# chown -R ftpuser:ftpuser /home/ftpuser/
[root@wxj ~]# systemctl restart vsftpd
测试,可以访问和创建文件
中间也遇到了一系列问题,最后查看日志发现是pam的问题,pam需要注释掉下面的内容。
查看secure的日志报错如下

登陆报错530 Login incorrect
连接失败(Connection closed by server)
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。