bNet Опубликовано 10 декабря, 2009 · Жалоба OS FreeBSD 8 задача такая, если пользователи локалки обращаются к серверу на определенный порт, нужно чтобы их запросы перенаправлялись на другой комп в той-же локалке, тоесть, при запросе на ІР сервера (192.168.0.1), по порту 9770, сервер перекидывал их на комп 192.168.0.2 на порт 9770 на сколько я знаю, это не реально, хоть и не понимаю почему :) я прописал так /etc/pf.conf: rdr on vr0 proto tcp from any to 192.168.0.1 port 9770 -> 192.168.0.2 ...что естественно не работает.. могут быть варианты сделать такой проброс? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 10 декабря, 2009 · Жалоба Не знаю, как в фре, в линупсе делается так: iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --d-port 9770 -j DNAT --to-destination 192.168.0.2:9770 Ключевое слово - DNAT. Странно, гугль по этому поводу молчит. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bNet Опубликовано 10 декабря, 2009 · Жалоба вот именно, гугль молчит... и в примерах по pf.conf такого не встречал... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Дегтярев Илья Опубликовано 11 декабря, 2009 · Жалоба Так как сервер сидит не за шлюзом, а рядом, надо как то пакеты от сервера возвращать через шлюз. Например для 192.168.0.2 прописать шлюзом по умолчанию 192.168.0.1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 11 декабря, 2009 · Жалоба Дегтярев Илья, а сфигали 192.168.0.2 будет принимать пакеты, в которых чужой destination? Надо натить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
trace Опубликовано 11 декабря, 2009 · Жалоба мы для такой задачи использовали tcppm Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bNet Опубликовано 11 декабря, 2009 · Жалоба а можно конкретно с примером? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 11 декабря, 2009 · Жалоба Не знаю, какая задача, но можно использовать port-proxy Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bNet Опубликовано 11 декабря, 2009 · Жалоба задача такая: раньше по адресу 192.168.0.1 был сервер на Win 2003, и на нем стоял сервер чата (порт 9740). Теперь по адресу 192.168.0.1, находится шлюз на FreeBSD, а сервер чата перенесен на адрес 192.168.0.2, порт тот-же. проблемма в том, что у пользователей чат настроен по ІР адресу, а не по ДНС имени, и чтобы не бегать ко всем, пользователя, и не менять вручную адреса чата, я хочу чтобы сервер сам их перебрасывал Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Дегтярев Илья Опубликовано 11 декабря, 2009 (изменено) · Жалоба Дегтярев Илья,а сфигали 192.168.0.2 будет принимать пакеты, в которых чужой destination? Надо натить. Очевидно, что на 192.168.0.1 настроен dnat этого порта. Для получения ответа адрес в пакете нужно поменять назад. Можно вообще без ната, подняв .1 на лупбеке на втором компе. На настройщем .1 пакеты до нужного порта отроутить на .2, который увидев свой адрес (хоть и на лупбеке) корректно обработает пакет и правильно ответит. Изменено 11 декабря, 2009 пользователем Дегтярев Илья Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 12 декабря, 2009 · Жалоба Дегтярев Илья,а сфигали 192.168.0.2 будет принимать пакеты, в которых чужой destination? Надо натить. Очевидно, что на 192.168.0.1 настроен dnat этого порта. Очевидно, что товарищ как раз и пытается его настроить ;).Вариант с лупбеком мне лично как-то не нравится. Слишком костыльно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vIv Опубликовано 14 декабря, 2009 · Жалоба OS FreeBSD 8задача такая, если пользователи локалки обращаются к серверу на определенный порт, нужно чтобы их запросы перенаправлялись на другой комп в той-же локалке, тоесть, при запросе на ІР сервера (192.168.0.1), по порту 9770, сервер перекидывал их на комп 192.168.0.2 на порт 9770 Я делал это через inetd, но по памяти синтаксис не напишу, но суть такая:порт должен быть описан в services в inetd.conf пишешь что-то типа: port9770 ... ... ... socket 192.168.0.2 9770 Посмотри man socket как его вызывать Но учти, что для принимающего сервера IP адреса клиентов заменятся на адрес компа с inetd Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 24 декабря, 2009 · Жалоба Ламеры :) НАТ нада делать и рдр потом. В рускоязычном мануале по ПФ есть пример такой реализации. C.2.1.6.4.4. RDR в комбинации с NAT И наконец, в комбинации с правилом NAT можно достичь того, что трансляция адресов источника так же будет осуществляться и соединение будет устанавливаться ожидаемым образом. rdr on $int_if proto tcp from $int_net to $ext_if port 80 -> $server no nat on $int_if proto tcp from $int_if to $int_net nat on $int_if proto tcp from $int_net to $server port 80 -> $int_if Эти правила приведут к тому, что первый пакет поступивший от клиента будет заново транслирован, когда будет отправлен через внутренний интерфейс, при этом у него будет подменён адрес источника на внутренний адрес шлюза. Внутренний сервер ответит шлюзу, который вернёт адреса обратно благодаря NAT и RDR трансляциям и пакет отправится к клиенту. Это достаточно сложный приём. Нужна осторожность, чтобы не применить правила NAT к другому трафику, например к внешним соединениям (прошедшим через другие правила rdr) или к соединениям самого шлюза. Так же имейте ввиду, что это преобразование приводит к тому, что TCP/IP стек видит данные пакеты, полученные внутренним интерфейсом, как направляющиеся внутрь сети. Авторы документации к пакетному фильтру рекомендуют в общем случае использовать какое-нибудь из предыдущих решений вместо последнего. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
disappointed Опубликовано 27 декабря, 2009 · Жалоба сам во фре слабо шарю, нашёл пример который кидал знакомый в аську, задача была та же /etc/inetd.conf http stream tcp nowait root /usr/local/bin/socket socket 192.168.6.2 80 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Kuzmich Опубликовано 29 декабря, 2009 · Жалоба сам во фре слабо шарю, нашёл пример который кидал знакомый в аську, задача была та же /etc/inetd.conf http stream tcp nowait root /usr/local/bin/socket socket 192.168.6.2 80 Тогда уж rinetd поставить. Он хоть процесс на каждый коннект запускать не будет. Однако у такого способа есть минус - скрывается IP-адрес абонента, без которого трудновато будет "банить". P.S. Для любого севиса должно быть своё имя в DNS. Тогда проблем не будет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...