
DeadManSwitch на Rust с несколькими триггерами (удалёнными, локальными и сетевыми)

Dead Man Switch — это кроссплатформенное приложение для обеспечения безопасности, написанное на Rust, которое автоматически защищает конфиденциальные данные в экстренных ситуациях. Приложение отслеживает несколько механизмов запуска и при активации немедленно выполняет процедуры блокировки системы, включая размонтирование зашифрованных томов и контролируемое завершение работы системы.
Отредактируйте src/config.rs, чтобы настроить параметры:
pub fn default() -> Result<Self> {
Self::new(
"YOUR_TELEGRAM_BOT_TOKEN".to_string(),
3600, // Heartbeat timeout (seconds)
45370, // Network broadcast port
"trigger_dms".to_string(), // Network trigger message
"execute".to_string(), // Manual trigger command
0x090c, // USB vendor ID
0x1000, // USB product ID
"auto".to_string(), // Flic IP (auto-detected)
5551, // Flic port
)
}
@BotFather в Telegram/newbotБазовый вид:
./DeadManSwitch --mode <modes> [--trigger]
--mode: список режимов через запятую. Если не указан, используется all.--trigger: немедленно выполнить действия и показать интерфейс оповещения, не дожидаясь внешнего триггера.Доступные режимы:
timer — Heartbeat-таймер Telegrambot — ручной запуск через Telegramnet — прослушивание UDP-широковещательных сообщенийusb — триггер по USB VID/PIDflic — триггер кнопки Flicall — все перечисленные вышеПримеры:
# Все триггеры (по умолчанию)
./DeadManSwitch
# Только heartbeat Telegram + USB
./DeadManSwitch --mode timer,usb
# Только сетевое широковещание
./DeadManSwitch --mode net
# Только ручной запуск
./DeadManSwitch --trigger
Автоматически срабатывает после заданного времени ожидания без проверки связи.
Конфигурация:
telegram_heartbeat_timeout: 3600 // seconds
Запуск:
./DeadManSwitch --mode timer
Команды Telegram:
/alive — сбросить таймер обратного отсчёта/status — запросить оставшееся времяПоведение:
Удалённый интерфейс ручного управления.
Настройка:
Запуск:
./DeadManSwitch --mode bot
Команда:
/dms execute — активация ручного запускаМеханизм запуска на основе LAN.
Конфигурация:
broadcast_port: 45370
broadcast_message: "trigger_dms"
Запуск:
# Protected machine
./DeadManSwitch --mode net
# Trigger from network
echo "trigger_dms" | nc -u -b 255.255.255.255 45370
Аппаратная активация при подключении устройства.
Определение идентификаторов устройств:
git clone https://github.com/BlackSnufkin/Rusty-Playground.git
cd Rusty-Playground/USB_mon
cargo run
# Connect device and note vendor:product IDs
Конфигурация:
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() // or "auto" for detection
Запуск:
./DeadManSwitch --mode flic
Активация: нажмите и удерживайте кнопку
ActionExecutor на размонтирование и завершение работы при срабатывании