CentOS 7.0 FTP服务器简单搭建

2025-12-01 23:59:42

1、先了解FTP(File Transfer Protocol)的三种登录模式和两种工作模式,针对不同的登录方式配置FTP服务器的文件目录,防止根据步骤安装完成后,发现并不是自己想要的,少走一些湾路。

FTP支持的三种认证模式:

匿名用户模式:不需要用户名和密码认证直接登录到FTP服务器。

本地用户模式:通过本地用户和设置密码的方式,控制登录FTP的用户,本地用户登录模式相比匿名用户登录更加安全。

虚拟用户模式:FTP服务的专有用户,只用于访问FTP服务提供的资源,不能访问Linux系统中的其他资源。相比本地用户模式更加安全。

两种工作模式:

FTP与其他服务不同,它是同时使用两个端口来进行传输操作,一个数据端口,另一个是命令端口。通常21端口是命令端口,20端口是数据端口。

主动模式:ftp服务器没有与客户端之间的传输端口,客户端会任意分配端口与服务器连接。

被动模式:客户端随机分配可用端口与ftp连接,ftp服务器的命令端口没有改变,数据传输端口由ftp服务器分配。

CentOS 7.0 FTP服务器简单搭建

CentOS 7.0 FTP服务器简单搭建

2、开始:yum安装。没有yum工具的先装个。$ yum install vsftpd -y。

3、启动服务:$ systemctl start vsftpd。

启用开机自启服务:$ systemctl enable vsftpd。

1、程序安装好后默认使用的是匿名模式,无需密码就能直接访问FTP服务器资源,默认的文件地址为/var/ftp/pub。推荐两个支持FTP服务的软件FileZilla,还有Xftp。

CentOS 7.0 FTP服务器简单搭建

1、$ useradd test 创建用户 

$ passwd test 用户密码设置 

$ mkdir /var/ftp/test 创建服务目录 

$ chown -R test:test /var/ftp/test/ 修改目录拥有者为test。这里很重要,设置权限,这里设置了read权限。

2、修改vsftpd.conf:

$ cd /etc/vsftpd/ 

$ cp vsftpd.conf vsftpd.conf.bak 拷贝一份,避免修改失误还能再来 

$ vim /etc/vsftpd/vsftpd.conf 编辑文件

修改内容如下

# vsftpd.conf

anonymous_enable=NO 禁止匿名登录 

local_enable=YES 允许本地用户登录

FTP listen=YES 监听 IPv4

#listen_ipv6=YES 注释关闭监听IPv4 

# 文件的最底层添加

local_root=/var/ftp/test 本地用户登录后所在目录 

chroot_local_user=YES 全部用户被限制在主目录 

chroot_list_enable=YES 启用额外用户名单 

chroot_list_file=/etc/vsftpd/chroot_list 指定例外用户列表文件

allow_writeable_chroot=YES 列表中用户不被锁定在主目录

# 如果仅仅想主动模式,以下配置就无需添加 

pasv_enable=YES 开启被动模式 

pasv_address=127.0.0.1 FTP服务器公网IP地址 

pasv_min_port=39000 被动模式下,建立数据传输可使用的端口范围最小值 

pasv_max_port=41000 被动模式下,建立数据传输可使用的端口范围最大值

3、创建用户列表:$ vim /etc/vsftpd/chroot_list

由于并没有给任何用户权限可以访问系统中的其他目录,所以为空

有一些服务器,例如阿里云服务器,需要配置安全组的端口开发,所以这里也需要多加注意,并且关闭39000 - 41000的防火墙。

CentOS 7.0 FTP服务器简单搭建

4、添加用户能够访问的其他路径的权限:

$ vim /etc/vsftpd/chroot_list 

chroot_list pathname

CentOS 7.0 FTP服务器简单搭建

1、虚拟用户模式相比本地用户模式更加安全,用户只能访问系统提供的服务资源,进一步增强了FTP服务器的安全性。 虚拟用户的用户认证是通过pam方式去认证的,pam文件里面指定了认证的db文件,db文件又是通过明文用户名和密码文件生成而来。

配置pam文件,注释所有的内容,末尾添加一下内容:

$ getconf LONG_BIT 查看多少位机子 

 $vim /etc/pam.d/vsftpd 

# 64 位 

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd 

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd 

# 32 位 

auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd 

account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

2、生成db文件:

$ vim /etc/vsftpd/vuser_passwd.txt 

# 单行为用户,双行位密码 

test2 

passwd 

$ cd /etc/vsftpd 

$ db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db

如果想添加用户,可以在vuser_passed.txt中添加用户,之后重新生成db文件。

CentOS 7.0 FTP服务器简单搭建

3、配置vsftpd.conf

$ vim /etc/vsftpd/vsftpd.conf 

anonymous_enable=NO 关闭匿名 

chroot_local_user=YES 用户被限制在主目录 

allow_writeable_chroot=YES  开启用户读写权限 

listen=YES 

listen_ipv6=NO 

guest_enable=YES 启动虚拟用户功能 

user_config_dir=/etc/vsftpd/vuser_conf 虚拟用户配置文件存放路径 

pasv_enable=YES 开启被动模式 

pasv_address=127.0.0.1 FTP服务器公网IP地址

pasv_min_port=39000 被动模式下,建立数据传输可使用的端口范围最小值 

pasv_max_port=41000 被动模式下,建立数据传输可使用的端口范围最大值

4、配置虚拟用户的权限和目录:

$ mkdir /var/ftp/test2 虚拟用户文件目录 

$ mkdir -p /etc/vsftpd/vuser_conf/ 虚拟用户配置目录 

$ vim /etc/vsftpd/vuser_conf/test2 创建用户配置文件

local_root=/var/ftp/iot2 配置用户文件目录 

write_enable=YES 设置用户可写入 

max_per_ip=10 设置同一账号允许10个ip登录

5、创建本地用户:

$ useradd -s /sbin/nologin test2 创建本地用户

不创建用户会有这个报错响应: 500 OOPS: cannot locate user entry:test2

6、最后的是开放端口的命令行:

$ firewall-cmd --zone=public --add-port=21/tcp --permanent 

$ firewall-cmd --reload

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢