Node-RED 例: 特定のIPからのアクセスを制限するためのiptablesルールの設定

説明

このNode-REDの例は、Milesightゲートウェイのiptablesルールを永続的に設定するソリューションを提供します。このフローを使用してiptablesルールをカスタマイズし、特定のIPアドレスがゲートウェイにアクセスすることを許可または制限できます。

要件

  • Milesightゲートウェイ: UG56/UG65/UG67

設定

ステップ1: Node-REDを起動しフロー例をインポート

  • 1. 「App」>「Node-RED」ページに移動しNode-REDプログラムを有効化。プログラム読み込み完了後、「Launch」ボタンをクリックしてNode-REDウェブGUIを起動。

 

  • 2. Node-REDウェブGUIにログイン。アカウント情報はゲートウェイウェブGUIと同一。
  • 3. 「Import」をクリックし、コンテンツを貼り付けるかjson形式ファイルをインポートしてNode-REDフロー例をインポートします。

 

ステップ2: Node-RED設定

フロー構造:

 

Content:

 

[{“id”:”9612326a66b7bb48″,”type”:”tab”,”label”:”IPtables”,”disabled”:false,”info”:””,”env”:[]},{“id”:”8a89410a2e10ad84″,”type”:”exec”,”z”:”9612326a66b7bb48″,”command”:”echo -e \”iptables -I INPUT -p TCP –dport 80 -j DROP\\niptables -I INPUT -p TCP –dport 443 -j DROP\\niptables -I INPUT -s 10.66.66.0/24 -p TCP –dport 443 -j ACCEPT\\niptables -I INPUT -s 10.66.66.0/24 -p TCP –dport 80 -j ACCEPT\” > /etc/urlog/iptb.sh”,”addpay”:””,”append”:””,”useSpawn”:”false”,”timer”:””,”winHide”:false,”oldrc”:false,”name”:””,”x”:940,”y”:460,”wires”:[[],[],[“aaf6e1157cb41476”]]},{“id”:”aaf6e1157cb41476″,”type”:”debug”,”z”:”9612326a66b7bb48″,”name”:”debug 1″,”active”:true,”tosidebar”:true,”console”:false,”tostatus”:false,”complete”:”payload”,”targetType”:”msg”,”statusVal”:””,”statusType”:”auto”,”x”:920,”y”:580,”wires”:[]},{“id”:”88e01970ea6f93a1″,”type”:”inject”,”z”:”9612326a66b7bb48″,”name”:””,”props”:[{“p”:”payload”},{“p”:”topic”,”vt”:”str”}],”repeat”:””,”crontab”:””,”once”:true,”onceDelay”:”0″,”topic”:””,”payload”:””,”payloadType”:”date”,”x”:300,”y”:580,”wires”:[[“8a89410a2e10ad84″,”b43b0223b27b67b7”]]},{“id”:”34cb5bddb03e3d91″,”type”:”inject”,”z”:”9612326a66b7bb48″,”name”:””,”props”:[{“p”:”payload”},{“p”:”topic”,”vt”:”str”}],”repeat”:””,”crontab”:””,”once”:true,”onceDelay”:0.1,”topic”:””,”payload”:””,”payloadType”:”date”,”x”:290,”y”:680,”wires”:[[“acb9456c8dac52de”]]},{“id”:”acb9456c8dac52de”,”type”:”exec”,”z”:”9612326a66b7bb48″,”command”:”su – root -c /etc/urlog/iptb.sh”,”addpay”:””,”append”:””,”useSpawn”:”false”,”timer”:””,”winHide”:false,”oldrc”:false,”name”:””,”x”:560,”y”:740,”wires”:[[“9a627cb3446a8d52”],[],[]]},{“id”:”9a627cb3446a8d52″,”type”:”debug”,”z”:”9612326a66b7bb48″,”name”:”debug 2″,”active”:true,”tosidebar”:true,”console”:false,”tostatus”:false,”complete”:”false”,”statusVal”:””,”statusType”:”auto”,”x”:920,”y”:720,”wires”:[]},{“id”:”b43b0223b27b67b7″,”type”:”exec”,”z”:”9612326a66b7bb48″,”command”:”chmod +x /etc/urlog/iptb.sh”,”addpay”:””,”append”:””,”useSpawn”:”false”,”timer”:””,”winHide”:false,”oldrc”:false,”name”:””,”x”:600,”y”:580,”wires”:[[],[],[]]}]

 

Exec Node1 :

cmd内のiptablesルールを変更。

echo -e “iptables -I INPUT -p TCP –dport 80 -j DROP\niptables -I INPUT -p TCP –dport 443 -j DROP\niptables -I INPUT -s 10.66.66.0/24 -p TCP –dport 443 -j ACCEPT\niptables -I INPUT -s 10.66.66.0/24 -p TCP –dport 80 -j ACCEPT” > /etc/urlog/iptb.sh

 

このechoコマンドはiptablesルールを/etc/urlog/iptb.shに出力するためのもので、ファイル内のルールは以下のような形式になります。

iptables -I INPUT -p TCP –dport 80 -j DROP

iptables -I INPUT -p TCP –dport 443 -j DROP

iptables -I INPUT -s 10.66.66.0/24 -p TCP –dport 443 -j ACCEPT

iptables -I INPUT -s 10.66.66.0/24 -p TCP –dport 80 -j ACCEPT

 

これらはINPUTチェーンに順序通り挿入され、最後のルールが最初に適用されます。これらのルールは、10.66.66.0/24がゲートウェイの443/80ポートにアクセスすることを許可し、他のIPアドレスを無効化することを意味します。

 

Exec node2:

このノードはiptb.shに実行権限を与えるためのものです。

 

Exec node3:

このノードはiptablesルールを挿入するファイルを実行します。

 

タイムスタンプノード:
全てのタイムスタンプノードはゲートウェイ起動後に実行されるよう設定されています。iptablesルールはシステム再起動後に消失するため、再起動後に再挿入します。

ステップ3: デプロイと結果確認

  • 1. 「Deploy」をクリックし、全てのNode-RED設定を保存します。
  • 2. ゲートウェイを再起動し、設定が有効になったか確認します。
  • 3. これらのルールを無効化したい場合は、このフローを削除しゲートウェイを再起動してください。

——-以上—–

関連記事

Node-REDとプロトコルの統合

ソリューション / IoT サポート


    Milesight製品

    ウェーブクレスト株式会社が運営するMilesight製品特設サイトです

    お知らせ

    1. 2025-4-3

      ピープル・センシング 駆動型スマートビルディング

      People Sensing Insights を通じてビルインテリジェンスに革命をもたらします。…
    2. 2023-7-21

      LoRaWANの説明: 理論から実践へのガイド

      この包括的なビデオでは、LoRaWANを深く掘り下げ、その仕組み、利点、アプリケーションについて説明…
    3. 2023-4-6

      センシング・インサイト Milesight リブランディングのお知らせ

      https://youtu.be/r40DK40DjIY …

    居住者の健康を確保

    ページ上部へ戻る