首页 > 系统相关 >Ubuntu防止被SSH暴力破解的几点措施

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

时间:2022-11-20 20:02:53浏览次数:48  
标签:sshd 暴力破解 sudo 端口 etc fail2ban Ubuntu SSH


目录

​​错误禁登fail2ban​​

​​修改SSH端口​​

​​禁止root远程登录​​

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

​​使用 SSH 版本 2​​

​​关闭 TCP 端口转发和 X11 转发​​


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

Ubuntu防止被SSH暴力破解的几点措施_服务器

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

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

无奈不用时关掉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

Ubuntu防止被SSH暴力破解的几点措施_服务器_03

 3、启动

sudo service fail2ban start

4、查看日志

sudo cat /var/log/fail2ban.log

5、尝试一下。

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

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

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

Ubuntu防止被SSH暴力破解的几点措施_服务器_05


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

比如:

# 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

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

sudo /etc/init.d/ssh restart

禁止root远程登录

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

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

sudo vim /etc/ssh/sshd_config

Ubuntu防止被SSH暴力破解的几点措施_服务器_07

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

标签:sshd,暴力破解,sudo,端口,etc,fail2ban,Ubuntu,SSH
From: https://blog.51cto.com/xfxuezhang/5866069

相关文章

  • Ubuntu 安装open8jdk
    环境Ubuntu18.04安装配置更新软件sudoapt-getupdate安装openjdk-8-jdksudoapt-getinstallopenjdk-8-jdk3.查看添加JAVA_HOME查看位置whichjav......
  • 64位Ubuntu 16.04运行32位程序
    AndroidSDK的部分工具是64位的,部分则是32位的。在64位Xubuntu下安装AndroidSDK后不能运行mksdcard工具,然后AndroidStudio就有问题。在64位Ubuntu下安装32位应用程序所需......
  • Ubuntu 16.04安装Brackets 1.7失败,缺失libgcrypt11,解决办法
    Ubuntu16.04安装Brackets1.7失败,缺失libgcrypt11,解决办法mingdu.zhengatgmaildotcom问题Ubuntu16.04安装Brackets1.7失败,提示缺失libgcrypt11。sudodpkg-iBracke......
  • 图文详解在VMware Workstation 16 PRO虚拟机上安装Ubuntu 22.04.5 linux系统
    一、下载Ubuntulinux系统镜像机构下载地址官网地址https://cn.ubuntu.com/download南京大学https://mirrors.nju.edu.cn/ubuntu-releases/20.04.5/山东......
  • 配置云服务器(Ubuntu)的vnc守护进程(服务)
    tags:UbuntuServer写在前面之前配置过了基于Ubuntu的阿里云服务器,并且通过vnc远程查看UI界面,但是美中不足的一点就是每次开启ssh会话都要重新输入​​vncserver-kill......
  • Tmux、SSH、服务器
    Tmux1.windows安装tmux使用​​MobaXterm​​安装,输入以下命令行即可。aptinstalltmux2.tmux启动与退出启动:tmux退出:exitorctrl+Dtmux复制粘贴复制——不用设置,MobaXTer......
  • Ubuntu允许root用户登录
    Ubuntu允许root用户登录由于ubuntu默认不允许root用户远程登录,则需要以下设置:‍以普通用户登录到目标服务器ssh<UserName>@<IPAddress>切换到root用户并设置......
  • Ubuntu 桌面系统升级
    背景之前在学习ROS2时,安装 ros-humble-desktop 出现依赖错误:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。依赖错误该问题需要升......
  • Jenkins 使用Publish over SSH远程执行命令无法停止
    Jenkins使用PublishoverSSH,远程执行命令时,如果执行的命令中有nohupjava-jartest.jar类似的命令,可能会导致一直在打印日志。Jenkins无法停止,直到超时。解决方案:......
  • 虚拟机Ubuntu环境下的Linux驱动开发环境搭建
    安装Ubuntu版本longtime版本,目前最新是22.04,下边是下载网址https://ubuntu.com/download/desktop具体的安装虚拟机和Ubuntu的教程,下边是参考教程网址https://blog.csd......