Cấu hình chứng thực SSH trong Linux

SSH (Secure Shell) là một giao thức mạng dùng để thiết lập kết nối và quản trị mạng một cách bảo mật hoạt động trong môi trường Unix (tương tự như remote desktop của windows). SSH hoạt động ở lớp TCP/IP. Các công cụ SSH (như là OpenSSH, …) cung cấp cho người dùng cách thức để thiết lập kết nối mạng được mã hoá để tạo một kênh kết nối riêng tư.

SSH là một chương trình tương tác giữa máy chủ và máy khách có sử dụng cơ chế mã hoá đủ mạnh nhằm ngăn chặn các hiện tượng đánh cắp thông tin trên đường truyền (Sniffer).
Một số chương trình remote login trước đây không sử dụng cơ chế mã hóa như : telnet, rlogin. Rất dể bị đánh cắp thông tin ( chụp lại toàn bộ nội dung của phiên làm việc bằng cách sử dụng một số công cụ đơn giải như WireShark chẳng hạn). Vì thế sử dụng SSH là biện pháp bảo mật dữ liệu hiệu quả trên đường truyền từ hệ thống này đến hệ thống khác.

- Cơ chế làm việc của SSH thông qua 3 bước đơn giản:
1 = > Định danh host – xác định host (ip) của hệ thống tham gia phiên làm việc SSH.
2 = >Mã hoá – thiết lập kênh làm việc mã hoá.
3 => Chứng thực – xác thực người sử dụng có quyền đăng nhập hệ thống.

- Kiểm tra xem trên hệ thống có cài đặt ssh hay chưa, nếu chưa ta có thể dùng lệnh sau để cài đặt trực tiếp từ internet

MÃ: CHỌN TẤT CẢ
# rpm -qa | grep ssh                  // lệnh kiểm tra
# yum  install  ssh  -y                          // lệnh cài từ internet

+ moduli : Chứa một nhóm Diffie-Hellman được sử dụng cho việc trao đổi khóa Diffie-Hellman, nó thực sự quan trọng để xây dựng một lớp bảo mật ở tầng vận chuyển dữ liệu.Khi các khóa được trao đổi với nhau bắt đấu ở một phiên kết nối SSH, một share secret value được tạo ra và không thể xác định bởi một trong hai bên kết nối, giá trị này sau đó sẽ được dùng để cung cấp chứng thực cho host.
+ ssh_config: file cấu hình mặc định cho SSH client của hệ thống.
+ sshd_config: File cấu hình chính cho ssh deamon.
+ ssh_host_dsa_key: DSA private key được sử dụng với ssh deamon.
+ ssh_host_dsa_key.pub: DSA public key được sử dụng bởi ssh deamon.
+ ssh_host_key: RSA private key được sử dụng bởi ssh deamon cho phiên bản 1 của giao thức SSH.
+ ssh_host_key.pub: RSA public key được sử dụng bởi ssh deamon cho phiên bản 1 của giao thức SSH.
+ ssh_host_rsa_key: RSA private key được sử dụng bởi ssh deamon cho phiên bản 2 của giao thức SSH.
+ ssh_host_rsa_key.pub: RSA public key được sử dụng bởi ssh deamon cho phiên bản 2 của giao thức SSH.

I. Cấu hình sshd chứng thực bằng mật khẩu ( Password Authentication )

MÃ: CHỌN TẤT CẢ
#vi /etc/ssh/sshd_config

tìm và thay đổi những nội dung các dòng sau như bên dưới :
PermitRootLogin yes
PermitEmptyPasswords no
PasswordAuthentication yes

Nếu bạn muốn truy cập ssh từ một số user chỉ định, bạn thêm vào dòng sau
AllowUsers user1 user2 user3 user4 user5

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

MÃ: CHỌN TẤT CẢ
# service sshd  restart

- Trên windows ta có thể dùng putty ( download tại đây http://the.earth.li/~sgtatham/putty/lat … /putty.exe ) để kết nối ssh đến hệ thống linux để login và điều khiển chúng. SSH sử dụng port 22 cho các kết nối từ xa

Trong bài demo này tôi sử dụng host có ip là : 192.168.1.100. Nhập ip (host ) & port như hình bên dưới , sau đó click chọn open

Sau khi chọn open sẽ xuất hiện 1 hộp thoại thông báo đăng nhập, lúc này bạn nhập tên user & pass cần login : ở đây tôi nhập user/pass của root


II . Cấu hình sshd chứng thực bằng khóa ( Keys Authentication )

Khác với chứng thực bằng mật khẩu, ở đây ta sẽ cấu hình SSH Server cho phép chứng thực người dùng thông qua khóa
Ta sẽ tạo ra cặp khóa Public key & Private key bằng thuật toán RSA hoặc DSA.
+ Public key : Sử dụng cho Server
+ Private key : Sử dụng cho Client
Thuật toán này hổ trợ cặp khóa tạo ra cho độ dài max là 2048 bit
Muốn tạo khóa login cho user nào thì ta login ssh bằng user đó, sau khi logion thành công ta chạy lệnh sau để tạo khóa

MÃ: CHỌN TẤT CẢ
# ssh-keygen  -t  rsa  -b 1024       // tạo khóa bằng rsa có độ dài 1024 bit

Hoặc

MÃ: CHỌN TẤT CẢ
# ssh-keygen  -t  dsa  -b 1024       // tạo khóa bằng dsa có độ dài 1024 bit

Xem hình bên trên ta mới vừa thực hiện xong việc tạo khóa cho user root

Mặt định thì cặp key tạo ra được lưu trong /home/diruser/.ssh của từng user cụ thể ở trong hướng dẫn này là :
/root/.ssh/id_rsa ==> Private Key
/root/.ssh/id_rsa.pub ==> Public Key

Bước tiếp theo ta sẽ thực hiện một số lệnh cần thiết sau để đổi tên file cho hợp lệ
+ Đối với id_rsa.pub đổi tên thành authorized_keys và chmod về 600

+ Đối với key id_rsa

MÃ: CHỌN TẤT CẢ
#  vi /root/.ssh/id_rsa

Copy toàn bộ nộ dung file này (file id_rsa ) và lưu lại trên máy sử dụng windows với tên là Private Key
Sau đó chuyển qua người dùng root (nếu đang login với 1 user khác root ) chỉnh sửa lại file sshd_config với nội dung thay đổi như sau :

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

MÃ: CHỌN TẤT CẢ
# service sshd restart

Trên máy sử dụng windows ta mở puttygen ( dowload tại đây http://the.earth.li/~sgtatham/putty/lat … ttygen.exe ) và làm theo hướng dẫn để load file Private Key

Sau đó chọn đường dẫn chỉ đến nơi lưu file Private Key đã thực hiện ở trên. Nhập pass nếu có ( pass này được thiết lập trong bước tạo key bằng lệnh # ssh-keygen -t rsa )

Tiếp theo chọn Save private key và lưu file với tên keyssh.ppk
Mở putty >> ở phần secsion ta nhập ip của ssh server >> Chuyển xuống phần SSH >>> Auth >>>> chọn browser chỉ đến nơi lưu cất file keyssh.ppk >> Chọn open

Quan sát ta thấy quá trình login vào ssh server chứng thực bằng key thành công

Bài viết này có ích cho bạn không? 5 phiếu cảm nhận dễ hiểu & thực hiện (10 Phiếu)