8.2 vsftpd
8.2 vsftpd
vsftpd 的全称为”Very Secure FTP Daemon”。是 CGSL 中自带的默认 FTP 服务,使用 vsftpd 可以构建一个以安全为重的 FTP 服务器。
8.2.1 vsftpd 配置文件
vsftpd 是通过/etc/vsftpd/vsftpd.conf 文件来进行配置的。本节主要介绍该配置文件中的主要配置。
8.2.1.1 主要参数说明
|
anonymous_enable=YES # 允许匿名登录
local_enable=YES # 允许本地登录
write_enable=YES # 允许用户上传数据
local_umask=022 # 设置默认的掩码为 022
dirmessage_enable=YES # 当用户进入某个目录时,会显示该目录需要注意的内容
xferlog_enable=YES # 默认上传或者下载的日志被记录在/var/log/vsftpd.log 中
connect_from_port_20=YES # 用 20 端口作为数据传输端口
xferlog_std_format=YES # 使用标准格式等级上传或者下载记录
listen=YES # 当设为 yes 时,vsftpd 以 standalon 状态运行,默认开启
pam_service_name=vsftpd # 列出与 vsftpd 相关的 PAM 文件
userlist_enable=YES
# 当该选项设为 yes 时,启用配置文件/etc/vsftpd/user_list
# 1:若此时没有 userlist_deny=NO,则/etc/vsftpd/user_list 中用户不能访问 ftp
# 2:若存在 userlist_deny=NO,则仅接受/etc/vsftpd/user_list 中存在用户登录 ftp 的请求(前提是这些用户不存在于/etc/vsftpd/ftpusers 中)
# 当为 NO 时,不启用/etc/vsftpd/user_list 配置文件
tcp_wrappers=YES # 启用 TCP Wrapper 支持
sendport_off_enable=NO # 不使用 sendport 模式
|
8.2.1.2 其它常用设置
● guest_enable=YES
● guest_username=ftp
# guest用户名,即所有非匿名用户将具有 guest 用户身份。
● local_root=/var/ftp
● anon_root=/var/ftp
# 设定本机用户和匿名用户的主目录
● pasv_enable=YES
#port_enable=YES
# port 为主动模式,pasv 为被动模式,两个不能同时使用,必须注释掉一个
● pasv_min_port=9000
● pasv_max_prot=9200
# 使用被动模式时端口的范围,例为 9000-9200,只有在被动模式下有用
● use_localtime=YES
# 使用使用本地时间,如不使用,则使用格林威治时间,建议用 YES
● accept_timeout=60
# 被动模式下服务器等待客户端的延时时间 单位为秒
● max_clients=0
# 在standalone模式下最大客户连接数
● max_pre_ip=0
# 每个客户端的最大连接数
● local_max_rate=0
# 本地用户最大传输速率,单位为字节/秒;0 为不限
● anon_max_rate=0
# 匿名用户最大传输速率,单位为字节/秒;0 为不限
● chroot_local_user=YES
● chroot_list_enable=YES
● chroot_list_file=/etc/vsftpd/chroot_list
# 锁定用户主目录的设置 如果 chroot_list_enable=YES 时,用户主目录锁定,在 ftp 时切换到主目录是就切换到主目录下,不会访问主目录的上层目录
# /etc/vsftpd/chroot_list 的格式为:用户名 锁定的目录
其他参数可使用命令 man vsftpd.conf 进行查阅。
8.2.2 vsftpd 配置实例
下面以一个实例介绍 vsftpd 服务器的配置。
vsftpd 配置要求如下:
●不允许匿名登录;
●能使用 root 或 test01 用户登录;
●test01 用户需锁定用户主目录为/home/test01
1.首先查询 vsftpd 软件的版本
# rpm -q vsftpd
vsftpd-3.0.2-9.el7.x86_64
如果没有可以从 CGS Linux 安装盘上查找,找到后执行 rpm 命令安装,示例如下:
# rpm -ivh vsftpd-3.0.2-9.el7.x86_64.rpm
2.编辑/etc/vsftpd/vsftpd.conf 文件:
1)将 anonymous_enable=YES 修改为 anonymous_enable=NO
2)在文件末添加:
|
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
|
3.为了能使 root 用户登录,编辑/etc/vsftpd/ftpuser 和/etc/vsftpd/user_list 文件:
将 root 行用”#”注释掉
4.编辑或新建/etc/vsftpd/chroot_list 文件,加入:
test01 /home/test01
5.重启 vsftpd 服务:
# systemctl restart vsftpd
6.使用过程中可能遇到由于 SELinux 会防止某些服务访问用户的主目录的问题,错误提示如:
500 OOPS: cannot change directory:/root
可执行如下命令关闭 SELinux 解决:
# setenforce 0