vlambda博客
学习文章列表

Homeassistant服务器安全及状态监控(上)


点击蓝字关注

Homeassistant服务器安全及状态监控(上)

Homeassistant服务器安全及状态监控(上)

导读:

服务器加好之后,24x7运行,加上开放了外网端口,如何避免或者及时发现服务器异常是非常必要的。



架设了家庭服务器,通常都会承载比较多的功能,比如媒体服务,个人云盘,FTP,SSH等等。远程控制和服务器调试,使得开网外网端口无可避免。那么怎么能够保障服务器安全,的确是一个课题。从思路上来说,主要采用两方面的措施:


一个是堵塞常规漏洞; 再一个是及时发现异常。

先说常规漏洞 ,下篇说 监督服务器及时发现异常


一般措施


一般来说如果是Linux内核的服务器,本身的安全策略也OK的话,被攻击的可能性不算高,加上本身如果路由器设定也比较合理的话,外网攻击基本可以阻止。

而且从家庭服务器的角度来说,由于本身性质和所存储数据的敏感性并不是很高,所以遭受的攻击多数来自于“好事者”的尝试性攻击,那么安全策略也主要是防止这些情况的发生。
1、路由器设定Ddos保护;
配图虽然用了Ddos的图,这个是个常见的攻击方法,不过从这个攻击的效果来说只是拖慢服务器反应,或者堵塞网络,造成无法访问,所以对于家庭服务器危害并不大,不用特别在意。而且目前多数的路由器都有自带忽略Ddos攻击的功能,通常默认已开启。建议检查一下,保证已启用该功能能。
通常位于路由器管理页的 WAN设置页面

默认开启的就不要挑√,像我的路由器。
2、设定服务器管理密码
Linux服务器的用户密码,Linux的跟管理员Root的密码默认是随机变化的,所以你自己的都不知道的东西,不用去管它了。
另外一个就是你登录和操作的用户名和密码,这个密码设定的要复杂一些,常规来说都是至少8位,包含大小写字母以及特殊字符,减少使用常用单词等规则下就足够安全了。命令:
passwd
3、SSH隧道的安全措施

SSh隧道登陆的时候可以使用用户名和密码登录,命令是:

回车之后再输入密码,输入密码时没有任何显示,输完回车就会完成登录。
但输密码有两个问题,一个是密码如果设置的复杂,那么记忆和登录时的输入都比较繁琐,且有泄露的可能,那怎么办呢,在常用的操作机上采用对称加密来免密登录。
操作端terminal下输入命令(windows的cmd下也是可以的):
ssh-keygen -b 4096 -t rsa
生成秘钥,-b 4096表示生成4096位的加密,非常之安全了,去掉这部分的话,默认是2048位,其实也已经非常安全。
然后如果是操作机也是linux系统,直接:
ssh-copy-id username@remote-server
将公钥传送到服务器端。
如果操作机是Windows系统,那么就需要先密码登录到SSH服务器,然后执行以下命令:


touch ~/.ssh/authorized_keys
创建authorized_keys文件,如果已经有了,就忽略这一步。
将在windows主机中创建的公钥文件拷贝到服务器上~/.ssh目录下,并执行:
cat -n ~/.ssh/rsa.pub ~/.ssh/authorized_keys
并检查权限:
.ssh目录的权限为700
authorized_keys目录的权限为600
大功告成,至此就可以免密码链接SSH了。
4、路由器端口映射

这部分设定通常在路由器管理页的高级设定中,设定端口映射的主要意义在于将内网的服务器某个端口暴露在外网,以供访问或链接,比如HA服务器的8123端口,通过映射就可以从外网链接访问。通常映射都采用内外网相同的服务端口,不过我们这里要调整一下,比如内网8123对应外网9527,SSH内网21对应外网6952等等。如此操作的主要原因还是基于常用端口遭受攻击的可能性更大些,改为一些非常用端口则会减少这种有针对性的攻击可能。

预告:Homeassistant服务器安全及状态监控(下)

透过对服务器CPU状态的监控,并实时发送服务器状态数据及图片来及时发现服务器异常,并在必要时解除威胁。