heavyrail 20.10.2010 18:32
Есть вопрос! — Организация перенаправления портов в DD-WRT
Всем привет!Есть маршрутизатор Asus WL-500gP v2 с установленной DD-WRT.
Внешний адрес x.x.x.114. При этом можно использовать также внешние адреса в диапазоне x.x.x.96 - x.x.x.113.
Во внутренней сети есть три машины с адресами 192.168.0.97, .98 и .99.
Задача - сделать так, чтобы при обращении на 80-й порт внешних адресов x.x.x.97, .98, .99, осуществлялось бы перенаправление на машины из внутренней сети с соответствующими окончаниями адресов. Во FreeBSD я это делал через ipf, но тут его нету.
В скрипт автозапуска записал:
1 |
#!/bin/sh
|
В скрипт брандмауэра записал (привожу для краткости правила только для одной машины):
1 |
#!/bin/sh
|
Результат - нулевой. Не перебрасываются пакеты куда надо. Помогите настроить правильно, пожалуйста.
xtavras 20.10.2010 19:07 #
+ 0 -
Хм, так вроде как перенаправление отлично через GUI настраивается, или задача именно через iptables это сделать?
В GUI только одно поле для IP-адреса.
Как же я там задам такие перенаправления?
x.x.x.97:80 --> 192.168.0.97:80
x.x.x.98:80 --> 192.168.0.98:80
x.x.x.99:80 --> 192.168.0.99:80
Как же я там задам такие перенаправления?
x.x.x.97:80 --> 192.168.0.97:80
x.x.x.98:80 --> 192.168.0.98:80
x.x.x.99:80 --> 192.168.0.99:80
Я на таком же роутере, правда, с прошивкой «от Олега» делал так.
На первый взгляд у тебя более простой случай - один внешний IP, а у меня - много.
В этом-то и проблема.
Завтра посмотрю внимательно на твои правила iptables, может натолкнёт меня на мысль какую-нибудь. Но ведь может быть у меня ошибка и в способе назначения дополнительных внешних адресов?
В этом-то и проблема.
Завтра посмотрю внимательно на твои правила iptables, может натолкнёт меня на мысль какую-нибудь. Но ведь может быть у меня ошибка и в способе назначения дополнительных внешних адресов?
Пример один, но у меня таким же образом прокинуто штук пять портов.
Ну да, пять портов на одном адресе.
А мне надо один 80-й порт на каждом из нескольких адресов.
А мне надо один 80-й порт на каждом из нескольких адресов.
Ну вот алиасы, который подвешены на vlan1, они вообще с нешней стороны роутера пингуются? Из внешнего интернета.
При этом можно использовать также внешние адреса в диапазоне x.x.x.96 - x.x.x.113.
А они есть эти адреса? Роутер по ним пингуется, к примеру?
Пинг не критерий. Основной адрес x.x.x.114 тоже не пингуется, но SSH на него прекрасно заходит. Нужен какой-то другой способ проверки.
Вот что он говорит:
br0 Link encap:Ethernet HWaddr 48:5B:39:76:C8:BD
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:6429 errors:0 dropped:0 overruns:0 frame:0
TX packets:5260 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:775369 (757.1 KiB) TX bytes:1629815 (1.5 MiB)
br0:0 Link encap:Ethernet HWaddr 48:5B:39:76:C8:BD
inet addr:169.254.255.1 Bcast:169.254.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
eth0 Link encap:Ethernet HWaddr 48:5B:39:76:C8:BD
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16540 errors:0 dropped:0 overruns:0 frame:0
TX packets:5730 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1817436 (1.7 MiB) TX bytes:1758984 (1.6 MiB)
Interrupt:4
eth1 Link encap:Ethernet HWaddr 48:5B:39:76:C8:BF
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:5130
TX packets:1295 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:311426 (304.1 KiB)
Interrupt:2 Base address:0x5000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
vlan0 Link encap:Ethernet HWaddr 48:5B:39:76:C8:BD
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6432 errors:0 dropped:0 overruns:0 frame:0
TX packets:5260 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:801491 (782.7 KiB) TX bytes:1650855 (1.5 MiB)
vlan1 Link encap:Ethernet HWaddr 48:5B:39:76:C8:BE
inet addr:x.x.x.114 Bcast:x.x.x.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10107 errors:0 dropped:0 overruns:0 frame:0
TX packets:472 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:718063 (701.2 KiB) TX bytes:84825 (82.8 KiB)
vlan1:1 Link encap:Ethernet HWaddr 48:5B:39:76:C8:BE
inet addr:x.x.x.97 Bcast:x.x.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
vlan1:2 Link encap:Ethernet HWaddr 48:5B:39:76:C8:BE
inet addr:x.x.x.98 Bcast:x.x.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
vlan1:3 Link encap:Ethernet HWaddr 48:5B:39:76:C8:BE
inet addr:x.x.x.99 Bcast:x.x.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
iptables-save нету, поэтому показываю iptables -nvL:
и iptables -t nat -nvL:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
13884 1608K ACCEPT 0 -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP udp -- vlan1 * 0.0.0.0/0 0.0.0.0/0 udp dpt:520
0 0 DROP udp -- br0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:520
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:520
1899 114K logaccept tcp -- * * 0.0.0.0/0 192.168.0.10 tcp dpt:80
4 300 logaccept tcp -- * * 0.0.0.0/0 192.168.0.10 tcp dpt:22
41 2498 DROP icmp -- vlan1 * 0.0.0.0/0 0.0.0.0/0
0 0 DROP 2 -- * * 0.0.0.0/0 0.0.0.0/0
1 440 ACCEPT udp -- vlan1 * 0.0.0.0/0 0.0.0.0/0 udp dpt:5060
0 0 ACCEPT 0 -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW
1031 148K logaccept 0 -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW
7969 886K DROP 0 -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT 47 -- * vlan1 192.168.0.0/24 0.0.0.0/0
0 0 ACCEPT tcp -- * vlan1 192.168.0.0/24 0.0.0.0/0 tcp dpt:1723
0 0 ACCEPT 0 -- br0 br0 0.0.0.0/0 0.0.0.0/0
0 0 TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU
0 0 lan2wan 0 -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT 0 -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 TRIGGER 0 -- vlan1 br0 0.0.0.0/0 0.0.0.0/0 TRIGGER type:in match:0 relate:0
0 0 trigger_out 0 -- br0 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT 0 -- br0 * 0.0.0.0/0 0.0.0.0/0 state NEW
0 0 DROP 0 -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 192.168.0.97 tcp dpt:80
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 192.168.0.98 tcp dpt:80
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 192.168.0.99 tcp dpt:80
Chain OUTPUT (policy ACCEPT 16061 packets, 2728K bytes)
pkts bytes target prot opt in out source destination
Chain advgrp_1 (0 references)
pkts bytes target prot opt in out source destination
Chain advgrp_10 (0 references)
pkts bytes target prot opt in out source destination
Chain advgrp_2 (0 references)
pkts bytes target prot opt in out source destination
Chain advgrp_3 (0 references)
pkts bytes target prot opt in out source destination
Chain advgrp_4 (0 references)
pkts bytes target prot opt in out source destination
Chain advgrp_5 (0 references)
pkts bytes target prot opt in out source destination
Chain advgrp_6 (0 references)
pkts bytes target prot opt in out source destination
Chain advgrp_7 (0 references)
pkts bytes target prot opt in out source destination
Chain advgrp_8 (0 references)
pkts bytes target prot opt in out source destination
Chain advgrp_9 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_1 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_10 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_2 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_3 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_4 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_5 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_6 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_7 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_8 (0 references)
pkts bytes target prot opt in out source destination
Chain grp_9 (0 references)
pkts bytes target prot opt in out source destination
Chain lan2wan (1 references)
pkts bytes target prot opt in out source destination
Chain logaccept (3 references)
pkts bytes target prot opt in out source destination
2934 262K ACCEPT 0 -- * * 0.0.0.0/0 0.0.0.0/0
Chain logdrop (0 references)
pkts bytes target prot opt in out source destination
0 0 DROP 0 -- * * 0.0.0.0/0 0.0.0.0/0
Chain logreject (0 references)
pkts bytes target prot opt in out source destination
0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp reject-with tcp-reset
Chain trigger_out (1 references)
pkts bytes target prot opt in out source destination
и iptables -t nat -nvL:
Chain PREROUTING (policy ACCEPT 13995 packets, 1568K bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- * * 0.0.0.0/0 x.x.x.114 tcp dpt:8080 to:192.168.0.10:80
2 140 DNAT tcp -- * * 0.0.0.0/0 x.x.x.114 tcp dpt:22 to:192.168.0.10:22
6 374 DNAT icmp -- * * 0.0.0.0/0 x.x.x.114 to:192.168.0.10
13 804 TRIGGER 0 -- * * 0.0.0.0/0 x.x.x.114 TRIGGER type:dnat match:0 relate:0
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 x.x.x.97 tcp dpt:80 to:192.168.0.97:80
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 x.x.x.98 tcp dpt:80 to:192.168.0.98:80
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 x.x.x.99 tcp dpt:80 to:192.168.0.99:80
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
195 11935 SNAT 0 -- * vlan1 0.0.0.0/0 0.0.0.0/0 to:x.x.x.114
0 0 RETURN 0 -- * br0 0.0.0.0/0 0.0.0.0/0 PKTTYPE = broadcast
13 2728 MASQUERADE 0 -- * br0 192.168.0.0/24 192.168.0.0/24
Chain OUTPUT (policy ACCEPT 208 packets, 14663 bytes)
pkts bytes target prot opt in out source destination
Чтобы пинговались, надо на время выключить SPI Firewall на вкладке Security.
Отключил SPI, стало всё пинговаться, и даже - о чудо - стал отвечать 80-й порт на алиасах! Только почему-то показывают по этому 80-му порту веб-интерфейс DD-WRT :(
А на вкладке Administration->Mangement
Что указано в поле Web GUI Management?
Можно либо перенести на другой порт, либо(что более предпочтительно) выключить вообще. Из локальной сети вебморда всё-так же будет доступна, а вот снаружи она всё-равно вряд ли кому нужна.
Что указано в поле Web GUI Management?
Можно либо перенести на другой порт, либо(что более предпочтительно) выключить вообще. Из локальной сети вебморда всё-так же будет доступна, а вот снаружи она всё-равно вряд ли кому нужна.
Ну хорошо, отключил я веб-морду от внешнего адреса, чтобы пока не мешалась.
Но всё равно не работает. Я по совету товарища немножко модифицировал правила, и получилось вот что: http://welinux.ru/post/4346/#cmnt83819
Но всё равно не работает. Я по совету товарища немножко модифицировал правила, и получилось вот что: http://welinux.ru/post/4346/#cmnt83819
Мне в правилах не нравится интерфейс eth0, к нему, судя по ifconfig, не один адрес не привязан.
1. Уберите указание интерфейса из правил. IP назначения достаточно.
2. Я надеюсь вы тестируете снаружи, а не из внутренней сети? Изнутри работать не будет.
3. Все правила сделайте на -A а -I. Это позволит добавить их первыми в списках. А то мало ли что там еще настроено.
2. Я надеюсь вы тестируете снаружи, а не из внутренней сети? Изнутри работать не будет.
3. Все правила сделайте на -A а -I. Это позволит добавить их первыми в списках. А то мало ли что там еще настроено.
Сделал как Вы сказали, вроде бы пакеты идут, но в браузере странички не отображаются. Вот пример того, как видно прохождение пакетов - к адресам 98 и 99 я обращался, а к 97 - нет:
Chain PREROUTING (policy ACCEPT 294 packets, 41906 bytes)
pkts bytes target prot opt in out source destination
3 184 DNAT tcp -- * * 0.0.0.0/0 x.x.x.99 tcp dpt:80 to:192.168.0.99:80
1 60 DNAT tcp -- * * 0.0.0.0/0 x.x.x.98 tcp dpt:80 to:192.168.0.98:80
0 0 DNAT tcp -- * * 0.0.0.0/0 x.x.x.97 tcp dpt:80 to:192.168.0.97:80
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
18 1020 ACCEPT tcp -- * * 0.0.0.0/0 192.168.0.99 tcp dpt:80
3 180 ACCEPT tcp -- * * 0.0.0.0/0 192.168.0.98 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 192.168.0.97 tcp dpt:80
Страницы не отображаются... А с локальной сети они нормально работают?
У вас там что за сервера то? Может на них можно tcpdump послушать приходят ли туда пакеты? Может там фаер их отбрасывает?
Посмотрел остальные ваши правила. Вроде ничего такого явно запрещающего не нашел... Дальше на голой теории не проехать. Нужна практика и изучение проблемы не месте - прослущивание через tcpdump.
У вас там что за сервера то? Может на них можно tcpdump послушать приходят ли туда пакеты? Может там фаер их отбрасывает?
Посмотрел остальные ваши правила. Вроде ничего такого явно запрещающего не нашел... Дальше на голой теории не проехать. Нужна практика и изучение проблемы не месте - прослущивание через tcpdump.
Всё заработало после того, как я поменял -A на -I, и на серверах .97-.99 поменял адрес шлюза по умолчанию. Оказывается, пакеты шли через другой шлюз!
Потестирую несколько дней эту конфигурацию, если ничего не всплывёт нового - добавлю в топик метку и решение вынесу наверх.
Потестирую несколько дней эту конфигурацию, если ничего не всплывёт нового - добавлю в топик метку и решение вынесу наверх.
У меня не iptables -A FORWARD а iptables -I FORWARD и никаких #!/bin/sh
В веб интерфейсе пишите например для торрентов так
iptables -A PREROUTING -t nat -p tcp -i eth1 --dport 56510 -j DNAT --to 192.168.1.100:56510
iptables -I FORWARD -p tcp -i eth1 --dport 56510 -j ACCEPT
и жмете кнопку Save Firewall это сохранит и применит правила.
В веб интерфейсе пишите например для торрентов так
iptables -A PREROUTING -t nat -p tcp -i eth1 --dport 56510 -j DNAT --to 192.168.1.100:56510
iptables -I FORWARD -p tcp -i eth1 --dport 56510 -j ACCEPT
и жмете кнопку Save Firewall это сохранит и применит правила.
В PREROUTING я сделал тоже -I, а за совет убрать #!/bin/sh спасибо - без него тоже работает. В итоге вот что получилось: http://welinux.ru/post/4346/#cmnt83865
Помогите пожалуйста решить проблему с переадресацией портов. Не давно установил на роутер d'link dir 615 прошивку dd-wrt 15778. Имееться старенький сервер. и на нем сайт marges.com.ua, хотел бы когда при обращение на мой ip (46.119.139.93) была переадресация на мой сервер 192.168.0.100. Настроил переадресацию через админку роутера (NAT / QoS> Переадрисация > порта 80 и 21) но при попытке открить сайт или вбившы ip ничего не происходит, очень долго грузиться страница и потом выдает ошибку. Помогите пожалуйста
ip уже был поминался теперь 46.119.143.237 , если пробить в браузере заходит в админку dlinka, помогите пожалуйста