Cách kiểm tra máy chủ email (SMTP) của bạn bằng lệnh Telnet

Tác giả ChatGPT, T.Chín 12, 2024, 07:18:35 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Là một quản trị viên Linux, bạn có thể thấy cần phải khắc phục sự cố hoặc kiểm tra máy chủ Simple Mail Transfer Protocol (SMTP) của mình để đảm bảo nó hoạt động chính xác. Một trong những cách hiệu quả nhất để thực hiện việc này là sử dụng lệnh telnet. Telnet cho phép bạn kết nối thủ công với máy chủ SMTP, gửi lệnh và quan sát phản hồi trực tiếp từ máy chủ, giúp bạn chẩn đoán sự cố hoặc xác minh cấu hình. Hướng dẫn này sẽ hướng dẫn bạn quy trình kiểm tra máy chủ SMTP bằng lệnh telnet.


1. Điều kiện tiên quyết

Trước khi tiếp tục, hãy đảm bảo rằng:

Telnet đã được cài đặt : Hầu hết các bản phân phối Linux hiện đại không bao gồm Telnet theo mặc định do lo ngại về bảo mật, vì nó truyền dữ liệu dưới dạng văn bản thuần túy. Tuy nhiên, để thử nghiệm, bạn có thể cài đặt nó bằng trình quản lý gói của mình:

Trên Debian/Ubuntu:

Mã nguồn [Chọn]
sudo apt install telnet
Trên Red Hat/CentOS:

Mã nguồn [Chọn]
sudo yum install telnet
Chi tiết về máy chủ SMTP : Bạn phải chuẩn bị tên máy chủ hoặc địa chỉ IP và số cổng (thường là 25, 587 hoặc 465) của máy chủ SMTP.

2. Hướng dẫn từng bước để kiểm tra SMTP bằng Telnet

Bước 1: Mở phiên Telnet

Để bắt đầu kiểm tra máy chủ SMTP, hãy mở thiết bị đầu cuối trên hệ thống Linux của bạn và khởi tạo phiên Telnet tới máy chủ SMTP.

Mã nguồn [Chọn]
telnet smtp.example.com 25
Thay thế smtp.example.combằng tên miền hoặc địa chỉ IP của máy chủ SMTP và 25bằng số cổng thích hợp nếu khác.
Bước 2: Hiểu lời chào của máy chủ SMTP

Sau khi kết nối, máy chủ SMTP sẽ phản hồi bằng tin nhắn chào mừng, thường hiển thị tên máy chủ của máy chủ và cho biết máy chủ đã sẵn sàng nhận lệnh. Nó sẽ trông giống như thế này:

Mã nguồn [Chọn]
220 smtp.example.com ESMTP Postfix
Nếu bạn nhận được thông báo này, nghĩa là kết nối đã thành công và máy chủ SMTP đã sẵn sàng chấp nhận lệnh.

Bước 3: Bắt đầu cuộc trò chuyện SMTP

Lệnh EHLO : Bắt đầu cuộc trò chuyện bằng cách xác định bạn với máy chủ SMTP. Sử dụng EHLO lệnh theo sau là tên miền của bạn hoặc bất kỳ trình giữ chỗ nào như localhost.

Mã nguồn [Chọn]
EHLO localhost
Máy chủ sẽ phản hồi với danh sách các tiện ích mở rộng và tính năng được hỗ trợ:

Mã nguồn [Chọn]
250-smtp.example.com Hello localhost [127.0.0.1]
250-SIZE 10485760
250-PIPELINING
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8

Lệnh HELO : Ngoài ra, bạn có thể sử dụng lệnh cũ HELO thay vì EHLO. Tuy nhiên, EHLO được khuyến khích vì nó cho biết hỗ trợ các tính năng mở rộng.

Mã nguồn [Chọn]
HELO localhost
Câu trả lời thường đơn giản hơn:

Mã nguồn [Chọn]
250 smtp.example.com Hello localhost [127.0.0.1]
Bước 4: Chỉ định Người gửi

Tiếp theo, chỉ định địa chỉ email của người gửi bằng lệnh MAIL FROM:

Mã nguồn [Chọn]
MAIL FROM:<[email protected]>
Máy chủ sẽ xác nhận lệnh:

Mã nguồn [Chọn]
250 2.1.0 Ok
Bước 5: Chỉ định người nhận

Bây giờ, hãy chỉ định địa chỉ email của người nhận bằng lệnh RCPT TO:

Mã nguồn [Chọn]
RCPT TO:<[email protected]>
Nếu người nhận được chấp nhận, bạn sẽ thấy:

Mã nguồn [Chọn]
250 2.1.5 Ok
Nếu người nhận không hợp lệ hoặc không được máy chủ chấp nhận, bạn có thể thấy lỗi như sau:

Mã nguồn [Chọn]
550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table
Bước 6: Gửi dữ liệu tin nhắn

Để gửi dữ liệu email, hãy sử dụng DATA lệnh:

Mã nguồn [Chọn]
DATA
Máy chủ sẽ phản hồi bằng một thông báo cho biết máy chủ đã sẵn sàng nhận dữ liệu:

Mã nguồn [Chọn]
354 End data with <CR><LF>.<CR><LF>
Bây giờ, bạn có thể nhập nội dung email. Bắt đầu bằng tiêu đề:

Mã nguồn [Chọn]
Subject: Test Email
From: [email protected]
To: [email protected]

This is a test email sent using Telnet.

Sau khi viết tin nhắn, hãy kết thúc việc nhập dữ liệu bằng cách nhập một dấu chấm (.) trên một dòng mới và nhấn Enter:

Mã nguồn [Chọn]
.
Máy chủ sẽ phản hồi:

Mã nguồn [Chọn]
250 2.0.0 Ok: queued as ABC123DEF456
Điều này cho biết email đã được chấp nhận và chờ gửi.
Bước 7: Kết thúc phiên

Để kết thúc phiên SMTP, hãy sử dụng QUIT lệnh:

Mã nguồn [Chọn]
QUIT
Máy chủ sẽ đóng kết nối:

Mã nguồn [Chọn]
221 2.0.0 Bye
Bước 8: Giải thích các phản hồi SMTP phổ biến

Trong suốt quá trình tương tác với máy chủ SMTP, bạn sẽ nhận được nhiều mã phản hồi khác nhau. Sau đây là một số mã phổ biến:

  • 220: Máy chủ đã sẵn sàng.
  • 250: Đã gửi thư yêu cầu, đã hoàn tất.
  • 354: Bắt đầu nhập thư; kết thúc bằng ..
  • 421: Dịch vụ không khả dụng, kênh truyền đang đóng.
  • 450: Hành động gửi thư yêu cầu không được thực hiện: hộp thư không khả dụng.
  • 550: Hành động yêu cầu không được thực hiện: hộp thư không khả dụng.

Kiểm tra máy chủ SMTP bằng Telnet là một kỹ năng có giá trị đối với bất kỳ quản trị viên Linux nào. Nó cho phép bạn gửi lệnh thủ công và quan sát phản hồi của máy chủ, giúp chẩn đoán các sự cố như sự cố kết nối, cấu hình SMTP không chính xác hoặc sự cố khi gửi và nhận email dễ dàng hơn. Mặc dù Telnet hữu ích để kiểm tra, hãy nhớ rằng nó truyền dữ liệu dưới dạng văn bản thuần túy, vì vậy chỉ nên sử dụng trong môi trường an toàn, được kiểm soát. Đối với mục đích sử dụng trong sản xuất, hãy luôn đảm bảo rằng thông tin liên lạc SMTP của bạn được mã hóa bằng STARTTLS hoặc các giao thức an toàn khác.

Bằng cách làm theo hướng dẫn này, bạn có thể kiểm tra và khắc phục sự cố máy chủ SMTP của mình bằng lệnh Telnet.