ftp文件传输协议及基于OpenSSL对ftp进行认证功能

一、Linux中常见的三种文件服务

FTP: File Transfer Protocol 文件传输协议

NFS:Network File System(RPC:Remote Procedure Call 远程过程调用) 网络文件系统

Samba:CIFS/SMB

ftp主要监听在tcp的21号端口,它实现文件共享服务,工作在应用层的协议,在客户端与服务器端的通信是基于tcp/ip的,尤其是tcp协议的上层当中实现的一种特殊协议来完成的。我们这里重点强调的这一点是因为它跟另一种机制,基于RPC的文件共享服务有着巨大的不同,RPC这种机制,能够让位于不同主机上的两个进程能够基于二进制的格式实现数据通信的。

ftp是工作在应用层的文件共享;NFS本身叫做网络文件系统,它主要是依赖于RPC工作的一种机制;Samba主要是基于CIFS/SMB协议的实现,主要实现跨平台文件共享的,而且共享的机制也是比较底层的,能够实现linux于windows之间共享文件。

ftp有两个连接,第一个连接,首先我们的客户端发起请求,服务器端予以相应,这个连接只要客户端不断开,就会长时间处于连接状态,但是这个连接不真正的进行数据传输。只要客户端与服务器端真正连接数据的时候,这个时候就会打开另外一个连接,向客户端传输数据。

FTP:tcp,两个连接

命令连接:控制连接:21/tcp

数据连接:按需打开,按需关闭。

ftp服务器主动连接:20/tcp

ftp服务器被动模式:端口随机

二、安装ftp服务器

第一步:我们要安装yum库。

我们这里用挂载光盘来安装yum库。

ftp文件传输协议及基于OpenSSL对ftp进行认证功能

[root@localhost ~]# mkdir /mnt/cdrom ###创建cdrom目录
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom ###挂载光盘(当场有效,开机无效)
[root@localhost ~]# vim /etc/fstab ###在配置文件中挂载光盘(当场无效,开机有效)
/dev/cdrom /mnt/cdrom ext3 defaults 0 0
[root@localhost ~]# cd /etc/yum.repos.d/ ###进入yum.repos.d目录下面
[root@localhost yum.repos.d]# vim server.repo ###编辑server.repo
[base]
name=Server
baseurl=file:///mnt/cdrom/Server
enabled=1
gpgcheck=0

第二步:安装ftp服务器软件。

我们安装ftp软件完成以后,我们查看一下都生成了哪些文件。除了这些剩下的大部分都是文档。这时候我们就启动用户就可以了,然后设置开机自动运行,我们在/var/ftp下面有一个pub目录,我们共享的时候都应该放到pub里面,这也就是我们每次访问服务器的时候都是到pub里面去。默认就是用pub存储公开出去的允许下载的文件。但是前提是防火墙必须是关闭的,我们用iptables –L –n查看一下,如果里面的内容如图中的那么少就是关闭的,回头我们在讲防火墙。

[root@station34 ~]# yum install vsftpd
[root@station34 ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd.log ####日志滚动配置文件
/etc/pam.d/vsftpd ####pam.d下生成配置文件,是基于pam来完成用户认证的
/etc/rc.d/init.d/vsftpd ####服务控制脚本
/etc/vsftpd ####配置文件目录
/etc/vsftpd/ftpusers ####控制用户登录的配置文件
/etc/vsftpd/user_list ####控制用户登录的配置文件
/etc/vsftpd/vsftpd.conf ####主配置文件跟服务器名称相同
/etc/vsftpd/vsftpd_conf_migrate.sh ####配置文件下生成的脚本
/usr/sbin/vsftpd ####主程序配置文件
/var/ftp ####ftp服务的根目录
[root@station34 ~]# service vsftpd start
[root@station34 ~]# chkconfig vsftpd on

ftp文件传输协议及基于OpenSSL对ftp进行认证功能

附加:ftp用户

这三种用户不论哪一种用户最终都映射为我们的系统用户,所以ftp每个用户账号过来访问文件的时候,访问的是那个用户的家目录,例如:ftp的家目录就是/var/ftp也是匿名用户访问目录,因为ftp也是我们的匿名用户本身默认所使用的用户,

ftp用户
匿名用户(anonymous)-->系统用户
系统用户(local enable)
虚拟用户-->系统用户

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/944ab6ccc73b63efc63596985f22375f.html