Định cấu hình Postfix để chuyển tiếp thư đến máy chủ chuyển tiếp trung tâm

Tác giả sysadmin, T.M.Hai 31, 2022, 03:34:41 CHIỀU

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

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

Định cấu hình Postfix để chuyển tiếp thư đến máy chủ chuyển tiếp trung tâm


Thay vì có các hệ thống Linux riêng lẻ trong mạng của bạn gửi thư trực tiếp ra Internet, thay vào đó, chúng tôi có thể định cấu hình chúng để chuyển tiếp thư đến máy chủ chuyển tiếp thư trung tâm. Những hệ thống như vậy được gọi là máy khách null và những hệ thống này không chấp nhận gửi bất kỳ thư nào tại địa phương, chúng chỉ chuyển tiếp thư đến một máy chủ chuyển tiếp.

Điều này có nhiều lợi ích khác nhau, chẳng hạn như tập trung nhật ký thư vào một máy chủ và chỉ yêu cầu tường lửa cho phép cổng 25 gửi đi cho SMTP trên một máy chủ thay vì cho phép tất cả các máy chủ kết nối Internet trên cổng 25. Điều này có nghĩa là máy chủ chuyển tiếp thư có thể ngồi bên trong mạng DMZ của bạn để gửi thư đi trong khi quyền truy cập vẫn bị khóa đối với phần còn lại của mạng nội bộ của bạn.

Ở đây chúng tôi sẽ giới thiệu cách định cấu hình ứng dụng khách rỗng bằng cách sử dụng Postfix để chuyển tiếp thư đến máy chủ chuyển tiếp trung tâm tồn tại trong mạng cục bộ của chúng tôi.Trong trường hợp này, chúng tôi sẽ giả sử rằng Postfix hoặc một số chương trình thư khác đã được thiết lập và định cấu hình trên máy chủ chuyển tiếp thư để gửi thư ra Internet, chúng tôi chỉ quan tâm đến việc định cấu hình Postfix để gửi thư qua chuyển tiếp ở đây.

Máy chủ chuyển tiếp thư trung tâm cũng được định cấu hình để cho phép các thư chưa được xác thực từ bên trong mạng cục bộ của chúng tôi. Trong môi trường sản xuất nếu máy chủ chuyển tiếp thư của bạn có thể truy cập được từ Internet, hãy đảm bảo rằng xác thực được định cấu hình, nếu không, bất kỳ ai cũng có thể gửi thư qua chuyển tiếp của bạn, điều này sẽ khiến máy chủ của bạn bị liệt vào danh sách đen khá nhanh vì nó sẽ được sử dụng để gửi thư rác.

1. Môi trường ví dụ

Dưới đây là một cái nhìn nhanh về môi trường ví dụ của chúng tôi sẽ cung cấp cho bạn ý tưởng về cách thức hoạt động của môi trường này.

  • Máy khách rỗng: 192.168.0.5
  • Máy chủ chuyển tiếp thư: 192.168.0.25

Máy khách null là nơi chúng tôi sẽ làm việc, chúng tôi sẽ cài đặt và định cấu hình Postfix trên máy khách null để chuyển tiếp thư đến máy chủ chuyển tiếp thư. Sau đó, máy chủ chuyển tiếp thư sẽ gửi thư đến đích đã định qua Internet. Trong ví dụ này, chúng tôi chỉ có một máy khách null chuyển tiếp thư đến máy chủ chuyển tiếp, tuy nhiên, điều này có thể mở rộng để hoạt động với hàng trăm hoặc hàng nghìn máy khách null đều chuyển tiếp thư qua máy chủ chuyển tiếp thư trung tâm.

Máy chủ thư trung tâm sẽ chấp nhận thư từ ứng dụng khách rỗng và thực hiện tra cứu DNS trên miền địa chỉ email đích để giải quyết bản ghi MX. Sau đó, máy chủ chuyển tiếp thư sẽ cố gắng kết nối với máy chủ được chỉ định trong bản ghi MX qua cổng TCP 25 theo mặc định là cổng dành cho SMTP và gửi thư đến đích đã định.

2. Cài đặt Postfix

Để bắt đầu, trước tiên bạn cần cài đặt Postfix trên hệ thống Linux client null nếu nó chưa có ở đó, điều này có thể được thực hiện thông qua yum như hình bên dưới.

Mã nguồn [Chọn]
yum install postfix -y
Đảm bảo rằng Postfix tự động khởi động khi khởi động và cũng khởi động nó ngay bây giờ.

Mã nguồn [Chọn]
systemctl enable postfix

systemctl start postfix

Để biết thêm thông tin về quản lý dịch vụ với systemctl, hãy xem hướng dẫn của chúng tôi tại đây.

3. Định cấu hình Postfix

Bây giờ Postfix đã được cài đặt và đang chạy trên hệ thống máy khách null, chúng ta cần định cấu hình Postfix.

Tệp cấu hình chính cho Postfix là /etc/postfix/main.cf, chúng ta có thể chỉnh sửa tệp này trực tiếp bằng trình soạn thảo văn bản hoặc chúng ta có thể sử dụng lệnh 'postconf -e'.

Sau khi thực hiện bất kỳ thay đổi nào đối với tệp cấu hình này, Postfix phải được khởi động lại hoặc tải lại để áp dụng các thay đổi cấu hình. Một bản tóm tắt của tất cả các cài đặt cấu hình có thể được hiển thị bằng cách chạy 'postconf'.

Dưới đây là các cài đặt cụ thể mà chúng tôi sẽ đặt trên ứng dụng khách null của mình.

  • inet_interfaces = loopback-only – Điều này kiểm soát các giao diện mạng mà Postfix lắng nghe, mặc định là localhost tuy nhiên chúng tôi đã sửa đổi điều này thành chỉ loopback vì chúng tôi chỉ muốn máy chủ cục bộ tại 127.0.0.1 và ::1 có thể gửi tin nhắn. Lưu ý rằng nếu tham số này bị thay đổi, bạn sẽ cần phải khởi động lại Postfix, tải lại sẽ không áp dụng thay đổi giao diện.
  • mydestination= – Điều này định cấu hình ứng dụng khách null để không hoạt động như một điểm cuối cho bất kỳ miền thư nào, vì chúng tôi đang định cấu hình ứng dụng khách null, đặt mục này thành trống.
  • myhostname = tên máy chủ – Tên này chỉ định tên máy chủ của máy chủ để hậu tố sử dụng, thay thế tên máy chủ bằng tên máy chủ của bạn nếu sử dụng $myhostname cho myorigin như được nêu bên dưới.
  • mynetworks=127.0.0.0/8 [::1]/128 – Điều này cho phép thư bắt nguồn từ máy chủ cục bộ, tức là chính ứng dụng khách null, trở thành ứng dụng khách SMTP đáng tin cậy.
  • myorigin = $myhostname – Đây là tên miền mà tất cả thư đã gửi sẽ xuất hiện từ đó, theo mặc định, thư sẽ xuất hiện dưới dạng đến từ tên máy chủ của máy chủ, tuy nhiên, bạn có thể thay đổi tên này thành một tên miền cụ thể chẳng hạn.
  • relayhost = 192.168.0.25 – Điều này cho postfix biết vị trí của máy chủ chuyển tiếp, đây là nơi Postfix sẽ chuyển tiếp thư đến.
  • local_transport=error: chuyển phát cục bộ bị tắt – Chuyển phát thư cục bộ bị tắt khi chúng tôi đang chuyển tiếp qua máy chủ chuyển tiếp thư.

Để biết thêm thông tin về cài đặt trong cấu hình Postfix, hãy kiểm tra trang thủ công bằng cách chạy 'man 5 postconf'.

Để thực hiện kiểm tra cú pháp của cấu hình Postfix, hãy chạy 'kiểm tra postfix' như hình bên dưới. Tôi đã thêm thủ công một dòng vào /etc/postfix/main.cf với nội dung 'thử nghiệm' không hợp lệ để kiểm tra xem dòng này có được chọn hay không.

Mã nguồn [Chọn]
[root@centos ~]# postfix check
postfix: fatal: /etc/postfix/main.cf, line 1-30: missing '=' after attribute name: "testing"

Điều này hữu ích để tìm bất kỳ lỗi nào trong cấu hình sẽ ngăn Postfix hoạt động bình thường.

Vì những thay đổi của chúng tôi ở trên đã sửa đổi inet_interfaces, Postfix phải được khởi động lại thay vì tải lại để áp dụng những thay đổi này.

Mã nguồn [Chọn]
systemctl restart postfix
4. Kiểm tra Postfix

Bây giờ chúng tôi đã định cấu hình Postfix làm ứng dụng khách null để chuyển tiếp tất cả thư qua máy chủ chuyển tiếp tại 192.168.0.25, chúng tôi sẽ thực hiện kiểm tra bằng cách gửi thông báo kiểm tra như hình bên dưới.

Mã nguồn [Chọn]
echo "Testing" | mail -s "Test Message" [email protected]
Lưu ý rằng tường lửa trên máy chủ chuyển tiếp thư sẽ cần chấp nhận các kết nối cổng TCP 25 gửi đến từ các địa chỉ IP máy khách rỗng của chúng tôi.

Bây giờ chúng tôi đã gửi thư kiểm tra của mình, chúng tôi sẽ xem tệp nhật ký thư trong /var/log/maillog. Tệp này chứa đầy thông tin hữu ích và nên được sử dụng khi khắc phục sự cố thư Postfix.

Mã nguồn [Chọn]
Aug 29 22:54:14 localhost postfix/pickup[15220]: B24C921CCDDF: uid=0 from=<root>
Aug 29 22:54:14 localhost postfix/cleanup[15363]: B24C921CCDDF: message-id=<20150830055414.B24C921CCDDF@nullclient>
Aug 29 22:54:14 localhost postfix/qmgr[15221]: B24C921CCDDF: from=<[email protected]>, size=435, nrcpt=1 (queue active)
Aug 29 22:54:14 localhost postfix/smtp[15365]: B24C921CCDDF: to=<[email protected]>, relay=192.168.0.25[192.168.0.25]:25, delay=0.01, delays=0/0/0/0, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as B310121CCDD2)
Aug 29 22:54:14 localhost postfix/qmgr[15221]: B24C921CCDDF: removed

Những thông báo tường trình này được tìm thấy tương ứng với thông báo thử nghiệm của chúng tôi, chúng tôi có thể thấy rằng hệ thống 'nullclient' của chúng tôi đã gửi một thông báo tới [email protected] và sử dụng 192.168.0.25 làm máy chủ chuyển tiếp đã được gửi. Để tiếp tục theo quy trình, sau đó chúng tôi có thể kiểm tra nhật ký thư trên máy chủ chuyển tiếp để xác nhận xem thư đã được gửi chính xác ra Internet chưa, tuy nhiên, trong trường hợp này, chúng tôi đã xác nhận rằng thư của chúng tôi đã đến được máy chủ chuyển tiếp thư trung tâm như dự kiến.

Nếu thư không được gửi chính xác, thư sẽ nằm trong hàng đợi thư có thể được xem bằng các lệnh 'mailq' hoặc 'postqueue -p'. Để gửi lại tất cả thư trong hàng đợi, hãy sử dụng 'postqueue -f'.

Bằng cách định cấu hình Postfix làm ứng dụng khách không có giá trị trên hệ thống Linux, chúng tôi đã có thể chuyển tiếp tất cả thư đến máy chủ chuyển tiếp thư, máy chủ này sau đó sẽ hoàn tất quá trình gửi thư của chúng tôi.