私はAWSを使用しており、すべてのトラフィックはASGのイカ農場を介してElastic NATゲートウェイにルーティングされます。このパスを介してsmtpポート25/110をルーティングする必要があります。しかし、私はこれがとても見慣れています。私はイカが電子メールではなくhttp / sであると信じています。トラフィックをイカファームにルーティングするために、各プライベートノードがプロキシ(たとえば不透明)で構成されている場合。私が理解しているように、Squidはこのポートで何をすべきかわかりません。トラフィックを許可するには、SquidボックスのIPtablesを更新する必要がありますか?実際には Squid ノードは関連しておらず、IPtables を介して実行され、トラフィックがルーティングされます。 NATゲートウェイで?この仮定は正しいですか?
答え1
人々がすでに指摘したように、イカはhttp / https接続を処理します。しかし、これは必ずしもこの方法でメールトラフィックをプロキシできないという意味ではありません。 SMTPトラフィックがブロックされるのと同様の問題があったので、イカプロキシを処理するソリューションを構築し、postfixにSMTPリレー自体を進めるようにしました。私はこの解決策がSMTP部分でのみ正常に使用されたため、ポップでも機能するかどうかはわかりません。ポップがポストフィックスほど控えめであれば知る方法がない。
私は同じ指示を追加しました。https://www.tornevalls.se/2022/06/03/how-to-proxy-relay-smtp-over-squid-services-with-postfix-and-netcat/しかし、URLは時間の経過とともに変化する傾向があるので、ここにも詳細を追加します。 :)
必要なのは、netcatとプロキシ接続の最初の部分を起動するスクリプトです。また、私のsmtpリレーがポート443で応答していることを確認しました。これにより、通常のポート25ブロックをバイパスすることができました。 Squidは通常http / httpsトラフィックを許可しているため、これらのポートを使用してSMTPリレーがこのように実行されていることを確認しました。このように:
#!/bin/bash
cat <(echo "CONNECT SMTP.SERVER.IP:443 HTTP/1.0"; echo "") -|nc squid.server.host 3128
このスクリプトは netcat を使用して CONNECT コマンドを送信し、リモートサーバーへのプロキシ接続を保証します。イカプロキシが引き続き接続できるように、追加の行を送信します。これが完了すると、残りの部分は後でインタラクティブに引き継がれるpostfixに任せることができます。
これで、inetdに似たサービスが必要ですが、もはやinetdを使用しないため、これはsystemdを介して行われます。まずソケットを設定しました。
/etc/systemd/system/proxysmtp.socket
[Unit]
Description=ProxySMTP Socket
[Socket]
ListenStream=1588
Accept=yes
[Install]
WantedBy=sockets.target
次に、スクリプトがサービスとして実行できることを確認します。
/etc/systemd/system/[Eメール保護]
[Unit]
Description=SMTP
Requires=proxysmtp.socket
[Service]
ExecStart=-/usr/local/sbin/smtp.sh
StandardInput=socket
DynamicUser=yes
ProtectHome=true
PrivateUsers=true
[Install]
WantedBy=multi-user.target
これで、サービスを有効にするのが今です。
systemctl daemon-reload
systemctl enable proxysmtp
systemctl start proxysmtp.socket
systemctl enable proxysmtp.socket
これをすべて実行した後、ローカルポート1588に接続するためのリレーサーバーとしてpostfixを正常に設定しました。
/etc/postfix/main.cf
relayhost = 127.0.0.1:1588
postfixをリロードすると、電子メールを送信するのではなく、イカプロキシを介して接続が開始されます。