
複数のトリガー(リモート、ローカル、ネットワーク)を備えたRust製DeadManSwitch

Dead Man Switch は Rust で書かれたクロスプラットフォーム対応のセキュリティアプリケーションで、緊急時に機密データを自動的に保護します。このアプリケーションは複数のトリガー機構を監視し、起動時に即座にシステムロックダウン手順を実行します。暗号化ボリュームのマウント解除やシステムの制御付きシャットダウンなどを含みます。
src/config.rs を編集して設定をカスタマイズします:
pub fn default() -> Result<Self> {
Self::new(
"YOUR_TELEGRAM_BOT_TOKEN".to_string(),
3600, // ハートビートタイムアウト(秒)
45370, // ネットワークブロードキャストポート
"trigger_dms".to_string(), // ネットワークトリガーメッセージ
"execute".to_string(), // 手動トリガーコマンド
0x090c, // USB ベンダー ID
0x1000, // USB プロダクト ID
"auto".to_string(), // Flic IP(自動検出)
5551, // Flic ポート
)
}
@BotFather に連絡する/newbot コマンドを実行する基本形式:
./DeadManSwitch --mode <modes> [--trigger]
--mode: モードのカンマ区切りリスト。省略した場合は all が使用されます。--trigger: 外部トリガーを待たずに、アクションを即座に実行しアラート UI を表示します。利用可能なモード:
timer – Telegram ハートビートタイマーbot – Telegram 手動トリガーnet – UDP ブロードキャストリスナーusb – USB VID/PID トリガーflic – Flic ボタントリガーall – 上記すべて例:
# すべてのトリガー(デフォルト)
./DeadManSwitch
# Telegram ハートビート + USB のみ
./DeadManSwitch --mode timer,usb
# ネットワークブロードキャストのみ
./DeadManSwitch --mode net
# 手動トリガーのみ
./DeadManSwitch --trigger
チェックインが指定されたタイムアウト期間を過ぎると自動的にトリガーされます。
設定:
telegram_heartbeat_timeout: 3600 // 秒
実行:
./DeadManSwitch --mode timer
Telegram コマンド:
/alive - カウントダウンタイマーをリセット/status - 残り時間を照会動作:
リモート手動制御インターフェース。
セットアップ:
実行:
./DeadManSwitch --mode bot
コマンド:
/dms execute - 手動トリガーを起動LAN ベースのトリガー機構。
設定:
broadcast_port: 45370
broadcast_message: "trigger_dms"
実行:
# 保護対象マシン
./DeadManSwitch --mode net
# ネットワークからのトリガー
echo "trigger_dms" | nc -u -b 255.255.255.255 45370
デバイス接続時にハードウェアベースで起動します。
デバイス ID の特定:
git clone https://github.com/BlackSnufkin/Rusty-Playground.git
cd Rusty-Playground/USB_mon
cargo run
# デバイスを接続し、vendor:product ID を確認する
設定:
usb_vendor_id: 0x090c
usb_product_id: 0x1000
実行:
./DeadManSwitch --mode usb
物理ボタンによる起動機構。
サーバーのインストール:
ボタンのペアリング:
./simpleclient scan
./simpleclient connect <button_address>
設定:
flic_ip: "192.168.1.242".to_string() // または検出用に "auto"
実行:
./DeadManSwitch --mode flic
起動: ボタンを長押し
ActionExecutor を設定する