-
Notifications
You must be signed in to change notification settings - Fork 3
/
antizapret-vpn.sh
196 lines (196 loc) · 9.46 KB
/
antizapret-vpn.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
#!/bin/bash
set -e
export DEBIAN_FRONTEND=noninteractive
#
# Скрипт для автоматического развертывания AntiZapret VPN Container
# + Разблокирован YouTube и часть сайтов блокируемых без решения суда
# Поддерживается подключение по UDP и TCP
# Используется 443 порт вместо 1194 для обхода блокировки по порту
#
# Версия от 20.08.2024
# https://github.com/GubernievS/AntiZapret-VPN-Container
#
# Протестировано на Ubuntu 20.04 - Процессор: 1 core Память: 1 Gb Хранилище: 10 Gb
#
# Установка:
# 1. Устанавливать на чистую Ubuntu 20.04 (или новее если памяти 2 Gb и больше)
# 2. Загрузить этот файл на сервер в папку root по SFTP (например через программу FileZilla)
# 3. В консоли под root выполнить:
# chmod +x ./antizapret-vpn.sh && ./antizapret-vpn.sh
# 4. Скопировать файл antizapret-client-udp.ovpn или antizapret-client-tcp.ovpn с сервера из папки root
#
# Обсуждение скрипта
# https://ntc.party/t/скрипт-для-автоматического-развертывания-antizapret-vpn-container-youtube/8379
#
# Полезные ссылки
# https://ntc.party/t/контейнер-vpn-антизапрета-для-установки-на-собственный-сервер/129
# https://bitbucket.org/anticensority/antizapret-vpn-container/src/master/
#
# Команды для настройки антизапрета
#
# Изменить файл с личным списком антизапрета include-hosts-custom.txt
# sudo lxc exec antizapret-vpn -- nano /root/antizapret/config/include-hosts-custom.txt
# Потом выполните команду для обновления списка антизапрета
# sudo lxc exec antizapret-vpn -- /root/antizapret/doall.sh
# sudo lxc exec antizapret-vpn -- sh -c "echo 'cache.clear()' | socat - /run/knot-resolver/control/1"
#
# Изменить конфигурацию OpenVpn сервера с UDP
# sudo lxc exec antizapret-vpn -- nano /etc/openvpn/server/antizapret.conf
# Потом перезапустить OpenVpn сервер
# sudo lxc exec antizapret-vpn -- service openvpn restart
#
# Изменить конфигурацию OpenVpn сервера с TCP
# sudo lxc exec antizapret-vpn -- nano /etc/openvpn/server/antizapret-tcp.conf
# Потом перезапустить OpenVpn сервер
# sudo lxc exec antizapret-vpn -- service openvpn-tcp restart
#
# Посмотреть статистику подключений OpenVpn c UDP (выход Ctrl+X)
# sudo lxc exec antizapret-vpn -- nano /etc/openvpn/server/logs/status.log -v
#
# Посмотреть статистику подключений OpenVpn c TCP (выход Ctrl+X)
# sudo lxc exec antizapret-vpn -- nano /etc/openvpn/server/logs/status-tcp.log -v
#
# Для отключения подключений к OpenVpn по TCP выполните команды
# sudo lxc exec antizapret-vpn -- systemctl disable openvpn-server@antizapret-tcp
# sudo lxc config device remove antizapret-vpn proxy_443_tcp
#
#
# Обновляем Ubuntu
sudo apt update && sudo apt upgrade -y
#
# Устанавливаем LXD и настраиваем
sudo apt install snapd -y
sudo snap install lxd --channel=latest/stable
sudo lxd init --auto
#
# Импортируем и инициализируем контейнер
sudo lxc image import https://antizapret.prostovpn.org/container-images/az-vpn --alias antizapret-vpn-img
sudo lxc init antizapret-vpn-img antizapret-vpn
#
# Открываем порты для UDP и TCP
sudo lxc config device add antizapret-vpn proxy_443_udp proxy listen=udp:[::]:443 connect=udp:127.0.0.1:443
sudo lxc config device add antizapret-vpn proxy_443_tcp proxy listen=tcp:[::]:443 connect=tcp:127.0.0.1:443
#
# Запускаем контейнер и ждем пока сгенерируется файл подключения ovpn
sudo lxc start antizapret-vpn && sleep 10
#
# Настраиваем OpenVpn для UDP
# Удалим keepalive, comp-lzo, увеличим txqueuelen до 1000, добавим fast-io и cipher AES-128-GCM, изменим порт с 1194 на 443
sudo lxc exec antizapret-vpn -- sed -i '/^[[:space:]]*$/d;/\b\(txqueuelen\|keepalive\)\b/d;s/comp-lzo/port 443\
txqueuelen 1000\
fast-io/g' /etc/openvpn/server/antizapret.conf
sudo lxc exec antizapret-vpn -- sed -i '/^[@#]/d;/^[[:space:]]*$/d;s/comp-lzo/port 443\
cipher AES-128-GCM/g' /root/easy-rsa-ipsec/templates/openvpn-udp-unified.conf
sudo lxc exec antizapret-vpn -- sed -i '/^[@#]/d;/^[[:space:]]*$/d;s/comp-lzo/port 443\
cipher AES-128-GCM/g' /root/easy-rsa-ipsec/CLIENT_KEY/antizapret-client-udp.ovpn
#
# Настраиваем OpenVpn для TCP
# Удалим keepalive, увеличим txqueuelen до 1000, добавим tcp-nodelay и cipher AES-128-GCM, изменим порт с 1194 на 443
sudo lxc exec antizapret-vpn -- sed -i '/^[[:space:]]*$/d;/\b\(txqueuelen\|keepalive\)\b/d;s/cipher AES-128-CBC/port 443\
txqueuelen 1000\
tcp-nodelay/g' /etc/openvpn/server/antizapret-tcp.conf
sudo lxc exec antizapret-vpn -- sed -i '/^[@#]/d;/^[[:space:]]*$/d;s/cipher AES-128-CBC/port 443\
cipher AES-128-GCM/g' /root/easy-rsa-ipsec/templates/openvpn-tcp-unified.conf
sudo lxc exec antizapret-vpn -- sed -i '/^[@#]/d;/^[[:space:]]*$/d;s/cipher AES-128-CBC/port 443\
cipher AES-128-GCM/g' /root/easy-rsa-ipsec/CLIENT_KEY/antizapret-client-tcp.ovpn
#
# Получаем файлы подключения по UDP и TCP
sudo lxc file pull antizapret-vpn/root/easy-rsa-ipsec/CLIENT_KEY/antizapret-client-udp.ovpn antizapret-client-udp.ovpn
sudo lxc file pull antizapret-vpn/root/easy-rsa-ipsec/CLIENT_KEY/antizapret-client-tcp.ovpn antizapret-client-tcp.ovpn
#
# Ставим патч для устройств Apple https://ntc.party/t/ios-macos-openvpn/4468
sudo lxc exec antizapret-vpn -- apt update && sudo apt upgrade -y
sudo lxc exec antizapret-vpn -- apt remove --purge python3-dnslib -y
sudo lxc exec antizapret-vpn -- apt autoremove -y
sudo lxc exec antizapret-vpn -- apt install python3-pip socat -y
sudo lxc exec antizapret-vpn -- pip3 install dnslib
sudo lxc exec antizapret-vpn -- wget https://raw.githubusercontent.com/nzkhammatov/antizapret_ios_patch/main/p.patch -O /root/dnsmap/p.patch
sudo lxc exec antizapret-vpn -- sh -c "cd /root/dnsmap && patch -i p.patch"
#
# Обновляем antizapret до последней версии из репозитория
sudo lxc exec antizapret-vpn -- mv -f /root/antizapret/process.sh /root/antizapret-process.sh
sudo lxc exec antizapret-vpn -- rm -rf /root/antizapret
sudo lxc exec antizapret-vpn -- git clone https://bitbucket.org/anticensority/antizapret-pac-generator-light.git /root/antizapret
sudo lxc exec antizapret-vpn -- mv -f /root/antizapret-process.sh /root/antizapret/process.sh
##################################
# Настраиваем исключения #
##################################
#
# Добавляем свои адреса в исключения
sudo lxc exec antizapret-vpn -- sh -c "echo 'youtube.com
googlevideo.com
ytimg.com
ggpht.com
googleapis.com
gstatic.com
gvt1.com
gvt2.com
gvt3.com
digitalocean.com
adguard-vpn.com
signal.org' > /root/antizapret/config/include-hosts-custom.txt"
#
# Ограничивают доступ из РФ - https://github.com/dartraiden/no-russia-hosts/blob/master/hosts.txt
# (список примерный и скопирован не весь)
sudo lxc exec antizapret-vpn -- sh -c "echo 'copilot.microsoft.com
4pda.to
habr.com
cisco.com
dell.com
dellcdn.com
fujitsu.com
deezer.com
fluke.com
formula1.com
intel.com
nordvpn.com
qualcomm.com
strava.com
openai.com
intercomcdn.com
oaistatic.com
oaiusercontent.com
chatgpt.com' >> /root/antizapret/config/include-hosts-custom.txt"
#
# Внереестровые блокировки - https://bitbucket.org/anticensority/russian-unlisted-blocks/src/master/readme.txt
sudo lxc exec antizapret-vpn -- sh -c "echo 'tor.eff.org
news.google.com
play.google.com
twimg.com
bbc.co.uk
bbci.co.uk
radiojar.com
xvideos.com
doubleclick.net
windscribe.com
vpngate.net
rebrand.ly
adguard.com
antizapret.prostovpn.org
avira.com
mullvad.net
invent.kde.org
s-trade.com
ua
is.gd
1plus1tv.ru
linktr.ee
is.gd
anicult.org
12putinu.net
padlet.com
tlsext.com' >> /root/antizapret/config/include-hosts-custom.txt"
#
# Удаляем исключения из исключений
sudo lxc exec antizapret-vpn -- sed -i "/\b\(youtube\|youtu\|ytimg\|ggpht\|googleusercontent\|cloudfront\|ftcdn\)\b/d" /root/antizapret/config/exclude-hosts-dist.txt
sudo lxc exec antizapret-vpn -- sed -i "/\b\(googleusercontent\|cloudfront\|deviantart\)\b/d" /root/antizapret/config/exclude-regexp-dist.awk
#
# Добавляем AdGuard DNS для блокировки рекламы, отслеживающих модулей и фишинга
sudo lxc exec antizapret-vpn -- sh -c "echo \"\npolicy.add(policy.all(policy.FORWARD({'94.140.14.14'})))\npolicy.add(policy.all(policy.FORWARD({'94.140.15.15'})))\" >> /etc/knot-resolver/kresd.conf"
#
# Обновляем списки антизапрета
sudo lxc exec antizapret-vpn -- /root/antizapret/doall.sh
sudo lxc exec antizapret-vpn -- sh -c "echo 'cache.clear()' | socat - /run/knot-resolver/control/1"
#
# Перезапускаем контейнер антизапрета
sudo lxc restart antizapret-vpn