搭建FTP服务器实现文件共享和NFS服务器配置


FTP服务概述:

FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。

FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议

常见FTP服务器:

windows:Serv-U FTP Server,filezilla_server

Linux:ProFTPD:(Professional FTP daemon)一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序。

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

特点:

它是一个安全、高速、稳定的FTP服务器;

模式: C/S 模式

端口:

# vim /etc/services

20 (传数据)   21 (传指令)

fsp(File Service Protocol): 文件服务协议。

工作流程(原理):

这里的主动和被动,是相对于的FTP server 端来判断的

如果server 去连接client 开放的端口,说明是主动的,相反,如果client去连接server开放的端口,则是被动的。

 

安装vsftp服务器端、客户端:

# rpm -ivh /mnt/Packages/vsftpd-2.2.2-6.el6_0.1.x86_64.rpm

#yum -y install vsftpd lftp

安装客户端:

# yum install -y lftp

注:从RHEL6开始,系统镜像中默认没有ftp客户端命令。取而代之的是lftp命令

Linux客户端:

lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常好一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。

配置文件位置:

2.vsftpd 相关文档

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件

/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。  黑名单

/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。  白名单

vim  /etc/vsftpd/user_list

 

# 如果userlist_deny= YES(默认),绝不允许在这个文件中的用户登录ftp,甚至不提示输入密码

#prompt 提示

/etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些变量和设置脚本

/var/ftp/:默认情况下匿名用户的根目录

注意:为什么看不到20端口?。

因为没有数据通信。

 配置vsftpd,使用SSL证书加密数据传输

FTP与HTTP一样缺省状态都是基于明文传输,希望FTP服务器端与客户端传输保证安全,可以为FTP配置SSL

1, 使用OpenSSL生成自签证书

# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem -days 3560

OpenSSL 简单参数解释:

req - 是 X.509 Certificate Signing Request (CSR,证书签名请求)管理的一个命令。

x509 - X.509 证书数据管理。

days - 定义证书的有效日期。

newkey - 指定证书密钥处理器。

keyout - 设置密钥存储文件。

out - 设置证书存储文件,注意证书和密钥都保存在一个相同的文件

2,创建证书文件存放目录

 #  mkdir .sslkey

#   cp vsftpd.pem .sslkey/

#   chmod 400 .sslkey/vsftpd.pem

3, 修改配置文件,支持SSL

#  vim vsftpd.conf

ssl_enable=YES     #启用SSL支持

allow_anon_ssl=NO

 force_local_data_ssl=YES  

force_local_logins_ssl=YES

force_anon_logins_ssl=YES

force_anon_data_ssl=YES

#上面四行force 表示强制匿名用户使用加密登陆和数据传输

ssl_tlsv1=YES   #指定vsftpd支持TLS v1[

ssl_sslv2=YES   #指定vsftpd支持SSL v2

ssl_sslv3=YES   #指定vsftpd支持SSL v3

require_ssl_reuse=NO   #不重用SSL会话,安全配置项

ssl_ciphers=HIGH    #允许用于加密 SSL 连接的 SSL 算法。这可以极大地限制那些尝试发现使用存在缺陷的特定算法的攻击者

rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem

rsa_private_key_file=/etc/vsftpd/.sslkey/vsftpd.pem

#定义 SSL 证书和密钥文件的位置

注意:上面的配置项不要添加到vsftpd.conf 文件最后,否则启动报错

 注意: 在工作中,内网FTP传输,可以不用证书加密传输

如果FTP服务器在公网,为了数据的安全性,就一定要配置证书加密传输

 

 

NFS概述-配置NFS服务器并实现开机自动挂载

NFS服务端概述:

NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

模式: C/S 模式

端口:

RHEL7是以NFSv4作为默认版本,NFSv4使用TCP协议(端口号是2049)和NFS服务器建立连接

 

安装nfs

# yum -y install rpcbind nfs-utils

配置文件位置

# ls /etc/exports

修改配置文件

# vim /etc/exports

/media  *(rw)

注意: * 表示对所有网段开放权限

也可以指定特定的网段

重启服务

 # exportfs -rv   ##重新读取配置文件,不中断服务.

# mount -t nfs 192.168.0.63:/media/ /opt/

启动NFS服务前需要先启动 rpcbind,NFS服务依赖于rpcbind。

下面是一些NFS共享的常用参数: 

 ro                    只读访问 
 rw                   读写访问 
 sync               资料同步写入到内存与硬盘当中
 async             资料会先暂存于内存当中,而非直接写入硬盘 

 secure             NFS通过1024以下的安全TCP/IP端口发送 
 insecure          NFS通过1024以上的端口发送 
 wdelay            如果多个用户要写入NFS目录,则归组写入(默认) 
 no_wdelay      如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 
 Hide                在NFS共享目录中不共享其子目录 
 no_hide           共享NFS目录的子目录 
 subtree_check   如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) 
 no_subtree_check   和上面相对,不检查父目录权限 
 all_squash               共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 
 no_all_squash         保留共享文件的UID和GID(默认) 
 root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认) 
 no_root_squash        root用户具有根目录的完全管理访问权限 

注意:在发布共享目录的格式中除了共享目录是必跟参数外,其他参数都是可选的。并且共享

目录与客户端之间及客户端与客户端之间需要使用空格符号,但是客户端与参数之间是不能有

空格的

 

NFS客户端挂载参数的优化:

NFS高并发环境下的服务端重要优化(mount -o 参数)

async 异步同步,此参数会提高I/O性能,但会降低数据安全(除非对性能要求很高,对数据可靠性不要求的场合。一般生产环境,不推荐使用)

noatime 取消更新文件系统上的inode访问时间,提升I/O性能,优化I/O目的,推荐使用。

nodiratime 取消更新文件系统上的directory inode访问时间,高并发环境,推荐显式应用该选项,提高系统性能

intr:可以中断不成功的挂载

rsize/wsize 读取(rsize)/写入(wsize)的区块大小(block size),这个设置值可以影响客户端与服

务端传输数据的缓冲存储量。一般来说,如果在局域网内,并且客户端与服务端都具有足够的内存,这个

值可以设置大一点,比如说32768(bytes),提升缓冲区块将可提升NFS文件系统的传输能力。但设置的值也不要太大,最好是实现网络能够传输的最大值为限。

 

内核优化: 

net.core.wmem_default = 8388608     #内核默认读缓存

net.core.rmem_default = 8388608      #内核默认写缓存

net.core.rmem_max = 16777216        #内核最大读缓存

net.core.wmem_max = 16777216          #内核最大写缓存

 

用法:

mount -t nfs -o noatime,nodiratime,rsize=131072,wsize=131072,intr 192.168.0.63:/backup/NFS  /mnt

或者写到挂载文件里:

192.168.0.63:/backup/NFS /mnt nfs       noatime,nodiratime,rsize=131072,wsize=131072,intr 0 0


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM