Centos 7使用vsftpd搭建FTP服务器

FTP,即:文件传输协议(File Transfer Protocol),基于客户端/服务器模式,默认使用20、21端口号,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。FTP服务器普遍部署于局域网中,具有容易搭建、方便管理的特点。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术,因此FTP服务得到了广大用户的青睐。
FTP协议有以下两种工作模式:

  • 主动模式(PORT):FTP服务器主动向客户端发起连接请求。
  • 被动模式(PASV):FTP服务器等待客户端发起连接请求(FTP的默认工作模式)。

vsftpd是一款运行在Linux操作系统上的FTP服务程序,具有很高的安全性和传输速度。
vsftpd有以下三种认证模式:

  • 匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登陆。
  • 本地用户模式:是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来简单。
  • 虚拟用户模式:是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。

表1:vsftpd服务常用的参数以及作用

一、全局操作

1、安装vsftpd服务
yum -y install vsftpd
2、去掉配置文件里的注释行

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf


3、配置firewalld防火墙开放2231和45000-49000端口

firewall-cmd --permanent --add-port=2231/tcp
firewall-cmd --permanent --add-port=45000-49000/tcp
firewall-cmd --reload

4、配置selinux允许FTP服务
注:没有selinux相关命令的话,需要安装policycoreutils-python包

yum -y install policycoreutils-python.x86_64
setsebool -P ftpd_full_access=on

二、匿名开放模式

1、修改配置文件,带注释的是需要修改和新增的配置
vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES   #启用匿名访问模式
anon_umask=022   #匿名用户上传文件的umask值
anon_upload_enable=YES   #允许匿名用户上传文件
anon_mkdir_write_enable=YES   #允许匿名用户创建目录
anon_other_write_enable=YES   #允许匿名用户重命名、删除等操作
anon_root=/data/anon   #匿名用户的FTP根目录
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen_port=2231   #vsftpd服务监听的端口号
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_min_port=45000   #PASV模式最小端口号
pasv_max_port=49000   #PASV模式最大端口号

2、创建并授权匿名用户FTP根目录

mkdir -p /data/anon/pub
chown -R ftp /data/anon/pub/

3、启动vsftpd服务,并加入开机启动

systemctl start vsftpd
systemctl enable vsftpd

4、测试

三、本地用户模式

1、修改配置文件,删除之前的匿名模式配置内容,带注释的是需要修改和新增的配置
vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO   #关闭匿名访问模式
local_enable=YES
write_enable=YES
local_umask=022
local_root=/data/user   #指定本地用户的FTP根目录
chroot_local_user=YES   #将用户权限禁锢在FTP目录
allow_writeable_chroot=YES   #允许对FTP根目录执行写入操作
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen_port=2231
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_min_port=45000
pasv_max_port=49000

2、创建本地用户,并指定家目录

useradd -d /data/user -s /sbin/nologin user
echo "123456" | passwd --stdin user

3、重启vsftpd服务
systemctl restart vsftpd
4、测试

四、虚拟用户模式

1、创建用于FTP认证的用户数据库文件
vim /etc/vsftpd/vuser.txt
注:第一行用户名,第二行密码,依此类推

xuad
123456
limin
123456

明文信息不安全,需要使用db_load命令用哈希(hash)算法将明文信息转换成数据文件,然后将明文信息文件删除。

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


2、创建虚拟用户映射的系统本地用户和FTP根目录

useradd -d /data/ftproot -s /sbin/nologin virtual
chmod -Rf 755 /data/ftproot/


3、建立用于支持虚拟用户的PAM文件
PAM(可插拔认证模块)是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活调整服务程序的不同认证方式。PAM采用了分层设计(应用程序层、应用接口层、鉴别模块层)的思想,其结构如下图所示。

新建一个用于虚拟用户认证的PAM文件vsftpd.vu,其中PAM文件内的“db=”参数为使用db_load命令生成的账户密码数据文件的路径,但不用写数据文件的后缀。
vim /etc/pam.d/vsftpd.vu

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

4、为两个虚拟用户设置不同的权限,xuad拥有所有权限,而limin只有读取权限。

mkdir /etc/vsftpd/vusers_dir
touch /etc/vsftpd/vusers_dir/limin
vim /etc/vsftpd/vusers_dir/xuad
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

5、修改配置文件,删除之前的匿名模式配置内容,带注释的是需要修改和新增的配置
vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
anon_umask=022
local_enable=YES
guest_enable=YES   #开启虚拟用户模式
guest_username=virtual   #指定虚拟用户对应的系统用户
allow_writeable_chroot=YES   #允许对FTP根目录执行写入操作
write_enable=YES
local_umask=022
local_root=/data/ftproot
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen_port=2231
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu   #指定PAM文件
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir   #指定虚拟用户配置文件目录
pasv_min_port=45000
pasv_max_port=49000

6、重启vsftpd服务
systemctl restart vsftpd
7、测试

原文地址:http://blog.51cto.com/andyxu/2168875

时间: 2024-10-14 22:49:08

Centos 7使用vsftpd搭建FTP服务器的相关文章

在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用. vsftpd 的名字代表"very secure FTP daemon",安全是它的开发者 Chris Evans 考虑的首要问题之一.在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标. 准备工作 安装vsftpd yum install v

vsftpd搭建ftp服务器

一.vsftpd介绍 ? ? ? ?vsftpd是very secure ftp daemon的缩写,它是一个完全免费.开源代码的ftp服务器软件.它有着其他ftp服务器软件不具有的特性,如它满足较高的安全性需求.支持虚拟用户.支持ipv6.传输速率限制等. 二. vsftpd安装 ? ? ? ?实验环境准备: 主机列表 系统版本 ip地址 安装软件 ftp客户端 centos7.6 192.168.36.10 ftp或lftp ftp服务器 centos6.10 192.168.36.20 v

CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)

CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此外,还具有很高的安全性.传输速度,以及支持虚拟用户验证等其他FTP服务程序不具备的特点,下面开始搭建: 1.用root 进入系统 2.使用命令 rpm  -qa | grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vsftpd的版本 3.如果安装了,可

CentOS 下搭建FTP服务器

vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个.本文介绍了在CentOS 6 4下安装vsftpd.配置虚拟用户登录FTP的过程.正 vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个. 本文介绍了在CentOS 6.4下安装vsftpd.配置虚拟用户登录FTP的过程. 正文: 一:安装vsftpd 查看是否已经安装vsftpd 1 2 3 4 rpm -qa | grep vsftpd #如果没有,就安装,并设置开机启动 yum -y

腾讯云服务器linux centOS7.4 搭建ftp服务器 vsftpd

腾讯云服务器linux centos 7.4 搭建ftp服务器 vsftpd # 安装 vsftpd $ yum install vsftpd -y # 启动 $ service vsftpd start && systemctl restart vsftpd.service # 查看 $ netstat -nltp | grep 21 /*目前 FTP 服务登陆允许匿名登陆,也无法区分用户访问,我们需要配置 FTP 访问权限vsftpd 的配置目录为 /etc/vsftpd,包含下列的配

centos 6.5 搭建ftp服务器

linux下一般使用vsftpd作为ftp服务器. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用. 下面是安装配置步骤: 1.安装vsftpd yum install vsftpd 2.设置开机启动服务 chkconfig vsftpd on 3.添加用户 useradd -d /home/ftp -g ftp -s /sbin/nologin misuosi -p password 4.打开配置文件 vi /etc/vsftpd/vsftpd.co

14.4 exportfs命令;14.5 NFS客户端问题;15.1 FTP介绍;15.2/15.3 使用vsftpd搭建ftp

14.4 exportfs命令 重启nfs服务需要把所有挂载点卸载掉,如果一台机器有多个挂载点,不能一一去卸载挂载点,用exportfs -arv命令: 1. 编辑exports配置文件,添加一条新的共享目录: [[email protected] ~]# vim /etc/exports {no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大} 添加内容(hao1服务端的共享目录,hao2客户端的ip): /tmp 192.168.211.129(rw,sy

FTP介绍、使用vsftpd搭建ftp、使用pure-ftpd搭建ftp服务

FTP介绍 FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输.FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机.小公司用的多,大企业不用FTP,因为不安全. 使用vsftpd搭建ftp服务 1.安装及建立账号 [[email protected] ~]# yum insta

exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp

exportfs命令 加入我们之前已经配置了nfs的共享目录,之后要增加更改或增加共享目录,我们需要更改配置文件,重启,如果远程客户端正在使用,此时就会一直挂载着,这时候就有问题 使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用exportfs即可 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 #vim /etc/exports //增加一行 /tmp/ 192.168.37.0/2