Ubuntu防止被SSH暴力破解的几点措施

2024-03-03 00:58

本文主要是介绍Ubuntu防止被SSH暴力破解的几点措施,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

错误禁登fail2ban

修改SSH端口

禁止root远程登录

禁止使用空白密码的用户访问

使用 SSH 版本 2

关闭 TCP 端口转发和 X11 转发


我的服务器只要一放开SSH端口,就会遭受暴力攻击,像这样:

只好改了SSH默认端口,但没有用,可以用NMAP扫出来,比如:

无奈不用时关掉SSH端口,用的时候再打开,但这也太麻烦了。

下面给出几种方法,建议看情况组合使用

错误禁登fail2ban

这里使用了一个软件:fail2ban。它可以在尝试失败一定次数后,禁止其登录一段时间,让尝试破解的黑客付出超长的时间代价。

1、安装

sudo apt update
sudo apt install fail2ban

2、修改配置(如端口)

# 复制配置配置文件,local文件的配置会覆盖默认conf文件的配置。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local#编辑local配置文件
sudo vim /etc/fail2ban/jail.local

如果用的默认22端口,则不需要配置;若改过,则在下面填写对应端口:

[sshd]
port=8022

 3、启动

sudo service fail2ban start

4、查看日志

sudo cat /var/log/fail2ban.log

5、尝试一下。

本地尝试登录,故意多次输入错误密码。可以看到前两次还能登录,第三次开始就直接拒绝了。

 看一下服务器后台的登录记录:


更详细用法可自行另外搜索~

比如:

# bantime,findtime和maxretry选项的值定义了禁止时间和禁止条件。
# bantime是禁止使用IP的持续时间。 如果未指定后缀,则默认为秒。 默认情况下,bantime值设置为10分钟。 通常,大多数用户都希望设置更长的禁止时间。 根据您的喜好更改值:
/etc/fail2ban/jail.local/bantime = 1d# 要永久禁止IP,请使用负数。
# findtime是设置禁令前的失败次数之间的持续时间。 例如,如果将Fail2ban设置为在五次失败之后禁止IP(maxretry,请参见下文),则这些失败必须在findtime持续时间内发生。
/etc/fail2ban/jail.local/findtime = 10m# maxretry是禁止IP之前失败的次数。 默认值设置为5,对于大多数用户来说应该可以。
/etc/fail2ban/jail.local/maxretry = 5

查看哪些IP被ban:

sudo fail2ban-client status sshd

将IP从黑名单中移除:

fail2ban-client set sshd unbanip 8.8.8.8

修改SSH端口

打开配置文件,修改Port项改为8022(自定义的端口),保存重启SSH。

sudo vim /etc/ssh/sshd_config

sudo /etc/init.d/ssh restart

禁止root远程登录

        一般攻击者只知道有个root用户,不知道你自己创建了哪些用户,所以可以禁止root远程登录,他也没法了。

        打开配置文件,修改PermitRootLogin项改为no,保存重启SSH。

sudo vim /etc/ssh/sshd_config

sudo service ssh restart

禁止使用空白密码的用户访问

        这个设置完就非常安全了,只能通过key来连接。但也有点麻烦,必须在要连接的电脑上都生成添加一次key。需要将 sshd_config 文件中的 PermitEmptyPasswords 行值设置为 no

sudo vim /etc/ssh/sshd_config

然后修改:

PermitEmptyPasswords no

改完重启:

sudo service ssh restart

使用 SSH 版本 2

        版本2修复了一些漏洞,相对安全一些。通过将 Protocol 参数添加到 sshd_config 文件来启用服务器使用第二个版本。

Include /etc/ssh/sshd_config.d/*.conf Protocol 2

关闭 TCP 端口转发和 X11 转发

        这一点也供参考吧,X11转发可以支持在命令行模式下显示GUI界面,对有些同学可能需要。在 sshd_config 文件中关闭 AllowTcpForwarding 和 X11Forwarding 功能。

sudo vim /etc/ssh/sshd_config

​​​​​​​然后修改:

X11Forwarding no 
AllowTcpForwarding no

 改完重启:

sudo service ssh restart

这篇关于Ubuntu防止被SSH暴力破解的几点措施的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/767957

相关文章

linux ssh如何实现增加访问端口

《linuxssh如何实现增加访问端口》Linux中SSH默认使用22端口,为了增强安全性或满足特定需求,可以通过修改SSH配置来增加或更改SSH访问端口,具体步骤包括修改SSH配置文件、增加或修改... 目录1. 修改 SSH 配置文件2. 增加或修改端口3. 保存并退出编辑器4. 更新防火墙规则使用uf

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例