PuTTY là một công cụ kết nối từ xa phổ biến, giúp người dùng truy cập và quản lý máy chủ từ xa một cách hiệu quả thông qua giao thức SSH, Telnet và nhiều giao thức khác. Đối với những ai làm việc trong lĩnh vực quản trị mạng hay lập trình viên, việc sử dụng PuTTY là không thể thiếu để duy trì kết nối ổn định và bảo mật. Trong bài viết này, VPSTTT sẽ hướng dẫn bạn cách cài đặt PuTTY một cách dễ dàng và nhanh chóng để bắt đầu công việc của mình.
Sơ lược về lịch sử của PuTTY
Đây chắc chắn là một trong những SSH client cho Windows lâu đời nhất. Ban đầu thì PuTTY được phát triển bởi Simon Tatham vào năm 1998. Đến năm 2000 thì chính thức hỗ trợ thêm SSH. Mãi đến 19 năm sau thì phần mềm vẫn chỉ đang ở giai đoạn beta, vì vậy có thể thấy quá trình phát triển PuTTY tương đối chậm. Phiên bản gần đây nhất được bổ sung thêm khả năng hỗ trợ mật mã đường cong e-lip. Ngoài ra, giao diện người dùng và các tính năng chính hầu như không thay đổi gì trong 15 năm gần đây.
Các phiên bản cũ hơn 0.66 có một số lỗ hổng bảo mật nhất định, do đó người dùng nên nâng cấp lên phiên bản mới hơn để bảo mật hệ thống.
- Buffer overflow trong SCP là một lỗ hổng stack overflow. Nếu server gặp lỗi thì nó có thể thực thi code trên client nếu có bất kỳ file nào được download. Ngoài ra lỗ hổng này cũng có thể bị khai thác bởi tấn công MITM (Man in the middle).
- Integer overflow liên quan đến việc gửi một chuỗi escape đến terminal. Đây là một lỗ hổng liên quan đến bộ nhớ.
PuTTY là một client vô cùng đa năng và đã được triển khai từ rất nhiều năm về trước. Tuy nhiên giao diện người dùng vẫn khá cũ nên nhiều người dùng gặp khó khăn trong việc sử dụng. Ngoài ra PuTTY cũng không cung cấp giao diện đồ họa để truyền file. Nếu bạn muốn tìm một giải pháp thay thế thì hãy cân nhắc sử dụng SSH client.
PuTTY là gì?
PuTTY là một phần mềm mã nguồn mở được sử dụng phổ biến để thực hiện kết nối từ xa đến các máy chủ qua các giao thức mạng như SSH (Secure Shell), Telnet, SCP (Secure Copy Protocol), và Rlogin. Đây là công cụ quan trọng đối với các quản trị viên hệ thống và lập trình viên, cho phép họ điều khiển và quản lý máy chủ từ xa một cách an toàn và hiệu quả. PuTTY hỗ trợ cả Windows và các hệ điều hành khác, cung cấp giao diện đơn giản, dễ sử dụng và các tùy chọn cấu hình mạnh mẽ để đáp ứng nhu cầu của người dùng.
PuTTY Portable là gì?
PuTTY Portable là phiên bản di động của PuTTY – một công cụ kết nối từ xa được sử dụng rộng rãi trong quản trị mạng và phát triển phần mềm. Phiên bản Portable cho phép người dùng mang theo phần mềm trên các thiết bị lưu trữ di động như USB, giúp họ dễ dàng sử dụng PuTTY trên nhiều máy tính khác nhau mà không cần cài đặt lại. Điều này đặc biệt hữu ích cho các chuyên gia công nghệ thường xuyên di chuyển hoặc làm việc trên nhiều hệ thống mà không muốn can thiệp vào cấu hình máy tính gốc.
Giống như phiên bản thông thường, PuTTY Portable hỗ trợ nhiều giao thức mạng như SSH, Telnet, SCP và Rlogin, giúp người dùng thực hiện kết nối bảo mật đến các máy chủ từ xa. Tuy nhiên, với phiên bản di động này, mọi thiết lập và thông tin kết nối đều được lưu trữ trên thiết bị di động, đảm bảo tính di động và bảo mật thông tin. PuTTY Portable có giao diện đơn giản và dễ sử dụng, phù hợp cho cả người dùng mới lẫn những chuyên gia dày dạn kinh nghiệm trong việc quản lý máy chủ và các hệ thống mạng.
Thành phần cấu trúc của PuTTY
PuTTY là một phần mềm mạnh mẽ và đa chức năng, được cấu trúc với nhiều thành phần hỗ trợ các nhu cầu kết nối mạng khác nhau. Dưới đây là những thành phần chính trong cấu trúc của PuTTY:
- PuTTY (Chính): Đây là thành phần cốt lõi của PuTTY, hoạt động như một client cho các giao thức SSH, Telnet, Rlogin và Serial. PuTTY chính là công cụ người dùng thường sử dụng để thiết lập và quản lý các kết nối từ xa với máy chủ. Nó cung cấp giao diện đồ họa đơn giản, giúp người dùng dễ dàng cấu hình các phiên làm việc và lưu trữ thông tin kết nối.
- PuTTYgen: PuTTYgen là một công cụ được tích hợp trong PuTTY để tạo và quản lý khóa SSH. Người dùng có thể sử dụng PuTTYgen để tạo ra các cặp khóa công khai và riêng tư nhằm đảm bảo kết nối an toàn giữa máy tính của họ và máy chủ từ xa. Công cụ này rất cần thiết cho việc thiết lập xác thực SSH không dùng mật khẩu và bảo vệ dữ liệu truyền tải.
- PSCP (PuTTY Secure Copy Protocol): PSCP là công cụ dòng lệnh của PuTTY dùng để sao chép file một cách bảo mật giữa máy tính cục bộ và máy chủ từ xa thông qua giao thức SCP. Đây là một công cụ rất hữu ích cho các quản trị viên hệ thống cần truyền tải file một cách an toàn mà không cần phải thiết lập thêm phần mềm phức tạp.
- PSFTP (PuTTY SFTP Client): PSFTP là một client dòng lệnh hỗ trợ giao thức SFTP, được sử dụng để truyền và quản lý file qua các kết nối SSH. PSFTP cung cấp các tính năng như duyệt thư mục từ xa, tải lên và tải xuống file, giúp người dùng dễ dàng xử lý tệp tin trên máy chủ mà vẫn giữ được tính bảo mật.
- Plink (PuTTY Link): Plink là một công cụ dòng lệnh hỗ trợ các phiên kết nối không cần giao diện đồ họa, thích hợp cho việc sử dụng trong các script và tự động hóa tác vụ. Plink có thể được dùng để chạy các lệnh từ xa, tạo các phiên SSH tự động, và tích hợp với các công cụ khác để hỗ trợ quá trình triển khai ứng dụng hoặc bảo trì hệ thống.
- Pageant (PuTTY Authentication Agent): Pageant là một thành phần quan trọng của PuTTY dùng để quản lý khóa SSH và hoạt động như một trình đại diện xác thực. Pageant lưu trữ khóa SSH trên bộ nhớ và cung cấp chúng cho các phiên PuTTY hoặc Plink khi cần, giúp việc xác thực trở nên liền mạch và không cần nhập lại mật khẩu mỗi lần thực hiện kết nối.
- KiTTY: Mặc dù không phải là một thành phần chính thức của PuTTY, KiTTY là một phiên bản mở rộng của PuTTY với các tính năng bổ sung, giúp cải thiện trải nghiệm người dùng. KiTTY bao gồm khả năng lưu phiên làm việc tự động, tabbed browsing, và nhiều tính năng tùy chỉnh khác.
- Các Tính Năng Bổ Sung: Ngoài những thành phần chính, PuTTY còn hỗ trợ một loạt các tính năng và tùy chọn cấu hình như điều chỉnh kích thước cửa sổ, mã hóa ký tự, thay đổi cài đặt màu sắc và font chữ, điều chỉnh kết nối mạng, và các tính năng bảo mật khác. Những tùy chọn này giúp người dùng tối ưu hóa trải nghiệm làm việc với các máy chủ từ xa.
Với cấu trúc này, PuTTY không chỉ là một công cụ kết nối mạng đơn giản mà còn là một bộ công cụ toàn diện hỗ trợ quản trị mạng và các chuyên gia IT xử lý các tác vụ từ xa một cách linh hoạt, bảo mật và hiệu quả.
Các tính năng của PuTTY
Một số tính năng nổi bật của PuTTY gồm:
- Có Windows client và Mac, Linux port. PuTTY không có server đi kèm.
- Có thể hỗ trợ Windows 32-bit và 64-bit. Kể từ 2016 thì còn có thêm trình cài đặt MSI.
- Cho phép hỗ trợ SSH client, Telnet client và rlogin client. Ngoài ra PuTTY cũng hỗ trợ giao thức SSH2 và SS1 (trong đó SSH1 không được khuyến khích sử dụng vì khả năng bảo mật không quá tốt). Trên thực thì mọi thiết bị hiện nay đều có khả năng hỗ trợ SSH2.
- Hỗ trợ xác thực public key và xác thực active directory/Kerberos.
- Truyền file bằng một chương trình command-line riêng biệt.
- Không hỗ trợ scripting nhưng vẫn có thể dùng được với WinSCP.
- Xác thực chức năng Kerberos/GSSAPI trong SSH-2.
- Hỗ trợ Local X11 trên hệ điều hành Windows.
- Cho phép các phông chữ không cố định theo chiều rộng hiển thị trên Windows.
- Hỗ trợ GTK 2 trên Unix.
- Có khả năng tìm ra tên Host logical của hệ thống phần cứng và địa chỉ cụ thể để kết nối.
- Cho phép nén zlib@openssh.com SSH-2.
- Hỗ trợ thay đổi kích cỡ cửa sổ khi đang ở trong chế độ Aero trong Windows 7
- Hỗ trợ cơ chế mã hóa các khóa private theo chuẩn AES trong OpenSSH.
- Sửa lỗi khóa private trong OpenSSH bằng số thứ tự và số nguyên.
- Khắc phục lỗi khi thực hiện forward cổng.
- Sửa lỗi trong quá trình tắt ứng dụng.
- Sửa lỗi hệ thống bị treo khi gửi đi 1 loạt tín hiệu qua cổng backend trong Windows.
Phân tích các đặc tính PuTTY cơ bản
Cửa sổ giao diện
PuTTY có giao diện được mô phỏng xuất sắc, mang đến trải nghiệm mượt mà cho người dùng. Phần mềm còn hỗ trợ nhiều thuật toán mã hóa tiên tiến, đảm bảo bảo mật cho các kết nối từ xa, giúp người dùng yên tâm thực hiện các thao tác quan trọng. Bên cạnh đó, PuTTY hỗ trợ các giao thức phổ biến như SSH, Telnet và TCP/IP, mở ra khả năng kết nối với nhiều thiết bị và hệ thống khác nhau.
Chuyển giao file
Thông thường, giao diện người dùng không bao gồm client truyền tệp tích hợp sẵn. Tuy nhiên, các công cụ dòng lệnh như PSFTP hay PSCP vẫn được cung cấp và sử dụng trong quá trình chuyển giao file. Dù vậy, phần lớn những người dùng không có kiến thức công nghệ chuyên môn thường không thích việc sử dụng câu lệnh.
Thay vào đó, người dùng có thể sử dụng WinSCP và FileZilla để truyền file khi kết hợp với PuTTY. Khi sử dụng hai phần mềm này, việc chuyển đổi để thực hiện các hành động, quản lý hồ sơ và đăng nhập thường gây thêm nhiều phiền toái. Hiện nay, WinSCP có thể import các cấu hình PuTTY, nhưng mỗi phần mềm yêu cầu các đăng nhập riêng biệt.
Xác minh public key
PuTTY sử dụng định dạng tệp riêng (.ppk) cho khóa SSH, giúp bảo mật kết nối từ xa. Công cụ PuTTYgen sử dụng để tạo khóa mới, chuyển đổi giữa các tệp .ppk lưu trữ khóa SSh và các định dạng khóa khác. Tình trạng hacker và phần mềm độc hại thu thập các khóa SSH khi thâm nhập vào một tổ chức rất thường gặp. Do đó, việc quản lý các khóa SSH đúng cách vô cùng quan trọng. Universal SSH Key Manager chính là giải pháp quản lý khóa SSH duy nhất hỗ trợ các tệp .ppk. Với Universal SSH Key Manager, bạn có thể quản lý tập trung, an toàn và hiệu quả tất cả khóa SSH của mình, giúp bảo vệ hệ thống khỏi các mối đe dọa an ninh mạng.
Hỗ trợ telnet
PuTTY hỗ trợ giao thức Telnet vì nó được phát triển từ một Telnet client. Tuy nhiên, Telnet có nhược điểm lớn là không bảo mật, khiến tên và mật khẩu của người dùng dễ bị đánh cắp. Cụ thể, vào giữa những năm 1990, các cuộc tấn công đánh cắp mật khẩu đã trở thành vấn đề bảo mật đáng báo động trên Internet. Lúc này, SSH chính thức được ra đời để giải quyết vấn nạn này. Các bộ định tuyến, chuyển mạch hoặc các cuộc tấn công ARP cũng có thể được sử dụng nhằm mục đích truyền các lệnh tùy ý vào các telnet session.
Một phiên bản gọi là PuTTYtel được sử dụng cho các quốc gia không cho phép sử dụng mã hóa. Tuy nhiên, hiện nay SSH đã được sử dụng ở tất cả các quốc gia, có thể chính thức hoặc không chính thức. Các hệ thống hầu hết không còn được quản lý mà không cần mã hóa. Không bảo mật mạng trong một môi trường mạng không có mã hóa. PuTTY cũng hỗ trợ kết nối đến các port nối tiếp và raw socket. Việc này có thể mang lại hữu ích khi debug và làm việc với một số thiết bị cũ.
Các lỗ hổng an ninh
Đặc tính cuối cùng của phần mềm PuTTY là lỗ hổng an ninh, cụ thể như sau:
- Buffer overflow (tràn bộ nhớ đệm): Đây là lỗ hổng mã từ xa, một máy chủ bị hỏng có thể thực thi mã trên máy khách khi có tệp tải xuống.
- Tràn số nguyên trong xử lý thoát chuỗi thiết bị đầu cuối: Đây là một lỗi bộ nhớ và lỗ hổng thực thi mã từ xa có liên quan đến việc gửi một chuỗi thoát tới thiết bị đầu cuối.3
Cập nhật bảo mật và tính năng mới của PuTTY 0.75
Phiên bản PuTTY 0.75 được phát hành vào ngày 08/05/2021 mang đến nhiều cải tiến quan trọng về bảo mật và trải nghiệm người dùng với những điểm nổi bật dưới đây:
- Về việc khắc phục lỗi bảo mật, máy chủ ở bản 0.75 có thể DoS toàn bộ giao diện Windows GUI bằng cách gửi thông báo cho cửa sổ PuTTY thay đổi tiêu đề lặp đi lặp lại ở tốc độ cao.
- Ở lần sử dụng đầu tiên, Pageant có thể tải key ở trạng thái mã hóa, rồi giải mã nó bằng mật khẩu. Sau khi giải key, người dùng có thể truy cập thoải mái mà không cần phải thực hiện bước giải mã như phiên bản trước.
- Nâng cấp định dạng vân tay SSH key mặc định sang dạng OpenSSH-style SHA-256.
- Nâng cấp định dạng file key riêng tư sang PPK3, tăng độ bảo mật của mật khẩu và không còn sử dụng SHA-1.
- Đầu cuối hỗ trợ ESC [ 9 m để định dạng văn bản gạch ngang.
- Có thêm giao thức mới là lớp kết nối ssh không sử dụng mật khẩu, áp dụng cho kênh IPC đã được bảo mật an toàn, và SUPDUP khi dùng trên hệ thống cũ kiểu PDP-10s.
- PuTTYgen đã có thuật toán hệ provable-prime thay vì sử dụng RSA và DSA ở phiên bản trước.
- Unix có thể kết nối trực tiếp tới Unix-domain socket.
PuTTY là công cụ không thể thiếu cho quản trị viên và lập trình viên khi cần kết nối và quản lý máy chủ từ xa một cách an toàn. Với các thành phần và tính năng đa dạng, PuTTY hỗ trợ hiệu quả cho công việc quản trị mạng của bạn. VPSTTT khuyến khích sử dụng PuTTY để nâng cao hiệu suất và tính bảo mật trong quản lý hệ thống từ xa.