VPN

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

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

alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

VPN

Сообщение alternativshik »

Есть роутер, на нем VPN сервер с радиусом и подсчетом трафика, есть в iptables цепочка, в которую перенапрявляется весь проходящий трафик:

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

#
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#
modprobe ip_conntrack
modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
#
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#
#Запускаем ipcad
/etc/init.d/ipcad start

#Запускаем vpnmsd
/etc/init.d/vpnmsd start

iptables -A FORWARD -p ICMP --icmp-type 8 -j ACCEPT
#перенаправляем трафик для учета и управления
iptables -N VPNMS
iptables -P FORWARD DROP
iptables -I FORWARD -j VPNMS
#SQUID
iptables -N VPNMS_PROXY
iptables -t nat -A PREROUTING -d 192.168.169.1 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.0.0/255.255.0.0  -i ppp+ -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.168.254:3128
iptables -A INPUT -d 192.168.169.1 -p tcp -m tcp --dport 3128 -j DROP
iptables -A INPUT -d 192.168.168.254 -p tcp --dport 3128 -j VPNMS_PROXY
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -I INPUT -s 192.168.0.0/255.255.255.0 -d 192.168.169.1 -p tcp --dport 80 -j ACCEPT
#проброс портов...
iptables -t nat -A PREROUTING -p tcp -d 192.168.168.254 --dport 3389 -j DNAT --to-destination 192.168.18.54:3389

Собственно, когда все разрешено и нет учета трафика, последняя строка работает - человек из интернета (ADSL-модем в режиме роутера) благополучно может коннектиться к машине в сети другого провайдера с айпи 192.168.18.54 по RDP, а вот каким образом реализовать это сейчас - не пойму, перепробовал варианты - не получилось, посему, бью челом и прошу помочь разобраться с данным вопросом. Спасибо!
Спасибо сказали:
Аватара пользователя
crez
Сообщения: 128

Re: VPN

Сообщение crez »

Информации маловато.
Но попробуем...

Вы устанавливаете политуку DROP для цепочки FORWARD (и это логично - ничего не пускать, пока не разрешу)

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

iptables -P FORWARD DROP

После этого отправляете все эти пакеты в цепочку VPNMS (где она? её не видно)

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

iptables -I FORWARD -j VPNMS

Очевидно в этой цепочке пакеты проверяются "на вшивость" - какие-то разрешены, какие-то нет.
А вот потом проверенные пакеты должны быть все-таки пропущены!
Где Ваше правило?

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

iptables -A FORWARD -i eth0 -j ACCEPT

Интерфейс, естественно, тот, к которому подключается "человек из интернета".

Наверное, вот эта упущенная цепочка VPNMS реализуется в биллинге? Правила автоматом добавляются и стираются, чтобы включать и выключать клиентов? Тогда пропишите там для "человека из интернета" правило, разрешающее ему форвардинг.
Сами мы не местные...
Спасибо сказали:
alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

Re: VPN

Сообщение alternativshik »

crez писал(а):
20.11.2008 07:57
Информации маловато.
Но попробуем...

Вы устанавливаете политуку DROP для цепочки FORWARD (и это логично - ничего не пускать, пока не разрешу)

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

iptables -P FORWARD DROP

После этого отправляете все эти пакеты в цепочку VPNMS (где она? её не видно)

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

iptables -I FORWARD -j VPNMS

Очевидно в этой цепочке пакеты проверяются "на вшивость" - какие-то разрешены, какие-то нет.
А вот потом проверенные пакеты должны быть все-таки пропущены!
Где Ваше правило?

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

iptables -A FORWARD -i eth0 -j ACCEPT

Интерфейс, естественно, тот, к которому подключается "человек из интернета".

Наверное, вот эта упущенная цепочка VPNMS реализуется в биллинге? Правила автоматом добавляются и стираются, чтобы включать и выключать клиентов? Тогда пропишите там для "человека из интернета" правило, разрешающее ему форвардинг.

Спасибо за наводку... Буду пробовать.
Спасибо сказали:
Аватара пользователя
Olden Gremlin
Сообщения: 365
Статус: RAP22-RIPE
ОС: Debian GNU/Linux Wheezy

Re: VPN

Сообщение Olden Gremlin »

alternativshik писал(а):
20.11.2008 10:28
Спасибо за наводку... Буду пробовать.
"На водку" или нет, но если бы "в студию" был предоставлен вывод iptables-save, то местное народонаселение помогло бы не только "на водку", но и на "шампусик с бульбашками" :)
А теперь токмо ради любопытства, позвольте задать пару вопросов:
  • а зачем это?

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

    iptables -t nat -A PREROUTING -d 192.168.169.1 -p tcp -m tcp --dport 80 -j ACCEPT
    может я чего-то не понимаю, но, не составит ли труда разъяснить ;)
  • и почему только 8 тип? а остальные-то чем не угодили? ;)

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

    iptables -A FORWARD -p ICMP --icmp-type 8 -j ACCEPT
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Спасибо сказали:
alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

Re: VPN

Сообщение alternativshik »

Olden Gremlin писал(а):
22.11.2008 10:03
alternativshik писал(а):
20.11.2008 10:28
Спасибо за наводку... Буду пробовать.
"На водку" или нет, но если бы "в студию" был предоставлен вывод iptables-save, то местное народонаселение помогло бы не только "на водку", но и на "шампусик с бульбашками" :)
А теперь токмо ради любопытства, позвольте задать пару вопросов:
  • а зачем это?

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

    iptables -t nat -A PREROUTING -d 192.168.169.1 -p tcp -m tcp --dport 80 -j ACCEPT
    может я чего-то не понимаю, но, не составит ли труда разъяснить ;)
  • и почему только 8 тип? а остальные-то чем не угодили? ;)

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

    iptables -A FORWARD -p ICMP --icmp-type 8 -j ACCEPT


Ну собственно настраивалось все практически по ЭТОЙ ссылке, правила для iptables тоже все оттуда...
вот сам скрипт:

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

alter:~# cat /etc/init.d/rc.firewall
#
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#
modprobe ip_conntrack
modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
#
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#
#Запускаем ipcad
/etc/init.d/ipcad start

#Запускаем vpnmsd
/etc/init.d/vpnmsd start

#iptables -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
#iptables -A OUTPUT -p ICMP --icmp-type 8 -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 8 -j ACCEPT
iptables -N VPNMS
iptables -P FORWARD DROP
iptables -I FORWARD -j VPNMS
iptables -N VPNMS_PROXY
iptables -t nat -A PREROUTING -d 192.168.169.1 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.0.0/255.255.0.0  -i ppp+ -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.168.254:3128
iptables -A INPUT -d 192.168.169.1 -p tcp -m tcp --dport 3128 -j DROP
iptables -A INPUT -d 192.168.168.254 -p tcp --dport 3128 -j VPNMS_PROXY
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -I INPUT -s 192.168.0.0/255.255.255.0 -d 192.168.169.1 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d 192.168.168.254 --dport 3389 -j DNAT --to-destination 192.168.18.54:3389

собственно про тип номер 8 - так че-то просто написал, не это сейчас главное=)
Спасибо.
Спасибо сказали:
Аватара пользователя
Olden Gremlin
Сообщения: 365
Статус: RAP22-RIPE
ОС: Debian GNU/Linux Wheezy

Re: VPN

Сообщение Olden Gremlin »

alternativshik писал(а):
22.11.2008 17:29
Ну собственно настраивалось все практически по ЭТОЙ ссылке, правила для iptables тоже все оттуда...
вот сам скрипт:...
Вам уже тут указали, что из приведённых данных не видно содержание цепочки VPNMS_PROXY. Кстати, что это за чудо-поделка vpnmsd?
Именно поэтому я и попросил, чтобы Вы дали не сам скрипт, а то состояние которое выведет команда iptables-save (запускать с правами root'а), а ещё лучше iptables-save -c.
Дайте вывод этой команды в состоянии после того, как будут подняты все необходимые соединения и проверена их неработоспособность, но не отключая соединения.
В противном случае вряд-ли кто-то сможет Вам дать хоть какие-то рекомендации, просто напросто из-за того, что недостаточно вводных данных для анализа.
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Спасибо сказали:
alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

Re: VPN

Сообщение alternativshik »

Olden Gremlin писал(а):
22.11.2008 19:49
alternativshik писал(а):
22.11.2008 17:29
Ну собственно настраивалось все практически по ЭТОЙ ссылке, правила для iptables тоже все оттуда...
вот сам скрипт:...
Вам уже тут указали, что из приведённых данных не видно содержание цепочки VPNMS_PROXY. Кстати, что это за чудо-поделка vpnmsd?
Именно поэтому я и попросил, чтобы Вы дали не сам скрипт, а то состояние которое выведет команда iptables-save (запускать с правами root'а), а ещё лучше iptables-save -c.
Дайте вывод этой команды в состоянии после того, как будут подняты все необходимые соединения и проверена их неработоспособность, но не отключая соединения.
В противном случае вряд-ли кто-то сможет Вам дать хоть какие-то рекомендации, просто напросто из-за того, что недостаточно вводных данных для анализа.

Ну собственно, мне и самомму теперь стало непонятно назначение цепочки VPNMS_PROXY :unsure:

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

alter:~# iptables-save -c
# Generated by iptables-save v1.4.1 on Sat Nov 22 21:16:07 2008
*nat
:PREROUTING ACCEPT [410509:26030603]
:POSTROUTING ACCEPT [142:15176]
:OUTPUT ACCEPT [11286:690344]
[0:0] -A PREROUTING -d 192.168.169.1/32 -p tcp -m tcp --dport 80 -j ACCEPT
[9228:463188] -A PREROUTING -s 192.168.0.0/16 -i ppp+ -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.168.254:3128
[0:0] -A PREROUTING -d 192.168.168.254/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.18.54:3389
[2108:132386] -A POSTROUTING -o ppp0 -j MASQUERADE
[386628:23559831] -A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Sat Nov 22 21:16:07 2008
# Generated by iptables-save v1.4.1 on Sat Nov 22 21:16:07 2008
*filter
:INPUT ACCEPT [4387365:2214580664]
:FORWARD DROP [216:33013]
:OUTPUT ACCEPT [4394906:3510546608]
:VPNMS - [0:0]
:VPNMS_PROXY - [0:0]
[0:0] -A INPUT -s 192.168.0.0/24 -d 192.168.169.1/32 -p tcp -m tcp --dport 80 -j ACCEPT
[0:0] -A INPUT -d 192.168.169.1/32 -p tcp -m tcp --dport 3128 -j DROP
[155802:24254121] -A INPUT -d 192.168.168.254/32 -p tcp -m tcp --dport 3128 -j VPNMS_PROXY
[4040:553192] -A INPUT -s 127.0.0.1/32 -j ACCEPT
[7109965:4688202406] -A FORWARD -j VPNMS
[264:15840] -A FORWARD -p icmp -m icmp --icmp-type 8 -j ACCEPT
[0:0] -A VPNMS -d 192.168.1.3/32 -j ACCEPT
[0:0] -A VPNMS -s 192.168.1.3/32 -p tcp -j ACCEPT
[0:0] -A VPNMS -s 192.168.1.3/32 -p udp -j ACCEPT
[723481:523368396] -A VPNMS -d 192.168.169.11/32 -j ACCEPT
[654423:500408537] -A VPNMS -s 192.168.169.11/32 -p tcp -j ACCEPT
[59190:4069509] -A VPNMS -s 192.168.169.11/32 -p udp -j ACCEPT
COMMIT
# Completed on Sat Nov 22 21:16:07 2008
Спасибо сказали:
Аватара пользователя
Olden Gremlin
Сообщения: 365
Статус: RAP22-RIPE
ОС: Debian GNU/Linux Wheezy

Re: VPN

Сообщение Olden Gremlin »

alternativshik писал(а):
22.11.2008 22:20
Вернёмся к изначальному вопросу: "когда все разрешено и нет учета трафика, последняя строка

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

iptables -t nat -A PREROUTING -p tcp -d 192.168.168.254 --dport 3389 -j DNAT --to-destination 192.168.18.54:3389
работает - человек из интернета (ADSL-модем в режиме роутера) благополучно может коннектиться к машине в сети другого провайдера с айпи 192.168.18.54 по RDP"
это-же правило мы видим в распечатке iptables-save, но ни один байтик в него не попадает [0:0]!

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

[0:0] -A PREROUTING -d 192.168.168.254/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.18.54:3389
другими словами условие для DNAT не удовлетворяется. почему? скорее всего просто нет такого трафика ;) попробуйте послушать соединений tshrk/tethereal'ом и/или tcpdump'ом.
и ещё. я бы добавил в ваш скрипт безусловное условия для 192.168.18.54 и 192.168.168.254:

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

iptables -A FORWARD -s 192.168.18.54 -p tcp -m tcp --sport 3389 -d 192.168.168.254 -j ACCEPT
iptables -A FORWARD -d 192.168.18.54 -p tcp -m tcp --dport 3389 -s 192.168.168.254 -j ACCEPT
ну, пока это все рекомендации... :)
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Спасибо сказали:
alternativshik
Сообщения: 154
ОС: Debian Lenny/Sid

Re: VPN

Сообщение alternativshik »

Olden Gremlin писал(а):
23.11.2008 08:26
alternativshik писал(а):
22.11.2008 22:20
Вернёмся к изначальному вопросу: "когда все разрешено и нет учета трафика, последняя строка

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

iptables -t nat -A PREROUTING -p tcp -d 192.168.168.254 --dport 3389 -j DNAT --to-destination 192.168.18.54:3389
работает - человек из интернета (ADSL-модем в режиме роутера) благополучно может коннектиться к машине в сети другого провайдера с айпи 192.168.18.54 по RDP"
это-же правило мы видим в распечатке iptables-save, но ни один байтик в него не попадает [0:0]!

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

[0:0] -A PREROUTING -d 192.168.168.254/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.18.54:3389
другими словами условие для DNAT не удовлетворяется. почему? скорее всего просто нет такого трафика ;) попробуйте послушать соединений tshrk/tethereal'ом и/или tcpdump'ом.
и ещё. я бы добавил в ваш скрипт безусловное условия для 192.168.18.54 и 192.168.168.254:

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

iptables -A FORWARD -s 192.168.18.54 -p tcp -m tcp --sport 3389 -d 192.168.168.254 -j ACCEPT
iptables -A FORWARD -d 192.168.18.54 -p tcp -m tcp --dport 3389 -s 192.168.168.254 -j ACCEPT
ну, пока это все рекомендации... :)

Спасибо огромное! Сегодня вечером буду пробовать!
Спасибо сказали: