当前位置: 首页 > news >正文

在centos 7上配置FIP服务器的详细教程!!!

在 ​CentOS 7​ 上配置 ​FTP 服务器​(通常使用 ​vsftpd,Very Secure FTP Daemon),可以实现多种用户访问方式,包括:

  1. 匿名用户(Anonymous)​​:无需账号密码,只能访问特定目录(如 /var/ftp/pub)。

  2. 本地用户(系统用户 / 实名用户)​​:使用系统已有的用户账号和密码登录,可访问自己的家目录或指定目录。

  3. 虚拟用户(Virtual Users)​​:使用独立的用户名/密码(不在系统用户中),更加安全,适合多用户管理。

  4. 访问控制​:限制用户只能访问自己的目录(chroot)、禁止某些IP、限制上传/下载等。


一、安装 vsftpd

1. 安装 vsftpd 软件包

sudo yum install vsftpd -y

2. 启动 vsftpd 服务并设置开机自启

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

3. 检查服务状态

sudo systemctl status vsftpd

二、配置匿名用户访问(Anonymous FTP)

匿名用户通常用于提供公共文件下载,不需要账号密码。

1. 编辑配置文件

sudo vi /etc/vsftpd/vsftpd.conf

确保或添加以下配置项:

# 允许匿名用户登录
anonymous_enable=YES# 匿名用户默认登录目录为 /var/ftp
# 通常无需修改,系统已创建 /var/ftp 目录# 允许匿名用户上传文件(可选,需配置写权限)
# anonymous_enable_write_enable=YES  # 一般不建议开启,有安全风险# 匿名用户可下载的目录(通常是 /var/ftp/pub)
# 确保 pub 目录存在且有读权限
anon_upload_enable=NO             # 是否允许匿名上传(默认NO,较安全)
anon_mkdir_write_enable=NO        # 是否允许匿名创建目录
anon_other_write_enable=NO        # 是否允许其他写操作(删除、重命名等)# 本地用户默认被 chroot(见下文)
local_enable=YES
write_enable=YES

2. 设置目录权限

sudo chmod 755 /var/ftp
sudo chmod 755 /var/ftp/pub
sudo chown ftp:ftp /var/ftp/pub   # 通常 ftp 用户和组拥有 /var/ftp

如果你想允许匿名用户上传文件,可以设置:

sudo mkdir /var/ftp/upload
sudo chmod 777 /var/ftp/upload

然后在配置中设置:

anon_upload_enable=YES

3. 重启 vsftpd

sudo systemctl restart vsftpd

4. 测试匿名登录

在 Windows 资源管理器地址栏输入:

ftp://你的服务器IP

或使用 FTP 客户端(如 FileZilla)使用:

  • 用户名:anonymous

  • 密码:任意(或留空)


三、配置本地用户(实名用户)访问

本地用户指的是系统上已有的普通用户(如 user1),他们可以使用自己的用户名和密码登录 FTP,并默认访问自己的家目录(如 /home/user1)。

1. 确保配置中启用了本地用户

/etc/vsftpd/vsftpd.conf中确保有以下配置:

local_enable=YES           # 允许本地用户登录
write_enable=YES           # 允许本地用户写入(上传/删除等)
local_umask=022            # 设置默认文件权限,如 644、755

2. 创建一个系统用户(如果还没有)

sudo useradd user1
sudo passwd user1

默认情况下,用户登录 FTP 后会进入其家目录 /home/user1,并且被 chroot(限制在其家目录,无法访问上级目录)。

3. (可选)限制用户只能访问自己的家目录(chroot)

默认情况下,​vsftpd 允许通过配置限制本地用户在其家目录(chroot jail)​,确保配置中有:

chroot_local_user=YES         # 将所有本地用户限制在自己的家目录
allow_writeable_chroot=YES    # 如果用户家目录可写,必须加上这一项

如果只想对某些用户 chroot,可以设置 chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list,详见后文“访问控制”。

4. 重启服务

sudo systemctl restart vsftpd

5. 测试登录

使用 FTP 客户端或命令行:

ftp 你的服务器IP

输入刚才创建的用户名和密码,测试是否可以上传/下载文件。


四、配置虚拟用户(Virtual Users)

虚拟用户不在系统用户中,更加安全,适合多用户管理,每个虚拟用户可以有自己的家目录和权限。

1. 安装相关工具(db_load 用于生成数据库)

CentOS 7 默认有 db4-utilsdb5.3-utils,可以用来生成用户认证的数据库文件。

sudo yum install db4-utils -y

如果提示没有 db4-utils,可以试:

sudo yum install db5.3-utils -y

2. 创建虚拟用户账号文件

创建文本文件,每行一个用户,奇数行为用户名,偶数行为密码:

sudo vi /etc/vsftpd/virtual_users.txt

内容示例:

ftpuser1
password123
ftpuser2
abc456

3. 生成数据库文件

sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

设置权限:

sudo chmod 600 /etc/vsftpd/virtual_users.db

4. 配置 vsftpd 使用虚拟用户

编辑主配置文件:

sudo vi /etc/vsftpd/vsftpd.conf

确保有以下配置:

anonymous_enable=NO             # 禁用匿名登录
local_enable=NO                 # 禁用本地系统用户登录# 启用虚拟用户
guest_enable=YES                # 启用虚拟用户映射为“guest”用户
guest_username=ftp              # 虚拟用户映射到的系统用户(如 ftp,需存在)
user_config_dir=/etc/vsftpd/user_conf  # 每个虚拟用户的个性化配置目录# PAM 认证使用虚拟用户数据库
pam_service_name=vsftpd.virtual

注意:你需要创建一个 PAM 配置文件来使用虚拟用户数据库。

5. 创建 PAM 配置文件

sudo vi /etc/pam.d/vsftpd.virtual

内容如下:

auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users

注意:这里的 virtual_users是不带 .db后缀的数据库名。

如果你的数据库是 /etc/vsftpd/virtual_users.db,则上面写 db=/etc/vsftpd/virtual_users即可,pam_userdb 会自动加后缀。

6. 创建虚拟用户配置目录及个性化配置

sudo mkdir /etc/vsftpd/user_conf

为每个虚拟用户创建一个配置文件,如 ftpuser1

sudo vi /etc/vsftpd/user_conf/ftpuser1

内容示例:

local_root=/var/ftp/ftpuser1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=NO
  • local_root:该虚拟用户登录后看到的根目录,比如 /var/ftp/ftpuser1

  • 你需要提前创建该目录并设置权限:

sudo mkdir -p /var/ftp/ftpuser1
sudo chown ftp:ftp /var/ftp/ftpuser1
sudo chmod 755 /var/ftp/ftpuser1

7. 重启 vsftpd

sudo systemctl restart vsftpd

8. 测试虚拟用户登录

使用 FTP 客户端,输入:

  • 用户名:ftpuser1

  • 密码:password123

应该能登录到 /var/ftp/ftpuser1目录,并可上传文件(如果配置了 write_enable=YES)。


五、访问控制

1. 限制用户只能访问自己的目录(chroot)

/etc/vsftpd/vsftpd.conf中添加或确保有:

chroot_local_user=YES
allow_writeable_chroot=YES

如果只想对部分用户进行 chroot,使用:

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

然后创建 /etc/vsftpd/chroot_list文件,每行一个要限制的用户:

sudo vi /etc/vsftpd/chroot_list

内容:

user1
user2

2. 禁止某些 IP 访问(可通过防火墙或 TCP Wrappers)

  • 使用 ​防火墙(firewalld/iptables)​​ 限制 IP 访问 FTP 的 21 端口。

  • 或编辑 /etc/hosts.allow/etc/hosts.deny(如果 vsftpd 支持 tcp_wrappers)。

3. 限制上传/下载

在用户配置文件(如 /etc/vsftpd/user_conf/username)中设置:

write_enable=YES|NO         # 是否允许上传
anon_upload_enable=NO       # 匿名上传
local_enable=YES            # 本地用户

六、总结:FTP 服务配置对比表

功能

配置要点

适用场景

匿名用户

anonymous_enable=YES,目录 /var/ftp/pub,权限设置

提供公共文件下载

本地用户(实名)​

local_enable=YES,用户用自己的系统账号登录,限制家目录(chroot)

内部员工使用自己账号访问

虚拟用户

使用独立数据库(db),通过 pam_userdb认证,每个用户可单独配置

多租户、外部客户、更安全灵活

访问控制

chroot、防火墙、hosts.allow/deny、限制上传/下载

增强安全性,防止越权访问


七、防火墙放行 FTP

FTP 默认使用 ​21 端口(控制连接)​,如果使用主动模式还可能用到 ​20 端口(数据连接)​,被动模式会使用随机高端口。

建议使用 ​被动模式(pasv)​,并配置端口范围:

/etc/vsftpd/vsftpd.conf中添加:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

然后放行防火墙:

sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload

八、总结一句话

在 ​CentOS 7​ 上配置 ​FTP 服务器(vsftpd)​,可以通过修改 /etc/vsftpd/vsftpd.conf启用 ​匿名用户、本地用户、虚拟用户,并通过 ​chroot、权限控制、防火墙​ 实现访问限制,其中 ​虚拟用户​ 更加安全灵活,适合生产环境多用户管理。

http://www.dtcms.com/a/560571.html

相关文章:

  • 做网站三网多少钱wordpress 贴吧主题
  • 无锡网站建设营销型诸城公司做网站
  • 【Docker】容器网络探索(二):实战理解 host 网络
  • 《数据结构风云》:二叉树遍历的底层思维>递归与迭代的双重视角
  • Java EE初阶 --多线程2
  • 论文精读(七):结合大语言模型和领域知识库的证券规则规约方法
  • Linux shell sed 命令基础
  • 选 Redis Stream 还是传统 MQ?队列选型全攻略(适用场景、优缺点与实践建议)
  • 【JVM】详解 Java内存模型(JMM)
  • 做网站工作室广告网站建设
  • 小语种网站制作广州网站建设哪里有
  • 广州学做网站上饶网站建设多少钱
  • GO写的http服务,清空cookie
  • 响应式企业网站模板望京网站建设公司
  • 最新聊天记录做图网站ip软件点击百度竞价推广
  • 关于学校网站建设申请报告深圳市网络seo推广价格
  • 公司网站后台怎么上传图片百度西安分公司地址
  • Go语言设计模式:组合模式详解
  • 南昌市住房和城乡建设网站检测网站是否正常
  • 自建网站费用营销推广的主要方法
  • 罗田做网站一个人看的在线观看视频免费下载
  • 网站 首页 栏目 内容wordpress发文章
  • 云南建设厅和网站一个软件的制作过程
  • 湛江网站制作系统厦门哪些企业做视频网站的
  • 宝塔做网站安全吗网站建设课程设计要求
  • 建设微信网站制作自建购物网站
  • 网站的建设和推广上传网站教程
  • 怎么做网站关键字搜索超办网ppt下载
  • 杨凯做网站软件开发平台哪家好
  • 各大搜索引擎提交网站入口大全动漫网页设计作品模板