Port Knocking: Bảo mật tốt nhất bạn có thể có trên máy tính hoặc máy chủ của mình (Triển khai + Cấu hình)

Các cổng nổi bật (bằng tiếng anh gõ cổng) chắc chắn là một thực tiễn mà tất cả chúng ta, những người quản lý máy chủ nên biết rõ, ở đây tôi giải thích chi tiết đây là gì và cách triển khai cũng như cấu hình điều này 😉

Ngay bây giờ, những người trong chúng ta quản lý một máy chủ có quyền truy cập SSH vào máy chủ đó, một số chúng tôi thay đổi cổng mặc định của SSH và nó không còn sử dụng cổng 22 nữa và những người khác cứ để như vậy (điều gì đó không được khuyến khích), tuy nhiên máy chủ đã cho phép truy cập SSH thông qua một số cổng và đây đã là một 'lỗ hổng bảo mật'.

với Gõ cổng chúng ta có thể đạt được những điều sau:

1. Quyền truy cập SSH không được bật bởi bất kỳ cổng nào. Nếu chúng ta đã cấu hình SSH cho cổng 9191 (ví dụ) thì cổng đó (9191) sẽ bị đóng đối với mọi người.
2. Nếu ai đó muốn truy cập vào máy chủ bằng SSH, họ rõ ràng sẽ không thể, vì cổng 9191 đã bị đóng ... nhưng, nếu chúng tôi sử dụng kết hợp 'ma thuật' hoặc bí mật, cổng đó sẽ được mở, ví dụ:

1. Tôi telnet đến cổng 7000 của máy chủ
2. Tôi thực hiện một telnet khác đến cổng 8000 của máy chủ
3. Tôi thực hiện một telnet khác đến cổng 9000 của máy chủ
4. Máy chủ phát hiện ai đó đã thực hiện kết hợp bí mật (chạm vào các cổng 7000, 8000 và 9000 theo thứ tự đó) và sẽ mở cổng 9191 để yêu cầu đăng nhập bằng SSH (nó sẽ chỉ mở cho IP mà từ đó tổ hợp được tạo thành số cổng đạt yêu cầu).
5. Bây giờ để đóng SSH, tôi chỉ cần chuyển mạng đến cổng 3500
6. Tôi sẽ làm một telnet khác đến cổng 4500
7. Và cuối cùng là một telnet khác đến cổng 5500
8. Thực hiện kết hợp bí mật khác này mà máy chủ phát hiện sẽ đóng cổng 9191 một lần nữa.

Nói cách khác, giải thích điều này thậm chí còn đơn giản hơn ...

với Gõ cổng máy chủ của chúng tôi có thể đã đóng một số cổng nhất định, nhưng khi máy chủ phát hiện điều đó từ X IP kết hợp cổng chính xác đã được thực hiện (cấu hình được xác định trước đó trong tệp cấu hình) sẽ tự thực hiện một số lệnh rõ ràng (lệnh cũng được xác định trong tệp cấu hình).

Nó có được hiểu không? 🙂

Làm thế nào để cài đặt một daemon cho Port Knocking?

Tôi làm điều đó với gói cú đá, điều này sẽ cho phép chúng tôi triển khai và định cấu hình một cách rất, rất đơn giản và nhanh chóng Gõ cổng.

Cài đặt gói: knockd

Làm thế nào để cấu hình Port Knocking với knockd?

Sau khi cài đặt, chúng tôi tiếp tục cấu hình nó, vì điều này, chúng tôi chỉnh sửa (với tư cách là người gốc) tệp /etc/knockd.conf:

nano /etc/knockd.conf

Như bạn có thể thấy trong tệp đó đã có cấu hình mặc định:

 Giải thích các cài đặt mặc định thực sự đơn giản.

- Đầu tiên, sử dụng nhật ký hệ thống có nghĩa là để ghi lại hoạt động (nhật ký), chúng tôi sẽ sử dụng / var / log / syslog.
- Thứ hai, trong phần [mởSSH] Đó là nơi hiển nhiên các hướng dẫn để mở SSH, đầu tiên chúng ta có chuỗi các cổng (sự kết hợp bí mật) được định cấu hình theo mặc định (cổng 7000, cổng 8000 và cuối cùng là cổng 9000). Rõ ràng là các cổng có thể được thay đổi (thực tế là tôi khuyên dùng) cũng như chúng không nhất thiết phải là 3, chúng có thể nhiều hơn hoặc ít hơn, tùy thuộc vào bạn.
- Ngày thứ ba, seq_timeout = 5 có nghĩa là thời gian chờ kết hợp cổng bí mật diễn ra. Theo mặc định, nó được đặt thành 5 giây, điều này có nghĩa là khi chúng tôi bắt đầu thực hiện việc gõ cổng (nghĩa là khi chúng tôi chuyển mạng đến cổng 7000), chúng tôi có tối đa 5 giây để kết thúc trình tự chính xác, nếu 5 giây trôi qua và chúng tôi chưa hoàn thành việc gõ cổng thì nó sẽ đơn giản là như thể trình tự không hợp lệ.
- Thứ tư, lệnh nó không cần giải thích nhiều. Đây chỉ đơn giản là lệnh mà máy chủ sẽ thực thi khi phát hiện ra sự kết hợp được xác định ở trên. Lệnh được đặt theo mặc định là chỉ mở cổng 22 (thay đổi cổng này cho cổng SSH của bạn) thành IP đã tạo sự kết hợp chính xác của các cổng.
- Thứ năm, tcpflags = đồng bộ Với dòng này, chúng tôi chỉ định loại gói mà máy chủ sẽ nhận ra là hợp lệ cho cổng gõ.

Sau đó, có phần để đóng SSH, rằng cấu hình mặc định không có gì khác hơn là cùng một chuỗi các cổng ở trên nhưng theo thứ tự ngược lại.

Đây là cấu hình với một số sửa đổi:

 Làm thế nào để bắt đầu trình nền gõ?

Để bắt đầu nó, trước tiên chúng ta phải sửa đổi (dưới dạng root) tệp / etc / default / knockd:

nano /etc/default/knockd

Ở đó chúng tôi thay đổi dòng số 12 có nội dung: «START_KNOCKD = 0»Và thay đổi 0 thành 1, chúng ta sẽ có:«START_KNOCKD = 1«

Khi điều này được thực hiện, bây giờ chúng tôi chỉ cần bắt đầu nó:

service knockd start

Và thì đấy, nó đã được cấu hình và hoạt động.

Port Knocking với knockd up và chạy!

Như bạn có thể thấy trong cấu hình trước, nếu một lần gõ cổng được thực hiện đến cổng 1000, sau đó đến 2000 và cuối cùng là 3000 thì cổng 2222 (SSH của tôi) sẽ mở, ở đây một máy tính khác đang thực hiện gõ cổng:

Khi tôi nhấn [Enter] trên Knock No.1, trên No.2 và cuối cùng là No.3, cổng sẽ mở, đây là nhật ký:

Như bạn thấy, khi gõ cổng 1000, giai đoạn 1 đã được đăng ký, sau đó ở mức 2000 sẽ là giai đoạn 2 và cuối cùng là 3 với 3000, khi thực hiện điều này, lệnh mà tôi đã khai báo trong .conf được thực hiện và thế là xong.

Sau đó, để đóng cổng, bạn chỉ cần gõ 9000, 8000 và cuối cùng là 7000, đây là nhật ký:

Và đến đây phần giải thích sử dụng kết thúc 😀

Như bạn có thể thấy, Port Knocking thực sự thú vị và hữu ích, bởi vì mặc dù chúng ta không muốn chỉ mở một cổng sau khi kết hợp các cổng nhất định, nhưng lệnh hoặc lệnh mà máy chủ sẽ thực thi có thể khác nhau, nghĩa là ... thay vì mở một cổng chúng ta có thể khai báo để giết một tiến trình, dừng một dịch vụ như apache hoặc mysql, v.v ... giới hạn là do bạn tưởng tượng.

Port Knocking chỉ hoạt động khi bạn có máy chủ vật lý hoặc khi máy chủ ảo là công nghệ KVM. Nếu VPS (máy chủ ảo) của bạn là OpenVZ thì Port Knocking tôi không nghĩ nó phù hợp với bạn vì bạn không thể thao tác trực tiếp với iptables

Vâng và cho đến nay bài viết… Tôi không phải là một chuyên gia trong vấn đề này nhưng tôi muốn chia sẻ với bạn quá trình rất thú vị này.

Xin chào 😀


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   erunamoJAZZ dijo

    Bài báo xuất sắc, nó khá thú vị và tôi không biết nó tồn tại ... sẽ thật tuyệt nếu bạn tiếp tục đưa ra các bài báo cho người mới chơi sysadmins và những thứ

    Xin chào và cảm ơn ^ _ ^

    1.    KZKG ^ Gaara dijo

      Cảm ơn bạn đã bình luận.
      Vâng ... đó là với những bài viết về DNS của FICO, tôi không muốn bị tụt lại phía sau LOL !!!

      Không có gì nghiêm trọng. Vài tháng trước, tôi đã nghe điều gì đó về Port Knocking và nó ngay lập tức thu hút sự chú ý của tôi, nhưng vì tôi nghĩ rằng nó sẽ rất phức tạp vào thời điểm đó nên tôi chưa quyết định tham gia, chỉ hôm qua xem lại một số gói từ repo tôi đã phát hiện ra lỗi và đã quyết định dùng thử và đây là hướng dẫn.

      Tôi luôn thích đưa các bài báo về kỹ thuật, một số có thể không đủ thú vị nhưng… tôi hy vọng những người khác cũng vậy 😉

      Liên quan

    2.    Mario dijo

      Xin chào, tôi biết rằng bài viết này đã xuất hiện được một thời gian nhưng tôi đang khởi chạy truy vấn của mình để xem liệu ai đó có thể giải quyết nó cho tôi hay không.
      Thực tế là tôi đã thực hiện gõ cổng vào mâm xôi của mình để cố gắng cải thiện bảo mật khi tôi kết nối với nó từ bên ngoài mạng cục bộ. Để làm việc này, tôi phải mở phạm vi cổng trên bộ định tuyến 7000-9990 trực tiếp đến máy. Việc mở các cổng đó trên bộ định tuyến có an toàn không hay ngược lại, khi cố gắng bảo mật hơn, tôi đang làm ngược lại?

      Xin chào và cảm ơn bạn.

  2.   không bao giờ dijo

    Tuyệt vời, tôi đã là một sysadmin trong nhiều năm và không biết anh ấy.
    Một câu hỏi ... làm thế nào để bạn làm "gõ"?
    Bạn có telnet chống lại các cổng đó không? Telnet trả lời bạn điều gì? Hoặc là có một số lệnh sóng "gõ"?
    Tuyệt vời là bài báo. Đẹp mắt. Cảm ơn rất nhiều

    1.    KZKG ^ Gaara dijo

      Tôi đã làm bài kiểm tra với telnet và mọi thứ đều hoạt động kỳ diệu ... nhưng, thật kỳ lạ, có một lệnh 'gõ', hãy làm một người đàn ông gõ vì vậy bạn có thể thấy 😉

      Telnet không thực sự phản hồi với tôi chút nào, iptables với chính sách DROP khiến nó không phản hồi chút nào và telnet ở đó chờ phản hồi (sẽ không bao giờ đến), nhưng daemon knockd sẽ nhận ra tiếng gõ ngay cả khi không. một người trả lời 😀

      Rất cảm ơn các bạn đã comment, rất vui khi biết các bài viết của mình vẫn được like ^ _ ^

  3.   st0rmt4il dijo

    Đã thêm vào Mục yêu thích! : D!

    Cảm ơn bạn!

    1.    KZKG ^ Gaara dijo

      Cảm ơn 😀

  4.   thợ săn dijo

    Ahh bảo mật, cảm giác dễ chịu khi chúng tôi bảo vệ máy tính vào hệ thống dẫn nước và sau đó vài ngày / tuần sau đó cố gắng kết nối từ một nơi xa xôi nào đó chúng tôi không thể truy cập vì tường lửa ở chế độ "không ai dành cho ai", điều này được gọi là lâu đài về sysadmins. 😉

    Đó là lý do tại sao bài đăng này rất hữu ích, với knockd, bạn có thể truy cập từ bất kỳ nơi nào có thể gửi một gói tin đến mạng cục bộ của bạn và những kẻ tấn công sẽ mất hứng thú khi thấy rằng cổng ssh bị đóng, tôi không nghĩ chúng sẽ đánh brute force để mở cổng.

  5.   Manuel dijo

    Này, bài viết rất hay.

    Một điều: nó có phục vụ để kết nối từ bên ngoài mạng cục bộ không?

    Tôi nói điều này bởi vì tôi có bộ định tuyến với các cổng đã đóng trừ cổng tương ứng với ssh được chuyển hướng đến máy chủ.

    Tôi tưởng tượng rằng để nó hoạt động từ bên ngoài mạng cục bộ, sẽ cần phải mở các cổng của bộ định tuyến tương ứng với Port Knocking và chuyển hướng chúng đến máy chủ.

    Mmm

    Tôi không biết làm thế nào an toàn để làm điều này.

    Bạn nghĩ sao?

    1.    KZKG ^ Gaara dijo

      Tôi không thực sự chắc chắn, tôi chưa thực hiện kiểm tra nhưng tôi nghĩ là có, bạn nên mở các cổng trên bộ định tuyến vì nếu không bạn sẽ không thể đánh sập máy chủ.

      Thực hiện bài kiểm tra mà không mở các cổng trên router, nếu nó không hiệu quả với bạn thì thật đáng tiếc, vì tôi đồng ý với bạn là không nên mở các cổng này trên router.

      1.    Manuel dijo

        Thật vậy, chúng ta phải mở các cổng và chuyển hướng chúng đến máy tính chúng ta đang gọi.

        Điều đáng tiếc.

  6.   raba08 dijo

    Tuyệt cám ơn bạn rất nhiều! Tôi chỉ mới bắt đầu nghiên cứu về mạng và những hướng dẫn này rất tốt cho tôi! cảm ơn vì đã dành thời gian chia sẻ kiến ​​thức

    1.    KZKG ^ Gaara dijo

      Tôi đã học được rất nhiều trong những năm qua với cộng đồng Linux toàn cầu ... trong vài năm tôi cũng muốn đóng góp, đó chính là lý do tại sao tôi viết 😀

  7.   janus981 dijo

    Cảm ơn bạn rất nhiều, bạn nào không biết thì giúp mình với, mình sắp đặt máy chủ và việc này rất tốt cho mình.

    Liên quan

    1.    KZKG ^ Gaara dijo

      Đó là những gì chúng tôi làm, để giúp đỡ 😉

  8.   Jean ventura dijo

    Bài báo xuất sắc! Tôi không biết gì về điều này và nó giúp tôi rất nhiều (Tôi đang sử dụng RackSpace sử dụng KVM, vì vậy nó phù hợp với tôi như một chiếc găng tay!). Đã thêm vào mục yêu thích.

    1.    KZKG ^ Gaara dijo

      Cảm ơn đã bình luận 🙂

  9.   Algave dijo

    Như mọi khi DesdeLinux mang đến cho chúng tôi những bài viết xuất sắc cùng với những hướng dẫn thực sự hữu ích để áp dụng, cảm ơn bạn đã chia sẻ!! 🙂

    1.    KZKG ^ Gaara dijo

      Cảm ơn bạn đã bình luận 🙂
      Vâng, chúng tôi luôn cố gắng thỏa mãn cơn khát kiến ​​thức mà độc giả của chúng tôi có 😀

  10.   Timbleck dijo

    Thú vị, không biết tùy chọn.
    Đi thẳng đến thư viện vỗ béo của tôi.
    Cảm ơn bạn!

    1.    KZKG ^ Gaara dijo

      Rất hân hạnh cho tôi 😀
      Liên quan

  11.   Frederick. A. Valdés Toujague dijo

    Xin chào KZKG ^ Gaara !!! Bạn siết chặt. Bài báo tuyệt vời để bảo mật máy chủ. Không có @% * & ^ ý tưởng rằng một thứ như vậy tồn tại. Tôi sẽ thử nó. Cảm ơn bạn

  12.   Vòng cổ ^ trắng dijo

    điều đó thật tuyệt…. ^ - ^

  13.   LearnLinux dijo

    Xin chào, bạn có thể giải thích cách cài đặt nó trong CentOS 5.x không?

    Tôi đã tải xuống vòng / phút:
    http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm

    Cài đặt:
    rpm -i knock-0.5-3.el5.rf.x86_64.rpm

    Định cấu hình tệp cấu hình với thời gian 15 giây và cổng mà tôi sử dụng để kết nối bằng ssh với vps của mình

    Con quỷ bắt đầu:
    / usr / sbin / knockd &

    Tôi telnet và không có gì cổng không đóng, theo mặc định cổng đang mở, nhưng nó không đóng.

    Tôi có làm điều gì sai?

  14.   xin chào dijo

    Mmmm, các yêu cầu telnet đến các cổng đó có thể được quản trị viên của mạng cục bộ hoặc nhà cung cấp dịch vụ của chúng tôi biết được, phải không? Nó sẽ chặn những người bên ngoài chứ không phải họ, vì vậy nếu họ muốn kích hoạt cổng của chúng tôi, họ có thể làm điều đó vì Xem các yêu cầu chúng tôi đưa ra, mmm giả sử nó bảo vệ nhưng không bảo vệ 100%

    1.    Roberto dijo

      Có thể là vậy, nhưng tôi không nghĩ rằng họ sẽ tưởng tượng rằng một số telnet nào đó thực hiện hành động X. Trừ khi họ thấy rằng các mẫu telnet giống nhau được tuân theo.

  15.   Pablo Andres Diaz Aramburo dijo

    Bài báo thú vị, tôi có một câu hỏi. Tôi nghĩ có lỗi trong hình ảnh của tệp cấu hình, vì nếu bạn phân tích tốt thì ở cả hai dòng lệnh bạn đang sử dụng ACCEPT trong Iptables. Tôi nghĩ một người nên CHẤP NHẬN và người khác nên TỪ CHỐI.

    Nếu không, sáng kiến ​​xuất sắc. Cảm ơn bạn rất nhiều vì đã dành thời gian để giải thích kiến ​​thức của bạn cho người khác.

    Liên quan