yorikasa
2025年6月23日 18時28分
いつもお世話になっております。
==========
製品型番:AG6221
ABOSバージョン:3.21.3-at.7
カーネルバージョン:Linux armadillo 5.10.236-1-at #2-Alpine Tue Apr 22 02:43:01 UTC 2025 armv7l Linux
3G/LTE モジュール情報 (Debianのみ):
その他:
ABOS-Webのバージョン:Version: 1.7.4
==========
ABOS-Webのパスワードをエンドユーザーに入力してもらうようにする方法について質問させていただきます。
ABOS-Webを利用するためには、「3.1.5.1. initial_setup.swu の作成」にもある通り、パスワードの設定が必要かと思います。
こちら、パスワードの設定なしで出荷しエンドユーザーにパスワードを設定していただくため、「https://:58080/new_password」へアクセスだけは許可できるように設定を変更することはできないのでしょうか?
パスワードは、取扱説明書等のドキュメントで公開することで、初回にArmadilloを出荷した際に変更していただくよう促すことは可能かと思いますが、パスワードを変更せずに利用する可能性もあるため、出来るなら初期状態でパスワードを設けたくないと思った次第です。
よろしくお願いいたします。
コメント
yorikasa
yorikasa
マルティネさん
教えていただいた内容について対応してみたのですが、new_passwordにアクセスが出来ませんでした。
/etc/shadowと/etc/init.d/abos-webについて確認したところ、内容はあっているように思えます。
# cat /etc/shadow | grep abos-web abos-web-admin:!:19963:0:99999:7::: # cat /etc/init.d/abos-web #!/sbin/openrc-run # SPDX-License-Identifier: MIT pidfile="/run/abos-web.pid" name="abos-web" command="/usr/bin/$name" command_background="yes" start_stop_daemon_args="--user abos-web-admin:abos-web-admin" depend() { need net } generate_tls_key() { local cert=/etc/atmark/abos_web/tls/cert.pem \ key=/etc/atmark/abos_web/tls/key.pem \ keep_old="" if ! [ -e "$cert" ]; then einfo "ABOS Web certificate missing, generating certificate..." elif [ "$(date +%s)" -lt 1707171804 ]; then # date it too old, NTP was not obtained -- skip checking date return elif ! openssl verify -CAfile "$cert" "$cert" >/dev/null 2>&1; then einfo "ABOS Web certificate is not valid, regenerating it" # keep old key for debug mv "$cert" "$cert.old" mv "$key" "$key.old" keep_old=1 else # certificate is present & valid return fi mkdir -p /etc/atmark/abos_web/tls || return # accept a handful of avahi addresses local altnames="DNS.1:armadillo.local" i for i in $(seq 2 16); do altnames="$altnames, DNS.$i:armadillo-$i.local" done # and localhost and containers 'host' aliases: altnames="$altnames, DNS.17:localhost" altnames="$altnames, DNS.18:host.containers.internal" # .. as well as their IP altnames="$altnames, IP.1:127.0.0.1, IP.2:::1, IP.3:10.88.0.1" openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:secp384r1 -x509 \ -nodes -days 3650 -subj '/CN=armadillo.local' \ -addext "subjectAltName = $altnames" -batch \ -out "$cert" -keyout "$key" \ || return chown -R abos-web-admin: /etc/atmark/abos_web/tls persist_file "$cert" "$key" ${keep_old:+"$cert.old" "$key.old"} } declare_avahi_service() { # this file stays in ram, so we do not advertise abos-web # if we do not start it if [ -d /etc/avahi/services ]; then cat > /etc/avahi/services/abos-web.service <<'EOF' <?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">%h abos-web</name> <service> <type>_https._tcp</type> <port>58080</port> </service> </service-group> EOF fi } start() { # prepare tls self-signed certificate pair if none found generate_tls_key declare_avahi_service default_start } stop_pre() { # remove avahi announce rm -f /etc/avahi/services/abos-web.service }
> すでに入力した場合は initial_setup.desc を直接に編集して abos-web-admin のパスワード変更行を usermod -p '!' abos-web-admin に変更してください
こちらについてなのですが、既にパスワードを空の状態の状態で利用していた場合、以下のようにdescに追加すると挙動が変わってしまい、アクセス拒否のままになってしまうのでしょうか?
私の認識誤りがございましたら、コメントをいただけますと幸いです。
# set abos-web-admin swdesc_command --description "setting passwords" \ "usermod -p '!' abos-web-admin"
どうぞよろしくお願いいたします。
yorikasa
at_dominique.m…
2025年6月23日 18時51分
マルティネです。
> ABOS-Webのパスワードをエンドユーザーに入力してもらうようにする方法について質問させていただきます。
>
> ABOS-Webを利用するためには、「3.1.5.1. initial_setup.swu の作成」にもある通り、パスワードの設定が必要かと思います。
> こちら、パスワードの設定なしで出荷しエンドユーザーにパスワードを設定していただくため、「https://:58080/new_password」へアクセスだけは許可できるように設定を変更することはできないのでしょうか?
> パスワードは、取扱説明書等のドキュメントで公開することで、初回にArmadilloを出荷した際に変更していただくよう促すことは可能かと思いますが、パスワードを変更せずに利用する可能性もあるため、出来るなら初期状態でパスワードを設けたくないと思った次第です。
すみません、あまり考えてなかったケースです。
abos-web 単体の動きとしてはパスワードが設定されてないと確かに new_password で設定できるようになりますが、initial setup がインストールされた Armadillo でパスワードがないと abos-web が起動できないようになってますね…
対応は難しくないですが今月のリリースはもうしめてしまって、7月で対応しようと思います。
それまでは
* mkswu --init 時に abos-web のパスワードが問われる時に空のパスワードを入力してください。すでに入力した場合は initial_setup.desc を直接に編集して abos-web-admin のパスワード変更行を
usermod -p '!' abos-web-admin
に変更してください(インストール済みで試したい場合はabos-ctrl certificates reset
で再びインストールできます。空の入力で生成してすでにパスワードを設定した場合はリセットされませんのでその場合は初期化してください。)* /etc/init.d/abos-web の start() 関数を直接に編集して、頭部分の 「
# refuse to start if password has not been set
」if 部分を削除してください:* persist_file /etc/init.d/abos-web で永続化して再起動してみてください。
アップデートでこのファイルが上書きされます。7月のアップデートで変数を使ってテストを追加しますので、その時は
/etc/atmark/abos_web/init.conf
にABOSWEB_ALLOW_EMPTY_LOGIN=1
を記載していただければ、パスワードを設定してなくても起動するようになります。よろしくお願いします。