安装 vsftpd
yum -y install vsftpd
创建系统用户
useradd -d /data/ftp -s /sbin/nologin uploaduser
echo 'uploaduser:XXXX' | chpasswd
修改vsftpd配置
# 禁止匿名用户登录及读写
anonymous_enable=NO
anon_upload_enable=NO
anon_world_readable_only=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许写入
write_enable=YES
local_umask=022
# 不允许下载
download_enable=NO
# 禁止登录消息提示
dirmessage_enable=NO
# 启用上传/下载日志
xferlog_enable=YES
xferlog_std_format=YES
# 禁止用户离开主目录
chroot_local_user=YES
# 主机的访问控制设置
tcp_wrappers=YES
pam_service_name=vsftpd
# 配置指定的用户连入
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
listen=YES
# 服务端口
listen_port=2211
# 数据端口
ftp_data_port=2210
# 关闭数据端口20
connect_from_port_20=NO
# 最大客户端数
max_clients=10
# 单个IP同时只能一个客户端连接
max_per_ip=1
# 空闲连接超时时间 10秒
idle_session_timeout=10
# 本地用户限速 1M
local_max_rate=1048576
# 匿名用户限速 500K
anon_max_rate=512000
# 客户端运行执行的命令
cmds_allowed=PASV,STOR,STRU,TYPE,USER,QUIT
# 设置vsftpd启动用户为nobody,而非root
nopriv_user=nobody
配置说明
- 用户限制
将允许连接的用户写入配置文件中:
echo 'uploaduser' > /etc/vsftpd/ftpusers
- 命令限制
如上文中的配置:cmds_allowed=PASV,STOR,STRU,TYPE,USER,QUIT
表示只允许客户上传,不允许查看列表、创建目录、切换目录、删除、改名等等操作。