您的位置:首页 > 运维架构 > Linux

Linux安装及配置vsftpd

2016-02-28 17:37 537 查看
vsftpd(Very Secure FTP Daemon)是一款流行的Linux系统FTP服务器程序。下面讲解一下vsftpd的安装、配置及使用。

一、vsftpd的安装

1、使用 yum install vsftpd 安装ftp服务器程序

[root@aliyun ~]# yum install vsftpd

2、使用 yum install ftp 安装ftp客户端程序

[root@aliyun ~]# yum install ftp

3、启动 vsftpd

[root@aliyun ~]# service vsftpd start

4、使用 ftp 客户端连接登陆 vsftpd 服务器

[root@aliyun ~]# ftp
ftp > open localhost
Name (localhost:root): anonymous
Password:
230 Login successful
ftp > ls
drwxr-xr-x 2 0 0 4096 Nov 20 19:22 pub

注:

1)安装 vsftpd 时默认允许匿名登陆,所以在使用客户端连接到 vsftpd 服务器时,可以使用登陆名为 ftp 或 anonymous,口令为空的方式登陆。

2)匿名用户不能离开匿名用户的家目录 /var/ftp/pub,且只能下载,不能上传

3)如果使用service vsftpd start无法启动 vsftpd 服务的话,可以使用 /etc/rc.d/init.d/vsftpd start 来启动

二、vsftpd的配置

1、默认配置详解

# 允许匿名用户登陆,登陆时登陆名为 ftp 或 anonymous,口令为空
anonymous_enable=YES
# 允许本地用户登陆,登陆名为本地用户名,口令为本地用户的口令
local_enable=YES
# 允许本地用户写拥有FTP服务器文件的写权限
write_enable=YES
# 本地用户的文件默认掩码022,文件的默认最大权限为666,也就是上传文件的默认权限为644
local_umask=022
# 激活目录的欢迎信息功能
dirmessage_enable=YES
# 启用上传和下载日志功能,该日志文件默认的存放位置为 /var/log/xferlog
xferlog_enable=YES
# 指定FTP使用20端口进行数据传输(默认FTP工作模式为被动模式,也就是PASV FTP,服务器将使用20端口与客户端进行数据传输)
connect_from_port_20=YES
# 启用xferlog的标准格式输出
xferlog_std_format=YES
# 设置vsftpd服务器不以standalone模式运行
listen=NO
# 支持ipv6
listen_ipv6=YES
# 设置PAM使用的名称,默认值为 /etc/pam.d/vsftpd
pam_service_name=vsftpd
# 启动user_list文件(该选项需与userlist_deny选项配合使用,userlist_deny默认为YES,也就是说默认请况下user_list表中的用户将被阻止登陆ftp服务器)
userlist_enable=YES
# 设置vsftpd与tcp wrapper组合来进行访问控制,YES的情况下,vsftpd将检查/etc/hosts.allow以及/etc/hosts.deny中的设置,来进行主机的访问控制
tcp_wrappers=YES

注:

1)在默认的配置中,我们可以看到,/etc/vsftpd/user_list文件中的用户是无法访问vsftpd服务器的,另外需要特别注意的是 /etc/vsftpd/ftpusers文件中的用户也是无法访问vsftpd服务器的,至于为何要分两个文件,因为user_list指定的是本地用户,而ftpusers指定的是虚拟用户。

三、vsftpd的本地测试用户

1、添加本地ftp测试用户 ftptest,并将该测试用户的家目录设置为 /home/ftptest

[root@aliyun ~]# useradd -d /home/ftptest ftptest

2、为ftptest用户设置密码

[root@aliyun ~]# passwd ftptest

3、限制ftptest使用telnet登陆

[root@aliyun ~]# usermod -s /sbin/nologin ftptest


四、限制本地测试用户只能访问家目录

在 /etc/vsftpd/vsftpd.conf 配置文件中添加如下信息:

# 限制指定用户只能访问家目录
chroot_list_enable=YES
# 设置受限制的用户配置文件
chroot_list_file=/etc/vsftpd/chroot_list

新建 chroot_list 文件,并将受限制的用户添加进去

[root@aliyun vsfptd]# touch chroot_list
[root@aliyun vsftpd]# echo ftptest >> chroot_list

设置成功后,重启 vsftpd

[root@aliyun vsftpd]# service vsftpd restart

注:

1)当我们限制用户不能跳出其家目录之后,使用该用户登陆FTP时会报错:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

原因是因为,如果该用户被限制在其家目录下,则该用户对家目录不能再拥有写权限,修复这个错误,可以使用

[root@aliyun ~]# chmod 500 /home/ftptest

来去掉ftptest对家目录的写权限,这时可能有人会问,去掉了写权限,那ftptest用户该怎么使用ftp来上传文件呢?其实可以通过在ftptest家目录下新建文件夹,再将文件上传到家目录的子目录下即可

当然还有一种解决方式是在vsftpd.conf中添加一行:

allow_writeable_chroot=YES
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: