NFS

NFS: Net File system 网络文件系统
作用:通过网络挂载方式共享文件
1.共享硬盘提供给其他服务器,增加服务器的存储空间
2.共享数据,保持多台服务器访问数据的一致性

安装软件: nfs-utils-1.3.0-0.68.el7.2.x86_64.rpm
端口: 2049
启动服务: systemctl restart rpcbind
systemctl restart nfs
配置文件: /etc/exports

服务端:
[root@robin ~]# vim /etc/exports

/nfs    *(rw,sync)			共享给所有的ip地址,读写,同步
/nfs    192.168.100.0/24(rw,sync) 10.10.10.0/24(ro)		共享给多个网段
/nfs    192.168.100.129/32(rw,sync,no_root_squash)		共享给指定ip地址

[root@robin ~]# chown nfsbody /nfs/ 提供读写权限
[root@robin ~]# chmod 700 /nfs

客户端:
[root@myhost ~]# showmount -e 192.168.100.100
[root@myhost ~]# mount -t nfs 192.168.100.100:/nfs /mnt

练习:
做个NAS服务器
添加3块硬盘 做raid5 将raid5做成 LVM 通过NFS共享个其他主机
其他主机 实现NAS的自动挂载
raid:
[root@robin ~]# mdadm -C /dev/md5 -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd
[root@robin ~]# mdadm -Ds > /etc/mdadm.conf
[root@robin ~]# vim /etc/mdadm.conf

DEVICE /dev/sdb /dev/sdc /dev/sdd
ARRAY /dev/md5 metadata=1.2 name=robin.com:5 UUID=8956a357:93f72a8b:44425687:a8d8f8b1

lvm:
[root@robin ~]# pvcreate /dev/md5
[root@robin ~]# vgcreate vgtest /dev/md5
[root@robin ~]# lvcreate -L 3G -n /dev/vgtest/lvtest vgtest
[root@robin ~]# mkfs.xfs /dev/vgtest/lvtest
[root@robin ~]# mount /dev/vgtest/lvtest /nfs

nfs:
[root@robin ~]# vim /etc/exports
/nfs 192.168.100.129/32(rw,sync,no_root_squash)
[root@robin ~]# systemctl restart nfs
[root@robin ~]# systemctl enable nfs

客户端:
[root@myhost mnt]# showmount -e 192.168.100.100
Export list for 192.168.100.100:
/nfs 192.168.100.129/32
[root@myhost ~]# mount -t nfs 192.168.100.100:/nfs /mnt
自动挂载:
1.
[root@myhost ~]# vim /etc/rc.local
mount -t nfs 192.168.100.100:/nfs /mnt

[root@myhost ~]# vim /etc/fstab
192.168.100.100:/nfs /mnt nfs defaults 0 0

[root@myhost ~]# yum install -y autofs
[root@myhost ~]# mkdir /storage
[root@myhost ~]# vim /etc/auto.master
/storage /etc/auto.storage
[root@myhost ~]# vim /etc/auto.storage
nfs -fstype=nfs 192.168.100.100:/nfs

SAMBA

特点: 共享目录给其他主机使用,可以是windows 也可是linux
软件: samba-4.9.1-6.el7.x86_64.rpm
samba-client-4.9.1-6.el7.x86_64.rpm #命令测试
配置文件: /etc/samba/smb.conf
启动服务: systemctl restart smb

共享方式:
user 验证共享
map to guest = bad user 匿名共享
server windows的AD域认证

匿名模式

[root@robin ~]# mkdir /smb
[root@robin ~]# vim /etc/samba/smb.conf

[share]
    comment = test smb     #描述
    path = /smb            #共享目录
    writable = yes         # 是否可写
    browseable = yes       # 是否可见
    public = yes           # 公共目录

[root@robin ~]# chown nobody.nobody /smb 或者更改目录权限
[root@robin ~]# systemctl restart smb

linux测试:
1.命令测试
[root@myhost ~]# yum install samba-client
root@myhost ~]# smbclient -L //192.168.100.100 查看共享目录
[root@myhost ~]# smbclient //192.168.100.100/share 登录
smb: > help 获取可执行命令
smb: > ls
smb: > mkdir tt

2.mount测试
[root@myhost ~]# yum install cifs-utils #cifs文件系统支持
[root@myhost ~]# mount -t cifs //192.168.100.100/share /mnt

windows测试:

文件服务器1.png

用户认证(samba的用户基于系统中用户)
[root@robin ~]# vim /etc/samba/smb.conf
所有用户只读

[share]
        comment = test smb 
        path = /smb
        browseable = no
        valid users = robin zorro @east

只有robin可写

[share]
        comment = test smb 
        path = /smb
        browseable = no
        valid users = robin zorro @east

        write list = robin

只有robin不可写

[share]
        comment = test smb 
        path = /smb
        browseable = no
        valid users = robin zorro @east
        writable = yes 

        read list = robin

[root@robin ~]# useradd robin
[root@robin ~]# useradd zorro
添加smb用户密码
[root@robin ~]# smbpasswd -a robin
[root@robin ~]# smbpasswd -a zorro

[root@myhost ~]# smbclient -L //192.168.100.100
[root@myhost ~]# smbclient -U robin%123 //192.168.100.100/share #用户密码登录

权限设置
[root@robin ~]# chmod 757 /smb/
[root@robin ~]# chmod o+t /smb/

挂载测试
[root@myhost ~]# mount -t cifs -o username=zorro,password=123 //192.168.100.100/share /mnt

实现smb的自动挂载方式

fstab
//192.168.100.100/share /mnt cifs username=robin,password=123 0 0

auto.mysmb
smbdir -fstype=cifs,username=robin,password=123 ://192.168.100.100/share

windows清除用户缓存

C:\Users\Administrator>net use
会记录新的网络连接。
 
 
状态       本地        远程                      网络
 
-------------------------------------------------------------------------------
OK                     \\192.168.100.100\IPC$    Microsoft Windows Network
命令成功完成。





 
C:\Users\Administrator>net use \\192.168.100.100\IPC$ /DELETE
\\192.168.100.100\IPC$ 已经删除。
 
 
C:\Users\Administrator>net use
会记录新的网络连接。
 
列表是空的。


C:\Users\Administrator>

错误: 密码验证错误
方法1:修改smb服务器配置文件追加如下内容:#global
ntlm auth = yes

FTP服务器

FTP:file transfer protocol
特点:不能挂载,可以通过浏览器访问

软件: vsftpd-3.0.2-25.el7.x86_64.rpm
lftp-4.4.8-11.el7.x86_64.rpm
配置文件:/etc/vsftpd/vsftpd.conf
端口:21 20
启动服务: systemctl restart vsftpd
数据目录: /var/ftp #权限设置必须是755

端口模式(主动模式)port

文件服务器2.png

被动模式passive

文件服务器3.png

[root@robin ~]# yum install vsftpd
[root@robin ~]# systemctl restart vsftpd
[root@robin ~]# netstat -anplt | grep :21

tcp6       0      0 :::21                   :::*                    LISTEN      7916/vsftpd

linux客户端:
[root@myhost ~]# yum install lftp
[root@myhost ~]# lftp 192.168.100.100

lftp 192.168.100.100:~> ls
-rw-r--r--    1 0        0        719323136 Jan 06 07:45 CentOS-7-livecd-x86_64.iso
drwxr-xr-x    2 0        0               6 Jun 09  2021 pub
lftp 192.168.100.100:/pub> put /etc/man_db.conf   #上传文件
lftp 192.168.100.100:/pub> mirror -R /boot/  #上传目录
lftp 192.168.100.100:/pub> mirror boot/   #下载在目录

[root@robin ~]# chmod 777 /var/ftp/pub/
匿名访问(基于ftp)
anon_upload_enable=YES #匿名用户可以上传文件或目录
anon_mkdir_write_enable=YES #匿名用户可以创建文件或目录
anon_umask=022 #匿名用户上传文件权限反掩码
anon_other_write_enable=YES #匿名删除
anon_max_rate=20480 #下载限速
anon_root=/ftp #设置数据目录

本地访问(用户和密码)
[root@myhost ~]# lftp -u robin,123 192.168.100.100 本地用户登录到各自的家目录下

local_max_rate=20000 本地用户下载速度限制

ftp的额外配置文件:
/etc/vsftpd/ftpusers 写入该文件的用户不可登录系统

登录的黑白名单:
userlist_enable=YES 开启黑白名单
userlist_deny=YES 默认 即 黑名单
写入 /etc/vsftpd/user_list 文件的用户不可以登录 ftp

userlist_enable=YES 开启黑白名单
userlist_deny=NO 默认 即 白名单
只有写入 /etc/vsftpd/user_list 文件的用户可以登录 ftp

限制本地用户切换目录(黑白名单)
方式1: 限制所有的用户都不可以切换到其他目录
allow_writeable_chroot=YES #chroot后允许写
chroot_local_user=YES 限制所有用户

方式2:/etc/vsftpd/chroot_list 为白名单
allow_writeable_chroot=YES
chroot_local_user=YES # 设置是黑或者白名单
chroot_list_enable=YES #开启黑白名单
chroot_list_file=/etc/vsftpd/chroot_list #名单文件

方式3:/etc/vsftpd/chroot_list 为黑名单
allow_writeable_chroot=YES
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list