globalnode
Выживальщик
Хочу показать один из способов как построить защищённую систему для безопасного приёма, передачи, хранения и обработки конфиденциальных и иных опасных данных. Ни для кого не секрет, что сейчас различные лица и организации пытаются удушить свободу как самого интернета, так и его пользователей, и зачастую им это удаётся. Поэтому сейчас мы попробуем соорудить небольшую, но прочную крепость внутри нашего компьютера.
Что нам потребуется?
Во-первых, это компьютер достаточной производительности с большим объёмом оперативной памяти. Его операционная система значения не имеет, поскольку устанавливаемое на него ПО кроссплатформенно. В этой статье я буду пользоваться операционной системой Debian версии 7.0.3 Wheezy.
Во-вторых, программное обеспечение. Я перечислю его в порядке, в котором оно потребуется в построении системы:
Перед тем как все устанавливать шифруем наш домашний раздел /home, я выбрал 1024-х битно шифрование AES. Более подробно о шифровании раздела можно узнать тут
Сначала ставим TOR из их собственного репозитория, так как в официальном могут быть устаревшие версии пакетов.
Обратим внимание, что TOR сам по себе предоставляет только SOCKS5-прокси, и его поддержка есть не во всех программах. Поэтому установим Polipo — свободный HTTP-прокси:
Далее нам необходимо его настроить, поэтому правим конфиг любым удобным вам редактором.
Добавим в него строчку:
Ниже раскомментируем (или подправим, если что-то не так):
Сохраним. Перезапустим Полип:
Теперь настроим I2P:
Включим запуск в качестве демона:
Заодно видим в файле имя пользователя, от которого работает маршрутизатор — у меня это i2psvc.
Сохраняем.
Запускаем:
Теперь узнаем пользователя, от которого работает TOR:
У меня это debian-tor.
И теперь — самое вкусное: рубим доступ в сеть всему, что не TOR и не I2P. Ещё раз — ВСЕМУ.
Общая политика DROP, разрешён доступ всем на локалхост, I2P и TOR — во внешнюю сеть. Вот скрипт для фаервола iptables (отредактируйте от рута /etc/iptables.up.rules):
Откроем файл настройки сети:
Допишем команду загрузки правил:
У меня выглядит так:
Вообще правила прописываются при поднятии лупбэка, но разницы нет, поскольку эти правила едины для всех интерфейсов.
Загрузим правила в iptables. Можно перезапустить сеть, но мы сделаем так:
Готово! Крепость построена, ров вырыт, лучники на стенах выставлены. Но мы ещё не раздали пропуска её жителям! Исправим.
Для доступа во внешний интернет лучше применять TOR, HTTP-интерфейс которого у нас на 8118 порту.
Допишем в конец файла строчку:
Потом перезапустим переменную окружения:
Тперь надо настроить менеджер пакетов (пользователи не Debian-based дистрибутивов могут этот шаг пропустить):
Там должно быть:
Незабудьте точку с запятой в конце!!!
Сохраняем, закрываем.
Прописываем наш прокси-сервер в браузере. Готово.
Но хочу предупредить, что даже такая схема не гарантирует 100% анонимности и безнаказанности. Поэтому используйте свою голову, прежде чем что-либо делать в Интернете.
---
Вообще в данной схеме хорошо бы поднять ttdnsd + pdnsd, т.е. принудительное проксирование днс запросов и проброс их в TOR. Со стороны приложений это будет выглядеть как обычный DNS сервер, а при множественных DNS запросах, непосредственно сам запрос будет только раз для домена, потом моментом будет вылетать из кэша. Схема такая: UDP dns -> proxy -> TCP dns запрос -> TOR.
Либо как вариант с тоннелированием всего трафика через тор используя redsocks + tor + ttdnsd + pdnsd
Но мне лень. :rofl:
Что нам потребуется?
Во-первых, это компьютер достаточной производительности с большим объёмом оперативной памяти. Его операционная система значения не имеет, поскольку устанавливаемое на него ПО кроссплатформенно. В этой статье я буду пользоваться операционной системой Debian версии 7.0.3 Wheezy.
Во-вторых, программное обеспечение. Я перечислю его в порядке, в котором оно потребуется в построении системы:
Код:
1) JRE (wiki.debian.org/JRE)
2) Python (wiki.debian.org/Python)
3) TOR (www.torproject.org/docs/debian)
4) I2P (www.i2p2.de/debian.html)
5) Polipo (packages.debian.org/sid/polipo)
6) Любой браузер.
Перед тем как все устанавливать шифруем наш домашний раздел /home, я выбрал 1024-х битно шифрование AES. Более подробно о шифровании раздела можно узнать тут
Сначала ставим TOR из их собственного репозитория, так как в официальном могут быть устаревшие версии пакетов.
Код:
# aptitude install tor
# aptitude install i2p
Код:
# aptitude install polipo
Код:
# vim /etc/polipo/config
Код:
proxyPort = 8118
Код:
socksParentProxy = "localhost:9050"
socksProxyType = socks5
Код:
# service polipo restart
Код:
# vim /etc/default/i2p
Код:
RUN_DAEMON="true"
Сохраняем.
Запускаем:
Код:
# service i2p start
Код:
# lsof -c tor
И теперь — самое вкусное: рубим доступ в сеть всему, что не TOR и не I2P. Ещё раз — ВСЕМУ.
Общая политика DROP, разрешён доступ всем на локалхост, I2P и TOR — во внешнюю сеть. Вот скрипт для фаервола iptables (отредактируйте от рута /etc/iptables.up.rules):
Код:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT DROP [0:0]
-A OUTPUT -d 127.0.0.1/32 -j ACCEPT
-A OUTPUT -m owner --uid-owner debian-tor -j ACCEPT
-A OUTPUT -m owner --uid-owner i2psvc -j ACCEPT
COMMIT
Код:
# vim /etc/network/interfaces
Код:
pre-up iptables-restore < /etc/iptables.up.rules
Код:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules
Загрузим правила в iptables. Можно перезапустить сеть, но мы сделаем так:
Код:
# iptables-restore < /etc/iptables.up.rules
Для доступа во внешний интернет лучше применять TOR, HTTP-интерфейс которого у нас на 8118 порту.
Код:
$ vim ~/.bashrc
Код:
export http_proxy="http://127.0.0.1:8118/"
Код:
$ . ~/.bashrc
Код:
# vim /etc/apt/apt.conf.d/proxy
Код:
Acquire::http::Proxy "http://127.0.0.1:8118/";
Сохраняем, закрываем.
Прописываем наш прокси-сервер в браузере. Готово.
Но хочу предупредить, что даже такая схема не гарантирует 100% анонимности и безнаказанности. Поэтому используйте свою голову, прежде чем что-либо делать в Интернете.
---
Вообще в данной схеме хорошо бы поднять ttdnsd + pdnsd, т.е. принудительное проксирование днс запросов и проброс их в TOR. Со стороны приложений это будет выглядеть как обычный DNS сервер, а при множественных DNS запросах, непосредственно сам запрос будет только раз для домена, потом моментом будет вылетать из кэша. Схема такая: UDP dns -> proxy -> TCP dns запрос -> TOR.
Либо как вариант с тоннелированием всего трафика через тор используя redsocks + tor + ttdnsd + pdnsd

Но мне лень. :rofl: