服务器测评网
我们一直在努力

Linux FTP服务如何设置密码?用户名密码配置步骤详解

在 Linux 系统中,通过 FTP(File Transfer Protocol)进行文件传输时,设置安全的密码是保障服务器安全的重要环节,FTP 协议本身在数据传输时采用明文方式,因此需结合用户权限、密码策略及加密传输(如 FTPS)来提升安全性,本文将详细介绍 Linux 系统中 FTP 密码设置的具体步骤、安全配置建议及常见问题处理。

Linux FTP服务如何设置密码?用户名密码配置步骤详解

安装并配置 FTP 服务

在设置密码前,需确保系统已安装 FTP 服务,以常用的 vsftpd(Very Secure FTP Daemon)为例,安装步骤如下:

  1. 更新软件包列表
    sudo apt update  # Debian/Ubuntu 系统
    sudo yum update  # CentOS/RHEL 系统
  2. 安装 vsftpd
    sudo apt install vsftpd  # Debian/Ubuntu
    sudo yum install vsftpd  # CentOS/RHEL
  3. 启动并设置开机自启
    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd

创建 FTP 用户并设置密码

FTP 密码的设置本质上是系统用户的密码管理,可通过 useraddpasswd 命令实现。

创建系统用户(可选)

若仅需用于 FTP 传输,可创建禁用 Shell 登录的虚拟用户,提升安全性:

sudo useradd -s /sbin/nologin -d /home/ftpuser ftpuser  # -s 禁用Shell,-d 指定家目录

设置/修改用户密码

执行 passwd 命令,根据提示输入两次密码即可完成设置:

sudo passwd ftpuser

密码输入时不会显示字符,输入完成后按回车键确认。

验证密码

可通过 su 命令切换用户测试密码是否生效(若用户禁用 Shell,此步骤会失败,属正常现象):

su - ftpuser

配置 vsftpd 以强化密码安全

默认的 vsftpd 配置可能存在安全风险,需通过编辑 /etc/vsftpd.conf 文件进行优化,关键配置项如下:

禁止匿名登录

避免恶意用户通过匿名账号访问服务器:

Linux FTP服务如何设置密码?用户名密码配置步骤详解

anonymous_enable=NO

限制用户访问目录

通过 chroot 限制用户仅能在其家目录及子目录中活动,防止越权访问:

chroot_local_user=YES
allow_writeable_chroot=YES  # 允许被限制用户在目录内写(需配合文件权限)

启用用户黑名单/白名单

若需限制特定用户登录,可通过 userlist_enableuserlist_file 实现:

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO  # 设置为 NO 时,仅白名单用户可登录;默认为 YES(黑名单)

编辑 /etc/vsftpd.user_list 文件,每行添加一个允许/禁止的用户名。

配置密码策略

通过 pam_unix.so 模块可强制用户设置复杂密码(如长度、字符类型),编辑 /etc/pam.d/vsftpd,添加以下内容:

password required pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so sha512 shadow try_first_pass use_authtok remember=5

remember=5 表示记住最近 5 次密码,防止重复使用;sha512 指定密码加密算法。

启用 FTPS 实现加密传输

FTP 协议默认明文传输密码和文件数据,需通过 FTPS(FTP over SSL/TLS)加密连接。

安装 SSL 证书

可使用自签名证书(测试环境)或购买权威证书(生产环境),以自签名为例:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

按提示填写证书信息( Country Name、Organization 等),生成证书文件 vsftpd.pem

Linux FTP服务如何设置密码?用户名密码配置步骤详解

配置 vsftpd 支持 FTPS

编辑 /etc/vsftpd.conf,添加以下配置:

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1_2=YES
ssl_tlsv1_3=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem

重启 vsftpd 服务

sudo systemctl restart vsftpd

客户端连接时需选择“FTP over SSL/TLS”模式,并勾选“要求安全连接”。

常见问题处理

  1. 密码错误无法登录

    • 检查用户名和密码是否正确,确认 /etc/shadow 文件中密码字段非空(以 开头的用户被锁定)。
    • 查看 /var/log/vsftpd.log 日志,定位错误原因(如权限不足、目录不存在)。
  2. 用户被限制无法上传文件

    • 确保用户家目录权限为 755(所有者可读写执行,其他用户可读执行):
      sudo chmod 755 /home/ftpuser
      sudo chown ftpuser:ftpuser /home/ftpuser
    • 检查 vsftpd 配置中 write_enable=YES 是否开启。
  3. FTPS 连接失败

    • 确认证书路径正确且权限为 600
      sudo chmod 600 /etc/vsftpd/vsftpd.pem
    • 检查防火墙是否放行 FTPS 端口(默认 990):
      sudo ufw allow 990/tcp  # Ubuntu
      sudo firewall-cmd --permanent --add-port=990/tcp --zone=public  # CentOS

Linux FTP 密码设置需结合用户管理、服务配置及加密传输三方面,通过创建独立用户、强化密码策略、限制访问目录及启用 FTPS,可有效提升传输安全性,定期检查日志文件、更新系统补丁,并遵循最小权限原则,才能进一步降低安全风险,确保服务器稳定运行。

赞(0)
未经允许不得转载:好主机测评网 » Linux FTP服务如何设置密码?用户名密码配置步骤详解