環境:ubuntu 12.04
 

一、簡單安裝設定

1. 安裝ssh 伺服器

$ sudo apt-get install openssh

2. 檢視執行狀態

$ service ssh status

3. 設定(/etc/ssh/sshd_config)

* 禁用root使用者登入  
PermitRootLogin yes #yes改為no

* 埠掃描軟體預設掃描22埠,修改為其它埠。

port 

* 設定最大密碼錯誤次數

MaxAuthTries 

4. 重啟

$ sudo service ssh restart

5. 檢視ssh登入日誌檔案

$ sudo vim /var/log/auth.log

a. 檢視登入失敗的IP

sudo grep "Failed password for root" /var/log/auth.log | awk {'print $11'} | uniq -c | sort -rn

b. 檢視登入成功的IP

grep "Accepted password for " /var/log/auth.log

二、限制IP登入

 
1.  編輯/etc/hosts.allow (手動)   
 
2. 安裝denyhosts,自動加登入失敗的到黑名單  
$ sudo apt-get install denyhosts

預設配置就可以了。

檢視配置資訊:

 $ sudo vim /etc/denyhosts.conf 

下面是一些設定的介紹,配置檔案中有詳細說明。

 1 SECURE_LOG = /var/log/auth.log #ssh 日誌檔案,它是根據這個檔案來判斷的。
HOSTS_DENY = /etc/hosts.deny #控制使用者登陸的檔案
PURGE_DENY = #過多久後清除已經禁止的,空表示永遠不解禁
BLOCK_SERVICE = sshd #禁止的服務名,如還要新增其他服務,只需新增逗號跟上相應的服務即可
DENY_THRESHOLD_INVALID = #允許無效使用者失敗的次數
DENY_THRESHOLD_VALID = #允許普通使用者登陸失敗的次數
DENY_THRESHOLD_ROOT = #允許root登陸失敗的次數
DENY_THRESHOLD_RESTRICTED =
WORK_DIR = /var/lib/denyhosts #執行目錄
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES #是否進行域名反解析
LOCK_FILE = /var/run/denyhosts.pid #程式的程序ID
ADMIN_EMAIL = root@localhost #管理員郵件地址,它會給管理員發郵件
SMTP_HOST = localhost
SMTP_PORT =
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=5d #使用者的登入失敗計數會在多久以後重置為0,(h表示小時,d表示天,m表示月,w表示周,y表示年)
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
RESET_ON_SUCCESS = yes #如果一個ip登陸成功後,失敗的登陸計數是否重置為0
DAEMON_LOG = /var/log/denyhosts #自己的日誌檔案
DAEMON_SLEEP = 30s #當以後臺方式執行時,每讀一次日誌檔案的時間間隔。
DAEMON_PURGE = 1h #當以後臺方式執行時,清除機制在 HOSTS_DENY 中終止舊條目的時間間隔,