凌峰创科服务平台

centos创建ftp服务器

在CentOS系统中创建FTP服务器通常使用vsftpd(Very Secure FTP Daemon)软件,它是一个安全、高效的FTP服务器程序,以下是详细步骤:

安装vsftpd

首先通过SSH连接到CentOS服务器,使用root权限执行以下命令更新系统软件包:

yum update -y

然后安装vsftpd:

yum install vsftpd -y

安装完成后,启动vsftpd服务并设置开机自启:

systemctl start vsftpd
systemctl enable vsftpd

配置防火墙和SELinux

CentOS默认启用防火墙和SELinux,需要开放FTP相关端口,执行以下命令:

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

对于SELinux,临时关闭测试可使用:

setenforce 0

生产环境建议配置SELinux策略,执行:

semanage port -a -t ftp_port_t -p tcp 21

配置vsftpd

编辑主配置文件:

vi /etc/vsftpd/vsftpd.conf

关键配置项如下:

anonymous_enable=NO          # 禁止匿名访问
local_enable=YES            # 允许本地用户登录
write_enable=YES            # 允许写入
chroot_local_user=YES       # 限制用户访问主目录
allow_writeable_chroot=YES  # 允许被限制的用户写文件
pasv_min_port=40000         # 被动模式最小端口
pasv_max_port=40010         # 被动模式最大端口
userlist_enable=YES         # 启用用户列表
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO            # 仅允许user_list中的用户

保存后重启vsftpd:

systemctl restart vsftpd

创建FTP用户

创建系统用户并设置密码:

useradd -m -s /sbin/nologin ftpuser
passwd ftpuser

将用户加入user_list文件:

echo "ftpuser" >> /etc/vsftpd/user_list

设置用户主目录权限:

chmod 755 /home/ftpuser

配置虚拟用户(可选)

为增强安全性,可配置虚拟用户,首先安装db4-utils:

yum install db4-utils -y

创建用户密码文件(奇数行用户名,偶数行密码):

vi /etc/vsftpd/virtusers.txt示例:
ftpuser1
password1
ftpuser2
password2

生成数据库文件:

db_load -T -t hash -f /etc/vsftpd/virtusers.txt /etc/vsftpd/virtusers.db
chmod 600 /etc/vsftpd/virtusers.db

创建PAM认证文件:

vi /etc/pam.d/vsftpd.virt
auth required pam_userdb.so db=/etc/vsftpd/virtusers
account required pam_userdb.so db=/etc/vsftpd/virtusers

修改vsftpd.conf,添加:

guest_enable=YES
guest_username=ftpuser
pam_service_name=vsftpd.virt
user_config_dir=/etc/vsftpd/user_conf

为虚拟用户创建独立配置目录:

mkdir /etc/vsftpd/user_conf

为每个虚拟用户创建配置文件(如ftpuser1):

vi /etc/vsftpd/user_conf/ftpuser1
local_root=/home/ftpuser1_web
anon_world_readable_only=NO
write_enable=YES

创建对应目录并设置权限:

mkdir /home/ftpuser1_web
chown ftpuser:ftpuser /home/ftpuser1_web

常见问题排查

  1. 连接超时:检查防火墙和SELinux设置,确认被动模式端口范围是否开放。
  2. 550权限错误:确保用户主目录权限为755,文件权限为644,目录为755。

相关问答FAQs

Q1: 如何限制FTP用户只能访问指定目录?
A1: 在vsftpd.conf中设置chroot_local_user=YES,并为每个用户创建独立配置文件(如user_conf/username),指定local_root=/path/to/directory,同时确保目录所有者为FTP用户。

Q2: 如何实现FTP用户隔离,防止互相访问文件?
A2: 为每个用户创建独立的系统用户(如useradd -m user1),在vsftpd.conf中启用chroot_local_user,并通过local_root参数指向各自的专属目录,同时设置目录权限为chmod 700 /home/username

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