
DeadManSwitch en Rust con varios disparadores (remotos, locales y de red)

Dead Man Switch es una aplicación de seguridad multiplataforma escrita en Rust que protege automáticamente datos sensibles en situaciones de emergencia. La aplicación supervisa múltiples mecanismos de activación y ejecuta procedimientos inmediatos de bloqueo del sistema cuando se activa, incluido el desmontaje de volúmenes cifrados y el apagado controlado del sistema.
Edite src/config.rs para personalizar la configuración:
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 en Telegram/newbotForma básica:
./DeadManSwitch --mode <modes> [--trigger]
--mode: lista de modos separada por comas. Si se omite, se usa all.--trigger: ejecuta las acciones inmediatamente y muestra la interfaz de alerta, sin esperar ningún disparador externo.Modos disponibles:
timer – Temporizador de latido de Telegrambot – Disparador manual de Telegramnet – Oyente de difusión UDPusb – Disparador por VID/PID USBflic – Disparador por botón Flicall – Todos los anterioresEjemplos:
# All triggers (default)
./DeadManSwitch
# Only Telegram heartbeat + USB
./DeadManSwitch --mode timer,usb
# Only network broadcast
./DeadManSwitch --mode net
# Manual trigger only
./DeadManSwitch --trigger
Se activa automáticamente después del período de tiempo de espera especificado sin registro (check-in).
Configuración:
telegram_heartbeat_timeout: 3600 // seconds
Ejecución:
./DeadManSwitch --mode timer
Comandos de Telegram:
/alive - Reinicia el temporizador de cuenta regresiva/status - Consulta el tiempo restanteComportamiento:
Interfaz de control manual remota.
Configuración:
Ejecución:
./DeadManSwitch --mode bot
Comando:
/dms execute - Activación manual del disparadorMecanismo de activación basado en LAN.
Configuración:
broadcast_port: 45370
broadcast_message: "trigger_dms"
Ejecución:
# Protected machine
./DeadManSwitch --mode net
# Trigger from network
echo "trigger_dms" | nc -u -b 255.255.255.255 45370
Activación basada en hardware al conectar un dispositivo.
Identificación de los ID de dispositivo:
git clone https://github.com/BlackSnufkin/Rusty-Playground.git
cd Rusty-Playground/USB_mon
cargo run
# Connect device and note vendor:product IDs
Configuración:
usb_vendor_id: 0x090c
usb_product_id: 0x1000
Ejecución:
./DeadManSwitch --mode usb
Mecanismo de activación por botón físico.
Instalación del servidor:
Emparejamiento del botón:
./simpleclient scan
./simpleclient connect <button_address>
Configuración:
flic_ip: "192.168.1.242".to_string() // or "auto" for detection
Ejecución:
./DeadManSwitch --mode flic
Activación: Mantén presionado el botón
ActionExecutor para desmontar y apagar al activarse