Quản lý Receive Connector – Phần 1
Anderson Patricio
Quản trị mạng - Trong phần trước của loạt bài này chúng tôi đã tạo một Receive Connector để nhận mail đến từ Internet và cũng đã test thử bằng tiện ích telnet còn trong bài này chúng tôi sẽ giới thiệu cách gửi một thông báo bằng telnet và cấu hình các tính năng bảo mật trong Receive Connector.
Để test một receive connector, chúng ta cần phải biết một số hành động SMTP cơ bản nhằm để gửi thông báo bằng telnet session. Các lệnh dưới đây sẽ cho phép bạn gửi một thông báo test bằng tiện ích telnet. Tất cả các hành động SMTP cơ bản đều yêu cầu gửi một thông báo dưới đây:
- Receive connector mà chúng ta đã tạo đang lắng nghe trên cổng 25 và trên một địa chỉ IP cụ thể. Chúng ta hãy sử dụng tiện ích telnet để kết nối với máy chủ của mình:
telnet <IP> 25
Kết quả: 220 <FQDN name> Banner information - Bắt đầu truyền thông SMTP
EHLO example.org
Kết quả: a list of all SMTP verbs that are accepted by the receive connector. In the first line a hello answer with the IP Address used by the sender will be shown. - Định nghĩa người gửi thông báo test
Mail from:user@example.org
Kết quả: 250 2.1.0 Sender OK - Định nghĩa người nhận thông báo test này. Miền SMTP được sử dụng bởi người nhận phải tồn tại trong tổ chức hiện hành.
Rcpt to:user@<your-domain>
Kết quả: 250 2.1.5 Recipient OK - Bắt đầu một thông báo
Data <enter>
Kết quả: 354 Start mail input; end with <CRLF>.<CRLF> - Nhấn phím Enter hai lần và đánh nội cung sẽ xuất hiện trong body của thông báo test. Để kết thúc, đánh dấu chấm “.” Trong dòng trắng và nhấn Enter.
Phần thông báo test. <enter>
. <enter>
Kết quả: 250 2.6.0 <Message ID@ServerName.fqdn> Queued mail for delivery - Đóng session.
Quit
Kết quả: 221 2.0.0 Service closing transmission channel
Chúng ta có thể đăng nhập vào OWA để kiểm tra xem thông báo có được nhận hay không. Toàn bộ quá trình có thể được quan sát trong hình 1.
Hình 1
Quá trình này rất quan trọng trong vấn đề khắc phục sự cố luồng mail cũng như hợp lệ hóa Receive Connector.
Khai thác một số tính bảo mật của Receive Connector
Chúng ta đã cấu hình Receive Connector bằng cả Exchange Management Console và Exchange Management Shell, giờ đây chúng ta hãy khai thác một số cấu hình bảo mật cho Receive Connector. Tất cả những vấn đề bảo mật mà chúng ta sẽ xem xét ở đây được điều chỉnh bởi Receive Connector và chúng phải được cấu hình bằng Exchange Management Shell. Hãy cấu hình một số tính năng trong Internet Receive Connector như dưới đây:
Thay đổi các thông tin Banner
Một số công ty không thích ý tưởng hiển thị tên máy chủ trong các kết nối SMTP. Chúng tôi sẽ thay đổi các thông tin banner đã được sử dụng cho Receive Connector bằng lệnh bên dưới và kết quả thu được được thể hiện trong hình 2.
Set-ReceiveConnector <connector-name> -Banner “220 Mail Server”
Hình 2
Chỉ định số lỗi trong suốt một session…
Chúng ta có thể kiểm soát số lỗi giao thức trong một session. Giá trị mặc định ban đầu được đặt là 5, để cấu hình nó thành 2, chúng ta sử dụng lệnh dưới đây:
Set-ReceiveConnector <Connector Name> -MaxProtocolErrors 2
Lúc này, nếu một SMTP Server/user kết nối và đạt tới số lượng lỗi lớn nhất đã được định nghĩa trong receive connector thì thông báo dưới đây sẽ được hiển thị (hình 03):
Hình 3
Điều chỉnh tiết lưu cho Receive Connector…
Receive connectors cho phép chúng ta hạn chế lưu lượng inbound và hạn chế sử dụng từ một nguồn nào đó, ngăn chặn hiện tượng overload cho hệ thống. Đây là ba tùy chọn chúng ta có thể sử dụng:
MaxInboundConnectionsperSource: Định nghĩa số lượng kết nối lớn nhất đươc thiết lập cho một receive connector tai cùng thời điểm bởi cùng một nguồn. Giá trị mặc định của thiết lập này là 100.
MaxInboundConnection: Định nghĩa số lượng kết nối mà receive connector sẽ chấp nhận tại cùng một thời điểm. Giá trị mặc định của thiết lập này là 5000.
- MaxInboundConnectionPercentagePersource: Dựa trên giá trị MaxInboundConnection nó chỉ thị số lượng kết nối mà cùng nguồn có thể thiết lập với receive connector. Giá trị mặc định là 2%.
Để cấu hình Receive Connector bằng các thiết lập mới đã thấy, chúng ta có thể chạy lệnh dưới đây:
Set-ReceiveConnector <Connector-Name> -MaxInboundConnection <Number> -MaxInboundConnectionsperSource <Number> -MaxInboundConnectionPercentagePerSource <Number>
Chúng ta cũng có thể cấu hình thời gian time-out cho receive connector theo các khía cạnh nào đó, chẳng hạn như: trong suốt quá trình truyền thông SMTP cũng như trong suốt một kết nối không hoạt động (inactive). Để cấu hình ConnectionTimeout, chúng ta có thể chạy lệnh dưới đây:
Set-ReceiveConnector <Connector-Name> -ConnectionTimeout <days.hours:minutes:seconds>
Để hủy kết nối nhờ thời gian Inactive, chúng ta có thể sử dụng lệnh dưới đây:
Set-ReceiveConnector <Connector-Name> -ConnectionInactiveTimeout <days.hours:minutes:seconds>
Chúng ta cũng có thể hạn chế số lượng người nhận, hạn chế tốc độ và kích thước lớn nhất của thông báo tại mức connector, để cấu hình các thiết lập này, chúng ta có thể sử dụng các tham số dưới đây:
MaxRecipientsPerMessage: Số lượng người nhận lớn nhất trong một thông báo, giá trị mặc định là 200.
MaxMessageSize: Kích thước lớn nhất của thông báo; giá trị mặc định là 100MB.
- MaxRateLimit: Chỉ định số lượng lớn nhất các thông báo có thể được gửi bởi cùng một máy khách trong một phút.
Chúng ta hãy thay đổi Internet Receive connector để chấp nhận 100 người dùng lớn nhất, kích thước thông báo sẽ lớn hơn 2MB và tốc độ hạn chế là 200 như dưới đây:
Set-ReceiveConnector<Connector Name> –MaxRecipientsPerMessage:100 –MaxMessageSize:5MB –MaxRateLimit:200
Tính năng cuối cùng chúng tôi sẽ giới thiệu cho các bạn là TarpitIntervall. Trong Exchange Server 2003 chúng ta phải cấu hình nó thông qua Registry Editor. Còn trong Exchange Server 2007 chúng ta có thể thực hiện bằng cách sử dụng Exchange Management Shell. Tính năng tarpit sẽ chèn vào một delay được định nghĩa trước trong mỗi đáp trả SMTP, nó có chứa mã lỗi 5.x.x trong suốt quá trình truyền thông giữa hai máy chủ. Tính năng này chỉ được áp dụng cho các kết nối nặc danh và nó nên được sử dụng với các tính năng Recipient Filter Agent và Recipient Lookup đã được kích hoạt.
Trong bài này chúng ta đang sử dụng Exchange Server 2007 với cả ba role chúng đã được cài đặt (Mailbox, CAS và Hub Transport) và nó sẽ nhận các thông báo từ Internet, chúng ta cũng đã cấu hình Anti-spam agent trên máy chủ này. Giờ đây chúng ta hãy xem xét đến Recipient Filtering agent và kích hoạt tính năng Recipient Lookup:
- Mở Exchange Management Console.
- Mở Organization Configuration.
- Kích Hub Transport.
- Kích tab Anti-Spam
- Kích đúp vào Recipient Filtering.
- Kích tab Blocked Recipients
- Tích vào tùy chọn đầu tiên “Block messages sent to recipients not listed in the Global Address list” (xem trong hình 4).
Hình 4
Từ lúc này, trên tất cả các thông báo có địa chỉ chưa biết trong tổ chức sẽ bị từ chối bởi Exchange Server, xem thể hiện trong hành động SMTP rcpt to: trong hình 5. Mặc dù vậy chúng ta có thể gặp phải vấn đề ở đây đó là, spammer có thể tấn công ồ ạt vào Exchange Server bằng kiểu tấn công dictionary để tìm ra email nào hợp lệ trong tổ chức của bạn. Vậy có cách nào để chống lại hiện tượng đó? Không có cách nào có thể khắc phục vấn đề đó nhưng với mỗi một địa chỉ sai đã thử trong truyền thông SMTP thì sẽ có một lỗi “5.1.1 User unknown” xuất hiện và với mỗi một trong các lỗi đó chúng ta lại có thể cấu hình tarpit để delay sự đáp trả của máy chủ.
Hình 5
Giá trị mặc định là 5s, để thay đổi cấu hình này, chúng ta có thể chạy lệnh dưới đây:
Set-ReceiveConnector “<Connector-Name>” –TarPitInterval:<Number of seconds>
Kết luận
Phần hai này chúng tôi đã giới thiệu cho các bạn cách cấu hình các thiết lập bảo mật và một số hạn chế trong Receive Connector. Giới thiệu một số cấu hình phải được thực hiện bằng Exchange Management Shell. Trong phần tiếp theo của loạt bài này chúng tôi sẽ giới thiệu việc ghi các thông tin, các phương pháp thẩm định và cách cấu hình các điều khoảng bằng AdsiEdit.msc và Exchange Management Shell.