linux环境中vsftpd的常用配置
2019-01-16 本文已影响94人
jsbintask

Linux上vsftpd的配置
最近正好项目遇上需要配置ftp的情况,感觉对于ftp的配置都差不多,所以特意写下本篇博客,话不多说,直接动手。
配置最终目的如下:
1.取消匿名登陆,必须账号密码登陆
2.只有配置文件中的用户允许登陆
3.所有用户登陆后访问相同的ftp环境
4.所有用户不能够切换到上级目录
新建用户
新建一个不能ssh登陆的用户,作为我们的ftp的访问用户(不用root)
useradd ftp_user -d /home/ftp_user -s /sbin/nologin ftp_user --新建用户 ftp_user并且主目录为/home/ftp_user
chmod -R 755 /home/ftp_user --修改该目录访问权限
passwd ftp_user --设置该账号密码
安装配置vsftpd
yum -y install vsftpd --安装
cd /etc/vsftpd --切换到vsftp目录下
mv vsftpd.conf vsftpd.conf.bak --备份原来的配置文件
wget http://resource.jsbintask.cn/vsftpd/vsftpd.conf --获取配置文件
改配置文件已经做好了大多数的配置,如下:

接下来编辑改配置文件,vim vsftpd.conf,在最下方加入我们一开始配置用户设置的主文件夹:
local_root=/home/ftp_user
接下来编辑ftpusers,删除所有配置,空文件就行(该文件是哪些用户不能访问)
编辑user_list(该文件控制哪些用户可以登录ftp),加入我们刚刚添加的用户ftp_user,删掉其他所有行数,例如:

只有用户jason和root可以登录。
启动
service vsftpd start
如果启动过程中报错,重新编辑vsftp.conf,注释掉 改行(这是vsftpd2.3以后的新配置):

重新启动,成功。
接下来使用ftp工具连接即可
问题解决:
1. 关闭防火墙或者开启如下端口 20, 21(ftp), 61001-62000范围端口。
2.
wget http://resource.jsbintask.cn/vsftpd/config.sh
运行 config.sh,如果运行失败,请修改脚本中的 setsebool -P tftp_home_dir 1 为 setsebool -P ftp_home_dir 1
3. 编辑安全配置文件 vim /etc/sysconfig/selinux,SELINUX=enforcing 改为 SELINUX=disabled
再次访问,成功。
