Với những người đang bắt đầu tìm hiểu cách sử dụng hệ điều hành UNIX, đầu tiên bạn cần phải hiểu khái niệm và cách thức sử dụng công cụ và câu lệnh thông qua giao thức SSH phổ biến này, vậy SSH là gì? tại sao nó lại có ý nghĩa quan trọng như vậy?
SSH là gì?
SSH là một giao thức đăng nhập vào máy chủ từ xa, cho phép quản trị viên kiểm soát, chỉnh sửa và quản trị dữ liệu của server. SSH là một ứng dụng 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 nghe trộm, đánh cắp thông tin trên đường truyền. Các chương trình trước đây: telnet, rlogin không sử dụng phương pháp mã hoá. Vì thế bất cứ ai cũng có thể nghe trộm thậm chí đọc được 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ản. Sử dụng SSH là biện pháp hữu hiệu bảo mật dữ liệu trên đường truyền từ hệ thống này đến hệ thống khác.
Cách thức hoạt động của SSH
SSH làm việc thông qua 3 bước đơn giản:
* Định danh host – xác định định danh của hệ thống tham gia phiên làm việc SSH.
* Mã hoá – thiết lập kênh làm việc mã hoá.
* Chứng thực – xác thực người sử dụng có quyền đăng nhập hệ thống.
Định danh host
Việc định danh host được thực hiện qua việc trao đổi khoá. Mỗi máy tính có hỗ trợ kiểu truyền thông SSH có một khoá định danh duy nhất. Khoá này gồm hai thành phần: khoá riêng và khoá công cộng. Khoá công cộng được sử dụng khi cần trao đổi giữa các máy chủ với nhau trong phiên làm việc SSH, dữ liệu sẽ được mã hoá bằng khoá công khai và chỉ có thể giải mã bằng khoá riêng. Khi có sự thay đổi về cấu hình trên máy chủ: thay đổi chương trình SSH, thay đổi cơ bản trong hệ điều hành, khoá định danh cũng sẽ thay đổi. Khi đó mọi người sử dụng SSH để đăng nhập vào máy chủ này đều được cảnh báo về sự thay đổi này. Khi hai hệ thống bắt đầu một phiên làm việc SSH, máy chủ sẽ gửi khoá công cộng của nó cho máy khách. Máy khách sinh ra một khoá phiên ngẫu nhiên và mã hoá khoá này bằng khoá công cộng của máy chủ, sau đó gửi lại cho máy chủ. Máy chủ sẽ giải mã khoá phiên này bằng khoá riêng của mình và nhận được khoá phiên. Khoá phiên này sẽ là khoá sử dụng để trao đổi dữ liệu giữa hai máy. Quá trình này được xem như các bước nhận diện máy chủ và máy khách.
Mã hoá
Sau khi hoàn tất việc thiết lập phiên làm việc bảo mật (trao đổi khoá, định danh), quá trình trao đổi dữ liệu diễn ra thông qua một bước trung gian đó là mã hoá/giải mã. Điều đó có nghĩa là dữ liệu gửi/nhận trên đường truyền đều được mã hoá và giải mã theo cơ chế đã thoả thuận trước giữa máy chủ và máy khách. Việc lựa chọn cơ chế mã hoá thường do máy khách quyết định. Các cơ chế mã hoá thường được chọn bao gồm: 3DES, IDEA, và Blowfish. Khi cơ chế mã hoá được lựa chọn, máy chủ và máy khách trao đổi khoá mã hoá cho nhau. Việc trao đổi này cũng được bảo mật dựa trên đinh danh bí mật của các máy. Kẻ tấn công khó có thể nghe trộm thông tin trao đổi trên đường truyền vì không biết được khoá mã hoá. Các thuật toán mã hoá khác nhau và các ưu, nhược điểm của từng loại:
* 3DES (cũng được biết như triple-DES) — phương pháp mã hoá mặc định cho SSH.
* IDEA — Nhanh hơn 3DES, nhưng chậm hơn Arcfour và Blowfish.
* Arcfour — Nhanh, nhưng các vấn đề bảo mật đã được phát hiện.
* Blowfish — Nhanh và bảo mật, nhưng các phương pháp mã hoá đang được cải tiến.
Chứng thực
Việc chứng thực là bước cuối cùng trong ba bước, và là bước đa dạng nhất. Tại thời điểm này, kênh trao đổi bản thân nó đã được bảo mật. Mỗi định danh và truy nhập của người sử dụng có thể được cung cấp theo rất nhiều cách khác nhau. Chẳng hạn, kiểu chứng thực rhosts có thể được sử dụng, nhưng không phải là mặc định; nó đơn giản chỉ kiểm tra định danh của máy khách được liệt kê trong file rhost (theo DNS và địa chỉ IP). Việc chứng thực mật khẩu là một cách rất thông dụng để định danh người sử dụng, nhưng ngoài ra cũng có các cách khác: chứng thực RSA, sử dụng ssh-keygen và ssh-agent để chứng thực các cặp khoá.
Kết luận
Hiểu rõ về SSH là gì và làm thế nào SSH hoạt động được có thể giúp bạn hiểu thêm về công nghệ bảo mật. Hầu hết mọi người tưởng quá trình này là phức tạp và không tài nào hiểu nổi, nhưng nó đơn giản hơn mọi người nghĩ nhiều. Nếu bạn không biết một máy tính mất bao lâu để tính ra một hash và chứng thực user, thì trên thực tế nó chỉ mất ít hơn một giây. Lượng thời gian trên internet chủ yếu là do việc truyền dữ liệu từ xa.
Hy vọng với bài hướng dẫn SSH là gì này, chúng tôi đã giúp bạn có cái nhìn khác về công nghệ và nó là thành tố chính để bạn tạo một hệ thống mạnh mẽ và bảo mật. Cũng vì lẽ đó, bạn đã hiểu vì sao Telnet đã là quá khứ và vì sao SSH đã chiếm lấy mọi chỗ đứng của nó.
Nếu bạn đang bắt đầu tìm hiểu về hệ thống có thể tham khảo dịch vụ VPS GIÁ RẺ của HOSTVN để bắt đầu làm quen cách sử dụng SSH cơ bản nhé.
[…] bài viết này tôi sẽ hướng dẫn bạn thay đổi thông tin port mặc định của SSH để giảm thiểu các rủi ro […]