Решено: iptables для перенаправления VPN и прозрачного

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

Модератор: SLEDopit

Ответить
TonnyBennet
Сообщения: 230
ОС: Ubuntu Server 9.10

Решено: iptables для перенаправления VPN и прозрачного

Сообщение TonnyBennet »

Здравствуйте. Есть Ubuntu Server 10.4 работающий в качестве интернет-шлюза, на нём крутится Squid.
ppp0 193.105.33.35 смотрит наружу (статический внешний IP)
eth0 192.168.0.10 смотрит внутрь

В мануале по настройке sqid был скрипт iptables который в принципе работает нормально. (NAT и заворачивание трафика на интерфейс squid) Но помимо прокси ещё нужно завернуть VPN трафик из внешки на локальную машину 192.168.0.100 (она когда то была шлюзом и на ней крутится VPN сервер под 2003 виндой)

Вот скрипт iptables

#!/bin/sh
# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT
# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
# Включаем NAT
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth0 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.10:3128

#Заворачиваем трафик VPN сервера на Win2003

modprobe ip_gre
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
iptables -t nat -A PREROUTING --dst 193.105.33.35 -p tcp --dport 1723 -j DNAT --to-destination 192.168.0.100
iptables -t nat -A POSTROUTING --dst 192.168.0.100 -p tcp --dport 1723 -j SNAT --to-source 192.168.0.10
iptables -t nat -A OUTPUT --dst 193.105.37.96 -p tcp --dport 1723 -j DNAT --to-destination 192.168.0.100
iptables -I FORWARD 1 -i ppp0 -o eth0 -d 192.168.0.100 -p tcp -m tcp --dport 1723 -j ACCEPT




При создании VPN на внешний IP 193.105.33.35 появляется ошибка 721
В логах 2003 сервера пишется:

Код:
Тип события: Предупреждение
Источник события: Rasman
Категория события: Отсутствует
Код события: 20209
Дата: 10.07.2010
Время: 14:34:38
Пользователь: Н/Д
Компьютер: HIGHLANDER
Описание:
Связь между VPN-сервером и VPN-клиентом 192.168.0.10 была установлена, но не удалось завершить установку VPN-подключения. Наиболее вероятная причина - брандмауэр или маршрутизатор между VPN-сервером и VPN-клиентом не разрешает передачу пакетов GRE (Generic Routing Encapsulation) протокола 47. Проверьте, что брандмауэры и маршрутизаторы между этим VPN-сервером и Интернетом разрешают GRE-пакеты. Проверьте, что брандмауэры и маршрутизаторы в сети пользователя также разрешают GRE-пакеты. Если проблема сохраняется, обратитесь к вашему поставщику услуг Интернета (ISP) чтобы проверить, не происходит ли блокирование GRE-пакетов поставщиком.

Дополнительные сведения можно найти в центре справки и поддержки, в "http://go.microsoft.com/fwlink/events.asp".
При подключении на интерфес VPN сервера 192,168,0,100 из локальной сети - коннект проходит удачно

Пожалуйста помогите разобраться
Спасибо сказали:
expdot
Сообщения: 176
ОС: Fedora 13, Win Vista

Re: Решено: iptables для перенаправления VPN и прозрачного

Сообщение expdot »

TonnyBennet писал(а):
10.07.2010 15:24
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT

для разрешения транзитных gre пакетов нужна цепочка FORWARD
OUTPUT и INPUT используются для локально порожденных пакетов
остальные правила так же надо пересмотреть
Спасибо сказали:
TonnyBennet
Сообщения: 230
ОС: Ubuntu Server 9.10

Re: Решено: iptables для перенаправления VPN и прозрачного

Сообщение TonnyBennet »

expdot писал(а):
11.07.2010 09:51
TonnyBennet писал(а):
10.07.2010 15:24
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT

для разрешения транзитных gre пакетов нужна цепочка FORWARD
OUTPUT и INPUT используются для локально порожденных пакетов
остальные правила так же надо пересмотреть


Добавил iptables -A FORWARD -p gre -j ACCEPT та же фигня.

нашёл топик на другом форуме по такой же теме.... но там мне не понятны многие параметры (сервер и источник например)

http://www.traffpro.ru/forum/topic_969

есть ли телепаты или знатоки iptables.... может кто нибудь поймёт что имел ввиду автор


Спасибо сказали:
guliver
Сообщения: 38
ОС: debian

Re: Решено: iptables для перенаправления VPN и прозрачного

Сообщение guliver »

я подрубаю модули
modprobe ip_gre
modprobe ip_pptp
и делаю DNAT на виндовый сервер

Спасибо сказали:
expdot
Сообщения: 176
ОС: Fedora 13, Win Vista

Re: Решено: iptables для перенаправления VPN и прозрачного

Сообщение expdot »

по одной из ваших ссылок есть еще ссылка
pptpd+iptables+squid
Спасибо сказали:
TonnyBennet
Сообщения: 230
ОС: Ubuntu Server 9.10

Re: Решено: iptables для перенаправления VPN и прозрачного

Сообщение TonnyBennet »

Спасибо за помощь... только сейчас увидел Ваши сообщения. Утром уже всё получилось настроить


Потанцевал с бубном почитал маны и пришёл к выводу что это задница.... попил чайку..... и всё заработало

Сетевые интерфейсы

# Интерфейс локальной сети
auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
#маршруты в VPN сети
up route add -net 192.168.3.0/24 gw 192.168.0.100 eth0
up route add -net 192.168.2.0/24 gw 192.168.0.100 eth0


#Интерфейс смотрит в сторону провайдера Интернета
auto eth1
iface eth1 inet dhcp

#PPPoE
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
provider dsl-provider

#запуск NAT и Port-forwarding
post-up /etc/network/nat


Скрипт NAT + PortForwarding

#!/bin/sh

# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT

# Включаем NAT
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT

#Заворачиваем трафик VPN сервера на Win2003

#Модули iptables
modprobe ip_conntrack_ftp
modprobe ip_gre
modprobe ip_conntrack_pptp
modprobe ip_nat_pptp

#Дальше устроим проброс портов
#Организация проброса pptp трафика во внуть сети.
iptables -A FORWARD -p gre -j ACCEPT

iptables -t nat -A PREROUTING --dst 193.105.33.35 -p tcp --dport 1723 -j DNAT --to-destination 192.168.0.100
iptables -t nat -A POSTROUTING --dst 192.168.0.100 -p tcp --dport 1723 -j SNAT --to-source 192.168.0.10
iptables -t nat -A OUTPUT --dst 193.105.33.35 -p tcp --dport 1723 -j DNAT --to-destination 192.168.0.100
iptables -I FORWARD 1 -i ppp0 -o eth0 -d 192.168.0.100 -p tcp -m tcp --dport 1723 -j ACCEPT

# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth0 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.10:3128


P.S. машина 192.168.0.100 - это VPN сервер под Win2003
Спасибо сказали:
Ответить