乐趣区

关于云计算:Linux云计算07Linux文件服务器之vsftpd服务器

本章向读者介绍企业 vsftpd 服务器实战、匿名用户拜访、零碎用户拜访及虚构用户实战等。

1 vsftpd 服务器企业实战

文件传输协定(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.1 FTP 传输模式

FTP 基于 C / S 模式,FTP 客户端与服务器端有两种传输模式,别离是 FTP 被动模式、FTP 被动模式,主被动模式均是以 FTP 服务器端为参照。主被动模式如图(a)、(b)所示,主被动模式具体区别如下:

  • FTP 被动模式:客户端从一个任意的端口 N(N>1024)连贯到 FTP 服务器的 port 21 命令端口,客户端开始监听端口 N +1,并发送 FTP 命令“port N+1”到 FTP 服务器,FTP 服务器以数据端口(20)连贯到客户端指定的数据端口(N+1)。
  • FTP 被动模式:客户端从一个任意的端口 N(N>1024)连贯到 FTP 服务器的 port 21 命令端口,客户端开始监听端口 N +1,客户端提交 PASV 命令,服务器会开启一个任意的端口(P >1024),并发送 PORT P 命令给客户端。客户端发动从本地端口 N + 1 到服务器的端口 P 的连贯用来传送数据。

在企业理论环境中,如果 FTP 客户端与 FTP 服务端均凋谢防火墙,FTP 需以被动模式工作,这样只须要在 FTP 服务器端防火墙规定中,凋谢 20、21 端口即可。对于防火墙配置前面章节会解说。

图 1 -1(a)FTP 被动模式

图 1 -1(b)FTP 被动模式

1.2 vsftpd 服务器装置配置

vsftpd 服务器端装置有两种办法,一是基于 YUM 形式装置,而是基于源码编译装置,最终实现成果完全一致,本文采纳 yum 装置 vsftpd,步骤如下:

1.2.1 yum 装置 vsftpd

在命令行执行如下命令

\# yum install vsftpd* -y

图 1 -2 yum 装置 vsftpd

1.2.2 查看 vsftpd 装置后的配置文件门路

\# rpm -ql vsftpd|more

图 1 -3 查看 vsftpd 装置后的配置文件门路

1.2.3 启动 vsftpd 服务

\# systemctl restart vsftpd.service

图 1 -4 启动 vsftpd 服务

1.2.4 查看过程是否启动

\# ps -ef |grep vsftpd

图 1 -5 查看 vsftp 过程

1.2.5 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 服务器。
1.2.6 通过 Windows 客户端资源管理器拜访 Vsftp 服务器端

ftp://192.168.1.181

图 1 -6 匿名用户拜访 FTP 默认目录

1.2.7 FTP 设置为被动模式应用端口办法

FTP 主被动模式,默认为被动模式,设置为被动模式应用端口办法如下:

pasv_enable=YES
pasv_min_port=60000
pasv_max_port=60100  

1.3 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 服务器程序,长处玲珑轻快,平安易用、稳固高效、满足企业跨部门、多用户的应用(1000 用户)等。

vsftpd 基于 GPL 开源协定公布,在中小企业中失去宽泛的利用,vsftpd 能够疾速上手,基于 vsftpd 虚构用户形式,拜访验证更加平安。vsftpd 还能够基于 MYSQL 数据库做平安验证,多重平安防护。

1.4 FTP 客户端简介

windows 和 Linux 零碎默认都自带有 ftp 命令程序,能够连贯到 FTP 服务器进行交互式的上传,下载通信。除此以外,还有大量的图形化 FTP 客户端工具。

windows 中罕用 FTP 客户端软件包含 CuteFTP、FlashFXP、LeapFTP、Filezilla 等。

1.5 vsftpd 匿名用户配置

vsftpd 默认以匿名用户拜访,匿名用户默认拜访的 FTP 服务器门路为:/var/ftp/pub,匿名用户只有查看权限,无奈创立、删除、批改。如需敞开 FTP 匿名用户拜访,需批改配置文件 /etc/vsftpd/vsftpd.conf,将 anonymous_enable=YES 批改为 anonymous_enable=NO,重启 vsftpd 服务即可。

1、设置容许匿名用户可能上传、下载、删除文件

如果容许匿名用户可能上传、下载、删除文件,需在 /etc/vsftpd/vsftpd.conf 配置文件中退出如下:

anon_upload_enable=YES              容许匿名用户上传文件;anon_mkdir_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
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

2、批改目录权限

因为默认 vsftpd 匿名用户有两种:anonymous、ftp,所以匿名用户如果须要上传文件、删除及批改等权限,须要 ftp 用户对 /var/ftp/pub 目录有写入权限,应用如下 chown 和 chmod 任意一种即可,设置命令如下:

办法一:

\# chown -R ftp /var/ftp/pub

办法二:

\# chmod o+w /var/ftp/pub

图 1 -6(a)更改 /var/ftp/pub 目录属主

图 1 -6(b)更改 /var/ftp/pub 目录写入权限

如上 vsftpd.conf 配置文件配置结束,同时权限设置完

4、重启 vsftpd 服务

\# systemctl restart vsftpd.service

5、通过 Windows 客户端拜访,可能上传文件、删除文件、创立目录等操作,如图 1 - 7 所示:

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

1.6 vsftpd 零碎用户配置

vsftpd 匿名用户设置结束,匿名用户,任何人都能够查看 FTP 服务器的文件、目录,甚至能够批改、删除,此计划不适宜寄存私密文件在 FTP 服务器,如何保障文件或者目录专属拥有者呢,vsftpd 零碎用户能够实现该需要。

实现 vsftpd 零碎用户形式验证,只需在 Linux 零碎中创立多个用户即可,创立用户应用 useradd,同时给用户设置明码,即可通过用户和明码登录 FTP,进行文件上传、下载、删除等操作。vsftpd 零碎用户实现办法步骤如下:

1、Linux 零碎中创立零碎用户 superman1、superman2,别离设置明码为 123456:

\# useradd superman1

\# useradd superman2

\# echo 123456|passwd –stdin superman1

\# echo 123456|passwd –stdin superman2

图 1 -8 创立用户并设置明码

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、重启 vsftpd 服务

\# systemctl restart vsftpd.service

4、通过 Windows 资源客户端验证,应用 superman1、superman2 用户登录 FTP 服务器,即可上传文件、删除文件、下载文件,superman1、superman2 零碎用户上传文件的家目录在 /home/superman1、/home/superman2 下,如图 1 -9(a)、1-9(b)所示:

图 1 -9(a)superman1 用户登录 FTP 服务器

图 1 -9(b)superman1 登录 FTP 服务器上传文件

1.7 vsftpd 虚构用户配置

留神:当容许虚构用户登录时,就不能实现实体用户登录!!两者不共存!

如果基于 vsftpd 零碎用户拜访 FTP 服务器,零碎用户越多越不利于治理,而且不利于系统安全治理,鉴于此,为了能更加的平安应用 vsftpd,需应用 vsftpd 虚构用户形式。

vsftpd 虚构用户原理:虚构用户就是没有理论的实在零碎用户,而是通过映射到其中一个实在用户以及设置相应的权限来实现拜访验证,虚构用户不能登录 Linux 零碎,从而让零碎更加的安全可靠。

vsftpd 虚构用户企业案例配置步骤如下:

1、装置 vsftpd 虚构用户需用到的软件及认证模块;

\# yum install pam libdb-utils libdb –skip-broken -y

图 1 -10 装置 vsftpd 虚构用户需用到的软件及认证模块

2、创立虚构用户临时文件 /etc/vsftpd/ftpusers.txt,新建虚构用户和明码,其中 superman001、superman002 为虚构用户名,123456 为明码,如果有多个用户,顺次格局填写即可;

\# echo “superman001
123456
superman002
123456″ > /etc/vsftpd/ftpusers.txt

图 1 -11 创立虚构用户临时文件

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

图 1 -12 生成 vsftpd 虚构用户数据库认证文件

4、配置 PAM 认证文件,/etc/pam.d/vsftpd 文件配置成如下两行;

\# echo “auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login” > /etc/pam.d/vsftpd

图 1 -13 配置 PAM 认证文件

5、所有 vsftpd 虚构用户须要映射到一个零碎用户,该零碎用户不须要明码,也不须要登录,次要用于虚构用户映射应用,创立命令如下;

\# useradd -s /sbin/nologin ftpuser

图 1 -14 创立虚构用户须要映射到的一个零碎用户

6、残缺 vsftpd.conf 配置文件如下;

#global config Vsftpd
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
chroot_local_user=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
allow_writeable_chroot=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                        虚构用户应用与本地用户雷同的权限;allow_writeable_chroot=YES                      所有的用户都将领有 chroot 权限。

7、至此,所有虚构用户独特基于 /home/ftpuser 主目录实现文件上传与下载,能够在 /etc/vsftpd/vsftpd_user_conf 目录创立虚构用户各自的配置文件,创立虚构用户配置文件主目录;

\# mkdir -p /etc/vsftpd/vsftpd_user_conf

图 1 -15 创立虚构用户配置文件主目录

8、如下别离为虚构用户 superman001、superman002 用户创立配置文件;

为 superman001 用户创立配置文件,同时创立公有的虚拟目录,配置如下:

\# echo “local_root=/home/ftpuser/superman001
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/superman001

图 1 -16 为 superman001 用户创立配置文件,同时创立公有的虚拟目录

为 superman002 用户创立配置文件,同时创立公有的虚拟目录,配置如下:

\# echo “local_root=/home/ftpuser/superman002
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/superman002

图 1 -17 为 superman002 用户创立配置文件,同时创立公有的虚拟目录

虚构用户配置文件内容详解:

local_root=/home/ftpuser/superman002    superman002 虚构用户配置文件门路;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/{superman001,superman002}

\# chown -R ftpuser:ftpuser /home/ftpuser

图 1 -18 创立虚构用户各自虚拟目录

10、重启 vsftpd 服务;

\# systemctl restart vsftpd.service

图 1 -19 启动 vsftpd 服务

11、通过 Windows 客户端资源管理器登录 vsftpd 服务端,测试后果如图 1 -20(a)、1-20(b)所示:

图 1 -20(a)superman001 虚构用户登录 FTP 服务器

图 1 -20(b)superman001 虚构用户上传下载文件

欢送关注我的微信公众号【 超哥的 IT 私房菜 】获取更多技术干货!

有什么吐槽或反馈意见,间接通知我!
我会解决您说的问题,进一步更好的服务您哦!
舒适提醒:如呈现二维码生效也可间接增加微信号:ysc13803862469

退出移动版