LinuxForum.Fans
Тема

маршрутизация в l2tp

Автор: paran0id 9 сообщений 3174 просмотров
#337262

Сделал сервер l2tp+ipsec, есть несколько клиентов под виндой и линуксом.
Задача - клиенты должны видеть друг друга и сервер, но не использовать vpn как шлюз по умолчанию (если не задать это на клиенте принудительно).
На данный момент клиенты пингуют сервер, но сервер не пингует клиентов. Клиенты также не видят друг друга - дальше впн-сервера трассировка не идёт.

На сервере:

text
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         <шлюз провайдера>      0.0.0.0         UG    0      0        0 eth0
<подсеть провайдера>      0.0.0.0         255.255.255.0   U     0      0        0 eth0
<клиент 1>  0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
<клиент 2>  0.0.0.0         255.255.255.255 UH    0      0        0 ppp1

в iptables

text
-A POSTROUTING -s <сеть vpn> -j SNAT --to-source <внешний ip>
-A INPUT -s <сеть vpn> -j ACCEPT
-A INPUT -d <сеть vpn> -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s <сеть vpn> -j ACCEPT
-A FORWARD -d <сеть vpn> -m state --state RELATED,ESTABLISHED -j ACCEPT

На линуксовом клиенте (ip в vpn <клиент 1>):

text
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
0.0.0.0         <провайдерский шлюз>       0.0.0.0         UG    0      0        0 eth1
<провайдерская сеть>        0.0.0.0         255.0.0.0       U     0      0        0 eth1
<провайдерский шлюз>       0.0.0.0         255.255.255.255 UH    0      0        0 eth1
<внешний ip через vpn провайдера>    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
<сеть vpn>   <клиент 1>  255.255.255.0   UG    0      0        0 ppp1
<клиент 1>   0.0.0.0         255.255.255.255 UH    0      0        0 ppp1

в iptables

text
-A INPUT -s <сеть vpn> -j ACCEPT
-A INPUT -d <сеть vpn> -m state --state RELATED,ESTABLISHED -j ACCEPT

на виндовом клиенте <клиент 2> (в виртуалке стоит):

text
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0         10.0.2.2        10.0.2.15     10
         10.0.2.0    255.255.255.0         On-link         10.0.2.15    266
        10.0.2.15  255.255.255.255         On-link         10.0.2.15    266
       10.0.2.255  255.255.255.255         On-link         10.0.2.15    266
     <внешний ip vpn-сервера>  255.255.255.255         10.0.2.2        10.0.2.15     11
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
    <сеть vpn>   255.255.255.0    192.168.111.1   192.168.111.10     11
   <клиент 2>  255.255.255.255         On-link    192.168.111.10    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link         10.0.2.15    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link         10.0.2.15    266
  255.255.255.255  255.255.255.255         On-link    192.168.111.10    266
===========================================================================
Постоянные маршруты:
  Отсутствует
#337317

Во первых не забываем об форвардинге пакетов между интерфейсами

text
echo 1 > /proc/sys/net/ipv4/ip_forward

покажыте но вывод

text
iptables -S

Ну и конфиг сервера.

#337635
text
echo 1 > /proc/sys/net/ipv4/ip_forward

включено

text
# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N PSAD_BLOCK_FORWARD
-N PSAD_BLOCK_INPUT
-N PSAD_BLOCK_OUTPUT
-A INPUT -j PSAD_BLOCK_INPUT
-A INPUT -s 192.168.111.0/24 -j ACCEPT
-A INPUT -d 192.168.111.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j LOG
-A FORWARD -j PSAD_BLOCK_FORWARD
-A FORWARD -s <сеть vpn> -j ACCEPT
-A FORWARD -d <сеть vpn> -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o eth0 -p tcp -j DROP
-A FORWARD -j LOG
-A OUTPUT -j PSAD_BLOCK_OUTPUT
text
# cat /etc/xl2tpd/xl2tpd.conf | grep -v '^;'
[global]                                                                ; Global parameters:
port = 1701                                                     ; * Bind to port 1701
auth file = /etc/l2tpd/l2tp-secrets     ; * Where our challenge secrets are
access control = no                                     ; * Refuse connections without IP match
rand source = dev                     ; Source for entropy for random
[lns default]                                                   ; Our fallthrough LNS definition
exclusive = no                                          ; * Only permit one tunnel per host
ip range = 192.168.111.10-192.168.111.50        ; * Allocate from this IP range
local ip = 192.168.111.1                                ; * Our local IP to use
length bit = yes                                                ; * Use length bit in payload?
refuse pap = yes                                                ; * Refuse PAP authentication
refuse chap = yes                                               ; * Refuse CHAP authentication
require authentication = yes                    ; * Require peer to authenticate
ppp debug = yes                                         ; * Turn on PPP debugging
pppoptfile = /etc/ppp/options.l2tpd.lns ; * ppp options file
text
# cat /etc/ppp/options.l2tpd.lns 
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mru 1200
mtu 1200
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
nodefaultroute
connect-delay 5000
logfile /var/log/l2tpd.log
#338047

Апдейт. Поставил на виндовом клиенте VPN шлюзом по умолчанию - он начал пинговаться с сервера.

#338245

Так теперь опешыте какой айпи у сервера и какие айпишки получают клиенты. Далее покажыте таблицу маршрутизацыи на сервера после приконекчивания к нему клиентов. Для того чтобы пакеты ходили между интерфейсами нужно включить форвардинг пакетов

text
echo 1 > /proc/sys/net/ipv4/ip_forward

По конфигу не скажу потому что такого не настраивал. Могу тока сказать одно, что в конфиге сервака не прописаны верно маршрути, которые должны подниматса при конекте клиента. Хотя я в конфигах вообще не видил поднятия никаких маршрутов. Ну да ладно, покажыте то что я просил.

#338513

Форвардинг на сервере включен.

text
# cat /proc/sys/net/ipv4/ip_forward
1

Таблица маршрутизации на сервере при подключении клиента:

text
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         <внешний ip>      0.0.0.0         UG    0      0        0 eth0
<подсеть прова>      0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.111.10  0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

192.168.111.10 - клиент
у сервера при этом создался интерфейс ppp0 192.168.111.1

когда на клиенте vpn - шлюз по умолчанию, оба могут пинговать друг друга
когда на клиенте шлюз по умолчанию остаётся старый, сервер не пингует клиента

т.е. нужен какой-то маршрут на стороне клиента?

#338517

А какая таблица маршрутизацыи на клиенте при конекте?

#338521

с дефолтным шлюзом в впн

text

IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0         10.0.2.2        10.0.2.15   4235
          0.0.0.0          0.0.0.0         On-link    192.168.111.10     11
         10.0.2.0    255.255.255.0         On-link         10.0.2.15   4491
        10.0.2.15  255.255.255.255         On-link         10.0.2.15   4491
       10.0.2.255  255.255.255.255         On-link         10.0.2.15   4491
     <ip сервера>  255.255.255.255         10.0.2.2        10.0.2.15   4236
        127.0.0.0        255.0.0.0         On-link         127.0.0.1   4531
        127.0.0.1  255.255.255.255         On-link         127.0.0.1   4531
  127.255.255.255  255.255.255.255         On-link         127.0.0.1   4531
   192.168.111.10  255.255.255.255         On-link    192.168.111.10    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1   4531
        224.0.0.0        240.0.0.0         On-link         10.0.2.15   4492
        224.0.0.0        240.0.0.0         On-link    192.168.111.10     11
  255.255.255.255  255.255.255.255         On-link         127.0.0.1   4531
  255.255.255.255  255.255.255.255         On-link         10.0.2.15   4491
  255.255.255.255  255.255.255.255         On-link    192.168.111.10    266
===========================================================================

без него

text

IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0         10.0.2.2        10.0.2.15     10
         10.0.2.0    255.255.255.0         On-link         10.0.2.15    266
        10.0.2.15  255.255.255.255         On-link         10.0.2.15    266
       10.0.2.255  255.255.255.255         On-link         10.0.2.15    266
     <ip сервера>  255.255.255.255         10.0.2.2        10.0.2.15     11
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
    192.168.111.0    255.255.255.0    192.168.111.1   192.168.111.10     11
   192.168.111.10  255.255.255.255         On-link    192.168.111.10    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link         10.0.2.15    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link         10.0.2.15    266
  255.255.255.255  255.255.255.255         On-link    192.168.111.10    266
===========================================================================
#338565
"paran0id⇓" написал:
192.168.111.0 255.255.255.0 192.168.111.1 192.168.111.10

точно не знаю может должно быть так

text
192.168.111.1 255.255.255.0 192.168.111.10 192.168.111.10 
Войдите или зарегистрируйтесь, чтобы ответить.