搭设 ftp 服务器实操步骤,ftp 服务器搭建注意事项

搭建FTP服务器,Linux环境下部署vsftpd是比较普遍的做法。执行apt install vsftpd或者yum install vsftpd就能完成安装,装好之后服务默认自动启动。但直接这样投入使用风险很高,相当于门户没上锁,必须先调整配置文件。

配置文件路径为/etc/vsftpd.conf,用编辑器打开。先关闭匿名访问,设置anonymous_enable=NO;开启本地用户登录权限local_enable=YES,同时打开文件写入权限write_enable=YES。这三项属于基础配置,不调整的话要么任何人都能登录,要么登录后只能读取文件无法上传。还有关键参数chroot_local_user=YES,开启之后用户会被锁定在自家目录,不能向上跳转浏览整个文件系统。只设置这一项不够,新版vsftpd会拒绝家目录拥有写权限的用户登录,需要额外添加allow_writeable_chroot=YES,不然连接失败,报错信息也很模糊。

搭设 ftp 服务器实操步骤,ftp 服务器搭建注意事项

不要直接使用系统原有账号,root账号更是严禁用来登录FTP。单独新建FTP专用账号,命令useradd -d /home/ftpuser -s /sbin/nologin ftpuser,shell指定为nologin,该账号仅能通过FTP访问,无法SSH登录。接着执行passwd ftpuser设置登录密码。调整家目录权限chmod 755 /home/ftpuser,在家目录内新建上传文件夹,单独给这个目录开放写入权限。

被动模式属于经常踩坑的环节。FTP协议使用双连接机制,控制通道固定21端口,被动模式的数据通道由服务器随机分配高位端口。没有指定端口区间的话,防火墙与云服务器安全组无法放行对应端口。在配置文件添加pasv_enable=YES,再配置pasv_min_port=50000、pasv_max_port=51000。防火墙和云安全组放行21端口以及50000到51000端口段。服务器部署在NAT环境内,还需要补充pasv_address=你的公网IP,否则服务器向客户端返回内网地址,现象就是可以登录,但加载不出目录列表。

CentOS、RHEL系统默认启用SELinux,会拦截FTP的各类操作。测试环境可以临时执行setenforce 0关闭,但生产环境不推荐。规范做法执行setsebool -P ftp_home_dir on和setsebool -P allow_ftpd_full_access on,允许SELinux放行用户家目录访问以及完整FTP权限。执行完这两条命令,大部分SELinux相关故障就能解决。

传输加密方面,原生FTP传输明文,账号密码和文件内容都会裸传。启用TLS加密,先创建证书:openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem。配置文件添加ssl_enable=YES,填写证书路径,限定本地用户必须使用TLS连接。客户端连接会弹出证书警告,属于自签名证书正常现象,确认即可。有正规CA证书替换效果更好,没有的话自签名证书也强于明文传输。

修改配置之后重启服务,systemctl restart vsftpd。使用FileZilla或者ftp命令行工具测试,优先本机访问127.0.0.1,验证登录、目录读取、上传下载功能。本机测试正常,再换其他机器远程连接,确认被动模式生效。本机连通远程失败,大多是被动端口没有放行,或是pasv_address参数配置错误。

Windows平台不想操作命令行,FileZilla Server上手更简单。图形界面管理,新建账号、设定家目录、分配权限全部鼠标操作。在设置页面填写被动模式端口范围,防火墙放行端口。软件原生支持FTP over TLS,证书可以直接在界面生成。功能相比vsftpd更少,满足日常使用需求。

无论选用哪款软件,几个要点需要留意。FTP用户家目录不要和系统目录混放,单独划分分区或者目录,配置磁盘配额,防止用户占满存储空间。开启日志xferlog_enable=YES,记录文件传输人员、时间和文件信息,故障时方便排查。FTP账号禁止分配可登录shell,/sbin/nologin是底线。安全要求更高的场景,可以考虑SFTP,依托SSH 22端口,默认自带加密,配置简单。缺点是权限体系绑定系统用户,虚拟用户管理灵活性不如FTP。

部署完成只是起步,后续定期查看日志,排查异常登录尝试,按时更换账号密码。FTP协议本身年代久远,坑点较多。搞定被动模式、目录权限、传输加密三块内容,绝大多数故障都能规避。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐