web-dev-qa-db-ja.com

ufwを構成して、httpトラフィックを別のIPにリダイレクトする

すべてのHTTP/HTTPSトラフィックを1つのサーバーから別のサーバーに(IP経由で)リダイレクトしようとしています。

私はufwファイアウォールを使用しています。どうすれば設定できますか?

4
Olivier

(これには管理者権限が必要なので、rootとしてログインするか、それに応じてSudoを使用します)

簡単な解決策の1つは、iptablesを使用することです。

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to foo_serverip:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -m conntrack --ctstate NEW -j DNAT --to foo_serverip:443
iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

ポート80および443(オプション:--dport 80、443)で受信したインターフェースeth0(オプション:-i)のすべてのトラフィックを、ポート80または443のfoo_serverip IPアドレスにリダイレクトします。

テストした後は、現在のiptablesルールを

iptables-save > /etc/iptables.rules

とそれらを復元します

iptables-restore < /etc/iptables.rules

これを知って、起動時にルールを復元するオプションは複数あります。私が考えることができる最も単純なものは、/etc/rc.localを編集して、行に/sbin/iptables-restore < /etc/iptables.rulesを追加することです。

ufwがこれだけでできることはないと思います。

9
Bruno Pereira

fwを構成して、ポートを外部IPに転送することができます。

  1. 編集/etc/default/ufw転送要求を受け入れる

    default_forward_policy = "accept"

  2. /etc/ufw/sysctl.confを編集して転送を許可する

    net.ipv4.ip_forward=1

  3. 編集/etc/ufw/before.rules、最初のコメントの後に以下を追加します

    *nat
    :PREROUTING ACCEPT [0:0]
    -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination external_ip:80
    COMMIT  
    
3
Roman Podlinov