博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ftp网络服务的搭建和配置
阅读量:5976 次
发布时间:2019-06-20

本文共 3247 字,大约阅读时间需要 10 分钟。

第一部分:理论

一.FTP服务器基本原理

1.基本概念:ftp文件传输协议:file   transport   protocol

2.传输模式:主动模式和被动模式

3.使用端口 A. 主动模式:命令控制:21   数据传输:20

          B. 被动模式:命令控制:21   数据传输:1024之后的随机端口

二.常用FTP服务器软件

Windows下:iis serverU

Linux下:wu-ftp   proftp   vsftp

三.常用的服务器端软件 vsftp——本章的重中之重:very security  file  transport  protocol

四.常用ftp客户端软件

 1.特点:

FTP客户端软件的特点

运行在图形环境下的窗口程序

可使用鼠标和通过菜单进行操作

用户界面友好,操作方便

       2.:常用FTP客户端软件

CuteFTP, leapftp, flashxp是Windows下流行的商业软件

Filezilla是Windows下运行的开源软件

gftp是Linux中GNOME桌面环境中运行的FTP客户端软件,是GNOME的重要组成部分

五.vsftpd.conf中常用的配置参数:

anonymous_enable=YES  启用匿名用户

local_enable=YES        启用本地用户

write_enable=YES        启用本地用户写权限

local_umask=022         本地用户生成文件的掩码(上传的文件权限是644)

如果上传文件夹总权限777;文件666(可以用file_open_mode=0777)

dirmessage_enable=YES  dirmessage_enable设置为“YES”时当切换到FTP服务器中的某个目录时,将显示该目录下的.message隐含文件的内容

xferlog_enable=YES   xferlog_enable设置为“YES”时FTP服务器将启用上传和下载日志

(日志文件:/var/log/xferlog)

connect_from_port_20=YES   connect_from_port_20设置为“YES”时FTP服务器将启用FTP数据端口的连接请求

xferlog_std_format=YES     xferlog_std_format设置为“YES”时FTP服务器将使用标准的ftpd xferlog日志格式

pam_service_name=vsftpd     pam_service_name设置PAM认证服务的配置文件名称

userlist_enable=YES          userlist_enable设置为“YES”时FTP服务器将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器

(userlist_enable=YES  userlist_deny=NO 表示vsftpd.user_list中用户可以登录)

(userlist_enable=YES  userlist_deny=YES 表示改文件中用户不可以登录)

(默认情况下,userlist_deny=yes 也就说,写到vsftpd.user_list里面的用户不能登录)

listen=YES 设置为yes时,ftp以独立方式启动,否则以超级进程的方式启动

tcp_wrappers=YES    tcp_wrappers设置为“YES”时FTP服务器将使用tcp_wrappers作为主机访问控制方式

chroot_local_user=YES  限制本地用户禁锢在宿主目录里面

max_clients=100 最大客户端

max_per_ip=5   每个ip的最大连接数

local_max_rate=500000  本地用户最大传输速率  (单位byte)

anon_max_rate=200000  匿名用户最大传输速率

listen_port=2121   更改ftp默认端口号

六./etc/vsftpd.ftpusers用于保存不允许进行FTP登录的本地用户帐号

 

七./etc/vsftpd.user_list文件具有对vsftpd服务器更灵活的用户访问控制

     如果想让该文件中的用户禁止登陆ftp服务器,则

       userlist_enable=YES

userlist_deny=YES

    如果想让该文件中的用户允许登陆ftp服务器,则

userlist_enable=YES

userlist_deny=NO

八.vsftpd中支持的用户类型

1.匿名用户:匿名用户名称:ftp和anonymous

2.系统用户:系统当中实际存在的用户

3.虚拟用户:非系统用户

第二部分:实验

实验一:测试匿名用户和系统用户

1.       安装ftp软件包:rpm  –ivh  vsftpd……

2.       启动ftp服务:service   vsftpd   start

3.       在客户端登陆ftp测试。

A.   在cmd里面用测试命令: ftp  服务器ip

B.    用客户端登陆测试 windows客户端:flashxp, cuteftp, leapftp

                 Linux   客户端:gftp(先安装gftp软件包)

试验二:ftp虚拟用户的配置

1.       建立虚拟用户口令库文件(奇数行是用户名,偶数行是密码)

进入/etc/vsftpd 目录,然后新建文件benet

2.       生成vsftpd的认证文件(需要安装db4-util书上没介绍)

db_load -T -t hash -f  /etc/vsftpd/benet  /etc/vsftpd/benet.db

3.       建立虚拟用户所需的PAM配置文件(/etc/pam.d/)

进入/etc/pam.d,然后建立文件ftp,内容如下

      auth required /lib/security/pam_userdb.so  db=/etc/vsftpd/benet(库名)

account required  /lib/security/pam_userdb.so db=/etc/vsftpd/benet(库名)

4.       建立虚拟用户所需要的系统用户

useradd   aa  -d  /virtual(虚拟用户主目录)  -s  /sbin/nologin

5.       建立虚拟用户所要访问的目录并设置相应权限(修改主目录权限700)

chmod    700  -R   /virtual

6.       设置/etc/vsftpd/vsftpd.conf配置文件,在文档末尾添加如下内容:

   guest_enable=YES

guest_username=aa(新建的系统用户)

pam_service_name=ftp(验证模块名称)

   user_config_dir=/etc/vsftpd_user_conf 虚拟用户权限的配置目录

7.       进入/etc/vsftpd_user_conf新建文件aa,bb。这两个文件就是aa和bb用户的权限配置文件,下面的参数就是具体的可能用的参数

anon_world_readable_only=NO    表示用户可以浏览FTP目录和下载文件

anon_upload_enable=YES        表示用户可以上传文件   

anon_mkdir_write_enable=YES    表示用户具有建立目录的权限,不能删除目录

anon_other_write_enable=YES    表示用户具有文件改名和删除文件的权限

local_root=/                  指定虚拟用户的目录

8 . 给aa用户浏览和下载的权限,给bb用户浏览,上传,下载,删除的权限。

补充实验

1.       如何实现匿名用户上传。

在/var/ftp/下新建目录来实现上传。

2.       如何限制本地任意切换主目录。

chroot_local_user = YES

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

你可能感兴趣的文章
解析find用法
查看>>
JAVA BIO 服务器与客户端实现示例
查看>>
使用Denyhost来阻止恶意连接SSH的IP
查看>>
Java: System.exit() 与安全策略
查看>>
强制杀oracle进程
查看>>
《Cisco IPv6网络实现技术(修订版)》一2.6 配置练习:使用Cisco路由器配置一个IPv6网络...
查看>>
《可穿戴创意设计:技术与时尚的融合》一一第2章 与可穿戴设备有关的故事...
查看>>
ruby动态new对象
查看>>
《JavaScript启示录》——导读
查看>>
如何让你的 Linux 系统干净整洁
查看>>
《JavaScript高效图形编程(修订版)》——6.10 用画布sprites取代DHTMLsprite
查看>>
Linux中grep命令的12个实践例子
查看>>
使用Docker Compose部署基于Sentinel的高可用Redis集群
查看>>
Mybatis 3学习笔记(一)
查看>>
MySQL · 引擎特性 · InnoDB COUNT(*) 优化(?)
查看>>
Guice系列之用户指南(十)
查看>>
树与森林的存储、遍历和树与森林的转换
查看>>
mongodb的读写分离
查看>>
Android自定义属性
查看>>
介绍几个好用的android自定义控件
查看>>