(2)必威手机官网:FTP客户端相关软件,建议将

FTP全名是File Transfer Protocol(文件传输协议) C/S架构

? 建立基于基本用户的vsftpd服务

文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。 FTP 基于TCP协议生成一个虚拟的连接,主要用于控制FTP连接信息,同时再生成一个单独的TCP连接用于FTP数据传输。用户可以通过客户端向FTP服务器端上传、下载、删除文件,FTP服务器端可以同时提供给多人共享使用。

CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户

简介:

匿名FTP

FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。

一、安装ftp服务

下面是关于FTP这个服务的属性

  1. 调整匿名用户上传目录权限,并准备下载测试文件

1、FTP传输模式

1、检查是否已经安装

(1)FTP服务相关软件

# chown ftp /var/ftp/pub

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

# rpm -qa | grep ftp

   IIS Serv-U Vsftpd proftpd pureftpd

  1. 修改vsftpd.conf配置文件,开放匿名用户访问权限、上传许可

(1)FTP主动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器,FTP服务器以数据端口(20)连接到客户端指定的数据端口(N+1)。

ftp-0.17-54.el6.x86_64

(2)FTP客户端相关软件

# vi /etc/vsftpd/vsftpd.conf

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

vsftpd-2.2.2-21.el6.x86_64            //显示已安装

   ftp命令 CuteFTP FlashFTP LeapFTP Filezilla gftp kuftp

anonymous_enable=YES //允许匿名访问

在企业实际环境中,如果FTP客户端与FTP服务端均开放防火墙,FTP需以主动模式工作,这样只需要在FTP服务器端防火墙规则中,开放20、21端口即可。关于防火墙配置后面章节会讲解。

2、若未安装则进行安装

(3)VSFTP的守护进程

local_enable=NO //不需要启用本地用户时,建议将此项设置为NO

wKiom1lDWSzSkpDmAAB9bg8ow7I525.png

# yum -y install vsftp

   /usr/sbin/vsftpd

write_enable=YES //允许开发写权限

图1-2(a) FTP主动模式

# yum -y install ftp

(4)FTP的启动脚本

anon_umask=022 //匿名用户上传文件的权限掩码


//如果在离线环境下 就先去网上预先下载ftp的rpm包 进行手动安装

   /etc/init.d/vsftpd

anon_upload_enable=YES //允许匿名用户上传文件

wKioL1lDWUeCGsLxAAB6fItEgs4558.png

3、ftp服务命令

(5)FTP的端口

anon_mkdir_write_enable=YES //允许匿名用户有写权限

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

# /etc/init.d/vsftpd start      手动启动ftp服务

   TCP协议的20,21端口与客户端进行通信

anon_other_write_enable=YES //允许匿名用户有其他写权限(慎用,可能带来安全隐患)

2、Vsftpd服务器简介

或者# service vsftpd start

      20用于建立数据连接,传输文件数据。(数据端口)

dirmessage_enable=YES

目前主流的FTP服务器端软件包括:Vsftpd、ProFTPD、PureFTPd、Wuftpd、Server-U FTP、FileZilla Server等软件,其中Unix/Linux使用较为广泛的FTP服务器端软件为Vsftpd 。

# chkconfig vsftpd on          设置为开机自启动

      21用于建立控制连接,并传输FTP控制命令。(命令端口)

xferlog_enable=YES

非常安全的FTP服务进程(Very Secure FTP daemon,Vsftpd),Vsftpd在Unix/Linux发行版中最主流的FTP服务器程序,优点小巧轻快,安全易用、稳定高效、满足企业跨部门、多用户的使用等。

# service vsftpd stop

 (6)用户控制列表文件

connect_from_port=20

3、Vsftpd服务器安装配置

# service vsftpd restart

/etc/vsftpd/ ftpusers  文件中的用户禁止登录FTP服务器(黑名单)

xferlog_std_format=YES

Vsftpd服务器端安装有两种方法,一是基于YUM方式安装,而是基于源码编译安装,最终实现效果完全一致,本文采用YUM安装Vsftpd,步骤如下:

# service vsftpd status

/etc/vsftpd/ user_list 文件中的用户可能被禁止或允许登录FTP服务器,具体看vsftpd.conf的设置

listen=YES

(1)  在命令行执行如下命令,如图1-3所示:

二、配置ftp

(7)工作模式

pam_service_name=vsftpd

yum  install    vsftpd*  -y

1、配置vsftpd配置文件

      主动模式:

userlist_enable=NO //未启用本地用户时,可以将用户列表功能禁用

wKioL1lDWZjQAKPkAABj9o17jDo450.png

# vi /etc/vsftpd/vsftpd.conf

           客户端想服务端21端口发送建立连接请求,需要传输数据时,客户端会通过port命令告诉服务器自己监听的端口,服务器会主动通过20端口与客户端建立数据连接。

tcp_wrapper=YES

图1-3 YUM安装Vsftpd服务端

# 禁止匿名用户anonymous登录

 

  1. 重启服务

  2. 客户端下载测试

(2)  打印vsftpd安装后的配置文件路径、启动Vsftpd服务及查看进程是否启动,如图1-4所示:

anonymous_enable=NO

     

# ftp 192.168.10.1

rpm  -ql    vsftpd|more

# 允许本地用户登录

     被动模式

# ftp

systemctl  restart  vsftpd.service

local_enable=YES

           客户端想服务端21端口发送建立连接请求,需要传输数据时,

# ls

ps  -ef |grep  vsftpd

# 让登录的用户有写权限(上传,删除)

服务器以pasv命令告诉客户我打开了某个端口(非20端口),你来连接我,客户端会像服务器的非20端口建立数据连接

# get ftpconfig.tar.bz2

wKiom1lDWaSyBSMHAABVwwmbNvk536.png

write_enable=YES

  

# cd pub

图1-4 打印Vsftpd软件安装后路径

# 默认umask

 (8)根据传输文件是否进行字符转换分为:

# put install.log / wget ftp://192.168.10.1/ftpconfig.tar.ba2 (只是下载时)

(3)  Vsftpd.conf默认配置文件详解如下:

local_umask=022

    文本模式(又称为ASCII)以文本序列传输数据,用的较多

# ls

anonymous_enable=YES          开启匿名用户访问;

# 把传输记录的日志保存到/var/log/vsftpd.log

    二进制模式(又称为Binary模式)以二进制序列传输数据

# quit/bye

local_enable=YES                      启用本地系统用户访问;

xferlog_enable=YES

 

本地FTP

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

xferlog_file=/var/log/vsftpd.log

 

  1. 添加测试用户

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

xferlog_std_format=NO

主配置文件

# useradd wang

dirmessage_enable=YES          打印目录显示信息,通常用于用户第一次访问目录时,信息提示;

# 允许ASCII模式上传

/etc/vsftpd/vsftpd.conf

# passwd wang

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

ascii_upload_enable=YES

 

# ls -lh /etc/*.conf* >/home/wang/etcconf.list

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

# 允许ASCII模式下载

 

  1. 修改配置文件

xferlog_std_format=YES          日志文件将根据xferlog的标准格式写入;

ascii_download_enable=YES

 

anonymous_enable=NO //若不需要启用匿名访问,此项设为NO

listen=NO                                  Vsftpd不以独立的服务启动,通过Xinetd服务管理,建议改成YES;

# 使用20号端口传输数据

搭建FTP服务:

local_enable=YES //允许本地用户访问

listen_ipv6=YES                        启用IPV6监听;

connect_from_port_20=YES

  1、搭建yum仓库

write_enable=YES //开发写权限

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

# 欢迎标语

   (1)mount /dev/cdrom /mnt

local_umask=022 //本地用户上传文件的权限掩码

userlist_enable=YES                  Vsftpd.user_list和ftpusers配置文件里用户禁止访问FTP;

ftpd_banner=Welcome to use my test ftp server.

   (2)cat /etc/yum.repos.d/rhel-debuginfo.repo

chroot_local_enable=YES //将本地用户禁锢在宿主目录中,处于安全考虑

tcp_wrappers=YES                    设置vsftpd与tcp wrapper结合进行主机的访问控制,Vsftpd服务器检查/etc/hosts.allow 和/etc/hosts.deny中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。

# 接下来的三条配置很重要

   [rhel-Server]

max_clients=20 //限制客户端并发客户端连接数最多为20

(4)  启动Vsftpd服务后,通过Windows客户端资源管理器访问Vsftp服务器端,如图1-5所示:

# chroot_local_user设置了YES,那么所有的用户默认将被chroot,

   name=Red Hat Enterprise Server

max_per_ip=2 //现在来自同一IP客户端的最大并发连接数

ftp://192.168.111.131/

# 也就用户目录被限制在了自己的home下,无法向上改变目录。

   baseurl=file:///mnt/Server

local_max_rate=1024000 //本地用户上传下载限速为1M/s

wKiom1lDWbPwzQwUAADR3nl92ao762.png

# chroot_list_enable设置了YES,即让chroot用户列表有效。

   enabled=1

pasv_enable=YES //允许被动模式并设置端口范围

图1-5 匿名用户访问FTP默认目录

# 如果chroot_local_user设置了YES,那么chroot_list_file

   gpgcheck=0

pasv_min_port=24500

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

# 设置的文件里,是不被chroot的用户(可以向上改变目录)

   gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

pasv_max_port=24600

pasv_enable=YES

# 如果chroot_local_user设置了NO,那么chroot_list_file

 

dirmessage_enable=YES

pasv_min_port=60000

# 设置的文件里,是被chroot的用户(无法向上改变目录)

   2、安装

xferlog_enable=YES

pasv_max_port=60100

chroot_list_enable=YES

      yum -y install vsftpd*

connect_from_port=20

4、Vsftpd匿名用户配置

# touch /etc/vsftpd/chroot_list 新建

 

xferlog_std_format=YES

Vsftpd默认以匿名用户访问,匿名用户默认访问的FTP服务器端路径为:/var/ftp/pub,匿名用户只有查看权限,无法创建、删除、修改。如需关闭FTP匿名用户访问,需修改配置文件/etc/vsftpd/vsftpd.conf,将anonymous_enable=YES修改为anonymous_enable=NO,重启Vsftpd服务即可。

chroot_list_file=/etc/vsftpd/chroot_list

配置选项讲解

listen=YES

如果允许匿名用户能够上传、下载、删除文件,需在/etc/vsftpd/vsftpd.conf配置文件中加入如下代码:

use_localtime=YES

实验1

pam_service_name=vsftpd

anon_upload_enable=YES                  允许匿名用户上传文件;

# 以standalone模式在ipv4上运行

  1. 1.  创建测试文件
  2. 2.  匿名用户ftp对/var/ftp/pub有写入权限
  3. 3.  允许匿名用户浏览
  4. 4.  允许用户(匿名,本地,虚拟)有上传权限
  5. 5.  允许匿名用户有上传权限
  6. 6.  允许匿名用户有上传文件夹权限
  7. 7.  禁止匿名用户有删除,覆盖等权限

userlist_enable=YES

anon_mkdir_write_enable=YES          允许匿名用户创建目录;

listen=YES

 

tcp_wrapper=YES

anon_other_write_enable=YES          允许匿名用户其他写入权限。

# PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经创建了这个pam文件,

(1)查看ftp的默认根路径,默认是有一个pub目录(默认的跟目录),

  1. 重启服务

匿名用户完整vsftpd.conf配置文件代码如下:

# 在/etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers

    [root@Centos2 ~]# ls /var/ftp/

# service vsftpd restart

anonymous_enable=YES

# 文件里的用户将禁止登录ftp服务器,比如root这样敏感的用户,所以你要禁止别的用户

   pub

  1. 在客户端验证(此处验证不再复述)

local_enable=YES

# 登录的时候,也可以把该用户追加到/etc/vsftpd/ftpusers里。

(2)备份配置文件

建立基于虚拟用户的vsftpd服务

write_enable=YES

pam_service_name=vsftpd

cd /etc/vsftpd/vsftpd.confg

  1. 建立虚拟用户名/密码数据库

local_umask=022

*重启vsftpd

   cp vsftpd.conf vsftpd.bak

# rpm -ivh --aid --nodeps db4-utils-4.3.29-9.fc6.i386.rpm

anon_upload_enable=YES

# service vsftpd restart

   vim vsftpd.conf

# vi /mima

anon_mkdir_write_enable=YES

三、创建本地用户

   内容如下

wang //奇数行用户名

anon_other_write_enable=YES

创建用户

本文由必威发布于必威-操作系统,转载请注明出处:(2)必威手机官网:FTP客户端相关软件,建议将

相关阅读