Здравствуйте уважаемые гуру! Вопрос по форварду...На сервере с Slackware 11.0 две сетевые-eth0 192.168.0.0/24 смотрит внутрь,eth1 (IP от прова-DHCP)наружу. В локалке есть машина(WinXP) пользующая удаленный helpdesk через pcAnynwere. Чел (удаленный)неможет достучаться,просит форвард порта с сервера на локал.машину-порт 5631 (типа). Каким рулесом это сделать?
Почитай man iptables
у тебя должно быть что-то типа
iptables -A FORWARD -p tcp --dport 5631 --addr address_of_winxp -j ACCEPT>Здравствуйте уважаемые гуру! Вопрос по форварду...На сервере с Slackware 11.0 две сетевые-eth0
>192.168.0.0/24 смотрит внутрь,eth1 (IP от прова-DHCP)наружу. В локалке есть машина(WinXP) пользующая
>удаленный helpdesk через pcAnynwere. Чел (удаленный)неможет достучаться,просит форвард порта с сервера
>на локал.машину-порт 5631 (типа). Каким рулесом это сделать?
>Почитай man iptables
>у тебя должно быть что-то типа
>iptables -A FORWARD -p tcp --dport 5631 --addr address_of_winxp -j ACCEPTнихрена, вопрос о форвардинге входящего из инета в лок. сеть с "серыми" адресами. это NAT
наскока я понял
iptables -t nat -A POSTROUTING -i eth0 -o eth1 -j MASQUERADE
уже присутствует?простейшее решение:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 5631 -j DNAT --dnat-to address_of_winxp
грязно тем, что ты не контролируешь dest-адреса пакетов. однако если блока тебе не выделено и стсно у прова нету маршрутов к тебе via address_acquired_via_dhcp, то других ты и не увидишь. если range из которого выделяется адрес известен, то можно подписать -d xx.yy.zz.1-xx.yy.zz.70 (твой range) или -d xx.yy.zz.tt/mask (если круглый и его можно описать маской)
чистое решение - прикручивать скрипт к dhcp, кот. по факту получения адреса добавит правило в файрвол с точным адресом сервера.>>Здравствуйте уважаемые гуру! Вопрос по форварду...На сервере с Slackware 11.0 две сетевые-eth0
>>192.168.0.0/24 смотрит внутрь,eth1 (IP от прова-DHCP)наружу. В локалке есть машина(WinXP) пользующая
>>удаленный helpdesk через pcAnynwere. Чел (удаленный)неможет достучаться,просит форвард порта с сервера
>>на локал.машину-порт 5631 (типа). Каким рулесом это сделать?\^P^/
>>Почитай man iptables
>>у тебя должно быть что-то типа
>>iptables -A FORWARD -p tcp --dport 5631 --addr address_of_winxp -j ACCEPT
>
>нихрена, вопрос о форвардинге входящего из инета в лок. сеть с "серыми"
>адресами. это NAT
>
>наскока я понял
>iptables -t nat -A POSTROUTING -i eth0 -o eth1 -j MASQUERADE
>уже присутствует?
>
>простейшее решение:
>iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 5631 -j
>DNAT --dnat-to address_of_winxp
>грязно тем, что ты не контролируешь dest-адреса пакетов. однако если блока тебе
>не выделено и стсно у прова нету маршрутов к тебе via
>address_acquired_via_dhcp, то других ты и не увидишь. если range из которого
>выделяется адрес известен, то можно подписать -d xx.yy.zz.1-xx.yy.zz.70 (твой range) или
>-d xx.yy.zz.tt/mask (если круглый и его можно описать маской)
>чистое решение - прикручивать скрипт к dhcp, кот. по факту получения адреса
>добавит правило в файрвол с точным адресом сервера.
>
вот моя строчка вкл.маскарад:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
IP арендованный(типа он наш, но не статический ). "удаленный" я так понял зная внешний IP стучится на порт 5631 и падает (форвард)на локал.адрес
>>простейшее решение:
>>iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 5631 -j
>>DNAT --dnat-to address_of_winxp
>>грязно тем, что ты не контролируешь dest-адреса пакетов. однако если блока тебе
>>не выделено и стсно у прова нету маршрутов к тебе via
>>address_acquired_via_dhcp, то других ты и не увидишь. если range из которого
>>выделяется адрес известен, то можно подписать -d xx.yy.zz.1-xx.yy.zz.70 (твой range) или
>>-d xx.yy.zz.tt/mask (если круглый и его можно описать маской)
>>чистое решение - прикручивать скрипт к dhcp, кот. по факту получения адреса
>>добавит правило в файрвол с точным адресом сервера.
>>
>вот моя строчка вкл.маскарад:
>iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
>IP арендованный(типа он наш, но не статический ). "удаленный" я так понял
>зная внешний IP стучится на порт 5631 и падает (форвард)на локал.адрес
в какой момент этот "нестатический" адрес становится известен? его dhcpcd получает?
если да, то там кажись скрипт можно прикрутить чтоб пускался по факту получетия адреса и передавал в кач-ве аргумента адрес. тогда из этого скрипта можно буде написать что-то вроде:
iptables -t nat -A PREROUTING -i eth1 -d "$1" -p tcp --dport 5631 -j DNAT --dnat-to address_of_winxp
(эт если в кач-ве $1 передается адрес)
для "чистоты" решения прикручивается скрипт вызываемый из dhcpcd в момент освобождения адреса, который эту строчку удаляет.или, как вариант:
создать цепочку
iptables -t nat -N DHCPNAT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 5631 -j DHCPNAT
это при старте машины. а из скрипта вызываемого dhcpcd:
iptables -t nat -F DHCPNAT
iptables -t nat -A DHCPNAT -s "$1" -j DNAT --dnat-to address_of_winxpно все эти навороты скорее "на всякий случай". в твоем случае других пакетов (dest IP != твоему динамическому) к тебе просто не долетит. поэтому самый простой вариант (изначальный) должен работать.
ну и посмотри на всяк. в фильтрах/мангле, не рубится ли такой трафик полисями или еще чем
\^P^/
Спасибо парни!решил проблему просредством "rinetd" "0.0.0.0 5631 192.168.0.x 5631"
Блин все гениальное-просто. Но Ваши ответы помогли с другой залежавшейся задачкой.