第二十五课 NFS及FTP介绍与配置

14.1 NFS介绍

NFS介绍

NFS是Network File System的缩写

• NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本

• NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。

NFS应用场景

A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致 NFS架构

NFS原理图

14.2 NFS服务端安装配置

准备两台机器,lem-01(192.168.88.5)作为服务端,lem-02(192.168.88.10)作为客户端。

服务端安装两个包:nfs-utils和rpcbind yum install -y nfs-utils rpcbind

客户端安装nfs-utils yum install -y nfs-utils 其实只要安装了nfs-utils,就会自动装上rpcbind包。

1.服务端编辑/etc/exports文件

vim /etc/exports //加入如下内容
/home/nfstestdir 192.168.88.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
\\第一部分为要共享出去的目录,第二部分是允许访问的主机,第三部分就是小括号里面的一些权限选项。

2.创建指定的分享目录并赋予权限

mkdir /home/nfstestdir
chmod 777 /home/nfstestdir

3.服务端启动nfs服务

systemctl start nfs
在启动nfs服务的同时,系统也会自动启动rpcbind的服务。

4.服务端开机自动启动nfs服务

systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

14.3 NFS配置选项

.rw 读写

• ro 只读

• sync 同步模式,内存数据实时写入磁盘

• async 非同步模式

• no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大

• root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户

• all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户

• anonuid/anongid用于设置匿名账号访问的uid和gid, 和上面几个选项搭配使用,定义被限定用户的uid和gid

14.4 exportfs命令

这个exportfs命令会在安装nfs-util包时一起安装,当服务端需要停止NFS服务或者进行一些变动并重启时,其他挂载了共享目录的机器需要将这个挂载的目录卸载掉,不然的话服务进程就会出问题,单台机器我们可以使用unmnt命令去卸载,但是如果有几十台机器的话总不能一个个去unmnt吧,所以这个exportfs命令就是用来进行多台机器的卸载、重新挂载之类的操作的。 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录

当改变/etc/exports/配置文件后,使用exportfs命令挂载不需要重启NFS服务。 在服务端修改配置文件,命令如下:

vim /etc/exports 
增加一行:
/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)
exportfs -arv //不用重启nfs服务,配置文件就会生效

以下操作在客户端:

将服务端的/tmp/目录挂载到  客户端的/mnt/下:
mount -t nfs  192.168.88.5:/tmp/  /mnt/
然后在客户端上新建个nfs.txt文件:

vim /mnt/nfs.txt

可以对比看一下,客户端的/mnt/目录跟服务端的/tmp/目录都是一样的:

14.5 NFS客户端问题

客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody(NFS 4版本会有该问题)

如何解决呢?这个就在客户端挂载时加上 -o nfsvers=3:

客户端和服务端都需要 vim /etc/idmapd.conf 把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd(rpcbind)服务

15.1 FTP介绍

  1. FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。
  2. FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。
  3. 小公司用的多,大企业不用FTP,因为不安全

15.2/15.3 使用vsftpd搭建ftp

安装 vsftpd命令 :
yum install -y vsftpd
建立vsftpd账号:useradd virftp -s /sbin/nologin
建立与虚拟账号相关的文件:
vim /etc/vsftpd/vsftpd_login
testuser1
champinlinux
user1
a123456
~         
:wq
\\奇数行为用户名,偶数行为密码,(2-4是密码)多个用户就写多行
chmod 600 !$
chmod 600 /etc/vsftpd/vsftpd_login\\更改该文件的权限,提升安全级别。

文件转换: 将该密码文件转换成计算机能识别的二进制文件:
 db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
 ls -l /etc/vsftpd/
总用量 36
-rw------- 1 root root   125 8月   3 14:10 ftpusers
-rw------- 1 root root   361 8月   3 14:10 user_list
-rw------- 1 root root  5030 8月   3 14:10 vsftpd.conf
-rwxr--r-- 1 root root   338 8月   3 14:10 vsftpd_conf_migrate.sh
-rw------- 1 root root    37 1月  18 08:40 vsftpd_login
-rw-r--r-- 1 root root 12288 1月  18 08:42 vsftpd_login.db    #生成此文件

最后建立与虚拟账号相关的目录以及配置文件:
mkdir /etc/vsftpd/vsftpd_user_conf
cd !$
vim testuser1
local_root=/home/virftp/testuser1
#定义虚拟用户家目录
anonymous_enable=NO
#是否允许匿名用户登录
write_enable=YES
#是否可写
local_umask=022
#定义创建新文件时的默认权限
anon_upload_enable=NO
#是否允许匿名用户上传文件
anon_mkdir_write_enable=NO
#是否允许匿名用户创建目录文件
idle_session_timeout=600
#空闲用户保留时间
data_connection_timeout=120
#数据传输超时时间
max_clients=10
#客户端最大连接数量
:wq


创建虚拟用户家目录
mkdir /home/virftp/testuser1
创建一个文件:
touch /home/virftp/testuser1/cham.txt
chown -R virftp:virftp /home/virftp  修改权限

虚拟用户密码匹配
vim /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
\\内容是密码存放的路径,在该文件中添加这两行内容,用于指定用户密码文件位置

编辑vsftpd主配置文件:
vim /etc/vsftpd/vsftpd.conf
 将anonymous_enable=YES 改为 anonymous_enable=NO
 将#anon_upload_enable=YES 改为 anon_upload_enable=NO 
 将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
  再增加如下内容
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES


启动服务:
systemctl start vsftpd
ps aux |grep vsftpd
root      4623  0.0  0.0  53216   572 ?        Ss   09:06   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      4625  0.0  0.0 112680   976 pts/1    S+   09:06   0:00 grep --color=auto vsftpd

netstat -lntp

FTP服务监听21端口;sshd监听22端口;telnet监听23端口。!!!!

15.5 使用pure-ftpd搭建ftp服务

1. 安装epel-release和pure-ftpd :

yum install -y epel-release yum install -y pure-ftpd

2.编辑pure-ftpd.conf配置文件 :

vim /etc/pure-ftpd/pure-ftpd.conf 找到pureftpd.pdb这行,把行首的#号删掉!

3.关闭vsftpd服务(下面打开pure-ftpd服务 也需要占用21端口) :

systemctl stop vsftpd

4.启动pure-ftpd服务 :

systemctl start pure-ftpd

5.搜索ftp进程是否启动 ?

ps aux |grep ftp

6.查看pure-ftpd服务端口号 :

netstat -lntp

7. 创建一个测试目录ftp :

mkdir /data/ftp

8. 创建一个普通用户,-u指定uid :

useradd -u 1010 pure-ftp

9. 把测试目录ftp,属主属组改为pure-ftp :

chown -R pure-ftp:pure-ftp /data/ftp

10. 创建虚拟用户,指定映射的系统用户,指定虚拟用户夹目录 :

pure-pw useradd 虚拟用户名 -u 系统用户 -d 虚拟用户夹目录 pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp

11. 执行命令 :

pure-pw mkdb

12. 在测试目录ftp下,创建一个123.txt测试文件 :

touch /data/ftp/123.txt

13. 用ftp服务@本地ip,并ls查看 :

lftp ftp_usera@127.0.0.1

14. 更改123.txt测试文件属主属组 :

chown pure-ftp:pure-ftp /data/ftp/123.txt

扩展

vsftp使用mysql存放虚拟用户并验证 http://www.aminglinux.com/bbs/thread-342-1-1.html ftp的主动和被动模式http://www.aminglinux.com/bbs/thread-961-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值