Jump to content

Обход блокировок с использованием bird4


Recommended Posts

16 минут назад, patriot2101 сказал:

я про другой спрашивал именно antifilter.list

antifilter.list заполняется содержимым листа https://antifilter.download/list/allyouneed.lst, перед этим айпишники сортируются и прогоняются через утилиту iprange.
На текущий момент что в исходном списке allyouneed.lst, что в конечном antifilter.list 9919 строк. Вы можете убедиться в этом сами, выполнив команду cat antifilter.list | wc -l

Link to comment
Share on other sites

1 минуту назад, Daniil413 сказал:

antifilter.list заполняется содержимым листа https://antifilter.download/list/allyouneed.lst, перед этим айпишники сортируются и прогоняются через утилиту iprange.
На текущий момент что в исходном списке allyouneed.lst, что в конечном antifilter.list 9919 строк. Вы можете убедиться в этом сами, выполнив команду cat antifilter.list | wc -l

теперь понял, большое спасибо!

Link to comment
Share on other sites

Вместо стокового openvpn поставил opkg openvpn последней версии. Последняя версия требовалась для работы. Настроил два туннеля к разным серверам. Один для работы, а второй для обхода блокировок. Настроил все с последней версией инсталяшки с гита, но ресурсы из списков из домашней сети недоступны. Пинг по адресам ресурсов расположенных за серверами vpn идет только с терминала (ssh) и из веб-интерфейса роутера. С устройств в локалке пинг не идет. Дампы с обоих туннелей (tcpdump -i tun0 / tcpdump -i tun1) трафик показывают только когда пингуешь из терминала или с роутера. Данное решение не работает с opkg openvpn или при его использовании нужны дополнительные настройки? Неделю уже парюсь. Не могу понять в какую сторону копать.

Заранее благодарю за ответ.

Edited by Dmitriy Terentev
Link to comment
Share on other sites

Posted (edited)

@Dmitriy Terentev думаю надо копать в сторону фаерволла и nat на роутере. По факту получается, что на роутере все работает, а в локальной сети - нет. Скрипты тут ни при чем, отрабатывают как и должны, просто сам впн не донастроен. Из вэб морды роутер сам все это делает, а тут надо руками прописывать

вот тут что-то есть

 

Edited by DennoN
Link to comment
Share on other sites

Posted (edited)
В 27.04.2018 в 23:25, LegionI сказал:

Теперь с помощью команды ifconfig посмотрим интерфейсы и найдём тот, где будет адрес 192.168.1.1. У меня лично это был br0.

Тогда скрипт /opt/etc/ndm/netfilter.d/vpn.sh будет выглядеть так:

#!/bin/sh
[ "$table" != filter ] && exit 0
iptables -I FORWARD -i br0 -o tun+ -j ACCEPT
iptables -I FORWARD -i tun+ -o br0 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE

Автор тут не совсем понятно пишет какой интерфейс надо указать в скрипте. Я так понял речь тут идет про интерфейс провайдера. Я запили такой скрипт и выполнил его. Ситуация не изменилась. Кажется что стоковую маршрутизацию нужно выключать... Но тогда и DNS же отвалится...

opkg dns-override
system configuration save
Edited by Dmitriy Terentev
Link to comment
Share on other sites

6 часов назад, Dmitriy Terentev сказал:

какой интерфейс надо указать в скрипте

У тебя не работает из локалки в туннель и обратно. нужно указывать локальный интерфейс, который является шлюзом для локальных клиентов. По умолчанию у него адрес 192.168.1.1, если во время настройки не задано иное.

А команда opkg dns-override отключает только встроенный днс в кинетике, на маршрутизацию никак не влияет

Link to comment
Share on other sites

Posted (edited)

Всем доброго! 

Сегодня перестала работать с пк и браузера телефона инста и фб, причем с приложения все работает.

При добавлении в user-vpn.list домен instagram.com и вводе команды ./Bird4Static/scripts/add-bird4_routes.sh

Выдает такое сообщение:

iprange: DNS: 'instagram.com' will be retried: Temporary failure in name resolution
iprange: DNS: 'instagram.com' will be retried: Temporary failure in name resolution
iprange: DNS: 'instagram.com' will be retried: Temporary failure in name resolution
iprange: DNS: 'instagram.com' will be retried: Temporary failure in name resolution
iprange: DNS: 'instagram.com' will be retried: Temporary failure in name resolution
и т.д.

Через nslookup тоже не выдает ip адрес инсты:

C:\Users\TusaJuice>nslookup instagram.com
╤хЁтхЁ:  UnKnown
Address:  192.168.1.1

*** UnKnown не удалось найти instagram.com: Query refused

ДНС стоят по умолчанию от провайдера, поставил гугловские 8.8.8.8 инста и фб работают.

Получается провайдер через днс как-то блочит? Но как так, трафик идет сразу через впн и провайдер не должен видеть запросы или я не прав? 

Причем остальные сайты отлично обходятся, тот же твиттер или известные торрент сайты. Еще странно, что с телефона с приложений все работает, а с браузера нет.

Edited by Tiko
Link to comment
Share on other sites

первое правило обхода блокировок - не использовать днсы провайдера или даже какие-либо российские днсы. они просто не дают узнать какой адрес отдает сайт instagram.com, поэтому у тебя скрипт валится при попытке узнать ip адрес для добавления.

Ну а так, когда кто-то пытается открыть какой-то сайт, то сначала идет обращение к днс серверу, который вместо instagram.com отдаст 31.13.72.174 например. В этом участке обход блокировок не работает. А потом уже устанавливается соединение с 31.13.72.174, и если этот адрес есть в листах обхода на кинетике, то это соединение идет через туннель, а не через провайдера.

А на мобилках работает скорее всего, что часто им плевать на днсы, которые они получают от роутера, используют свои. В браузере, например в Фаерфоксе на компе тоже можно настроить, что бы он обращался за адресами не к роутеру, а к другим серверам. Думаю в любом другом современном браузере это тоже можно сделать.

Но лучше на роутере настроить DOT/DOH сервера, благо кинетик умеет из коробки в вэб морде все это настраивать

  • Thanks 1
Link to comment
Share on other sites

6 минут назад, DennoN сказал:

Но лучше на роутере настроить DOT/DOH сервера, благо кинетик умеет из коробки в вэб морде все это настраивать

Спасибо за ответ, сделал чуть проще, добавил для WireGuard dns 1.1.1.1, VPN CloudFlare WARP если что, все работает.

Насчет DOT/DOH , пока не разбирался что такое, краем уха слышал, пока надобности нет, оставил днс провайдера, а для впн свой днс.

Link to comment
Share on other sites

В 01.05.2022 в 20:23, DennoN сказал:

У тебя не работает из локалки в туннель и обратно. нужно указывать локальный интерфейс, который является шлюзом для локальных клиентов. По умолчанию у него адрес 192.168.1.1, если во время настройки не задано иное.

А команда opkg dns-override отключает только встроенный днс в кинетике, на маршрутизацию никак не влияет

Спасибо огромное! Я циклоп и не виде очевидного. Туннель для работы заработал. Осталось разобраться с антизапретом. Интерфейс до него поднимается. В листы для интерфейса до "антизапрета" добавлен  yoip.ru, но он не открывается.

ping yoip.ru:

Скрытый текст
sending ICMP ECHO request to yoip.ru...
PING yoip.ru (90.156.201.66) 56 (84) bytes of data.
"Destination unreachable" ICMP packet received from 192.168.112.1 (type = 3, code = 3).
"Destination unreachable" ICMP packet received from 192.168.112.1 (type = 3, code = 3).
"Destination unreachable" ICMP packet received from 192.168.112.1 (type = 3, code = 3).
"Destination unreachable" ICMP packet received from 192.168.112.1 (type = 3, code = 3).
"Destination unreachable" ICMP packet received from 192.168.112.1 (type = 3, code = 3).
 
--- yoip.ru ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss,
0 duplicate(s), time 5002.68 ms.

traceroute до yoip.ru:

Скрытый текст
starting traceroute to yoip.ru...
traceroute to yoip.ru (90.156.201.66), 30 hops maximum, 84 byte packets.
1 192.168.112.1 (192.168.112.1) 33.506 ms 32.966 ms 33.238 ms
2 192.168.112.1 (192.168.112.1) 33.207 ms 33.106 ms 33.484 ms
3 * 192.168.112.1 (192.168.112.1) 33.674 ms *
4 192.168.112.1 (192.168.112.1) 33.889 ms * 45.327 ms
5 * 192.168.112.1 (192.168.112.1) 36.412 ms *

Трафик на интерфейсе:

Скрытый текст

~ # tcpdump -i tun1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun1, link-type RAW (Raw IP), capture size 262144 bytes
00:33:48.285813 IP 192.168.105.149.53130 > fe.shared.masterhost.ru.http: Flags [S], seq 3203072543, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
00:33:48.286146 IP 192.168.105.149.53131 > fe.shared.masterhost.ru.http: Flags [S], seq 2191668, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
00:33:48.356034 IP 192.168.104.1 > 192.168.105.149: ICMP fe.shared.masterhost.ru tcp port http unreachable, length 60
00:33:48.429448 IP 192.168.104.1 > 192.168.105.149: ICMP fe.shared.masterhost.ru tcp port http unreachable, length 60
00:33:48.538611 IP 192.168.105.149.53133 > fe.shared.masterhost.ru.http: Flags [S], seq 1563856238, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
00:33:48.595398 IP 192.168.104.1 > 192.168.105.149: ICMP fe.shared.masterhost.ru tcp port http unreachable, length 60
00:33:49.300897 IP 192.168.105.149.53130 > fe.shared.masterhost.ru.http: Flags [S], seq 3203072543, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
00:33:49.300998 IP 192.168.105.149.53131 > fe.shared.masterhost.ru.http: Flags [S], seq 2191668, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0

 

Link to comment
Share on other sites

9 часов назад, Dmitriy Terentev сказал:

Осталось разобраться с антизапретом

Вопрос, а для туннеля который не для работы команды для фаерволла добавлены?

Link to comment
Share on other sites

4 часа назад, DennoN сказал:

Вопрос, а для туннеля который не для работы команды для фаерволла добавлены?

Немного не понял вопрос, но, наверное, уже не актуально. Трафик разрешил между обоими туннелями и внутренней сеткой. Я в итоге заменил конфиг Антизапрет на Протон и все заработало. Что-то в классическом конфигурировать Антизапрета не хватало. Кстати Протон гораздо шустрее оказался…

Link to comment
Share on other sites

  • 2 weeks later...

Там указано то, что заблокировал ркн в основном. Отдельного списка только ру сетей нет

Link to comment
Share on other sites

@DennoN , возможно, на основании этой статьи можно заставить скрипт загружать списки всех русских сетей в файл user-vpn.list и периодически обновлять?

Было бы здорово.

Link to comment
Share on other sites

Posted (edited)
В 27.03.2020 в 22:57, DennoN сказал:

@DennoNДобрый день.

В скрипте https://github.com/DennoN-RUS/Bird4Static/blob/204865b2d8cee79dc9cbd8944dae04c30e9c19e5/Install/double_vpn/add-bird4_routes.sh не отрабатывает =~ (равно тильда)

sh: =~: unknown operand

BusyBox v1.31.0 () built-in shell (ash)

UPDATE: Это у меня не обновленный busybox был. Обновил и все работает.

 

Edited by hondaspb
  • Thanks 1
Link to comment
Share on other sites

@DennoN если интересно перепилил конфиг bird под версию 2
 

log syslog all;
log stderr all;

router id 123.123.123.123; # current external ip

protocol direct {
	ipv4;
	interface "nwg1", "ovpn_br1";
}

ipv4 table route_force;
ipv4 table route_vpn1;
ipv4 table route_vpn2;

protocol device {
	scan time 15;
}

protocol kernel {
	ipv4 {
	table route_force;
	import none;
	export all;
	};
	persist;
	learn;
	scan time 900;
	kernel table 1000; # kernel routing table number
	#netlink rx buffer 311296;
}

protocol kernel {
	ipv4 {
	table route_vpn1;
	import none;
	export all;
	};
	kernel table 1001; # kernel routing table number
	persist;
	learn;
	scan time 900;
	#netlink rx buffer 311296;
}

protocol kernel {
	ipv4 {
	table route_vpn2;
	import none;
	export all;
	};
	kernel table 1002; # kernel routing table number
	persist;
	learn;
	scan time 900;
}

protocol static {
	ipv4 {
	table route_force;
	preference 50;
	};
	include "/opt/etc/bird4-force-isp.list";
	include "/opt/etc/bird4-force-vpn1.list";
	include "/opt/etc/bird4-force-vpn2.list";
	check link;
}

protocol static {
	ipv4 {
	table route_vpn1;
	preference 250;
	};
	include "/opt/etc/bird4-base-vpn1.list";
	include "/opt/etc/bird4-user-vpn1.list";
	check link;
}

protocol static {
	ipv4 {
	table route_vpn2;
	preference 500;
	};
	include "/opt/etc/bird4-base-vpn2.list";
	include "/opt/etc/bird4-user-vpn2.list";
	check link;
}

 

  • Upvote 1
Link to comment
Share on other sites

Странно, что у меня оно работает, так как на гите выложено. Да и при запуске ./Bird4Static/scripts/add-bird4_routes.sh ошибок не выводит

Link to comment
Share on other sites

  • 2 weeks later...

Добрый день, решение работает очень хорошо. Только у меня проблемы с instagram на мобильном приложении. Грузит только текст. Иногда начинает(раз в пару дней) норм работать. На роутере DOH google, пробовал и cloudflare. Прописал домены facebook.com fbcdn.net twitter.com twimg.com t.co в ручную, не помогло.

Link to comment
Share on other sites

Установил из гитхаба, все заработало. Спасибо.

Но есть непонятная проблема. Рандомно некоторые имена из user-vpn.list могут отваливаться.

Т.е. все работает, а через какое-то время маршрут к yt3.ggpht.com может пойти через провайдера, другие пойдут как и положено через впн. Лечится запуском add-bird4_routes.sh... до следующего раза.

Никто не знает, в чем проблема и как починить?

Link to comment
Share on other sites

Posted (edited)
14 часа назад, alexandr-ad сказал:

Т.е. все работает, а через какое-то время маршрут к yt3.ggpht.com может пойти через провайдера, другие пойдут как и положено через впн. Лечится запуском add-bird4_routes.sh... до следующего раза.

Доброй ночи! 

Обратите внимание, что у yt3.ggpht.com не статический ip адрес, он постоянно меняется, тоже столкнулся с данной проблемой, пока решается отловом всех ip адресов и запись их в user-vpn.list.

yt3.ggpht.com
62.173.139.234
64.233.161.132
64.233.161.198
64.233.162.198
64.233.164.132
64.233.164.198
64.233.165.198
74.125.131.198
74.125.205.198
108.177.14.198
142.250.74.161
142.250.150.198
142.251.1.198
142.251.5.198
173.194.73.198
173.194.221.198
173.194.222.198
188.43.20.67
188.186.146.207
188.186.154.88
194.67.1.14
209.85.233.198

 

Edited by Tiko
Приложил список IP адресов
Link to comment
Share on other sites

8 часов назад, Tiko сказал:

Доброй ночи! 

Обратите внимание, что у yt3.ggpht.com не статический ip адрес, он постоянно меняется, тоже столкнулся с данной проблемой, пока решается отловом всех ip адресов и запись их в user-vpn.list.

Я думал об этом. Специально провел эксперимент. Получается, что маршрут ломается даже если ip не меняется. Но раз говорните, что поможет указание диапазона ip вместо доменного имени, ок, попробую, спасибо. Хотя все равно непонятно, почему маршрут сбрасывается. Разве что между моими двумя замерами, ip уже успел поменяться туда-обратно.

Link to comment
Share on other sites

1 час назад, alexandr-ad сказал:

Разве что между моими двумя замерами, ip уже успел поменяться туда-обратно.

Если с остальными адресами все нормально, то дело не в сбросе маршрута, а в смене ip домена. Через что проверяете ip?

Во всяком случае, собранный мною список ip пока хватает, все работает.

Если в какой-то момент перестают грузиться аватарки в ютуб, просто чекаем ip домена через cmd командой nslookup yt3.ggpht.com , полученный ip добавляем в список.

Link to comment
Share on other sites

2 часа назад, Tiko сказал:

Если с остальными адресами все нормально, то дело не в сбросе маршрута, а в смене ip домена. Через что проверяете ip?

Во всяком случае, собранный мною список ip пока хватает, все работает.

Если в какой-то момент перестают грузиться аватарки в ютуб, просто чекаем ip домена через cmd командой nslookup yt3.ggpht.com , полученный ip добавляем в список.

Добавил диапазоны ip (чтоб каждый раз не добавлять конкретный адрес), пока полет нормальный.

Проверял tracert yt3.ggpht.com , было видно и ip, и что маршрут идет через провайдера.

Link to comment
Share on other sites

Добрый день.

В свете последних событий перестало у меня что-то все работать. Накрылся ProtonVPN (который был настроен через IKEv2. Как бы я не пытался - нет коннекта. При этом если подключить через WireGuard - то (по крайней мере судя по интерфейсу Кинетика) горит зеленым и рукопожатие периодически происходит. 

Но можно WireGuard использовать в связке со скриптом?

выполнил "ip a", получил в том числе:

29: nwg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1324 qdisc noqueue qlen 50
    link/[65534] 
    inet 10.2.0.2/32 scope global nwg0

Как я понял надо именно этот интерфейс указать в строке VPN1 в файле add-bird4_routes.sh ?

Т.е. VPN1=nwg0.

Но , чет ничего у меня не вышло. Или может "рукопожатие" совершенно не означает работоспособность VPN ?

Link to comment
Share on other sites

37 минут назад, drfischer сказал:

Но можно WireGuard использовать в связке со скриптом?

Можно, у меня как раз с ним работает.

 

37 минут назад, drfischer сказал:

Как я понял надо именно этот интерфейс указать в строке VPN1 в файле add-bird4_routes.sh ?

Не только в этом файле прописан интерфейс, например в bird4.conf 7 строка. Не проще переустановить скрипт с указанием нужных интерфейсов?

Link to comment
Share on other sites

46 минут назад, Tiko сказал:

Не только в этом файле прописан интерфейс, например в bird4.conf 7 строка. Не проще переустановить скрипт с указанием нужных интерфейсов?

Возможно вы правы и стОит переустановить, но сейчас обнаружил, что чудесным образом все вдруг заработало, несмотря на то, что в в add-bird4_routes.sh прописал VPN1=nwg0, а в файле bird4.conf, как вы заметили осталось у меня VPN1=nwg1. Интересно, надолго ли? И, странно, почему вдруг заработало...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...