FTP服务

Samba共享服务

1.内网使用

2.用户访问量小

一、FTP

1.C/S架构

Samba(S)  -->

FTP(S) -->

2.端口

1)控制连接:TCP 21(发送FTP控制连接请求等信息)

2)数据连接:TCP 20(实现FTP的上传、下载操作)

3.工作流程

1)主动模式:服务器主动发起连接

a.首先由客户端(使用本地21端口或随机产生)向服务端的21建立FTP控制连接

b.客户端以PORT命令告知服务器"我本地已开启一个随机端口,你来吧" 2500

c.服务器从20端口连接客户端随机端口,并建立连接关系

2)被动模式:服务器被动等待连接

a.首先由客户端(使用本地21端口或随机产生)向服务端的21端口建立FTP控制连接

b.服务器以PASV命令告知客户端"我本地已开启一个随机端口,你来吧"5000-6000

c.客户端向服务器的指定打开端口(非20端口)发送请求并连接连接关系

注:被动模式下,端口范围定义为10000以上;适用于客户端开启防火墙的情况

TCP 三次握手四次断开

4.传输模式

1)文本模式(ASCII):只支持纯文本;已不再使用

2)二进制模式:支持文字、视频、声音、图片等

5.FTP用户类型

1)匿名:用户名(anonymous)、密码为空;用户名(ftp)、密码(ftp)

2)本地用户:使用服务器本地的用户名密码登录

3)虚拟用户:不存在的用户,可加强安全性

6.FTP软件

1)服务端:Windows(Serv-U、FTP发布服务)、Linux(vsftpd) 非常安全的FTP软件

2)客户端:windows自带"计算机"、flashfxp、wget URL:等

二、搭建的匿名的FTP

1.安装软件包   yum -y install vsftpd

 

2.编辑配置文件 

//创建匿名ftp访问目录  mkdir -p /ftproot/anonymous

 

//将匿名用户ftp的家目录更改为新建目录

usermod -d /ftproot/anonymous ftp

 

//给其它用户写入权限  chmod o+w /ftproot/anonymous

 

2)编辑ftp启动服务文件   vim /etc/vsftpd/vsftpd.conf

清除没有用的注释行命令为 :% g/^#/d

 

anonymous_enable=YES                //启动匿名

anon_root=/ftproot/anonymous              //指定匿名访问目录

anon_upload_enable=YES                    //允许匿名上传

anon_other_write_enable=YES          //允许匿名删除文件、文件夹

anon_mkdir_write_enable=YES          //允许匿名用户新建文件夹

anon_umask=022                            //匿名上传的文件权限为755

pasv_enable=YES                       //启动被动模式

pasv_min_port=10000                   //指定被动模式的最小端口

pasv_max_port=11000                  //指定被动模式的最大端口

local_enable=NO                //不启用本地用户

write_enable=YES        //允许写入

local_umask=022               //本地用户上传的文件权限为755

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES                //启动监听

pam_service_name=vsftpd           //pam认证模块名

userlist_enable=YES           //启用userlist列表文件

tcp_wrappers=YES             //启动TCP_WRAPPERS控制

 

注:默认vsftpd站点位置/var/ftp/;使用:r 文件路径可将指定文件内容读取到当前文件鼠标后

模版文件:/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf

3.启动服务

1)启动ftp服务      /etc/init.d/vsftpd start

 

2)将ftp服务设置为开机自启   chkconfig  --level 35 vsftpd on

 

4.访问(若出现以下故障有可能是虚拟机问题  真实环境不会出现)

格式:ftp://服务器IP或域名

故障解决(访问匿名时一直弹出输入用户名密码)

1)chmod 755 /ftproot/anonymous    //将新建目录权限改为默认值;vsftpd匿名访问时需检查目录是否755

2)访问成功后再把权限改成(chmod o+w /ftproot/anonymous)便拥有上传 下载 删除 更改等权限

三、搭建匿名和虚拟用户共存

1)定义用户密码文件   vim /etc/vsftpd/vusers

 

注:文件中奇数为用户名;偶数为上一行用户密码

2)转换用户密码文件到数据库文件

//将定义的用户密码文件使用hash转换为数据库文件

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

3)新建PAM认证文件   vim /etc/pam.d/hehe

 

4)新建本地用户  useradd -s /sbin/nologin -d /ftproot/virtual virtual

 

//查看用户/ftproot/virtual权限  ls -ld /ftproot/virtual

5)编辑配置文件   vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES                //启动匿名

anon_root=/ftproot/anonymous              //指定匿名访问目录

anon_upload_enable=YES                    //允许匿名上传

anon_other_write_enable=YES          //允许匿名删除文件、文件夹

anon_mkdir_write_enable=YES          //允许匿名用户新建文件夹

anon_umask=022                            //匿名上传的文件权限为755

pasv_enable=YES                       //启动被动模式

pasv_min_port=10000                   //指定被动模式的最小端口

pasv_max_port=11000                  //指定被动模式的最大端口

local_enable=YES         //启用本地用户,虚拟用户需使用本地用户映射

write_enable=YES        //允许写入

local_umask=022               //本地用户上传的文件权限为755

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES                //启动监听

pam_service_name=hehe              //pam认证模块名,指定为自定义pam文件名

userlist_enable=YES           //启用userlist列表文件

tcp_wrappers=YES             //启动TCP_WRAPPERS控制

guest_enable=YES              //启动虚拟用户

guest_username=virtual          //指定虚拟用户对应的本地映射用户

user_config_dir=/etc/vsftpd/virtual  //指定虚拟用户配置文件存放目录

 

注:默认虚拟用户使用匿名用户权限;如用户自行定义权限,以自权限生效

//新建虚拟用户配置文件存放目录   mkdir -p /etc/vsftpd/virtual

 

//在/etc/vsftpd/virtual目录下新建hehe、haha文件

touch /etc/vsftpd/virtual/haha

touch /etc/vsftpd/virtual/hehe

 

//编辑权限内容  vim /etc/vsftpd/virtual/haha

 

//将haha用户权限设置为不允许上传,但其它未指定权限都以/etc/vsftpd/vsftpd.conf匿名生效

 

//重启ftp服务  /etc/init.d/vsftpd restart

 

6)访问

hehe拥有完全权限

haha只能下载,不能上传

注:默认匿名用户访问本地用户的家目录

posted @ 2017-09-26 18:20  王非雨  阅读(327)  评论(0编辑  收藏  举报