Полная автоматизация Tails: прокси вместо мостов, смена интерфейса и настройка системы

AmnesicNode

⚡ Contributor
ACTIVE NODE
INITIATED
Прежде чем мы начнем, стоит сказать, что на форуме уже есть хорошая статья по базовой настройке Tails. В ней описано, как установить систему, настроить постоянное хранилище и подключить стандартные мосты. Наша статья пойдет дальше. Мы заменим нестабильные мосты на собственные прокси, научим Tails автоматически менять сетевой интерфейс и добавим удобную кастомизацию интерфейса. Все это будет работать в автоматическом режиме после каждой загрузки.

настройка.png

С чего всё начинается

Стандартный Tails использует мосты Tor: obfs4, webtunnel, snowflake. Это работает, но есть куча проблем. Мосты часто падают, потому что их адреса публичные. Провайдер может их заблокировать. Скорость через обфускацию низкая. И главное: вы не можете сами выбрать, через какую страну заходить на первом этапе.
Поэтому мы делаем по-другому. Вместо мостов мы поднимаем свой прокси на чистом сервере. Tor заходит в сеть через этот прокси, а уже потом строит свою стандартную цепочку из трех нод. Прокси видит только зашифрованный трафик Tor, так что анонимность не теряется. Зато блокировка мостов нам больше не страшна.

Что мы получим в итоге

После всех настроек вы получите Tails, который при каждом запуске сам подхватывает настройки прокси, сам настраивает клавиатуру и тему, умеет менять сетевой интерфейс с рандомизацией MAC-адреса. Все делается автоматически. Вам остается только загрузиться и работать.

Как всё устроено

Сначала срабатывает скрипт смены интерфейса. Он отключает сеть, меняет MAC-адрес, подключается заново и получает новый IP от провайдера или роутера. Потом запускается скрипт, который переписывает конфиг Tor, добавляя туда строки с адресом вашего прокси, логином и паролем. Tor перезапускается и теперь идет в сеть не через мосты, а через ваш прокси. Параллельно применяются настройки интерфейса: темная тема, русская и английская раскладка клавиатуры, отключается блокировка экрана.

Файл первый: настройка Tor через прокси

Создайте файл /live/persistence/TailsData_unlocked/setup_tor_proxy.sh. Внутри напишите следующее.

Сначала удаляем старый конфиг Tor и создаем пустой:


Код:
#!/bin/sh
rm -f /etc/tor/torrc
touch /etc/tor/torrc
Потом нужно прописать свои данные прокси. Вместо айпи:шлюз подставьте реальный IP и порт вашего прокси-сервера, вместо имя и пароль свои логин и пароль, если прокси требует авторизации.


Код:
PROXY_IP="123.45.67.89"
PROXY_PORT="1080"
PROXY_USER="my_username"
PROXY_PASS="my_password"
Дальше записываем основной конфиг. Tor будет слушать соксы на стандартных портах, поднимать DNS-порт для защиты от утечек и использовать ваш прокси как входную точку.


Код:
cat >> /etc/tor/torrc <<EOF
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion
AvoidDiskWrites 1
ControlPort 127.0.0.1:9052
DNSPort 5353
RunAsDaemon 0
SocksPort 127.0.0.1:9050 IsolateDestAddr IsolateDestPort
SocksPort 127.0.0.1:9062 IsolateDestAddr IsolateDestPort
SocksPort 127.0.0.1:9063 NoIsolateDestAddr NoIsolateDestPort NoIsolateClientProtocol
SocksPort 10.200.1.1:9050 IsolateSOCKSAuth KeepAliveIsolateSOCKSAuth ExtendedErrors
TransPort 127.0.0.1:9040
WarnPlaintextPorts 23,109

Socks5Proxy ${PROXY_IP}:${PROXY_PORT}
Socks5ProxyUsername ${PROXY_USER}
Socks5ProxyPassword ${PROXY_PASS}
EOF
И в конце перезапускаем Tor:


Код:
systemctl restart tor
echo "[+] Tor настроен на работу через прокси"
Если у вас HTTP-прокси вместо SOCKS5, замените Socks5Proxy на HTTPProxy и уберите строки с Username и Password или оставьте их, если прокси требует базовую авторизацию.

Файл второй: смена сетевого интерфейса

Создайте файл /live/persistence/TailsData_unlocked/switch_interface.sh. Он будет автоматически определять, какой интерфейс сейчас используется, менять его MAC-адрес и перезапускать сеть.

Вот полное содержимое:


Код:
#!/bin/bash

INTERFACE=$(ip route | grep default | awk '{print $5}' | head -1)

if [ -z "$INTERFACE" ]; then
    echo "[!] Сетевой интерфейс не найден"
    exit 1
fi

echo "[*] Работаем с интерфейсом: $INTERFACE"

sudo ifconfig $INTERFACE down
sudo macchanger -r $INTERFACE
sudo ifconfig $INTERFACE up
sudo dhclient -v $INTERFACE 2>/dev/null || sudo dhcpcd $INTERFACE 2>/dev/null

sudo systemctl restart networking
sudo systemctl restart NetworkManager
sudo systemctl restart tor

NEW_IP=$(curl --socks5 127.0.0.1:9050 -s ifconfig.me 2>/dev/null)
if [ ! -z "$NEW_IP" ]; then
    echo "[+] Новый выходной IP Tor: $NEW_IP"
fi
Этот скрипт можно запускать вручную, а можно поставить в cron, чтобы интерфейс менялся автоматически каждый час или каждые полчаса. Добавьте в cron такую строку:


Код:
(crontab -l 2>/dev/null; echo "*/30 * * * * /live/persistence/TailsData_unlocked/switch_interface.sh") | crontab -
Файл третий: кастомизация системы

Создайте /live/persistence/TailsData_unlocked/customize_tails.sh. Этот скрипт настраивает внешний вид и поведение GNOME.


Код:
#!/bin/sh

echo "[*] Применяем настройки интерфейса..."

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ru')]"
gsettings set org.gnome.desktop.session idle-delay 0
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
gsettings set org.gnome.desktop.interface enable-animations false

echo "[+] Настройки интерфейса применены"
Первая команда добавляет русскую раскладку клавиатуры рядом с английской. Переключать их можно стандартным сочетанием Win+Space. Вторая команда отключает блокировку экрана: полезно, если вы уходите от компьютера, но не хотите каждый раз вводить пароль. Третья и четвертая включают темную тему Adwaita. Пятая отключает анимации, чтобы интерфейс работал быстрее.

Автозапуск всех скриптов

Чтобы всё это поднималось автоматически при каждом запуске Tails, создайте файл /live/persistence/TailsData_unlocked/etc/xsessionrc. Он выполняется сразу после входа в графическую сессию.


Код:
#!/bin/bash

sleep 5

/live/persistence/TailsData_unlocked/setup_tor_proxy.sh
sleep 10
/live/persistence/TailsData_unlocked/customize_tails.sh
/live/persistence/TailsData_unlocked/switch_interface.sh
После того как все файлы созданы, сделайте их исполняемыми. Откройте терминал и выполните:


Код:
chmod +x /live/persistence/TailsData_unlocked/setup_tor_proxy.sh
chmod +x /live/persistence/TailsData_unlocked/switch_interface.sh
chmod +x /live/persistence/TailsData_unlocked/customize_tails.sh
chmod +x /live/persistence/TailsData_unlocked/etc/xsessionrc
Настройка Persistent Storage

Чтобы эти файлы не исчезали после перезагрузки, нужно включить сохранение некоторых папок в Persistent Storage. Загрузите Tails, откройте настройки Persistent Storage и отметьте галочками пункты Personal Files и Dotfiles. После этого созданная вами папка /live/persistence/TailsData_unlocked/ будет сохраняться между сессиями.

Как проверить, что всё работает

Первое: убедитесь, что Tor действительно использует прокси. Выполните в терминале:


Код:
sudo cat /etc/tor/torrc | grep Socks5Proxy
Вы должны увидеть свой IP и порт прокси.

Второе: проверьте выходной IP через Tor. Выполните:


cu
Код:
curl --socks5 127.0.0.1:9050 https://check.torproject.org/api/ip
В ответ придет JSON с IP-адресом выходного нода Tor. Если IP не ваш и не прокси-сервера, значит всё работает правильно.

Третье: убедитесь, что мосты не используются. Выполните:


Код:
sudo journalctl -u tor | grep -i bridge
Если ничего не нашлось или только старые записи, отлично: вы используете прокси вместо мостов.

Четвертое: проверьте тему и раскладку. Команда gsettings get org.gnome.desktop.input-sources sources должна показать две раскладки: us и ru. А команда gsettings get org.gnome.desktop.interface gtk-theme должна вернуть 'Adwaita-dark'.
 

AmnesicNode

⚡ Contributor
ACTIVE NODE
INITIATED
ИЗ-ЗА ОГРАНИЧЕНИЯ ДЛИНЫ НЕ ВЛЕЗЛО ВСЕ. ВОТ ПРОДОЛЖЕНИЕ!


Что делать, если что-то пошло не так
Если после перезагрузки Tor не поднимается, проверьте логи:
Код:
sudo journalctl -u tor -n 50
Если там ошибка соединения с прокси, значит либо прокси не работает, либо вы неправильно ввели IP, порт или пароль. Проверьте данные и исправьте в файле setup_tor_proxy.sh, потом выполните его вручную.
Если интерфейс не меняется, возможно macchanger не установлен в Tails. Он там есть по умолчанию, но на всякий случай проверьте командой which macchanger. Если нет, установить не получится, потому что Tails без постоянного пакетного менеджера. Тогда просто уберите из скрипта строку с macchanger, оставив только перезапуск интерфейса.
Если после автозапуска не применилась темная тема, значит скрипт сработал слишком рано, до полной загрузки GNOME. Увеличьте задержку в xsessionrc с 5 секунд до 10 или 15.

Зачем всё это нужно

Tails с мостами похож на машину с одним ключом зажигания. Если мост заблокировали, вы никуда не поедете. Настроив прокси, вы получаете второй ключ. Прокси не блокируют, потому что они не выглядят как Tor. Ваш провайдер видит просто зашифрованный трафик на обычный IP, у которого нет никакой репутации Tor-моста.
Добавив смену интерфейса, вы делаете свой след еще более размытым. Даже если кто-то следит за вашим MAC-адресом в локальной сети, он будет меняться. А перезапуск Tor после смены интерфейса дает вам свежую цепочку нодов.
Кастомизация интерфейса это просто удобство. Работать в Tails с темной темой и русской раскладкой гораздо приятнее, а отключение блокировки экрана избавляет от лишних телодвижений.
Теперь у вас есть полностью настроенная система, которая при каждом запуске сама поднимает прокси, меняет интерфейс, настраивает внешний вид и готова к работе. Никаких ручных команд, никаких танцев с бубном вокруг мостов. Загрузились и всё уже работает.
Если какой-то из скриптов по какой-то причине не выполнился, вы всегда можете запустить его вручную из терминала. Все пути прописаны абсолютные, всё лежит в Persistent Storage. Даже если что-то пойдет не так, ваши настройки никуда не денутся.
 
Верх