根据CentOS7.3构建企业级Vsftpd文件服务器51CTO博客 - 凯时娱乐

根据CentOS7.3构建企业级Vsftpd文件服务器51CTO博客

2019-03-06 09:59:30 | 作者: 昆琦 | 标签: 文件,用户,效劳 | 浏览: 2516

文件传输协议(File Transfer Protocol,FTP),依据该协议FTP客户端与效劳端能够完成同享文件、上传文件、下载文件。 FTP 依据TCP协议生成一个虚拟的衔接,首要用于操控FTP衔接信息,一起再生成一个独自的TCP衔接用于FTP数据传输。用户能够经过客户端向FTP效劳器端上传、下载、删去文件,FTP效劳器端能够一起提供给多人同享运用。


FTP效劳是Client/Server(简称C/S)形式,依据FTP协议完成FTP文件对外同享及传输的软件称之为FTP效劳器源端,客户端程序依据FTP协议,则称之为FTP客户端,FTP客户端能够向FTP效劳器上传、下载文件。

1、FTP传输形式

FTP依据C/S形式,FTP客户端与效劳器端有两种传输形式,别离是FTP自动形式、FTP被动形式,主被动形式均是以FTP效劳器端为参照。主被动形式如图1-2(a)、1-2(b)所示,主被动形式具体差异如下:

(1)FTP自动形式:客户端从一个恣意的端口N(N>1024)衔接到FTP效劳器的port 21指令端口,客户端开端监听端口N+1,并发送FTP指令“port N+1”到FTP效劳器,FTP效劳器以数据端口(20)衔接到客户端指定的数据端口(N+1)。

(2)FTP被动形式:客户端从一个恣意的端口N(N>1024)衔接到FTP效劳器的port 21指令端口,客户端开端监听端口N+1,客户端提交 PASV指令,效劳器会敞开一个恣意的端口(P >1024),并发送PORT P指令给客户端。客户端主张从本地端口N+1到效劳器的端口P的衔接用来传送数据。

在企业实践环境中,假如FTP客户端与FTP效劳端均敞开防火墙,FTP需以自动形式作业,这样只需求在FTP效劳器端防火墙规矩中,敞开20、21端口即可。关于防火墙装备后边章节会解说。


图1-2(a) FTP自动形式

-------------------------------------------------------------------------------------------------------

图1-2(b) FTP被动形式

2、Vsftpd效劳器简介

现在干流的FTP效劳器端软件包含:Vsftpd、ProFTPD、PureFTPd、Wuftpd、Server-U FTP、FileZilla Server等软件,其间Unix/Linux运用较为广泛的FTP效劳器端软件为Vsftpd 。

十分安全的FTP效劳进程(Very Secure FTP daemon,Vsftpd),Vsftpd在Unix/Linux发行版中最干流的FTP效劳器程序,长处细巧轻捷,安全易用、安稳高效、满意企业跨部门、多用户的运用等。

3、Vsftpd效劳器装置装备

Vsftpd效劳器端装置有两种办法,一是依据YUM办法装置,而是依据源码编译装置,终究完成作用完全一致,本文选用YUM装置Vsftpd,过程如下:

(1)   在指令行履行如下指令,如图1-3所示:

yum   install    vsftpd*   -y


图1-3 YUM装置Vsftpd效劳端

(2)   打印vsftpd装置后的装备文件途径、发动Vsftpd效劳及检查进程是否发动,如图1-4所示:

rpm   -ql     vsftpd|more

systemctl  restart   vsftpd.service

ps   -ef |grep  vsftpd

图1-4 打印Vsftpd软件装置后途径

(3)   Vsftpd.conf默许装备文件详解如下:

anonymous_enable=YES           敞开匿名用户拜访;

local_enable=YES                      启用本地体系用户拜访;

write_enable=YES                     本地体系用户写入权限;

local_umask=022                      本地用户创立文件及目录默许权限掩码;

dirmessage_enable=YES           打印目录显现信息,一般用于用户第一次拜访目录时,信息提示;

xferlog_enable=YES                  启用上传/下载日志记载; 

connect_from_port_20=YES      FTP运用20端口进行数据传输;

xferlog_std_format=YES           日志文件将依据xferlog的规范格局写入;

listen=NO                                  Vsftpd不以独立的效劳发动,经过Xinetd效劳办理,主张改成YES;

listen_ipv6=YES                        启用IPV6监听;

pam_service_name=vsftpd       登录FTP效劳器,依据/etc/pam.d/vsftpd中内容进行认证;

userlist_enable=YES                  Vsftpd.user_list和ftpusers装备文件里用户制止拜访FTP;

tcp_wrappers=YES                    设置vsftpd与tcp wrapper结合进行主机的拜访操控,Vsftpd效劳器检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决议恳求衔接的主机,是否答应拜访该FTP效劳器。

(4)   发动Vsftpd效劳后,经过Windows客户端资源办理器拜访Vsftp效劳器端,如图1-5所示:

ftp://192.168.111.131/

图1-5 匿名用户拜访FTP默许目录

FTP主被动形式,默许为被动形式,设置为被动形式运用端口办法如下:

pasv_enable=YES

pasv_min_port=60000

pasv_max_port=60100

4、Vsftpd匿名用户装备

Vsftpd默许以匿名用户拜访,匿名用户默许拜访的FTP效劳器端途径为:/var/ftp/pub,匿名用户只要检查权限,无法创立、删去、修正。如需封闭FTP匿名用户拜访,需修正装备文件/etc/vsftpd/vsftpd.conf,将anonymous_enable=YES修正为anonymous_enable=NO,重启Vsftpd效劳即可。

假如答应匿名用户能够上传、下载、删去文件,需在/etc/vsftpd/vsftpd.conf装备文件中参加如下代码:

anon_upload_enable=YES                  答应匿名用户上传文件;

anon_mkdir_write_enable=YES          答应匿名用户创立目录;

anon_other_write_enable=YES           答应匿名用户其他写入权限。

匿名用户完好vsftpd.conf装备文件代码如下:

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

因为默许Vsftpd匿名用户有两种:anonymous、ftp,所以匿名用户假如需求上传文件、删去及修正等权限,需求ftp用户对/var/ftp/pub目录有写入权限,运用如下chown和chmod恣意一种即可,设置指令如下:

chown      -R  ftp         pub/

chmod          o+w     pub/

如上Vsftpd.conf装备文件装备结束,一起权限设置完,重启vsftpd效劳即可,经过Windows客户端拜访,能够上传文件、删去文件、创立目录等操作,如图1-6所示:

图1-6 匿名用户拜访上传文件

5、Vsftpd体系用户装备

Vsftpd匿名用户设置结束,匿名用户,任何人都能够检查FTP效劳器端的文件、目录,乃至能够修正、删去,此计划如合适寄存私密文件在FTP效劳器端,怎么确保文件或许目录专属具有者呢,Vsftpd体系用户能够完成该需求。

完成Vsftpd体系用户办法验证,只需在Linux体系中创立多个用户即可,创立用户运用useradd,一起给用户设置暗码,即可经过用户和暗码登录FTP,进行文件上传、下载、删去等操作。Vsftpd体系用户完成办法过程如下:

(1)   Linux体系中创立体系用户jfedu1、jfedu2,别离设置暗码为123456:

useradd   jfedu1

useradd   jfedu2

echo 123456|passwd --stdin  jfedu1

echo 123456|passwd --stdin  jfedu2

(2)   修正vsftpd.conf装备文件代码如下:

anonymous_enable=NO

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=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

(3)   经过Windows资源客户端验证,运用jfedu1、jfedu2用户登录FTP效劳器,即可上传文件、删去文件、下载文件,jfedu1、jfedu2体系用户上传文件的家目录在/home/jfedu1、/home/jfedu2下,如图1-7(a)、1-7(b)所示:


图1-7(a) jfedu1用户登录FTP效劳器

图1-7(b) jfedu1登录FTP效劳器上传文件

6、Vsftpd虚拟用户装备

假如依据Vsftpd体系用户拜访FTP效劳器,体系用户越多越不利于办理,并且不利于体系安全办理,鉴于此,为了能愈加的安全运用VSFTPD,需运用Vsftpd虚拟用户办法。

Vsftpd虚拟用户原理:虚拟用户就是没有实践的实在体系用户,而是经过映射到其间一个实在用户以及设置相应的权限来完成拜访验证,虚拟用户不能登录Linux体系,然后让体系愈加的安全可靠。

Vsftpd虚拟用户企业事例装备过程如下:

(1)   装置Vsftpd虚拟用户需用到的软件及认证模块:

yum  install   pam*  libdb-utils  libdb*   --skip-broken  -y

(2)   创立虚拟用户临时文件/etc/vsftpd/ftpusers.txt,新建虚拟用户和暗码,其间jfedu001、jfedu002为虚拟用户名,123456为暗码,假如有多个用户,顺次格局填写即可:

jfedu001

123456

jfedu002

123456

(3)   生成Vsftpd虚拟用户数据库认证文件,设置权限700:

db_load  -T   -t  hash  -f   /etc/vsftpd/ftpusers.txt   /etc/vsftpd/vsftpd_login.db

chmod  700   /etc/vsftpd/vsftpd_login.db

(4)   装备PAM认证文件,/etc/pam.d/vsftpd行首参加如下两行:

auth      required        pam_userdb.so   db=/etc/vsftpd/vsftpd_login

account   required        pam_userdb.so   db=/etc/vsftpd/vsftpd_login

(5)   一切Vsftpd虚拟用户需求映射到一个体系用户,该体系用户不需求暗码,也不需求登录,首要用于虚拟用户映射运用,创立指令如下:

useradd    -s    /sbin/nologin    ftpuser

(6)   完好vsftpd.conf装备文件代码如下:

#global config Vsftpd 2017

anonymous_enable=YES

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=NO

listen_ipv6=YES

userlist_enable=YES

tcp_wrappers=YES

#config virtual user FTP

pam_service_name=vsftpd

guest_enable=YES

guest_username=ftpuser

user_config_dir=/etc/vsftpd/vsftpd_user_conf

virtual_use_local_privs=YES

如上Vsftpd虚拟用户装备文件参数详解:

#config virtual user FTP

pam_service_name=vsftpd                                     虚拟用户启用pam认证;

guest_enable=YES                                                  启用虚拟用户;

guest_username=ftpuser                                        映射虚拟用户至体系用户ftpuser;

user_config_dir=/etc/vsftpd/vsftpd_user_conf       设置虚拟用户装备文件地点的目录;

virtual_use_local_privs=YES                                     虚拟用户运用与本地用户相同的权限。

(7)   至此,一切虚拟用户一起依据/home/ftpuser主目录完成文件上传与下载,能够在/etc/vsftpd/vsftpd_user_conf目录创立虚拟用户各自的装备文件,创立虚拟用户装备文件主目录:

mkdir  -p     /etc/vsftpd/vsftpd_user_conf/

(8)   如下别离为虚拟用户jfedu001、jfedu002用户创立装备文件:

 /etc/vsftpd/vsftpd_user_conf/jfedu001,一起创立私有的虚拟目录,代码如下:

local_root=/home/ftpuser/jfedu001

write_enable=YES

anon_world_readable_only=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

/etc/vsftpd/vsftpd_user_conf/jfedu002,一起创立私有的虚拟目录,代码如下:

local_root=/home/ftpuser/jfedu002

write_enable=YES

anon_world_readable_only=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

虚拟用户装备文件内容详解:

local_root=/home/ftpuser/jfedu002   jfedu002虚拟用户装备文件途径;

write_enable=YES                               答应登陆用户有写权限;        

anon_world_readable_only=YES        答应匿名用户下载,然后读取文件;

anon_upload_enable=YES                  答应匿名用户上传文件,只要在write_enable=YES时该参数才收效;

anon_mkdir_write_enable=YES          答应匿名用户创立目录,只要在write_enable=YES时该参数才收效;

anon_other_write_enable=YES           答应匿名用户其他权限,例如删去、重命名等。

(9)   创立虚拟用户各自虚拟目录:

mkdir -p  /home/ftpuser/{jfedu001,jfedu002} 

chown -R ftpuser:ftpuser  /home/ftpuser

重启Vsftpd效劳,经过Windows客户端资源办理器登录Vsftpd效劳端,测验成果如图1-8(a)、1-8(b)所示:

图1-8(a) jfedu001虚拟用户登录FTP效劳器

图1-8(b) jfedu001虚拟用户上传下载文件

你若觉得作者的文章写得不错,请奖赏作者几锭银子,让作者感受到来自你满满的鼓舞和持续创造的动力!咱们支撑原创!鼓舞原创!

打赏之后,文章底部显现参加打赏者的记载,能够直接经过微信扫描打赏哟,直接按打赏依据提示操作。

自定义打赏金额,友谊提示打赏金额不要超越50元哦,土豪能够随意哦,51CTO谢谢您对作者的支撑!谢谢你的慷慨大方!

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯时娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    shell中符号的含义ITeye

    指令,字符,匹配
  • 2

    rsync同步ITeye

    同步,文件,暗码
  • 3
  • 4
  • 5
  • 6
  • 7

    linux 了解过的指令ITeye

    检查,文件,运用
  • 8

    epoll水平触发边际触发ITeye

    形式,数据,事情
  • 9

    OpenVPN 装置进程ITeye

    客户端,运转,装备
  • 10

    OpenVPN 装置进程ITeye

    客户端,运转,装备