СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

| сохранено

H Обход блокировок Роскомнадзора при помощи ipv6 и 3proxy в черновиках Tutorial

Как ни странно, но РКН до сих пор не блокирует сайты, которые имеют ipv6 адрес. В том числе Telegram, Rutracker и другие ресурсы.

Это похоже на заговор вынуждающий граждан использовать IPv6 и РКН играет в этом заговоре не малую роль :-)

То есть чтобы снять ограничения, нужно как-то попасть в ipv6 сеть. Причём «малой кровью»!


Не редко операторы фиксированной связи предоставляют услугу IPv6 (например ДомРу). Просто подключаете услугу и на сетевом интерфейсе маршрутизатора принимаете /64 префикс для своей сети.
Даже если нет такой услуги, но у Вас белый ip, то можно воспользоваться технологиями 6to4 на anycast адрес 192.88.99.1 или подключить туннель от he.net. Но в первом случае пакеты безбожно теряются (проверял на разных провайдерах), а во втором случае при сёрфинге сайты определяют, будто я из другой страны. Не комфортно. Да и время ответа большое…

Для мобильных абонентов МТС так же есть данная услуга. Она бесплатна и подключается в личном кабинете.

А что делать, если Ваш провайдер не выдаёт ipv6 и Вы сидите за nat?
Более того не доверяете сомнительным платно/бесплатным socks5 прокси! Так же Вы не знаете, что на этих прокси с Вашим трафиком происходит…

Выход есть! Поднять свой ipv4-to-ipv6 прокси. Можно даже в России!

Плюс от этого решения в том, что у Вас будет свой собственный единый прокси для дома и для мобильного Телеграма. Более того у Вас есть возможность найти максимально близкого к себе провайдера, который выдаёт ipv6, практически не потеряв в скорости.

Я так и сделал. Нашёл самый дешёвый vds хостинг, проверил его скорость до меня и развернул 3proxy

Разворачиваем свой прокси с ipv6.



Самым дешёвый тариф, который я нашёл, на Free-www.ru тариф s-kvm mini за 65 рублей в месяц + 1 рубль за ipv6. Если есть дешевле — подскажите. Ведь Земноводное требует экономить!

По привычке я выбрал шаблон с CentOS7.

После заказа и оплаты Вам на почту упадут доступы к серверу. Подключаемся ssh клиентом (например, putty)

Сразу проверьте доступность ipv6 адресов
ping6 -c1 google.com

Если узел ответил, то продолжаем.

Устанавливаем 3proxy




yum install -y git gcc 

git clone https://github.com/z3APA3A/3proxy/
cd 3proxy 
make -f Makefile.Linux
make -f Makefile.Linux install
cp scripts/rc.d/proxy.sh /etc/init.d/3proxy
sed -i 's:/usr/local/etc/3proxy/bin/3proxy:/usr/local/bin/3proxy:g'  /etc/init.d/3proxy
chmod +x /etc/init.d/3proxy
mkdir /var/log/3proxy/
systemctl enable 3proxy


Пишем конфиг файл /usr/local/etc/3proxy/3proxy.cfg

/usr/local/etc/3proxy/3proxy.cfg
#!/usr/local/bin/3proxy

nserver [2001:4860:4860::8844]
nserver 8.8.8.8

nscache 65536
nscache6 65536

timeouts 1 5 30 60 180 1800 15 60

daemon

#Для отладки включите логи, раскомментировав строки ниже.
# После верните # чтобы не засирать диск.
#log /var/log/3proxy/log D
#archiver gz /bin/gzip %F
#rotate 30

#Здесь прописываем Ваши адреса для выхода (выданные хостером)
external 192.0.2.35
external 2001:db8:55::9
#и для входа
internal 192.0.2.35

#Прописываем пользователей для авторизации в формате логин:Шифрование:пароль
#в нашем случае логин1=tg шифрования_нет=CL пароль_текстом=tgtest1
#тоже самое с пользователем testuser
users tg:CL:tgtest1 testuser:CL:TesT

#Настраиваем подключение к http прокси только для логинов tg,testuser
# -64 = если у домена есть адрес ipv6, то идём по нему.
#Если есть только ipv4, то используем его. Сделал этот профиль для браузера.
# -p41000 - номер порта, на котором надо слушать
auth strong
allow tg,testuser * * * *
deny *
proxy -64 -p41000

#Настраиваем socks5. Сделал только для Телеграма
# -6 - Использовать только ipv6. Если его нет, то ipv4 не будет использоваться
flush
auth strong
allow tg * * * *
deny *
socks -6 -p42555


Более детально с возможностями 3proxy можете ознакомится на официальном сайте на русском языке

Вы можете при желании настроить несколько блоков под разные задачи. Например, запустив несколько socks с Ipv4 или ipv6 на разных портах.


Запускаем прокси
systemctl start 3proxy


Не забудьте в фаерволе открыть порты, указанные вами в конфиге

Базовая защита сервера



Разумеется, чтобы Ваш сервер не взломали, то надо предусмотреть хотя бы минимальные меры. Например, настроить фаервол, установить fail2ban, создать пользователя с рут правами, а самому root запретить авторизоваться по ssh и т.д.
О мерах защиты много опубликованного материала.

Что я сделал для себя. Не является окончательным вариантом
Я не люблю firewalld и поэтому его отключаю и ставлю любимый iptables-services. Так же ставим fail2ban

yum install -y epel-release
yum install -y iptables-services  fail2ban
systemctl stop firewalld
systemctl disable firewalld
systemctl enable iptables
service iptables save
systemctl start iptables


Открываем в фаерволе наши порт, указанные в конфиге 3proxy
iptables -I INPUT -p tcp  -m multiport --dports 41000,42555 -m comment --comment "proxy" -j ACCEPT
service iptables save


Правим настройки fail2ban /etc/fail2ban/jail.conf

#Находим этот блок и вставляем ip адреса. Это белый список, которые банить нельзя
ignoreip = 127.0.0.1/8 198.51.100.0/24 203.0.113.30 203.0.113.155/31


Сразу после записи JAILS вставляем следующее

# JAILS
[ssh-iptables]

enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 3


Всё. Запускаем
systemctl enable fail2ban
systemctl start fail2ban



Не забудьте выключить SELinux.

Заключение



Я давно использую 3proxy для различных задач, в том числе для проксирования ipv4 в ipv6 (например SEO). Но эта способность прокси сейчас стала очень актуальной.

Надо пользоваться такой лазейкой, пока обезьянки из РКН не научились и IPv6 фильтровать. А как научатся — найдём новый путь :-)

комментарии (15)

0
rt3879439 ,   * (был изменён)
Всё хорошо, только firstvds разве не в России сервера держат?
Хотя уверен, что читатели хабра знают что такое прокси и что с ними делать.
0
LMonoceros ,   * (был изменён)
В том то и дело, что IPv6 можно и русскими пользоваться!
На это и расчёт, что сервера и близко и трафик не блокируется.
0
Free_ze ,  
А то всё страдают про каменный век. Ведь прогресс вперед толкают!
</sarcasm>
0
rt3879439 ,  
Ну так-то по ipv6 у меня и провайдер не блокирует. А ещё, внезапно, можно запустить тор и продолжать пользоваться телегой не тратя денег.
0
Ruins ,  
лол, и какая у тебя будет скорость через тор?
0
rt3879439 ,  
для чатика требуется гигабитный канал?
торренты через тор канал утилизируют полностью.
0
Gurturok ,  
Каждая статья про «Обход блокировок для хомячков» приближает РФ к введению «Белых списков». Остановитесь и передавайте информацию из-уст-в-уста, если уж так хотите помочь вашим знакомым пользоваться запрещенными ресурсами.
0
Ruins ,  
Политика
ну сейчас в мае небезызвестные личности хотят митинг провести в том числе с лозунгом про закрытие РКН в принципе так, что если уж и массово обходить блокировки, то именно под социальные протесты.
0
DrAndyHunter ,  

Вот зачем писать, о том как обойти блокировку и о том, что РКН "забыли" про ipv6?

0
LMonoceros ,  
Они об этом с 2014 года точно знают, но воз и ныне там.
roem.ru/14-03-2014/112020/reestr-zapreshchennyh-saytov-ne-umeet-rabotat-s-ipv6
0
Gurturok ,  
https://firstvds.ru/?from=23463
Реферал?
+1
rt3879439 ,  
Гоните его! Насмехайтесь над ним!
0
saag ,  
А для Андроида решение?
0
rt3879439 ,  
Orbot, openvpn, да и вообще любые vpn и прокси.
0
zodchiy ,  
Я использую Orbot.