Недавно мне пришлось рабираться с очень интересной проблемой связанной с пробросом портов на DD-WRT. Хочу отметить что, DD-WRT является очень удобной и многофункциональной бесплатной прошивкой для многих беспроводных маршрутизаторов, но всё же имеет некоторые недоработки, которые впрочем сообщество активно пытается ликвидировать — иногда успешно, а иногда и неочень.
Проблема заключается в следующем. Для работы таких сервисов как ftp-сервер или http-сервер, а так же для работы в активном режиме файлообменных клиентов «за» маршрутизатором — возникает необходимость проброса портов. Вообще через web-интерфейс делается он элементарно.
Выбираем раздел NAT/QoS, а в нём подраздел Port Forwarding (Перенаправление портов).
Теперь заполняем таблицу: указываем название приложения (Application), порт который необходимо прокинуть (Port from), IP-адрес компьютера на который мы пробрасываем порт и соответственно порт на нём (Port to). Остаётся лишь поставить галочку Enable и нажать кнопку Save. Итак, правило мы создали и сохранили — теперь применим его, для чего необходимо нажать кнопку Apply Settings. Вроде бы всё сделали, но проблема как раз здесь и возникает. Дело вот в чём: правила, создаваемые через веб-морду действуются только для физического WAN-интерфейса, не действуя при этом на интерфейс ppp0, через который поднимается pptp либо pppoe. В этом случае поступаем следующем образом: переходим в раздел Administration(Тех.обслуживание) и выбираем подраздел Commands(Команды).
Теперь в поле ввода для команд пишем следующую директиву:
iptables -t nat -A PREROUTING -p tcp -i ppp0 \ --dport 80 -j DNAT --to 192.168.1.10:80
Далее нажимаем кнопку Save Firewall (Сохр.брандмауэр) и перезагружаем роутер. Если Вы всё сделали правильно, то проброс нужного порта будет осуществлятся без проблем.
Жалко, вся затея под угрозой провала)
Вообще сейчас получилось получить желанный доступ из интернета к порту другого роутера, который через VPN подключен, но для это пришлось добавить выданный ему адрес в dmz и выполнить пару непонятных хаотичных движений, но такой вариант на постоянную работу не подходит.
Спасибо Вам за комментарии к задачке!
iptables -t nat -A PREROUTING -p tcp -i ppp0 —dport 3389 -j DNAT —to 192.168.0.250:3389