NFS服务 exportfs命令 FTP服务 使用vsftpd搭建ftp 使用pure-ftpd搭建ftp服务

NFS介绍

•NFS是Network File System的缩写
• NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本
• NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。
 
应用场景是:
A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致
 
fee9db6aaa379dbad570d15f352476dd392.jpg
 
191124ebb01e531d85121dc0e66dda958c2.jpg
 
 

NFS服务端安装配置

准备两台虚拟机,一台作为服务端,一台作为客户端。

服务端IP:192.168.31.137

安装NFS工具:

[root@harry-01 ~]# yum install -y nfs-utils rpcbind

配置

[root@harry-01 ~]# vim /etc/exports

/home/nfstestdir 192.168.31.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

#指定要进行分享的目录;指定要共享该目录的机器

[root@harry-01 ~]# mkdir /home/nfstestdir
[root@harry-01 ~]#chmod 777 /home/nfstestdir

启动NFS服务

在yum安装完成后,系统会自动启动rpcbind服务,默认监听的端口时111端口。

[root@harry-01 ~]# systemctl start nfs

#将NFS服务加入开机启动项:  

[root@harry-01 ~]# systemctl enable nfs

 

客户端

IP:192.168.31.138

安装NFS工具:
[root@harry-01 ~]# yum -y install nfs-utils
客户端挂载

检查客户端是否有权限访问服务端文件:

[root@harry-01 ~]# showmount -e 192.168.31.138
clnt_create: RPC: Program not registered

报错:由于网络原因nfs服务被中断

解决办法:service nfs restart 或 /etc/rc.d/init.d/nfs restart

[root@harry-01 ~]# showmount -e 192.168.31.138
Export list for 192.168.31.138:
[root@harry-01 ~]# 

开始挂载

45647dd6591c474fa975324f3b359b65dee.jpg

 

测试

在客户机挂载目录创建文件:

[root@harry-01 mnt]# cd 
[root@harry-01 ~]# cd /mnt/
[root@harry-01 mnt]# touch skr.txt 
[root@harry-01 mnt]# 

查看服务端共享目录:

[root@harry-01 ~]# ll /home/nfstestdir/
总用量 0
-rw-r--r--. 1 user1 user1 0 12月 23 22:40 skr.txt
[root@harry-01 ~]# 

即,实现了同步共享!

 

NFS配置选项

[root@harry-01 ~]# vim /etc/exports

/home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

#指定要进行分享的目录;指定要共享该目录的机器
•rw 读写
• ro 只读
• sync 同步模式,内存数据实时写入磁盘
• async 非同步模式
• no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
• root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
• all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
• anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的 ui
 

exportfs命令

•常用选项
• -a 全部挂载或者全部卸载
• -r 重新挂载
• -u 卸载某一个目录

 -v 显示共享目录

常用组合: exportfs -arv

服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效。

以上操作均在服务端进行!!!

注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统。

 

FTP介绍

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

使用vsftpd搭建ftp服务

安装vsftpd工具

[root@harry-01 ~]# yum install -y vsftpd

#创建用户:
[root@harry-01 ~]# useradd -s /sbin/nologin virftp

 vsftpd可以使用系统级别的用户进行登录,但是这样做不安全,所以需要使用vsftpd创建一个虚拟用户。在此创建一个系统普通用户的作用是使vsftpd的虚拟用户来进行映射,然后完成数据的传输。

 

编辑虚拟用户密码文件

[root@harry-01 ~]# vim /etc/vsftpd/vsftpd_login

testuser1
123123

#更改文件权限:
[root@harry-01 ~]# chmod 600 /etc/vsftpd/vsftpd_login 

该文件中内容奇数行为用户名,偶数行为用户密码。

文件转换: 将该密码文件转换成计算机能识别的二进制文件

[root@harry-01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

创建虚拟用户配置文件

创建指定虚拟用户配置文件:

[root@harry-01 ~]# mkdir /etc/vsftpd/vsftpd_user_conf

[root@harry-01 ~]#cd /etc/vsftpd/vsftpd_user_conf

创建指定虚拟用户配置文件:

[root@harry-01 vsftpd_user_conf]# 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_client=10

#客户端最大连接数量

创建虚拟用户家目录

[root@harry-01 vsftpd_user_conf]# mkdir /home/virftp/testuser1

#创建一个文件:
[root@harry-01 testuser1]# touch tea.txt
[root@harry-01 testuser1]# chown -R virftp:virftp /home/virftp

虚拟用户密码匹配

在该文件中添加这两行内容,用于指定用户密码文件位置。

auth       sufficient   /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

[root@harry-01 vsftpd_user_conf]# vim /etc/pam.d/vsftpd

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth
auth       sufficient   /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

在centos6中“/lib64/security/pam_userdb.so”该文件区分版本(32位、64位)。!!

编辑vsftpd主配置文件

[root@harry-01 vsftpd_user_conf]# 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
 

启动服务:

[root@harry-01 vsftpd_user_conf]# systemctl start vsftpd
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.

出现错误的原因是:由于centos7中vsftp的配置文件默认将 listen_ipv6=YES 这一行没有注释掉,而我们目前的网络环境还不支持ipv6,从而导致出现错误无法启动,所以解决方法是将 listen_ipv6=YES更改为:listen_ipv6=NO,或将这一行注释掉

同时:在配置文件时,不能有多余的空格(例如:allow_writeable_chroot=YES后跟了一个空格)就会报错!!!
 

[root@harry-01 vsftpd_user_conf]# systemctl start vsftpd
[root@harry-01 vsftpd_user_conf]# ps aux | grep vsftpd
root      10685  0.0  0.0  53176   580 ?        Ss   00:03   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      10694  0.0  0.0 112724   984 pts/0    R+   00:03   0:00 grep --color=auto vsftpd
[root@harry-01 vsftpd_user_conf]# 

78573c1789cb172703500187f024fcecb96.jpg

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

 

 

转载于:https://my.oschina.net/u/3993226/blog/2992236

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值