vsftpd提供的三种登录方式

  1. 匿名登录

    不需要用户名和密码就能够登录到服务器里

  2. 本地用户方式登录

    需要用户和密码才能够登录,而且用户名和密码已经存在Linux服务器里面了

  3. 虚拟用户方式

    虚拟用户方式登录也需要用户名和密码,但是和本地用户登录的区别是虚拟用户登录所需要的用户名和密码并不存在于Linux系统里面

安装

[root@singledb ~]# chkconfig --list vsftpd

启动关闭和重启 service vsftpd start/stop/restart

将vsftpd设置为开机启动

[root@singledb ~]# chkconfig  vsftpd on

root@singledb ~]# chkconfig --list vsftpd

vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off

通过查看可以看到2到5的状态已经设置为on了,2到5是多用户级别。

init定义了Linux的7个运行级别(run level),每一个级别都对应了系统应该补充运行的某些特定的服务。

0是完全关闭系统的级别

1或者S是单用户模式

2到5是代表了多用户级别

6是重新引导的级别

配置

配置文件的位置 /etc/vsftpd/vsftpd.conf

vsftpd.conf 主要的配置文件

ftpusers 指定那些用户不能访问FTP服务器

user_list 指定那些用户可以访问FTP服务器,由vsftpd.conf文件中的userlist_deny的取值来决定的

vsftpd.conf配置文件参数如下:

ftpd_banner=welcome to ftp service: 设置连接服务器后的欢迎信息

idle_session_timeout=60:限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)

data_connection_timeout=120:设置客户机在进行数据传输时,设置空闲的数据中断时间

accept_timeout=60:设置在多长时间后自动建立连接

connect_timeout=60:设置数据连接的最大激活时间,多长时间断开,为别人所用

max_clients=200 指明服务器总的客户并发连接数为200

max_per_ip=3 指明每个客户机的最大连接数为3

local_max_rate=50000 本地用户最大传输速率限制

anon_max_rate=30000 匿名用户的最大传输速率限制

pasv_min_port=端口

pasv-max-port=端口号 定义最大与最小端口,0为表示任意端口;为客户端连接指明端口

listen_address=IP端口号 设置FTP服务来监听的地址,客户端可以用哪个地址来连接

listen_port=端口号 设置FTP工作的端口号,默认为21

chroot_local_user=YES 设置所有的本地用户可以chroot

chroot_local_user=NO 设置指定的用户能够chroot

chroot_list_enable=YES

chroot_lsit_file=/etc/vsftpd/chroot_list(只有/etc/vsftpd/chroot_lsit中的指定的用户才能够执行

local_root=path 无论哪个用户都能够登录的用户,定义登录账号的主目录,若没有指定,则每一个用户则进入到个人用户主目录;

chroot_local_user=yes/no 是否锁定本地系统账号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能往下;

chroot_list_enable=YES/NO 是否加载用户列表文件

userlist_deny=YES 表示上面所加载的用户目录是否允许拒绝登陆

userlist_file=/etc/vsftpd/user_list 列表文件

ftp用户管理

默认情况下,ftp根目录是/var/ftp。如果要修改这个目录的位置,可以更改/etc/passwd文件


[root@singledb ftp]# cat /etc/passwd | grep ftp

  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin


创建一个用户用来访问FTP,并制定该用户的FTP目录:

useradd -d /u02/qsftp qs

passwd qs

以上创建用户的方法可以用该账号登入系统,但是我们要创建的账号是可以登录FTP但是不可登录系统。

#useradd -d /var/www/html/qs -g ftp -s/sbin/nologin qs  -d是指定目录(必须为相对根的根路径,否则提示没有家目录),-g指定分组为ftp组,-s指定该用户不能够返回上一级。

#passwd qs 设置密码

vsftp限制用户访问其他目录

/etc/vsftpd/vsftpd.conf下

chroot_local_user=YES

chroot_list_enables=YES

#(default follows)chroot_list_file=/etc/vsftpd/vsftpd.conf_list  需要在相对应路径下编辑vsftpd.chroot_list文件,将受限制的用户列在其中

防止用户返回到上一级目录:

如果想禁止用户跳转到上级目录,可以设置

chroot_local_user=YES 前提;需要设置local_root目录;

然后将要禁止的用户添加到chroot_list里面即可


附录

匿名服务器的连接(独立的服务器)

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

Anonymous_enable=yes(允许匿名登录)

Dirmessage_enable=yes(切换目录时,显示目录下。message的内容)

Local_umask=022(FTP上本地的文件权限,默认是077)

Connect_from_port_20=yes(启用FTP数据端口的数据连接)

Xferlog_enable=yes(激活上传和下传的日志)

Xerlog_std_format=yes(使用标准的日志格式)

Gtpd_banner=XXXX(欢迎信息)

Pam_service_name=vsftpd(验证方式)

Listen=yes(独立的VSFTPD服务器)

开启匿名服务器的上传权限

在配置文件中添加一下的信息即可:

Anon_upload_enable=yes(开放上传权限)

Anon_mkdir_write_enable=yes(可创建目录的同时可以在此目录中上传文件)

Write_enable=yes(开放本地用户写的权限)

Anon_other_write_enable=yes(匿名账号可以有删除的权限)

开启匿名服务器的下传权限

在配置文件中添加如下信息即可

Anon_world_readable_only=no


普通用户FTP服务器的连接(独立服务器)

在配置文件中添加如下信息即可:

Local_enable=yes(本地账户能够登陆)

Write_enable=no(本地账户登陆后无权删除和修改文件)

功能:可以用本地账户登陆vsftpd服务器,有下载上传的权限

注:在禁止匿名登录的信息后匿名服务器照样可以登录但不可以上传下传

用户登陆限制进其他的目录,只能进它的主目录

设置所有的本地用户都执行chroot

Chroot_local_user=yes(本地所有的账户都只能在自己的家目录)

设置指定用户执行chroot

Chroot_list_enable=yes(文件中的名单可以调用)

Chroot_list_file=/任意指定的路径/vsftpd.chroot_list

注意:vsftpd.chroot_list是没有创建的需要自己添加,要想控制账号就直接在文件中加账号即可


限制本地用户访问FTP

Userlist_enable=yes(用userlist来限制用户的访问)

Userlist_deny=no(名单中的人不允许访问)

Userlist_file=/指定文件存放的路径/


查看谁登录了FTP,并杀死它的进程

ps -xf | grep ftp