-1

iptables (私は VPS に cPanel をインストールしています) を理解しようとしていて、少し遊んでいるので、私が何をしているのかばかげた質問のように聞こえるかもしれません。

デフォルトのiptables構成をバックアップにコピーし(復元に失敗した場合に備えて)、カスタムiptables構成(/etc/sysconfig/iptables)を作成し、入力/出力/転送をドロップしました(すべて)。

次に、必要な作業 (受信/送信 HTTP/s/SSH/FTP など) にアクセスしたいすべてのポートを、電子メール (:25) とは別に取得することができました。私は Roundcube を使用しており、電子メールに以下の構成を使用していますが、サーバーで電子メールを送受信できません (デフォルトの構成を復元すると機能します (すべてを受け入れます)。ポート:25 以外に、アクセスを許可する必要がある他のポートがあります)。すべてがドロップされたことを知ってメールが送信されるようにするには?)。カスタム (/etc/sysconfig/iptables) で電子メールに以下の設定を使用しています:-

-A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT

-A OUTPUT -p tcp --dport 25 -j ACCEPT
-A INPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
4

1 に答える 1

0

IP は双方向通信です。メールを受信すると、サーバーのポート 25 でパケットが送信され、任意に割り当てられたポート番号 (接続の確立時に決定される) で応答パケットが送信されます。

したがって、iptables の一般的なルールは次のとおりです。接続の状態に関係なく、指定されたポート (メールの場合は 25) からの入力でパケットを受け入れる -A INPUT -p tcp --dport 25 -j ACCEPT

宛先ポートに関係なく、確立されたすべての接続のパケットを送り返すことを受け入れます。-A OUTPUT -p tcp -m state --state ESTABLISHED -j ACCEPT

ここで、サーバーにメールを送信する場合は、パケットがポート 25 に送信されることを許可し、確立されたすべての接続が着信することを許可する必要があります。

-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT

-A OUTPUT -p tcp --dport 25 -j ACCEPT

別のアイデアは、ドロップする必要があるパケットをログに記録することです。ログ行をすべてのチェーンのルールの最後に置きます。

iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT PACKET DROPPED"
iptables -A OUTPUT -p tcp -j LOG --log-prefix "OUTPUT PACKET DROPPED"

これにより、/var/log/message (または dmesg を使用) に、チェーンのルールの最後に到達してドロップされた各パケットの行が表示されます。

于 2013-04-18T10:05:41.750 に答える