Как автоматически блокировать трафик на Mac при остановке sshuttle
В условиях современного интернет-пространства безопасность и конфиденциальность данных становятся все более важными. Использование виртуальных частных сетей (VPN) позволяет скрыть ваши данные от нежелательных глаз. Одним из полезных инструментов для этого является программа sshuttle
. Но как обеспечить максимальную безопасность и автоматически блокировать весь трафик, если sshuttle
перестает работать? В этой статье мы рассмотрим решение этой задачи.
Использование sshuttle для изменения IP
С помощью команды sshuttle -v -r [email protected] 0/0
вы можете изменить ваш IP-адрес, направив весь трафик через удаленный сервер. Это позволяет вам оставаться анонимным в сети и защищать свои данные. Однако возникновение проблем, таких как потеря соединения или аварийное завершение работы сервиса, может привести к тому, что ваш настоящий IP-адрес снова станет доступным.
Автоматическая блокировка трафика
Для обеспечения безопасности можно создать сценарий, который будет автоматически блокировать весь трафик через интерфейс вашего Mac, если sshuttle
перестанет работать. Используем следующий bash-скрипт:
#!/bin/bash
# Включить интерфейс en0
/sbin/ifconfig en0 up
sleep 1 # Ждем, пока интерфейс запустится
# Запустить sshuttle, и в случае ошибки отключить en0 и отправить уведомление на macOS
/opt/homebrew/bin/sshuttle -vr [email protected] 0/0 --ssh-cmd "ssh -i /Users/dara/.ssh/id_ed25519" || {
/sbin/ifconfig en0 down
osascript -e 'display notification "No longer protected. check vpn-check.sh in home and com.dara.script.plist" with title "Error"'
}
Создание LaunchAgent для автоматического выполнения скрипта
Чтобы сделать скрипт автоматическим, добавьте его в ~/Library/LaunchAgents/com.dara.script.plist
. Данный файл будет управлять выполнением вашего скрипта:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.dara.script</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/sudo</string>
<string>/Users/dara/vpn-check.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/script.err</string>
<key>StandardOutPath</key>
<string>/tmp/script.out</string>
</dict>
</plist>
Как работает система аварийного отключения
С помощью данной конфигурации ваш Mac будет автоматически проверять состояние sshuttle
. Если соединение будет потеряно, скрипт отключит сетевой интерфейс и отправит уведомление, сигнализируя о том, что ваша защита была нарушена. Это гарантирует, что вы не будете случайно открыты в сети, когда sshuttle
перестанет работать.
Заключение
С помощью sshuttle
и небольшого скрипта вы можете значительно повысить уровень безопасности и конфиденциальности, автоматически блокируя трафик при проблемах с подключением. Этот подход подходит для пользователей Mac и может быть адаптирован под ваши нужды. Не забывайте регулярно проверить работоспособность вашей системы и обновлять соответствующие настройки для максимальной безопасности.