Linux vsftpd搭建

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

简介:

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

1)FTP服务相关软件

IISServ-U Vsftpd proftpd pureftpd

2FTP客户端相关软件

ftp命令 CuteFTP FlashFTP LeapFTP Filezilla gftp kuftp

3VSFTP的守护进程

/usr/sbin/vsftpd

4FTP的启动脚本

/etc/init.d/vsftpd

5FTP的端口

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

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目录(默认的跟目录),

    [[email protected]~]# 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两个用户可以登录

 

创建测试用户,并且设置密码

[[email protected] ~]# useradd u1

[[email protected] ~]# echo "user" |passwd --stdin u1

[[email protected] ~]# useradd u2

[[email protected] ~]# echo "user" |passwd --stdin u2

[[email protected] ~]# useradd u3

[[email protected] ~]# echo "user" |passwd --stdin u3

 

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

[[email protected] ~]# 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 用户配置目录支持

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

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

[[email protected] ~]# netstat-naptu |grep "vsftpd"

[[email protected] ~]# 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

[[email protected] ~]# servicevsftpd restart

[[email protected] ~]# netstat-naptu |grep "vsftpd"

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

 

 

时间: 2024-12-23 00:48:56

Linux vsftpd搭建的相关文章

在Linux中搭建一个FTP服务器

在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/ftp/ftp2. 两个小组互相不能访问各自的文件,需要限制用户不能离开自己的工作目录. [实现步骤] 1.检查安装vsftpd服务器 以root进入终端后(其他账户进入终端的可以用su root 输入密码后进入root 模式)之后,在终端命令窗口输入以下命令进行验证:# rpm –qa | grep

Linux下搭建无人执守安装服务器

Linux下搭建无人执守安装服务器 实验概述 原理和概念: 1:什么是PXE ? 严格来说,PXE 并不是一种安装方式,而是一种引导的方式.进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client.PXE (Pre-bootExecution Environment)协议使计算机可以通过网络启动. 网卡中必须有PXE芯片 协议分为client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BI

Linux vsftpd服务器

Linux vsftpd服务器 1.1. 概述 Vsftpd是众多ftp中的一种,主要应用于生产环境网络访问共享文件使用.多用于网络环境 FTP 工作模式: 主动模式  客户机向FTP服务器请求连接 随机端口>1024 ,20端口向客户机随机端口连接 被动模式  客户机向FTP服务器连接21端口,并指定客户端端口与20相连 1.2. 软件安装 客户端软件  ftp lftp yum install vsftpd -y 1.3. 服务和端口: 20 传输数据 21 传输验证信息 1.4. 防火墙配

Linux服务器搭建相关教程链接整理

Linux: Linux 教程 | 菜鸟教程 linux下如何添加一个用户并且让用户获得root权限 - !canfly - 博客园 Git: 在 Linux 下搭建 Git 服务器 - 黄棣-dee - 博客园 Git服务器Gitosis架设指南 - king_sundi的专栏 - 博客频道 - CSDN.NET VNC: RHEL7 配置VNC远程桌面工具 - snowfoxmonitor的专栏 - 博客频道 - CSDN.NET 在REDHAT6.X中设置VNC多用户登录 - limanj

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

- 14.4 exportfs命令 - 14.5 NFS客户端问题 - 15.1 FTP介绍 - 15.2/15.3 使用vsftpd搭建ftp # 14.4 exportfs命令 - exportfs命令 和NFS一起安装的 例: - 配置了一个共享目录,之后需要新增.更改.机器或者目录:首先需要更改配置,重启NFS服务,但是远程客户端正在使用NFS服务,重启服务端的NFS服务就会对远程的客户端有影响,比如,造成服务异常,进程异常,有很大可能导致系统坏掉 - 到了这种时候,只能去一台一台机器的

Linux中搭建FTP服务器

在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/ftp/ftp2. 两个小组互相不能访问各自的文件,需要限制用户不能离开自己的工作目录. [实现步骤] 1.检查安装vsftpd服务器 以root进入终端后(其他账户进入终端的可以用su root 输入密码后进入root 模式)之后,在终端命令窗口输入以下命令进行验证:# rpm –qa | grep

Linux中搭建一个ftp服务器详解

来源:Linux社区  作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)PORT模式:在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21)  发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ft

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命令 exportfs命令用来管理当前NFS共享的文件系统列表. 常用选项 -a:全部卸载或全部挂载 -r:重新挂载 -u:卸载某个目录 -v:显示共享目录 常用组合:exportfs -arv 服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效. 注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统. 以上操作都在服务端进行! 测试 在服务端的/etc/exports配置文件中,增加一行.把/tmp/目录单独共享给1