FTP文件共传输服务

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
简介:
+关注继续查看

3-FTP文件共传输服务

一,vsftpd服务基础

1),FTP服务概述

        FTPFile Transfer  Protocol,文件传输协议)是典型的C/S结构的应用层协议,需要由服务端软件、客户端软件共同实现文件传达输功能。

1,FTP连接及传输模式

 #FTP服务器默认使用TCP协议的“2021端口”与客户端进行通信

 #20端口用于建立数据连接,并传输文件数据

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

【模式】

#主动模式:服务器主动发起数据连接,首先由客户端向服务端的21端口建立FTP

 控制连接,当需要传输数据时,客户端以ROPT命令告知服务器“我打开了某

 个端口,你过来连接我“,于是,服务器从20端口向客户端发送请求并建立

 数据连接。

#被动模式:服务器被动等待数据连接,如果客户机所在网络的防火墙禁止主动模

 式连接,通常会使用被动模式,客户端向服务器的该端口(非20)发送请求

 并建立数据连接。

【端口】

随机端口 > 1024              周知端口 <= 1024

2,FTP用户类型

  #匿名用户:ftpanonymous,空密码,一般用于提供公共文件的下载。

  #本地用户:本机的系统用户。

  #虚拟用户:不是直接使用系统用户,而是位于独立数据文件中的FTP用户账号,通

   过使用虚拟用户,将FTP账户与Linux系统账户的关联性降至最低,可以为系

   统提供更好的安全。

3,FTP服务器软件的分类

#windowsiis                  serv-u

#Linuxproftpd pureftpd  vsftpd

〖vsftpd〗

a)该软件针对安全特性方面做了大量的设计

b)Vsftpd在速度和稳定性方面的表现也相当突出

c)Vsftpd可以支持15000个用户并发连接

d)Vsftpd:“very secure  FTP  daemon

4,FTP客户端工具的种类

#windowscuteFTP FlashFxp  LeapFTP  Filezilla

#Linuxgftp kuftp

2),vsftpd的配置

        #主程序:/usr/sbin/vsftpd

        #配置文件:/etc/vsftpd

        #脚本文件:/etc/init.d/vsftpd

1,用户列表文件“ftpusersuser_list

  #ftpusers:黑名单文件,此文件中列出的用户将禁止登录到vsftpd服务

  #user_list:黑白名单文件,一般用作白名单。此文件中包含的用户可能被禁止登录,

也可能被允许登录,具体取决于主配置文件vsftpd.conf中的设置


          userlist_enable=yes
user_list列表文件才生效

          userlist_deny=yes,为黑白名单,禁止此列表中的用户登录

          userlist_deny=no,为白名单,允许此列表中的用户登录

2,主配置文件“vsftpd.conf

格式:配置项=参数


【vsftpd.conf常见配置项及含义说明】

【匿名用户/适用于虚拟用户】

anonymous_enable=yes   /是否允许匿名访问

anon_umask=022   /设置匿名用户所上传文件的默认权限掩码值,采用反码方式表示

anon_root=/var/ftp    /设置匿名用户的FTP根目录(缺省为/var/ftp)

anon_upload_enable=yes   /是否允许匿名用户上传文件

anon_mkdir_write_enable=yes    /是否允许匿名用户有创建目录的写入权限

anon_other_write_enable=yes  /是否允许匿名用户有其他写入权限“改名,删除”

anon_max_rate=0  /限制匿名用户的最大传输速率(0为无限制),单位为字节/秒

【本地用户】

   local_enable=yes        /是否允许本地系统用户访问

   local_umask=022         /设置本地用户所上传文件的默认权限

   local_root=/var/ftp     /设置本地用户的FTP根目录,适用于虚拟用户

   local_local_user=yes   /是否将FTP本地用记禁锢在宿主目录中

   local_max_rate=0       /限制本地用户的最大传输率(0为无限制)

【全局配置】

   userlist_enable=yes  /是否启用user_list用户列表文件,启用黑白名单

   userlist_deny=yes  /是否禁用user_list列表文件中的用户账号,yes为黑

   max_clients=0  /是否允许多个客户端同时连接(0为无限制)

   max_per_ip=0  /对来自同一个IP地址的客户端,最多允许多少个并发连接(0为元限制),控制多进程     下载,如“迅雷”

   connect_from_port_20=yes /允许服务器主动模式(从20端口建立数据连接)

   pasv_enable=yes  /允许被动模式连接

   pasv_max_port=24600  /设置用于被动模式的服务器最大端口号

   pasv_min_port=24500  /设置用于被动模式的服务器最小端口号

   pam_service_name=vsftpd  /设置用于用户认证的PAM文件位置(/dev/pam.d/目录中对应的文件名)

   listen=yes  /是否以独立运行的方式监听服务

   listen_address=0.0.0.0  /设置监听FTP服务的IP地址

   listen_port=21  /设置监听FTP服务的端口号

   write_enable=yes  /启用任何形式的写入权限(如上传、删除文件等)要开启它

   download_enable=yes  /是否允许下载文件(no为仅限于浏览、上传)

   dirmessage_enable=yes  /用户切换进入目录时显示.message文件

   xferlog_enable=yes  /启用xferlog日志,默认记录到/var/log/xferlog

   xferlog_std_format=yes  /启用标准的xferlog日志格式。如禁用,将使用vsftpd自己的日志格式

二,基于系统用户的FTP服务

1),匿名访问的FTP服务

1,准备匿名FTP访问的目录

        #FTP匿名用户对应的系统用户为ftp

        #宿主目录:/var/ftp

2,开放匿名用户配置,并启动vsftpd服务

#设置主配置文件:vim /etc/vsftpd/vsftpd.conf

#开启服务:service vsftpd  restart

3,测试匿名FTP服务器

ftp  192.168.1.1


【登录FTP后,对客户端操作方法】


Linux

Windows

显示当前路径

!pwd

!cd

改变路径

lcd

lcd

查看目录内容

!ls

!dir


2),用户验证的FTP服务

1,基本的本地用户验证

·ftp://用户名@192.168.1.1

·ftp://用户名:密码@192.168.1.1

2,使用user_list用户列表文件

 ·编辑“vim /etc/vsftpd/user_list”

添加本地用户

 ·编辑 vim  /etc/vsftpd/vsftpd.conf

          userlist_enable=yes      /启用此项

          userlist_deny=no        /启用白名单

 ·重启服务:service vsftpd  restart

3),vsftpd服务的其他常用配置

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

  查看vsftpd服务的监听情况:netstat  -anpt |  grep  “vsftpd”

2,允许使用FTP服务器的被动模式

3,限制FTP连接的并发数、传输速度

三,基于虚拟用户的FTP服务

1),建立虚拟用户的账号数据库

准备工作:rpm  -ivh  db4-utils-..rpm                /安装此软件

1,创建文件格式的用户名、密码列表

vim /etc/vsftpd/vusers.list                 /vusers.list文件名,后缀名自定义

用户名奇数行

密码偶数行

2,创建Berkeley DB格式的数据库文件源文件目标文件

a)先进入/etc/vsftpd/目录:cd  /etc/vsftpd

b)创建转换:db_load  -T -t  hash  -f  vusers.listvusers.db

c)查看转换后的文件类型:flie  vusers.db

d)为提高虚拟用户账号文件的安全性,设置文件权限

chmod  600 /etc/vsftpd/vusers.*

3,添加虚拟用户的映射账号、创建FTP根目录

useradd  -d /var/ftproot  -s  /sbin/nologin virtual  

chmod  755  /var/ftproot                   /ftproot这个目录会自动创建

2),为vsftpd服务添加虚拟用户支持

1,为虚拟用户建立PAM认证文件

位于:/etc/pam.d/vsftpd

    vim  /etc/pam.d/vsftpd.vu      /vsftpd.vu文件名可自定义


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

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

2,修改vsftpd配置,添加虚拟用户支持

vim /etc/vsftpd/vsftpd.conf

                  ……//省略部分内容


                  local_enable=yes                     /
需要映射本地用户、所以启用此项

                  write_enable=yes                     /启用上传写入支持

                  anon_umask=022                       /指定上传权限掩码

                  guest_enable=yes                     /启用用户映射功能

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

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

3,为不同的虚拟用户建立独立的配置文件

a)vim  /etc/vsftpd/vsftpd.conf

……//省略部分内容


user_config_dir=/etc/vsftpd/vusers_dir              /vusers_dir
目录名自定义

b)创建用户配置文件夹

  mkdir  /etc/vsftpd/vusers_dir

c)进入此文件夹,为用户建立独立的配置文件

  cd  /etc/vsftpd/vusers_dir

  vim  用户名

          anon_upload_enable=yes                      /上传权限

          anon_mkdir_write_enable=yes                 /创建、定入权限

          anon_other_write_enable=yes                 /修改权限

d)重新加载配置

  service vsftpd  reload



本文转自甘兵 51CTO博客,原文链接:http://blog.51cto.com/ganbing/1198773,如需转载请自行联系原作者

相关文章
|
4月前
|
Unix Linux 测试技术
FTP命令不同系统之间传输文件
FTP命令不同系统之间传输文件
|
6月前
|
网络协议 Linux 网络安全
Linux文件服务配置FTP服务
之前学习了网络管理,在平时我们去各网站下载电影或者文件,比如去电影天堂下载电影的时候,细心的会发现网站的前缀是ftp://,这篇文章就开始学习怎么配置ftp服务器供客户端进行下载文件。
322 2
|
7月前
|
编解码 数据安全/隐私保护 Python
Python操作FTP服务器实现文件和文件夹的上传与下载,python清理ftp目录下的所有文件和非空文件夹
Python操作FTP服务器实现文件和文件夹的上传与下载,python清理ftp目录下的所有文件和非空文件夹
129 0
|
7月前
|
编解码 数据安全/隐私保护 Python
Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理
Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理
124 0
|
7月前
|
传感器 数据中心
河北稳控科技多通道振弦传感器无线采集仪通过短信和FTP文件修改参数
可以通过无线振弦采集仪的参数“ 检测服务器上的 PARSCMD$.txt 文件” 来控制是否在每次数据发送完成后检测FTP 服务器上的参数修改文件并执行文件内的参数修改指令。若设置此参数值为“ 是” ,则设备在发送完数据后会主动连接 FTP 服务器参数指定的地址,并在 FTP 服务器上检索是否有针对此设备的参数修改文件,若有则下载后执行,并在执行完毕后删除 FTP 服务器上的文件。
|
10月前
|
存储 程序员 Linux
python 使用ftplib连接ftp服务器获取目录、文件及它们的修改时间
* 获取当前路径或者指定路径下的文件、目录 * 检查指定路径是目录还是文件 * 根据目录、文件的修改时间来判断是否下载ftp的文件。 由于ftplib中的FTP无法满足我这一需求,所以只能重写一个MyFTP类继承FTP,写一个方法来实现,除了这个还实现了一个获取当前目录下的所有目录及文件。
910 0
python 使用ftplib连接ftp服务器获取目录、文件及它们的修改时间
|
11月前
文件复制到ftp服务器时发生错误,请检查是否有权限将文件放到该服务器上
文件复制到ftp服务器时发生错误,请检查是否有权限将文件放到该服务器上
4000 0
Java实现连接FTP服务并传递文件
Java实现连接FTP服务并传递文件
143 0
|
Linux
Linux:开启FTP传输文件
Linux:开启FTP传输文件
136 0
Linux:开启FTP传输文件
|
Python
Python编程:获取ftp目录下文件夹和文件
Python编程:获取ftp目录下文件夹和文件
832 0
相关产品
云迁移中心
推荐文章
更多