web-dev-qa-db-ja.com

IP転送を許可するようにUFWを構成する方法は?

ホームサーバーにUFW、OpenVPN、Virtualboxがインストールされています。 IP範囲10.0.1.0でセットアップされた仮想マシンゲスト(vboxnet0)のホストオンリーネットワークと、OpenVPN接続のもう一方の端で構成された別のIP範囲10.0.0.0があります。

IP転送はホストで構成されているため、UFWが無効の場合、問題なく互いに通信できます。ただし、このホストはWebアクセス可能になり、アクセス制御が必要になるため、UFWを実行したいと思います。

この種のトラフィックを許可するようにUFWを構成するにはどうすればよいですか?

ufw allow allow in|out on vboxnet0|tun0のさまざまな組み合わせを試しましたが、成功しませんでした。

私のUFWルールは次のとおりです。

root@gimli:~# ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
Anywhere                   ALLOW       10.0.0.0/16
Anywhere on vboxnet0       ALLOW       Anywhere
Anywhere on tun0           ALLOW       Anywhere

Anywhere                   ALLOW OUT   Anywhere on vboxnet0
Anywhere                   ALLOW OUT   Anywhere on tun0

どんな助けも大歓迎です。

16
Stephen RC

私はそれを考え出した。

/etc/default/ufwを編集し、DEFAULT_FORWARD_POLICYACCEPTに設定します。

DEFAULT_FORWARD_POLICY="ACCEPT"
17
Stephen RC

これが可能になりました-ufw manページから:

ホスト自体を宛先としないトラフィックのルールではなく、ファイアウォールを介してルーティング/転送するトラフィックのルールは、ルールの前にrouteキーワードを指定する必要があります(ルーティングルールはPF構文と大幅に異なり、代わりにnetfilter FORWARDチェーン規則を考慮します) 。例えば:

     ufw route allow in on eth1 out on eth2

これにより、eth2にルーティングされ、eth1に着信するすべてのトラフィックがファイアウォールを通過できるようになります。

     ufw route allow in on eth0 out on eth1 to 12.34.45.67 port 80 proto tcp

このルールは、eth0に着信するすべてのパケットが、eth1のファイアウォールを通過して12.34.45.67のtcpポート80に到達することを許可します。

ルーティングルールとポリシーに加えて、IP転送も設定する必要があります。これは、/ etc/ufw/sysctl.confで以下を設定することで実行できます。

     net/ipv4/ip_forward=1
     net/ipv6/conf/default/forwarding=1
     net/ipv6/conf/all/forwarding=1

その後、ファイアウォールを再起動します。

     ufw disable
     ufw enable

カーネル調整パラメータの設定はオペレーティングシステム固有であり、ufw sysctl設定は上書きされる可能性があることに注意してください。詳細については、sysctlのマニュアルページを参照してください。

6

/ etc/default/ufwでDEFAULT_FORWARD_POLICYをACCEPTに設定すると、ユーザーインターフェイスの設定に関係なく、ファイアウォールはすべてのパケットを転送します。

ユーザーインターフェイスは単純なイン/アウトフィルタリングのみを目的としています。転送するには、次のように/etc/ufw/before.rulesにiptablesルールを追加する必要があります。

-A ufw-before-forward -i eth1 -p tcp -d 192.168.1.11 --dport 22 -j ACCEPT

おそらく、すでに内部から外部への接続を許可するルールと、関連および確立されたtcpセッションからのパケットを許可する別のルールをすでに持っているでしょう。

私はiptablesのスペシャリストではありません。これを理解するのに非常に長い時間がかかりました(ip6tablesでも同様です)。たぶんこれはあなたの場合に必要なすべてではありません。

よろしくお願いします

6
Jay Christnach

このufwコマンドはうまく機能しました:Sudo ufw default allow FORWARD

変更が適用されていることを確認するには:Sudo service ufw restart

3
dcborg