iptablesを使用すると、ホームネットワークにいるときにのみポートを開くことができますか?

iptablesを使用すると、ホームネットワークにいるときにのみポートを開くことができますか?

私のラップトップと携帯電話の間でコンテンツを同期するサービスをホストしたいと思います。サーバーがないので、ラップトップでこれらのサービスをホストすることにしました。携帯電話がサービスに接続できるようにするには、ファイアウォールiptablesでそのポートを開く必要があります。ただし、パブリックネットワークにいるときに潜在的に悪意のあるトラフィックにサービスを公開したくありません。ポートを開きたいがホームネットワークにある場合にのみ可能です。 iptablesを使うとこれは可能ですか?

私のホームネットワークでは、自宅に到着するとすぐに携帯電話が自動的にWi-Fiに接続されます。自宅にいるときは、ラップトップは常にWiFi経由で接続され、ドックに差し込むとイーサネット経由で接続されます。どちらのデバイスもdhcpを介してルータからIPアドレスを取得しますが、デフォルトではルータは毎回同じIPを提供します。

PS:NixOSへの具体的な回答は感謝していますが、違いは私が直接見つけることができるようです。

ベストアンサー1

ルータにpingを送信し、arpアドレスを確認することをお勧めします。

起動時にインターネット接続が確立される可能性が高いため、起動時に時間ごとにこの方法を使用してください。

ping -c 4 myrouterip > /dev/null 2>&1
arp | awk '$1 == "myroutermac" { print $1}' | sha512sum > /tmp/sum.txt
if cmp -s /tmp/sum.txt ref.txt
then
   ## at home 
fi

どこ

  • 私のパスルーターの象徴的な名前(*)。

  • 私のルーターMacarpホームルーターから返されたMACアドレス。

  • ref.txtsha512sum(または適切であると判断されるすべての項目)を含むarp| awk ..ファイルです。

    (*) ルータと同じ名前でどこかに行かないと仮定そしてルータは同じMacアドレスを使用します。

知っていたらいいな

  • ホームルータの名前とそれがarpに表示される方法
  • 起動時にスクリプトを起動する方法(U&Lを選択していない場合)

おすすめ記事