Centos下防止ssh暴力破解密碼2種方法

ssh暴力破解密碼在網上一搜索有很多很多種了,在這裏今天小編爲各位整理2種Centos下防止ssh暴力破解密碼方法。

方法一,

收集 /var/log/secure 裏面的信息,若是某個IP 鏈接次數超過一定次數 ,則把此ip記錄到/etc/hosts.deny裏面。

通過crontab來執行,每天的1點1分執行一次。

1 * * * sh /root/bin/Denyhosts.sh



#!/bin/bash

#Denyhosts SHELL SCRIPT


cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"=" $1;}' >/root/bin/Denyhosts.txt

DEFINE="10"

for i in `cat /root/bin/Denyhosts.txt`

do

IP=`echo $i|awk -F= '{print $1}'`

NUM=`echo $i|awk -F= '{print $2}'`

if [ $NUM -gt $DEFINE ]

then

grep $IP /etc/hosts.deny >/dev/null

if [ $? -gt 0 ];

then

echo "sshd:$IP" >> /etc/hosts.deny

fi

fi

done

方法二,

DenyHosts官方網站爲:http://denyhosts.sourceforge.net

1. 安裝

# tar -zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
# python setup.py install
默認是安裝到/usr/share/denyhosts目錄的。

2. 配置

# cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg
# vi denyhosts.cfg
PURGE_DENY = 50m #過多久後清除已阻止IP
HOSTS_DENY = /etc/hosts.deny #將阻止IP寫入到hosts.deny
BLOCK_SERVICE = sshd #阻止服務名
DENY_THRESHOLD_INVALID = 1 #允許無效用戶登錄失敗的次數
DENY_THRESHOLD_VALID = 10 #允許普通用戶登錄失敗的次數
DENY_THRESHOLD_ROOT = 5 #允許root登錄失敗的次數
WORK_DIR = /usr/local/share/denyhosts/data #將deny的host或ip紀錄到Work_dir中
DENY_THRESHOLD_RESTRICTED = 1 #設定 deny host 寫入到該資料夾
LOCK_FILE = /var/lock/subsys/denyhosts #將DenyHOts啓動的pid紀錄到LOCK_FILE中,已確保服務正確啓動,防止同時啓動多個服務。
HOSTNAME_LOOKUP=NO #是否做域名反解
ADMIN_EMAIL = #設置管理員郵件地址
DAEMON_LOG = /var/log/denyhosts #自己的日志文件
DAEMON_PURGE = 10m #該項與PURGE_DENY 設置成一樣,也是清除hosts.deniedssh 用戶的時間。

3. 設置啓動腳本

# cp daemon-control-dist daemon-control
# chown root daemon-control
# chmod 700 daemon-control

完了之後執行daemon-contron start就可以了。

# ./daemon-control start

如果要使DenyHosts每次重起後自動啓動還需做如下設置:

# ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
# chkconfig --add denyhosts
# chkconfig denyhosts on

然後就可以啓動了:

# service denyhosts start
可以看看/etc/hosts.deny內是否有禁止的IP,有的話說明已經成功了。

提高ssh安全性的方法


1. 修改sshd伺服器的配置文件/etc/ssh/sshd_config,將部分參數參照如下修改,增強安全性。

系統缺省使用22號端口,將監聽端口更改爲其他數值(最好是1024以上的高端口,以免和其他常規服務端口沖突),這樣可以增加入侵者探測系統是否運行了 sshd守護進程的難度。
Port 5555
對于在伺服器上安裝了多個網卡或配置多個IP地址的情況,設定sshd只在其中一個指定的接口地址監聽,這樣可以減少sshd的入口,降低入侵的可能性。
ListenAddress 192.168.0.1
如果允許用戶使用root用戶登錄,那麽黑客們可以針對root用戶嘗試暴力破解密碼,給系統安全帶來風險。
PermitRootLogin no
允許使用空密碼系統就像不設防的堡壘,任何安全措施都是一句空話。
PermitEmptyPasswords no
只允許指定的某些用戶通過ssh訪問伺服器,將ssh使用權限限定在最小的範圍內。
AllowUsers sshuser1 sshuser2
同上面的AllowUsers類似,限定指定的用戶組通過ssh訪問伺服器,二者對于限定訪問伺服器有相同的效果。
AllowGroups sshgroup
禁止使用版本1協定,因爲其存在設計缺陷,很容易使密碼被黑掉。
Protocol 2
關閉X11Forwarding,防止會話被劫持。
X11Forwarding no
sshd服務運行時每一個連接都要使用一大塊可觀的記憶體,這也是ssh存在拒絕服務攻擊的原因。一台伺服器除非存在許多管理員同時管理伺服器,否則上面這 個連接數設置是夠用了。
MaxStartups 5
注意:以上參數設置僅僅是一個示例,用戶具體使用時應根據各自的環境做相應的更改。

2. 修改sshd伺服器的配置文件/etc/ssh/sshd_config的讀寫權限,對所有非root用戶設置唯讀權限,防止非授權用戶修改sshd 服務的安全設置。


chmod 644 /etc/ssh/sshd_config

3. 設置TCP Wrappers。伺服器默認接受所有的請求連接,這是非常危險的。使用TCP Wrappers可以阻止或允許應用服務僅對某些主機開放,給系統在增加一道安全屏障。這部分設置共涉計到兩個文件:hosts.allow和 hosts.deny。
將那些明確允許的請求添加到/etc/hosts.allow中。如系統僅允許IP地址爲192.168.0.15和10.0.0.11的主機使用 sshd服務,則添加如下內容:


sshd:192.168.0.15 10.0.0.11


將需要禁止使用的信息添加到/etc/hosts.deny中。如對除了在hosts.allow列表中明確允許使用sshd的用戶外,所有其他用戶都禁止使用sshd服務,則添加如下內容到hosts.deny文件中:
sshd:All
注意:系統對上述兩個文件的判斷順序是先檢查hosts.allow文件再查看hosts.deny文件,因此一個用戶在hosts.allow允許使用網路資源,而同時在hosts.deny中禁止使用該網路資源,在這種情況下系統優先選擇使用hosts.allow配置,允許用戶使用該網路資源。

4. 盡量關閉一些系統不需要的啓動服務。系統默認情況下啓動了許多與網路相關的服務,因此相對應的開放了許多端口進行LISTENING(監聽)。我們知道,開放的端口越多,系統從外部被入侵的可能也就越大,所以我們要盡量關閉一些不需要的啓動服務,從而盡可能的關閉端口,提供系統的安全性。

更多相關文章
  • 本教程我們來教大家如何開機獲取ubuntu的密碼步驟,由于linux獲取密碼的方式大同小異,後面我們講常見的幾個linux版本破解密碼的方法順便總結一下.ubuntu破解密碼方法開機按住任何鍵(shift)停住gru
  • 默認的ssh端口是所有人都知道了它非常的危險了,如果各位安全沒做好很容易給暴力破解了,下面我們來給各位介紹centos下修改ssh默認端口的步驟第一.修改S S H端口VPS默認的S S H端口是22,爲防止MJJ們掃描端口破解密碼,修改ssh端口爲其他的數字,是非常有必要的.好了,SSH登陸VPS
  • ios獲得IP地址的方法有很多常但是大體歸類爲系統自帶功能獲取客戶IP地址,另一種是獲得外網接口IP地址,具體一起來看看.要獲取設備的IP地址,網上隨便一搜就能找到一大堆結果,但是這些能找到的代碼基本上都是用C寫的,並沒有針對iOS做過優化調整,使用起來也不方便.就只是要獲取IP地址而已,封裝成一個
  • 检测字符串编码可以有很多种方法,如利用ord获得字符的进制然后进入判断,或利用mb_detect_encoding函数来处理,下面整理了几种方法.例子1 代码如下 /*** 检测字符串是否为UTF8编码* @para
  • 現現1045是用戶名與密碼對不上號,也就是忘了密碼,下面我們提供二種關于修改密碼的解決辦法,有需要的朋友可以參考一下.直接使用/etc/mysql/debian.cnf文件中[client]節提供的用戶名和密碼: 代碼如下 # mysql -udebian-sys-maint -p Enter pa
  • 自己學習centos不久對于環境與各種web環境都不了解了,今天在使用curl 時不好使,後來上網發現是說linux系統必須安裝curl擴展才可以使用,後來找到一下發現兩處安裝方法,下面我都給大家整理一下.php5.3 安裝curl擴展 代碼如下 tar zxf 解壓./configure --pr ...
  • 本文我們來學習一下centos的linux系統下如何對Shell/.sh腳本進行加密的兩個方法,一個方法是shc,相對複雜一點,不過比較保險,另外一個方法是gzexe,比較簡單,不過只能滿足一般的用途.shc方法sh
  • 本文章來給各位同學詳細介紹關于CentOS下單網卡安裝配置PPTP VPN方法,各位同學可進入參考.VPN(Virtual Private Network,虛擬專用網路)是專用網路的延伸,它可以通過共享Internet或公共網路連接模擬點對點專用連接的方式,在本地計算機和遠程計算機之間發送數據.它具
一周排行