Первые наброски конфигураций WireGuard + udp2raw
- Конфиги сервера (Ubuntu) и клиента (Raspberry Pi 4): wg0.conf, systemd-сервисы udp2raw, nftables - README с инструкцией по развёртыванию и генерации ключей - .gitignore: исключены бинарный архив udp2raw и генерируемые *.key - .gitattributes: LF для всех Linux-конфигов (.conf/.service/.sh)
This commit is contained in:
53
client/nftables.conf
Normal file
53
client/nftables.conf
Normal file
@@ -0,0 +1,53 @@
|
||||
# RASPBERRY PI 4: /etc/nftables.conf
|
||||
|
||||
table ip nat {
|
||||
chain postrouting {
|
||||
type nat hook postrouting priority srcnat; policy accept;
|
||||
ip saddr 192.168.77.0/24 oifname "usbnet" masquerade
|
||||
|
||||
ip saddr 192.168.77.0/24 oifname "wg0" masquerade
|
||||
}
|
||||
}
|
||||
table inet filter {
|
||||
chain input {
|
||||
type filter hook input priority filter; policy drop;
|
||||
ct state established,related accept
|
||||
iifname "lo" accept
|
||||
ip protocol icmp accept
|
||||
ip6 nexthdr ipv6-icmp accept
|
||||
tcp dport 22 accept
|
||||
iifname "wlan0" udp dport { 67, 68 } accept
|
||||
iifname "wlan0" udp dport 53 accept
|
||||
tcp dport 8080 accept
|
||||
|
||||
iifname "wg0" accept
|
||||
}
|
||||
|
||||
chain forward {
|
||||
type filter hook forward priority filter; policy drop;
|
||||
iifname "wlan0" oifname "usbnet" accept
|
||||
iifname "usbnet" oifname "wlan0" ct state established,related accept
|
||||
|
||||
iifname "wlan0" oifname "wg0" accept
|
||||
iifname "wg0" oifname "wlan0" ct state established,related accept
|
||||
}
|
||||
|
||||
chain output {
|
||||
type filter hook output priority filter; policy accept;
|
||||
}
|
||||
}
|
||||
table ip nm-shared-wlan0 {
|
||||
chain nat_postrouting {
|
||||
type nat hook postrouting priority srcnat; policy accept;
|
||||
ip saddr 192.168.77.0/24 ip daddr != 192.168.77.0/24 masquerade
|
||||
}
|
||||
|
||||
chain filter_forward {
|
||||
type filter hook forward priority filter; policy accept;
|
||||
ip daddr 192.168.77.0/24 oifname "wlan0" ct state { established, related } accept
|
||||
ip saddr 192.168.77.0/24 iifname "wlan0" accept
|
||||
iifname "wlan0" oifname "wlan0" accept
|
||||
iifname "wlan0" reject
|
||||
oifname "wlan0" reject
|
||||
}
|
||||
}
|
||||
15
client/udp2raw-client.service
Normal file
15
client/udp2raw-client.service
Normal file
@@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=udp2raw Client (FakeTCP)
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
# Слушает локальный UDP-порт 51821 и транслирует в TCP на внешний IP сервера 95.174.102.77:443
|
||||
# ВАЖНО: Пароль в параметре -k должен строго совпадать с паролем на сервере!
|
||||
ExecStart=/usr/local/bin/udp2raw -c -l 127.0.0.1:51821 -r 95.174.102.77:443 -k "MY_CONFIDENTIAL_PASS" --raw-mode faketcp -a
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
18
client/wg0.conf
Normal file
18
client/wg0.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
# RASPBERRY PI 4:
|
||||
|
||||
[Interface]
|
||||
Address = 10.66.66.2/24
|
||||
# Приватный ключ Raspberry Pi (из файла client_private.key)
|
||||
PrivateKey = eKiGDY62/9pgFrwzoNIb7URRLPgEHC1W7zHwIIDYQVw=
|
||||
# Уменьшенный MTU для компенсации оверхеда фейковых заголовков TCP
|
||||
MTU = 1200
|
||||
|
||||
[Peer]
|
||||
# Публичный ключ Сервера (из файла server_public.key)
|
||||
PublicKey = dVIwnwxkjan/K278vzhOjp5A79N98j0O1zsYqT24qzs=
|
||||
# Стучимся в локальный порт udp2raw, запущенный прямо на Малинке
|
||||
Endpoint = 127.0.0.1:51821
|
||||
# Маршрутизируем абсолютно весь трафик через VPN туннель
|
||||
AllowedIPs = 0.0.0.0/0
|
||||
# Пакет удержания сессии через NAT провайдера
|
||||
PersistentKeepalive = 25
|
||||
Reference in New Issue
Block a user