Những cách thiết yếu để bảo mật cấu hình SSH của bạn

Hướng dẫn toàn diện về bảo mật cấu hình SSH thông qua 8 biện pháp thiết yếu, bao gồm xác thực dựa trên khóa, vô hiệu hóa đăng nhập gốc, mã hóa, cập nhật, 2FA, ghi nhật ký, kiểm soát truy cập và quản lý khóa. Lý tưởng cho quản trị viên hệ thống và chuyên gia bảo mật triển khai các biện pháp tốt nhất của SSH.

Nội dung liên quan

Bạn muốn tiếp tục học hỏi?

Đăng ký nhận bản tin của SSL.com, luôn cập nhật thông tin và bảo mật.

Bảo mật SSH liên quan đến nhiều kỹ thuật khả thi, nhưng không phải tất cả đều thực tế như nhau đối với mọi môi trường. Các khuyến nghị trong bài viết này được công nhận rộng rãi, các phương pháp có tác động cao cân bằng giữa tính dễ triển khai với khả năng bảo vệ mạnh mẽ. Chúng được rút ra từ các tiêu chuẩn do các tổ chức như NIST, CERT và dự án OpenSSH đặt ra và phản ánh các nguyên tắc cốt lõi mà SSL.com cũng áp dụng trong việc bảo mật chứng chỉ số—bảo vệ khóa, sử dụng mã hóa mạnh và hạn chế quyền truy cập đặc quyền.

Sau khi thiết lập các biện pháp thực hành cơ bản tốt nhất này, bạn có thể khám phá các chiến thuật nâng cao hơn, chẳng hạn như SSH dựa trên chứng chỉ, port knocking hoặc SSH qua VPN, nếu cần.

1. Sử dụng xác thực dựa trên khóa thay vì mật khẩu

Những gì nó là:

Bạn thay thế mật khẩu đăng nhập bằng cặp khóa công khai/riêng tư mật mã. Khóa công khai nằm trên máy chủ của bạn, trong khi khóa riêng nằm trên máy cục bộ của bạn.

Tại sao nó an toàn hơn:

  • Mật khẩu dễ bị tấn công bằng phương pháp brute-force
  • Kẻ tấn công phải có được khóa riêng của bạn để đột nhập, điều này khó hơn nhiều so với việc đoán mật khẩu

Cách thực hiện:

Tạo cặp khóa

Trên Linux hoặc macOS, hãy mở terminal và chạy:

ssh-keygen -t ed25519

Để tăng cường bảo mật (nếu ed25519 không khả dụng trong môi trường của bạn), bạn có thể sử dụng:

ssh-keygen -t rsa -b 4096

Sao chép Khóa công khai vào Máy chủ của bạn

Bạn có thể sử dụng lệnh ssh-copy-id (trên Linux/macOS) để dễ dàng chuyển khóa công khai của mình:

ssh-copy-id người dùng@địa chỉ_máy_chủ

Nếu ssh-copy-id không khả dụng, hãy thêm thủ công nội dung của tệp id_ed25519.pub (hoặc id_rsa.pub) vào tệp ~/.ssh/authorized_keys của máy chủ.

Vô hiệu hóa xác thực mật khẩu

Trong /etc/ssh/sshd_config, hãy thiết lập:

PasswordAuthentication không

Khởi động lại dịch vụ SSH:

sudo hệ thống khởi động lại ssh

Giống như việc quản lý chứng chỉ số, xác thực dựa trên khóa SSH đảm bảo rằng chỉ người có khóa riêng chính xác mới có thể thiết lập kết nối.

2. Vô hiệu hóa Đăng nhập Root

Những gì nó là:

Ngăn chặn người dùng root đăng nhập trực tiếp qua SSH.

Tại sao nó an toàn hơn:

  • Tài khoản root nắm giữ các đặc quyền không giới hạn và là mục tiêu hấp dẫn đối với kẻ tấn công
  • Việc vô hiệu hóa quyền truy cập root trực tiếp buộc kẻ tấn công phải đoán không chỉ khóa hoặc mật khẩu mà còn cả tên người dùng hợp lệ

Cách thực hiện:

Trong /etc/ssh/sshd_config, tìm hoặc thêm:

PermitRootLogin không

Khởi động lại SSH:

sudo hệ thống khởi động lại ssh

Bước này sẽ thu hẹp phạm vi tấn công của bạn một cách hiệu quả bằng cách loại bỏ tài khoản mạnh nhất khỏi tầm với.

3. Thực thi mã hóa mạnh mẽ và thuật toán MAC

Những gì nó là:

SSH cho phép bạn chỉ định mã hóa và mã xác thực tin nhắn (MAC) nào sẽ sử dụng để mã hóa dữ liệu và xác minh tính toàn vẹn của dữ liệu.

Tại sao nó an toàn hơn:

  • Các thuật toán cũ hoặc yếu (ví dụ: DES, RC4) có thể dễ bị tấn công bằng mật mã
  • Sử dụng mã hóa hiện đại (như AES-256) và MAC mạnh (như HMAC-SHA2) giúp giữ cho dữ liệu phiên của bạn được bảo mật và chống giả mạo

Cách thực hiện:

Trong /etc/ssh/sshd_config, thêm hoặc cập nhật danh sách mã hóa/MAC của bạn:

Mật mã aes256-ctr, aes192-ctr, aes128-ctr
MAC hmac-sha2-256,hmac-sha2-512

Khởi động lại SSH:

sudo hệ thống khởi động lại ssh

Việc cập nhật mật mã cho SSH cũng quan trọng như việc đảm bảo các giao thức và mật mã an toàn được sử dụng trong TLS.

4. Giữ SSH (và hệ thống của bạn) được cập nhật

Những gì nó là:

Đảm bảo OpenSSH cùng với phần còn lại của hệ điều hành của bạn nhận được các bản vá bảo mật thường xuyên.

Tại sao nó an toàn hơn:

  • Phần mềm lỗi thời thường chứa các lỗ hổng đã biết
  • Những kẻ tấn công thường nhắm vào các phiên bản cũ hơn với các lỗ hổng chưa được vá

Cách thực hiện:

Trên hệ thống chạy Debian hoặc Ubuntu:

sudo apt-get cập nhật && sudo nâng cấp apt-get

Trên các hệ thống dựa trên CentOS, Fedora hoặc RHEL:

sudo yum cập nhật

Hãy đảm bảo kiểm tra các bản cập nhật chương trình cơ sở nếu bạn đang chạy SSH trên các thiết bị mạng hoặc phần cứng khác.

5. Triển khai Xác thực hai yếu tố hoặc đa yếu tố (2FA/MFA)

Những gì nó là:

Thêm một lớp bảo mật bằng cách yêu cầu thêm thứ gì đó ngoài mật khẩu hoặc khóa (ví dụ: mã một lần trên điện thoại của bạn).

Tại sao nó an toàn hơn:

  • Ngay cả khi kẻ tấn công có được khóa SSH của bạn, chúng vẫn cần yếu tố thứ hai để đăng nhập
  • Giúp bảo vệ chống lại hành vi trộm cắp thông tin xác thực

Cách thực hiện:

Cài đặt và cấu hình công cụ MFA

Ví dụ, Google Authenticator có thể được cài đặt trên máy chủ Linux và thiết lập như một mô-đun PAM (Mô-đun xác thực có thể cắm). Thực hiện theo hướng dẫn cài đặt dành riêng cho bản phân phối của bạn.

Chỉnh sửa /etc/pam.d/sshd và /etc/ssh/sshd_config

  • Bật Google Authenticator hoặc mô-đun MFA khác
  • Đặt ChallengeResponseAuthentication là có và AuthenticationMethods là publickey,keyboard-interactive (hoặc bất kỳ tổ hợp nào phù hợp với môi trường của bạn)

Khởi động lại SSH:

sudo hệ thống khởi động lại ssh

6. Bật Ghi nhật ký và Giám sát

Những gì nó là:

Ghi lại các sự kiện đăng nhập SSH, theo dõi hoạt động đáng ngờ và nhận cảnh báo khi có điều gì đó không ổn.

Tại sao nó an toàn hơn:

  • Các nỗ lực xâm nhập thường được hiển thị trong nhật ký dưới dạng các lần đăng nhập không thành công hoặc các hành động trái phép
  • Phát hiện sớm có nghĩa là bạn có thể phản ứng nhanh chóng—chặn IP hoặc thay đổi cấu hình trước khi thiệt hại xảy ra

Cách thực hiện:

Tăng độ chi tiết của Log

Trong /etc/ssh/sshd_config, hãy thiết lập:

LogLevel ĐỘ VERBOSE

Nhật ký tổng hợp

Sử dụng Công cụ Phòng chống Xâm nhập

fail2ban quét các tệp nhật ký và cấm các IP có dấu hiệu độc hại, chẳng hạn như quá nhiều lần nhập sai mật khẩu.

7. Triển khai Kiểm soát và Hạn chế Truy cập

Những gì nó là:

Giới hạn người có thể kết nối tới SSH và từ đâu, ngăn chặn các yêu cầu gửi đến trái phép hoặc quá mức.

Cách thực hiện:

Hạn chế tường lửa

Chỉ cho phép SSH từ các địa chỉ IP đã biết hoặc đáng tin cậy. Ví dụ, trên Linux với ufw:

sudo ufw cho phép từ 192.168.1.0/24 đến bất kỳ cổng nào 22

Cấu hình cổng

Chạy SSH trên một cổng không chuẩn (ví dụ: 2222) có thể giảm các nỗ lực quét tự động. Nó không thay thế cho các biện pháp bảo mật thực sự, nhưng nó có thể giảm tiếng ồn.

Giới hạn người dùng/nhóm

Trong /etc/ssh/sshd_config, hãy chỉ định:

Cho phép người dùng alice bob

or

Cho phép nhóm sshadmins

8. Sử dụng cụm mật khẩu khóa SSH và lưu trữ khóa an toàn

Những gì nó là:

Mã hóa khóa riêng của bạn bằng một cụm mật khẩu để ngay cả khi máy tính của bạn bị xâm phạm, bạn cũng không thể sử dụng khóa đó ngay lập tức.

Tại sao nó an toàn hơn:

  • Một tệp khóa bị đánh cắp mà không có mật khẩu có thể cấp quyền truy cập tức thời
  • Cụm mật khẩu hoạt động như một lớp mã hóa bổ sung trên khóa cục bộ của bạn

Cách thực hiện:

Đặt mật khẩu trong quá trình tạo khóa

ssh-keygen -t ed25519

(Bạn sẽ được nhắc nhập mật khẩu.)

Bảo vệ các tập tin quan trọng của bạn

Hạn chế quyền đối với thư mục .ssh và các tệp chính của bạn:

chmod 700 ~ / .ssh
chmod 600 ~ / .ssh / id_ed25519

Hãy xem xét các Mô-đun bảo mật phần cứng (HSM) hoặc Mã thông báo

Đối với các tổ chức lớn hơn, việc sử dụng phần cứng chuyên dụng để lưu trữ khóa có thể giảm thiểu rủi ro về trộm cắp phần mềm hoặc phần mềm độc hại.

Kết luận

Bảo mật SSH được tóm gọn lại thành nhiều lớp bảo vệ. Bằng cách triển khai xác thực dựa trên khóa, vô hiệu hóa quyền truy cập gốc trực tiếp, sử dụng mã hóa mạnh, luôn cập nhật, yêu cầu xác thực đa yếu tố, giám sát nhật ký, hạn chế quyền truy cập và bảo vệ khóa của bạn bằng cụm mật khẩu, bạn sẽ bảo vệ được những rủi ro phổ biến nhất (và nghiêm trọng nhất).

Các biện pháp này phù hợp với cùng triết lý bảo mật rộng hơn mà SSL.com ủng hộ cho chứng chỉ số: bảo vệ khóa mật mã, sử dụng mã hóa mạnh mẽ, hạn chế quyền truy cập đặc quyền và luôn cảnh giác giám sát hệ thống của bạn. Sau khi thiết lập các biện pháp thực hành tốt nhất cơ bản này, bạn có thể khám phá các tùy chọn nâng cao hơn như cơ quan cấp chứng chỉ SSH, port knocking hoặc chạy SSH qua VPN để điều chỉnh thêm tư thế bảo mật của bạn.

Luôn cập nhật thông tin và bảo mật

SSL.com là công ty hàng đầu thế giới về an ninh mạng, PKI và chứng chỉ số. Đăng ký để nhận tin tức, thủ thuật và thông báo sản phẩm mới nhất trong ngành từ SSL.com.

Chúng tôi rất mong nhận được phản hồi của bạn

Hãy tham gia cuộc khảo sát của chúng tôi và cho chúng tôi biết suy nghĩ của bạn về lần mua hàng gần đây của bạn.