handler Опубликовано 23 июля, 2009 Жалоба Поделиться Опубликовано 23 июля, 2009 И снова здравствуйте! Имеем роутер на базе Fedora10 с 5-ю сетевыми картами: eth0 - смотрит в локаль (192.168.0.0/16) eth1-4 - смотрят в нет (ч/з адсл-модемы) Адреса клиентам раздаются ДНСП (192.169.0.0/16) Клиенты подключаются к интернет ч/з ВПН Скрипт инициализации ВПН-соединения: (/etc/ppp/ip-up) $1 - имя создаваемого интерфейса (ppp0) $5 - адрес, насначаемый клиенту (к примеру 192.168.10.20) $4 - адрес роутера (192.168.1.1) iptables -I INPUT -i $1 -s $5 -d $4 -j ACCEPT iptables -I INPUT -i $1 -s $5 -d $4 -j LOG --log-prefix "INPUT " эти правила работают, клиент видит сервер, но в логи ничего не попадает iptables -I FORWARD -i $1 -s $5 -j ACCEPT iptables -I FORWARD -i $1 -s $5 -j LOG --log-prefix "FORWARD " iptables -t nat -I POSTROUTING -i eth1 -s $5 -j SNAT --to-source (ip_eth1) iptables -t nat -I POSTROUTING -i eth1 -s $5 -j LOG --log-prefix "POSTROUTING" iptables -I FORWARD -o $1 -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "BACKWARD" iptables -I FORWARD -o $1 -m state --state RELATED,ESTABLISHED -j ACCEPT Правила форвардинга и построутинга в логи попадают, а обратный форвардинг - нет в логи пишет: Jul 23 18:44:36 server kernel: FORWARD PPP0: IN=ppp0 OUT=eth1 SRC=192.169.111.1 DST=69.147.83.40 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=34218 DF PROTO=TCP SPT=3472 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 Jul 23 18:44:36 server kernel: POSTROUTING PPP0: IN= OUT=eth1 SRC=192.169.111.1 DST=69.147.83.40 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=34218 DF PROTO=TCP SPT=3472 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 Jul 23 18:44:39 server kernel: FORWARD PPP0: IN=ppp0 OUT=eth1 SRC=192.169.111.1 DST=69.147.83.40 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=34222 DF PROTO=TCP SPT=3472 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 Jul 23 18:44:45 server kernel: FORWARD PPP0: IN=ppp0 OUT=eth1 SRC=192.169.111.1 DST=69.147.83.40 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=34267 DF PROTO=TCP SPT=3472 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 Jul 23 18:44:58 server kernel: FORWARD PPP0: IN=ppp0 OUT=eth4 SRC=192.169.111.1 DST=91.198.36.14 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=35074 DF PROTO=TCP SPT=3498 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 Jul 23 18:44:58 server kernel: POSTROUTING PPP0: IN= OUT=eth4 SRC=192.169.111.1 DST=91.198.36.14 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=35074 DF PROTO=TCP SPT=3498 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 Jul 23 18:45:01 server kernel: FORWARD PPP0: IN=ppp0 OUT=eth4 SRC=192.169.111.1 DST=91.198.36.14 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=35076 DF PROTO=TCP SPT=3498 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 Jul 23 18:45:07 server kernel: FORWARD PPP0: IN=ppp0 OUT=eth4 SRC=192.169.111.1 DST=91.198.36.14 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=35078 DF PROTO=TCP SPT=3498 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 Как правильно разрешить форвардинг клиентам? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
gogi Опубликовано 24 июля, 2009 Жалоба Поделиться Опубликовано 24 июля, 2009 Я не совсем понял Вашу схему. Если проблема ещё не решилась, нарисуйте более подробную схемку с указанием клиента, выхода в инет, на каком интерфейсе поднят vpn, адресов интерфейсов и т.д.. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 29 июля, 2009 Автор Жалоба Поделиться Опубликовано 29 июля, 2009 gogi писал(а) Fri, 24 July 2009 16:14 Я не совсем понял Вашу схему. Если проблема ещё не решилась, нарисуйте более подробную схемку с указанием клиента, выхода в инет, на каком интерфейсе поднят vpn, адресов интерфейсов и т.д.. Имеется компьютер с пятью сетевыми картами eth0, eth1, eth2, eth3, eth4 и ОС Fedora10 Сетевая карта eth0 имееет адрес 192.168.1.1/16 и смотрит в локальную сеть Сетевая карта eth1 имеет адрес 10.10.10.10/24 и смотрит на адсл-модем Сетевая карта eth2 имеет адрес 10.10.20.10/24 и смотрит на адсл-модем Сетевая карта eth3 имеет адрес 10.10.30.10/24 и смотрит на адсл-модем Сетевая карта eth4 имеет адрес 10.10.40.10/24 и смотрит на адсл-модем Всем пользователям назначены статические адреса в диапазоне 192.168.0.0/16 Далее фаервол настроен на статическую маршрутизацию адресов, т. е. все пользователи разделены на четыре группы и каждая группа роутится на один из модемов. Для этого созданы четыре таблицы маршрутизации. Так есть сейчас. Наша задача: динамически распределять пользователей по модемам по следующей схеме: 1. Пользователь получает динамический адрес от DHCP-сервера из диапазона 192.169.0.0/16 2. Пользователь создает впн-подключение к серверу по логину/паролю 3. скрипт инициализации ppp-канала прописывает вышеуказанные правила форвардинга и маршрутизации, назначая ему динамически один из четырех маршрутов. В последнем пункте загвоздка с маршрутизацией. Для чистоты эксперимента скрипт сбрасывает вначале все таблицы маршрутизации и правола iptables но клиент не может выйти в интернет. буду рад Вашим соображениям Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
gogi Опубликовано 29 июля, 2009 Жалоба Поделиться Опубликовано 29 июля, 2009 Выложите еще таблицы маршрутизации на клиенте и на роутере до и после поднятия впн. И еще фактически действующие правила (iptables-save) тоже до и после соединения. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 16 августа, 2009 Автор Жалоба Поделиться Опубликовано 16 августа, 2009 притащил на работу старенький целерон, поставил на нем роутер и упражняюсь на нем в написании фаервола. Когда будут результаты - отпишусь Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
SignFinder Опубликовано 17 августа, 2009 Жалоба Поделиться Опубликовано 17 августа, 2009 Цитата: все пользователи разделены на четыре группы и каждая группа роутится на один из модемов. Для этого созданы четыре таблицы маршрутизации. чем роутятся??? iproute2 ? Тогда ip ro ls в студию и ip ru ls Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 23 августа, 2009 Автор Жалоба Поделиться Опубликовано 23 августа, 2009 # ip ro ls 10.10.20.0/24 dev eth2 proto kernel scope link src 10.10.20.10 10.10.50.0/24 dev eth1 proto kernel scope link src 10.10.50.10 10.10.30.0/24 dev eth3 proto kernel scope link src 10.10.30.10 10.10.10.0/24 dev eth1 proto kernel scope link src 10.10.10.10 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 10.10.40.0/24 dev eth4 proto kernel scope link src 10.10.40.10 169.254.0.0/16 dev eth2 scope link metric 1002 169.254.0.0/16 dev eth3 scope link metric 1003 169.254.0.0/16 dev eth4 scope link metric 1004 169.254.0.0/16 dev eth0 scope link metric 1005 169.254.0.0/16 dev eth1 scope link metric 1006 192.168.0.0/16 dev eth0 proto kernel scope link src 192.168.1.1 default nexthop via 10.10.10.1 dev eth1 weight 1 nexthop via 10.10.20.1 dev eth2 weight 1 nexthop via 10.10.30.1 dev eth3 weight 1 nexthop via 10.10.40.1 dev eth4 weight 1 ]# ip ru ls 0: from all lookup local 32758: from all fwmark 0x28 lookup RT4 32759: from all fwmark 0x1e lookup RT3 32760: from all fwmark 0x14 lookup RT2 32761: from all fwmark 0xa lookup RT1 32762: from 10.10.40.10 lookup RT4 32763: from 10.10.30.10 lookup RT3 32764: from 10.10.20.10 lookup RT2 32765: from 10.10.10.10 lookup RT1 32766: from all lookup main 32767: from all lookup default для eth1 создано два интерфейсв Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 13 сентября, 2009 Автор Жалоба Поделиться Опубликовано 13 сентября, 2009 Немного изменил конфигурацию: eth0 - 200.200.200.1/24 - смотрит в локальную сеть eth1 - 10.10.10.10/24 - смотрит на адсл-модем правила iptables: FW='/usr/sbin/iptables' IF_LOCAL='eth0' IP_LOCAL='200.200.200.1' NET_LOCAL='200.200.200.0/24' IF_NET='eth1' IP_NET='10.10.10.10' NET_NET='10.10.10.0/24' IF_PPP='ppp+' PPP_NET='100.100.100.0/24' IP_GW1='10.10.10.1' EXT_NET='0/0' echo 1 > /proc/sys/net/ipv4/ip_forward route add default gw $IP_GW1 $FW -F $FW -X $FW -Z $FW -t nat -F $FW -t mangle -F # ************ INPUT ***************************** $FW -A INPUT -i lo -j ACCEPT $FW -A INPUT -i $IF_PPP -j ACCEPT $FW -A INPUT -i $IF_LOCAL -s $PPP_NET -j ACCEPT $FW -A INPUT -i $IF_LOCAL -s $NET_LOCAL -p tcp --dport 1723 -j ACCEPT $FW -A INPUT -i $IF_LOCAL -s $NET_LOCAL -p udp --dport 1723 -j ACCEPT $FW -A INPUT -i $IF_LOCAL -s $NET_LOCAL -p gre -j ACCEPT $FW -A INPUT -i $IF_LOCAL -j DROP # ************ OUTPUT ***************************** $FW -A OUTPUT -o lo -j ACCEPT $FW -A OUTPUT -o $IF_PPP -j ACCEPT #$FW -A OUTPUT -o $IF_LOCAL -d $PPP_NET -j ACCEPT $FW -A OUTPUT -o $IF_LOCAL -d $NET_LOCAL -p tcp --sport 1723 -j ACCEPT $FW -A OUTPUT -o $IF_LOCAL -d $NET_LOCAL -p udp --sport 1723 -j ACCEPT $FW -A OUTPUT -o $IF_LOCAL -d $NET_LOCAL -p gre -j ACCEPT $FW -A OUTPUT -o $IF_LOCAL -j DROP # ************ FORWARD ***************************** $FW -A FORWARD -i $IF_PPP -d $EXT_NET -j ACCEPT $FW -A FORWARD -s $EXT_NET -d $PPP_NET -j ACCEPT # ************ POSTROUTING ***************************** $FW -t nat -A POSTROUTING -s $PPP_NET -d $EXT_NET -j SNAT --to-source $IP_GW1 [/codebox] iptables-save # Generated by iptables-save v1.3.6 on Tue Sep 15 09:38:29 2009 *mangle :PREROUTING ACCEPT [392:27906] :INPUT ACCEPT [383:27310] :FORWARD ACCEPT [9:596] :OUTPUT ACCEPT [288:20286] :POSTROUTING ACCEPT [235:16202] COMMIT # Completed on Tue Sep 15 09:38:29 2009 # Generated by iptables-save v1.3.6 on Tue Sep 15 09:38:29 2009 *nat :PREROUTING ACCEPT [128:11077] :POSTROUTING ACCEPT [11:836] :OUTPUT ACCEPT [7:552] -A POSTROUTING -s 100.100.100.0/255.255.255.0 -j SNAT --to-source 10.10.10.1 COMMIT # Completed on Tue Sep 15 09:38:29 2009 # Generated by iptables-save v1.3.6 on Tue Sep 15 09:38:29 2009 *filter :INPUT ACCEPT [3:252] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [9:756] -A INPUT -i lo -j ACCEPT -A INPUT -i ppp+ -j ACCEPT -A INPUT -s 100.100.100.0/255.255.255.0 -i eth0 -j ACCEPT -A INPUT -s 200.200.200.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT -A INPUT -s 200.200.200.0/255.255.255.0 -i eth0 -p udp -m udp --dport 1723 -j ACCEPT -A INPUT -s 200.200.200.0/255.255.255.0 -i eth0 -p gre -j ACCEPT -A INPUT -i eth0 -j DROP -A FORWARD -i ppp+ -j ACCEPT -A FORWARD -d 100.100.100.0/255.255.255.0 -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -o ppp+ -j ACCEPT -A OUTPUT -d 200.200.200.0/255.255.255.0 -o eth0 -p tcp -m tcp --sport 1723 -j ACCEPT -A OUTPUT -d 200.200.200.0/255.255.255.0 -o eth0 -p udp -m udp --sport 1723 -j ACCEPT -A OUTPUT -d 200.200.200.0/255.255.255.0 -o eth0 -p gre -j ACCEPT -A OUTPUT -o eth0 -j DROP COMMIT # Completed on Tue Sep 15 09:38:29 2009 [/codebox] Идея проста: dhcpd раздает адреса клиентам в сети из диапазона 200.200.200.10-250 Далее клиент создает ppp-туннель, получая адрес из диапазона 100.100.100.10-250 Правила INPUT OUTPUT работают, как требуется: ограничивают доступ по eth0 только для установления ppp-соединения, а для ppp-туннелей разрешают. Не работает только FORWARD POSTROUTING - с клиента не пингуется ни eth0(10.10.10.10), ни адсл(10.10.10.1) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.