一、安装并启动FTP服务
1.查询是否系统已经自带了vsftpd :rpm -q vsftpd
2.使用 yum 安装vsftpd:yum -y install vsftpd (或者使用rpm安装vsftpd:rpm -ivh vsftpd-3.0.2-22.el7.x86_64)
3.启动vsftpd服务:service vsftpd start (设置开机启动:systemctl enable vsftpd.service)
检查vsftpd是否开启:ps -e|grep vsftpd 或者 查看21端口是否被监听,netstat -an | grep 21
可以使用netstat -ntpl | grep vsftpd命令查看到系统现在监听的vsftpd的端口为 21
4.开启防火墙
放开21端口:firewall-cmd --zone=public --add-port=21/tcp --permanent
永久开放 ftp 服務:firewall-cmd --add-service=ftp --permanent (关闭ftp服务:firewall-cmd --remove-service=ftp --permanent)
在不改变状态的条件下重新加载防火墙:firewall-cmd --reload
可能用到的命令:
systemctl start firewalld 启动防火墙服务
firewall-cmd --add-service=ftp 暂时开放ftp服务
firewall-cmd --add-service=ftp --permanent永久开放ftp服務
firewall-cmd --remove-service=ftp --permanent永久关闭ftp服務
systemctl restart firewalld 重启firewalld服务
firewall-cmd --reload 重载配置文件
firewall-cmd --query-service ftp查看服务的启动状态
firewall-cmd --list-all 显示防火墙应用列表
firewall-cmd --add-port=8001/tcp 添加自定义的开放端口
iptables -L -n | grep 21 查看设定是否生效
firewall-cmd --state 检测防火墙状态
二、配置 FTP 权限
1、了解 VSFTP 配置
vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:
vsftpd.conf 为主要配置文件
ftpusers 配置禁止访问 FTP 服务器的用户列表
user_list 配置用户访问控制------这里的用户默认情况(即在/etc/vsftpd/vsftpd.conf中设置了userlist_deny=YES)下也不能访问FTP服务器
2、阻止匿名访问和切换根目录
匿名访问和切换根目录都会给服务器带来安全风险,我们把这两个功能关闭。编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:
# 禁用匿名用户 YES 改为NO anonymous_enable=NO
# 禁止切换根目录 删除# chroot_local_user=YES
编辑完成后保存配置,重新启动 FTP 服务 service vsftpd restart
其它配置项说明:
anonymous_enable=YES #允许匿名登陆
local_enable=YES #启动home目录
write_enable=YES #ftp写的权限
local_umask=022
dirmessage_enable=YES #连接打印的消息
connect_from_port_20=YES #20端口
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=300
accept_timeout=60
connect_timeout=60
ascii_upload_enable=YES #上传
ascii_download_enable=YES #下载
chroot_local_user=NO #是否限制用户在主目录活动
chroot_list_enable=YES #启动限制用户的列表
chroot_list_file=/etc/vsftpd/chroot_list #每行一个用户名
allow_writeable_chroot=YES #允许写
listen=NO
listen_ipv6=YES
pasv_min_port=50000 允许ftp工具访问的端口起止端口
pasv_max_port=60000
pam_service_name=vsftpd #配置虚拟用户需要的
userlist_enable=NO #配置yes之后,user_list的用户不能访问ftp
tcp_wrappers=YES
chroot_list 文件需要自己建,内容一行一个用户名字
anon_root=/data/ftp/public #修改匿名用户的访问路径
3 创建 FTP 用户
新建一个不能登录系统用户. 只用来登录ftp服务 ,这里如果没设置用户目录。默认是在home下:
useradd ftpuser -s /sbin/nologin
为ftpuser用户设置密码:passwd ftpuser
可能用到:
设置用户的主目录:usermod -d /data/ftp ftpuser
彻底删除用户:#userdel -rf Fuser //强制删除用户及相关目录文件
变更用户属性:#usermod -s /sbin/nologinftpuser (/bin/bash:可以登录shell,/bin/false:禁止登录shell )
查看当前服务:#netstat -lntp