2 VPN для разных задач (Помогите настроить систему)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
yto4ko
Сообщения: 9
ОС: Gentoo Linux

2 VPN для разных задач

Сообщение yto4ko »

Здравствуйте. Имеется 2 VPN соединения, на одном подключена услуга "Реальный IP", то есть на это VPN подключение выдаётся выделенный IP, на которые можно попасть с интернета. Проблема вот в чём - когда я подключаюсь к этому VPN и мне выдаётся выделенный IP - то всё нормально, с инетовского сервака этот IP пингуется. Но стоит мне только включить второй VPN - пользователи могут ходить в интернет, а вот выделенный IP первого VPN не пингуется :(
Надо чтобы и на выделенный IP был доступ извне и чтоб пользователи ходили через второй VPN. Крутил роуты повсякому... Нифига :(
ИзображениеИзображение

Вот ещё информация - вдруг пригодится:

Код: Выделить всё

ppp0      Link encap:Point-to-Point Protocol
          inet addr:89.105.xxx.xxx  P-t-P:172.29.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:311 errors:0 dropped:0 overruns:0 frame:0
          TX packets:253 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:126783 (123.8 KiB)  TX bytes:74293 (72.5 KiB)

ppp1      Link encap:Point-to-Point Protocol
          inet addr:192.168.0.200  P-t-P:172.21.134.213  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:230 errors:0 dropped:0 overruns:0 frame:0
          TX packets:448 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:88088 (86.0 KiB)  TX bytes:94800 (92.5 KiB)

ppp0 - VPN с выделенным IP
ppp1 - VPN для раздачи пользователям

Код: Выделить всё

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.21.134.213  h1.lan248.rs    255.255.255.255 UGH   0      0        0 eth0
172.21.134.213  *               255.255.255.255 UH    0      0        0 ppp1
gw.rs           *               255.255.255.255 UH    0      0        0 ppp0
localnet        *               255.255.255.0   U     0      0        0 eth0
homenet         *               255.255.255.0   U     0      0        0 eth1
172.0.0.0       h1.lan248.rs    255.0.0.0       UG    0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp1
Спасибо сказали:
Аватара пользователя
Amper13
Сообщения: 551
ОС: Fedora 26, CentOS 7

Re: 2 VPN для разных задач

Сообщение Amper13 »

Примерно вот так.
$vpn1=ppp0 (интерфейс на котором выделенный ip)
iptables -t filter -A INPUT -i $vpn1 -p tcp -m multiport --dport 25,110,(и т.д) -j ACCEPT
Транзитный трафик:
$local_net=192.168.1.0/24 (ваша сеть)
$net_addr=80.256.24.2 (выделенный ip)
iptables -t filter -A FORWARD -s $local_net -j ACCEPT
iptables -t nat -A POSTROUTING -s $local_net -j SNAT --to-source $net_addr
Спасибо сказали:
Аватара пользователя
pilson66
Сообщения: 59
ОС: Debian Squeeze

Re: 2 VPN для разных задач

Сообщение pilson66 »

Amper13 писал(а):
25.11.2008 10:15
Примерно вот так.
$vpn1=ppp0 (интерфейс на котором выделенный ip)
iptables -t filter -A INPUT -i $vpn1 -p tcp -m multiport --dport 25,110,(и т.д) -j ACCEPT
Транзитный трафик:
$local_net=192.168.1.0/24 (ваша сеть)
$net_addr=80.256.24.2 (выделенный ip)
iptables -t filter -A FORWARD -s $local_net -j ACCEPT
iptables -t nat -A POSTROUTING -s $local_net -j SNAT --to-source $net_addr


Ты упустил тот факт что дефолтный роут с ppp0 заменился на ppp1, а такого здесь быть не должно.

лично я когда-то делал так:

в /etc/inittab прописывается что-то типа

Код: Выделить всё

I1:2345:respawn:/usr/sbin/ptpp user такойто и т.д.... unit 99

unit 99 - номер ppp соединения, который будет назначен. ибо могут быть ситуации когад ppp0 отключится и в это время подключится юзер и получит ppp0

затем в /etc/ppp/ip-up.d/ (отсюда при установке нового соединения стартуют скрипты) рисуется скрипт, который смотрит какой ppp был получен новому соединению. И если это ppp99 - то:
ip r d default
ip d a default dev ppp99

Точный скрипт не приведу, ибо не помню имена переменных, передающиеся из pppd в скрипт
что-то типа такого

Код: Выделить всё

#!/bin/bash

if [ "${PPP_IFACE}" == "ppp99" ]; then
  ip r d default
  ip r a defautt dev ${PPP_IFACE}
fi


и не забыть убрать переопределение дефолтного роута в options-ppp или как его там...
также, если внешний IP изменяется - то проще сделать так:

Код: Выделить всё

iptables -t nat -A POSTROUTING -o ppp99 -j MASQUERADE

и не забыть разрешить форвардинг пакетов :)
Спасибо сказали:
Аватара пользователя
yto4ko
Сообщения: 9
ОС: Gentoo Linux

Re: 2 VPN для разных задач

Сообщение yto4ko »

чтото ничего не получилось :(
на серваке в инете набираю wget http://89.105.xxx.xxx - он пытается подключиться. На своём компе смотрю netstat -tp - там показывается, что сервер из инета пытается подключиться к 80-му порту ... и всё :( потом на сервере в инете: "Connecting to 89.105.xxx.xxx:80... failed: Operation timed out." :( не могу понять причину. Вроде уже подключился, даже пакеты вроде не много ходят, но всё равно нифига.
Спасибо сказали:
Аватара пользователя
pilson66
Сообщения: 59
ОС: Debian Squeeze

Re: 2 VPN для разных задач

Сообщение pilson66 »

ты бы это... рассказал бы ЧТО ты делал, и показал бы что у тебя и как СЕЙЧАС
ifconfig
ip route
iptables -L -v -n
iptables -t nat -L -v -n
cat /proc/sys/net/ipv4/ip_forward
Спасибо сказали:
Аватара пользователя
yto4ko
Сообщения: 9
ОС: Gentoo Linux

Re: 2 VPN для разных задач

Сообщение yto4ko »

Делал ... особенного ничего - только то, что посоветовал Amper13 :)
выводы команд:
ifconfig

Код: Выделить всё

eth0      Link encap:Ethernet  HWaddr 00:E0:4C:2C:19:86
          inet addr:172.29.248.121  Bcast:172.29.248.255  Mask:255.255.255.0
          inet6 addr: fe80::2e0:4cff:fe2c:1986/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:827009 errors:0 dropped:0 overruns:0 frame:0
          TX packets:452446 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1009492102 (962.7 MiB)  TX bytes:33486010 (31.9 MiB)
          Interrupt:11 Base address:0xc000

eth1      Link encap:Ethernet  HWaddr 00:01:2E:00:38:79
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::201:2eff:fe00:3879/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1384998 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1583970 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:358555286 (341.9 MiB)  TX bytes:1564922592 (1.4 GiB)
          Interrupt:12 Base address:0xc400

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:222 errors:0 dropped:0 overruns:0 frame:0
          TX packets:222 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:14330 (13.9 KiB)  TX bytes:14330 (13.9 KiB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:89.105.xxx.xxx  P-t-P:172.29.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:149 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:9310 (9.0 KiB)  TX bytes:48 (48.0 b)

ppp1      Link encap:Point-to-Point Protocol
          inet addr:192.168.0.200  P-t-P:172.21.134.213  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:2536 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2947 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:1504464 (1.4 MiB)  TX bytes:594245 (580.3 KiB)


route

Код: Выделить всё

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.21.134.213  h1.lan248.rs    255.255.255.255 UGH   0      0        0 eth0
172.21.134.213  *               255.255.255.255 UH    0      0        0 ppp1
gw.rs           *               255.255.255.255 UH    0      0        0 ppp0
localnet        *               255.255.255.0   U     0      0        0 eth0
homenet         *               255.255.255.0   U     0      0        0 eth1
172.0.0.0       h1.lan248.rs    255.0.0.0       UG    0      0        0 eth0
default         *               0.0.0.0         U     0      0        0 ppp1


iptables -L -v -n

Код: Выделить всё

Chain INPUT (policy ACCEPT 18 packets, 1501 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           multiport dports 21,80

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       0    --  eth1   *       0.0.0.0/0            192.168.1.0/24
    1    84 ACCEPT     0    --  eth1   *       192.168.1.0/24       0.0.0.0/0
    0     0 ACCEPT     0    --  eth0   *       0.0.0.0/0            192.168.1.0/24
    0     0 ACCEPT     0    --  ppp1   *       192.168.1.0/24       0.0.0.0/0
    1    40 ACCEPT     0    --  ppp1   *       0.0.0.0/0            192.168.1.0/24

Chain OUTPUT (policy ACCEPT 12 packets, 1313 bytes)
 pkts bytes target     prot opt in     out     source               destination


iptables -t nat -L -v -n

Код: Выделить всё

Chain PREROUTING (policy ACCEPT 13 packets, 914 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       udp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           udp dpt:4000 to:192.168.1.100
    0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:4000 to:192.168.1.100

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    1    58 MASQUERADE  0    --  *      eth0    0.0.0.0/0            0.0.0.0/0
   11   528 MASQUERADE  0    --  *      ppp1    0.0.0.0/0            0.0.0.0/0
    0     0 SNAT       0    --  *      *       192.168.1.0/24       0.0.0.0/0           to:89.105.147.154

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


cat /proc/sys/net/ipv4/ip_forward


Сейчас пользователи могут спокойно работать в интернете.
Когда с сервера в инете набираю wget http://89.105.xxx.xxx, то netstat -tp показывает следующее:

Код: Выделить всё

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 89.105.xxx.xxx:www      fe16.hc.ru:38318        SYN_RECV   -

но на сервере в инете через n минут вываливается - Connecting to 89.105.xxx.xxx:80... failed: Operation timed out.
Я даже не представляю чего ему надо ... Ни ping 89.105.xxx.xxx, ни traceroute 89.105.xxx.xxx не проходят
Спасибо сказали:
Аватара пользователя
pilson66
Сообщения: 59
ОС: Debian Squeeze

Re: 2 VPN для разных задач

Сообщение pilson66 »

Чет я не пойму как с отключеным форвардингом и дефолтным роутом на ppp1 вообще кто-то может работать. И зачем два маскарадинга, на оба ppp интерфейса - тоже непонятно.
Давай сначала
есть eth0, eth1, ppp0, ppp1
1. с какого интерфейса и куда подымается каждое ppp соединение?
2. как они подымаются - ручками - автоматом?
3. где по схеме находятся пользователи?

или если можно - нарисуй подробную схему со всеми интерфейсами и подсетями как интерфейсов так и пользователей.
Спасибо сказали:
Аватара пользователя
yto4ko
Сообщения: 9
ОС: Gentoo Linux

Re: 2 VPN для разных задач

Сообщение yto4ko »

pilson66 писал(а):
25.11.2008 16:47
Чет я не пойму как с отключеным форвардингом и дефолтным роутом на ppp1 вообще кто-то может работать. И зачем два маскарадинга, на оба ppp интерфейса - тоже непонятно.
Давай сначала
есть eth0, eth1, ppp0, ppp1
1. с какого интерфейса и куда подымается каждое ppp соединение?
2. как они подымаются - ручками - автоматом?
3. где по схеме находятся пользователи?

или если можно - нарисуй подробную схему со всеми интерфейсами и подсетями как интерфейсов так и пользователей.


в /etc/sysctl.conf
раскомменетировал строку

Код: Выделить всё

net.ipv4.conf.default.forwarding=1

Всё настраивал и делал по статье для Gentoo (раньше Gentoo стоял).
Начнём:
1. eth0 - это внешняя сеть. eth1 - внутренняя сеть (192.168.1.0/255.255.255.0). Соответственно ppp0 подключается через eth0 первому VPN серверу, ppp1 - тоже через eth0 подключается к другому VPN серверу в сети(там стоит безлимитный трафик).
2. при старте системы ну или ifup и ifdown
3. Пользователи подключены к свитчу, свитч подключен к eth1.
Ща нарисую схемку по подробнее как и что :)
Спасибо сказали:
Аватара пользователя
pilson66
Сообщения: 59
ОС: Debian Squeeze

Re: 2 VPN для разных задач

Сообщение pilson66 »

теперь вроде понятно что к чему.
тут тебе походу нужно 2 вещи:
1. разобраться почему у тебя "0" в ip_forward
2. настроить двойной роутинг.
Спасибо сказали:
Аватара пользователя
yto4ko
Сообщения: 9
ОС: Gentoo Linux

Re: 2 VPN для разных задач

Сообщение yto4ko »

ИзображениеИзображение
Вот примерная схема того как у меня всё устроено. Все запросы из 192.168.1.0/255.255.255.0 перенаправлять на ppp1, а ppp0 - только для сервера (Apache) - так как там выделенный IP.
Спасибо сказали:
Аватара пользователя
pilson66
Сообщения: 59
ОС: Debian Squeeze

Re: 2 VPN для разных задач

Сообщение pilson66 »

фаервол + NAT

# включаем форвардинг в ядре
echo "1" >/proc/sys/net/ipv4/ip_forward
#(либо искать где у тебя в системе методами самой системы его можно указать однозначно, чтобы не перезаписывалось)

#разрешаем форвард eth1-ppp1 туда-сюда
iptables -t filter -A FORWARD -i eth1 -o ppp1 -j ACCEPT
iptables -t filter -A FORWARD -o eth1 -i ppp1 -j ACCEPT
#запрещаем форвард eth1-ppp0 туда-сюда
iptables -t filter -A FORWARD -i eth1 -o ppp0 -j DROP
iptables -t filter -A FORWARD -o eth1 -i ppp1 -j DROP
#запрещаем форвард ppp1-ppp0 туда-сюда
iptables -t filter -A FORWARD -i ppp1 -o ppp0 -j DROP
iptables -t filter -A FORWARD -o ppp1 -i ppp0 -j DROP

# NAT`им трафик eth1-ppp1
iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE

насчет двойной маршрутизации - навскидку не вспомню.
на словах - прописываешь две таблицы с разным приоритетом (/etc/iproute2/rt_tables)
затем ip rule чето там....
поищи на этом же форуме, либо на гугле по кейвордам "rt_tables ip rule двойная маршрутизация"

вот, кстати...
http://www.tigran.am/multiply-links.html
Спасибо сказали: