凌峰创科服务平台

Linux FTP服务器安装步骤有哪些?

在Linux系统中搭建FTP服务器是许多企业和个人用户的需求,主要用于文件传输、数据共享等场景,本文将详细介绍在Linux环境下安装和配置FTP服务器的完整步骤,以常用的vsftpd(Very Secure FTP Daemon)为例,涵盖安装、配置、用户管理、安全设置等内容,帮助读者快速搭建稳定、安全的FTP服务。

Linux FTP服务器安装步骤有哪些?-图1
(图片来源网络,侵删)

安装vsftpd软件包

vsftpd是一款轻量级、高性能且安全的FTP服务器软件,适用于大多数Linux发行版,安装前需确保系统已更新至最新状态,以避免兼容性问题,以CentOS/RHEL和Ubuntu/Debian两大主流发行版为例:

  1. CentOS/RHEL系统
    使用yum包管理器安装,执行以下命令:

    sudo yum update -y
    sudo yum install vsftpd -y

    安装完成后,vsftpd服务会自动启动,可通过systemctl status vsftpd检查服务状态。

  2. Ubuntu/Debian系统
    使用apt包管理器安装,命令如下:

    Linux FTP服务器安装步骤有哪些?-图2
    (图片来源网络,侵删)
    sudo apt update && sudo apt upgrade -y
    sudo apt install vsftpd -y

    安装后,同样可通过systemctl status vsftpd确认服务运行状态。

配置vsftpd核心参数

vsftpd的配置文件位于/etc/vsftpd/vsftpd.conf,默认配置可能无法满足实际需求,需手动修改关键参数,以下是常用配置项及其说明:

配置项 默认值 建议值 说明
anonymous_enable YES NO 是否允许匿名用户访问,建议关闭以提升安全性
local_enable YES YES 是否允许本地用户登录
write_enable YES YES 是否开启写入权限
chroot_local_user NO YES 是否限制本地用户仅能访问自家目录
allow_writeable_chroot NO YES 配合chroot_local_user使用,允许用户在chroot目录内写入
pasv_enable YES YES 是否启用被动模式,适用于客户端 behind 防火墙的场景
pasv_min_port 0 10000 被动模式最小端口,需与防火墙规则匹配
pasv_max_port 0 10100 被动模式最大端口
user_config_dir /etc/vsftpd/user_conf 为不同用户单独配置的目录路径

配置步骤

  1. 备份原始配置文件:sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
  2. 编辑配置文件:sudo vim /etc/vsftpd/vsftpd.conf,根据需求修改上述参数。
  3. 保存后重启vsftpd服务:sudo systemctl restart vsftpd

创建FTP用户并设置权限

  1. 创建本地用户
    若需为FTP服务创建专用用户,可执行以下命令(以用户名为ftpuser为例):

    Linux FTP服务器安装步骤有哪些?-图3
    (图片来源网络,侵删)
    sudo useradd -m -s /sbin/nologin ftpuser  # 创建用户并禁止SSH登录
    sudo passwd ftpuser  # 设置用户密码

    -m表示创建用户家目录,-s /sbin/nologin限制用户仅能通过FTP访问。

  2. 限制用户访问目录
    若需限制用户仅能访问自家目录(安全加固),需确保chroot_local_user=YES已启用,并检查/etc/vsftpd/chroot_list文件是否存在,若需指定部分用户不受限,可创建该文件并添加用户名:

    sudo echo "ftpuser" | sudo tee -a /etc/vsftpd/chroot_list
    sudo systemctl restart vsftpd

配置防火墙与SELinux(CentOS/RHEL)

  1. 防火墙设置
    开放FTP服务所需端口(默认21端口及被动模式端口范围):

    sudo firewall-cmd --permanent --add-service=ftp
    sudo firewall-cmd --permanent --add-port=10000-10100/tcp
    sudo firewall-cmd --reload
  2. SELinux配置
    若系统启用SELinux,需调整策略以允许FTP写入:

    sudo setsebool -P ftpd_full_access on

    可通过sestatus命令检查SELinux状态。

测试与故障排查

  1. 客户端测试
    使用FileZilla等FTP客户端连接服务器,输入服务器IP、用户名及密码,验证登录和文件传输功能。

  2. 常见问题排查

    • 无法登录:检查用户密码是否正确,/etc/vsftpd/ftpusers/etc/vsftpd/user_list文件是否包含该用户(默认禁止登录)。
    • 权限问题:确保用户对家目录有读写权限,可执行sudo chmod 755 /home/ftpuser
    • 被动模式连接失败:检查防火墙是否开放10000-10100端口,或客户端是否配置了被动模式范围。

相关问答FAQs

问题1:如何为不同FTP用户设置不同的访问权限?
解答:可通过user_config_dir参数实现,首先在/etc/vsftpd目录下创建user_conf文件夹,然后为每个用户创建同名配置文件(如ftpuser),并在文件中添加自定义规则,

local_root=/home/ftpuser/upload  # 指定用户登录后的目录
write_enable=YES  # 允许写入
anon_world_readable_only=NO  # 允许下载非匿名文件

重启vsftpd服务后,配置即可生效。

问题2:如何限制FTP用户的传输速率?
解答:vsftpd本身不直接支持速率限制,但可通过iptablestc命令实现,使用iptables限制用户ftpuser的下载速率为512KB/s:

sudo iptables -A OUTPUT -p tcp --sport 21 -m owner --uid-owner ftpuser -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 20 -m owner --uid-owner ftpuser -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 10000:10100 -m owner --uid-owner ftpuser -j ACCEPT
sudo iptables -A OUTPUT -p tcp -m owner --uid-owner ftpuser -m limit --limit 512k/s -j ACCEPT
sudo iptables -A OUTPUT -p tcp -m owner --uid-owner ftpuser -j DROP

保存规则(sudo service iptables save)后,速率限制即可生效,注意:此方法需要iptables支持,且可能影响系统性能。

分享:
扫描分享到社交APP
上一篇
下一篇