史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 資訊系統安全備援防護技術文件
忘記密碼?
註冊帳號 論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2007-07-06, 03:19 PM   #1
Admin1
管理員
 
Admin1 的頭像
榮譽勳章
UID - 112827
在線等級: 級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時
註冊日期: 2007-02-18
VIP期限: 0000-00
文章: 3507
精華: 0
現金: 1702 金幣
資產: 10196 金幣
預設 使用 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,但是要以空白分隔而不是使用逗號。
Admin1 目前離線  
送花文章: 8870, 收花文章: 2195 篇, 收花: 5818 次
有 3 位會員向 Admin1 送花:
amos50 (2009-06-02),Tamadbee (2007-07-19),zazoo (2007-07-10)
感謝您發表一篇好文章
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 06:03 AM


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


SEO by vBSEO 3.6.1