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)

解决方案:
vi /etc/pam.d/vsftpd
注释掉/etc/pam.d/vsftpd文件里这一行:
#auth required pam_shells.so
第二种解决方案
vi /etc/shells
在最后一行下边加上
/sbin/nologin
任选一种。
最好重启服务
systemctl start vsftpd
配置被动模式
1、设置被动模式打开的配置文件
#vim /etc/vsftpd/vsftpd.conf
添加或修改以下内容
connect_from_port_10021=YES //这里的10021端口,你可以修改为你喜欢的 pasv_min_port=16000 //设置被动模式的端口范围,最小端口号~最大端口号 pasv_max_port=17000
需要防火墙放通16000-17000端口号才可以
开启TLS
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/xxx.pem
rsa_private_key_file=/etc/ssl/xxx.key
重启服务
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。