Hướng Dẫn Cách Sử Dụng Port Knocking Bảo Mật SSH Trên VPS Linux
Để bảo vệ hệ thống Linux của bạn khỏi các trình quét tự động và tăng cường an ninh cho máy chủ SSH, bạn có thể sử dụng kỹ thuật Port Knocking. Kỹ thuật này giúp mở các cổng tường lửa bên ngoài bằng cách tạo một chuỗi kết nối trên các cổng đã đóng trước đó. Bài viết này sẽ hướng dẫn bạn cách triển khai Port Knocking trong Linux để bảo vệ máy chủ SSH của bạn.
Mục Lục Bài Viết
Port Knocking là gì?
Bằng cách hạn chế quyền truy cập vào dịch vụ máy chủ chỉ cho người dùng được ủy quyền, Port Knocking là một phương pháp thông minh giúp giới hạn quyền truy cập vào một cổng cụ thể. Một trong những lợi ích của việc sử dụng Port Knocking là các cổng được bảo vệ sẽ không hiển thị khi được quét bởi các công cụ quét cổng tiêu chuẩn.
Port Knocking hoạt động phối hợp với tường lửa để phát hiện và chặn người dùng không hợp lệ, cho phép khách hàng kết nối với cổng đúng sau khi xác thực. Khi đã xác định người dùng hợp lệ, tường lửa sẽ mở cổng đã đóng. Nếu bạn muốn tăng cường tính bảo mật cho máy chủ VPS Linux của mình, Port Knocking là một trong những phương pháp hiệu quả để bảo vệ máy chủ của bạn.
Cách dùng Port Knocking bảo mật SSH Server trong Linux
Bằng cách sử dụng tính năng Port Knocking, bạn có thể giới hạn quyền truy cập vào các dịch vụ của máy chủ chỉ cho những người dùng được ủy quyền. Thay vì mở cổng SSH 22 trực tiếp cho mọi người từ bên ngoài qua tường lửa, bạn có thể sử dụng Port Knocking để bảo vệ máy chủ. Khi cần mở cổng SSH, máy chủ sẽ chạy một tiến trình gọi là knockd. Chỉ những người dùng biết trình tự “knock” đúng mới có thể mở cổng SSH. Một trình tự khác sẽ được sử dụng để đóng cổng SSH khi người dùng được ủy quyền yêu cầu đăng xuất.
Để sử dụng Port Knocking trong Linux để bảo vệ dịch vụ SSH, bạn cần cài đặt và cấu hình knocked cũng như thiết lập quy tắc tường lửa để ẩn máy chủ SSH. Điều này giúp tránh cho những kẻ xấu phát hiện máy chủ trên mạng công cộng. Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt và cấu hình Port Knocking để bảo vệ dịch vụ SSH trên Ubuntu.
Lưu ý: Để ẩn máy chủ SSH bằng Port Knocking, bạn cần hệ điều hành Linux với máy chủ OpenSSH và quyền truy cập sudo vào máy chủ. Nếu đã sẵn sàng, hãy thực hiện các bước trong hướng dẫn để bảo vệ dịch vụ SSH của bạn.
Bước 1: Cài và cấu hình knockd trên máy chủ Linux
Khi bạn đã đăng nhập vào hệ thống Linux của mình, hãy sử dụng lệnh sau để cài đặt trình nền knockd. Điều này có thể được sử dụng trên Ubuntu và Debian.
Sau khi cài đặt thành công, hãy sử dụng trình soạn thảo văn bản ưa thích của bạn để mở tệp cấu hình knockd.conf. Hiện tại, bạn cần chỉnh sửa ba phần trong tệp này:
- Tìm phần openSSH để thay đổi trình tự mặc định – 7000,8000,9000 – thành bất kỳ số nào bạn muốn, ví dụ như 10001,10002,10003. Lưu ý rằng các giá trị này có thể ảnh hưởng đến bảo mật hệ thống của bạn. Đây là trình tự sẽ được sử dụng để mở cổng SSH từ máy khách.
- Trong lệnh iptables, thay đổi A thành I. Khi tất cả các địa chỉ IP khác không được phép kết nối tới cổng SSH, knockd sẽ thực thi lệnh iptables này để mở cổng SSH cho địa chỉ IP của bạn.
- Cuối cùng, thay đổi trình tự mặc định theo ý thích của bạn, ví dụ 10003,10002,10001 trong closeSSH. Trình tự này sẽ được sử dụng để đóng kết nối SSH sau khi người dùng quyết định đăng xuất khỏi máy chủ.
Sau khi bạn đã hoàn tất việc chỉnh sửa ba điều được giải thích ở trên, hãy lưu lại các thay đổi và thoát khỏi tệp.
- Sau đó, để kiểm tra và xem tên giao diện mạng chính trên máy chủ, bạn cần chạy lệnh:
- ip addr
- Còn một tệp cấu hình khác cần phải chỉnh sửa. Một lần nữa, hãy mở trình soạn thảo văn bản của bạn để sửa đổi: $ sudo nano /etc/default/knockd
- Tìm dòng:
- START_KNOCKD=0
- Để bật tự động khởi động khi khởi động hệ thống, hãy thay đổi 0 thành 1:
- START_KNOCKD=1
- Mặc dù knockd mặc định lắng nghe trên giao diện eth0, nhưng có thể giao diện của bạn khác. Để thay đổi điều này, hãy tìm dòng sau:
- #KNOCKD_OPTS=”-i eth1″
- Bây giờ, để thay đổi eth1 thành tên của giao diện mạng chính trên máy chủ của bạn, bạn chỉ cần xóa #
- KNOCKD_OPTS=”-i ens18″
- Hãy thiết lập và đóng tập tin.
- Bây giờ, chúng ta sẽ bắt đầu và kích hoạt knockd daemon. Để làm điều này, hãy chạy lệnh sau:
- $ sudo systemctl start knockd
- $ sudo systemctl enable knockd
- Để kiểm tra xem dịch vụ đã được kích hoạt và đang chạy hay không, bạn có thể sử dụng lệnh sau:
- $ sudo systemctl status knockd
Bước 2: Đóng port SSH 22
Để khóa cổng SSH trên tường lửa, bạn cần kiểm tra trạng thái hiện tại của tường lửa UFW và xem các quy tắc đang áp dụng. Bạn có thể làm điều này bằng cách chạy lệnh sau:
- $ sudo ufw status numbered
Ví dụ, nếu bạn thấy cổng SSH 22 được mở trên dòng 3 và 9, bạn có thể xóa các quy tắc mở cổng SSH bằng cách chạy các lệnh sau:
- sudo ufw delete 9
- sudo ufw delete 3
Khi bạn thực hiện các bước này, cổng SSH sẽ bị đóng và bạn sẽ không thể kết nối từ xa thông qua dịch vụ SSH. Hãy nhớ rằng việc xóa các quy tắc theo thứ tự từ số chỉ mục lớn hơn xuống là quan trọng để tránh gặp lỗi khi kết nối.
Bước 3: Dùng Knock Client để kết nối với SSH Server
Để cấu hình ứng dụng khách, bạn cần thử đăng nhập bằng cách gửi chuỗi knockd đã thiết lập trên máy chủ.
- Đầu tiên, bạn cần cài đặt trình nền knockd bằng lệnh sau:
- $ sudo apt install knockd
- Sau khi cài đặt xong, bạn có thể gửi trình tự knockd bằng lệnh sau:
- $ knock -v server_ip knock_sequence
- Hãy gửi trình tự knockd chính xác từ máy khách để mở tường lửa máy chủ tới cổng TCP 22.
- knock -v 10.0.0.104 10001 10002 10003
- Khi knockd thành công, bạn sẽ có thể SSH vào máy chủ của mình. Sau đó, bạn có thể sử dụng port knocking để đóng cổng SSH cho địa chỉ IP cụ thể của bạn.
- knock -v 10.0.0.104 10003 10002 10001
Lưu ý rằng knockd chỉ phản hồi khi chuỗi được gửi đến giao diện mạng chính, nên không thể mở cổng SSH khi máy chủ có nhiều địa chỉ IP hoặc khi muốn gửi chuỗi trên một địa chỉ IP khác.
Nếu bạn muốn thuê VPS uy tín, hãy xem xét các gói VPS tại InterData. InterData là một trong những công ty hàng đầu cung cấp nhiều dịch vụ máy chủ, Hosting, Cloud Server,… đa dạng tại Việt Nam.
- Website: https://interdata.vn
- Facebook: https://www.facebook.com/interdata.com.vn
- Twitter: https://twitter.com/Interdatavn
- Youtube: https://www.youtube.com/@interdata-vn
- Linkedin: https://www.linkedin.com/in/interdata-vn/
- Trụ sở chính: 48 Nguyễn Thị Huỳnh, Phường 11, Quận Phú Nhuận, Thành phố Hồ Chí Minh
- VPGD: Số 211 Đường số 5, Khu Đô Thị Lakeview City, Phường An Phú, Thành phố Thủ Đức, Thành phố Hồ Chí Minh
- Hotline: 1900.63.68.22
Hãy nhớ rằng Port Knocking không nên được sử dụng đơn lẻ mà nên kết hợp với các biện pháp bảo mật khác. Nếu bạn tuân thủ các bước trên, bạn sẽ có thể cài đặt một cách dễ dàng và không gặp vấn đề nào. Chúc bạn thành công!