Sambaは指定されたwireguard / vpnインターフェースを受信しません。

Sambaは指定されたwireguard / vpnインターフェースを受信しません。

3台のコンピュータ間にWireguard VPNネットワークが設定されています。

  • A)私の家のPCはw​​ireguardクライアントを実行しており、私のオフィスサーバーのsambashareに接続しようとしています。 C)。
  • B)マイホームサーバーはマイワイヤーガードサーバー/エンドポイントとして機能します。 A)とC)がこれに接続されています。
  • C)私のオフィスサーバーにwireguardを介してアクセスしたいSamba共有があります。

  • 次の理由で配信が正しく機能しているようです。

    • A)からC)へ、C)からA)へのpingを送ることができます。 C)のwireguardインターフェイスIPを使用している場合。
    • A)からC)までSSH経由で接続することもできます。 C)のwireguardインターフェイスIPを使用している場合。

問題は、smb.confまたはsmbd.serviceがsmb.confで指定されたインターフェイスにバインドされる方法にあると思います。その理由は次のとおりです。

  • できないWireguard IPアドレスを使用してC)からSamba共有にアクセスできます。
  • できるeth0 IPアドレスを指定すると、C)から私のSamba共有にアクセスします。

私のsmb.confファイルは次のとおりです。

####ネットワーキング####

#バインドする特定のインターフェイス/ネットワークセット
#これはインターフェイス名またはIPアドレス/ネットマスクです。
# 通常、インターフェイス名が優先されます。
;インターフェース=127.0.0.0/8 eth0
   インターフェイス=lo eth0 wg-buero-tunnel

#指定されたインターフェイスおよび/またはネットワークにのみバインドする必要があります。
#上記の「インターフェース」オプションを使用してください。
#Sambaシステムが次の場合は、この機能を有効にすることをお勧めします。
#ファイアウォールまたはファイアウォール自体で保護されていません。しかし、
#オプションは動的または非ブロードキャストインターフェイスを正しく処理しません。
;インターフェイスのみバインド=はい
   バインドインターフェイスのみ=はい

これはの出力ですnetstat -tulpen | grep smbd

tcp 0 0 127.0.0.1:139 0.0.0.0:* リスニング中 0 17353 1023/smbd
tcp 0 0 192.168.124.177:139 0.0.0.0:* リスニング中 0 17349 1023/smbd
tcp 0 0 127.0.0.1:445 0.0.0.0:* リスニング中 0 17352 1023/smbd
tcp 0 0 192.168.124.177:445 0.0.0.0:* リスニング中 0 17348 1023/smbd

ここのIPはsmb.confで指定したデバイスと一致する必要がありますが、まだIP /デバイスがありません。

ルオ127.0.0.1

イーサネット0192.168.124.177

WG-ブエロトンネルWireguard IPが完全に失われました。

本当にアイデアが足りません。

ベストアンサー1

インターフェイスアドレス/マスクが明示的に指定されていない場合、インターフェイスがによって制限されるinterfaces = ...と、bind interfaces only = yesSambaはWireguardインターフェイスを受信しません。

解決策はWireguardインターフェイスのIPアドレス/マスクの指定。例えば

interfaces = lo eth0 10.8.0.0/24

Sambaのドキュメントでもこれを明確に説明します。 smb構成ファイル:相互作用

...デフォルトでは、Sambaはカーネルにすべてのアクティブインターフェイスのリストを照会し、127.0.0.1以外のブロードキャスト機能を持つすべてのインターフェイスを使用します。 ...
...「マスク」パラメータは、ビット長(クラスCネットワークの場合は24)、またはドットで区切られた10進形式のフルネットワークマスクです。

私たち全員が知っているように、Wireguardはブロードキャストをサポートしていません。これはSambaの結果です。 Wireguardはブロードキャストをサポートしていないため、2)インターフェース名、3)IPアドレスのみ、または4)ブロードキャストアドレス/マスクなど、そこに説明されているインターフェースを指定するために他の3つの選択肢を使用することは不可能です。

ip link次のコマンドで確認することもできます。

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ... 
    link/ether ...
wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> ...      # without "BROADCAST"
    link/none

おすすめ記事