Trao đổi với tôi

http://www.buidao.com

10/1/09

[Hacking] Bảo mật SSH với chứng thực khóa công khai / khóa riêng

Bảo mật SSH với chứng thực khóa công khai / khóa riêng

Bảo mật SSH với chứng thực khóa công khai / khóa riêng (Secure SSH with Public/Private key authentification)

SSH là một công cụ tuyệt vời, không một quản trị hệ thống nào có thể bỏ qua. Sử dụng SSH bạn có thể kết nối tới máy chủ và làm tất cả mọi việc với no.
Bài viết này tôi tập trung vào việc giới thiệu : làm sao tạo và sử dụng Public/Private key trong truy cập qua giao thức SSH.
Đây là kỹ thuật khá cơ bản nhưng tỏ ra cực kỳ hiệu quả, mang lại sự an toàn cao đối với hệ thống của bạn.
Sử dụng Public/Private key authentification bạn có thể tránh được:
- tấn công dò mật khẩu (bruce password scan)
- bảo vệ mật khẩu root

Trong các bản phân phối hiện nay hầu hết đều được tích hợp sẵn OpenSSH. Phiên bản SSH hiện nay là SSH2. SSH2 khác nhiều so với SSH1 và an toàn hơn.

1. Sinh khóa công khai và khóa riêng (Generating a Public/Private Key Pair)
Việc sinh khóa này bạn có thể thực hiện trên máy cá nhân hoặc thực hiện trên máy server. Có thể dùng công cụ hay dùng chính công cụ sinh khóa của ssh. Điều quan trọng nhất là : bạn phải giữ bí mật khóa riêng của bạn. (vì sao thì bạn có thể tìm hiểu lý thuyết vầ khóa công khai)
Cú pháp :

ssh-keygen -t rsa -b 2048 -f /root/.ssh/guru_rsa_key -C "Guru Server" -N "Password"


Các tham số:
-t : loại mã hóa
-b : kích thước của khóa
-f : đầu ra của file sinh ra
-C : comment
-N : Khóa phiên (passphrase)

Sau khi tạo xong khóa bạn sẽ nhận được 2 file: guru_rsa_key và guru_rsa_key.pub
Cả 2 file này bạn nên lưu giữ cẩn thận, đặc biệt là file guru_rsa_key là khóa riêng của bạn.

2. Thêm khóa công khai vào danh sách khóa cho phép của server

Copy file vào thư mục ~/.ssh/ của server. Nếu bạn tạo khóa trên server thì nên xóa file khóa riêng đi. Nếu bạn tạo từ máy trạm thì chỉ cần upload file khóa công khai lên thư mục trên của server.
Tiếp theo cần thêm khóa này vào danh sách khóa công khai của server.
File danh sách khóa này là file : ~/.ssh/authorized_keys hoặc ~/.ssh/authentication.
Cú pháp :
echo "KEY" >> ~/.ssh/authorized_keys
cat guru_rsa_key.pub >> ~/.ssh/authorized_keys

3. Kích hoạt và sử dụng khóa công khai và khóa riêng

Mở file config của ssh thường là : /etc/ssh/sshd_config
Sửa các tham số :
PubkeyAuthentication yes

tắt chức năng đăng nhập từ xa bằng mật khẩu:
PasswordAuthentication no

Khởi động lại sshd hoặc reload lại.

service sshd restart
hoặc
/etc/init.d/sshd restart
/etc/init.d/sshd reload

Lưu ý : nếu bạn đang làm với server remote thì khi reload lại không nên đóng hết các kết nối, nếu có lỗi bạn sẽ mất các kết nối tư xa (lúc này mà lọ mọ chạy đến chỗ server thì mệt lắm big grin )

Tham khảo :
http://en.wikipedia.org/wiki/Secure_Shell
http://www.openssh.com

Goodluck!

(Tác giả:Phạm Đức Hải)