系统安全学习之旅(服务器ssh加固)

简介: 系统安全学习之旅(服务器ssh加固)

前因

早上发现云服务遭到奇怪IP地址大量的ssh登录,查了一下是国外的IP地址,应该是因为我ssh端口修改了,不然可能会更多登录尝试  

[root@i-9d1eq6no black]# lastb |awk '{print $3}' |sort|uniq -c |sort -n 
      1 
      1 Sat
   6603 137.184.6.21
   7085 161.35.215.224

准备干活

写个脚本将最近登录失败的IP给加入黑名单,然后定时执行脚本

准备脚本

[root@i-9d1eq6no ~]# mkdir black
[root@i-9d1eq6no black]# cd !$
[root@i-9d1eq6no black]# vim black.sh
[root@i-9d1eq6no black]# chmod u+x black.sh 

脚本内容如下

#!/bin/bash
DATE=$(date +"%a %b %e %H")
# 定义DATE方便grep过滤
#BAD_IP=$(lastb |grep "$DATE" |awk '{a[$3]++}END{for(i in a)if(a[i]>5)print i}')
# 找出登录失败大于5次的地址
COUNT=0
# 定义循环次数方便判断是否重启sshd
for IP in $BAD_IP; do
        # insert_ip=$(grep "$IP" /etc/hosts.deny |wc -l) # 查询BAD_IP是否已经在 hosts.deny 中
        # 这个判断在调试的时候可以用一下,正式使用感觉没必要开启
        # if [[ $insert_ip -eq 0 ]]; then
                echo "sshd:$IP" >> /etc/hosts.deny
                # 将IP加入到hosts.deny,但是暂不生效
                iptables -t filter -A INPUT -s $IP -j DROP
                # 使用iptables拉黑IP
                echo "$(date +"%Y-%m-%d %H:%M:%S") 屏蔽IP: $IP" >> /root/black/black.log
                COUNT=$(( $COUNT + 1 ))
        # fi
done
if [[ $COUNT -ge 1 ]]; then
        service iptables save
#       systemctl restart sshd
#       echo -e "\n$(date +"%Y-%m-%d %H:%M:%S") 本次屏蔽$COUNT个IP完成\n" >> /root/black/black.log
fi 

本来是想将黑名单IP都加入到hosts.deny,然后重启sshd生效的,群里大佬提示这样频繁重启sshd太暴力,就改成iptables了,但是追加到hosts.deny任然存在,可以定期自己登录服务器查看一下决定是否重启sshd服务


ps:如果要自己测试hosts.deny的话,记得先把自己IP加入hosts.allow,避免出现自己登录不上的情况  

定时执行

[root@i-9d1eq6no ~]# crontab -e  # 加入定时任务
[root@i-9d1eq6no ~]# crontab -l
# config ssh blacklist
50 * * * * /root/black/black.sh  # 每小时的50分执行脚本


目录
相关文章
|
5月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
312 14
|
6月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
361 24
|
6月前
|
Ubuntu 应用服务中间件 网络安全
关于一些轻量云服务器SSH断连的疑问
在使用2H2G配置的轻量级Ubuntu 22.04服务器时,按照Solana官网教程安装环境,执行`[cargo install]`命令(特别是安装avm和anchor包时),出现SSH连接中断且无法重新登录的问题。推测可能是低配服务器资源耗尽导致SSH进程被终止,即便CPU使用率下降也无法恢复连接,需重启服务器并等待约30分钟才能恢复正常。此现象或与服务器性能限制有关,期待更多测试与解释。
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
705 2
|
1月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
274 146
|
4月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
1257 0
|
7月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
319 10
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
587 2
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?