当前位置: 首页 > 科技观察

苦恼:实验室服务器被挖矿怎么办?

时间:2023-03-19 21:10:55 科技观察

实验室的服务器配置比较高,装了多块显卡。通常实验室的同学主要通过PuTTY、Xshell、MobaXterm等工具远程访问服务器,上传代码运行实验。以前有一段时间,服务器的显卡总是被挖矿程序占着。学校信息中心的老师通知实验室发生了网络攻击。结果实验室暂时断网了好几天,大家的科研学习都受到了影响。上面的情况重复了几次,大家逐渐意识到网络安全的重要性,开始讨论如何增强实验室服务器的安全性,保护服务器免受网络攻击。本文主要记录通过一系列配置提升服务器安全性的过程。更改SSH配置SSH服务的默认端口为22,这是许多端口扫描工具的预定义端口列表之一。此外,系统中的普通用户,如root、admin等,也是网络黑客的重点攻击目标。通过调整SSH配置项,更改默认端口,禁止执行特权命令的用户远程登录,可以有效提高服务器的安全性。更改默认端口:22->xxxxx编辑SSH配置文件“/etc/ssh/sshd_config”,将默认端口更改为xxxx(端口范围为1024~65535):#vi/etc/ssh/sshd_configInclude/etc/ssh/sshd_config.d/*.confPortxxxxx#AddressFamilyany#ListenAddress0.0.0.0#ListenAddress::更改端口后需要通过ssh命令指定端口登录服务器参数:ssh-pxxxxxusername@hostname禁止root用户登录:"PermitRootLoginno"#vi/etc/ssh/sshd_config#LoginGraceTime2mPermitRootLoginno#StrictModesyes#MaxAuthTries6#MaxSessions10禁止其他用户登录:"DenyUsersrootadmin"#vi/etc/ssh/sshd_config#基于每个用户覆盖设置的示例#MatchUseranoncvs#X11Forwardingno#AllowTcpForwardingno#PermitTTYno#ForceCommandcvsserverDenyUsersrootadminSettings基于密码的安全身份验证SSH提供两个级别的身份验证方法:基于密码安全认证和基于密钥的安全身份验证。其中,基于密钥的安全验证更加安全,但由于操作繁琐(每个用户必须创建一对密钥,需要保存私钥文件),实验室没有采用该方案。限制IP访问通过编辑“/etc/hosts.deny”和“/etc/hosts.allow”这两个文件,可以实现限制主机访问系统的功能(比如只限制局域网内的主机访问系统)。其中,“/etc/hosts.allow”中的规则具有更高的优先级。当两个文件中定义的规则冲突时,以“/etc/hosts.allow”中的规则为准。1.禁止所有主机通过SSH连接到服务器#vi/etc/hosts.deny#您可能希望启用此功能以确保任何不#验证查找主机名的程序仍然留下可理解的日志。在过去的#个Debian版本中,这是默认设置。#ALL:PARANOIDsshd:ALL2.允许同一网段的主机连接到服务器#如果您要保护端口映射器,请使用名称“rpcbind”作为#守护程序名称。更多信息参见rpcbind(8)和rpc.mountd(8)。#sshd:192.168.1.*:allowsshd:127.0.0.1:allowSetLinux-PAMPAM(PluggableAuthenticationModule)是Linux提供的一个认证模块,由编辑模块“/etc/pam.d/sshd”的配置文件,可以实现限制SSH登录尝试次数,防止暴力破解的功能。1.编辑“/etc/pam.d/sshd”,设置SSH在3次登录失败后锁定相应用户1小时(3600秒)。在锁定期间,即使提供正确的密码,用户也无法登录系统。注意配置的内容需要添加到文件的开头。#vi/etc/pam.d/sshd#SecureShellserviceauth的PAM配置需要pam_tally2.sodeny=3unlock_time=3600even_deny_rootroot_unlock_time=36002。查看锁定用户和清除锁定信息#查看锁定用户pam_tally2-uLoginFailuresLatestfailureFromxxx604/17/2216:25:47192.168.1.xxx#清除锁定信息pam_tally2-r开启防火墙防火墙是另外一种技术即能有效提高系统安全性。实验室主要使用“firewall-cmd”命令配置端口的开启和关闭,做好端口保护。由于网上相关资料很多,这里就不介绍了。查看日志,使用“journalctl”命令查看最近登录系统的日志记录:``bashjournalctl-usshd--since"2022-04-10"|greppasswordApr1215:47:32Zjqgnx903p9xumgkh1cv2Zisshd[8536]:root密码失败,来自137.184.224.xxx端口50748ssh2Apr1215:47:37Zjqgnx903p9xumgkh1cv2Zisshd[8538]root.xxx1密码失败427端口root.xxx1密码失败58468SSH2APR1215:47:44ZJQGNX903P9XUMGKH1CV2ZISSHD[8540]:rootfroftrowfromfromfroftrowfromfromfromfromtrousfroftrowrootfroftroftrow137.184.224.xxx端口37956SSH2APRSSH2APR1215:47:47:49ZJQGNX903P903P93P93P93P93PKEM1C.SSHIN4.SSERTING:45676SSH2APR1215:47:55ZJQGNX903P9XUMGKH1CV2ZISSHD[8544]:rootfroftrowfromfromfromfroftrowfromfromtrousfrotroot的137.184.224.xxx端口53396SSH2APRSSH2APR1215:48:48:01ZJQGNX903P903P903P93P93P93PKEM1SHIN4.SSERTING:32884ssh2...4月15日08:36:28Zjqgnx903p9xumgkh1cv2Zisshd[13021]:来自165.232.180.xxx端口48024ssh2Apr1508:36:33的无效用户zx的密码失败无效的用户MVR的ED密码来自165.232.180.xxx端口55306SSH2APR1508:36:39ZJQGNX903P903P9XUMGKH1CV2ZISSHD[13025][17028]:Acceptedpasswordforxxxfrom221.10.55.xxxport55762ssh2```可以看到有大量尝试登录服务器的记录。做好服务器安全防护刻不容缓