Cài đặt và cấu hình SSH từ cơ bản đến nâng cao trong Linux Server (phần 2)

Để cài đặt và cấu hình cơ bản SSH, các bạn nên xem qua bài viết này: Cài đặt và cấu hình SSH từ cơ bản đến nâng cao trong Linux Server (phần 1)

Trong bài viết này, mình sẽ hướng dẫn các bạn cách cấu hình một số tùy chọn nâng cao cho SSH để bảo mật cho server.

1. Đổi port SSH sang port khác

Mặc định SSH hoạt động trên port 22, Để tăng thêm tính bảo mật cho Server, các bạn nên thay đổi port đăng nhập SSH sang một port khác.

Để thay đổi, bạn thực hiện theo các bước sau:

– Bước 1: Login bằng tài khoản root hoặc tài khoản có quền sudo

– Bước 2: Mở file cấu hình ssh để chỉnh sửa:


vim /etc/ssh/sshd_config

– Bước 3: Tìm kiếm dòng #Port 22, bỏ dấu # ở đầu và thay bằng port bạn muốn dùng.

– Bước 4: Khởi động lại dịch vụ SSH để hệ thống cập nhật thay đổi


systemctl restart sshd.service

2. Sử dụng một tài khoản khác không phải tài khoản root để login từ xa

Ngoài việc sử dụng tài khoản mặc định cấp cao là root, bạn nên định nghĩa tên một tài khoản quản trị cho riêng mình và cho phép tài khoản này được login từ xa qua SSH.

Trong khi đó tài khoản root bạn nên ngắt không cho truy cập qua SSH. Bạn có thể xem qua bài viết này để biết cách enable/disable tài khoản root trên máy chủ Ubuntu: Cho phép tài khoản ROOT đăng nhập từ xa qua SSH trên máy chủ Ubuntu

3. Không cho phép login bằng mật khẩu và thay bằng việc sử dụng private/public key

Ngoài cách login qua SSH sử dụng password theo cách thông thường, bạn có thể sử dụng cách bảo mật hơn bằng việc sử dụng cặp private/public key và chặn việc đăng nhập bằng password.

Để tạo cặp key dùng login qua SSH, bạn thực hiện như sau:

– Bước 1: tạo ra cặp key trên máy client (máy mà bạn muốn dùng login ssh vào server)

Sử dụng lệnh sau để tạo ssh key:


ssh-keygen

Mặc định thì hệ thống sẽ tạo SSH key loại RSA với số bit mã hóa là 2048. Bạn có thể thay đổi bằng một số tùy chọn như sau:

  • -t: khai báo loại key mà bạn muốn tạo, có thể là rsa, dsa, ecdsa và ed25519.
  • -b: đây là số bit mã hóa của khóa
    • RSA: tối thiểu là 1024 và tối đa là 16384 bits.
    • DSA: 1024 bits.
    • ECDSA: 256, 384 hoặc 521 bits.
    • Ed25519: 256 bits.
  • -C: comment cho khóa, về mục đích sử dụng của khóa, hoặc một nội dung gì đó.

Ví dụ, mình muốn tạo SSH key loại RSA 4096 bits, sử dụng lệnh sau:

ssh-keygen -t rsa -b 4096 -C "comment_here"

(Trong trường hợp bạn dùng máy windows, bạn có thể tạo key bằng cách sử dụng phần mềm Putty)

Sau khi chạy lệnh trên, mặc định SSH key sẽ được lưu trong thư mục .ssh của user tạo ra (ví dụ /home/tuanna/.ssh/). Bạn vào thư mục .ssh sẽ thấy có 2 file là id_rsa và id_rsa.pub lần lượt tương ứng với private key và public key.

Công việc tiếp theo bạn là add public key lên server.

– Bước 2: add public key tạo ra trên máy client lên máy server

Bạn cần login vào server và thực hiện theo các bước sau:

  • Tạo thư mục .ssh tại thư mục home của user (tài khoản bạn dùng ssh vào server):
mkdir ~/.ssh
  • Tạo file authorized_keys trong thư mục .ssh vừa tạo ở trên:
vim ~/.ssh/authorized_keys

=> copy toàn bộ nội dung trong file id_rsa.pub ở bước 1 và lưu vào file này.

  • Thiết lập quyền cho thư mục và file ở trên:
chmod -R 700 ~/.ssh

Vậy là bạn đã thiết lập xong trên máy chủ.

– Bước 3: khởi động lại dịch vụ SSH trên máy server để hệ thống cập nhật thay đổi

Khởi động lại dịch vụ SSH trên server:
systemctl restart sshd.service

Bây giờ, bạn có thể sử dụng lệnh SSH trên terminal để kiểm tra hệ thống đã login được bằng private/public key chưa. Nếu máy client của bạn không tự nhận diện private/public key thì bạn cần thực hiện lệnh SSH như sau:

ssh -p 22 -i ~/.ssh/id_rsa user@ip_server

Trong đó:

  • ssh: đây là lệnh sử dụng để kết nối SSH
  • -p: (port)sử dụng tùy chọn này nếu bạn muốn chỉ định một cổng SSH khác (nếu bạn đã thay đổi port).
  • -i: gán thêm tùy chọn này nếu như bạn muốn sử dụng SSH key. ~/.ssh/id_rsa: đây là đường dẫn của private key.
  • user@ip_server: đây là user và địa chỉ IP của server mà bạn muốn kết nối đến (bạn cũng có thể sử dụng domain)

Nếu kết nối thành công thì bạn đã thực hiện đúng. Sau cùng, để không cho phép người dùng login qua SSH sử dụng password, bạn cần mở file cấu hình sshd như mục số 1 trên đây, sau đó tìm dòng #PasswordAuthentication yes và sửa “yes” thành “no” là xong.

Chúc các bạn thành công.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *