Files
knowledge-base/projects/niikn/openwrt-bypass.md

127 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpenWrt + Podkop — Обход блокировок НИИКН
## Схема работы
```
Клиент → MikroTik (192.168.1.1)
├── обычные сайты → интернет напрямую
└── заблокированные → 192.168.1.50 (OpenWrt) → AWG туннель → 78.17.4.225 (Финляндия)
```
**Если OpenWrt упадёт:** заблокированные сайты недоступны, остальной интернет и RDP работают штатно.
## OpenWrt VM (Proxmox НИИКН)
| Параметр | Значение |
|----------|----------|
| VMID | 101 |
| IP | 192.168.1.50 |
| Версия | OpenWrt 24.10.0 |
| Serial console | /var/run/qemu-server/101.serial0 на pve-niikn (192.168.1.201) |
| Root пароль | 1qaz!QAZ |
## AWG туннель (AmneziaWG)
| Параметр | Значение |
|----------|----------|
| Сервер | 78.17.4.225:39202 (контейнер amnezia-awg2) |
| Клиентский IP | 10.8.1.4/32 |
| Интерфейс | awg0 |
| Private key | jfqknYLvJKYp++cjJPxV/dn8IQNPyaPhR/2bc4PK5+4= |
| Public key (сервер) | cftJxWuBCyz9ZiLDi23ouMQNAky5aTAUZIRHNS6l7mc= |
| Preshared key | PiQ3bao3nSxQqJoiJugAG77ZjRXxorBS81YwoRaLzEc= |
### Параметры обфускации (сервер и клиент должны совпадать)
| Параметр | Значение |
|----------|----------|
| Jc | 5 |
| Jmin | 10 |
| Jmax | 50 |
| S1 | 148 |
| S2 | 21 |
| S3 | 0 (клиент не поддерживает S3/S4, сервер тоже выставлен в 0) |
| S4 | 0 |
| H1 | 1666291593 |
| H2 | 2114876545 |
| H3 | 2135310789 |
| H4 | 2140829733 |
> **Важно:** H-значения на сервере должны быть фиксированными числами (не диапазонами).
> Файл конфига сервера: `/opt/amnezia/awg/awg0.conf` внутри контейнера `amnezia-awg2` на 78.17.4.225.
## Podkop + sing-box
| Параметр | Значение |
|----------|----------|
| Версия | podkop v0.7.14 |
| Режим | VPN (connection_type=vpn) |
| Интерфейс | awg0 |
| Списки | russia_inside, telegram |
| disable_quic | 1 (блокировка QUIC — браузеры используют TCP) |
| LuCI плагин | luci-app-podkop |
| DNS (sing-box) | 127.0.0.42:53 (FakeIP 198.18.0.0/15) |
| DNS (dnsmasq) | 192.168.1.50:53 → форвардит в 127.0.0.42 |
### UCI конфигурация (/etc/config/podkop)
```
config settings 'settings'
option dns_type 'udp'
option dns_server '8.8.8.8'
option disable_quic '1'
list source_network_interfaces 'br-lan'
config section 'main'
option connection_type 'vpn'
option interface 'awg0'
list community_lists 'russia_inside'
list community_lists 'telegram'
```
## Настройка MikroTik (192.168.1.1)
### Добавленные маршруты
```
/ip route add dst-address=198.18.0.0/15 gateway=192.168.1.50 comment=podkop-fakeip
```
FakeIP диапазон (198.18.0.0/15) направляется через OpenWrt → sing-box перехватывает и пускает через AWG.
### DHCP — DNS для клиентов
```
/ip dhcp-server network set 0 dns-server=192.168.1.50
```
Клиенты получают DNS 192.168.1.50 (dnsmasq → sing-box FakeIP).
## Как работает FakeIP схема
1. Клиент запрашивает DNS для `instagram.com` → получает FakeIP `198.18.x.x`
2. Клиент открывает соединение на `198.18.x.x`
3. MikroTik смотрит таблицу маршрутов: `198.18.0.0/15 → 192.168.1.50`
4. Пакет приходит на OpenWrt → nftables ставит fwmark → tproxy → sing-box
5. sing-box знает реальный адрес (из FakeIP кэша) → подключается через awg0 → Финляндия
## Доступные списки podkop
Все списки из https://github.com/itdoginfo/allow-domains:
`russia_inside`, `russia_outside`, `telegram`, `youtube`, `meta`, `twitter`, `discord`, `tiktok`, `hdrezka`, `news`, `anime` и др.
Добавить список:
```sh
uci add_list podkop.main.community_lists=youtube
uci commit podkop
podkop restart
```
## Известные проблемы / Особенности
- `proto_amneziawg_check_installed: not found`баг в `/lib/netifd/proto/amneziawg.sh:298`, нефатальный, интерфейс поднимается
- `amneziawg-tools 1.0.20240213-r1` не поддерживает S3/S4 → выставить в 0 на сервере
- H-значения сервера должны быть фиксированными (не диапазонами `H1=x-y`)
- После перезагрузки: sing-box running, awg0 UP — `podkop status` = "not running" это нормально (podkop не демон)
- Битый feed убран из `/etc/opkg/customfeeds.conf`