LINUX防御ssh远程暴力破解

在购买好服务器后,去查看主机登录日志和登录失败日志,如果发现入下图所示的长时段短时间内多IP登录失败日志,不要怀疑,你的服务器正在经受试图远程登录主机的暴力破解行为,一旦成功破解,则会进行例如植入ARP病毒等等所有想到的和想不到的操作。
如何确定自己处于被暴力破解的威胁中——审查登陆记录:
在Linux系统中,登录日志主要存储在三个文件中:

/var/log/wtmp
/var/run/utmp
/var/log/lastlog

这些文件都是二进制文件,需要使用其它命令来查看登录信息
常用的查询命令有 w,who,users,last,lastb,lastlog 等。
w:查看当前登陆用户信息
who: 用于显示当前用户登陆信息
last: 可以查看主机登陆成功的历史;
lastb: 可以查看主机登陆失败日志,康康这个=。=
在这里插入图片描述
这就是来自陌生固定IP的频繁登陆=。=
需要注意lastb文件可能是会自动更新的(这里还不太确定,似乎有区别),例如这个月和上个月看到的日志会不一样。
另外controntab -l 可以查看定时任务。

防范方式:

1.修改端口号

一般都采用22端口作为远程登录端口,对方也会通过一些工具扫描主机开放的端口号来获取当前开放端口有哪些,处于什么状态。
以nmap/zenmap为例,在大量扫描对方主机时,为了达到高效的目的往往会对一些重点端口进行扫描,其他的则掠过,一般重点端口可以参考这篇文章【】

更改端口号方法:
修改/etc/ssh/sshd_config文件中的Port ,将前方的#注释删除,并将22修改为你想要使用远程登录的端口,例如54231。
在防火墙上添加运行端口:
iptables -I INPUT -p tcp --dport 54231 -j ACCEPT
如果您使用的ubuntu系统并使用ufw,可以使用命令:sudo ufw allow 54231
如果您使用CentOS7系统并使用firewalld,可以使用命令:
firewall-cmd --zone=public --add-port=54231/tcp --permanent
如果是使用云服务器,云服务商有提供外部防火墙,例如阿里云的安全组的情况下还要在外部的安全组中修改允许tcp端口54231端口的策略。
最后使用serivce sshd restart重启sshd服务即可。
CentOS7用户使用systemctl restart sshd。
重启服务之后登录服务器都需要输入指定的远程端口才能够登录服务器,大大降低了黑客攻击服务器的概率。
缺点:还是会被各种工具扫出来端口,有些黑客可能已经过了撒网捞鱼的阶段,就是盯着你的主机做破解,这时候不排除有对主机上所有端口一个一个扫过来的可能,该发现还是能发现的-。-

2.限制登录IP

在购买好服务器时,默认是给所有IP提供访问权限的,如果暂时不希望有别的访问,可以先在/etc/hosts.deny里设置拒绝所有IP访问;再在/etc/hosts.allow里设置允许访问的IP。
/etc/hosts.deny中写入

sshd:all:deny

表示禁止服务器不会给所有IP提供服务。
/etc/hosts.allow中写入需要放行的IP

sshd:112.32.*.*

表示仅对112.32.开头的地址提供访问。
相关vim操作:i插入字符,esc退出编辑模式,:wq保存文件内容并退出
如果需要添加多个IP,用逗号分隔即可。

3.查看防火墙

一般提供主机供应商会有外部防火墙(?),用户可以

systemctl status firewalld

可以查看防火墙的状态,如果没有安装,及时安装。
在这里插入图片描述确保处于开启状态。

4.使用非root用户登录

禁止root用户登录并且设置允许其他用户登录后切换至root进行操作。这样hacker如果想要通过ssh登录服务器除了密码之外首先他还需要知道服务器允许登录的用户,这样将大大降低hacker攻破ssh的可能性。

首先,在服务器内创建一个用户,learntop:useradd learntop
并且设置密码:passwd learntop ,当然密码需要尽量复杂。

接下来我们需要允许此用户能够以root用户身份运行命令。
使用visudo命令进入文本编辑模式,于92行附近

Syntax:

user MACHINE=COMMANDS

The COMMANDS section may have other options added to it.

Allow root to run any commands anywhere
root ALL=(ALL) ALL
learntop ALL=(ALL) NOPASSWD:ALL

添加红色字体信息:“ALL=(ALL) NOPASSWD:ALL”,保存退出后可以验证一下。

[root@localhost ~]#visudo
[root@localhost ~]# su learntop
[learntop@localhost root]$ sudo su -
Last login: Tue May 22 12:55:36 CST 2018 on pts/1
[root@localhost ~]#whoami
root

首先使用su learntop切换至learntop用户,接下来我们可以使用sudo su -命令切换到root用户。
同样我们也可以通过远程登录方式验证,使用ssh客户端以learntop用户登录系统后,再使用sudo su -命令进行切换。
在设置可以通过learntop用户登录系统并能够自由切换至管理员用户操作后,我们需要禁止root用户通过远程方式登录系统。
在/etc/ssh/sshd_config文件内添加“PermitRootLoginno”,后重启sshd服务。启动后,root用户就将无法通过ssh服务直接连接到服务器。

5. 用密钥登陆服务器

6. 设置堡垒机

设备的专业名称根据企业不同可称为xx网络审计系统、XX运维审计与风险控制系统等等,俗称为堡垒机/跳板机。堡垒机是指在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中预警、及时处理及审计定责。也包括管理和数据备份等等。
这种设备一般要接管所有的运维访问,它自生会充当一个模拟器去访问所有的服务器或者其他的网络设备,并将这些服务器进行分组分类,这就包括一些对超级管理员账户密码的管理。它支持多种方式的远程登陆。当这台设备具备对服务器的访问能力后,当然不能对访问资源予取予求,而需要先对权限进行审核(审核力度各个厂商都有不同),这台设备还会对运维过程中的潜在违规操作进行审核,可以通过设立规则来阻断风险操作,还可以设置访问资源短信提示(笑死23333)。堡垒机还可以将所有设备访问过程详细记录下来,比如访问类型、主机IP、用什么协议访问的、访问者ID,来源IP,开始到结束的时间,会话时常/大小,部门信息和操作方式等,存储后生成报表(操作的视频/图表等各种形式)用于日后查询。
目前针对云主机,各种服务厂商开始提供云堡垒机。

(关于区别堡垒机、沙箱、蜜罐等待补充提供)

参考来源:

  1. https://www.bitlogs.tech/2019/11/linux%E5%AE%A1%E6%9F%A5%E7%99%BB%E9%99%86%E8%AE%B0%E5%BD%95/
  2. https://blog.csdn.net/w892824196/article/details/103923926?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242
  3. 堡垒机:https://www.bilibili.com/video/BV1RN411R7nf?t=4

sudo rm -rf /*
445扫描,挖矿

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值