Một máy chủ web CentOS 7 đã cài đặt postfix, dovecot và mailx. Tôi đã có thể tạo kết nối IMAP đến máy chủ để đọc thư trong hộp thư đến bằng ứng dụng khách Thunderbird từ xa, nhưng tôi không thể tạo kết nối SMTP để gửi email từ Thunderbird. Khi tôi làm pháp y, tôi phát hiện ra rằng kết nối SMTP đã cố gắng hết thời gian. Làm cách nào tôi có thể giải quyết vấn đề hết thời gian kết nối này để tôi có thể gửi email từ Thunderbird qua máy chủ?
Pháp y của tôi cho đến nay đã dẫn đến:
Nhập hostname
vào thiết bị đầu cuối tại máy chủ trả về mydomain.com
.
nano /usr/lib/firewalld/services/smtp.xml
cho biết cổng smtp là 25
Dịch vụ smtp được kích hoạt trong khu vực công cộng vì firewall-cmd --list-all
kết quả là:
public (default, active)
interfaces: enp3s0
sources:
services: dhcpv6-client imaps openvpn smtp
ports:
masquerade: yes
forward-ports:
icmp-blocks:
rich rules:
Nhưng khi tôi cố gắng telnet từ devbox của mình đến máy chủ CentOS 7 từ xa, tôi nhận được kết quả như sau. Gõ telnet mydomain.com 25
kết quả là:
Trying my.SERVER.ip.addr...
telnet: connect to address my.SERVER.ip.addr: Connection timed out
Sau đó gõ telnet smtp.mydomain.com 25
kết quả vào:
Trying my.SERVER.ip.addr...
telnet: connect to address my.SERVER.ip.addr: Connection timed out
Ngoài ra, gõ openssl s_client -CApath /etc/ssl/certs -starttls smtp -port 25 -host smtp.mydomain.com
kết quả trong:
socket: Connection timed out
connect:errno=110
Tương tự, gõ openssl s_client -CApath /etc/ssl/certs -starttls smtp -port 25 -host mydomain.com
cũng dẫn đến:
socket: Connection timed out
connect:errno=110
Tôi gõ nano /etc/postfix/main.cf
để bắt đầu kiểm tra cấu hình, nhưng không tìm thấy gì liên quan đến cổng.
BIÊN TẬP:
Theo lời khuyên của FaheemMitha, tôi đã thử telnet mydomain.com 587
từ khách hàng và nhận được No route to host
phản hồi. Tôi nghĩ điều này là do chỉ cổng 25 được mở trong tường lửa cho smtp.
Do đó, tôi nghĩ sẽ thử telnet từ máy chủ từ xa mydomain.com. Khi tôi đăng nhập vào máy chủ từ xa thông qua ssh và gõ telnet localhost 25
, kết quả là:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mydomain.com ESMTP Postfix
Điều này khiến tôi nghi ngờ rằng postfix đang chạy trên cổng 25, nhưng bằng cách nào đó nó không thể chấp nhận các kết nối bên ngoài.
EDIT # 2
Theo đề nghị của @ RedCricket, tôi đã chạy iptables -L
. Vì kết quả dài dòng, tôi đã tải chúng lên một trang chia sẻ tệp mà bạn có thể xem bằng cách nhấp vào liên kết này.
Tôi cũng đã thử iptables --flush
theo sau firewall-cmd --reload
, và sau đó lặp lại các bài kiểm tra telnet và thunderbird từ phía trên, nhưng tôi vẫn nhận được lỗi hết thời gian kết nối.
Tôi có thể thử cái gì khác?
Tôi đã tải toàn bộ /etc/postfix/main.cf
lên một trang web chia sẻ tập tin. Bạn có thể đọc nó bằng cách nhấp vào liên kết này.
EDIT # 3
Một địa chỉ email hợp lệ someone.else@some_other_domain.com gửi email đến me@mydomain.com mà không gặp vấn đề gì. Do đó, như một thử nghiệm, tôi đã có ứng dụng khách Thunderbird từ xa của mình cố gắng gửi email đến ai đó.else@some_other_domain.com như một phần của công việc được ghi lại ở trên OP này. Sáng nay, tôi nhận được tin nhắn trả lại cho người gửi trong Thunderbird của tôi do email kiểm tra. Tôi giải thích tin nhắn trả về này có nghĩa là ít nhất một trong số các tin nhắn thử nghiệm của tôi từ Thunderbird đã vào SMTP trên mydomain.com, nhưng mydomain.com không thể tra cứu hoặc kết nối với some_other_domain.com. Đây là thông điệp:
This is the mail system at host mydomain.com.
I'm sorry to have to someone.elserm you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<someone.else@some_other_domain.com>: Host or domain name not found. Name service error for
name=some_other_domain.com type=MX: Host not found, try again
Reporting-MTA: dns; mydomain.com
X-Postfix-Queue-ID: 2C915811BD1C
X-Postfix-Sender: rfc822; me@mydomain.com
Arrival-Date: Mon, 23 Feb 2015 16:46:34 -0500 (EST)
Final-Recipient: rfc822; someone.else@some_other_domain.com
Action: failed
Status: 4.4.3
Diagnostic-Code: X-Postfix; Host or domain name not found. Name service error
for name=some_other_domain.com type=MX: Host not found, try again
ForwardedMessage.eml
Subject: key enclosed
From: me@mydomain.com
Date: 02/23/2015 01:46 PM
To: someone.else@some_other_domain.com
this is the body of the email
Do đó, dường như đôi khi kết nối từ devbox từ xa của tôi đến mydomain.com bị đóng và vào thời điểm khác, kết nối từ mydomain.com đến phần còn lại của internet bị đóng.
EDIT # 4
Theo lời khuyên của @ derobert, trước tiên tôi đã thử hai lệnh telnet từ devbox đến máy chủ, sau đó tôi đã cố gắng gửi email từ me@mydomain.com bằng ứng dụng Thunderbird trên devbox của mình và sau đó tôi đã chạy lệnh tcpdump trên cả hai devbox và trên máy chủ. Gõ tcpdump port 25
vào thiết bị đầu cuối devbox dẫn đến kết quả như sau:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
nghe trên tun0, RAW loại liên kết (IP thô), kích thước chụp 65535 byte ^ C 0 gói được bắt 0 gói nhận bởi bộ lọc 0 gói bị bỏ bởi kernel
Tiếp theo, gõ tcpdump
trên máy chủ dẫn đến kết quả đầu ra lớn đến mức các kết quả cuộn vô tận cho đến khi tôi gõ Ctrl-C. Vì vậy, sau đó tôi đã gõ tcpdump port 25
và nhận được kết quả như sau:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
Vì tò mò, sau đó tôi đã gõ tcpdump port 25
lại đồng thời trên cả devbox và máy chủ và để nó mở mà không cần gõ Ctrl-C
và tôi đã cố gắng gửi email thủ công từ me@mydomain.com bằng ứng dụng Thunderbird trên devbox của mình. Tôi vẫn gặp lỗi Hết thời gian kết nối tương tự, nhưng không có hoạt động nào được báo cáo bởi các tcpdump port 25
lệnh mở . Và tổng số cũng tăng lên 0 khi tôi gõ Ctrl-C
vào cả hai thiết bị đầu cuối sau đó.