基本安装
yum install vsftpd
然后编辑配置文件/etc/vsftpd/vsftpd.conf
关闭匿名访问
anonymous_enable=NO
开启日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
开启本地用户限制(假根)
chroot_local_user=YES
配置限制的用户能有写权限
allow_writeable_chroot=YES
守护模式(还有一种是独立模式,大规模访问使用)
listen=NO
到此为止,重启ftp服务,就可以正常使用本地用户登录。
/etc/vsftpd/目录下:
ftpusers:此文件是pam限制ftp用户访问登录(可以查看/etc/pam.d/vsftpd)。
user_list: 此文件是vsftpd服务本身限制ftp用户访问登录
配置FTP虚拟用户
(一旦开启虚拟用户配置,本地用户就访问失效,因为需要配置pam)
1.添加到配置文件末尾
# virtual user defined
guest_enable=YES
虚拟用户的宿主用户
guest_username=vftpuser
user_config_dir=/etc/vsftpd/userconf
2.创建虚拟用户和密码:
vi /etc/vsftpd/vftpuser.txt
添加用户和密码(例如)
zhangsan
123456
lisi
654321
然后再将txt文件转化为db文件(db_load命令需要安装)
db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
3.修改ftp认证方式,编辑/etc/pam.d/vsftpd
先注释全部,然后添加下面配置
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser
4.然后创建虚拟用户自己的配置文件
进入配置目录/etc/vsftpd/userconf
创建和虚拟用户用户名相同的文件
vi zhangsan
添加下面配置,使虚拟用户可以增删改查
local_root=/ftp/upload
write_enable=YES
virtual_use_local_privs=YES
5.最后重启服务
注意:ftp服务器使用虚拟用户更加安全
附录:vsftpd配置主动模式和被动模式及其原理
原理 :
主动 FTP :
命令连接:客户端 >1024 端口 → 服务器 21 端口
数据连接:客户端 >1024 端口 ← 服务器 20 端口
被动 FTP :
命令连接:客户端 >1024 端口 → 服务器 21 端口
数据连接:客户端 >1024 端口 ← 服务器 >1024 端口
介绍:
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。概括一下就是:主动模式:服务器向客户端敲门,然后客户端开门被动模式:客户端向服务器敲门,然后服务器开门所以,如果你是如果通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门而且有时候,客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口
主动配置参数:
port_enable=YES|NO
如果你要在数据连接时取消PORT模式时,设此选项为NO。默认值为YES。
connetc_from_port_20=YES|NO(默认配置文件写了YES)
控制以PORT模式进行数据传输时是否使用20端口(ftp-data)。YES使用,NO不使用。默认值为NO,但RHL自带的vsftpd.conf文件中此参数设为YES。
ftp_data_port=port number
设定ftp数据传输端口(ftp-data)值。默认值为20。此参数用于PORT FTP模式。
port_promiscuous=YES|NO
默认值为NO。为YES时,取消PORT安全检查。该检查确保外出的数据只能连接到客户端上。小心打开此选项。
被动配置参数:
pasv_enable=YES|NO
YES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。
pasv_min_port=port number
pasv_max_port=port number
设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高。
注意:
1.注意防火墙的配置
2.不管服务器端是主动还是被动,客户端用ftp连接时,用的passive模式
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。