web-dev-qa-db-ja.com

同じVPNサブネット内のクライアントが通信できるようにfirewalldにルールを設定する

FedoraサーバーでWireguardVPNをセットアップしようとしています。私はそれを稼働させており、複数のクライアントと接続したり、閲覧したり、サーバーにSSH接続したりすることができます。一般的には正常に機能します。 1つを除いて。 2つのクライアントが同時に接続されている場合、VPNを介してクライアントAからクライアントBに、またはその逆にSSH接続することはできません。サーバーからクライアントのいずれかに、およびクライアントからサーバーにsshできますが、クライアント間ではできません。明らかな理由はファイアウォールであるため、ファイアウォールを無効にしてみました。予想どおり、同じVPNサブネット上のクライアント間でsshを実行できるようになりました。

そのため、ファイアウォールは正しく設定されていませんが、以下のルールを追加しました。

iptables -A FORWARD -i wg0 -o wg0 -j ACCEPT

クライアントが通信できるようにする必要がありますか?これはfirewalldで実行されているFedoraサーバーであるため、vpnという新しいゾーンを作成し、そのゾーンにwg0インターフェイスを追加して、VPNの特定のルールを作成できると考えました。それは機能し、クライアントとサーバー間で参照およびsshを実行できますが、クライアント間では実行できません。

何が足りないのですか?転送ルールはfirewalldを介して設定する必要があります。そうであれば、正しく設定できないように見えるので、それを行うための正しいコマンドは何ですか。

編集:私はコマンドで試しました

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -o wg0 -j ACCEPT

ただし、firewalldからCOMMAND_FAILED応答を取得します。エラーコードやその他のものはありません。

編集2:追加しました

firewall-cmd --permanent --zone=vpn --set-target=ACCEPT

これで、クライアント間でsshを実行できます。それは正しい方法ですか?

2
user2858835

他のコメント/回答がない場合、私はそれをどのように機能させたかを共有します。それが最善の方法かどうかはわかりませんが、機能します。

ゾーンVPNにtarger = defaultがあることに気づきました。デフォルトはREJECTです。

追加した

firewall-cmd --permanent --zone=vpn --set-target=ACCEPT

これで、クライアント間でsshを実行できます。

1
user2858835