centos 7 安装 FTP

ZephyrXT 发布于 阅读:64

https://www.jianshu.com/p/05dc6455b513

https://phoenixnap.com/kb/how-to-setup-ftp-server-install-vsftpd-centos-7


安装 vsftpd
安装前先查看 ftp 是否已经安装,使用 yum 安装

shell> vsftpd -v
shell> yum -y install vsftpd
根据自己需求,修改 ftp 配置文件 /etc/vsftpd/vsftpd.conf

注意:每行配置末尾不能有空白字符

anonymous_enable=NO    # 是否允许匿名访问
local_enable=YES      # 是否允许使用本地帐户进行 FTP 用户登录验证
local_umask=022      # 设置本地用户默认文件掩码022
chroot_local_user=YES   # 是否限定用户在其主目录下(NO 表示允许切换到上级目录)
#chroot_list_enable=YES # 是否启用限制用户的名单(注释掉为禁用)
chroot_list_file=/etc/vsftpd/chroot_list # 用户列表文件(一行一个用户)
allow_writeable_chroot=YES # 如果启用了限定用户在其主目录下需要添加这个配置,解决报错 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
xferlog_enable=YES     # 启用上传和下载的日志功能,默认开启。
use_localtime=YES     # 是否使用本地时(自行添加)
userlist_enable=YES 
chroot_local_user 与 chroot_list_enable 的组合效果如下:

  chroot_local_user=YES chroot_local_user=NO
chroot_list_enable=YES 1. 所有用户都被限制在其主目录下
2. 使用 chroot_list_file 指定的用户列表,这些用户作为“例外”,不受限制 1. 所有用户都不被限制其主目录下
2. 使用 chroot_list_file 指定的用户列表,这些用户作为“例外”,受到限制
chroot_list_enable=NO 1. 所有用户都被限制在其主目录下
2. 不使用 chroot_list_file 指定的用户列表,没有任何“例外”用户 1. 所有用户都不被限制其主目录下
2. 不使用 chroot_list_file 指定的用户列表,没有任何“例外”用户
注意:如果设置了 local_enable=YES ,自带

启动 ftp 服务
修改 SELinux 配置

# 查看当前配置
shell> getsebool -a |grep ftp
# 设置 ftp 可以访问 home 目录
shell> setsebool -P ftp_home_dir=1
# 设置 ftp 用户可以有所有权限
shell> setsebool -P allow_ftpd_full_access=1
或者关闭 SELinux

shell> setenforce 0  
setenforce 0 设置SELinux 成为permissive模式 (关闭SELinux)
setenforce 1 设置SELinux 成为enforcing模式 (开启SELinux)

设置防火墙

# 允许 ftp 服务
shell> firewall-cmd --permanent --zone=public --add-service=ftp
# 重新载入配置
shell> firewall-cmd --reload
启动 ftp 服务

shell> systemctl start vsftpd
用户管理
新建用户
使用 useradd 命令添加一个用户

# 添加用户 ftpuser 
# -d:指定用户主目录 
# -s:指定用户所用的shell,此处为/sbin/nologin,表示不登录
shell> useradd ftpuser -d /home/ftp1 -s /sbin/nologin
shell> passwd ftpuser
删除用户
# -r:主目录及文件一并删除
shell> userdel -r ftpuser 
* 主动模式与被动模式
ftp 的主动模式(Port 模式)与被动模式(PASV 模式)的区别:https://www.cnblogs.com/xiaohh/p/4789813.html
本文推荐使用被动模式,vsftp 默认即为被动模式

开启被动模式(PASV)
在 /etc/vsftpd/vsftpd.conf 配置文件添加如下配置

pasv_enable=YES # 是否允许数据传输时使用PASV模式(默认值为 YES)
pasv_min_port=port port_number # PASV 模式下,数据传输使用的端口下界(0 表示任意。默认值为 0)把端口范围设在比较高的一段范围内,比如 50000-60000,将有助于安全性的提高.
pasv_max_port=port_number # PASV 模式下,数据传输使用的端口上界(0 表示任意。默认值为 0)
pasv_promiscuous=NO # 是否屏蔽对 PASV 进行安全检查,默认值为 NO(当有安全隧道时可禁用)
pasv_address # PASV 模式中服务器传回的 ip 地址。默认值为 none,即地址是从呼入的连接套接字中获取。
开启主动模式(PORT)的配置
port_enable=YES  # 是否开启 Port 模式
connect_from_port_20=YES # 当 Port 模式开启的时候,是否启用默认的 20 端口监听
ftp_data_port=port_number # Port 模式下 FTP 数据传输所使用的端口,默认值为20

收到2条评论
avatar
ZephyrXT 2019-10-19 13:49
http://idc.wanyunshuju.com/li/8.html

[vsftpd-iptables]

  enabled = true

  filter = vsftpd

  action = iptables[name=VSFTPD, port=ftp, protocol=tcp]

  sendmail-whois[name=VSFTPD, [email protected]]

  logpath = /var/log/vsftpd.log

  maxretry = 5

  bantime = 1800
avatar
ZephyrXT 2019-10-19 13:48
https://www.cnblogs.com/panwenbin-logs/p/11307048.html

常见的日志解决方案如下:

xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog  
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
说明:

该方案将xferlog_enable设置为YES,表明FTP服务器记录上传下载的情况,而将xferlog_std_format也设置为YES,则表明将记录的上传下载情况写在xferlog_file所指定的文件中,即/var/log/xferlog文件。
同时,该方案启用dual_log_enable,表明启用了双份日志。在用xferlog文件记录服务器上传下载情况的同时,vsftpd_log_file所指定的文件,即/var/log/vsftpd.log,也将用来记录服务器的传输情况。