Что есть сейчас: Сервер linux с установленным wireguard, unbound dns, pihole, seafile. Роутер keenetic speedster, для seafile и других сервисов я сделал локальные имена на pi-hole которые указывают на 10.0.0.1 - адрес сервера в сети wireguard
Что я могу сейчас: Могу подключиться через конфиг wg к интернету и если я назначаю устройству сеть wireguard, чтобы весь трафик шел через через туннель, я могу подключаться к локальным адресам вроде fakedomain.com и попадать на seafile или, например через pihole.net попадать на мой сервис pihole...
Что я хочу сделать: Я хочу разделить трафик чтобы к ресурсам своего сервера я мог попасть только через туннель, а весь остальной трафик пустить через провайдера.
Моя конфигурация: WG-server
[Interface]
Address = 10.0.0.1/24
ListenPort = 56777
PrivateKey = privateKey
MTU = 1450
PostUp = iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o ens3 -j TCPMSS --clamp-mss-to-pmtu; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; iptables -A FORWARD -i %i -j ACCEPT; sysctl -q -w net.ipv4.ip_forward=1
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE; iptables -t mangle -D POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o ens3 -j TCPMSS --clamp-mss-to-pmtu; sysctl -q -w net.ipv4.ip_forward=0
[Peer]
PublicKey = publikKey
PresharedKey = presharedKey
AllowedIPs = 10.0.0.6/32
WG-client:
[Interface]
Address = 10.0.0.6/32
PrivateKey = privateKey
DNS = 10.0.0.1
[Peer]
PublicKey = publicKey
PresharedKey = presharedKey
AllowedIPs = 0.0.0.0/0
Endpoint = 188.119.112.63:56777
PersistentKeepalive = 25
Iptables:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N f2b-sshd
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -s 10.0.0.0/24 -p udp -m udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 5000 -j ACCEPT
-A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5000 -j DROP
-A INPUT -p tcp -m tcp --dport 80 -j DROP
-A INPUT -p tcp -m tcp --dport 443 -j DROP
-A FORWARD -i wg0 -j ACCEPT
Для теста я создал маршрут к dnsleaktest.com 23.239.16.110 и как результат - у меня нормально отображается ip моего сервера, в то же время захожу на 2ip и получаю данимический адрес провайдера, все вроде работает, но! Когда я прописываю маршрут к своему серверу через внутренний ip - 10.0.0.1 я могу подключиться к серверу по ssh, но подключиться к ресурсам могу только по внутреннему адресу и номеру порта, вроде 10.0.0.1:5000. Если прописываю маршрут по внешнему адресу 188.119.112.63 то я просто теряю возможность подключения к серверу вообще, даже по ssh. И не понимаю куда смотреть, в настройки сервера, или я что-то на уровне роутера не так настраиваю. Помогите разобраться, пожалуйста.