Есть провайдер, который раздаёт пул адресов, пусть будет 10.20.30.0-10.20.30.254 (10.20.30.1 шлюз соответственно). Он их не раздаёт по dhcp, их нужно прописывать руками на пк.
Поправил пост:
В тексте ip провайдера - это подсеть которую выделяет провайдер, но это не внешние ip адреса, тут я для простоты писал, ввёл возможно в заблуждение. Да, эти ip серые, но это не так важно
Есть сервер на debian, интернет шлюз в своём роде, с двумя физическими сетевыми картами eth1 и eth2. На eth2 настроены несколько подсетей (10.0.2.0/24 и 10.0.3.0/24), нужны для локальной сети, возможно доступа к файлам на сервере.
Какие произести настройки, что бы на машинах, которые находятся в локальной сети был доступ как до сервера так и интернет от ip который выдал провайдер? На каждую машину нужно присвоить отдельный ip провайдера + дать доступ до локальной сети.
Мне удалось через SNAT и прописыванием ip провайдера в интерфейсе eth1 дать доступ в интернет например всей подсети 10.0.2.0/24, они могут выходить через один ip провайдера. Ну и таким же образом я могу дать второй подсети 10.0.3.0/24 доступ в интернет через другой ip.
А нужно чтобы каждый отдельный ПК выходил через отдельный ip провайдера, какой - совершенно не важно, присвоить любой можно.
На сервере установлены netplan, isc-dhcp-server. Порт форвардинг включен.
Читал про proxy arp и bridge, но так и не понял какой подход лучше да и вообще, какой рабочий, не получается настроить. Неужели придётся каждый ip провайдера прописывать в интерфейсе а потом в iptables прописывать правило?)
За любую помощь буду очень благодарен :)
Остаётся вопрос с интонациями офигения: а зачем каждому компьютеру персональный внешний IP?!
И во-вторых, доступ нужен только наружу, или из Интернета на каждый IP тоже должно работать?
AUser0, извините, я не совсем верно выразился в вопросе.
Конечно это не совсем "внешние" ip, точнее не внешние точно)
Но их раздаёт провайдер, как и в других образовательных организациях.
Нужно это для авторизации через госуслуги в системе ЕСИА админ персонала в организации.
Если я всех пущу через один ip, который выдал провайдер и если кто-то в моей сети авторизируется через госулуги, то автоматом сохраняется сессия на этом ip адресе и получается все пользуются свободным доступом, пока сессию не завешат или она сама не закроется.
Внешний доступ из интернета меня не сильно волнует, у провайдера криптошлюз стоит и тд, надеюсь заморочились. Да и честно говоря, если другого выхода нет, то мне всё равно. Это к сожалению никого не волнует, нужно просто организовать доступ с одельными ip, ну и чтоб всё работало как и прежде, мне надо ещё дать доступ до своей локальной сети
> Если я всех пущу через один ip, который выдал провайдер и если кто-то в моей сети авторизируется через госулуги, то автоматом сохраняется сессия на этом ip адресе и получается все пользуются свободным доступом, пока сессию не завешат или она сама не закроется.
Это работает по-другому. IP тут не при чем. Вы можете в этом легко убедиться, открыв госуслуги и затем открыв их еще раз с того же компа и даже браузера, но в режиме инкогнито. Для понимания, гуглить по слову куки
DeNick, в корне неверное понимание доступа к ГосУслугам (и всем другим сайтам). Авторизация делается не для IP-адреса, а для одного конкретного браузера. И IP ничего не рулит.
Думаете если пользователи 98% всех региональных провайдеров ходят в Интернет с одного провайдерского IP, то и на ГосУслугах они все сидят под одной фамилией?! Неа!
mureevms, это совершенно не важно, пока сессия не разорвалась - другие пк в локальной сети могут выходить свободно в интернет, без авторизации, потому что кто-то уже авторизировался. Потому что все они выходят по сути через один ip, который прописан статически на сервере.
Проблема в этом. Это решается только присваиванием разных ip, которые и выдал провайдер. Не зря он целую подсеть выделяет
DeNick, Именно это и имеет значение. Вы развиваете идею не в ту сторону. Либо же чего-то важного не сказали. Повторю, авторизация на сайтах работает не по IP, а при помощи кук.
> Есть провайдер, который раздаёт пул адресов, пусть будет 10.20.30.0-10.20.30.254 (10.20.30.1 шлюз соответственно). Он их не раздаёт по dhcp, их нужно прописывать руками на пк.
Вот тут еще сомнительное описание. Скажите подсеть которую провайдер вам выдает, сдается мне, что она серая и задача не верно истолкована. Явное противоречие или не правильное описание
mureevms, в комментах отписал и в посте поправил. Да, это не белые ip, выразился так для удобства. Я не думал что это нужная информация, она не важна в принципе, хоть они внешние, хоть нет.
AUser0, В данном случае, хоть и все на меня накинулись, что авторизация не так работает и тому подобное. Я разочарую вас, я в курсе как она работает. Я в курсе про куки...
Тут совсем другой случай, наверно меня не могут понять.
Я пояснял, что эти ip нужны для того чтобы выходить в интернет, как это не странно. Ноо, с помощью них можно выходить как одной категории людей (с помощью прокси, будет контектная фильтрация), так и другой категории людей, тот самый админ персонал. Только чтоб им выйти в интернет, у них в браузере высвечивается страница с кнопкой авторизации, при нажатии вас перекинет на страницу ЕСИА, логин через госулуги. Без авторизации вас не пустит в интернет, либо авторизация, либо прокси.
Опять же есть НО.
ПК1 авторизируется в этой системе, ПК2 в этой же локальной сети просто заходит в браузер - и он свободно попадает в интернет, без авторизации, без прокси и тд. Если зайти по ссылке на страницу авторизации на ПК2, где должна быть кнопка, то напишет, что мы авторизированы, хоия должно быть предложение авторизироваться.
У ПК общая локальная сеть 10.0.2.x, а выходят они через серый ip провайдера который прописан на моём сервере на интерфейсе eth1
То есть, здесь в данном случае, идёт привязка на аппаратном уровне, где-то на железе провайдера. Это Ростелеком, они сейчас тесно с гос структурами переплетены. Во всех образовательных организациях сейчас так, я не первый. Просто почитайте что такое ЕСПД
DeNick, *facepalm*
Вижу, что вас учить - только портить. Спросите у себя... А, нет, спросите у адекватного человека с опытом, которому наконец поверите, как же несколько человек могут авторизоваться на один сайт (ГосУслуги, или онлайн-банкинг) через один и тот же прокси, и ничего у них не портится.
DeNick, я правильно понял, что для выхода в интернет пользователь проходит авторизацию черег Госуслуги, а провайдет привязывает эту сессию к IP машины?
Если да, напишу как пробросить IPшники в локалку. Только не уверен, можно ли при такой схеме заюзать DHCP, но вы вроде как все-равно руками назначаете
AUser0, я вижу что вы совсем не понимаете контекста. Вопрос то совсем не в госуслугах был, вы упёрлись в это и стоите на своём. Хорошо, я дальше попробую объяснить. Дело то не в том, что один пользователь авторизируется, а другой со своего компа может увидеть его данные, вовсе нет, другой просто может сидеть в интернете, так как авторизация была на данном ip. https://espd.wifi.rt.ru/filtering/disable
Возможно хоть это даст вам понять, о чём я
mureevms,
Хоть это к вопросу уже не имеет никакого отношения, вот. https://espd.wifi.rt.ru/filtering/disable
Если что, там пункты с авторизацией есть.
Там просит войти в систему ЕСИА, но да, используются госуслуги. Эта самая авторизация привязывается к серому ip, который выдал провайдер, кто бы и что мне тут не писал и не доказывал про куки и прочее)
Мы имеем:
Маршрут у провайдера на выданные вам адреса выдаются по маске 24?
Таакс.Получается вам выдан тырнет в один широковещательный домен.
Провайдера втыкаете в свою локалку, и назначаете всем компам вторичный адрес на интерфейсе - айпишник из подсети провайдера, а шлюз тот который выдан провайдером.
Всё. У всех все работает. И локалка и собственный внешний IP.
NAT - это уже горождение SNAT и т.д.,
Если хотите NAT то пожалуйста. НО я бы не городил NAT там где не надо.
NAT тут нужен только если вы совсем не доверяете провайдеру, и боитесь, что он себе пропишет на интерфейсе айпишник вашей подсети и увидит ваши локальные ресурсы. Но мне кажется ему это нафиг не нужно.
В общем - лучше файрвол настроить на рабочих станциях так, чтобы доступ в ваше локалку имели только компы с локалки. Чтобы сделать централизованно, можно через Ansible например.
DeNick, Ну, тут либо устройств, которым нужен интернет, меньше 254, тогда можно каждому назначить непосредственно IP от провайдера, либо их больше, и тогда всё равно не сделать выделение адресов 1:1.
Rsa97, скорее всего пойду путём прописывания всех 254 адресов на eth1 и прокидыванием каждого в SNAT, как и советовал @dronmaxman
Типа -A POSTROUTING -t nat eth1 -s ip в локалке -j SNAT --to-source ip от провайдера.
Через мост я так и не понял как настроить, тут знаний не хватает, я не спорю
DeNick, бридж - это тупо объединение двух интерфейсов в один. Адрес уже назначается не на интерфейс а на бридж.
Грубо говоря двухпортовый, свитч получается.
А на рабочих станциях ставишь 2 айпишника.
Если рабочие станции на линуксе -
ip addr add адрес.полученный.от.провайдера/255.255.255.0 dev eth0
ip addr add адрес.внутри.вашей.локалки/255.255.255.0 dev eth0
ip route add default via адрес.шлюза.провайдера dev eth0
Ну а в винде тоже можно больше одного айпишника вешать на интерфейс. Вообще не проблема.
ещё некоторым пользователям нужно выходить через телефоны или планшеты в интернет
А их как НАТить будешь? Тут уже тогда проще один айпишник роутеру дать, как рабочей станции, но тогда опять же - один через госуслуги авторизуется, все получат доступ.
Талян, добавил в eth1 весь список адресов от провайдера, прям все 254 адреса (пусть будет 2.2.2x), ну и такой же длиннющий список добавил в iptables)
Только в iptables прокидывал с локального ip на ip провайдера. В общем указал всё прям явно.
-A POSTROUTING -t nat eth1 -s 1.1.1.1 -j SNAT --to-source 2.2.2.2
-A POSTROUTING -t nat eth1 -s 1.1.1.2 -j SNAT --to-source 2.2.2.3
Ну и так до конца. Как-то так)
Костыль до ужаса, как мне кажется. Но мне не оставили другого выхода.
Так а смысл от бриджа тогда?) Если там вешается 1 ip на этот бридж, тоже самое получается, нет привязки комп - ip провайдера. Я вот понимаю что их можно было бы по dhcp раздать на том же роутере. Или с сервера тоже можно будет раздать по dhcp эти адреса провайдера, когда бридж используется?
Просто если не бридж, то на каком-то одном интерфейсе делаешь подсеть свою локальную и её раздаёшь. Ну и конечно не на каком-то одном интерфейсе, а на конкретном, который в локалку смотрит.
А бридж получается позволит в обе стороны смотреть этим двум интефейсам?
Талян, по ходу дошло до меня)
Когда сказал про двухпортовый свитч.
Типа на бридж можно повесить и ip провайдера и мои локальные? И потом по dhcp выдавать нужные? Да, кому нужен интернет без фильтров, у того ip конечно не локальный будет, но дотянуться то я до локалки смогу по сути
DeNick, да, верно. Дальше работаешь уже не с инттерфейсами eth0 eth1 а с bridge0 и хоть скока на него айпишников лепишь, но все то туда зачем? Айпишники провайдера на компы назначаются а не на бридж серваку. Ему то они нафига все? Разве не в том был смысл, чтобы у всех были разные айпи?
Талян, все ip я назначил eth1,бриджа сейчас нет.
Если все ip не присвоить интерфейсу, то правило в iptables не работает. Нужно явно прописывать везде всё
DeNick, вот я как раз ставил нат в такой ситуации, но не потому, что это требовалось, а вопреки. Дело в том, что ростелеком выпускал непривилегированные айпи через прокси по белому списку на домены 4-5 уровня, т.е. на поиск яндекса пускал, а вот на страницу с результатами уже нет. Ну, большие спецы у нас в провайдерах работают, особенно по госпрограммам.
По дефолту тебе можно отключить второй интерфейс на роутере, дать ему любой айпишник из подсети и включить DHCP. По макам привязать привилегированные компы, остальные -кому что достанется. Всё. По безопастности, ну такое, но так задумано ростелекомом. Если это тебя не устраивает - ставь свой прокси. Никакого ната не предусмотрено, как и никакой маршрутизации.
Или спрячь всех за натом и юзай один айпи из выданных, как настроил я в одной из школ. Или, как в другой, не отказались от старого провайдера, оплачивая его из родительских денег, а к ростелекому подключили несколько старых компов у директора-завуча, для сдачи отчётности.
Два варианта
- bridge
- Неужели придётся каждый внешний ip прописывать в интерфейсе а потом в iptables прописывать правило?)
Второй вариант более правильный с точки зрения безопасности, т.к. при использовании bridge белый адрес будет назначаться непосредственно на ПК, соответственно ПК станет уязвим из интернета.
Обычно, когда вы арендуете целиком подсеть, то у вас есть эта подсеть + еще какой-то белый адрес не из этой подсети, который выдается оператором для внешнего интерфейса и через который будет происходить маршрутизация вашей подсети оператором. Соответственно на шлюз на внешний интерфейс вешается этот отдельный адрес, а в локальной сети назначаете адреса из подсети (статически или через DHCP). Т.е. все то же самое, как и при использовании серых адресов, только в случае с серыми адресами подсети их вам никто не выдает (выбираете любой диапазон по собственному усмотрению) и вы обязаны использовать NAT для выхода в интернет.
Если же у вас только подсеть, то используйте ответ Andrey Barbolin
Вариант в целом рабочий, но тогда не будет своей подсети, а только от провайдера. К тому же, она не будет прикрыта шлюзом, что в целом плохо для безопасности, мы же не знаем, что там дальше у провайдера. Я бы использовал шлюз
mureevms, так Вы хотите напрямую выставить через свой шлюз ПК к провайдеру...)))
либо делайте NAT на каждый ПК в сети, типо соопставление IP>IP
типо ПК с таким то адресом, должен уходить через такой то шлюз (подставить нужный IP)