HCRM博客

CentOS系统添加FTP账号有哪些步骤和方法?

在 CentOS 上添加 FTP 账号,常见的有两种方式:使用系统用户使用虚拟用户(推荐用于安全隔离),以下分别介绍两种方法,并说明如何配置 vsftpd 服务。


使用系统用户(简单但安全性较低)

安装 vsftpd

yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd

添加系统用户

# 创建用户(默认会创建同名家目录 /home/username)
useradd ftpuser -s /sbin/nologin  # 禁止登录 shell
passwd ftpuser  # 设置密码
# 如果要指定家目录(/var/www/html)
useradd ftpuser -d /var/www/html -s /sbin/nologin

配置 vsftpd(/etc/vsftpd/vsftpd.conf

确保以下设置:

CentOS系统添加FTP账号有哪些步骤和方法?-图1

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES  # 限制用户在家目录
allow_writeable_chroot=YES  # 允许 chroot 后可写

重启服务

systemctl restart vsftpd

使用虚拟用户(推荐:更安全)

安装必要组件

yum install -y vsftpd db4 db4-utils

创建虚拟用户数据库

# 1. 创建用户密码文本文件(奇数行用户名,偶数行密码)
cat > /etc/vsftpd/virtual_users.txt <<EOF
ftpuser1
password1
ftpuser2
password2
EOF
# 2. 生成数据库文件
db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
chmod 600 /etc/vsftpd/virtual_users.*
# 3. 创建 PAM 配置文件
cat > /etc/pam.d/vsftpd_virtual <<EOF
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
EOF

创建本地映射用户(所有虚拟用户映射为此系统用户)

useradd -d /var/ftproot -s /sbin/nologin virtualftp
chmod 755 /var/ftproot

配置 vsftpd(/etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
# 虚拟用户配置
guest_enable=YES
guest_username=virtualftp
user_config_dir=/etc/vsftpd/user_conf
pam_service_name=vsftpd_virtual  # 使用自定义 PAM 文件

为每个虚拟用户创建独立配置(可选)

mkdir /etc/vsftpd/user_conf
cat > /etc/vsftpd/user_conf/ftpuser1 <<EOF
local_root=/var/ftproot/ftpuser1  # 设置专属目录
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
EOF
# 创建对应目录
mkdir -p /var/ftproot/ftpuser1
chown virtualftp:virtualftp /var/ftproot/ftpuser1

重启服务

systemctl restart vsftpd

防火墙和 SELinux 设置

防火墙开放 FTP

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

SELinux 调整(如果启用)

# 允许 ftp 访问家目录
setsebool -P ftp_home_dir on
# 或者允许自定义目录
semanage fcontext -a -t public_content_rw_t "/var/ftproot(/.*)?"
restorecon -Rv /var/ftproot

测试连接

# 安装 ftp 客户端
yum install -y ftp
# 测试连接
ftp localhost
# 输入用户名密码

注意事项

  1. 被动模式:如果客户端在 NAT 后无法连接,需在配置中指定被动模式端口范围:

    pasv_min_port=30000
    pasv_max_port=31000

    并在防火墙开放这些端口。

    CentOS系统添加FTP账号有哪些步骤和方法?-图2

  2. 日志查看/var/log/xferlog/var/log/vsftpd.log

  3. 安全性

    CentOS系统添加FTP账号有哪些步骤和方法?-图3

    • 使用虚拟用户更安全
    • 考虑启用 TLS:ssl_enable=YES
    • 限制用户访问目录(chroot)

选择适合你场景的方式,生产环境推荐使用虚拟用户方案。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/82719.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~