есть локальный сервер с адресом 192.168.0.1 и инетовский с адресом 1.2.3.4, на локальном сервере открыт порт 1234, реально ли сделать чтоб при обращении к 1.2.3.4 на порт 1234 он это переадресовывал к 192.168.0.1 на этот же порт?
>есть локальный сервер с адресом 192.168.0.1 и инетовский с адресом 1.2.3.4, на
>локальном сервере открыт порт 1234, реально ли сделать чтоб при обращении
>к 1.2.3.4 на порт 1234 он это переадресовывал к 192.168.0.1 на
>этот же порт?
вобщем нужно сделать редирект (на ядре 2.2) пробывал однострочные способы найденые в инете, типа:
ipchains -I input -p tcp -i eth0 --source-port 1234 -d 192.168.0.1 1234 -j REDIRECT
или
ipchains -I forward -i eth0 -p tcp -s 0/0 -d 192.168.0.1 1234 -j ACCEPT
не работают
Как я понял ОС Линукс... А чего iptables не пользуешь? Там вроде проще сделать...
>есть локальный сервер с адресом 192.168.0.1 и инетовский с адресом 1.2.3.4, на
>локальном сервере открыт порт 1234, реально ли сделать чтоб при обращении
>к 1.2.3.4 на порт 1234 он это переадресовывал к 192.168.0.1 на
>этот же порт?
на ipchains не сделать такой маппинг порта, нужно юзать iptables, но поскольку у тебя ядро 2.2.x и айпиталеса там кажись вообще нету, то тебе нужен пакет redir-2.2.1 брать здесь http://sun3.sammy.net/~sammy/hacks/
http://sun3.sammy.net/~sammy/hacks/redir-2.2.1.tar.gz
маппинг будет выглядеть так
/bin/redir --lport=3389 --laddr=1.2.3.4 --cport=3389 --caddr=192.168.0.1 --syslog --name=rdesktop &
>>есть локальный сервер с адресом 192.168.0.1 и инетовский с адресом 1.2.3.4, на
>>локальном сервере открыт порт 1234, реально ли сделать чтоб при обращении
>>к 1.2.3.4 на порт 1234 он это переадресовывал к 192.168.0.1 на
>>этот же порт?>у тебя ядро 2.2.x и айпиталеса там кажись вообще нету, то
>тебе нужен пакет redir-2.2.1А на 2.4.x. как это сделать ?
Вообще-то хотелось бы научится мапировать на произвольные порты. Т.е. при обращении по порту 1111 на машине 192.168.0.1, на самом деле обращалось на порт 2222 на машине 192.168.0.2
под 2.4 можно использовать iptables(хотя можно оставить и ipchains)
вообщем то что тебе нужно делается DNAT'омiptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 --dport 1111 -j DNAT --to-destination 192.168.0.2:2222
(примерно так у меня выглядит правило чтоб расшарить веб сервер, стоЯщий за НАТом, в инет)В принципе ещё надо сделать так:
iptables -t nat -A POSTROUTING -p tcp -dport 2222 -d 192.168.0.2 -j SNAT --to-source 192.168.0.1:1111(с этим правилом не уверен, пусть знающие люди поправят если что не так)без этого правила будет происходить не совсем мапинг портов, т.е. без него машина 192.168.0.2 будет видеть реальные адреса запросившего, что бывает нужно, а бывает нет
PS:У некоторых протоколов(например ftp) есть свои особенности и так просто такой сервис не промапить.
https://www.opennet.ru/docs/RUS/iptables/#DNATTARGET
Здесь подробно расписано для чего бывает нужен SNAT в случае использования DNAT.
Если kernel 2.2.x
http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/forwarders.htm...
>есть локальный сервер с адресом 192.168.0.1 и инетовский с адресом 1.2.3.4, на
>локальном сервере открыт порт 1234, реально ли сделать чтоб при обращении
>к 1.2.3.4 на порт 1234 он это переадресовывал к 192.168.0.1 на
>этот же порт?нужно примерно следующее на баше для ядра 2.4 и iptables
если в сети компе_шлюзе_фаерволе с внешним ip и 2-мя сетевухами
внеш 217.77.209.22 (eth0)
внутр 192.168.0.100/24 (eth1)
ип_то_чего_выпускаем 192.168.0.1/24#--
IPTABLES=iptables
INT_INTERF="eth0" # Внутренний If
EXT_INTERF="eth1" # Внешний If
REAL_IP="217.77.209.22" # реальный IP
DMZ_IP="192.168.0.1" # IP в DMZ зоне кот должен быть доступен извнеREAL_PORT="1905" # Порт открытый на компе с REAL_IP
DMZ_PORT="2004" # Порт открытый на компе с DMZ_IP
LAN_DMZ="192.168.0.0/24" # Сеть DMZ зоны
LAN_IPADDR_DMZ="192.168.0.100" # IP из фаервол-шлюз$IPTABLES -A PREROUTING -p tcp -d $REAL_IP --dport $REAL_PORT -t nat -j DNAT --to-destination $DMZ_IP:$DMZ_PORT
$IPTABLES -A POSTROUTING -p tcp -d $DMZ_IP -t nat -j SNAT --to-source $LAN_IPADDR_DMZ
$IPTABLES -A FORWARD -p tcp --syn -d $DMZ_IP -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s $DMZ_IP -m state ESTABLISHED,RELATED -j ACCEPT
>есть локальный сервер с адресом 192.168.0.1 и инетовский с адресом 1.2.3.4, на
>локальном сервере открыт порт 1234, реально ли сделать чтоб при обращении
>к 1.2.3.4 на порт 1234 он это переадресовывал к 192.168.0.1 на
>этот же порт?
Возможно я неправильно понял суть вопроса. Видел несколько утилит (bounce, datapipe, socket2soc), которые этим занимаются