文件共享服务 FTP

一.FTP配置文件服务器

FTP文件传送协议,FTP使用两个并行TCP连接,一个控制连接,一个数据连接,控制连接用于在客户机和服务器之间发送控制信息,比如用户和密码,改变远程目录和命令,上传下载文件等,数据连接用于 真正发送数据。ftp有两种工作模式,主动模式(Active),被动模式(Passive)。

1)主动模式

在主动模式下,客户端随机tcp端口连接服务器的tcp21端口请求建立控制连接,tcp三次握手建立连接,需要数据连接时,然后客户端用控制连接告诉服务器可以用于数据连接的tcp端口,然后服务器用tcp20端口与客户端告知的tcp端口建立数据连接,连接方向从服务器到客户端。

2)被动模式

在被动模式下,客户端随机tcp端口连接服务器的tcp21端口请求建立控制连接,tcp三次握手建立连接,需要数据连接时,客户端通过控制连接告诉服务器进入被动传输模式,服务器告诉客户端可以使用的数据连接端口,客户端随机使用端口与告知的服务器端口建立连接,连接方向客户端到服务器。

1.1vsftpd

vsftpd(Very Secure FTP)在安全性,稳定性,高速上表现不错。

vsftpd安装

yum -y install vsftpd

1.2vsftpd配置

配置文件/etc/vsftpd/vsftpd.conf,用户必须在配置文件中有上传功能和对应目录权限中有写权限才能上传文件。

匿名用户的配置:

anonymous_enable=YES:是否启动匿名登录

anon_upload_enable=YES:是否能上传文件

anon_mkdir_write_enable=YES:是否能创建文件

anon_ohter_write_enable=YES:是否有其他权限例如删除文件等

系统用户的配置:

local_enable=YES:是否本地用户登录

write_enable=YES:是否能上传       
            local_umask=022 :上传文件权限设定

禁锢所有的ftp本地用户于其家目录中:

chroot_local_user=YES

禁锢文件中指定的ftp本地用户于其家目录中:

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

日志:

xferlog_enable=YES

xferlog_std_format=YES

xferlog_file=/var/log/xferlog

改变上传文件的属主:

chown_uploads=YES

chown_username=whoever

vsftpd使用pam完成用户认证,其用到的pam配置文件:

pam_service_name=vsftpd

是否启用控制用户登录的列表文件

userlist_enable=YES

userlist_deny=YES|NO

默认文件为/etc/vsftpd/user_list

连接限制:

max_clients: 最大并发连接数;

max_per_ip: 每个IP可同时发起的并发请求数;

传输速率:

anon_max_rate: 匿名用户的最大传输速率, 单位是“字节/秒”;

local_max_rate: 本地用户的最大传输速率, 单位是“字节/秒”;

匿名用户登录默认用户名ftp和anonymous。有效用户包括本地用户和虚拟用户,本地用户:vsftpd所在主机中/etc/passwd中的用户和密码作为认证来源,这是默认配置;虚拟用户:vsftpd将用户的信息保存在本地数据文件,Mariadb或者mysql中,虚拟用户只能访问FTP服务器的资源,加大了安全性。下边说下本地数据文件实现虚拟用户访问。

1)过本地数据文件实现虚拟用户访问,这种方法适用于用户比较少和变化不频繁情况下。

yum -y install db4-utils    安装生成数据库的软件包
useradd -d /var/ftp/userdir -s /sbin/nologin vftpuser    生成本地映射用户,/var/ftp/userdir目录权限700
修改/etc/vsftpd/vsftpd.conf文件,如下
    guest_enable=YES         允许虚拟用户登录
    guest_username=user     将虚拟用户映射成本地vftpuser用户
    pam_service_name=vsftp.vu    将PAM配置文件指定

生成虚拟用户文件

vim /etc/vsftpd/vftpuser.txt        建立用户文件
    user1        虚拟用户
    123          密码
    user2
    456

将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件

db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
chmod 600 vfspuser.db

新建一个虚拟用户的PAM文件,加入下边两行内容

vim /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

重新加载配置完成

service vsftpd reload

2)通过MySQL实现虚拟用户访问

对于FTP服务器虚拟用户非常多或者变化比较频繁时,使用MySQL数据库可以发挥数据库操作灵活的优势,配置方法如下。

安装MySQL服务器软件包

yum -y install mysql-devel*
yum -y install mysql-server*

使用mysqladmin创建MySQL管理员和密码

mysqladmin -u root password redhat   建立用户root密码是redhat

·使用root用户登录MySQL数据库,建立虚拟用户的数据库和表然后加入虚拟用户tom 和tony

mysql -u root -p    登录mysql
create database vftpuser;    建立数据库vftpuser
use vftpuser;    进入数据库
create table users(name char(16) binary,pwd char(16) binary);    建立表user
insert into users(name,pwd) values (‘tom’,password(‘123’));    建立用户记录
insert into users(name,pwd) values (‘tony’,password(‘123’));    建立用户记录
select * from users        查看表信息

处于安全的考虑,在登录mysql数据库是,不应使用root,建立一个专门读取数据库中users表的用户

grant select on vftpuser.users to [email protected] identified by ‘redhat’;
flush privileges

生成本地映射用户,修改配置文件

useradd -d /var/ftp/userdir -s /sbin/nologin vftpuser    生成本地映射用户
修改/etc/vsftpd/vsftpd.conf文件,如下
    guest_enable=YES         允许虚拟用户登录
    guest_username=user     将虚拟用户映射成本地vftpuser用户
    pam_service_name=vsftp.vu    将PAM配置文件指定

安装mysql的PAM认证模块,并配置

yum -y pam_mysql*
vim /etc/pam.d/vsftp.vu  加入下列内容
auth required /lib/security/pam_mysql.so user=vsqluser     password=redhat host=localhost db=vftpuser table=users     usercolum=name passwordcolumn=pwd crypt=2
account required /lib/security/pam_mysql.so user=vsqluser     password=redhat host=localhost db=vftpuser table=users     usercolum=name passwordcolumn=pwd crypt=2
crypt指定密码以什么方式保存到数据库中
=0时以明文保存,
=1时使用crypt()函数加密保存,
=2时使用mysql中的password()函数加密保存,
=3时使用md5方式保存。

重启vsftpd后可使用tom和tony登录FTP服务器。

时间: 2024-10-17 14:27:39

文件共享服务 FTP的相关文章

文件共享服务 FTP,NFS 和 Samba

DAS DAS 指 Direct Attached Storage,即直连附加存储,这种设备直接连接到计算机主板总线上,计算机将其识别为一个块设备,例如常见的硬盘,U 盘等,这种设备很难做到共享. NAS NAS 指 Network Area Storage,它一般是将本地的存储空间共享给其他主机使用,一般通过 C/S 架构实现通信.它实现的是文件级别的共享,计算机通常将共享的设别识别为一个文件系统,其文件服务器会管理锁以实现并发访问.常见的 NAS 有 NFS 和 CIFS. SAN SAN

Linux文件共享服务 FTP,NFS 和 Samba

Linux 系统中,存储设主要有下面几种: DAS DAS 指 Direct Attached Storage,即直连附加存储,这种设备直接连接到计算机主板总线上,计算机将其识别为一个块设备,例如常见的硬盘,U 盘等,这种设备很难做到共享. NAS NAS 指 Network Area Storage,它一般是将本地的存储空间共享给其他主机使用,一般通过 C/S 架构实现通信.它实现的是文件级别的共享,计算机通常将共享的设别识别为一个文件系统,其文件服务器会管理锁以实现并发访问.常见的 NAS

文件共享服务之FTP

文件共享服务 一.什么是文件共享服务 简单来说就是文件或存储块设备可以共享给大家使用 (一).实现共享服务有三种: 1.ftp:属于应用层服务,可以跨平台使用(linux<->unix<-->windows) 2.nfs:属于内核模式,不可以跨平台(linux<-->linux) 3.samba:可以跨平台(linux<-->unix<-->windows) (二).实现存储设备与服务器连接的方式有三种: 1.DAS:连接的磁盘 2.NAS:通过

ftp文件共享服务详解

 ftp 文件共享服务,文件的上传下载 跨平台,tcp协议 21号(命令端口) 20号(数据端口,主动模式) 默认情况 ftp服务运行被动模式 vsftpd:软件 非常安全的rpm -qi vsftpdvsftpd is a Very Secure FTP daemon. It was written completely fromscratch. 主动模式:被动模式:验证:默认是在被动模式下,被动模式和主动模式可以切换 主动: server client 20 21 n m <--------

部署ftp文件共享服务

部署ftp文件共享服务 一.部署ftp服务 常用的部署网络服务的步骤: 部署 FTP 服务器 ? FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网络协议之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法 ? 在 RED HAT ENTREPRISE LINUX 6 中. FTP 服务器包的名称为 VSFTPD , 它代表 Very Secure File Transfer Protocol Damon 服务器名称也叫做 vsftpd ? 默认配置文件让 ANON

第十章 网络文件共享服务之ftp

10.1 ftp介绍 网络文件共享服务主流的主要有三种,分别是ftp.nfs.samba.在上一章中我们已经了解了nfs,本章我们将来说说ftp. FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输. FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件. 在FTP的使用当中,用户经常遇到两种概念:下载和上传 下载(Download)文件就是从远程主机拷贝文件至自己的计算

linux笔记 2-9 ftp文件共享服务

*****************9.ftp文件共享服务*************** 为保证实验正常进行,需修改配置文件 ##1.安装ftp##yum install vsftpd -y             //安装软件systemctl start vsftpd            //启动软件服务firewall-cmd --list-all           //查看火墙中允许的服务firewall-cmd --permanent --add-service=ftp //将ftp

FTP 文件共享服务

FTP 文件共享服务 基于tcp协议  端口:tcp 21(三次握手建立连接):tcp 20(数据传输) 工作模式  应用层 根据客户端的角度划分的: [主动模式] 客户端开启一个1024以上的动态端口如:(2000) -->连接服务器21号端口进行三次握手建立连接,三次握手的过程中会有延迟,延迟过程中: 客户端再次开启一个比上一个端口大1的端口(2001),监听 -->客户端给服务器发送命令Port2001,告知服务器,客户端的数据传输端口的2001 -->服务器端开启20端口与客户端

Linux 中的文件共享服务

Linux 中的文件共享服务 ============================================================================== 概述:    本章将主要介绍文件共享服务中的ftp服务,内容包括:ftp的程序环境,配置文件的相关介绍,以及如何配置基于虚拟用户的vsftpd服务 文件服务 1)介绍 ★ftp: 应用层,C/S架构,文件共享:file transfer protocol: ★nfs,cifs:文件系统接口,网络文件系统: ☉n