Здравствуйте. Есть 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 из локальной сети - коннект проходит удачно
Пожалуйста помогите разобраться
Решено: iptables для перенаправления VPN и прозрачного
Модератор: SLEDopit
-
- Сообщения: 230
- ОС: Ubuntu Server 9.10
Re: Решено: iptables для перенаправления VPN и прозрачного
TonnyBennet писал(а): ↑10.07.2010 15:24iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
для разрешения транзитных gre пакетов нужна цепочка FORWARD
OUTPUT и INPUT используются для локально порожденных пакетов
остальные правила так же надо пересмотреть
-
- Сообщения: 230
- ОС: Ubuntu Server 9.10
Re: Решено: iptables для перенаправления VPN и прозрачного
expdot писал(а): ↑11.07.2010 09:51TonnyBennet писал(а): ↑10.07.2010 15:24iptables -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.... может кто нибудь поймёт что имел ввиду автор
Re: Решено: iptables для перенаправления VPN и прозрачного
я подрубаю модули
modprobe ip_gre
modprobe ip_pptp
и делаю DNAT на виндовый сервер
modprobe ip_gre
modprobe ip_pptp
и делаю DNAT на виндовый сервер
Re: Решено: iptables для перенаправления VPN и прозрачного
по одной из ваших ссылок есть еще ссылка
pptpd+iptables+squid
pptpd+iptables+squid
-
- Сообщения: 230
- ОС: Ubuntu Server 9.10
Re: Решено: iptables для перенаправления VPN и прозрачного
Спасибо за помощь... только сейчас увидел Ваши сообщения. Утром уже всё получилось настроить
Потанцевал с бубном почитал маны и пришёл к выводу что это задница.... попил чайку..... и всё заработало
Сетевые интерфейсы
# Интерфейс локальной сети
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
Потанцевал с бубном почитал маны и пришёл к выводу что это задница.... попил чайку..... и всё заработало
Сетевые интерфейсы
# Интерфейс локальной сети
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