catesin / AmneziaVPN-MikroTik

AmneziaVPN+MikroTik
42 stars 5 forks source link

Private Cloud #1

Closed dominikes closed 3 weeks ago

dominikes commented 1 month ago

Имеется Private Cloud (думаю LXC) имеют доступ в интернет через общий публичный адрес с возможностью проброса любых портов. Что-то не получается завести на микротике конфиг WG прямое подключение через приложение amnezia есть. Но когда кидаю конфиг в контейнер микротика трафик не идет: Основной IP 200.64.1.11 Внешний адрес WG: 15.23.188.2:10032 сеть контейнера, как у Вас описана: 172.18.20.1/30 Не могли бы Вы подсказать, где может быть решение вопроса, я не столь силен в linux, но мне кажется где то не проходят пакеты

iptables -t nat -L -n -v Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
5 1872 DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
0 0 DOCKER all -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- !docker0 172.17.0.0/16 0.0.0.0/0
309 31258 MASQUERADE all --
!amn0 172.29.172.0/24 0.0.0.0/0
0 0 MASQUERADE udp -- 172.29.172.2 172.29.172.2 udp dpt:10032 0 0 MASQUERADE udp -- 172.29.172.3 172.29.172.3 udp dpt:10033

Chain DOCKER (2 references) pkts bytes target prot opt in out source destination
0 0 RETURN all -- docker0 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- amn0
0.0.0.0/0 0.0.0.0/0
2 200 DNAT udp -- !amn0 0.0.0.0/0 0.0.0.0/0 udp dpt:10032 to:172.29.172.2:10032 0 0 DNAT udp -- !amn0 0.0.0.0/0 0.0.0.0/0 udp dpt:10033 to:172.29.172.3:10033

catesin commented 1 month ago

1) Конфигурацию iptables, которую устанавливает на сервере (не в контейнере) Amnezia, трогать не нужно. Она работает по дефолту. 2) Зайдите в shell контейнера на MikroTik 3) Убедитесь что у вас поднялся туннель в контейнере через "ip a" (появится доп. интерфейс awg) 4) Сделайте бесконечный ping до 1.1.1.1. Трафик должен заворачиваться в туннель awg. При этом смотрите в MikroTik "ip/firewall/connection/" создаётся ли сессия до вашего PrivateCloud от контейнера. 5) Одновременно со стороны PrivateCloud запустите tcpdump в shell и посмотрите прилетает ли пакет от вашего MikroTIk в облако.

Таким образом вы сможете убедится что сессия установилась. Тоже самое, только ещё проще, что бы убедиться что awg поднялся, зайдите в приложение Amnezia и в разделе, где вы создавали пользователя AWG, посмотрите статистику.

2024-09-29 11_28_24-AmneziaVPN

Пункт "Последнее рукопожатие" будет говорить о том, когда последний раз успешно подключался клиент.

dominikes commented 1 month ago

Благодарю за обратную связь

Убедитесь что у вас поднялся туннель в контейнере через "ip a" (появится доп. интерфейс awg)

Туннель поднялся, связь устанавливается: Снимок экрана 2024-09-30 в 23 09 43 но трафик не идет. В тоже время при тех же настройках (согласно Вашей инструкции) на другом обычном VPS, не PRIVAT CLOUD, все работает! Предполагаю что-то дополнительно надо настроить Прямое подключение через приложение Amnezia подключение работает и трафик идет amnezia:/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 32:60:7a:87:ae:5a brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.18.20.2/30 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::3060:7aff:fe87:ae5a/64 scope link valid_lft forever preferred_lft forever 29: awg0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1420 qdisc pfifo_fast state UNKNOWN group default qlen 500 link/none inet 10.8.1.3/32 scope global awg0 valid_lft forever preferred_lft forever

traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 46 byte packets 1 10.8.1.0 (10.8.1.0) 104.170 ms 106.742 ms 106.336 ms 2 172.29.172.1 (172.29.172.1) 104.888 ms 103.479 ms 103.508 ms 3 100.64.1.1 (100.64.1.1) 103.901 ms 104.888 ms 104.736 ms 4 91.108.243.251 (91.108.243.251) 106.267 ms 104.211 ms 104.534 ms 5 192.168.10.0 (192.168.10.0) 105.568 ms 105.908 ms 105.651 ms 6 10.0.255.1 (10.0.255.1) 148.910 ms 150.591 ms 149.029 ms 7 * * * 8 * * * 9 194.164.96.129 (194.164.96.129) 152.234 ms 151.464 ms 153.144 ms 10 ldn2-core01-via-8220.pebblehost.net (194.213.3.86) 153.048 ms 155.764 ms 156.131 ms 11 google1.lonap.net (5.57.80.136) 161.798 ms 163.496 ms 167.905 ms 12 192.178.97.187 (192.178.97.187) 158.781 ms 192.178.97.255 (192.178.97.255) 163.212 ms 160.228 ms 13 192.178.46.87 (192.178.46.87) 165.864 ms 209.85.241.93 (209.85.241.93) 155.059 ms 142.251.52.145 (142.251.52.145) 161.984 ms 14 dns.google (8.8.8.8) 164.553 ms * 163.451 ms

catesin commented 1 month ago

Возможно стоит добавить правило изменения mss для трафика, уходящего в контейнер. Поместите его после правила с RFC1918 (его мы создали ранее).:

/ip firewall mangle
add action=change-mss chain=forward new-mss=1360 out-interface=docker-awg-veth passthrough=yes protocol=tcp tcp-flags=syn tcp-mss=1453-6553

В целом по инструкции добавлен вариант контейнера с NAT не требующий настройки на стороне VPS. Попробуйте использовать его.