Ubuntu 14.10がインストールされた専用サーバーがあります。
サーバーはOpenVPNサーバーに接続する必要があり、トラフィックはVPNを介してのみ移動する必要があります(SSHトラフィックを除く)。
私の考えはこれを達成することですが、iptables
専門家ではありません。
これを処理するには正確に何を使うべきですかiptables
?
基本条件は次のとおりです。
VPNを介したトラフィックのみが許可されます。サーバーがVPNへの接続を失った場合は、トラフィック漏れがないはずです。
VPNなしでSSHを使用できます。 SSHとサーバープロバイダの通常のIPを使用してサーバーに接続したいのですが(SSHトラフィックのみ)。
私はVPNの唯一のユーザーではないので、別のコンピュータからVPNのサーバーを隠したいと思います。
ルールの作成を開始しましたが、iptables
ルールは常にすべての接続をブロックします。
# flush old rules
iptables -F
# accept SSH traffic with non vpn connection
iptables -A INPUT -d X.X.X.X -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s X.X.X.X -p tcp --sport 22 -j ACCEPT
# block everything except my rules
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# allow loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# allow vpn
iptables -A INPUT -j ACCEPT -p udp -s Y.Y.Y.Y --sport 1194
iptables -A OUTPUT -j ACCEPT -p udp -d Y.Y.Y.Y --dport 1194
XXXXはプロバイダによって提供されたサーバーIPです。
YYYYはVPNサーバーのIPです。
これらの規則により、常に現在のSSH接続が中断され、ポート22を介してトラフィックを許可する必要があるにもかかわらず、新しいSSH接続を作成できません。
ベストアンサー1
-dオプションを覚えておいてください。すべてのアダプタに適用するには、このオプションを使用しないでください。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT