Nginx、ssh、sendmailを使用してサーバーのIpTableルールを設定する必要があります。さて、問題は、私のルールでは、他のホストにメールを送信できなくなったことです。ファイアウォールが稼働している場合、ローカルホストへの電子メールは機能しますが、別のサーバーへの送信は機能しません。
Incoming and Outgoing Port 25とDNSルックアップポートの両方を開こうとしましたが、何も機能しませんでした。何か案は?
更新:
これが私のルールです:
#! /bin/sh
# firewall iptable rules
interface="eth0"
# first, deny all
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# open loopback device completely
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# open ssh ports
iptables -A INPUT -p tcp -i $interface --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -o $interface --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
# open browser ports
iptables -A INPUT -p tcp -i $interface --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -o $interface --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
Linuxボックスがポート25を介して電子メールを送信することを許可する場合は、次のようなルールを追加して許可する必要があります。
$ iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
DNSトラフィックの場合も同様です。
$ iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
そのような明示的なルールがない場合、デフォルトのポリシーがDROP
に設定されているため、トラフィックはデフォルトで拒否されます。
更新:
以下を使用して、関連する/確立された接続を許可することを忘れないでください。
$ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
次のルールをIPTablesに追加します。
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT