SafeExecは、サーバー上の特定のコマンドをWebブラウザから実行するための、セキュリティとシンプルさを両立させたツールです。SSHアクセスを制限したい、あるいは特定の操作(サービスの再起動、ログの確認、バックアップの実行など)を非エンジニアでも安全に行えるようにしたいといった場面で威力を発揮します。
Python 3.xとBottleフレームワークを使用した超軽量設計により、セットアップは数分で完了します。また、CGIモードにも対応しているため、既存のApacheやNginx環境への導入も容易です。
実行可能なコマンドは `config.json` で明示的に許可したものだけに制限されます。任意のコマンド実行を許さない設計です。
OS情報、ディスク使用量、メモリ使用量、ネットワーク状態など、サーバーの稼働状況を一目で把握できる診断機能を搭載。
Bootstrap 5を採用し、PCはもちろんスマートフォンやタブレットからも快適に操作可能なモダンなインターフェースを提供。
実行履歴はファイルに記録。ファイル書き込みに失敗した場合でも、システム全体の動作が停止しないエラー耐性の高い設計です。
内蔵サーバーによるスタンドアロン実行と、Apache等のWebサーバー上でのCGI実行の両方に対応しています。
コマンド実行結果のワンクリックコピー、実行中のプログレス表示、UTF-8以外の出力文字化け対策など、現場のニーズに応える機能を凝縮。
Python 3.7以降が必要です。必要なパッケージをインストールします。
pip install bottle jinja2
プロジェクトルートの `config.json` を編集して、パスワードや許可するコマンドを定義します。
{
"PASSWORD": "your-secure-password",
"ALLOWED_COMMANDS": {
"システム更新": "sudo apt update",
"ディスク確認": "df -h",
"サービス再起動": "sudo systemctl restart nginx"
},
"CGI_MODE": false,
"LOG_FILE": "command_runner.log"
}
以下のコマンドを実行してサーバーを起動します。(CGIモードでの動作はREADMEを確認)
python index.py
ブラウザで http://localhost:8082 にアクセスし、設定したパスワードでログインしてください。
SafeExecは、GNU Affero General Public License v3.0 (AGPL-3.0) の下で公開されています。オープンソースとして自由にご利用・改善いただけますが、ネットワーク経由でサービスを提供する場合もソースコードの公開義務が発生します。
以下のようなご要望がございましたら、お気軽に 門王 までお問い合わせください。
「シンプルで使いやすい」をモットーに、小規模ツールからウェブアプリケーションまで幅広く開発を行っています。 SafeExecの他にも、実用的で役立つツールを公開しています。ぜひホームページをチェックしてください。
https://monou.jp