Поробую для начала описать структуру сети
Internet -->PPPOE eth1-router на Ubuntu-eth0 (192.168.1.5)-----локалка
|
---WWW(192.168.1.253) port 80
|
---VPN(192.168.1.254)далее через провайдера еще 9 подсетей подключены через VPN
шлюз 192.168.1.1------192.168.2.1----сеть№2
|
---192.168.3.1----сеть№3
|
---192.168.4.1----сеть№4----сервер моб. торговли (192.168.4.254:8889)и т.д.
все это ходит в интернет через Ubuntu. На нем же установлен squid.
вот interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).# The loopback network interface
auto lo
iface lo inet loopback# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
up route add -net 192.168.2.0/24 gw 192.168.1.1
up route add -net 192.168.3.0/24 gw 192.168.1.1
up route add -net 192.168.4.0/24 gw 192.168.1.1
up route add -net 192.168.5.0/24 gw 192.168.1.1
up route add -net 192.168.6.0/24 gw 192.168.1.1
up route add -net 192.168.7.0/24 gw 192.168.1.1
up route add -net 192.168.8.0/24 gw 192.168.1.1
up route add -net 192.168.9.0/24 gw 192.168.1.1
up route add -net 192.168.10.0/24 gw 192.168.1.1auto eth1
iface eth1 inet static
address 1.1.1.1
netmask 255.255.255.0auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
provider dsl-providerpost-up /home/administrator/transparent_nat
вот transparent_nat
#!/bin/sh
# При использовании нескольких сетевых интерфейсов. eth0 – интернет, eth1 - локальная сеть.
# Включаем пересылку пакетов.
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. Замените 192.168.1.0 на адрес своей сети.
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE# Запретим доступ из внешней сети во внутреннюю.
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
iptables -t filter -A FORWARD -p tcp -m tcp --dport 443 -j ACCEPT# для заворачивание нужных портов на сквид
iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/16 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.5:3128#переброс портов на внутренние службы
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 21 -j DNAT --to 192.168.1.253:21
iptables -A FORWARD -i ppp0 -p tcp --dport 21 -j ACCEPTiptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 8080 -j DNAT --to 192.168.1.253:80
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1723 -j DNAT --to 192.168.1.254:1723 #PPTP
iptables -A FORWARD -i ppp0 -p tcp --dport 1723 -j ACCEPTiptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 8889 -j DNAT --to 192.168.4.254:8889 #это для БСВ вязьма
iptables -A FORWARD -i ppp0 -p tcp --dport 8889 -j ACCEPTiptables -t nat -A PREROUTING -i ppp0 -p udp --dport 47 -j DNAT --to 192.168.1.254:47 #PPTP
iptables -A FORWARD -i ppp0 -p tcp --dport 47 -j ACCEPTroute del default
route add default dev ppp0собственно вопрос. не могу подключиться к VPN серверу из интерента. останавливается на проверке пароля. Не работает пинг в интернет из других подсетей. Работает доступ из инета к WWW и FTP. Есть еще просто ADSL модем через него из инета работает все. Что забыл прописать?
Вы уверены, что понимаете логику работы iptables? А то у меня исхjдя из этого единственного правила
>iptables -A INPUT -i lo -j ACCEPTвозникают сомнения. Ну, и если что-то по пьяни забыл - у Вас PPTP? Дык для него протокол GRE нужен - Вы его вовнутрь не пропустили. В любом случае - чтобы понять - смотрим пакеты на выходящем в LAN интерфейсе. Для начала - по рту 47 (GRE).
> Вы уверены, что понимаете логику работы iptables? А то у меня исхjдя
> из этого единственного правила
>>iptables -A INPUT -i lo -j ACCEPT
> возникают сомнения. Ну, и если что-то по пьяни забыл - у Вас
> PPTP? Дык для него протокол GRE нужен - Вы его вовнутрь
> не пропустили. В любом случае - чтобы понять - смотрим пакеты
> на выходящем в LAN интерфейсе. Для начала - по рту 47
> (GRE).не могу похватсться достаточным для спора логики работы iptables,поэтому эта срочка была взята вот отсюда:
http://melfis.ru/ubuntu-nat-dhcp-squid-прозрачный-кэширующий-прокси-се/а вот это:
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 47 -j DNAT --to 192.168.1.254:47
iptables -A FORWARD -i ppp0 -p tcp --dport 47 -j ACCEPTразве не то что необходимо для пропуска GRE?
как ни странно но и даже на этом форуме http://www.opennet.me/base/net/iptables_howto.txt.html
iptables -A INPUT -i lo -j ACCEPT
>[оверквотинг удален]
>> на выходящем в LAN интерфейсе. Для начала - по рту 47
>> (GRE).
> не могу похватсться достаточным для спора логики работы iptables,поэтому эта срочка была
> взята вот отсюда:
> http://melfis.ru/ubuntu-nat-dhcp-squid-прозрачный-кэширующий-прокси-се/
> а вот это:
> iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 47 -j
> DNAT --to 192.168.1.254:47
> iptables -A FORWARD -i ppp0 -p tcp --dport 47 -j ACCEPT
> разве не то что необходимо для пропуска GRE?у GRE 47 это номер протокола, а не порта.
да и в целом странная логика. пробрасываете -p udp --dport 47 , а разрешение -p tcp --dport 47> этом форуме http://www.opennet.me/base/net/iptables_howto.txt.html
> iptables -A INPUT -i lo -j ACCEPTвы не показали что в output и если там все запрещено , то только это правило вам не поможет
плохая идея показывать куски скрипта, показывайте текущие правила после применения скрипта
iptables-save
> у GRE 47 это номер протокола, а не порта.
> да и в целом странная логика. пробрасываете -p udp --dport 47 ,
> а разрешение -p tcp --dport 47Именно ЭТО я пытался втолковать автору вопроса. :) Для пропуска GRE необходимо вот такие правила:
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
Если дефолтная политика в обеих цепочках DROP, разумеется.
>[оверквотинг удален]
>> разве не то что необходимо для пропуска GRE?
> у GRE 47 это номер протокола, а не порта.
> да и в целом странная логика. пробрасываете -p udp --dport 47 ,
> а разрешение -p tcp --dport 47
>> этом форуме http://www.opennet.me/base/net/iptables_howto.txt.html
>> iptables -A INPUT -i lo -j ACCEPT
> вы не показали что в output и если там все запрещено ,
> то только это правило вам не поможет
> плохая идея показывать куски скрипта, показывайте текущие правила после применения скрипта
> iptables-saveна самом деле это не логика а ошибка. конечно должно быть -p tcp --dport 47
скрипт я привел целиком.
> на самом деле это не логика а ошибка. конечно должно быть -p
> tcp --dport 47
> скрипт я привел целиком.И еще раз - для лучшего усвоения. GRE - это ПРОТОКОЛ! Протокол с номером 47 (см. /etc/portokols). К порту 47 протокола TCP он никакого отношения не имеет. Вы разрешили файрволлом абсолютно ненужную Вам вещь! См выхлоп команды grep 47 /etc/services! Ну и еще - для лучшего усвоения и приобретения дополнительных скиллов прочитайте как работает PPTP. Наверняка это Вам в будущем пригодится.
> Протокол с номером 47 (см. /etc/portokols).Пардон. /etc/protocols
>> на самом деле это не логика а ошибка. конечно должно быть -p
>> tcp --dport 47
>> скрипт я привел целиком.
> И еще раз - для лучшего усвоения. GRE - это ПРОТОКОЛ!
> Протокол с номером 47 (см. /etc/portokols). К порту 47 протокола TCP
> он никакого отношения не имеет. Вы разрешили файрволлом абсолютно ненужную Вам
> вещь! См выхлоп команды grep 47 /etc/services! Ну и еще -
> для лучшего усвоения и приобретения дополнительных скиллов прочитайте как работает PPTP.
> Наверняка это Вам в будущем пригодится.так что с моими остальными проблемами?
> так что с моими остальными проблемами?Если Вы про проблемы в части ИТ - мне показалось, что Вы написали, что все решилось включением соответствующих модулей ядра. Если Вы про проблемы личного плана - то это не по моей специальности.
>> так что с моими остальными проблемами?
> Если Вы про проблемы в части ИТ - мне показалось, что
> Вы написали, что все решилось включением соответствующих модулей ядра. Если Вы
> про проблемы личного плана - то это не по моей специальности.я про пинг писал из других подсетей. :-) ну тоже разобрался пока ответа ждал. осталась одна проблема. вот этот кусок
iptables -t nat -A PREROUTING --dst 212.3.153.25 -p tcp --dport 8889 -j DNAT --to-destination 192.168.4.254
iptables -t nat -A POSTROUTING --dst 212.3.153.25 -p tcp --dport 8889 -j SNAT --to-source 192.168.1.5
iptables -t nat -A OUTPUT --dst 212.3.153.25 -p tcp --dport 8889 -j DNAT --to-destination 192.168.4.254
iptables -I FORWARD 1 -i ppp0 -o eth0 -d 192.168.4.254 -p tcp -m tcp --dport 8889 -j ACCEPTдля адреса сервера 192.168.1.254 работает, а для 192.168.4.254 нет. не подскажешь как посмотреть где затык?
> iptables-save:OUTPUT ACCEPT [7463:3287167]
-A INPUT -i lo -j ACCEPT
-A FORWARD -i eth0 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -o ppp0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -i 192.168.1.253 -p tcp -m tcp --dport 21 -j ACCEPT
-A FORWARD -i 92.168.4.254 -p tcp -m tcp --dport 8889 -j ACCEPT
-A FORWARD -d 192.168.1.254/32 -i ppp0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A FORWARD -d 192.168.1.254/32 -i ppp0 -p gre -j ACCEPT
COMMIT
# Completed on Sat Jan 21 11:29:52 2012
administrator@ubuntu:~$ sudo iptables-save
# Generated by iptables-save v1.4.4 on Sat Jan 21 11:30:53 2012
*mangle
:PREROUTING ACCEPT [15701:4431062]
:INPUT ACCEPT [8616:3132556]
:FORWARD ACCEPT [3430:845518]
:OUTPUT ACCEPT [8012:3506172]
:POSTROUTING ACCEPT [11522:4362512]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Sat Jan 21 11:30:53 2012
# Generated by iptables-save v1.4.4 on Sat Jan 21 11:30:53 2012
*nat
:PREROUTING ACCEPT [4500:560457]
:POSTROUTING ACCEPT [404:27756]
:OUTPUT ACCEPT [225:15617]
-A PREROUTING ! -d 192.168.0.0/16 -i eth0 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.1.5:3128
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.1.253:21
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.253:80
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 8888 -j DNAT --to-destination 192.168.4.254:8888
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 8889 -j DNAT --to-destination 192.168.4.254:8889
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 8890 -j DNAT --to-destination 192.168.10.201:8889
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 1723 -j DNAT --to-destination 192.168.1.254:1723
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 47 -j DNAT --to-destination 192.168.1.254:47
-A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
COMMIT
в общем нашел мою ситуацию один в один
http://forum.ubuntu.ru/index.php?topic=103868.0
сделал ка написано - vpn заработал. осталось понять что означают вот эти строкиmodprobe ip_conntrack_ftp
modprobe ip_gre
modprobe ip_conntrack_pptp
modprobe ip_nat_pptpя так понял вся проблема в них.
и так и открыт вопрос пинга из других подсетей...
> modprobe ip_conntrack_ftp
> modprobe ip_gre
> modprobe ip_conntrack_pptp
> modprobe ip_nat_pptp
> я так понял вся проблема в них.А Вы этого не знаете? :) Сильно. Это подключение модулей ядра для работы GRE, PPTP и FTP. NAT - он и в Африке NAT, а conntracrk - connection tracking. Почитайте, как работает NAT двухсторонний.
>> modprobe ip_conntrack_ftp
>> modprobe ip_gre
>> modprobe ip_conntrack_pptp
>> modprobe ip_nat_pptp
>> я так понял вся проблема в них.
> А Вы этого не знаете? :) Сильно. Это подключение модулей ядра
> для работы GRE, PPTP и FTP. NAT - он и в
> Африке NAT, а conntracrk - connection tracking. Почитайте, как работает NAT
> двухсторонний.а вы не знали что без этого не работает?
> а вы не знали что без этого не работает?Я-то? Я знал. :) Но в момент формулирования Вами вопроса мои ментальные возможности несколько иссякли - поэтому я не смог предположить, что у Вас поддержка указанных модулей у Вас не включена в ядре (ну, или в Вашем случае - не собрана модулем и не подключена).
>> modprobe ip_conntrack_ftp
>> modprobe ip_gre
>> modprobe ip_conntrack_pptp
>> modprobe ip_nat_pptp
>> я так понял вся проблема в них.
> А Вы этого не знаете? :) Сильно. Это подключение модулей ядра
> для работы GRE, PPTP и FTP. NAT - он и в
> Африке NAT, а conntracrk - connection tracking. Почитайте, как работает NAT
> двухсторонний.я много чего не знаю. знал бы не задавал вопросов, а сам другим бы помогал.