管理 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 連線即可。