防止暴力破解ssh的四種方法
一. 方法介紹
防止暴力破解的四種方法:
? 1 密碼要寫(xiě)的足夠的復(fù)雜,通常建議將密碼寫(xiě)16位,并且無(wú)連貫的數(shù)字或者字母;當(dāng)然也可以固定一個(gè)時(shí)間修改一次密碼,推薦是一個(gè)月修改一次會(huì)穩(wěn)妥一些
? 2 修改ssh的端口號(hào),給對(duì)方一些迷惑性,因?yàn)檫h(yuǎn)程linux服務(wù)器默認(rèn)端口是22,修改成其他的端口,三位數(shù),四位數(shù)的都行,這樣能避免大部分的暴力破解的可能性
? 3 通常我們遠(yuǎn)程登錄都是使用root用戶進(jìn)行登錄的,我們將root用戶設(shè)置成系統(tǒng)用戶,并且不允許root賬號(hào)直接登錄,添加一個(gè)普通用戶,給它賦予root用戶的權(quán)限,這樣也能極大的避免對(duì)方破解成功的可能性。
? 4 使用秘鑰認(rèn)證的方式登錄,在客戶端上生成公鑰和私鑰,將公鑰發(fā)送給需要遠(yuǎn)程的服務(wù)端,在輸入一次正確的密碼之后,后續(xù)再次遠(yuǎn)程,則不需要用到密碼登錄。
由于第一個(gè)密碼自主性比較強(qiáng),這里就不做第一個(gè)方法的演示,下面的幾個(gè)方法一起來(lái)看看怎么設(shè)置吧。
二. 參考實(shí)例
2.1 修改端口號(hào)
#ssh配置文件 vim /etc/ssh/sshd_config修改的是第17行的端口信息,這里有個(gè)方法,ssh默認(rèn)端口是22,可以將17行的信息復(fù)制一行,在18行進(jìn)行修改,這里把端口修改成2222。
在這里插入圖片描述修改完之后一定要記得重啟服務(wù)
systemctl restart sshd
可以使用掃描端口的工具看下
[root@localhost ~]# nmap 127.0.0.1 Starting Nmap 6.40 ( http://nmap.org ) at 2023-03-05 11:44 CST Nmap scan reportforVM-12-17-centos (127.0.0.1) Host is up (0.0000050s latency). Not shown: 996 closed ports PORT STATE SERVICE 21/tcp open ftp 2222/tcp open EtherNet/IP-1 3306/tcp open mysql 9050/tcp open tor-socks
端口掃描并沒(méi)有顯示到ssh的服務(wù)信息,若多開(kāi)放幾個(gè)端口,就能起到迷惑性,讓對(duì)方不知道是使用什么端口遠(yuǎn)程的。
2.2 賦予其他用戶超級(jí)權(quán)限
vim /etc/passwd先將root用戶設(shè)置成系統(tǒng)用戶,并且不能進(jìn)行遠(yuǎn)程登錄
在這里插入圖片描述這里直接新增一個(gè)用戶,再給一個(gè)普通用戶超級(jí)權(quán)限(修改UID和GID)
[root@localhost ~]# useradd -s /bin/bashtest [root@localhost ~]# vim /etc/passwd [root@localhost ~]#echo"GUANzhu123//"| passwd --stdintest
在這里插入圖片描述這里可以測(cè)試下修改完后是否具有root用戶的權(quán)限,可以嘗試去打開(kāi)shadow文件。
[root@localhost ~]# su -test 上一次登錄:日 3月 5 1113 CST 2023:0 上 ABRT has detected 1 problem(s). For more info run: abrt-cli list [root@localhost ~]#pwd /home/test [root@localhost ~]#tail-2 /etc/shadow mysql19420:::::: test1942199999::
小提示:千萬(wàn)千萬(wàn)要記得給要賦予超級(jí)權(quán)限的普通用戶設(shè)置一個(gè)登錄密碼,讓它可以遠(yuǎn)程登錄,否則會(huì)出現(xiàn)上不去服務(wù)器的情況。
2.3 使用秘鑰認(rèn)證
先在本地使用ssh-keygen命令生成公鑰和私鑰文件,-t表示選擇秘鑰的類(lèi)型,-b表示指定長(zhǎng)度,這里選擇長(zhǎng)度是4096。
[root@localhost ~]# ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter fileinwhichto save the key (/root/.ssh/id_rsa): Created directory'/root/.ssh'. Enter passphrase (emptyforno passphrase): Enter same passphrase again: Your identification has been savedin/root/.ssh/id_rsa. Your public key has been savedin/root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:Mq/1yY0jDdMsw9DNQIUgS0mDKXxkPpxSXXg24inkl44 root@localhost.localdomain The key's randomart image is: +---[RSA 4096]----+ |. .B*.++.o. | |..B+oB +o | | o+=o *..+ | | .o.=. . o | | = ooSo | | E . +* o | | o* | | o.oo+ | | . .=.. | +----[SHA256]-----+ [root@localhost ~]# ll /root/.ssh/ 總用量 12 -rw-------. 1 root root 3243 3月 5 12:17 id_rsa -rw-r--r--. 1 root root 752 3月 5 12:17 id_rsa.pub
在這里插入圖片描述
這里有幾個(gè)信息分別是:
輸入保存秘鑰的文件,默認(rèn)是放在/root/.ssh_rsa,如果不指定其他位置,直接按回車(chē)即可。
創(chuàng)建目錄,默認(rèn)是/root/.ssh這個(gè)目錄,不指定的話也是直接按enter。
輸入秘鑰的密碼,這里默認(rèn)也不設(shè)置,按回車(chē),畢竟都使用秘鑰了,就不想每次遠(yuǎn)程服務(wù)器又要輸入一次密碼了。 再次輸入相同的密碼,這里也直接按回車(chē)吧
您的身份信息保證在/root/.ssh/id_rsa中 公鑰已保存在/root/.ssh/id_rsa.pub中 秘鑰的指紋為: RSA
4096那張圖就是這個(gè)秘鑰的指紋了,可以看出來(lái)是很復(fù)雜的。
以上都是在客戶端上設(shè)置的,下一步是將公鑰發(fā)送到服務(wù)器上面
這里又要使用一個(gè)命令ssh-copy-id.
#ip填寫(xiě)要遠(yuǎn)程服務(wù)器的IP [root@localhost ~]# ssh-copy-id root@192.168.196.23 AI寫(xiě)代碼
在這里插入圖片描述公鑰發(fā)送過(guò)去后,就可以直接使用ssh遠(yuǎn)程登錄;
[root@localhost ~]# ssh 192.168.196.23 Last login: Sun Mar 5 1228 2023 from 192.168.196.166 [root@node1 ~]# AI寫(xiě)代碼
無(wú)須輸入密碼即可遠(yuǎn)程登錄,這個(gè)就是秘鑰登錄的優(yōu)勢(shì)了。
三. 使用Fail2ban軟件
fail2ban是一款安全保護(hù)工具,觸發(fā)限制后會(huì)創(chuàng)建防火墻規(guī)則封鎖IP,諸如對(duì)ssh暴力破解、ftp/http密碼窮舉等場(chǎng)景提供強(qiáng)有力的保護(hù)。
1.這里會(huì)使用到兩臺(tái)虛擬機(jī)做測(cè)試分別是192.168.196.166、192.168.196.23
2.需要用到iptables和ssh服務(wù)
3.2 安裝Fail2ban
這個(gè)程序默認(rèn)是未安裝的,需要先安裝好epel源,再安裝這個(gè)程序
yum install epel-release -y yum install fail2ban -y
3.2 修改配置文件(服務(wù)端進(jìn)行)
配置文件的位置在:
/etc/fail2ban/jail.conf
這里填寫(xiě)如下信息
[root@localhost fail2ban]# vim jail.conf [root@localhost fail2ban]#tail-10 jail.conf [ssh-iptables] #用到的服務(wù) enabled =true #開(kāi)機(jī)自動(dòng)啟用服務(wù) filter = sshd #添加動(dòng)作是sshd action = iptables[name=SSH,port=ssh,protocol=tcp] logpath = /var/log/secure #要監(jiān)控的站點(diǎn)日志文件 #這三個(gè)代表的是 將5分鐘內(nèi)頻繁訪問(wèn)失敗3次的IP屏蔽3600秒 maxretry = 3 #設(shè)定失敗次數(shù) findtime = 300 #一定時(shí)間內(nèi) bantime = 3600 #屏蔽多長(zhǎng)時(shí)間
重啟服務(wù)
systemctl restart fail2ban.service systemctlenablefail2ban.service
以上的都是在服務(wù)端進(jìn)行的
3.3測(cè)試遠(yuǎn)程登錄(客戶端)
這里測(cè)試登錄失敗次數(shù)超過(guò)三次后會(huì)提示什么
[root@node1 ~]# ssh 192.168.196.166 root@192.168.196.166's password: Permission denied, please try again. root@192.168.196.166's password: Permission denied, please try again. root@192.168.196.166's password: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). [root@node1 ~]# ssh 192.168.196.166 ssh: connect to host 192.168.196.166 port 22: Connection refused [root@node1 ~]# [root@node1 ~]# ssh 192.168.196.166 ssh: connect to host 192.168.196.166 port 22: Connection refused [root@node1 ~]# ssh 192.168.196.166 ssh: connect to host 192.168.196.166 port 22: Connection refused AI寫(xiě)代碼
測(cè)試過(guò)后顯示連接失敗,以上配置是已經(jīng)成功了
3.4 查看有哪些IP被拉入黑名單(服務(wù)端)
1 [root@localhost fail2ban]# iptables -L -n |tail 2 Chain IN_public_log (1 references) 3 target prot optsourcedestination 4 5 Chain OUTPUT_direct (1 references) 6 target prot optsourcedestination 7 8 Chain f2b-SSH (1 references) 9 target prot optsourcedestination REJECT all -- 192.168.196.23 0.0.0.0/0 reject-with icmp-portunreachable 10 11 RETURN all -- 0.0.0.0/0 0.0.0.0/0 12 13 [root@localhost fail2ban]# fail2ban-client status 14 Status |- Number of jail: 1 15 `- Jail list: ssh-iptables 16 17 [root@localhost fail2ban]# fail2ban-client status ssh-iptables 18 Statusforthe jail: ssh-iptables 19 |- Filter 20 | |- Currently failed: 0 | |- Total failed: 6 21 | `- File list: /var/log/secure 22 23 `- Actions 24 |- Currently banned: 1 |- Total banned: 2 25 `- Banned IP list: 192.168.196.23
如果不慎是其他認(rèn)識(shí)的人登錄失敗了,可以使用以下方式將他移除黑名單
[root@localhost fail2ban]# fail2ban-clientsetssh-iptables unbanip 192.168.196.23
總結(jié)
防止暴力破解的內(nèi)容就是這么多了,當(dāng)然也可以通過(guò)腳本的方式來(lái)屏蔽一段時(shí)間頻繁訪問(wèn)的IP,若覺(jué)得以上內(nèi)容還行的,可以點(diǎn)贊支持一下!
鏈接:https://blog.csdn.net/rhn_111/article/details/129343874
-
Linux
+關(guān)注
關(guān)注
88文章
11593瀏覽量
217404 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
10043瀏覽量
90567 -
端口
+關(guān)注
關(guān)注
4文章
1093瀏覽量
33719
原文標(biāo)題:防止暴力破解ssh的四種方法
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
labview密碼破解
labview如何寫(xiě)暴力破解密碼 密碼4位數(shù) 由1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ 如何每次讀取一個(gè)數(shù)進(jìn)行測(cè)試完成后進(jìn)行下一個(gè)測(cè)試
何為暴力破解呢
labview的VI加密暴力破解工具
對(duì)目前流行的ssh密碼暴力破解工具進(jìn)行實(shí)戰(zhàn)研究、分析和總結(jié)
為什么不能隨便暴力破解比特幣私鑰
暴力破解比特幣私鑰可能會(huì)實(shí)現(xiàn)嗎
字符串硬核暴力破解法講解
IP知識(shí)百科之暴力破解
如何通過(guò)Python腳本實(shí)現(xiàn)WIFI密碼的暴力破解

如何防止SSH暴力破解
評(píng)論