网络文件系统(英语:Network File System,缩写为NFS)是一种分布式文件系统协议,windows通常使用smb在局域网内共享文件,而nfs主要通过局域网让不同主机之间可以共享文件和目录。
客户端通过mount 方式将nfs的服务端共享数据挂载到本机系统中。从客户端本地,挂在的分区就像服务器本地的文件或者目录一样。
企业中也通常在集群系统中使用nfs来部署后端源服务器,减小web服务器的o/i读写。
QQ20190331-153552@2x.png
在企业集群工作场景中,nfs被用作储存共享视频,图片,静态文件等。例如upload目录等,通常需要反复读写的静态文件,就可以通过后端的nfs服务器给挂载到客户端,降低前端服务器的读写压力。
Nfs因为其支持功能多,不同功能需要不同的程序来启动,每个功能会占用不同的端口,所以它无法固定端口,由此可能会造成nfs服务端和客户端的传输障碍,由此,nfs同行从哪个是使用rpc服务来记录nfs对应的不同端口号,并且将nfs客户端的请求回应给客户端。这样就确保了nfs客户端和服务端之间能够成功连接。
而在网站安全考虑,如果用户上传的非法文件(webshell),就算上传,没有php解释器或者web容器的话,上传的脚本木马也就不是问题了,既然无法解析,那对网站的安全也就无法影响了。
过程如图:
QQ20190331-153558@2x.png
环境:centos6.9 内存512m

[bash]
#yum -y install nfs-utils rpcbind
#service rpcbind status
#service rpcbind start
#lsof -i :111
#111端口是rpc对外服务的端口
#service nfs start
#chkconfig rpcbind on
#chkconfig nfs on
#mkdir -p /home/nfsfile/upload
#vi /etc/exports //编辑配置文件,添加一行
#/home/nfsfile/upload    *(rw,sync,no_root_squash)
#这里两段参数的作用是 NFS共享目录 后面是NFS客户端地址 *通配符代表所有来源访问,也可以使用xxx.xxx.xxx.0/24 来确定一个网段客户端访问。括号内是对目录的全血设置
# chown -R nfsnobody.nfsnobody /home/nfsfile/upload
#设置一下共享用户的权限,防止777权限造成其他的不必要的安全问题。
[/bash]

QQ20190331-153609@2x.png

接上文提一点安全问题,如果在编辑/etc/exports时允许任意服务器连接。
QQ20190331-153617@2x.png
QQ20190331-153624@2x.png
nfs服务器的内网ip:10.14.2.238
客户端:

#yum install -y rpcbind
#service rpcbind strarls 
#showmount -e 10.14.2.238

如果能够没有报错,便证明可以挂载。
QQ20190331-153733@2x.png

#mout -t nfs 10.14.2.238:/home/nfsfile/upload /data/nfs

我在本地touch一个1.txt
可以看到服务器出现了1.txt。

portsentry是一款安全工具,可以通过监控端口(支持多端口)来达到分辨记录攻击者ip。它可以设置配置文件来阻止相应接受的地址,并记录到日志文件中。

可以说他可以阻止黑客入侵时第一个步骤,对服务器进行信息收集。搭建过程并不复杂,写个文章记录下。
[bash]
yum install gcc gcc-c++
 [/bash]

QQ20190331-153231@2x.png
QQ20190331-153006@2x.png

上图是需要修改的位置,修改后。
QQ20190331-153014@2x.png
出现以下提示则表明安装成功。
整体过程安装不是很难,部署在内网服务器中如果不能连接外网,可以通过xftp之类的直接上传源码包就可以安装了。

简单说下配置文件

[bash]
cd /usr/local/psionic/portsentry
vi portsentry.conf
[/bash]

QQ20190331-153023@2x.png
通常已经给出了一些需要监视的端口。如果使用默认的端口来进行监控,那就只需要将前面的注释符号去掉就可以了。
QQ20190331-153031@2x.png
第一行的 IGNORE_FILE是指定义端口策略文件。
第三行BLOCKED_FILE是指设置ip记录文件。
BLOCK_UDP="1"
BLOCK_TCP="1
对扫描IP的操作,0为无动作,1防火墙阻止,2执行脚本
这里我开启tcp监视。

[bash]
/usr/local/psionic/portsentry/portsentry -tcp
[/bash]

开启工具。

QQ20190331-153043@2x.png
这里我使用nmap对其进行端口扫描,可以看到,之检测到了22端口。默认配置中并没有对22端口进行监控,所以被发现了。

  今天看到的一个帖子里说的,尝试了一下确实可以,应该是某个个人申请个域名,利用广厚设计学校深情地教育版
QQ20190331-142427@2x.png

具体步骤:
打开:http://get365.pw/ 右上角会给你分配一个临时邮箱 复制好邮箱地址(别关闭临时邮箱页面)
QQ20190331-142432@2x.png
打开:https://signup.microsoft.com/signup?sku=student 输入你获取的邮箱地址,点击注册。
QQ20190331-142438@2x.png
自定义你的姓名,密码。验证码则回到刚才获取邮箱的网站,点开收到的邮件,复制输入即可。在这里可以看到直接能通过教育版,其实也可以激活office套件为教育版。
QQ20190331-142446@2x.png
注册以后会提示你添加密保 信息,设置好密保邮箱即可。

来自《高性能Linux服务器构建实战》记录。

Linux系统下产生的故障有百分之六十来自网络方面,百分之四十来自系统原因,熟练解决Linux下的网络故障对于Linux运维工作有着巨大的帮助。

解决网络问题的顺序应该先从Linux操作系统自身的底层网络开始,然后逐步向外扩展,自底向上这种思路。

网络硬件问题,可以通过检查网线、网卡、集线器、路由器、交换机等是否正常来确认是否有硬件问题造成的网络故障。
监察网卡是否能够正常工作,可以从网卡驱动是否正常价在,IP地址手否正确配置,系统路由是否设置正确的来确认。
检察局域网主机之间是否正常通讯(通过ping命令检查自身ip,局域网内其他主机)
检查DNS是否设置正确,可以从Linux的DNS客户端配置文件/etc/resolv.conf、本地文件/etc/hosts来进行确认(比如某些情况下curl检测ip和域名是否能够找到主机名)
服务是否正常打开,可以通过telnet远程访问端口,或者netstat命令检测本机端口是否处在listen状态。
检查访问权限是否正确打开,可以从本机的iptables防火墙和selinux入手检查。
检查网络硬件问题
检查网络硬件问题,如果发现某些设备出现故障只需更换硬件解决问题。
检查网卡是否工作
ifconfig命令可以判断网卡是否正常加载,(如cetnos6中网卡Eth1和eth0)。
检查网卡ip是否正确
常见如虚拟机复制过程中出现的网卡mac地址冲突,windwos会提示ip冲突等问题。
查看系统路由表设置问题。
route排除每个网卡对应的网段以及功能。
检查DNS设置是否正确:
在linux系统中,有两个文件来制定系统到哪里去寻找相关域名解析的库:分别是/etc/host.conf&&/etc/nsswitch.conf
host文件用来指定系统如何解析主机名。
检查服务是否正常打开
应用出现故障时,必须被检查的就是服务本身,比如说服务是否开启,配置文件是否都正确的配置等。
检查服务可以分为两步,第一步是检查端口是否打开。第二步检查配置文件信息。可以去查询官方文档
检查防火墙iptables的状态,如果某些服务无法访问可以去查询下iptables是否给屏蔽掉了端口如iptables -L -n

常见问题解决思路(故障排查思路):
重视错误提示,当错误出现时,查看错误信息,有目的地的去解决查找问题,将会节省大量的时间。
查看日志文件,有的问题出现后,不同问题的报错信息可能会是同一个(eg:frp报错i/o time out有可能是端口占用,有可能是客户端服务端版本不同。),此时则需要查看系统日志或者应用日志。
分析定位问题的原因。(注意备份文件,格式xxx-2017-xx-xx-1/2/3.bak)
解决问题。(通过查找资料或者翻阅官方文档、eg:tomcat启动时间久,官方文档给出了解决方案。)

系统无法启动的可能原因:
文件系统被破坏
系统重要文件被删除或修改(如hosts文件修改后无法进入系统,只能进入dos界面。)
Linux内核文件丢失。
引导分区(程序)出现问题,无法进入系统。
硬件问题(如服务器内存频率不同)。