Не палимся или конфигурация домашнего сервера анонимизации!
BezLichЗа основу была взята OS Fedora Linux 16 i386. Впрочем, поклонникам других дистрибутивов GNU/Linux не составит большого труда адаптировать данные инструкции под свою ось.
Начнем, пожалуй, с подготовки OS.
Мне лично не понадобилась графическая среда для всего этого. Я ее попросту отключил и поставил sshd.
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
yum -y install openssh-server
systemctl enable sshd.service
systemctl start sshd.service
В локалке файрвол ни к чему, да и мешать он будет.
iptables -F
iptables -X
/usr/libexec/iptables.init save
Т.к. мы будем использовать как локальный роутер, то
sysctl net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
1. VPN
Ну тут уже писано-переписано…
yum -y install openvpn
Два варианта:
1.1 Берем VPN в аренду у одного из сервисов.
Лично у меня такие сервисы всегда вызывали недоверие, однако это проще.
В данном случае, надо просто попросить их скинуть вам конфиг, ключи и инструкции к openvpn.
1.2 Берем дешевый VPS сервер (пойдет минимальный конфиг OpenVZ) — $10-$20 в месяц.
Нужно попросить саппорт включить NAT и TUN на этом контейнере (в случае OpenVZ).
Далее по инструкциям: http://unix-notes.ru/2009/03/02/ustanovka-openvpn-na-linux-v-openvz-kontejjner/
Замечания:
* Порт лучше использовать отличный от стандартного 1194 (директива конфига клиента и сервера «port»), дабы не привлекать лишнего внимания. Лучше всего использовать стандартный порт других сервисов: 80(http), 443(https) и т.д.
* Протокол лучше использовать TCP — лучше будет работать по WiFi/WiMax
* Если вы решили поставить OpenVPN на своем сервере, где что то крутится, имейте в виду что его нужно вешать на абсолютно свободный IP адрес, иначе чревато утечкой информации
* Сервер должен располагаться на одном континенте с вами, иначе будут длинные пинги и падение скорости
Предположим, сервер VPN уже есть и есть конфиг и сертификаты клиента лежат в правильных местах.
Включаем openvpn:
systemctl enable openvpn.service
systemctl start openvpn.service
Проверяем tracert до какого то хоста, убеждаемся что трасса пошла не через вашего провайдера.
2. DNS
Хотя трафик пошел через VPN, DNS запросы тоже желательно пустить туда же. С изюминкой.
yum -y install named
Ну, кроме стандартной конфигурации кеширующего нейм сервера (listen-on, allow-query выставить для вашей сети), можно отметить вот что.
Если вы хотите включить резолв бесплатных OpenNIC доменов (.geek, .free, .micro и т.д.) и доменов NameCoin (.bit) необходимо:
a) Выключить dnssec (в options):
dnssec-enable no;
dnssec-validation no;
b) Добавить резолверы для этих зон:
Здесь 178.32.31.41 — резолвер, указанный здесь (поддерживет .bit и opennic зоны) или здесь (поддерживают только OpenNIC зоны) — выбирайте.
Публичные зоны я через них пропускать не стал, ибо не стоит. Т.е. зону "." оставляем по дефолту.
zone "bit" {
type forward;
forwarders { 178.32.31.41; };
};
zone "geek" {
type forward;
forwarders { 178.32.31.41; };
};
zone "free" {
type forward;
forwarders { 178.32.31.41; };
};
zone "bbs" {
type forward;
forwarders { 178.32.31.41; };
};
zone "glue" {
type forward;
forwarders { 178.32.31.41; };
};
zone "parody" {
type forward;
forwarders { 178.32.31.41; };
};
zone "oss" {
type forward;
forwarders { 178.32.31.41; };
};
zone "indy" {
type forward;
forwarders { 178.32.31.41; };
};
zone "fur" {
type forward;
forwarders { 178.32.31.41; };
};
zone "ind" {
type forward;
forwarders { 178.32.31.41; };
};
zone "micro" {
type forward;
forwarders { 178.32.31.41; };
};
zone "dyn" {
type forward;
forwarders { 178.32.31.41; };
};
zone "gopher" {
type forward;
forwarders { 178.32.31.41; };
};
Нужно сказать что NameCoin пока что мало что из себя представляет, но задумка весьма неплохая, полностью исключающая такое явление как корневые DNS, центральный орган ICANN и усложняющая жизнь таким вещам как пресловутая SOPA
В .bit вы сам себе регистратор, ICANN и корневой DNS сервер.
Запускаем bind:
systemctl enable named.service
systemctl start named.service
3. Tor.
Полезно так же иметь под рукой Tor-прокси (The Onoin Router). Домены .onion — на них можно попасть только через Tor прокси.
yum -y install tor polipo
В /etc/tor/torrc правим SocksListenAddress на локальный адрес сервачка и запускаем Tor:
systemctl enable tor.service
systemctl start tor.service
Однако Tor это socks-прокси, а удобнее было бы http-прокси. Для этого есть polipo.
В /etc/polipo/config правим
proxyaddress = "0.0.0.0"
socksParentProxy = "192.168.0.2:9050" # <- локальный айпи сервачка
socksProxyType = socks5
Стартуем.
systemctl enable polipo.service
systemctl start polipo.service
4. I2P.
Internet Invisible Project — сайты .i2p, на них можно попасть только через i2p прокси.
Для работы необходим OpenJDK.
yum install java-1.7.0-openjdk
Далее, пускать i2p от рута совсем не обязательно. Добавляем юзера и запускаем инсталлер:
adduser i2p
su i2p
cd
wget http://mirror.i2p2.de/i2pinstall_0.8.12.exe
java -jar i2pinstall_0.8.12.exe -console
Указываем в качестве инсталяционной папочки /home/i2p/bin/ и продолжаем установку.
В конфиге /home/i2p/.i2p/clients.config меняем 127.0.0.1 на айпи сервачка.
В конфиге /home/i2p/.i2p/i2ptunnel.config меняем айпишники проксей (tunnel.*.interface) на 0.0.0.0
Запускаем i2p:
su -c '/home/i2p/bin/i2prouter start' i2p
echo "su -c '/home/i2p/bin/i2prouter start' i2p" >> /etc/rc.d/rc.local
Итого.
Предполагая что 192.168.0.2 — IP адрес локального сервера:
* Выставляя шлюз и DNS любой машины в локалке в 192.168.0.2 — мы пускаем трафик (включая DNS) этой машины через VPN, получаем доступ к доменам OpenNIC и NameCoin
* Выставляя прокси в броузере любой машины из локалки в 192.168.0.2:4444 (http) и 192.168.0.2:4445 (https) — мы из броузера входим в сеть i2p (домены .i2p)
* Выставляя прокси в броузере любой машины из локалки в 192.168.0.2:8123, мы имеем из броузера доступ к сети Tor (домены .onion)
Веб-конфигуратор I2P расположен по адресу http://192.168.0.2/config.jsp — там есть много интересных вещей.
Для удобства переключения между различными настройками прокси есть дополнительные расширения к хрому и огнелису (Torbutton например).
Замечания:
* I2P сеть медленно «разгоняется». Появление прокси нужно ждать спустя минуту гдето после старта
* I2P сеть плохо приспособлена для серфинга обычных сайтов
* I2P ест трафик (Tor тоже ест, но не так). Его лимиты можно указать в веб-конфигураторе. Но работает I2p по принципу ты мне — я тебе. Чтобы иметь более-менее реальную скорость в I2P, необходимо сначала прокачать через себя ощутимый объем транзитного трафика
* В настройках туннелирования I2P можно задавать количество прыжков до узла назначения. Ниже количество — выше скорость, ниже безопасность. И наоборот
* Не стоит ходить по обычным внешним http сайтам через I2P или Tor. По многим причинам, главная из которых — исходящие узлы неизвестно в чьих руках и если вы ходите по http, то в HTML код вам могут подсунуть каку. https это не касается, но зачем? Есть VPN же
* На сервачке с Tor и I2P можно расположить свой анонимный сайт в соответствующей сети Tor/I2P и вычислить его местоположение почти нереально, равно как и «положить» его!