Skip to content

Instantly share code, notes, and snippets.

@TakashiSasaki
Last active October 28, 2024 01:52
Show Gist options
  • Save TakashiSasaki/b375f6dfabab7a74ef221cdbfbf58227 to your computer and use it in GitHub Desktop.
Save TakashiSasaki/b375f6dfabab7a74ef221cdbfbf58227 to your computer and use it in GitHub Desktop.
GL-AXT1800 の /etc/config ディレクトリの概要

/etc/config/dropbear の設定ファイルに関する説明

/etc/config/dropbear は、Dropbear SSHサーバーの設定を管理するファイルです。Dropbearは、リソースの少ない環境で利用されることが多い軽量なSSHサーバーであり、OpenWrtなどの組み込みシステムやルータでよく使用されます。/etc/config/dropbear ファイルを通じて、SSHサーバーの動作やセキュリティ設定をカスタマイズできます。

/etc/config/dropbear の基本的な構造

以下は、典型的な/etc/config/dropbearファイルの例です。

config dropbear
        option PasswordAuth 'on'
        option RootPasswordAuth 'on'
        option Port '22'
#       option BannerFile '/etc/banner'

このファイルは、設定項目(option)とその値によって構成されており、SSHサーバーの動作に関する詳細な設定が記述されています。

各オプションの詳細

  1. option PasswordAuth 'on':

    • この設定は、パスワード認証の有効/無効を指定します。'on'に設定されている場合、パスワードを使ってSSHログインが可能になります。セキュリティを強化するため、公開鍵認証のみを使用したい場合は、'off'に設定することを推奨します。
    • 例: パスワード認証を無効にする場合
      uci set dropbear.@dropbear[0].PasswordAuth='off'
      uci commit dropbear
  2. option RootPasswordAuth 'on':

    • ルートユーザーでのパスワード認証を許可する設定です。'on'に設定されていると、ルートユーザーがパスワードを使ってSSHでログインできますが、セキュリティ上のリスクが高いため、ルートログインは公開鍵認証に限定することが一般的です。これを無効にするには、'off'に設定します。
    • 例: ルートユーザーのパスワード認証を無効化する場合
      uci set dropbear.@dropbear[0].RootPasswordAuth='off'
      uci commit dropbear
  3. option Port '22':

    • SSHサーバーがリッスンするポート番号を指定します。デフォルトは22ですが、セキュリティ向上のために、他の非標準ポートに変更することが推奨されることがあります。
    • 例: SSHポートを2222に変更する場合
      uci set dropbear.@dropbear[0].Port='2222'
      uci commit dropbear
  4. option BannerFile '/etc/banner':

    • SSHログイン時に表示されるバナーファイルを指定します。このオプションが有効になると、ログイン時に指定したテキストが表示されます。セキュリティ警告や法的通知を表示する際に使用されます。デフォルトではコメントアウトされていますが、バナーを設定したい場合はコメントを解除します。
    • 例: /etc/bannerファイルを有効にする場合
      uci set dropbear.@dropbear[0].BannerFile='/etc/banner'
      uci commit dropbear

設定ファイルの管理と操作

/etc/config/dropbearの設定内容は、手動で編集することもできますが、推奨される方法は**uciコマンド**を使用して管理することです。uciを使えば、設定の取得、変更、保存を簡単に行うことができます。以下はよく使われるコマンドの例です。

設定を確認する

/etc/config/dropbearファイルの内容を確認するには、次のコマンドを実行します。

uci show dropbear

設定を変更する

たとえば、パスワード認証を無効化するには、次のコマンドを実行します。

uci set dropbear.@dropbear[0].PasswordAuth='off'
uci commit dropbear

変更を保存した後、Dropbearサービスを再起動して変更を適用します。

/etc/init.d/dropbear restart

設定のリセット

変更内容を元に戻したい場合は、次のコマンドを使って設定をリセットします。

uci revert dropbear

具体例: 公開鍵認証のみにする

セキュリティを強化するため、パスワード認証を無効にして、公開鍵認証のみに設定する場合の手順は以下の通りです。

  1. パスワード認証を無効化します。

    uci set dropbear.@dropbear[0].PasswordAuth='off'
  2. ルートユーザーのパスワード認証も無効化します。

    uci set dropbear.@dropbear[0].RootPasswordAuth='off'
  3. 設定を保存し、Dropbearを再起動します。

    uci commit dropbear
    /etc/init.d/dropbear restart

これにより、ルートユーザーを含めてパスワード認証が無効化され、公開鍵認証のみが有効な状態になります。

まとめ

/etc/config/dropbear は、GL-AXT1800のようなOpenWrtベースのルータにおいて、SSHアクセスを制御する重要な設定ファイルです。このファイルを通じて、パスワード認証の有効/無効やルートユーザーのアクセス制限、使用ポートの変更など、SSHに関連するセキュリティ設定を柔軟に調整できます。

uciコマンドを活用することで、これらの設定を簡単に管理できるため、セキュリティ強化やアクセス管理が効率的に行えます。

GL-AXT1800 の /etc/config ディレクトリの概要

GL-iNet社のGL-AXT1800は、OpenWrtをベースとしたルータであり、設定ファイルは/etc/configディレクトリに保存されています。このディレクトリには、ネットワーク、ファイアウォール、VPNなど、システム全体のさまざまな設定ファイルが集約されています。各ファイルは、特定のサービスや機能に対応しており、これらの設定を直接編集するか、あるいはuciコマンドを使って管理することができます。

/etc/config ディレクトリの内容

以下は、GL-AXT1800の/etc/configディレクトリに含まれる主な設定ファイルの一覧です。これらは、システムの運用において重要な役割を果たします。

adguardhome          gl_led               nas                  switch-button
apnprofile           gl_logread           network              system
board_special        gl_macclone          nss                  tailscale
custom_apn           gl_mwan3             openvpn              thermal
ddns                 gl_nas               oui-httpd            tor
dhcp                 gl_s2s               ovpnclient           ubootenv
dropbear             gl_timer             ovpnserver           ucitrack
edgerouter           glconfig             parental_control     uhttpd
firewall             glfan                plugins              upgrade
fstab                glforward            qos                  vpnpolicy
fullconenat          glipv6               repeater             wan-access
gl-black_white_list  glmodem              rpcd                 wireguard
gl-cloud             glmqtt               rtty                 wireguard_server
gl-dns               kmwan                samba4               wireless
gl-tertf             luci                 sip_alg              zerotier
gl_block             minidlna             stubby
gl_ddns              mwan3                stubby-vpn

主要な設定ファイルの解説

  • network: ルータのネットワーク設定を管理します。インターフェースやIPアドレス、ゲートウェイ、DNSサーバーの設定が含まれています。ネットワークの基本的な構成を変更するために使用されます。

  • firewall: ルータのファイアウォール設定を管理します。ルール、ゾーン、転送ポリシーなど、セキュリティに関する設定が記載されています。

  • dhcp: DHCPサーバーの設定を管理します。IPアドレスのリース範囲や固定IPの割り当て設定をここで行います。

  • dropbear: SSHサーバーであるDropbearの設定ファイルです。SSHアクセスに関する設定(ポート、認証方式など)が記載されています。これにより、リモート管理やSSHアクセスの制御が行われます。

  • wireguard / wireguard_server: WireGuard VPNの設定ファイルです。VPN接続のためのキーやインターフェース設定が含まれています。

  • openvpn / ovpnclient / ovpnserver: OpenVPNのクライアントおよびサーバー設定を管理するファイルです。OpenVPNを使ったVPN接続を構成するために使用されます。

  • samba4: Windows共有プロトコルを提供するSambaの設定ファイルです。ネットワーク上でのファイル共有を設定します。

  • uhttpd: LuCIインターフェースを提供する軽量のWebサーバーの設定ファイルです。Webインターフェースを介してルータを管理するための設定を行います。

  • vpnpolicy: VPN接続のポリシー設定です。特定のトラフィックをVPN経由にするかどうかを決定するためのポリシールールを定義します。

  • ddns: ダイナミックDNSの設定を管理するファイルです。ダイナミックに変化するIPアドレスに対応して、ホスト名を管理する設定が含まれています。

カスタム設定ファイル(GL-iNet固有)

GL-AXT1800には、GL-iNet固有の設定ファイルも含まれており、それらはgl_で始まるファイル名を持っています。これらは、GL-iNet社の提供する独自の機能を設定するためのもので、特に以下のものがあります。

  • gl_cloud: GL-iNetクラウドサービスに関連する設定。
  • gl_ddns: GL-iNet独自のダイナミックDNS設定。
  • gl_led: ルータのLEDライトの動作を管理します。
  • gl_s2s: GL-iNetのSite-to-Site VPN設定。
  • gl_nas: ネットワークアタッチトストレージ(NAS)の設定。

設定ファイルの管理方法

GL-AXT1800の設定ファイルは、手動で編集することも可能ですが、推奨される方法は**uciコマンド**を使用することです。uciコマンドは、OpenWrtシステム全体の設定を一元的に管理できる統一インターフェースであり、設定の取得、変更、保存を簡単に行うことができます。

例: dropbearの設定を確認するには、次のようにコマンドを実行します。

uci show dropbear

設定の変更後は、commitコマンドを使用して保存し、変更を適用します。

uci commit dropbear
/etc/init.d/dropbear restart

まとめ

GL-AXT1800の/etc/configディレクトリには、ルータの各種機能に対応する多くの設定ファイルが含まれています。これらの設定は手動で編集可能ですが、効率的かつ安全に管理するためには、uciコマンドを使用することが推奨されます。GL-iNet独自の機能を管理するための設定ファイルも存在しており、柔軟で高度なカスタマイズが可能です。

GL-A1300のuci showコマンドで表示されたDropbear関連の設定に関する説明

GL-A1300のルータでは、Dropbear SSHサーバーが設定されており、その詳細をuci showコマンドを通じて確認することができます。以下は、表示されたDropbearの設定項目についての詳細な説明です。

表示された設定例

dropbear.@dropbear[0]=dropbear
dropbear.@dropbear[0].PasswordAuth='on'
dropbear.@dropbear[0].RootPasswordAuth='on'
dropbear.@dropbear[0].Port='22'
dropbear.@dropbear[0].RootLogin='1'
dropbear.@dropbear[0].PubkeyAuth='on'
dropbear.@dropbear[0].AuthorizedKeysFile='/etc/dropbear/authorized_keys'
luci.flash_keep.dropbear='/etc/dropbear/'
ucitrack.@dropbear[0]=dropbear
ucitrack.@dropbear[0].init='dropbear'

各オプションの詳細

  1. dropbear.@dropbear[0]=dropbear:

    • Dropbearのインスタンスの定義。@dropbear[0]は最初のインスタンスを指します。
  2. dropbear.@dropbear[0].PasswordAuth='on':

    • パスワード認証が有効になっている設定です。'on'に設定されていると、SSHログイン時にパスワードを使ってログインできます。
    • セキュリティ考慮: セキュリティを強化したい場合は、公開鍵認証のみを許可し、この設定を'off'にすることが推奨されます。
  3. dropbear.@dropbear[0].RootPasswordAuth='on':

    • ルートユーザーのパスワード認証が有効な設定です。ルートアカウントでのパスワード認証ログインを許可しています。
    • セキュリティ考慮: ルートユーザーでのパスワードログインはセキュリティリスクがあるため、必要がなければ無効化することが推奨されます。
  4. dropbear.@dropbear[0].Port='22':

    • SSHサーバーの待ち受けポート番号。デフォルトのポート22が設定されています。
    • セキュリティ考慮: 標準ポート22を変更することで、スキャン攻撃を回避する可能性があります(例: 2222などに変更)。
  5. dropbear.@dropbear[0].RootLogin='1':

    • ルートユーザーのSSHログインを許可する設定です。'1'で有効化されています。
    • セキュリティ考慮: ルートログインはセキュリティリスクを伴うため、必要がなければ無効化することが推奨されます。
  6. dropbear.@dropbear[0].PubkeyAuth='on':

    • 公開鍵認証が有効な設定です。'on'に設定されていると、公開鍵を使ってSSHログインが可能です。
    • 推奨: パスワード認証を無効化し、公開鍵認証のみを有効にすることでセキュリティを強化できます。
  7. dropbear.@dropbear[0].AuthorizedKeysFile='/etc/dropbear/authorized_keys':

    • SSHの公開鍵認証に使用される公開鍵を保存するファイルのパスです。/etc/dropbear/authorized_keysに指定されています。
  8. luci.flash_keep.dropbear='/etc/dropbear/':

    • この設定は、ファームウェアの更新時に/etc/dropbear/ディレクトリ内のファイルを保持することを示します。これにより、公開鍵などの重要なファイルがファームウェアの更新後も消去されません。
  9. ucitrack.@dropbear[0]=dropbear:

    • ucitrackは、dropbearに関連するサービスや設定ファイルの変更を追跡する設定です。
  10. ucitrack.@dropbear[0].init='dropbear':

    • ucitrackがDropbearの初期化スクリプトを追跡しており、設定の変更時にサービスの再起動などが適用されることを示します。

設定の変更例

Dropbearの設定を変更するには、uciコマンドを使用します。たとえば、パスワード認証を無効化して公開鍵認証のみにするには、次の手順を行います。

  1. パスワード認証を無効にする:

    uci set dropbear.@dropbear[0].PasswordAuth='off'
  2. ルートユーザーのパスワード認証を無効にする:

    uci set dropbear.@dropbear[0].RootPasswordAuth='off'
  3. 設定を保存し、Dropbearを再起動する:

    uci commit dropbear
    /etc/init.d/dropbear restart

これにより、SSHでのパスワード認証が無効化され、公開鍵認証のみが有効になります。

まとめ

GL-A1300のDropbearに関するuci showで表示された設定は、SSHアクセスに関するセキュリティとアクセス管理の重要な要素を管理しています。特に、パスワード認証の有効化やルートユーザーのアクセス制限はセキュリティの観点から見直す必要があります。uciコマンドを使用することで、これらの設定を簡単にカスタマイズし、SSHアクセスの安全性を高めることができます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment