NFS介绍


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 ~]#
开始挂载
测试
在客户机挂载目录创建文件:
[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)
#指定要进行分享的目录;指定要共享该目录的机器
exportfs命令
-v 显示共享目录
常用组合: exportfs -arv
服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效。
以上操作均在服务端进行!!!
注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统。
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]#
FTP服务监听21端口;sshd监听22端口;telnet监听23端口。