Telnet

**TELNET** (viết tắt của Terminal network) là một giao thức mạng (*network protocol*) được dùng trên các kết nối với Internet hoặc các kết nối tại mạng máy tính cục bộ LAN. Tài liệu của IETF, STD 8, (còn được gọi là RFC 854 và RFC 855) có nói rằng:

*Mục đích của giao thức TELNET là cung cấp một phương tiện truyền thông chung chung, có tính lưỡng truyền, dùng độ rộng 8 [[bit]], định hướng byte.*

TELNET thường được dùng để cung cấp những phiên giao dịch đăng nhập, giữa các máy trên mạng Internet, dùng dòng lệnh có tính định hướng người dùng. Tên của nó có nguồn gốc từ hai chữ tiếng Anh "telephone network" (*mạng điện thoại*), vì chương trình phần mềm được thiết kế, tạo cảm giác như một thiết bị cuối được gắn vào một máy tính khác.

Đối với sự mở rộng của giao thức, chữ "telnet" còn ám chỉ đến một chương trình ứng dụng, phần người dùng của giao thức - hay còn gọi là trình khách (clients). Trong bao nhiêu năm qua, TELNET vốn được cài đặt sẵn trong hầu hết các hệ điều hành Unix, song với sự tiến triển gần đây của mình, SSH (*Secure Shell*) trở nên một giao thức có ưu thế hơn trong việc truy cập từ xa, cho các máy dùng hệ điều hành có nền tảng là Unix. SSH cũng được cài đặt sẵn cho hầu hết các loại máy vi tính. Trên rất nhiều hệ thống, chương trình ứng dụng "telnet" còn được dùng trong những phiên giao dịch tương tác TCP ở dạng sơ đẳng (*interactive raw-[[TCP]] sessions*), và còn được dùng để thông nối với những dịch vụ trên các máy chủ POP3, mà không cần đến những trình khách chuyên dụng.
Cụm từ tiếng Anh "to telnet" còn được dùng như là một động từ, có nghĩa là "thành lập" hoặc "sử dụng", một kết nối dùng giao thức *TELNET*, như trong câu "To change your password, telnet to the server and run the passwd command" - (*Để đổi mật khẩu của mình, telnet vào máy chủ và chạy dòng lệnh [[passwd]]*).

Cụm từ trên còn có nghĩa là kết nối, theo thể thức mới, với Telnet Bulletin Board Systems - Hệ thống bảng tin Telnet - (mà một thời chỉ dùng kết nối quay số (dialup), trong những năm giữa 1980 và 1990), là kết nối cho phép sử dụng TCP/IP, cho những người còn luyến tiếc nó, cũng như hỗ trợ tất cả các giao thức nổi tiếng và các giao thức thường được dùng trên mạng Internet hiện nay, như là một bộ máy chủ, đa giao thức, toàn năng.

## Chi tiết của giao thức

TELNET là một giao thức khách-chủ (*client-server protocol*), dựa trên nền TCP, và phần khách (người dùng) thường kết nối vào cổng 23 với một máy chủ, nơi cung cấp chương trình ứng dụng thi hành các dịch vụ. Người ta cũng có thể sử dụng chương trình ứng dụng TELNET, để thiết lập một kết nối TCP tương tác của giao thức, và đồng thời còn có thể dùng nó để định nghĩa những thực thi mở rộng. Rất nhiều mở rộng của giao thức đã hoàn thành và một số những thực thi trong đó đã được chấp nhận là tiêu chuẩn của Internet. Tài liệu số 27 đến 32 của IETF STD định nghĩa những mở rộng của TELNET (phần đông trong số đó là những cái đang được dùng rất phổ biến). Trong số những mở rộng còn lại, những cái có tác dụng nhất, rất có thể là những cái vốn là những dự thảo tiêu chuẩn, lại là những cái đang trên đà trở thành tiêu chuẩn của IETF. Chi tiết về chúng có thể được tìm thấy ở trang STD 1.

## Bảo mật

Nếu cân nhắc về bảo mật vi tính (*computer security*) thì TELNET là một giao thức không nên dùng, do ba nguyên nhân chính sau đây:

* Trong nhiều năm qua, một số điểm yếu (*vulnerability*) trong các daemon của TELNET đã bị người ta phát hiện, và có thể vẫn còn những điểm yếu tồn tại chưa tìm thấy. Những điểm yếu đó tạo cơ hội cho những tấn công bên ngoài vào máy, vào người dùng, làm cho việc sử dụng và điều hành máy trở nên một mối lo ngại.
* Ở dạng nguyên của mình, TELNET không mật mã hóa các dữ liệu truyền tải qua đường dây kết nối (kể cả mật khẩu), vì thế việc nghe trộm đường truyền thông là một việc tương đối dễ dàng thực hiện. Mật khẩu lấy trộm được có thể được dùng vào những việc có mục đích hiểm độc.
* TELNET thiếu nghi thức xác thực người dùng. Nhu cầu xác thực người dùng là một nhu cầu quan trọng, đảm bảo sự giao thông giữa hai máy chủ trong cuộc, không bị một người trung gian xen vào (xin xem thêm những tấn công trung gian (*Man-in-the-middle attacks*).

Trong một môi trường làm việc mà sự an toàn và bí mật là một yêu cầu quan trọng, nhưng trên mạng lưới công cộng Internet, việc dùng TELNET là một việc không nên. Phiên giao dịch dùng TELNET là một phiên giao dịch thường, dữ liệu truyền thông không được mật mã hóa (*unencrypted*). Nếu có một người ngoài nào có khả năng truy cập, hoặc đến gần được vào một bộ định tuyến (*router*), một bộ chuyển mạch (*switch*), hoặc một cổng nối (*gateway*) nằm trên mạng lưới, giữa hai máy chủ dùng "telnet" ở trên, người đó có thể chặn các gói dữ liệu của TELNET trên đường truyền, lấy những tin tức về đăng nhập, mật khẩu (và tất cả những gì mà người gửi đã đánh máy), bằng cách sử dụng một số những công cụ phần mềm như tcpdump hoặc Wireshark chẳng hạn.

Những sơ hở này gây sự mất uy tín đối với TELNET rất cao, và càng ngày càng ít người sử dụng nó. Người ta dần dần chuyển sang dùng SSH, một giao thức có tính năng tương tự, nhưng an toàn hơn. SSH ra đời vào năm 1995. SSH cung cấp tất cả những chức năng đã có trong "telnet", nhưng thêm chức năng mật mã hóa dữ liệu, tránh cho những dữ liệu có tính nhạy cảm cao bị chặn lại và bị nghe trộm. Phương pháp xác minh, dùng khóa công khai (*public key*), để chứng minh một máy tính ở xa nào đấy, thực sự là máy mà mình muốn liên lạc, đã được thực hiện.

Những chuyên gia về bảo mật máy tính như Viện SANS (*SysAdmin, Audit, Network, Security Institute*) và những thành viên của nhóm tin tức (*newsgroup*) comp.os.linux.security - (*[http://www.linuxsecurity.com/docs/colsfaq.html xem thêm FAQ ở đây]*) - khuyên mọi người rằng bất cứ một kết nối nào, hòng sử dụng đăng nhập từ xa (*remote logins*) dùng TELNET, trong những hoàn cảnh bình thường, đều đáng phải bị ngắt mạch, không được phép tiếp tục.

Khi TELNET mới được thiết kế và xây dựng vào năm 1969, phần đông những người dùng máy tính liên kết mạng là những người làm việc trong bộ phận vi tính của các cơ quan giáo dục, những bộ phận nghiên cứu lớn của tư nhân hoặc của chính phủ. Dưới môi trường ấy, bảo an truyền thông là một việc không mấy người quan tâm. Mãi cho đến khi sự bùng nổ về dải tần trong năm thuộc thập niên 1990, khi số lượng người truy cập và sử dụng Internet tăng lên gấp bội lần, và đồng thời với sự tăng trưởng này, số lượng người tấn công vào các máy chủ cũng tăng nhanh, thì việc bảo an truyền thông kết nối mới được để ý đến. Trong những điều kiện thông thường TELNET không nên được dùng trên những mạng lưới có kết nối với Internet.

## Hiện trạng của TELNET ngày nay

Trong khi bản thân giao thức **TELNET** đã bị thay thế, thì những trình khách (clients) của TELNET vẫn thỉnh thoảng được sử dụng để "nói chuyện" với các dịch vụ khác, bằng tay. Đôi khi nó được dùng trong việc lùng tìm và gỡ lỗi những sai sót trong các trình dịch vụ của mạng (*network services*), ví dụ trong các máy chủ được cài SMTP hoặc HTTP chẳng hạn. Họ thường dùng TELNET như là một công cụ để truyền những dòng lệnh sang cho các máy chủ và kiểm tra những phản ứng hồi âm của trình dịch vụ. TELNET còn được dùng như trình khách IRC thô sơ, nếu người dùng hiểu biết kỹ lưỡng giao thức này.
TELNET được dùng rất nhiều trong cái trò chơi qua đường truyền Internet, như MUD (*Multi-User Dungeon*), hoặc như trong các phần mềm như talker, MUSH, MUCK và MOO.

## Trình khách của TELNET
### Môi trường không đồng nhất (''Multiplatform'')

* PuTTY là một phần mềm dùng tự do của giao thức SSH, TELNET, rlogin, và là trình khách (*client*) dùng raw TCP trong Windows và Unix.
* mTelnet là một trình khách dùng tự do của giao thức TELNET, trong hệ điều hành Windows và OS/2, dùng toàn bộ diện tích của màn ảnh. Nó là một trình khách dễ dùng, và có chức năng tải xuống dùng giao thức Zmodem.

### Windows
Trình khách "telnet" được cài đặt sẵn trong Windows và có thể truy cập được trong chế độ chờ lệnh (*accessible from the command prompt*).

#### Dùng tự do có mã nguồn kèm
* dtelnet là một trình khách TELNET dùng trong Windows.
* Pueblo/UE là một trình khách TELNET dùng trong Windows.
* Thiết bị xuất chuẩn telnet là một trình khách TELNET dùng trong môi trường MS Win32 (chiếm diện tích toàn bộ màn ảnh - thiết bị xuất chuẩn) (console).
#### Mã nguồn có bản quyền, không được dùng tự do
* Thiết bị cuối bảo an Whitehorn  là một trình khách TELNET dùng trong Windows.
* Simpterm  là một trình khách TELNET dùng Unicode trong môi trường MS Win32. Vì dùng Unicode nên có thể đánh được nhiều loại chữ, chẳng hạng như tiếng Trung Quốc. 
* SimpleMU là một trình khách TELNET phần mềm cổ động.
* CRT và Bảo-an CRT là hai trình khách TELNET có khả năng scripting các loại VBScript, Javascript and Perl.

### [[Macintosh]]
* tn3270 là một trình khách TELNET cho Macintosh.
* Terminal là một chương trình ứng dụng dùng TELNET dùng giao diện chế độ trờ lệnh (*command line interface*), được cài đặt sẵn trong tất cả các phiên bản của hệ điều hành Macintosh OS X.

## Trình chủ của TELNET
### Dùng tự do có mã nguồn kèm
* telnetd là một daemon của TELNET có khả năng nhúng, được viết bằng Java.
* Trình chủ Telnet của người đàn bàn nghèo là một trình chủ độc lập của TELNET, được viết bằng Java dựa trên nền tảng của trình telnetd.
* Synchronet là một trình chủ chạy trên Win32 và Linux, hỗ trợ những giao thức như http, nntp, pop3, ftp và nhiều giao thức khác.

## Xem thêm
* Telnet 3270 (TN3270)
* HyTelnet
* Telenet

## Tham khảo

## Liên kết ngoài
* Những nơi của telnet.org Danh sách các trình chủ TELNET mà người dùng nào cũng có thể truy cập vào được 
*Góc sân của BBS - Hướng dẫn cách Telnet vào BBS 
* Diễn tả sự tương giao của Telnet dưới hình thức một lược đồ trình tự  (*Sequence Diagram*)