
DeadManSwitch in Rust mit mehreren Triggern (remote, lokal und Netzwerk)

Dead Man Switch ist eine plattformübergreifende Sicherheitsanwendung, geschrieben in Rust, die sensible Daten in Notsituationen automatisch schützt. Die Anwendung überwacht mehrere Auslösemechanismen und führt bei Aktivierung sofortige System-Lockdown-Verfahren durch, einschließlich des Aushängens verschlüsselter Volumes und des kontrollierten Herunterfahrens des Systems.
Bearbeiten Sie src/config.rs zur Anpassung der Einstellungen:
pub fn default() -> Result<Self> {
Self::new(
"YOUR_TELEGRAM_BOT_TOKEN".to_string(),
3600, // Heartbeat-Timeout (Sekunden)
45370, // Netzwerk-Broadcast-Port
"trigger_dms".to_string(), // Netzwerk-Auslösenachricht
"execute".to_string(), // Manueller Auslösebefehl
0x090c, // USB-Hersteller-ID
0x1000, // USB-Produkt-ID
"auto".to_string(), // Flic-IP (automatisch erkannt)
5551, // Flic-Port
)
}
@BotFather auf Telegram/newbot ausGrundform:
./DeadManSwitch --mode <Betriebsarten> [--trigger]
--mode: Komma-getrennte Liste der Betriebsarten. Wenn ausgelassen, wird all verwendet.--trigger: Aktionen sofort ausführen und die Alarm-Benutzeroberfläche anzeigen, ohne auf einen externen Auslöser zu warten.Verfügbare Betriebsarten:
timer – Telegram-Heartbeat-Timerbot – Manueller Telegram-Triggernet – UDP-Broadcast-Empfängerusb – USB-VID/PID-Triggerflic – Flic-Button-Triggerall – Alle oben genanntenBeispiele:
# Alle Trigger (Standard)
./DeadManSwitch
# Nur Telegram-Heartbeat + USB
./DeadManSwitch --mode timer,usb
# Nur Netzwerk-Broadcast
./DeadManSwitch --mode net
# Nur manueller Trigger
./DeadManSwitch --trigger
Wird automatisch nach dem festgelegten Timeout ohne Check-in ausgelöst.
Konfiguration:
telegram_heartbeat_timeout: 3600 // Sekunden
Ausführung:
./DeadManSwitch --mode timer
Telegram-Befehle:
/alive - Countdown-Timer zurücksetzen/status - Verbleibende Zeit abfragenVerhalten:
Fernbedienungsschnittstelle zur manuellen Steuerung.
Einrichtung:
Ausführung:
./DeadManSwitch --mode bot
Befehl:
/dms execute - Manuelle AuslöseaktivierungLAN-basierter Auslösemechanismus.
Konfiguration:
broadcast_port: 45370
broadcast_message: "trigger_dms"
Ausführung:
# Geschütztes Gerät
./DeadManSwitch --mode net
# Vom Netzwerk aus auslösen
echo "trigger_dms" | nc -u -b 255.255.255.255 45370
Hardware-basierte Aktivierung beim Anschließen eines Geräts.
Geräte-IDs ermitteln:
git clone https://github.com/BlackSnufkin/Rusty-Playground.git
cd Rusty-Playground/USB_mon
cargo run
# Gerät anschließen und Hersteller-:Produkt-IDs notieren
Konfiguration:
usb_vendor_id: 0x090c
usb_product_id: 0x1000
Ausführung:
./DeadManSwitch --mode usb
Physischer Button-Aktivierungsmechanismus.
Server-Installation:
Button-Pairing:
./simpleclient scan
./simpleclient connect <button_address>
Konfiguration:
flic_ip: "192.168.1.242".to_string() // oder "auto" zur Erkennung
Ausführung:
./DeadManSwitch --mode flic
Aktivierung: Button gedrückt halten
ActionExecutor so, dass bei Auslösung ausgehängt und heruntergefahren wird