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


18

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

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

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

回答:


20

私はそれを考え出した。

編集/etc/default/ufwDEFAULT_FORWARD_POLICYACCEPTに設定します。

DEFAULT_FORWARD_POLICY="ACCEPT"

10
すべてを受け入れるように設定せずに、特定のポートのみを転送できるようにする方法はありますか?
マーカスダウニング

1
私はあなたがファイルを編集した後UFW再起動する必要があると思います:service ufw restart
ミンDanh

10

これが可能になりました-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のマニュアルページを参照してください。


1
OpenVPNサーバー上のOpenVPNクライアント間のtcpトラフィックを許可したい人にとっては、これは機能します。例:ufw routeはtun0で許可tun0で許可
logion

レコードのufw routeバージョン0.34以降に存在する
Joril

7

/ 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でも同様です)。たぶんこれはあなたの場合に必要なすべてではありません。

よろしくお願いします


4

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

変更を確実に適用するには: sudo service ufw restart


これにより、「無効な構文」エラーが発生します。ドキュメントには、「DIRECTIONは着信、発信、またはルーティングのいずれかです」と書かれています。
ColinM

@ColinMこれはXubuntu 16.04.5 LTSで私のために働いた
-baptx

FORWARDroutedUbuntuのエイリアスのように動作します
-patricktokeeffe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.