歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux防止ssh遠程暴力破解的方法和fail2ban軟件的配置應用

linux防止ssh遠程暴力破解的方法和fail2ban軟件的配置應用

日期:2017/3/1 12:21:30   编辑:關於Linux
一、修改參數來使得暴力破解變得幾乎不可能 1.密碼設定要足夠復雜 密碼的設定,盡可能要有大寫字母、小寫字母、特殊符號和數字,長度至少要大於8,當然越長越好,只要能記住。 2.修改默認端口號 nmap工具可以探測服務器開放的遠程端口:# nmap 192.168.12.11 StartingNmap 5.51 ( http://nmap.org ) at 2015-10-27 21:32 CST Nmapscan report for 192.168.220.22 Hostis up (0.00017s latency). Notshown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcpopen rpcbind MACAddress: 00:0C:29:9C:14:74 (VMware) 探測到22端口是開啟的,這樣就能用ssh來暴力破解root密碼了。 如果我們將22改為23,這樣顯示的結果變成下面: 23/tcp open telnet 其實並不是telnet開啟,而是我們的sshd服務。這樣雖然給黑客設了一個類似陷阱的東西,但是因為能探測到,這樣也是不***全的。那麼我們就修改成一個非常不常用的端口號,如233,這樣nmap甚至是探測不到的,如此就起到了防護作用。 3.禁掉默認管理員 我們知道,默認的管理員是root,uid和gid都是0。我們的操作是將root用戶的uid和gid改成其他,shell改為/sbin/nologin或者/bin/false,將我們建立的一個用戶(如lius)的uid和gid改成0。操作方法是編輯/etc/passwd文件:#vim /etc/passwd root:x:22:22:root:/root:/sbin/nologin lius:x:0:0::/home/lius/:/bin/bash## 部分配置 我們知道lius的命名千奇百怪,我們可以隨意自定義,所以,這就使得暴力破解變得幾乎是不可能的事情了。 二、使用fail2ban實現破解次數限制 如果網站一直被別人暴力破解sshd服務密碼,即使不成功,也會導致系統負載很高;原因是在暴力破解的時候,系統會不斷地認證用戶,增加了系統資源開銷,導致訪問網站速度變慢。 fail2ban可以監視系統日志,然後匹配日志的錯誤信息(正則匹配),執行相應的屏蔽動作(一般情況下是防火牆),而且可以發送e-mail通知系統管理員,很實用、很強大!fail2ban的官網fail2ban.org,可獲取stable版本的下載鏈接,安裝fail2ban。 習慣的安裝目錄為/usr/local/src, cd到這個目錄,用wget獲得.gz格式文件。 #tar zxvf fail2ban-0.9.3.tar.gz #cd fail2ban-0.9.3 #python setup.py install # 源碼安裝的方法和以前不一樣,可以通過查看README.md來獲取安裝的步驟,python版本要在2.4以上,python-V可以查看版本。 #cd files #cp redhat-initd /etc/init.d/fail2ban # 復制和重命名 #chkconfig --add fail2ban # 開機啟動 #/etc/init.d/fail2ban start # 啟動服務 如此,fail2ban啟動成功,但是我們還沒配置fail2ban,下面是配置過程: fail2ban服務相關主要文件說明: /etc/fail2ban/action.d#動作文件夾,內含默認文件。iptables以及mail等動作配置 /etc/fail2ban/fail2ban.conf#定義了fai2ban日志級別、日志位置及sock文件位置 /etc/fail2ban/filter.d#條件文件夾,內含默認文件。過濾日志關鍵內容設置 /etc/fail2ban/jail.conf#主要配置文件,模塊化。主要設置啟用ban動作的服務及動作閥值 應用實例:設置ssh遠程登錄5分鐘內3次密碼驗證失敗,禁止用戶IP訪問主機1小時,1小時該限制自動解除,此IP可以重新登錄。 #vim /etc/fail2ban/jail.conf enabled= true filter= sshd action= iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH,[email protected], [email protected],sendername="Fail2Ban"] logpath= /var/log/secure findtime= 300 maxretry= 3 bantime= 3600 注釋: enabled= true # 是否激活此項(true/false)修改成true logpath= /var/log/secure # 檢測的系統的登陸日志文件,這裡要寫sshd服務日志文件的路徑 findtime= 300 # 在5分鐘內內出現規定次數就實施動作,默認時間單位:秒 maxretry= 3 # 密碼驗證失敗次數最大值為3,超過實施操作 bantime= 3600 # 超過3次後,禁止此用戶IP訪問主機1小時 發郵件的配置可以設定管理員的郵箱。如此配置結束,打開新終端,故意輸錯3次,再登錄時可以看到禁止訪問的提示:ssh: connect to host192.168.1.63 port 22: Connection refused
Copyright © Linux教程網 All Rights Reserved