Armadilloフォーラム

ELS31-Jのファイアウォール無効化設定の自動化について

e211906.pisc

2018年9月21日 13時59分

お世話になっております。
ELS31-Jのファイアウォール無効化設定について質問です。
SDブートを利用した、ELS31-Jのファームウェア更新とファイアウォール無効化設定の自動化を試行しています。
処理の流れとしては下記の通りとなります。

[前提条件]
・インストールイメージディスクの/images/install.shをカスタマイズ
 ⇒update_els31を呼び出すように修正
  els31-firewall-disable、els31-firewall-changeを本体初期化後のルートファイルシステムへ
  コピーするように修正
・ルートファイルシステムの/etc/rc.localをカスタマイズ
 ⇒els31-firewall-disableを呼び出すように修正

[処理の流れ]
1.SDブートによる、ELS31-JファームウェアのアップデートとG3L本体初期化の実行
2.本体初期化完了後、本体電源の再投入による再起動
3.ブート時に実行される/etc/rc.localから、els31-firewall-disableの呼び出し
4.ブート完了を確認後、本体電源の切断
5.電源再投入による本体の再起動

以上の実行で、ファームウェアのアップグレードについては成功しましたが、ファイアウォールは無効化されていませんでした。
その後、TeraTermなどのターミナルソフトを使用して本体の起動状態を確認後に、els31-firewall-disableを実行することで
ファイアウォールが無効化できることは確認できていますが、目標とする自動化については達成できていません。
なお、4.のブート完了の確認については、数分~最長20分ほど放置しました。

els31-firewall-disableを実行するにあたり、必要となる条件があるのでしょうか。

コメント

at_syunya.ohshio

2018年9月26日 16時19分

大塩です。

> [処理の流れ]
> 1.SDブートによる、ELS31-JファームウェアのアップデートとG3L本体初期化の実行
> 2.本体初期化完了後、本体電源の再投入による再起動
> 3.ブート時に実行される/etc/rc.localから、els31-firewall-disableの呼び出し
> 4.ブート完了を確認後、本体電源の切断
> 5.電源再投入による本体の再起動

上記3である「Armadillo起動時の実行」としてrc.localを使用されていますが、最新版のDebianバージョンでは使用を推奨されていません。
起動時の自動実行方法に「systemd」を用いた方法があるため、そちらで[els31-firewall-disable]を自動実行してみてください。

参考:systemdでアプリを自動起動する方法
https://users.atmark-techno.com/blog/6938/2865