【引言】
Linux 运维、开发或日常文件传输,一定绕不开 FTP 服务器。不管是备份代码、传输脚本,还是运维团队共享工作文件、部署网站程序等,它都是稳定又便捷的首选。
但对于第一次部署FTP服务器时,想必大家会遇到如下问题:
①软件装好了,输入账号密码却报拒绝登录;
②登录成功了,想上传、下载文件又提示权限不够;
③搞定传输,又担心目录权限太开放,影响系统的稳定性;
④防火墙放行、SELinux 拦截、被动模式配置……
那么,今天本文将详细介绍FTP服务器的部署流程,将部署过程中需要关注的内容进行重点体现,跟着本文就可以搭建出一个安全高效的FTP服务器。
【部署流程】
一、通过yum命令安装vsftp服务。
二、设置其开机自启和启动服务,执行命令:
systemctl enable vsftpdsystemctl start vsftpd
三、创建登录FTP服务器的用户,但不允许其登录到操作系统,引发安全问题。这里,本文指定FTP文件存放目录为/ftp/data,登录FTP的用户为ftpshare。并修改/ftp/data目录的所有者和权限。执行如下命令:
useradd -d /ftp/data -s /usr/sbin/nologin ftpshare 其中,-d指定用户目录,-s指定其使用的shell。本文是禁止其登录chown ftpshare:ftpshare /ftp/datachmod 750 /ftp/data 设置其所有者对其读写和修改(上传、删除、创建)
四、修改vsftpd的配置文件,进入目录/etc/vsftpd,修改vsftpd.conf内容如下所示:
# 禁用匿名登录(安全)anonymous_enable=NO# 允许本地用户登录local_enable=YES# 允许写入(上传/删除)write_enable=YES# 本地用户 umask(默认 022,上传文件权限 644)local_umask=022# 锁定用户到自己的主目录(禁止访问系统其他目录)chroot_local_user=YES# 允许 chroot 目录可写(必须加,否则登录失败)allow_writeable_chroot=YES# 被动模式(推荐,解决大部分客户端连接问题)pasv_enable=YES# 被动模式端口范围(防火墙需放行)pasv_min_port=40000pasv_max_port=50000# 监听 IPv4listen=YES# 关闭 IPv6(不需要可注释)listen_ipv6=YES
五、重启服务,让上面修改内容配置生效,执行命令:
六、这里将ftpshare用户使用的shell,追加到系统合法shell列表文件:/etc/shells,否则就会出现输入正确用户名和密码,但是总是登录不上。执行命令:
echo "/usr/sbin/nologin" | tee -a /etc/shells
七、开放firewalld策略和selinux策略,也可以关闭防火墙和selinux。本文是创建防火墙策略和selinux策略。
①防火墙策略# 放行 21 端口firewall-cmd --permanent --add-port=21/tcp# 放行被动端口firewall-cmd --permanent --add-port=40000-50000/tcp# 重载防火墙firewall-cmd --reload# 查看已放行端口firewall-cmd --list-ports②selinux策略# 允许 FTP 读取用户主目录setsebool -P tftp_home_dir 1# 允许 FTP 写入setsebool -P allow_ftpd_full_access 1
八、客户端登录FTP服务器进行测试。本文使用FileZila测试。通过输入正确IP、用户名和密码,显示正常登录到FTP服务器上。
此时,进入到服务器上,看是否有这个文件。发现,服务器上存在刚刚上传的ai.js文件。
九、到此,恭喜你完成FTP服务器的搭建。
评论区有文章总结,欢迎大家讨论!觉得好可以关注、点赞、推荐、转发,谢谢!