Nginx 透明代理 SMTP,隐藏发信源 IP

之前一直在用 haproxy,但是似乎总会死掉,要定期重启才可以。这次直接换成 nginx 了。

本次以 mailgun.com 的 SMTP 服务举例,在 nginx 配置好后,到需要发信的服务器,使用 hosts 将 smtp.mailgun.org 域名指向到代理的服务器 IP 即可。

直接贴配置:

stream {
  log_format proxy '$remote_addr [$time_local] '
       '$protocol $status $bytes_sent $bytes_received '
       '$session_time "$upstream_addr" '
       '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

  server {
      listen 25;
      proxy_pass smtp.mailgun.org:25;
      access_log  /www/wwwlogs/access.stream.log proxy;
  }

  server {
      listen 465;
      proxy_pass smtp.mailgun.org:465;
      access_log  /www/wwwlogs/access.stream.log proxy;
  }

  server {
      listen 587;
      proxy_pass smtp.mailgun.org:587;
      access_log  /www/wwwlogs/access.stream.log proxy;
  }

  server {
      listen 2525;
      proxy_pass smtp.mailgun.org:2525;
      access_log  /www/wwwlogs/access.stream.log proxy;
  }
}

记得添加防火墙白名单:

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="8.8.8.8/24"   accept" 
firewall-cmd --reload

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据