ftp服务
1. 安装
yum install -y vsftpd
2. 配置文件介绍
cd /etc/vsftp/
/etc/vsftpd/vsftpd.conf 是核心配置文件。
/etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
/etc/vsftpd/user_list 是白名单文件,是允许访问 FTP 服务器的用户列表。
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些变量和设置
3. 启动
systemctl restart vsftpd
systemctl enable vsftpd
4. FTP连接方式
有时候,完成vsftpd安装后发现无法远程连接,仍需要完成以下配置。
原因分析:
FTP连接方式分为:主动模式和被动模式。默认为被动模式。
如果为被动模式,服务器端必须监听至少一个额外的被动模式端口。所以,若只开通20和21端口是不够的,需要另外配置入站端口。
FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接。FTP服务程序一般会支持两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode),我先说说这两种不同模式连接方式的分别。
先假设客户端为C,服务端为S.
Port模式:(21端口(接收命令),20端口(发送数据))
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。
pasv_enable=NO // 启动主动模式
Pasv模式: (21端口(接收命令),一个自己设置的端口范围(被动的发送数据))
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。
pasv_enable=YES // 启动被动模式 默认的
pasv_min_port=8800 // 开启发送数据的最小端口
pasv_max_port=8899 // 开启发送数据的最大端口
设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高。
5. 配置 vsftpd 限制 FTP 账户访问其它目录
使用 vsftpd 搭建 FTP 服务,可以配置用户登录后,限制访问其它的目录,只能进它的主目录。 配置方法如下:
local_root= /var/www #本地用户登录后自动转到的ftp根目录
chroot_local_user=YES #将所有用户限定在指定的主目录内
chroot_list_enable=NO #不启用列外的用户列表
chroot_list_file=/etc/vsftpd/chroot_list #指定列外的用户列表文件
详解:
关于chroot_local_user的设置,通常我们倾向于:全局禁止跳出主目录,使用chroot_list添加例外
如果chroot_local_user=YES;所有用户都被限制在其主目录下
chroot_list_enable=NO,不使用chroot_list_file指定的用户列表,没有任何“例外”用户
chroot_list_enable=YES,那么userlist_file就是白名单(表示文件里面的用户可以不被限制在其主目录下)
如果chroot_local_user=NO;所有用户都不被限制其主目录下
chroot_list_enable=NO,不使用chroot_list_file指定的用户列表,没有任何“例外”用户
chroot_list_enable=YES,那么userlist_file就是白名单(表示文件里面的用户可以被限制在其主目录下)
6. 启用可以登录ftp的用户白名单配置
vsftpd有两个默认存放用户名单的文件(默认在/etc/vsftpd/ 目录下),来对访问FTP服务的用户身份进行管理和限制。vsftpd会分别检查两个配置文件,只要是被任何一个文件所禁止的用户,FTP访问到本机的请求都会被拒。
user_list:可以作为用户白名单,或者是黑名单,或者无效名单。完全由userlist_enable和userlist_deny这两个参数决定。
ftpusers:只能是用户黑名单,不受任何参数限制。
userlist_enable=YES #启动用户列表
userlist_deny=NO #决定是否对用户列表的用户拒绝访问ftp
userlist_file=/etc/vsftpd/user_list
详解:
如果userlist_enable=YES #启动用户列表
userlist_deny=NO,那么userlist_file就是白名单
userlist_deny=YES,那么userlist_file就是黑名单
简单配置
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
tcp_wrappers=YES
网友评论