Linux vsftpd搭建

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

简介:数据库

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

1)FTP服务相关软件windows

   IISServ-U Vsftpd proftpd pureftpd服务器

2FTP客户端相关软件网络

   ftp命令 CuteFTP FlashFTP LeapFTP Filezilla gftp kuftp架构

3VSFTP的守护进程并发

   /usr/sbin/vsftpdapp

4FTP的启动脚本tcp

   /etc/init.d/vsftpd

5FTP的端口

   TCP协议的2021端口与客户端进行通讯

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

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

 (6)用户控制列表文件

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

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

7)工做模式  

      主动模式:

           客户端想服务端21端口发送创建链接请求,须要传输数据时,客户端会经过port命令告诉服务器本身监听的端口,服务器会主动经过20端口与客户端创建数据链接。

 

     

     被动模式

           客户端想服务端21端口发送创建链接请求,须要传输数据时,

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

  

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

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

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

 

 

主配置文件

/etc/vsftpd/vsftpd.conf 

 

 

 

搭建FTP服务:

  1、搭建yum仓库

   1mount/dev/cdrom /mnt

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

   [rhel-Server]

   name=Red Hat Enterprise Server

   baseurl=file:///mnt/Server

   enabled=1

   gpgcheck=0

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

 

   2、安装

      yum-y install vsftpd*

 

配置选项讲解

实验1

1.  建立测试文件

2.  匿名用户ftp对/var/ftp/pub有写入权限

3.  容许匿名用户浏览

4.  容许用户(匿名,本地,虚拟)有上传权限

5.  容许匿名用户有上传权限

6.  容许匿名用户有上传文件夹权限

7.  禁止匿名用户有删除,覆盖等权限

 

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

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

   pub

2)备份配置文件

cd /etc/vsftpd/vsftpd.confg

   cp vsftpd.conf vsftpd.bak

   vim vsftpd.conf

   内容以下

write_enable=YES

anon_umask=022

anonymous_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=NO 是否容许匿名用户有其余写入权(更名,删除,覆盖)

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

3)启动服务

   service vsftpd start

(4)改变根目录的属主,若是不改变的话,只能访问,其余权限不能生效。由于咱们是以ftp用户的身份访问的,而pub默认的属主属组是root

   chown ftp /var/ftp/pub

 

验证:

   在网络或是计算中输入ftp地址:格式以下图。

   咱们会看到默认的pub目录。

 

进入到pub目录下,能够建立和上传测试目录了。如图2

注意:(1)修改完配置以后须要重启完服务才能生效

      2)还须要重新从客户端登录,不然修改后的配置看不到效果。

 

实验2

1.  建立测试账号u1u2u3密码都为“user”

2.  容许本地用户访问

3.  将权限掩码设为077

4.  将本地账号禁锢在宿主目录中

5.  只容许u1u2两个用户能够登陆

 

建立测试用户,而且设置密码

[root@crushlinux ~]# useradd u1

[root@crushlinux ~]# echo "user" |passwd --stdin u1

[root@crushlinux ~]# useradd u2

[root@crushlinux ~]# echo "user" |passwd --stdin u2

[root@crushlinux ~]# useradd u3

[root@crushlinux ~]# echo "user" |passwd --stdin u3

 

在配置文件中加入红色部份内容

[root@crushlinux ~]# vi /etc/vsftpd/vsftpd.conf

 

local_enable=YES

local_umask=077

chroot_local_user=YES

write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

userlist_deny=NO

tcp_wrappers=YES

 

 

 

将容许登录的用户加入到白名单中

 

vi /etc/vsftpd/user_list

u1

u2

 

service vsftpd restart

 

登录验证

   格式为:ftp://用户名:密码@ftpIP地址


 

登录上默认是空白的,由于这是用户的家目录。

 

u3用户登录,会报错误(windows不一样系统报错不会彻底一致):

 

实验3

构建基于虚拟用户的FTP服务

建立帐号数据

   1.创建虚拟FTP用户的账号数据库文件

   2.建立FTP根目录及虚拟用户映射的系统用户

   3.创建支持虚拟用户的PAM认证文件

添加虚拟用户支持

   4.vsftpd.conf文件中添加支持配置

   5.为个别虚拟用户创建独立的配置文件

启动服务并测试

   6.从新加载vsftpd配置

   7.使用虚拟FTP帐户访问测试

 

实验部分

1.创建虚拟FTP用户的账号数据库文件用到db_load工具先安装软件包

   rpm -ivh db4-utils-4.7.25-17.el6.x86_64.rpm

   cd/etc/vsftpd/

2、建立虚拟用户文件

   vim user

   a

   1

   b

   1

   c

   1

  

   基数行表明用户名,偶数行表明密码

 

经过db_load工具建立出Berkeley DB格式的数据库文件

  

   db_load -T -t hash -f user user.db

  

 

    -f 指定数据原文件

   -T 容许非Berkeley DB的应用程序使用文本格式转换的DB数据文件

   -t hash 读取文件的基本方法

3、建立虚拟用户对应的系统用户

   useradd -s /sbin/nologin vu

4创建支持虚拟用户的PAM认证文件

vi/etc/pam.d/vsftpd.vu

加入如下两行

auth       required     /lib64/security/pam_userdb.sodb=/etc/vsftpd/user

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

对应刚才生成user.db的文件

5、在vsftpd的配置文件中支持虚拟用户

注意:在作虚拟用户的时候,必定要去掉userlist_deny=NO

这个选项,不然会显示用户验证失败

vi /etc/vsftpd/vsftpd.conf

guest_enable=YES            启用用户映射功能

guest_username=vu       指定映射的系统用户名称

pam_service_name=vsftpd.vu    指定新的PAM认证文件

local_enable=YES

local_umask=077

chroot_local_user=YES  若是红色3条配置没有的话就会报错:用户身份验证失败

 

virtual_use_local_privs=YES

若是没有这条配置的话上传将会显示错误.这条最重要

还要注意每行配值的末尾不要有空行,不然也会有报错

 

 

 

6.为个别虚拟用户创建独立的配置文件

vi /etc/vsftpd/vsftpd.conf  加入下面一行

user_config_dir=/etc/vsftpd/user_dir 用户配置目录支持

为用户ab创建独立的配置目录及文件这一行也是必须有的

 

 mkdir /etc/vsftpd/user_dir

vim a

local_root=/test   规定了a用户的根目录  注意:必定要把目录的属主改成虚拟用户对应的系统用户。

 

 

默认就是全部权限

 

 

总结:本地用户和虚拟用户不能同时登陆、由于认证方式只有一种

本地是pam_service_name =vsftpd

虚拟是pam_service_name=vsftpd.vu 

 实验4

1   修改vsftpd服务的监听地址,端口

1.1  IP为:192.168.200.129

1.2  端口为:2121

2   使用vsftpd服务的被动模式

2.1  下限端口为24500

2.2  上限端口为24600

3   限制vsftpd服务的并发数,传输速度

3.1  限制并发客户链接最多200

3.2  限制每一个IP地址的链接数最多50

3.3  限制匿名用户传输速率为50KB/s

3.4  限制本地用户传输速率为200KB/s

[root@crushlinux ~]# netstat-naptu |grep "vsftpd"

[root@crushlinux ~]# vi/etc/vsftpd/vsftpd.conf

listen=YES

listen_address=192.168.200.129

listen_port=2121

 

pasv_enable=YES

pasv_min_port=24500

pasv_max_port=24600

 

max_clients=200

max_per_ip=50

anon_max_rate=50000

local_max_rate=200000

 

[root@crushlinux ~]# servicevsftpd restart

[root@crushlinux ~]# netstat-naptu |grep "vsftpd"

tcp        0      0 192.168.200.129:2121        0.0.0.0:*                   LISTEN      3552/vsftpd   

相关文章
相关标签/搜索