LINUX.ORG.RU
ФорумAdmin

OpenVPN на роутере, нет интернета

 , ,


0

1

Есть сервер OpenVPN (10.8.0.0) — клиент роутер (192.168.1.1) == клиенты роутера (192.168.1.х) При подключении на клиентах и роутере нет интернета, сервер и роутер Debian 11 Отдельно клиенты свободно подключаются к серверу. При активации push «route 192.168.1.0 255.255.255.0» на сервере, роутер отваливается (приходится перезагружать), сначала пробовал по скрипту ставить, потом решил ручками все сертификаты подписать - не помогло.

Сервер

local хх.хх.хх.хх
port 1194
proto udp
dev tun
#topology subnet
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
client-config-dir /etc/openvpn/server/ccd
route 192.168.1.0 255.255.255.0
#push "route 192.168.1.0 255.255.255.0"
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 3
# for udp only
explicit-exit-notify 1

cdd

ifconfig-push 10.8.0.2 255.255.255.0
iroute 192.168.1.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"

Клиент

client
dev tun
proto udp
remote хх.хх.хх.хх 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA256
cipher AES-256-CBC
verb 3
key-direction 1

iptables

#!/bin/bash

export IPT="iptables"

# Внешний интерфейс
export WAN=enp1s0 # МТС
#export WAN=ppp0 # Ростелеком
#export WAN=tun0 # VPN
export WAN_IP=dhcp

# Локальная сеть
export LAN1=br0
export LAN1_IP_RANGE=192.168.1.0/24

# Очищаем правила
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Запрещаем все, что не разрешено
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# Разрешаем localhost и локалку
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN1 -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN1 -j ACCEPT

# Рзрешаем пинги
#$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
#$IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
#$IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
#$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Разрешаем все исходящие подключения сервера
$IPT -A OUTPUT -o $WAN -j ACCEPT
# Разрешаем все входящие подключения сервера
#$IPT -A INPUT -i $WAN -j ACCEPT

# разрешаем установленные подключения
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Отбрасываем неопознанные пакеты
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Отбрасываем нулевые пакеты
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# Закрываемся от syn-flood атак
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP


# Разрешаем доступ из локалки наружу
$IPT -A FORWARD -i $LAN1 -o $WAN -j ACCEPT
# Закрываем доступ снаружи в локалку
$IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT

# Включаем NAT
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN1_IP_RANGE -j MASQUERADE

# открываем Rutracker
$IPT -t nat -A OUTPUT -p tcp -m tcp --dport 80 -d 195.82.146.120/30 -j DNAT --to-destination 185.15.211.203:80

#все для ТОР
$IPT -A INPUT -s $LAN1_IP_RANGE -p tcp --dport 9040 -j ACCEPT
$IPT -A INPUT -s $LAN1_IP_RANGE -p udp --dport 5300 -j ACCEPT
$IPT -A INPUT -p tcp --dport 9040 -j DROP
$IPT -A INPUT -p udp --dport 5300 -j DROP
$IPT -t nat -A PREROUTING -p tcp -d 10.0.0.0/8 -j REDIRECT --to-port 9040
$IPT -t nat -A PREROUTING -p udp --dport 53 -m string \
--hex-string "|056f6e696f6e00|" --algo bm -j REDIRECT --to-ports 5300
$IPT -t nat -A OUTPUT -p udp --dport 53 -m string \
--hex-string "|056f6e696f6e00|" --algo bm -j REDIRECT --to-ports 5300
$IPT -t nat -A PREROUTING -p tcp -m multiport --dports 80,443 \
-m set --match-set blacklist dst -j REDIRECT --to-port 9040
$IPT -t nat -A OUTPUT -p tcp -m multiport --dports 80,443 \
-m set --match-set blacklist dst -j REDIRECT --to-port 9040

#Обход Squid
$IPT -t nat -A PREROUTING -s 192.168.1.10 -p tcp -m tcp --dport 80 -j RETURN
$IPT -t nat -A PREROUTING -s 192.168.1.10 -p tcp -m tcp --dport 443 -j RETURN
$IPT -t nat -A PREROUTING -s 192.168.1.11 -p tcp -m tcp --dport 80 -j RETURN
$IPT -t nat -A PREROUTING -s 192.168.1.11 -p tcp -m tcp --dport 443 -j RETURN
$IPT -t nat -A PREROUTING -s 192.168.1.20 -p tcp -m tcp --dport 80 -j RETURN
$IPT -t nat -A PREROUTING -s 192.168.1.20 -p tcp -m tcp --dport 443 -j RETURN

#Подключаем Squid
$IPT -t nat -A PREROUTING -p tcp -m tcp -s $LAN1_IP_RANGE --dport 443 -j REDIRECT --to-ports 3129
$IPT -t nat -A PREROUTING -p tcp -m tcp -s $LAN1_IP_RANGE --dport 80 -j REDIRECT --to-ports 3128

# Сохраняем правила
/sbin/iptables-save > /etc/iptables.rules

При подключении

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.1        128.0.0.0       UG    0      0        0 tun0
default         100.127.0.1     0.0.0.0         UG    0      0        0 enp1s0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
45.9.73.92      100.127.0.1     255.255.255.255 UGH   0      0        0 enp1s0
100.127.0.0     0.0.0.0         255.255.0.0     U     0      0        0 enp1s0
128.0.0.0       10.8.0.1        128.0.0.0       UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br0
Мои полномочия уже всё! Хочу всех клиентов в VPN загнать, а потом когда нибудь, может быть и разделить запросы, хотя мне не нравится как ipset работает...



Последнее исправление: dotstal (всего исправлений: 1)

Ответ на: комментарий от symon2014

Как вы понимаете, это не первый день моей битвы, и перепробовал кучу всего, так что во многих инструкциях iroute существует, заменил на route и сразу упала сеть на роутере.

dotstal
() автор топика
Ответ на: комментарий от symon2014

Да, так как не дает результата, вот с включенной

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.1        128.0.0.0       UG    0      0        0 tun0
default         100.126.0.1     0.0.0.0         UG    0      0        0 enp1s0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
45.9.73.92      100.126.0.1     255.255.255.255 UGH   0      0        0 enp1s0
100.126.0.0     0.0.0.0         255.255.0.0     U     0      0        0 enp1s0
128.0.0.0       10.8.0.1        128.0.0.0       UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br0

Ту тему я видел, оттуда и взял. Мне кажется я что-то напутал с этими роутингами.

dotstal
() автор топика

Эту строку уберите:

push "redirect-gateway def1 bypass-dhcp"

Она перезаписывает шлюз, а это, как я понял, вам не нужно.

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

bypass-dhcp - если убать, ничего не меняет, если убрать всю строку то трафик идет мимо, я качал впн файлик от антизапрет - все тоже самое (хотя он позиционируется как для роутеров) значит у меня на роутере что-то не то происходит с маршрутами.

dotstal
() автор топика
Ответ на: комментарий от dotstal

если убрать всю строку то трафик идет мимо

Вы не писали, что вам необходимо маршрутизировать в VPN весь трафик. Обычно VPN используют для создания локальной сети поверх интернета, и для этого обычно нужна полноценная двусторонняя маршрутизация, что вы в первом сообщении, как мне показалось, и пытались настроить.

Если вам нужен только VPN как шлюз, то просто включите NAT в VPN-интерфейс на роутере. На сервере ничего дополнительно настраивать не нужно, все маршруты и CCD на сервере уберите.

ValdikSS ★★★★★
()
Ответ на: комментарий от symon2014

Ну у роутера 6 lan, это они.

allow-hotplug enp1s0
iface enp1s0 inet dhcp

auto br0
iface br0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    bridge_ports enp2s0 eno1 enp7s0 enp8s0 enp9s0

Да можно и поверх, но дело в том, что не работает и поверх, от антизапрет) если запустить, то трафик основной идет нормально, а к заблокированным сайтам не пускет. У меня там сквид стоит, может это из-за него?

dotstal
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.