Skip to content

Commit f5cdcb1

Browse files
committed
Added detailed description
1 parent af5fe7c commit f5cdcb1

File tree

3 files changed

+58
-2
lines changed

3 files changed

+58
-2
lines changed

README.md

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,54 @@
1-
# antizapret
1+
# AntiZapret
2+
3+
Прозрачный обход блокировок для локальной сети.
4+
5+
Мне это решение особенно нравится тем, что оно корректно отрабатывает любой трафик. В том числе и HTTPS. При этом никаких настроек на клиентах делать не надо.
6+
7+
Система отлично работает с роутерами на базе opnSense (на роутерах на базе pfSense не проверял, но также должно работать без проблем). Возможно, также будет работать с другими роутерами, т.к. используются только базовые возможности файрвола.
8+
9+
## Установка и настройка
10+
11+
*NB.* Для настройки системы понадобится доступ к командной строке через консоль или SSH. все команды надо исполнять от имени root, т.к. иначе часть не сработает.
12+
1. Установите и настройте Tor.
13+
14+
Для этого в opnSense сначала установите плагин `os-tor` через вкладку System > Firmware > Plugins. После перейдите на вновь появившуюся вкладку Services > Tor > Configuration и настройте его:\
15+
Включить Advanced mode в верхнем левом углу.\
16+
Включить Enable.\
17+
При желании указать интерфейсы локальной сети в Listen Interfaces (надо, если вы планируете использовать Tor как-то ещё; для данного обхода блокировок поле можно оставить пустым)\
18+
Включить Enable Transparent Proxy.
19+
20+
2. Настройте регулярное обновление списков блокировки.\
21+
Путей тут несколько:
22+
23+
Для opnSense необходимо файл `opnsense/actions_antizapret.conf` скопировать в каталог `/usr/local/opnsense/service/conf/actions.d/`, после чего обновить демон настроек, выполнив в консоле команду `service configd restart` или через панель управления перезапустив демон `configd` (System Configuration Daemon).\
24+
После этого в настройках cron (System > Settings > Cron) добавить новую задачу на ежесуточное обновление списка:\
25+
Command = «Renew AntiZapret IP-list».
26+
27+
Для других систем необходимо в cron добавить что-то типа
28+
```
29+
0 0 * * * /root/antizapret/antizapret.pl >/usr/local/etc/ipfw_antizapret.dat
30+
```
31+
32+
3. Чтобы не ждать сутки первого обновления списка, в консоле исполняем команду
33+
```
34+
/root/antizapret/antizapret.pl >/usr/local/etc/ipfw_antizapret.dat
35+
```
36+
37+
4. Настройте правила файрвола.
38+
39+
Сначала в настройках файрвола на вкладке Firewall > Aliases создайте алиас для удобства использования списка.\
40+
Name = AntiZapret_IPs\
41+
Type = URL Table (IPs)\
42+
Expiration > Hours = 3\
43+
Content = `/usr/local/etc/ipfw_antizapret.dat`
44+
45+
Дальше на вкладке Firewall > NAT > Port Forward создаём новое правило:\
46+
Interface = LAN\
47+
Protocol = TCP\
48+
Destination = AntiZapret_IPs\
49+
Destination port range = any\
50+
Redirect target IP = 127.0.0.1 (адрес, где запущен Tor; в данном случае — та же машина)\
51+
Redirect target port = 9040\
52+
Description = Anti-Zapret
53+
54+
5. Всё. Через некоторое время система сама подгрузит список и файрвол начнёт прозрачно перенаправлять любые обращения к заблокированным сайтам на Tor. В то же время весь прочий трафик будет идти напрямую, как обычно.

antizapret.pl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#!/usr/local/bin/perl
22

3+
use strict;
4+
use warnings FATAL => 'all';
5+
36
my @ips = `fetch -o - https://raw.githubusercontent.com/zapret-info/z-i/master/dump.csv | sed 1d | cut -d ';' -f 1 | tr "\\|" "\\n" | sed 's/^[ \\t]*//;s/[ \\t]*\$//' | sort | uniq`;
47

58
my $buf = '';
@@ -26,8 +29,8 @@
2629
}
2730

2831

32+
2933
sub starts_with
3034
{
3135
return substr($_[0], 0, length($_[1])) eq $_[1];
3236
}
33-
File renamed without changes.

0 commit comments

Comments
 (0)