LINUX.ORG.RU
ФорумAdmin

Шлюз между двумя сетями.

 ,


0

1

Добрый вечер! Я начинающий админ, и прошу помощи. Передо мной стоит неразрешимая для меня задача: на предприятии имеются две сети, 192.168.1.X и 192.168.10.X. В сети 192.168.1.X имеется компьютер, на который мне нужно сделать доступ из сети 192.168.10.X, т. е. необходим шлюз, который позволит не соеденить две сети (так как это ни под каким предлогом мне не позволят сделать), а просто открыть между двумя сетями так сказать «проход», для одного IP-адреса, и одного порта, чтобы пользователь из сети 192.168.10.X мог ввести у себя в браузере, скажем, 192.168.1.108:3000, и попасть в другую сеть, но только на один IP-адрес и по одному разрешенному порту. Нагуглил, что нужно копать в сторону iptables, но не пойму никак, что именно искать по нему. Очень прошу, подскажите в какую сторону следует копать. По моему представлению это должен быть компьютер с двумя сетевыми интерфейсами, смотрящими в обе сети, но что делать дальше - я не представляю. Буду очень благодарен за любую помощь.

Между сетями должен быть маршрутизатор, чтобы адресные пространства обеих сетей видели друг друга и могли посредством маршрутной информации о данных сетях на нем. Они ведь должны знать, куда слать пакеты для той или иной сети, к которой принадлежит компьютер. И вот уже посредством этого маршрутизатора(если у него имеются функции файервола), вы можете теоретически фильтровать трафик(настраивать правила, например для конкретных портов и адресов).

ChAnton ★★
()
Ответ на: комментарий от ChAnton

Спасибо! Не посоветуете ли, какой программный маршрутизатор я могу поднять на машине с двумя сетевыми картами? Очень хотелось бы, чтобы по нему было много доступной документации. Я пробовал это сделать с помощью роутера (DIR-100), но у меня не вышло. Возможно получится с помощью программного маршрутизатора на Linux.

Sidikhin
() автор топика
Ответ на: комментарий от Sidikhin

Так точно! Две сетевухи, echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward (путь уточни автодополнением - мне сейчас негде проверить, я с телефона)
Далее с помощью iptables

aol ★★★★★
()
Ответ на: комментарий от masz

Нет, я думал об этом, но периодически сразу несколько пользователей из сети 192.168.10.X будут заходить на IP-адрес 192.168.1.108:3000, а это связано с протяжкой новых кабелей и установкой сетевых карт, чего не очень хотелось бы. Вот я и подумал, что возможно было бы создать что-то наподобие шлюза между двумя сетями.

Sidikhin
() автор топика
Ответ на: комментарий от masz

Если возможно, поподробнее расскажите, пожалуйста. А то я не совсем понял как это сделать, извините.

Sidikhin
() автор топика
Ответ на: комментарий от Sidikhin

Если у вас не вышло на роутере dir100, то с большей вероятностью и тем более не выйдет на linux. Вам надо подучить основы постороения сетей.

ChAnton ★★
()
Ответ на: комментарий от Sidikhin

А если по-существу, то для вашей задачи будет достаточно штатных средств linux, которая и так является программным маршрутизатором изначально: Используйте статическую маршрутизацию linux и файервол iptables.

ChAnton ★★
()
Ответ на: комментарий от masz

Одна сеть, 192.168.10.X с домен-контроллером на винде, 192.168.1.X - одноранговая сеть. Нужно сделать из первой доступ во вторую, но только на один IP. Сейчас удается, с помощью того же DIR-300 соединить две сети, из одной становится видна другая. Но это как раз не требуется, нужен просто доступ в нее, на один адрес.

Sidikhin
() автор топика

Если я сделаю например так (нашел на одном форуме):

Советуют использовать FreeBSD.

Один интерфейс 192.168.10.188 другой 192.168.1.105

В rc.conf прописал gateway_enabled=«YES»

То таким образом у меня получится сделать мост между двумя сетями, и потом следует закрыть все, кроме одного IP-адреса и дного порта. Я правильно понял, или снова ошибся?

Sidikhin
() автор топика
Ответ на: комментарий от Sidikhin

Какая разница на чем делать в вашем случае? Вам все равно придется настраивать сначала маршрутизацию между сетями средствами маршрутизатора(не важно какого), затем уже настраивать необходимые условия доступа при помощи правил фильтра файервола(который насколько я помню в коробочке dir100 должен быть по-умолчанию). PS: По iptables читайте все с самого начала-там не так много, но все нужно. Но вопрос в том, что не имея базовых знаний о строении сетей и не понимая элементарных правил их взаимодействия вам чтение про iptables врядли сильно поможет.

ChAnton ★★
()
Ответ на: комментарий от zolden

Если только фильтровать на месте назначение теоретически. Тогда да, можно. Но тут автор имеет ввиду фильтрацию на границе сетей.

ChAnton ★★
()
Ответ на: комментарий от ChAnton

Но тут автор имеет ввиду

Автор не знает что ему нужно, у него есть лишь фантазии на тему как решить задачу
Без нормального ТЗ и топологии мы тоже можем лишь гадать и перебирать варианты

zolden ★★★★★
()
Ответ на: комментарий от Sidikhin

Правильно, но вместо этого вероятно лучше открыть один маршрут для двух хостов/подсетей посредством команды route (или записи в настройках одного из двух интерфейсов, соединяющих эти подсети), чтобы потом в iptables закрывать меньше пришлось.

backbone ★★★★★
()

Вот попытался нарисовать схему (прошу не пинать ногами за рисунок, сделано на оффтопике):

http://i.imgur.com/Hp1NRRg.png

Надо сделать так, чтобы из сети 192.168.1.X был доступен DVR (видеорегистратор), но при этом сети не объединялись, не были видны одна из другой, и не появлялось бы проблем с трафиком (так как в обоих сетях свой отдельный доступ в интернет, и менять ничего не нужно), DHCP и прочим. Нужно только сделать доступ к DVR в другой сети, на один IP-адрес и один порт. Больше сети никак друг друга видеть не должны.

Sidikhin
() автор топика
Ответ на: комментарий от Sidikhin

на шлюзе пропиши маршрут до 192.168.1.108 и настрой редирект любого порта на 192.168.1.108:3000
для пользователей в сети 192.168.10.Х регистратор будет виден на адрес_шлюза_в_192.168.10.Х:назначенный_порт

zolden ★★★★★
()
Ответ на: комментарий от zolden

С помощью dir-300 я пытался именно так сделать, но не удалось. Так же делал так:

http://i.imgur.com/4mggTom.png

но это привело к соединению двух сетей, со всеми вытекающими.

Не подскажите ли вы, как именно прописать редирект, и с помощью каких приложений? Аналог ли это команды route в винде?

Sidikhin
() автор топика

Вышла ошибка, написал IP-адрес как .280 вместо .180, таких IP-адресов не бывает :D

Sidikhin
() автор топика
Ответ на: комментарий от zolden

Я пробовал эти диры, но не удалось. Я бы в идеале поднял между двумя сетями шлюз с двумя сетевыми картами, смотрящими в обе сети и пускающий из одной во вторую только на один ip-адрес.

Sidikhin
() автор топика
Ответ на: комментарий от Sidikhin

если я правильно тебя понял, то тебе нужен SNAT, который преобразует один IP в другой. в iptables, в таблице FORWARD на компе, который будет шлюзом. Тогда для сервера .10 клиент из .1 будет кагбэ клиентом .10. Кури man iptables, на опеннете есть хорошая дока по-русски.

И да, это уже давно часть Linux ядра.

drBatty ★★
()
Ответ на: комментарий от drBatty

Блин, ребят. Либо я чего то не понял, либо вы тут чушь несете все дружно. Тут можно обойтись одной сетевухой, вланами и свитчем или двумя сетевухами. И в том и другом случае все решается крайне просто. Не помню команду в Линукс дословно, но прописывается маршрут примерно так:

route add <ip_откуда_доступ> 255.255.224.0 <ip_куда_надо_попасть>

После этого должен появится доступ. Если надо открыть доступ только к конкретному порту, то рули фаерволом.

zerropull
()
Ответ на: комментарий от zerropull

Не помню команду в Линукс дословно, но прописывается маршрут примерно так:

типа того. точнее надо

ip r

так советуют грамотные админы с UFO. route дескать УГ мамонта.

Но этот вариант, как я понимаю, НЕ подходит ТСу, ибо свяжет две сети. А ему нужно пробросить один сервер. Это netfilter решает, SNAT'ом. ИМХО.

drBatty ★★
()
Ответ на: комментарий от drBatty

Да, совершенно верно, мне не простят, если я свяжу две сети :D В сеть 192.168.1.X лишь нужен доступ к регистратору 192.168.1.108 по порту 37777 (но с любого компьютера из сети 192.168.10.X). Больше никак одна сеть другую видеть не должна. Итак, Вы говорите, мне нужно реализовать это с помощью SNAT, и читать информацию по iptables. Благодарю за такой совет, попробую это сделать в понедельник.

Sidikhin
() автор топика
Ответ на: комментарий от Sidikhin

Итак, Вы говорите, мне нужно реализовать это с помощью SNAT, и читать информацию по iptables. Благодарю за такой совет, попробую это сделать в понедельник.

ну именно так это и делается ИМХО. Идея в том, что меняется адрес отправителя(обратный адрес) в пакете для установки соединения из 192.168.10.0 на 192.168.1.108, таким образом, что-бы пакет был как-бы из 192.168.1.X. Сервер 108 отвечает в ту же сеть (он и не в курсе, что пакет из 10), и шлюз обратно отсылает. Роутеры также работают, например у меня адрес 192.168.1.6, но сервер ЛОРа уверен, что мой IP 91.xx.xx.xx. Конечно можно использовать и DNAT с маскарадингом, но это сложнее, более ресурсоёмко, и вам не нужно(наверное). Примеры есть в доке. http://www.opennet.ru/docs/RUS/iptables/#SNATTARGET

вот тут http://www.opennet.ru/docs/RUS/iptables/misc/iptables-tutorial/scripts/rc.fir... есть сами примеры, правда для шлюза Сеть → локалка. Но принцип там тот же самый.

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.