如何使用knockd讓黑客看不見你的服務(wù)器?
譯文【51CTO.com快譯】如果你有一臺公眾可訪問的服務(wù)器,黑客可以輕松掃描其IP地址,查找服務(wù)器上的開放端口(尤其是用于SSH的端口22)。將服務(wù)器隱藏起來、不讓黑客看見的一種方法是使用knockd。knockd是一種端口試探服務(wù)器工具。它偵聽以太網(wǎng)或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客戶軟件通過向服務(wù)器上的端口發(fā)送TCP或數(shù)據(jù)包來啟動端口命中。
我們在本文中將介紹如何使用knockd來隱藏在Linux服務(wù)器上運行的服務(wù)。
1.在Linux服務(wù)器上安裝knockd
knockd在大多數(shù)發(fā)行版的代碼倉庫中都有。在基于Debian/Ubuntu/Ubuntu的服務(wù)器上,可以使用apt-get命令來安裝knockd。
- sudo apt-get install knockd
如果是Fedora、CentOS或REHL用戶,可以使用yum命令:
- yum install knockd
2. 安裝和配置Iptables
如果你的服務(wù)器上還沒有安裝Iptables,請立即安裝。
- sudo apt-get install iptables iptables-persistent
程序包iptables-persistent接手自動加載已保存的iptables的任務(wù)。
接下來,你需要通過iptables允許已建立的連接以及當前會話。使用下列命令來完成這項任務(wù):
- iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
接下來,需要阻止通向端口22 SSH的所有入站連接。
- iptables -A INPUT -p tcp --dport 22 -j REJECT
不妨通過下列命令來保存防火墻規(guī)則:
- netfilter-persistent save
- netfilter-persistent reload
可以通過由你的計算機連接到服務(wù)器,進一步檢查是否確實阻止了端口22。
- ssh my-server-ip
3. 配置knockd
現(xiàn)在是時候配置knockd默認設(shè)置了。它位于“/etc/knockd.conf”。為此,請使用下列命令,切換到knockd配置文件:
- cd /etc
- sudo leafpad knockd.conf
為了便于說明,我使用leafpad編輯器。在你的服務(wù)器上,你可以使用nano或Vi。
屏幕截圖顯示了knockd配置文件。
- Options:你可以在此字段中找到knockd的配置選項。正如你在上面屏幕截圖中所看到,它使用syslog進行日志記錄。
- OpenSSH:該字段包括序列、序列超時、命令和tcp標志。
- Sequence:它顯示可由客戶軟件用作啟動操作的模式的端口序列。
- Sequence timeout:它顯示分配給客戶端以完成所需的端口試探序列的總時間。
- command:這是一旦客戶軟件的試探序列與序列字段中的模式,執(zhí)行的命令。
- TCP_FLAGS:這是必須針對客戶軟件發(fā)出的試探設(shè)置的標志。如果標志不正確,但試探模式正確,不會觸發(fā)動作。
4. 啟用并啟動knockd服務(wù)
使用下列程序啟用“/etc/default/knock”中的knockd服務(wù)。
將值從0改為1,如屏幕截圖所示:
- START_KNOCKD = 1
之后,保存并關(guān)閉文件“/etc/default/knockd”。
接下來,可以使用下列命令之一來啟動knockd服務(wù):
- sudo service knockd start
或者:
- sudo systemctl start knockd
5. 是時候試探測試你的Linux服務(wù)器了
現(xiàn)在是時候測試你的Linux SSH服務(wù)器了。要想在指定的IP地址處打開端口22,請在計算機上使用下列命令。(你還需要在計算機上安裝knockd)
- knock -v my-server-ip 7000 8000 9000
需要將“my-server-ip”換成服務(wù)器的IP地址。
現(xiàn)在可以使用下列命令連接到端口22 SSH:
- ssh my-server-ip
完成你通過端口22想要完成的任何操作后,可以使用下列命令關(guān)閉該端口:
- knock -v my-server-ip 9000 8000 7000
結(jié)束語
使用knockd,你盡可放心:你的SSH服務(wù)器是安全的,并且遠離使用復(fù)雜掃描工具的攻擊者。此外,你還完全掌控自己的SSH服務(wù)器。
原文標題:How to Make Your Server Invisible with Knockd,作者:Michael Aboagye
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】