Вот реализация для ipfw:
if1IP="ип_смотрящий_в_инет", if1="интерфейс_смотрящий_в_инет"
ifLIP="ип_на_который хотим делать редирект"
ipfw add divert natd tcp from any to ${if1IP} 80 via ${if1}
ipfw add divert natd ip from any to ${ifLIP} to any via ${if1}
ipfw add allow tcp from any to ${if1IP} 80 via any
natd -n ${if1} -redirect_port tcp ${ifLIP}:80 80Решение от miaso <torov@wipline.ru>:
tproxy -s 80 -r nobody -l /var/log/transparent_proxy.log [int_ip] 80
URL: http://www.opennet.me/openforum/vsluhforumID1/29040.html
Обсуждается: http://www.opennet.me/tips/info/467.shtml
Я уже в 3-х местах видел.
ipfw add divert natd ip from any to ${ifLIP} to any via ${if1}
Ну как так мжно бездумно копироать?
а как правильно писать надо???
ipfw add divert natd ip from ${ifLIP} to any via ${if1}
если на машине больше НИЧЕ нет - тада можно
а так работать не будет
потому что ipfw add divert natd ip from any to ${ifLIP} to any via ${if1) глупая фроаза
hi
подскажите что не так в строчке
ipfw add 1234 ip_proxy:3128 tcp from any to any 80,3128 in recw ppp0
весь инет отправляю на удалённый прокси и сервак лежит не туда не оттуда {на проксе я прописан }
>> ipfw add 1234 ip_proxy:3128 tcp from any to any 80,3128 in recw ppp0
>> подскажите что не такipfw add 1234 FWD ip_proxy,3128 tcp from any to any 80,3128 in RECV ppp0
man ipfw
А если у меня pppnat то как должны выглядеть строки?
Редирект 80 порта на 192.168.0.50:80в файле ppp.conf:
...
vpn:
...
nat enable yes
nat port tcp 192.168.0.50:80 80
...
...
А вот такая вот задача.
Есть машина (роутер),FreeBSD 5.1-RELASE. На ней 22, 25, 110, 80 порты. Интерфейс rl0 - внешний, rl1 - локальной сети. Адрес 62.141.125.3. натит в локалку инет. Локалка 192.168.0.0. Есть выделенный блок адресов 62.141.125.0. Нужно через эту машину пропустить один адрес (62.141.125.8) на локальный адрес (192.168.0.201). Как с этим побороться?Вышеописанные потуги не привели ни к какому результату. Есть попутный вопрос. Нужно ли на маршрутизаторе заводить алиас 62.141.125.8?
вариант 1.
заводиш алиас 62.141.125.8 и маскарадиш все пакеты с него на локальный адрес (192.168.0.201)
для 192.168.0.201 все внешние соединения будут как от роутера
ватиант 2.
выдаёш 192.168.0.201 ещё один адрес 62.141.125.8 и настраиваеш default route на 62.141.125.router
>А вот такая вот задача.
>Есть машина (роутер),FreeBSD 5.1-RELASE. На ней 22, 25, 110, 80 порты. Интерфейс
>rl0 - внешний, rl1 - локальной сети. Адрес 62.141.125.3. натит в
>локалку инет. Локалка 192.168.0.0. Есть выделенный блок адресов 62.141.125.0. Нужно через
>эту машину пропустить один адрес (62.141.125.8) на локальный адрес (192.168.0.201). Как
>с этим побороться?
>
>Вышеописанные потуги не привели ни к какому результату. Есть попутный вопрос. Нужно
>ли на маршрутизаторе заводить алиас 62.141.125.8?Играйся с NATd, он все это делает, (redirect), только пятерку просивиэсапь. Сделай нормальный /etc/natd.conf, просто енабле в рссонфе работать ессно не будет. Не понятно откуда мысли про alias, какой грамотей подсказал?
Учти, NATd НЕ ОТСТАРТУЕТ при отсуствии айпришника, может у тебя в этом грабли.
a men nado vitashit iz localki i vstavit s realnim IP
главное нат который редиректит поднимать на том интерфейсе куда перенаправляемые пакеты приходят а вообще есть отличная статья тут http://www.opennet.me/base/net/nat_jump.txt.html
Маленький нюанс...
Если пробрасывать не порт а полностью ip-протокол, то требуется:
if2IP="alias ип_смотрящий_в_инет"
1) прописать альяс на внешнем интерфейсе ${if2IP}
2) поднять один нат для выхода в сеть машины с уникальным адресом
ipfw add nn divert XXX all from ${ifLIP} to any via ${if1}
natd -a ${if2IP} -p XXX
где XXX порт отличный от natd, и обязательно via ${if1}, иначе адрес с которого будут возвращаться пакеты не будет совпадать с адресом на который посылали запрос и сессии не поднимутся...
3) и наконец поднять нат для трансляции внешнего адреса во внутренний
ipfw add kk divert YYY all from any to ${if2IP} to any via ${if1}
natd -a ${if2IP} -redirect_address ${if2IP} ${ifLIP} -p YYY
Мы подразумеваем, что у нас внешний сервер - на FreeBSD. В нем минимум 2 сетевых карты. Или больше. Как пробросить порты в этом случае:Ставим из /usr/ports/sysutils/socket - стандартное make, make install
Добавляем для нашего порта, по которому мы будем ломиться со стороны Интернета соответствующую запись в /etc/services
ourpt8010 8010/tcp
ourpt8010 8010/udp
Теперь еще одна запись в /etc/inetd.conf
ourpt8010 stream tcp nowait root /usr/local/bin/socket socket 192.168.11.42 8010
перестартуем InetD по kill -1
Проверяем работоспособность
Проблемма такая. Имеется VPN соединение c сервером раздающим интернет. При каждом соединении выдаются разные IP адреса. Как при этом в FreeBSD перебросить соединение через NAT во внутреннюю сеть ?
ЗЫ. При этом нужно сделать так, чтобы каждый раз не править конфиги.
К чему весь сыр-бор..
rinetd чем не выход...
Вот мой пример перенаправления порта виндового терминала через нат внутрь БЕЗ ПРИВЯЗКИ К ВНЕШНЕМУ ИП.../etc/rc.conf :
natd_enable="YES"
natd_flags="-config /etc/natd.conf"
natd_interface="xl1"/etc/natd.conf :
same_ports yes
use_sockets yes
redirect_port tcp 192.168.1.252:3389 3389
+1. у меня так же все распедалено и все отлично пашет.
Всё это супер... а вот задачу с пробросом в внутренную сеть нескольких портов помогите решить... один порт получается... больше никак
>Всё это супер... а вот задачу с пробросом в внутренную сеть нескольких
>портов помогите решить... один порт получается... больше никакКак уже говорилось выше, попробуйте использовать rinetd