URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 89696
[ Назад ]

Исходное сообщение
"Linux NAT на одну машину."

Отправлено psix , 28-Авг-10 02:38 
Добрый вечер,

стоит сервер centos 5.5. NAT не настроен, возникла такая необходимость - прокинуть нат на одну из машин, пожалуйста помогите по шагам + как сделать нат 1 в 1 то есть что все порты с одно IP (Сервера) перекидывались на клиента.


Содержание

Сообщения в этом обсуждении
"Linux NAT на одну машину."
Отправлено PavelR , 28-Авг-10 06:34 
>Добрый вечер,
>
>стоит сервер centos 5.5. NAT не настроен, возникла такая необходимость - прокинуть
>нат на одну из машин, пожалуйста помогите по шагам + как
>сделать нат 1 в 1 то есть что все порты с
>одно IP (Сервера) перекидывались на клиента.

iptables -t nat -I PREROUTING -i extEth -d 1.2.3.4 -j DNAT --to-destination 192.168.0.40

возможно надо будет включить форвардинг пакетов, если не включен
возможно надо разрешить прохождение пакетов в filter.FORWARD или еще где-то...

по всем ключам - man iptables


"Linux NAT на одну машину."
Отправлено BaldyMan , 28-Авг-10 06:40 
>стоит сервер centos 5.5. NAT не настроен, возникла такая необходимость - прокинуть
>нат на одну из машин, пожалуйста помогите по шагам + как
>сделать нат 1 в 1 то есть что все порты с
>одно IP (Сервера) перекидывались на клиента.

Вообще тебе надо SNAT/DNAT посмотреть, наверно как-то вот наподобие этого
iptables -t nat -A POSTROUTING -s <адрес источника(клиента)> -p tcp(udp) --dport <порт назначения> -j SNAT --to <адрес назначения(сервера, с которого пробрасывать будешь)>

iptables -t nat -A PREROUTING -d <адрес назнаения (сервера, т.е. куда пришел пакет)> -p tcp(udp) --dport <порт на котрый пришел пакет> -j DNAT --to-destination <ip_клиента>:<порт>

А так же надо включить форвардинг пакетов
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -s <внешний ип сервера> -j ACCEPT
iptables -A FORWARD -s <внутренний ип сервера> -j ACCEPT
И разрешить прохождение пакетов между сетевыми картами в ядре
echo 1 > "/proc/sys/net/ipv4/ip_forward"


"Linux NAT на одну машину."
Отправлено PavelR , 28-Авг-10 09:50 
>>стоит сервер centos 5.5. NAT не настроен, возникла такая необходимость - прокинуть
>>нат на одну из машин, пожалуйста помогите по шагам + как
>>сделать нат 1 в 1 то есть что все порты с
>>одно IP (Сервера) перекидывались на клиента.
>
>Вообще тебе надо SNAT/DNAT посмотреть, наверно как-то вот наподобие этого
>iptables -t nat -A POSTROUTING -s <адрес источника(клиента)> -p tcp(udp) --dport <порт назначения> -j SNAT --to <адрес назначения(сервера, с которого пробрасывать будешь)>

некорректно. Это не фряха, не тяните в линукс ipfw, в линухе другие принципы.

>
>iptables -t nat -A PREROUTING -d <адрес назнаения (сервера, т.е. куда пришел пакет)> -p tcp(udp) --dport <порт на котрый пришел пакет> -j DNAT --to-destination <ip_клиента>:<порт>

примерно так :-)

>А так же надо включить форвардинг пакетов
>iptables -A FORWARD -i lo -j ACCEPT
>iptables -A FORWARD -s <внешний ип сервера> -j ACCEPT
>iptables -A FORWARD -s <внутренний ип сервера> -j ACCEPT

Это не "включить форвардинг пакетов", это разрешить прохождение пакетов в файрволле,
причем (1) вообще чушь, а 2 и 3 надо добавлять в нужное место в файрволле, -А добавит в конец, и правила могут не срабывать.

>И разрешить прохождение пакетов между сетевыми картами в ядре
>echo 1 > "/proc/sys/net/ipv4/ip_forward"

А вот это и есть "включить форвардинг пакетов".


"Linux NAT на одну машину."
Отправлено psix , 28-Авг-10 14:05 
>[оверквотинг удален]
>
>Это не "включить форвардинг пакетов", это разрешить прохождение пакетов в файрволле,
>причем (1) вообще чушь, а 2 и 3 надо добавлять в нужное
>место в файрволле, -А добавит в конец, и правила могут не
>срабывать.
>
>>И разрешить прохождение пакетов между сетевыми картами в ядре
>>echo 1 > "/proc/sys/net/ipv4/ip_forward"
>
>А вот это и есть "включить форвардинг пакетов".

Так как все таки правильнее ? :) И зачем опция -d ? Мне надо передавать все порты.
Про /proc/sys/net/ipv4/ip_forward помню, спасибо.


"Linux NAT на одну машину."
Отправлено reader , 28-Авг-10 15:20 
>[оверквотинг удален]
>>срабывать.
>>
>>>И разрешить прохождение пакетов между сетевыми картами в ядре
>>>echo 1 > "/proc/sys/net/ipv4/ip_forward"
>>
>>А вот это и есть "включить форвардинг пакетов".
>
>Так как все таки правильнее ? :) И зачем опция -d ?
>Мне надо передавать все порты.
>Про /proc/sys/net/ipv4/ip_forward помню, спасибо.

правильно как всегда в документации
http://www.opennet.me/docs/RUS/iptables/#DNATTARGET

но пробрасывать лучше не в локалку , а в DMZ
http://www.opennet.me/openforum/vsluhforumID1/89679.html#6