端口敲門:您可以在計算機或服務器上擁有的最佳安全性(部署+配置)

打擊口 (用英語 港口敲門)毫無疑問,這是所有管理服務器的人都應該了解的一種做法,在這裡我將詳細解釋這是什麼以及如何實現和配置此方法。

現在,我們管理服務器的人可以通過SSH訪問該服務器,其中一些 我們更改SSH的默認端口 並且它不再使用端口22,而其他端口僅保留該端口(不建議這樣做),但是服務器通過某個端口啟用了SSH訪問,這已經是一個“漏洞”。

港口敲門 我們可以實現以下目標:

1. 沒有任何端口啟用SSH訪問。 例如,如果我們為端口9191配置了SSH,則該端口(9191)將對所有人關閉。
2. 如果有人想要通過SSH訪問服務器,顯然,由於端口9191已關閉,他們將無法訪問...但是,如果我們使用“魔術”或秘密組合,則該端口將被打開,例如:

1. 我遠程登錄到服務器的端口7000
2. 我在服務器的端口8000上做了另一個telnet
3. 我對服務器的端口9000進行了另一個telnet
4. 服務器檢測到有人進行了秘密組合(按此順序觸摸端口7000、8000和9000),並將打開端口9191,以便SSH請求登錄(它僅對進行組合的IP打開它)滿意的)。
5. 現在關閉SSH,我只需要遠程登錄到端口3500
6. 我將另一個telnet連接到端口4500
7. 最後是另一個telnet到端口5500
8. 執行服務器檢測到的此其他秘密組合將再次關閉端口9191。

換句話說,更簡單地解釋這一點...

港口敲門 我們的服務器可能關閉了某些端口,但是當服務器從 X IP做出正確的端口組合(先前在配置文件中定義的配置)會明顯地對自己執行某些命令(命令 也定義在配置文件中).

不明白嗎? 🙂

如何為端口敲門安裝守護進程?

我用包裝做 科克,這將使我們能夠以非常非常簡單,快速的方式來實現和配置 港口敲門。

安裝軟件包: knockd

如何配置敲敲端口?

安裝完成後,我們繼續對其進行配置,為此,我們(以超級用戶身份)編輯文件 /etc/knockd.conf:

nano /etc/knockd.conf

正如您在該文件中看到的那樣,已經有一個默認配置:

 解釋默認設置非常簡單。

-首先 UseSyslog 表示要記錄活動(日誌),我們將使用 在/ var / log / syslog的.
-第二部分 [採用openSSH] 這顯然是打開SSH的說明,首先,我們具有默認配置的端口順序(秘密組合)(端口7000,端口8000,最後是端口9000)。 顯然,端口可以更改(實際上我建議這樣做),而不必更改為3,端口可以更改或多或少,這取決於您。
-第三, seq_timeout = 5 表示等待秘密端口組合發生的時間。 默認情況下,它設置為5秒,這意味著一旦我們開始執行端口終止操作(即,當telnet到端口7000時),如果經過5秒而我們還沒有完成那麼端口爆震就好像該序列無效一樣。
-第四, 命令 它不需要太多解釋。 這只是服務器檢測到上面定義的組合時將執行的命令。 默認情況下設置的命令的作用是僅將端口22(將此端口更改為SSH端口)打開為正確組合端口的IP。
- 第五, tcpflags = syn 在此行中,我們指定服務器將識別為對於爆震端口有效的數據包類型。

然後是關閉SSH的部分,默認配置僅是上面相同的端口順序,但是順序相反。

這是經過一些修改的配置:

 如何啟動基因敲除的守護進程?

要啟動它,我們必須首先修改(以root用戶身份)文件 / etc /默認/敲:

nano /etc/default/knockd

在那裡,我們更改第12行,內容為:«START_KNOCKD = 0»並將0更改為1,我們將得到:«START_KNOCKD = 1«

一旦完成,現在我們就可以開始:

service knockd start

瞧,它已經配置好並且可以正常工作了。

撞倒港口並奔跑!

如您在先前的配置中看到的,如果對端口1000進行了端口敲擊,則對2000進行了端口敲擊,最後對3000進行了端口敲擊,那麼將打開端口2222(我的SSH),下面是另一台執行端口敲除的計算機:

一旦我在1號敲門,2號敲門和最後在3號敲擊[Enter],端口將打開,這是日誌:

如您所見,當敲端口1000時,階段1已註冊,然後2000將成為階段2,最後是3和3000,執行此操作時將執行我在.conf中聲明的命令,僅此而已。

然後關閉端口,只會敲9000、8000,最後是7000,這是日誌:

而且這裡的使用說明結束ends

如您所見,端口敲門確實非常有趣且有用,因為儘管我們不只是希望在一定的端口組合之後打開端口,但是服務器執行的命令或命令可能會有所不同,即...而不是打開端口,我們可以聲明終止進程,停止apache或mysql等服務……限制是您的想像力。

僅當您擁有物理服務器或虛擬服務器為KVM技術時,端口敲接才有效。 如果您的VPS(虛擬服務器)是OpenVZ,那麼端口敲接我認為它不適合您,因為您不能直接操作iptables

到目前為止,這篇文章……到目前為止,我並不是這方面的專家,但我想與您分享這個非常有趣的過程。

問候😀


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   Erunamo爵士 他說:

    很棒的文章,很有趣,我不知道它的存在……如果您繼續為系統管理員新手撰寫文章,那將是很棒的great

    問候和感謝^ _ ^

    1.    KZKG ^ Gaara 他說:

      感謝您的評論。
      是的……這是關於Fico的DNS的文章,我不想被甩在大聲笑!

      不嚴重。 幾個月前,我聽到了一些有關Port Knocking的信息,但立即引起了我的注意,但是由於當時我認為它會變得非常複雜,所以我沒有決定進門,只是在昨天檢查了我發現的回購中的一些軟件包並決定嘗試一下,這是教程。

      我一直喜歡發表技術文章,有些可能不夠有趣,但是...我希望其他人能

      問候

    2.    馬里奧 他說:

      您好,我知道這篇文章已經存在了一段時間,但是我啟動了查詢以查看是否有人可以為我解決。
      事實是,當我從本地網絡外部連接樹莓派時,我已經實現了敲入樹莓派的端口以嘗試提高安全性。 為此,我必須在7000-9990路由器上打開直接連接到計算機的端口範圍。 在路由器上打開這些端口是否安全,或者相反,當試圖提高安全性時,我是否相反?

      問候和感謝。

  2.   評估 他說:

    太好了,我已經擔任系統管理員多年了,並不認識他。
    一個問題...您如何處理“敲門聲”?
    您是否通過這些端口遠程登錄? telnet回答您什麼? 還是有一些“敲”波命令?
    很棒的文章。 壯觀的。 非常感謝

    1.    KZKG ^ Gaara 他說:

      我使用telnet進行了測試,所有的操作都產生了奇蹟...但是,奇怪的是,有一個“敲門”命令, 男子敲 這樣你就可以看到😉

      telnet根本不響應我,具有DROP策略的iptables使其根本不響應,並且telnet停留在等待響應(永遠不會到達),但是即使沒有人響應,被敲除的守護程序也會識別出敲除聲😀

      非常感謝您的評論,很高興得知我的文章仍然喜歡^ _ ^

  3.   s0rmt4il 他說:

    已添加到收藏夾! :D!

    格拉西亞斯!

    1.    KZKG ^ Gaara 他說:

      謝謝😀

  4.   獵人 他說:

    安全性,令人愉快的感覺,當我們將計算機固定到垂直位置,然後數天/週之後嘗試從某個遠程位置進行連接時我們無法訪問,因為防火牆處於“任何人都不可以”模式,這被稱為“呆在外面”以系統管理員的身份進行防禦。 😉

    這就是為什麼該帖子如此有用的原因,您只要敲一下就可以從任何地方訪問該信息包,從而可以將數據包發送到本地網絡,並且攻擊者在看到ssh端口關閉時失去了興趣,我認為他們不會啟動敲蠻力打開港口。

  5.   曼努埃爾 他說:

    嘿,這篇文章很棒。

    一件事:它可用於從本地網絡外部進行連接嗎?

    我之所以這樣說,是因為我關閉了端口的路由器減去了與重定向到服務器的ssh對應的端口。

    我想為了使它能夠從本地網絡外部工作,有必要打開與端口敲門相對應的路由器端口,並使它們也重定向到服務器。

    嗯...

    我不知道這樣做有多安全。

    你怎麼看?

    1.    KZKG ^ Gaara 他說:

      我不確定,我還沒有完成測試,但是我想是的,您應該在路由器上打開端口,否則將無法關閉服務器。

      在不打開路由器端口的情況下進行測試,如果對您不起作用,這是一個遺憾,因為我同意您的意見,建議不要在路由器上打開這些端口。

      1.    曼努埃爾 他說:

        實際上,我們必須打開端口並將其重定向到我們正在呼叫的計算機。

        可憐。

  6.   拉巴08 他說:

    非常感謝您! 我剛剛開始學習網絡職業,這些教程對我來說很棒! 感謝您抽出寶貴時間分享知識

    1.    KZKG ^ Gaara 他說:

      這些年來,我在全球Linux社區中學到了很多東西……幾年來,我也想做出貢獻,這就是為什麼我寫😀

  7.   杰納斯981 他說:

    非常感謝您,您不知道它對我有什麼幫助,我將要設置服務器,這對我來說非常有用。

    問候

    1.    KZKG ^ Gaara 他說:

      這就是我們的目的,是要幫助😉

  8.   讓·文圖拉 他說:

    優秀的文章! 我對此一無所知,對我有很大幫助(我正在使用使用KVM的RackSpace,因此它像手套一樣適合我!)。 已添加到收藏夾。

    1.    KZKG ^ Gaara 他說:

      感謝您的評論🙂

  9.   藻類 他說:

    科莫·辛普爾 DesdeLinux 為我們帶來了精彩的帖子和教程,這些教程對於付諸實踐非常有用,感謝分享! 🙂

    1.    KZKG ^ Gaara 他說:

      謝謝您的評論🙂
      是的,我們始終努力滿足讀者對知識的渴求😀

  10.   天布萊克 他說:

    有趣的是,我不知道該選項。
    直接增添我的印章庫。
    格拉西亞斯!

    1.    KZKG ^ Gaara 他說:

      我的榮幸😀
      問候

  11.   弗雷德里克。 瓦爾代斯·圖雅格 他說:

    問候KZKG ^ Gaara !!! 你擠了大量的文章來保護服務器。 沒有@%*&^想法存在這樣的東西。 我會試試看。 謝謝

  12.   白^項鍊 他說:

    這很棒…。 ^-^

  13.   學習Linux 他說:

    您好,您能解釋一下如何在CentOS 5.x中安裝它嗎?

    我已經下載了rpm:
    http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm

    已安裝:
    rpm -i knock-0.5-3.el5.rf.x86_64.rpm

    用15秒鐘的時間配置配置文件,並配置用於通過ssh連接到我的vps的端口

    惡魔開始了:
    / usr / sbin /敲

    我使用telnet進行連接,但端口沒有關閉,默認情況下該端口是打開的,但它沒有關閉。

    難道我做錯了什麼?

  14.   你好 他說:

    嗯,對這些端口的telnet請求可以由我們本地網絡的管理員或我們的服務提供商來了解,不是嗎?它將阻止外部人員,但不會阻止他們,因此,如果他們想要激活我們的端口,則可以這樣做,因為看到我們提出的要求,嗯,說它可以保護但不是100%

    1.    羅伯托 他說:

      可以,但是我不認為他們會想像某些telnet執行X動作。 除非他們看到遵循相同的telnet模式。

  15.   帕勃羅·安德烈斯·迪亞茲·阿拉姆布羅 他說:

    有趣的文章,我有一個問題。 我認為配置文件的映像中有錯誤,因為如果您分析得好,則在命令的兩行中都將在Iptables中使用ACCEPT。 我認為一個應該接受,另一個應該拒絕。

    否則,優秀的主動權。 非常感謝您抽出寶貴的時間向他人解釋您的知識。

    問候