サーバーでhttpdサービスを実行しています。
ファイアウォールがあります。
デスクトップコンピュータのインターネットブラウザ。
サーバーには、ファイアウォールのみがサーバーにアクセスできるという規則があります。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -s firewall -j ACCEPT
デスクトップのブラウザがファイアウォールに接続し、ファイアウォールがデスクトップサーバーに接続してhttpページを取得し、そのページをデスクトップに戻すには、ファイアウォールにどのようなルールを設定する必要がありますか?つまり、ファイアウォールを介してサーバーからページを取得するブラウザをデスクトップで開きたいと思います。
server <-> firewall <-> desktop
次のステップはファイアウォールです。すべてのコンピュータが同じネットワーク上にある場合は動作しますが、これが最善のアプローチであるかどうかはわかりません。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination server
iptables -t nat -A POSTROUTING -s desktop -j MASQUERADE
どんな提案がありますか?また、さまざまな種類のシナリオについても疑問に思います。すべてのコンピュータは同じネットワーク上にあり、デスクトップは別のネットワーク上にあります。非常にありがとう
答え1
DNATとSNATは、影響を受けるシステムのアドレスに関係なく機能します。 DNATtingシステムがそのサブネットのルーターであり、DNAT宛先がサブネットの外部にある場合、応答パケットはシステムに到達するため、SNATは必要ありません。しかし、状況を無視する方が簡単です。
コードが変です。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination server
iptables -t nat -A POSTROUTING -s desktop -j MASQUERADE
問題は、SNAT(MASQUERADE)はソースdesktop
に制限されていますが、DNATはそうではないということです。むしろそうしたいのですが:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination server
iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -j MASQUERADE