首页 > 其他分享 >ssh防暴力破解

ssh防暴力破解

时间:2024-12-19 16:43:14浏览次数:3  
标签:暴力破解 登录 rsa 密钥 guojie fail2ban ssh

(一)安装并配置fail2ban

1.1安装

yum -y install epel-release
yum -y install fail2ban

1.2启动fail2ban

systemctl start fail2ban
systemctl enable fail2ban

1.3编辑封禁规则

vim /etc/fail2ban/jail.conf 
#使用shift+G跳转到最后添加如下规则
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
#sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]
logpath = /var/log/secure
maxretry = 3
findtime = 5h
bantime = 48h

maxretry = 3 //最多试三次
findtime = 5h //5小时内只能试三次
bantime = 48h //三次不对,封禁48小时

1.4重新加载配置文件

fail2ban-client reload
systemctl restart  fail2ban

1.5 fail2ban常用命令(均省略fail2ban-client前缀)

命令 作用
start 启动fail2ban server和监狱
reload 重新加载配置文件
stop 暂停fail2ban和监狱
status 查看运行的监控服务数量和列表
set loglevel 设置日志等级,有CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG
get loglevel 获取当前日志的等级
set idle on/off 设置某个监狱(监控)的状态
set addignoreip 添加某个监控(监狱)可以忽略的ip (即加入白名单)
set delignoreip 删除某个监控(监狱)可以忽略的ip (即移出白名单)
set banip 将ip加入监控(监狱) (即加入黑名单)
set unbanip 将ip从监控(将于)删除 (即移出黑名单)

1.6 查看监狱状态

查看监狱名称

[root@VM-8-14-centos ~]# fail2ban-client status
Status
|- Number of jail:	1
`- Jail list:	ssh-iptables
#这里可以看到刚刚添加的封禁规则

查看被拉进黑名单的ip

[root@VM-8-14-centos ~]# fail2ban-client status ssh-iptables
Status for the jail: ssh-iptables
|- Filter
|  |- Currently failed:	44
|  |- Total failed:	498
|  `- File list:	/var/log/secure
`- Actions
   |- Currently banned:	25
   |- Total banned:	25
   `- Banned IP list:	35.230.66.101 146.190.49.11 141.98.11.90 93.123.118.22 14.40.106.169 141.98.11.11 218.92.0.92 150.158.166.64 80.66.83.207 217.119.27.48 31.184.198.71 103.10.86.100 185.224.128.187 170.64.183.31 37.201.10.170 114.104.188.219 77.170.59.124 185.224.128.142 185.224.128.141 193.201.9.109 31.41.244.61 31.41.244.62 218.91.157.54 2.59.254.244 221.215.21.91

(二)linux禁用密码登录

2.1 服务器端密钥的生成和配置

1.1 在需要配置使用密钥登录的用户的家目录下,新建一个.ssh目录,并将目录权限修改为700(仅用户自己可以读写操作):

mkdir .ssh
chmod 700 .ssh

1.2 进入.ssh目录,使用ssh-keygen命令生成rsa密钥对:

cd .ssh
# 生成密钥对(如果不设置密钥对可以一直回车即可)
ssh-keygen -t rsa -b 4096
[guojie@localhost .ssh]$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
#选择密钥存放路径
Enter file in which to save the key (/home/guojie/.ssh/id_rsa): 
#密钥对的密码,可以为空
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/guojie/.ssh/id_rsa.
Your public key has been saved in /home/guojie/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:QdSxsaJGEVNHQhz9fIhudUpi656bdAh4hSfPbkLbUOU guojie@localhost.localdomain
The key's randomart image is:
+---[RSA 4096]----+
|      +*B==..    |
|       +.+o*     |
|      . = *+E.   |
|     . o X+ * o  |
|      + Soo= +   |
|     . o *+..    |
|        oo* .    |
|         +.+     |
|         .=.     |
+----[SHA256]-----+

1.3 这时生成了两个文件,id_rsa和id_rsa.pub,其中前一个为私钥,后一个为公钥,公钥须保留在服务器上,私钥拷贝到客户端机器上。

sz id_rsa

1.4 在.ssh目录中新建一个文件名为:authorized_keys,将公钥内容拷贝到这个文件中,并将文件权限改为600(仅用户自身有读写权限)

touch authorized_keys
cat id_rsa.pub > authorized_keys
chmod 600 authorized_keys

2.2 客户端

2.2.1 windows系统

​ windows登录服务器我们 一般使用远程工具连接,需要先将私钥导入到登录工具的密钥管理器,建立一个新的连接,用户名和主机的填写与采用用户名密码登录一样,登录不再选择”Password”而是”Public key",User Name填写自己的登录用户名,User Key选择之前导入的服务器私钥 ,保存之后,即可无密码登录。

2.2.2 linux系统

2.2.2.1、与服务器端一样,在用户家目录下新建一个.ssh目录,并将其目录权限改为700(仅用户自身有读写操作权限):

mkdir -p ~/.ssh/hosts

2.2.2.2、将服务器上的私钥id_rsa拷贝到当前主机.ssh/hosts目录下并修改成一个便于区分的文件名,如"主机名_用户名",然后将其移动到~/.ssh/hosts目录下

mv ./id_rsa ./minghu_guojie
mv ./minghu_guojie ~/.ssh/hosts/

2.2.2.3、查看文件权限是否为600,如果不是的话需要修改

ls -l ~/.ssh/hosts/minghu_guojie
chmod 600 ~/.ssh/hosts/minghu_guojie

2.2.2.4、登录测试

ssh -i ~/.ssh/hosts/minghu_guojie 用户名@IP地址

2.2.3 使用远程工具连接

这里以xshell为例:

新建会话,填上名称和ip,点击确认之后双击打开会话:

Snipaste_2023-09-26_11-32-51

填写用户名,注意是填写配置了密钥对的用户名,不同用户都需要和上面的步骤一样在其家目录的“.ssh”文件夹里生成密钥对。

Snipaste_2023-09-26_11-37-03

点击确认之后再次双击会话,导入私钥:

Snipaste_2023-09-26_11-40-47

Snipaste_2023-09-26_11-41-44

这里如果在生成密钥对的时候你设置了密码,这里就需要输入密码,如果没有它是不会提示的。

Snipaste_2023-09-26_11-42-32

选中导入的密钥之后点击确认

Snipaste_2023-09-26_11-44-19

再次输入生成密钥匙设置的密码

Snipaste_2023-09-26_11-45-41

点击确认,连接成功

Snipaste_2023-09-26_11-47-35

2.3 禁用密码登录

确认没问题之后就可以禁用密码登录使用密钥登录了

修改sshd_config

 vi /etc/ssh/sshd_config

修改:

# 表示使用密钥对登录
PubkeyAuthentication yes
# 关闭密码登录
PasswordAuthentication no

重启sshd:

systemctl restart sshd

标签:暴力破解,登录,rsa,密钥,guojie,fail2ban,ssh
From: https://www.cnblogs.com/luguojie/p/18617534

相关文章

  • SSHCTF--RE--WP(自存)
    SSHCTF复现0x01CheckyourIDA知识点:IDApro的基础使用方法做法:把文件拖进ida,在functionswindows栏control+F,搜索main函数。再对main函数点击f5进入伪代码窗口,直接可以得到flag0x02babyxor知识点:异或运算做法:无壳,拖进ida,找到main函数,进入伪代码窗口,审计代码双击变......
  • ssh登录时太慢
    有时候,ssh客户端登录服务器时,需要过很久,才能出现输入密码的提示。这大概率是因为下面原因:Themethodsavailableforauthenticationare:GSSAPI-basedauthentication,host-basedauthentication,publickeyauthentication,keyboard-interactiveauthentication,andpas......
  • linux免密登录和ssh服务及ssh客户端工具安装
    一、ssh服务和客户端安装yumlist|grepssh1.ssh服务安装yuminstall-yopenssh-server就是安装sshd服务2.ssh客户端工具安装yuminstall-yopenssh-clients就是安装ssh工具二、查看ssh服务systemctlstatussshd如果不是running,就启动一下systemctlstartsshd......
  • VS Code 通过SSH远程连接到 Ubuntu 服务器,Ubuntu的远程开发编译调试
    本章内容介绍如何使用Windows下安装的VSCode中远程连接到Ubuntu服务器,并进行远程开发编译调试的过程在Windows上安装VSCode在Windows上安装vscode相对比较简单:1.打开vscode下载页:vscode下载2.将下载好的VSCodeUserSetup-x64-1.96.0.exe双击安装Ubuntu安装ope......
  • 记录一次Centos镜像修改以及升级OpenSSL和OpenSSH
    事情是这样的:公司的阿里云服务器被说有漏洞需要修复--查看说漏洞大多都是OpenSSL和OpenSSH的,想到版本比较低就升级他两不就行了吗?结果更新升级发现app-stream均无法成功,原因centos已经停了维护,各种镜像均已不再维护了。第一步修改为阿里云镜像entOS8现已可使用国内的aliyun......
  • linux之ssh服务
    SSH服务ssh是什么ssh配置项配置免密登录优化sshssh是什么SSH为SecureShell的缩写,是建立在应用层基础上的安全协议。SSH是较为可靠的专为远程登录会话和其他网络服务提供安全性的协议。利用用SSH协议可以有效防止远程管理过程中的信息泄露问题。ssh安装yum-yinst......
  • win11 sshd无法启动报1067
    如题ssh安装相关参考https://zhuanlan.zhihu.com/p/576414452也可以在win设置中搜索可选功能安装我是之前装过能正常使用然后一段时间没用想用时怎么都无法启动上网搜的出来的我都基本试了一遍还是无法启动就在我截图记录我的尝试准备发帖问时准备代替方案时它能......
  • 数通初级#(1)TELNET、SSH、FTP实验
    一、实验拓扑下载拓扑地址:【免费】数通eNSP和VRP基础操作实验资源-CSDN文库二、telnet远程登录Telnet通常用在远程登录应用中,以便对本地或远端运行的网络设备进行配置。实验目标:使用PC1使用telnet远程登录SW12.1Telnet使用密码远程登录第一步:在SW1开启telnet远程登录......
  • BurpSuite工具-暴力破解模块与验证码识别
    一、暴力破解-Intruder1.1.攻击目标(Target)1.2.有效负载位置(Positions)1.2.1.狙击手(Sniper)1.2.2.破城槌(Batteringram)1.2.3.音叉(Pitchfork)1.2.4.集束炸弹(Clusterbomb)1.3.有效载荷(Payloads)1.4.资源池(ResourcePool)1.5.选项(Options)二、验证码识别2......
  • GIT_SSH_COMMAND 只对特定的 Git 仓库生效
    要使 GIT_SSH_COMMAND 只对特定的Git仓库生效,可以在仓库的配置文件中进行设置。具体步骤如下:方法:在特定Git仓库中设置进入特定的Git仓库目录:cd/path/to/your/repo设置SSH命令:gitconfigcore.sshCommand"ssh-p222"验证配置你可以通过以下命令确认设......