Khi bạn có một máy chủ có thể truy cập công khai, tin tặc có thể dễ dàng quét địa chỉ IP của bạn và kiểm tra các cổng mở (đặc biệt là cổng 22 được sử dụng cho SSH) trên máy chủ của bạn. Một cách để ẩn máy chủ của bạn khỏi tin tặc là gõ cửa. Knockd là một máy chủ port-knock. Nó lắng nghe tất cả lưu lượng trên ethernet hoặc các giao diện có sẵn khác, chờ đợi các chuỗi đặc biệt của các lần truy cập cổng. Các máy khách như telnet hoặc Putty khởi tạo các cổng truy cập bằng cách gửi một TCP hoặc gói tới một cổng trên máy chủ.

Trong bài viết này, chúng ta sẽ xem xét cách chúng ta có thể sử dụng knockd để ẩn các dịch vụ đang chạy trên một máy chủ Linux.

Cài đặt Knockd trên máy chủ Linux

Knockd có sẵn trong hầu hết các kho của distro. Trên máy chủ Debian / Ubuntu / Ubuntu, bạn có thể sử dụng apt-get để cài đặt knockd.

 sudo apt-get cài đặt gõ 

Đối với người dùng Fedora, CentOS hoặc REHL, bạn có thể sử dụng lệnh yum :

 yum cài đặt knockd 

Cài đặt và cấu hình Iptables

Nếu bạn không có Iptables được cài đặt trên máy chủ của bạn, hãy cài đặt nó ngay bây giờ.

 sudo apt-get cài đặt iptables iptables-persistent 

Gói iptables-persistent quản tải tự động các iptables đã lưu.

Tiếp theo, bạn cần cho phép các kết nối đã được thiết lập cũng như các phiên hiện tại thông qua iptables. Sử dụng lệnh sau để thực hiện tác vụ này:

 iptables -A INPUT -m conntrack --ctstate ĐƯỢC THÀNH LẬP, LIÊN QUAN -j CHẤP NHẬN 

Tiếp theo, bạn cần chặn tất cả các kết nối đến cổng 22 SSH.

 iptables -A INPUT -p tcp --dự án 22 -j 

Bây giờ hãy lưu các quy tắc tường lửa thông qua các lệnh sau:

 netfilter-persistent save netfilter-persistent reload 

Bạn có thể tiếp tục và kiểm tra xem bạn có thực sự chặn cổng 22 bằng cách kết nối với máy chủ của bạn thông qua máy tính của bạn hay không.

 ssh my-server-ip 

Định cấu hình Knockd

Bây giờ là lúc để cấu hình các thiết lập mặc định knockd. Nó được đặt tại "/etc/knockd.conf." Để làm như vậy, hãy thay đổi tệp cấu hình gõ bằng lệnh sau:

 cd / etc sudo leafpad knockd.conf 

Vì mục đích minh họa, tôi đang sử dụng trình chỉnh sửa bảng điều khiển. Trên máy chủ của bạn, bạn có thể sử dụng nano hoặc Vi.

Ảnh chụp màn hình hiển thị tệp cấu hình gõ.

  • Tùy chọn : Bạn có thể tìm các tùy chọn cấu hình cho Knockd trong trường này. Như bạn có thể thấy trong ảnh chụp màn hình ở trên, nó sử dụng nhật ký hệ thống để ghi nhật ký.
  • OpenSSH : Trường này được tạo thành từ chuỗi thời gian, chuỗi thời gian chờ, lệnh và cờ tcp.
  • Trình tự : Nó hiển thị chuỗi cổng có thể được sử dụng làm mẫu của ứng dụng khách để bắt đầu một hành động.
  • Thời gian chờ chuỗi : Nó hiển thị tổng thời gian được phân bổ cho Khách hàng để hoàn thành trình tự gõ cổng yêu cầu.
  • Lệnh : Đây là lệnh sẽ được thực thi sau khi trình tự gõ bởi trình khách khớp với mẫu trong trường chuỗi.
  • TCP_FLAGS : Đây là cờ phải được đặt trên các nút do khách hàng phát hành. Nếu cờ không chính xác nhưng mẫu gõ bcorrect, hành động sẽ không được kích hoạt.

Lưu ý : Lệnh iptables trong phần OpenSSH trong tệp cấu hình Knockd sử dụng tùy chọn -A để nối thêm quy tắc này vào cuối chuỗi INPUT. Điều này gây ra tất cả các kết nối còn lại để thả.

Để ngăn chặn nó, hãy thay thế bằng những điều sau đây:

 lệnh = / sbin / iptables -I INPUT 1-% IP% -p tcp --dựa nhập 22 -j ACCEPT 

Lệnh này đảm bảo rằng một quy tắc mới sẽ được thêm vào đầu của chuỗi INPUT để chấp nhận các kết nối ssh.

Bật và bắt đầu dịch vụ Knockd

Sử dụng quy trình sau để kích hoạt dịch vụ knockd trong “/ etc / default / knock”.

Thay đổi giá trị từ 0 đến 1 như được hiển thị trong ảnh chụp màn hình.

 START_KNOCKD = 1 

Sau đó, lưu và đóng tệp “/ etc / default / knockd”.

Tiếp theo, bạn có thể bắt đầu dịch vụ gõ bằng cách sử dụng một trong các lệnh sau:

 sudo dịch vụ knockd bắt đầu 

hoặc là

 sudo systemctl bắt đầu gõ 

Thời gian để Knock-Test Máy chủ Linux của bạn

Bây giờ là lúc để kiểm tra máy chủ SSH Linux của bạn. Để mở cổng 22 tại địa chỉ IP được chỉ định, hãy sử dụng thông tin sau trên máy tính của bạn. (Bạn cũng sẽ cần cài đặt knockd trên máy tính của bạn)

 knock -v my-server-ip 7000 8000 9000 

Bạn cần thay thế “my-server-ip” bằng địa chỉ IP của máy chủ.

Bây giờ bạn có thể kết nối với cổng 22 SSH bằng cách sử dụng lệnh sau:

 ssh my-server-ip 

Sau khi bạn đã kết thúc với bất cứ điều gì bạn muốn làm thông qua cổng 22, bạn có thể đóng nó bằng cách sử dụng lệnh sau đây:

 knock -v của tôi-server-ip 9000 8000 7000 

Phần kết luận

Với knockd, bạn chắc chắn rằng máy chủ SSH của bạn được bảo mật an toàn khỏi kẻ tấn công bằng máy quét tinh vi. Ngoài ra, bạn hoàn toàn chịu trách nhiệm về máy chủ SSH của mình.