есть локалка на виндовых машинах
есть комп с нт40сервер-допустим с внутренним ip 192.168.100.123
есть гейт с линуксом
подскажите плиз где и чего и как надо написать, чтобы, минимальными усилиями, при обращении к IP гейта и определенному порту оно перенаправлялось на внутренний ip 192.168.100.123 на тот же порт.
p.s. как же это я..
линукс собственно таковой:
RHL Release 6.2
Kern. 2.2.14-5.0 on an i586
>есть локалка на виндовых машинах
>есть комп с нт40сервер-допустим с внутренним ip 192.168.100.123
>есть гейт с линуксом
>подскажите плиз где и чего и как надо написать, чтобы, минимальными усилиями,
>при обращении к IP гейта и определенному порту оно перенаправлялось на
>внутренний ip 192.168.100.123 на тот же порт.Пишу по памяти, так что может где ошибка будет...
/usr/sbin/iptables -t nat -A POSTROUTING -s <linux> -j SNAT --to-source <target IP>/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d <linux IP> --dport <linux port> -j DNAT --to-destination <target IP>:<target port>
>Пишу по памяти, так что может где ошибка будет...>/usr/sbin/iptables -t nat -A POSTROUTING -s <linux> -j SNAT --to-source <target IP>
>/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d <linux IP> --dport <linux port> -j DNAT --to-destination <target IP>:<target port>
последний вопрос: под <linux> и <linux IP> следует понимать внутренний ip типа 192.168.100.хх или внешний - 194.186.хх.хх ?
и еще куда это все записывать, чтоб загружалось после перезагруза ?
ps / простите плз за ламерство (я только учусь) :)
А разве iptables в 6.2 уже были? ну да ладно...>>Пишу по памяти, так что может где ошибка будет...
>
>>/usr/sbin/iptables -t nat -A POSTROUTING -s <linux> -j SNAT --to-source <target IP>
>
>>/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d <linux IP> --dport <linux port> -j DNAT --to-destination <target IP>:<target port>
>
>последний вопрос: под <linux> и <linux IP> следует понимать внутренний ip типа 192.168.100.хх или внешний - 194.186.хх.хх ?рискую ошибиться - с iptables не работал, но идея везде одна и та же, так что:
<linux IP> - 194.186.хх.хх - внешний адрес линуксового гейта - видится из инет
<linux> - 192.168.100.хх - внутренний адрес линуксового гейта - видится напрямую из вашей локалки
<target IP> - адрес компа в локалке, на который надо пробрасывать соединение, пришедшее из инет на определенный порт линуксового гейта, причем соединение будет пробрасываться , с <linux port> гейта на <target port> компа в локалке.>и еще куда это все записывать, чтоб загружалось после перезагруза ?
>ps / простите плз за ламерство (я только учусь) :)вот это уже точно:
посмотри /etc/sysconfig/iptables
если нет такого файла - идем и изучаем скрипт /etc/init.d/iptables и смотрим (связанное со start) откуда он эти правила берет (скорей всего оттуда, откуда я и сказал - значение переменной IP_TABLES_CONFIG в самом начале скрипта, но с 6.2 многое могло поменяться, так что лучше все-таки изучи скрипт). После этого создаем нужный файл (если его не было) и записываем туда свои правила.
Перезагружаем комп, даем iptables -L и убеждаемся, что в ядро загружены именно те правила, которые мы прописали в файле.
>последний вопрос: под <linux> и <linux IP> следует понимать внутренний ip типа 192.168.100.хх или внешний - 194.186.хх.хх ?
>и еще куда это все записывать, чтоб загружалось после перезагруза ?
>ps / простите плз за ламерство (я только учусь) :)<Linux> и <linux IP> есть собсна одно и тоже, просто во втором случае я написал linux IP чтобы разделить где ip линуха, а где порт. Адрес всегда один и тот же - тот на который будет приходить запрос.
То есть если запрос надо перенаправить с ip 212.x.x.x и порт XXX на адрес (к примеру) 192.168.0.21 и порт XXX. То ip 212.x.x.x это linux и linux IP, а 192.168.0.21 это target ip.
Загружать можно из отдельно скрипта, по вызову из, например, /etc/rc.d/rc.local Например скриптом fw.start