安装vsftpd
apt-get update
apt-get install vsftpd
配置vsftpd
vi /etc/vsftpd.conf
一般配置选项如下:
# listen=YES
listen_ipv6=YES
# listen 和 listen_ipv6 开一个就行;两个都开,vsftpd就报错了
# 匿名用户访问
anonymous_enable=NO
# 本地用户访问
local_enable=YES
write_enable=YES
local_umask=022
anon_mkdir_write_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
通常我们会在chroot_local_user 以及chroot_list_enable 搭配来使用配置权限。
chroot_local_user #是否将所有用户限制在用户当前的主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)
chroot_list_enable #是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
chroot_list_file=/etc/vsftpd/chroot_list # 简单点来说,这个文件就是为了我们上面组合而存在的,如果我们禁用名单开启。就是开出一个额外的附属情况给一些账号,让他们做出例外的特权。
让我们举个例子:
假设有ftp1, ftp2两个ftp用户, 计划让ftp1用户锁定在主目录下,不允许切换到其他目录, 但是允许ftp2用户自由切换目录,则可以分如下两种方式实现:
方式一:
令:
chroot_local_user=YES
chroot_list_enable=YES
然后执行
[root@centos6 ~]# vi /etc/vsftpd.chroot_list
里面加入用户名ftp2即可
解释:chroot_local_user=YES将所有用户限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=YES,即全体用户都被“限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“不会被限制在主目录下”的用户。
方式二:
令:
chroot_local_user=NO
chroot_list_enable=YES
然后执行
[root@centos6 ~]# vi /etc/vsftpd.chroot_list
里面加入用户名ftp1即可
解释:chroot_local_user=NO则所有用户不被限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=NO,即全体用户都“不被限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“会被限制在主目录下”的用户。
其他情况:
对于chroot_local_user和chroot_list_enable的组合还有这样两种情况:
chroot_local_user=YES
chroot_list_enable=NO
和
chroot_local_user=NO
chroot_list_enable=NO
当chroot_list_enable=NO时,就不再启用chroot_list_file,此时就是单纯的把全部用户限定或不限定在主目录下了!
补充:
关于chroot_local_user的设置,通常我们倾向于:全局禁止跳出主目录,使用chroot_list添加例外!即:使用Case 1的设置!
匿名用户默认的root是/var/ftp
增加用户组和用户
groupadd ftpuser
mkdir /home/remote1
useradd -g ftpuser remote1
passwd remote1
# 输入新密码
vim /etc/passwd
remote1:x:1001:1001::/home/remote1:/sbin/nologin
vi /etc/shells
#在最末尾添加一行
/sbin/nologin
chown -R remote1:ftpuser /home/remote1
chmod 700 /home/remote1
重启vsftpd服务
service vsftpd restart
查看服务状态
service vsftpd status
查看端口监听状态:
netstat -nap |grep LISTEN
vsftpd监听21端口
FTP客户端
Mac下ftp客户端可以使用FileZilla: 下载链接
网友评论