NFS 在线安装和离线安装方式:

1. 在线安装:

第一步:在文件主服务器上安装 nfs-kernel-server
# 1. 安装 rpcbind, nfs 依赖 rpc 进行相互通信
apt-get install -y rpcbind
# 2. 安装 nfs-kernel-server
sudo apt-get install -y nfs-kernel-server
# 3. 新建共享文件主目录
sudo mkdir /home/nfs
# 4. 对此文件夹进行授权
sudo chmod 777 -R /home/nfs
# 5. 启动 nfs 服务
sudo systemctl restart nfs-kernel-server
# 6. 编辑 nfs 服务器得配置文件,设置允许共享的连接和权限(由于没有授权操作,限制最好在内网环境下使用)
sudo vi /etc/exports
# 附加限制ip和相关授权操作
/opt/nfs 192.168.1.3(insecure,rw,sync,no_root_squash)  192.168.1.4(insecure,rw,sync,no_root_squash)
# 7. 重新启动 nfs 服务
sudo systemctl restart nfs-kernel-server
# 8. 开机启动 
sudo systemctl enable nfs-kernel-server
第二步:在文件共享节点上安装 nfs-common
# 1. 安装 rpcbind, nfs 依赖 rpc 进行相互通信
apt-get install -y rpcbind
# 2. 安装 nfs-common
sudo apt-get install -y nfs-common
# 3. 新建共享文件主目录 子节点的目录路径最好和主服务器上路径保持一致,避免后期开发混淆
sudo mkdir /home/nfs
# 4. 对此文件夹进行授权
sudo chmod 777 -R /home/nfs
# 5. 启动 nfs-common 服务
sudo systemctl start nfs-common
# 6. 将主服务的共享文件夹挂载到指定目录上
sudo mount -t nfs 192.168.1.2:/opt/dimpt/nfs /opt/dimpt/nfs -o nolock
# 取消挂载
sudo umount /opt/dimpt/nfs
# 7. 开机启动 
sudo systemctl enable nfs-common
第三步:基本验证
# 基本的增删文件校验,此处省略

2. 内网环境下离线安装

第一步:在外网环境下打包安装包和依赖
nfs-kernel-server 服务:
# 1. 查找 nfs-kernel-server 的所有安装包,可以选定安装需要的版本
sudo apt-cache search nfs-kernel-server
# 2. 将 nfs-kernel-server 的安装包和依赖下载到本地,执行完成之后 安装包和依赖会下载到 /var/cache/apt/archives 目录下
sudo apt-get -d install -y nfs-kernel-server
# 3. 新建一个文件夹 
sudo mkdir /home/nfs-kernel-server/
# 4. 将下载的deb包拷贝到上述新建的文件夹下
sudo cp -r /var/cache/apt/archives/ /home/nfs-kernel-server/
# 5. 修改文件夹的权限,可读可写可执行
sudo chmod 777 -R /home/nfs-kernel-server/
# 6. 建立deb包的依赖关系
sudo dpkg-scanpackages /home/nfs-kernel-server/ /dev/null |gzip >/home/Packages.gz
#  如果出现错误:sudo: dpkg-scanpackages: command not found 则需要安装dpkg-dev工具:
sudo apt-get install dpkg-dev
# 7. 将生成的nfs-common.gz包复制到和deb同目录下
sudo cp /home/Packages.gz /home/nfs-kernel-server/archives/Packages.gz
# 8. 将/home/nfs-kernel-server/ 目录进行打包
cd /home #进入父目录下再执行打包文件
sudo tar cvzf nfs-kernel-server.tar.gz nfs-kernel-server/
# 9. 将压缩文件拷贝到离线服务器 /home 目录下上并解压缩
cd /home 
sudo tar -xvf nfs-kernel-server.tar.gz # 解压缩
# 10. 将安装包所在的路径添加到系统源source.list 中
sudo cp /etc/apt/sources.list /etc/apt/sources.list.back #备份
vim /etc/apt/sources.list
# 添加以下两行至文件末尾:
deb file:///home/nfs-kernel-server archives
deb-src file:///home/nfs-kernel-server archives

# 11. 更新源
sudo apt-get update
# 12. 离线安装 
sudo apt-get  install XXX
# 后面就按照正常的在线安装步骤进行就行了

# 安装完成后还原 sources.list 文件
sudo cp /etc/apt/sources.list.back /etc/apt/sources.list

nfs-common 服务:

# 离线打包步骤和 nfs-kernel-server 相同,把上面的 nfs-kernel-server 替换为 nfs-common 直接执行

NFS 漏洞:showmount -e 信息泄露

实现允许指定主机通过 mount 到 nfs 服务器上,阻止其它主机通过 shutdown -e 方式,泄露 NFS 共享目录结构信息。

1. 编辑 /etc/hosts.allow
sudo vi /etc/hosts.allow
# 附加允许访问的 mount 和 rpc 地址
mountd:192.168.1.3,192.168.1.4
rpcbind:192.168.1.3,192.168.1.4:allow
2. 编辑 /etc/hosts.deny
sudo vi /etc/hosts.deny
# 添加拒绝mount和 rpc的访问
mountd:all
rpcbind:ALL:deny
3. 验证访问控制是否生效
# 上述配置无需重启即可生效
# 1。 本机验证
showmount -a
clnt_create: RPC: Unknown host
# 2. 远程主机访问验证
showmount -e 192.168.1.2
clnt_create: RPC: Port mapper failure - Authentication error
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐