这里写自定义目录标题
安装vsftpd及服务状态检查防火墙配置 FTP配置 限制匿名访问 新建ftp用户及限制ftp用户登录系统 其他常用命令 常见问题 建议和总结 安装vsftpd及服务状态检查
执行如下命令完成ftp安装
安装ftp服务时会默认创建用户,建议使用root用户安装
查看ftp服务状态:
开启ftp服务
防火墙配置 配置了iptables或者firewalld防火墙,记得将ftp端口或者ftp服务放开限制(默认端口21情况下)
如:
firewall-cmd --permanent --zone=public --add-service=ftp
注意:使用云服务的小伙伴,注意检查云服务器的网络安全组,是否限制了入栈和出栈规则(一般来说放开入栈的21端口即可)。FTP配置 限制匿名访问 取消匿名访问
vim /etc/vsftpd/vsftpd.conf
变更anonymous_enable=YES 为 anonymous_enable=NO
新建ftp用户及限制ftp用户登录系统
新增用户(原理,新增系统用户,然后限制新增用户登录系统)
useradd ftpuser 设置用户密码(记得输入两边)
password ftpuser 设置用户目录
chown -R ftpuser:ftpuser /var/ftp/pub 设置不允许登录清单 4.1 查找nologin文件地址
which nologin
默认位置:/usr/sbin/nologin
4.2 将nologin写入shell配置
vim /etc/shells 将【which nologin】的查询结果写入到shells文件中,已经存在则无需修改
4.3 增加限制登录shell用户(ftpuser为限制的用户)
usermod -s /usr/sbin/nologin ftpuser
这样,ftpuser用户就被限制登录了,但是不影响ftp的使用
其他常用命令
ftp服务开机自启
systemctl enable vsftpd ftp服务重启
systemctl restart vsftpd ftp服务关闭
systemctl stop vsftpd 查看ftp服务端口状态
netstat -tunlp|grep ftp friewalld放开端口(–permanent 永久生效)
firewall-cmd --zone=public --add-port=21/tcp --permanent firewalld查看开放端口
firewall-cmd --list-ports firewalld 查看开发服务
firewall-cmd --list-services 删除用户(如下删除ftpuser)
userdel ftpuser 禁用用户(与该用户所有相关的操作均被禁止,如ftp登录)
passwd -l user 解除禁用用户
passwd -u user 常见问题 服务器发回了不可路由的地址。使用服务器地址代替
这种情况下主要发生在被动模式下(实际上主动模式不知道)的访问
修改配置文件
vim /etc/vsftpd/vsftpd.conf
添加如下内容(端口及ip记得更换,端口不冲突即可,ip换成可以外界访问的ip) #开启被动模式
pasv_enable=YES
#被动模式端口范围
pasv_min_port=2100
pasv_max_port=2110
#需要加入外部ip,否则被动模式会失败
pasv_address=39.98.255.255
pasv_addr_resolve=YES针对第一个问题,需要注意的是,开放的端口范围需要在防火墙里配置,不然也是不行的,同时,如果是使用如阿里云等云服务时,也是需要在安全组内配置这些端口的入栈规则 关于SELinux的问题
确实有些情况下是因为SELinux的原因导致无法正确连接FTP服务器,但是当你执行setsebool 等命令的时候,如果提示你SELinux is disabled,就不要纠结是不是SELinux的问题了。 关于无法连接的问题
这个问题主要有三种可能
a. 最常见的错误就是地址写错,这个也最好识别
b. 服务网络限制,这类主要情况就是端口被各种限制了,比如防火墙,云服务的安全组等
这类问题,建议通过如netstat -tunlp命令,检查端口监听是否正常
通过如telnet,对端口进行测试
c. 服务配置有问题
在ftp服务器上安装ftp ,先在服务器上使用ftp做连接测试,如果测试都没有问题,那就说明服务本身是正常的,如下: 关于启用限制上级目录访问无法登录的问题
其实这个问题本质上跟限不限制关系不大,是因为权限配置问题:
编辑配置文件vim /etc/vsftpd/vsftpd.conf,检查如下配置即可
allow_writeable_chroot=YES
write_enable=YES
另外由于对于你指定的ftp目录,登录用户也是需要有读写权限的 关于chroot_list_enable的问题,这个问题可以参考
建议和总结 ftp可以使用虚拟用户登录ftp(比较麻烦,但是比较安全)。 ftp端口可以更改,如果放置比较重要的文件,建议更改(同时记得修改防火墙设置)。 从安全的角度考虑,建议限制ftp用户的登录,除非你能保证安全。