基于centos 6.8 搭建测试环境ftp服务器
使用vsftpd搭建ftp
使用root用户用yum安装
1 安装vsftpd:
yum install -y vsftpd
2 创建一个普通用户 :
useradd -s /sbin/nologin virftp 指定用户的shell为nologin,不允许登录
vsftpd软件是允许系统用户以ftp方式(非SSH)登录系统的,登录后会进入用户家目录,为了安全起见,我们使用虚拟ftp用户映射到真实系统用户的方式,使用ftp服务,从而避免ftp用户直接登录系统。
3 创建虚拟ftp用户配置文件:
vim /etc/vsftpd/vsftpd_login
写入虚拟用户的用户名和密码:
test1 奇数行 写用户名
123 偶数行 写密码
test2 多个用户就写多组,中间不能有空行和空格
456 test1的密码为123,test2的密码为456
4 更改权限:
chmod 600 /etc/vsftpd/vsftpd_login
将文本文件转换成二进制文件:
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
5 创建虚拟用户的配置文件目录:
mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
6 创建虚拟用户的配置文件:
vim test1 此处的文件名必须和/etc/vsftpd/vsftpd_login文件里的用户名一致。
加入如下内容
local_root=/home/virftp/testuser1 定义虚拟用户的家目录
anonymous_enable=NO 不允许匿名用户登陆,如果允许则用YES
write_enable=YES 写权限,允许
local_umask=022 设定umask,用来控制用户创建文件和目录的默认权限
anon_upload_enable=NO 不允许匿名用户上传
anon_mkdir_write_enable=NO 不允许匿名用户创建目录和写权限
idle_session_timeout=600 空闲时限600秒,超时自动断开
data_connection_timeout=120 数据连接(请求)时限120秒,超时会自动断开
max_clients=10 客户端的最大连接数
7 创建虚拟ftp用户的家目录,并创建测试文件
mkdir /home/virftp/test1
touch /home/virftp/test1/1.txt
8 级联更改系统用户virftp权限
chown -R virftp:virftp /home/virftp
以下两行为在ftp上创建文件报错时添加的权限
chown -R virftp:virftp /var/ftp
chmod 755 -R /var/ftp
9 定义用户验证文件路径
vim /etc/pam.d/vsftpd 编辑ftp的用户认证文件
在最前面加上:注意区分系统是32位还是64位
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
指定密码验证形式为文件形式,并指定路径路径
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
指定账户存储形式为文件,并指定账户存储文件路径
10 配置vsftp服务:
vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO 不允许匿名用户登录
将#anon_upload_enable=YES 改为 anon_upload_enable=NO 不允许匿名用户上传
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
不允许匿名用户创建目录和写入
再增加如下内容
chroot_local_user=YES 允许切换到系统用户
guest_enable=YES 打开来宾用户
guest_username=virftp 定义来宾用户为virftp
virtual_use_local_privs=YES 允许虚拟用户映射到系统用户
user_config_dir=/etc/vsftpd/vsftpd_user_conf 定义用户配置文件目录
#allow_writeable_chroot=YES 允许写权限。我的centos6.8虚拟机不能写这个参数,启动会报错
11 vsftpd服务
service vsftpd start 启动
service vsftpd stop 停止
service vsftpd restart 重新启动
12 测试:
安装lftp客户端
yum install -y lftp
以test1用户的身份访问ftp服务器,并输入密码
lftp test1@192.168.x.x
回车输入密码
执行命令ls,看是否正常输出
若不正常查看日志 /var/log/messages 和 /var/log/secure,一般在 /var/log/secure
tail -20f /var/log/secure
windows下安装filezilla客户端软件,进行测试
13 报错处理:
(1)Login failed: 500 OOPS: bad bool value in config file for: anonymous_enable
解决方案:查看 /etc/vsftpd/vsftpd.conf 文件中每一行后面是否有空格,严格要求不能有空格
(2)unknown limit item ‘noproc’
解决方案: vim /etc/security/limits.conf , 看看红框中的参数是否有问题,我还遇到过 nofile 变成 nofil 的情况