1.实验描述

注: vsftpd是一个较为安全的FTP服务器软件,本次使用vsftpd配置ftp服务器。 本次实验适用于新手入门学习

①实验内容

1)开放实体用户登录
使用者登陆FTP的时候显示欢迎消息;系统帐号不允许登陆;允许实体用户进行上传、下载、建立目录及修改文件;设置用户新建文件、目录的umask为002。
2)仅允许匿名登陆
匿名登陆时显示欢迎消息;仅开放anonymous登陆,且不需要密码;限制文件转输速度为30KB/s;文件连接过程超过60秒没有回应就断开连接;anonymous超过10分钟没有动作就断线;最大同时上线人数限制为50人,同一IP的最大连线数为5。

②主要用到的几个文件:

/etc/vsftpd/vsftpd.conf 主要配置文件,格式为“参数=设定值”,不能有多余的空格。
/etc/pam.d/vsftpd 用来作身份验证
/etc/vsftpd/ftpusers 用来设定不允许登录的用户账号
/etc/vsftpd/user_list 用于控制用户的登录
/etc/vsftpd/chroot_list 这个文件默认不存在,需要手动建立。主要是可以将某些账号的使用者chroot在他们的家目录下。但这个文件要生效与vsftpd.conf内的chroot_list_enable,chroot_list_file两个参数有关。
/usr/sbin/vsftpd 这是vsftpd的主要执行脚本。
/var/ftp 这是匿名登录的根目录。

2.相关的配置参数(仅供参考,不是全部使用)

匿名用户设置

anonymous_enable=yes 用来设置允许匿名登录
anon_upload_enable=yes 开放上传权限,允许匿名上传
anon_mkdir_write_enable=yes 设置匿名用户创建目录的同时可以在此目录中上传文件。
anon_other_write_enable=yes 设置匿名账号可以有删除的权限。
anon_world_readable_only=no 若设置为yes的时候,匿名用户不仅可以上传和建立目录,而且可以删除和更改文件和目录的权限。
anon_root=/var/ftp 设置匿名用户登录后所在的目录。

系统界面设置

dirmessage_enable=yes 设置是否显示目录信息。当切换目录时,显示目录下.message的内容。
connect_form_port_20=yes 启用FTP数据端口20的数据连接。
listen_port=21 设置FTP服务器监听客户端连接使用21端口。
ftpd_banner=welcome 设置欢迎信息。
listen=yes 设置独立的VSFTPD服务器。
local_root=/var/ftp 设置本地用户登录后的目录。
write_enable=yes 开放本地用户写的权限

本地用户权限设置

表示Linux系统上的用户对该FTP服务器的访问权限,如root用户,tom和john用户等。
local_enble=yes 本地帐户能够登陆,这样/etc/passwd内的帐号才可以登录。
userlist_enable=yes 决定usftpd.user_list文件生效,no表示不生效。
local_max_rate=0 本地用户所能使用的最大传输速度,单位是B/s。设置为0表示不受速度限制。

服务相关设置

anon_max_rate=0 匿名用户所能使用的最大传输速度,单位是B/s。设置为0表示不受速度限制。
max_clients=0 表示服务器最多可以连接多少客户端。0表示不限制,具体的数字表示客户端最大的限制数目。
max_per_ip=2 表示同一个ip的客户端最多可以最大连接数量是2。
accept_timeout=60 表示连接服务器的超时时间,单位是秒。
data_connection_timeout=120 表示数据连接的超时时间,单位是秒。
idle_session_timeout=600 表示600秒内对服务器没有任何操作后断开服务器连接,单位是秒。

传输模式设置

ascii_download_enable=yes 设置启用ASCII模式下载数据。默认是no。
ascii_upload_enable=yes 设置启用ASCII模式上传数据。默认是no。

3.安装FTP服务

# yum install vsftpd -y

4.开放实体用户登录

①设置PAM

# vim /etc/pam.d/vsftpd

一般这个是系统已经设置好了的,我们进去可以进去查看一下。

centos7修改ftp用户主目录 centos ftp 配置_运维

②vsftp主配置文件

# vim /etc/vsftpd/vsftpd.conf

centos7修改ftp用户主目录 centos ftp 配置_centos_02

centos7修改ftp用户主目录 centos ftp 配置_服务器_03


设置完后保存退出。

③重启vsftpd服务

# service vsftpd restart

倘若出现错误,可以根据提示进行修改。

④设置欢迎界面

# vim /etc/vsftpd/welcome.txt

在文件中输入欢迎信息:

centos7修改ftp用户主目录 centos ftp 配置_centos7修改ftp用户主目录_04


然后保存退出

⑤建立限制系统用户登录的文件

# vim /etc/vsftpd/user_list

centos7修改ftp用户主目录 centos ftp 配置_运维_05

⑥建立账户

添加用户 twentyf

centos7修改ftp用户主目录 centos ftp 配置_运维_06

5.测试仅开放实体用户登录

打开DNS服务(详细配置可看我以前的博客,必须要使客户端连接上以centos7为主机的DNS服务器)

centos7修改ftp用户主目录 centos ftp 配置_centos_07


登录客户端进行测试

centos7修改ftp用户主目录 centos ftp 配置_运维_08

centos7修改ftp用户主目录 centos ftp 配置_服务器_09

centos7修改ftp用户主目录 centos ftp 配置_centos_10

6.chroot的使用

通过chroot可以设置某些帐号登陆后不允许离开他的家目录。设定的方法很简单,修改vsftpd.conf,增加以下的项目:

1.建立要被chroot的使用者文件

# vim /etc/vsftpd/chroot_list

centos7修改ftp用户主目录 centos ftp 配置_centos_11

2.把这两行的的注释符号去掉

centos7修改ftp用户主目录 centos ftp 配置_服务器_12


centos7修改ftp用户主目录 centos ftp 配置_运维_13


保存退出,重启vsftpd服务器

这样就完成了。

7.仅开放匿名登录

1.匿名访问的根目录是/var/ftp,也就是匿名访问看到的是/var/ftp目录下的文件。先在该目录下建立linux和gnu文件夹,假设是用于存放提供下载的文件。

centos7修改ftp用户主目录 centos ftp 配置_linux_14


centos7修改ftp用户主目录 centos ftp 配置_运维_15

2.配置vsftpd.conf文件

centos7修改ftp用户主目录 centos ftp 配置_linux_16

centos7修改ftp用户主目录 centos ftp 配置_运维_17


centos7修改ftp用户主目录 centos ftp 配置_服务器_18

3.保存并退出,创建目录upload并且改变其所有者。

centos7修改ftp用户主目录 centos ftp 配置_服务器_19

8.测试仅开放匿名用户登录

1.打开客户端进行测试匿名登录

centos7修改ftp用户主目录 centos ftp 配置_服务器_20


2.测试匿名用户能否上传文件和建立目录

centos7修改ftp用户主目录 centos ftp 配置_服务器_21


上传文件可以删除

centos7修改ftp用户主目录 centos ftp 配置_centos_22


3.设置匿名用户能上传不能下载

centos7修改ftp用户主目录 centos ftp 配置_centos_23

保存退出后重启服务,去客户端测试

centos7修改ftp用户主目录 centos ftp 配置_centos_24