наперёд. Хочу перенаправить все запросы на порт 80 на машину внутри локалки.
Плохо, когда роутер и веб-сервер - одна машина.
>наперёд. Хочу перенаправить все запросы на порт 80 на машину внутри локалки.
Можно.
>>наперёд. Хочу перенаправить все запросы на порт 80 на машину внутри локалки.
>Можно.Спасибо! Я так и знал.
>>>наперёд. Хочу перенаправить все запросы на порт 80 на машину внутри локалки.
>>Можно.
>
>Спасибо! Я так и знал.если nat via iptables то DNAT тебя спасет
Первый путь - пробрасывание только порта
1) iptables -t nat -A PREROUTING -p tcp -d EXT_R_IP --dport 10000 -j DNAT --to-destination LOCAL_IP:80
2) iptables -A FORWARD -i eth0 -d LOCAL_IP -p tcp --dport 22 -j ACCEPTВторой вариант - выброс всей машины наружу(если есть свободные адреса)
1) ifconfig eth0:0 NEW_IP netmask NETMASK broadcast BROADCAST
2) route add NEW_IP gw GW netmask 0.0.0.0 metric 1 dev eth0:0
3) iptables -t nat -A PREROUTING -p tcp -d NEW_IP -j DNAT --to-destination LOCAL_IP
4) iptables -A FORWARD -i eth0 -d LOCAL_IP -j ACCEPTОбозначения
1) EXT_R_IP - внешний IP роутера
2) LOCAL_IP - внутренний IP машины, которую хочешь выбросить
3) NEW_IP - новый IP на который хочешь посадить машину, которая имеет локальный LOCAL_IP
4) NETMASK, BROADCAST, GW - внешние netmask, broadcast и gatewayЭто в линуксе
Спасибо, Димез, за такой подробный ответ.
Запишу и запомню. Пригодится обязательно.
Простите, что не назвал ОСь.
Ну да :) Я даже статейку кропанул :)
http://dimez.nm.ru/docs/nat/index.html :)
>Первый путь - пробрасывание только порта
>1) iptables -t nat -A PREROUTING -p tcp -d EXT_R_IP --dport 10000
>-j DNAT --to-destination LOCAL_IP:80
>2) iptables -A FORWARD -i eth0 -d LOCAL_IP -p tcp --dport 22
>-j ACCEPT
>
>Второй вариант - выброс всей машины наружу(если есть свободные адреса)
>1) ifconfig eth0:0 NEW_IP netmask NETMASK broadcast BROADCAST
>2) route add NEW_IP gw GW netmask 0.0.0.0 metric 1 dev eth0:0
>
>3) iptables -t nat -A PREROUTING -p tcp -d NEW_IP -j DNAT
>--to-destination LOCAL_IP
>4) iptables -A FORWARD -i eth0 -d LOCAL_IP -j ACCEPT
>
>Обозначения
>1) EXT_R_IP - внешний IP роутера
>2) LOCAL_IP - внутренний IP машины, которую хочешь выбросить
>3) NEW_IP - новый IP на который хочешь посадить машину, которая имеет
>локальный LOCAL_IP
>4) NETMASK, BROADCAST, GW - внешние netmask, broadcast и gateway
>
>Это в линуксеА можно ли сделать без iptables и как? (у меня ядро 2.2.х - стоит Ipchains, вдобавок только один адресс провайдера).
>>Первый путь - пробрасывание только порта
>>1) iptables -t nat -A PREROUTING -p tcp -d EXT_R_IP --dport 10000
>>-j DNAT --to-destination LOCAL_IP:80
>>2) iptables -A FORWARD -i eth0 -d LOCAL_IP -p tcp --dport 22
>>-j ACCEPT
>>
>>Второй вариант - выброс всей машины наружу(если есть свободные адреса)
>>1) ifconfig eth0:0 NEW_IP netmask NETMASK broadcast BROADCAST
>>2) route add NEW_IP gw GW netmask 0.0.0.0 metric 1 dev eth0:0
>>
>>3) iptables -t nat -A PREROUTING -p tcp -d NEW_IP -j DNAT
>>--to-destination LOCAL_IP
>>4) iptables -A FORWARD -i eth0 -d LOCAL_IP -j ACCEPT
>>
>>Обозначения
>>1) EXT_R_IP - внешний IP роутера
>>2) LOCAL_IP - внутренний IP машины, которую хочешь выбросить
>>3) NEW_IP - новый IP на который хочешь посадить машину, которая имеет
>>локальный LOCAL_IP
>>4) NETMASK, BROADCAST, GW - внешние netmask, broadcast и gateway
>>
>>Это в линуксе
>
>А можно ли сделать без iptables и как? (у меня ядро 2.2.х
>- стоит Ipchains, вдобавок только один адресс провайдера).У меня тоже самое - ipchains
И вопрос похожий. Как перебросить через линукс запрос Виндового Remote Desktop из мира на Виндовую машину стоящую в локальной сети (за линуксом)?
>
>если nat via iptables то DNAT тебя спасетСпасение от дьявола можно найти только в долгом и вдумчивом чтении технической документации.
У меня freebsd.10x
Вот реализация для ipfw (FreeBSD 4.7STABLE):
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
При желании запускаешать два natd'a на разных портах, один свой - который щас работает, другой для редиректа.
Удачи.
>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}наверно divert natd ip from ${ifLIP} to any via ${if1} ?
если два раза to - она ругается.>ipfw add allow tcp from any to ${if1IP} 80 via any
>
>natd -n ${if1} -redirect_port tcp ${ifLIP}:80 80
говорит missing public port, гадина.
Промах, значит.Не выходит :-(
Пардон!
почитал man Ж-)
надо не 8080 а 80 пробел 80!
спасибо
>Пардон!
>почитал man Ж-)
>надо не 8080 а 80 пробел 80!
>спасибо
у меня тоже самое работает на 4.7(ipfw1),
но не работает на 5.0(ipfw2).
Кто-нибудь знает в чем проблема?
А меня прикололо сделать вот так:
tproxy -s 80 -r nobody -l /var/log/transparent_proxy.log [int_ip] 80
Могу ещё посоветовать программу delegate
Легка в настройке, багов не замечено
Удачи
Добрый день мастера!
Описываю общию картину:
Компьютер(СерверL) с двумя картами - одна это Радио(она обиспечивает интернет eth1), вторая сетевая(eth0).
На этом компе стоит Linux(REdHard) с ядром 2.2.15.
Сетевая (eth0) подключается напрямую другому серверу(СерверNT), котрый имеет адрес 192.168.1.1
Что нужно! НА СерверNT стоит Лотус, который через Линух отправляет почту по указанному IP_адресу и порту(1120) в Москву. Теперь необходимо, чтобы и Москва отправляла на наш внешний IP (81.xx.xxx.xx) почту. Это сделать можно, но как сделать так, чтобы письма для Лотуса с СервераL перенапровлялись на локальную машину СервераNT(192.168.1.1) по порту 1120
Какие есть варианты и есть ли возможность поставить на Линух сам ЛотусДемон?
>>Пардон!
>>почитал man Ж-)
>>надо не 8080 а 80 пробел 80!
>>спасибо
>
>
>у меня тоже самое работает на 4.7(ipfw1),
>но не работает на 5.0(ipfw2).
>Кто-нибудь знает в чем проблема?
Запусти natd c ключом -v и у тебя пакет должен через natd 2 раза пройти: как входящий и как итсходящий То же самое для пакета-ответа. На входе natd изменяет адрес пролучателя, а на выходе - оьтправителя.
Freebsd 4.5 re (ipfw(1))
fxp0 - внутренняя локаль
wb0 - внешняя
условие - ipfw default to accept.ipfw add 25 divert 7777 tcp from any to me 1900 #поворачивать все входящие на порт 1900 пакеты в натдаймон на порт 7777
ipfw add 50 divert 8668 ip from any to any via wb0 #поворачивать все пакеты из локалки в инет.
/sbin/natd -p 7777 -f /etc/natd.conf -n fxp0 -u #директит то что нужно в локаль
/sbin/natd -f /etc/natd.conf -n wb0 # директит всех в инет по всем портам#ниже у нас natd.conf с которым все эти natd пашут.
/etc/natd.conf
#dynamic yes
same_ports yes
use_sockets yes#redirect_address 192.168.0.3 0.0.0.0
#redirect_port tcp 192.168.0.3:1000-6000 1000-6000
redirect_port tcp 192.168.0.3:1900 1900
redirect_port tcp 192.168.0.3:2234 2234
redirect_port udp 192.168.0.3:23858 23858флаг -v к natd это приказ не сворачиваться в даймон а висеть и выводить инфу на маршрутизация не влияет вроде
может я в чём и ошибся и почти уверен что некоторые правила из выше указанных не нужны но кто может пускай поправит буду рад