2026年1月6日火曜日

D-STAR Gateway のハッキング対策(暫定 iptables)

Back



以前から有ったのですが、最近特にポートサーチなどハッキングの量が増えています。そこで D-STAR Gateway に関しても自動でファイアウォールを設定するスクリプトを配布することが予定されています。

いずれ、推奨される nftables に移行されると思いますが、取り敢えず iptables のルールファイル作成スクリプトがハッキング防止効果を確認後、配布できるよう準備中です。

Copyright © 2026- Created by JARL D-STAR委員会 YASUDA Satoshi 7M3TJZ


スクリプトを実行してファイアウォールをインストール



    すでに iptables をご利用の方は、/etc/iptables/rules.v4 をバックアップしてください。

  1. 次のコマンドを実行してファイアウォールの環境をインストールします。

  2. AlmaLinux
    curl http://app.d-star.info/rpm/dnf/gw_firewall | bash

    Raspberry Pi OS
    curl http://app.d-star.info/debian/bookworm64/rpi-GW/gw_firewall | bash


  3. ファイアウォール (iptables) はすぐに有効になることはありません。

  4. /etc/iptables/rules.v4 と言うファイアウォールのルールを定義したファイルが出来ます。iptables がインストールされていない場合は、関連ファイルとともにインストールされます。


ルールファイル (rules.v4) が出来て居たらすること



    但し、この項目はすでに iptables を利用されている方以外は読み飛ばしてください。

  1. /etc/iptables/rules.v4 の内容を良く確かめ、既存のTCPに関する設定が漏れていた場合次のようにしてください。

  2. /etc/iptables/extra_port というファイルを作成します

  3. 内容はTCPポートの羅列です。(例:8080,8089) Last Heard をお使いの方は 8080 を記入してください。例のように2つ以上の場合、最後にコンマは付けないでください。

    尚、Last Heardでも表示出来るようにしている「管理用WEB」の各ポートについてはインストール時に作成された rules.v4 を確認の上、 記載されていない場合(変更されている場合含む)は extra_port に追記してください。

    この時点で、iptables に精通されている方は rules.v4 の内容で不要なポート等を削除することも可能です。(逆にUDPポートの追加に関しては編集が必要です。)


ルールファイル (rules.v4) に基づいて iptables を有効にする



  1. SSH で実行される方は rules.v4 の内容に間違いなく、使用中の SSH ポートが含まれているか、念を入れて確認してください。

  2. curl の実行で /usr/local/bin/ に jpip_setup がインストールされています。

  3. これを実行してください。
    # jpip_setup
    このコマンドは、curl 直後の再起動によっても実行されます。いきなり再起動する場合は次の項目をよく読んでください。
    (註:/etc/iptables/domestic.save が存在する場合は再起動してもルールが適用されませんのでコマンドを使用してください。)

  4. iptables が有効になっているか確認します。

  5. # iptables -L -n


再起動時に自動実行されること



  1. reboot した時、もし SSH が効かなくなってしまったら(ほぼ起こりません)5分待ってください。

  2. curl 実行時に jpip_setup と供にインストールされている jpip_reset と jpip_purge の機能によって、5分後 iptables によるセキュリティ・ルールが解除されます。

  3. この場合、再度 SSH ポートが合致しているかなどを確認の上再起動し直してみてください。

  4. SSH に問題が無ければ、以後 iptables が解除されないよう次の作業をします。

  5. # nano /usr/local/bin/jpip_reset
      GNU nano	
    		:
    		:
    # 正常に動作が行われることが確認出来た場合は、
    #  下記行をコメントアウトもしくは削除すること
    #  その後、PCを再起動
    #at now+5 min -f /usr/local/bin/jpip_purge

    最終行をコメントアウト(又は削除)してください。
    この時点では iptabels が有効になっていない状況なので、もう一度再起動します。

  6. 最後にもう一度 iptables が有効になっているか確認します。

  7. # iptables -L -n

    これですべての作業が終了です。以後 iptables によって異常なアクセスは拒否されます。


運用管理については ファイアウォール (iptables) を管理するをご覧ください。


0 件のコメント:

コメントを投稿