史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   資訊系統安全備援防護技術文件 (http://forum.slime.com.tw/f139.html)
-   -   使用 knockd 防範 SSH 暴力攻擊 (http://forum.slime.com.tw/thread210121.html)

Admin1 2007-07-06 03:19 PM

使用 knockd 防範 SSH 暴力攻擊
 
管理 Linux 伺服器的時候我們通常使用 SSH 來進行遠端登入管理主機,在預設的情況下 SSH 會要求您輸入登入主機的帳號與密碼來進行使用者驗證,但這樣的防護不夠的。網路上有非常多的怪客(cracker)會使用特殊的軟體程式來猜你的帳號與密碼,也就是俗稱的爆力攻擊法(Brute Force Attack),若是你的帳號與密碼設定的不夠複雜很容易就會破解。常見的反制方式是改用 public/private key 這種加密金鑰機制取代密碼驗證,或是使用防火牆阻絕所有的外來連線只開放特定 IP 連線,當然若結合此兩種方式則效果會更好。

使用防火牆阻絕連線有一個問題必須要克服,就是你必須要有一個固定 IP 才行;但若你是使用非固定 IP 的 ADSL 來進行連線,卻又想利用功能強大的防火牆來徹底阻擋所有惡意的 SSH 連線,這時你就會需要使用 knockd。knockd 的功能簡單的說就是你可以藉由 knock(敲) 伺服器特定的 PORT,來使伺服器執行特定的指令,例如開放你目前的 IP 使用 SSH 的權限。有了 knockd,你大可以在防火牆阻擋所有外來的 SSH 連線,然後在你需要連進主機進行維護時再透過 knockd 來開啟 SSH 連線即可。


官方網站: http://www.zeroflux.org/cgi-bin/cvstrac.cgi/knock/wiki
knockd server 下載: http://www.invoca.ch/pub/packages/knock/
knockd client 下載: http://www.zeroflux.org/proj/knock/f...nock-win32.zip


實際安裝步驟:

一、建立 RPM
由於下載回來的 knock 是 Source RPM,因此要先建立可安裝的 RPM 檔案
引用:

rpmbuild --rebuild knock-0.5-4.src.rpm



二、安裝 RPM
引用:

cd /usr/src/redhat/RPMS/i386
rpm -ivh knock-0.5-4.i386.rpm
rpm -ivh knock-server-0.5-4.i386.rpm



三、設定 /etc/sysconfig/knockd:
引用:

OPTIONS="-i eth0"

註:
只監聽 eth0,knock 一次只可以監聽一個界面。


四、設定 /etc/knockd.conf:

PHP 語法:

[options]
    
UseSyslog
[opencloseSSH]
    
sequence      116:tcp,968:tcp,180:udp
    seq_timeout   
15
    tcpflags      
syn
    start_command 
= /sbin/iptables -I INPUT -%IP% -p tcp --dport ssh -j ACCEPT
    cmd_timeout   
30
    stop_command  
= /sbin/iptables -D INPUT -%IP% -p tcp --dport ssh -j ACCEPT 

註:
  1. UseSyslog:使用 syslog 來記錄 log 檔案,相關的訊息會存在 /var/log/secure 中。
  2. sequence:所要使用的 knock 順序,注意,這裡必須要填入 Firewall 有開啟的 Port,不然 knockd 會看不到你所發出的 knock 訊息。
  3. tcpflags:要設定為 syn,不然使用 knock client program 進行 knock 的時候會出錯
  4. start_command:knock 成功時要執行的指令
  5. stop_command:cmd_timeout 時間到後,要執行的指令


五、啟動 knockd
引用:

service knockd start
chkconfig knockd on



六、使用 knockd client 程式
例如在 Windows 上,使用官方網站所提供的 knock 客戶端程式(Native Win32 Client),在終端機視窗輸入:

引用:

knock.exe 192.168.X.X 116:tcp 968:tcp 180:udp

注意,紅色部份要輸入你之前設定好的 sequence,但是要以空白分隔而不是使用逗號。


所有時間均為台北時間。現在的時間是 05:15 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2021, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1