|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
Коллеги, Есть задача объединить несколько сетей с неизвестной IP-адресацией внутри VPN-сервера с которым устанавливают соединения маршрутизаторы из каждой сети. Схему можно увидеть на картинке. Техническая составляющая: Transparent Proxy - CentOS 7 Router #X - Дешевые wifi-роутеры умеющие поднимать PPTP + отключено NAT'ирование под сетей Под сети за router'ами могут быть любые и скорее всего они пересекаются. Есть две идеи как это запилить 1) SNAT средствами iptables интерфейсов pppX + обратный маршрут к SNAT'еной сети 2) Тэгирование пакетов в iptables + policy-routing Но реализовать на Transparent Proxy у меня не получилось. Первый способ наиболее приемлем. Вся эта история нужна для выхода пользователей под сетей в интернет, так как на proxy стоит squid работающий в transparent режиме + прикручена авторизация. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2015, 18:45 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
TepKuHПод сети за router'ами могут быть любые и скорее всего они пересекаются.заведомо глюкодром, начните с разводки по разным подсетям, иначе "день сурка" ваше всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 10:02 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
TepKuHотключено NAT'ирование под сетейЗачем? Я бы предложил включить обратно. Тогда пусть хоть все подсети будут одинаковыми. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 10:36 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
Ivan_PisarevskyTepKuHПод сети за router'ами могут быть любые и скорее всего они пересекаются.заведомо глюкодром, начните с разводки по разным подсетям, иначе "день сурка" ваше всё. и это можно в порядок привести. инструмент ставим впн сервер на комп который схематично изображен как прокси. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 10:49 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
miksoftЗачем? Я бы предложил включить обратно. Тогда пусть хоть все подсети будут одинаковыми. потому что в этом случаи, невозможно будет сделать авторизацию на проксе. Ivan_Pisarevsky Зачем? заведомо глюкодром, начните с разводки по разным подсетям, иначе "день сурка" ваше всё. не вижу глюкодрома. Да и сетей, у меня не три, и даже не 200. Привести в порядок вселенную в мои задачи не входит неТолик1 ставим впн сервер на комп который схематично изображен как прокси. У меня там и стоит VPN-сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 17:06 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
TepKuHmiksoftЗачем? Я бы предложил включить обратно. Тогда пусть хоть все подсети будут одинаковыми. потому что в этом случаи, невозможно будет сделать авторизацию на проксе.А какая именно используется авторизация? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 17:26 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
miksoftTepKuHпропущено... потому что в этом случаи, невозможно будет сделать авторизацию на проксе.А какая именно используется авторизация? WEB. Логика в том что если IP-конечного клиента не авторизован его кидает на мою страницу авторизации. Он там ввводит криденшелы, IP заносится в mySQL и прокся пропускает в инет. IP же клиента не обязательно должно быть реальным. Оно может быть за SNAT'чено. Главное что оно уникальное во всей этой сети и уже "приведено в порядок" т.е. без коллизий ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 17:46 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
TepKuHПод сети за router'ами могут быть любые и скорее всего они пересекаются.TepKuHIP же клиента не обязательно должно быть реальным. Оно может быть за SNAT'чено. Главное что оно уникальное во всей этой сети и уже "приведено в порядок" т.е. без коллизий Не понимаю, как сочетаются эти два утверждения. Если некто с адресом 192.168.0.1 успешно авторизовался, то вы его не отличите от другого некто с тем же адресом в другой физической сети. Более того, я не понимаю как вы планируете строить маршрутизацию без NAT-а. Если прокси-сервер (условное название) захочет отправить пакет на адрес 192.168.0.1, то как он будет выяснять, куда именно ему его посылать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 17:52 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
TepKuHWEB. Логика в том что если IP-конечного клиента не авторизован его кидает на мою страницу авторизации. Он там ввводит криденшелыА если это не браузер, а другая программа, которая ничего не знает о вашей самопальной авторизации? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 17:54 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
Человек обязан пройти авторизацию через WEB чтобы получить доступ в инет. Как только он проходит авторизацию выполняется iptables правило (которое со временем протухает и случается его удаление для конкретного IP) которое пропускает "на сквозь" весь сетевой трафик минуя прокси. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 18:15 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
TepKuH, чем городить костыли с таким пониманием предмета, возьмите что-то из этого: https://mohammadthalif.wordpress.com/2010/12/14/list-of-open-source-captive-portal-software-and-network-access-control-nac/ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2015, 22:00 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
Оно примерно и взято. Это раз. Во вторых это не огород. Это штатный способ. Например о нём можно почитать тут. http://habrahabr.ru/post/117320/ Проблема в том, что у меня просто не получается примерно это сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 01:41 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
TepKuH, Не представляю ситуацию, чтобы я применил подобный "штатный способ" В твоём случае такой геморой и вовсе не нужен. Выдели удаленных впн клиентов в отдельную подсеть(и) на впн сервере и ненадо никаких заморочек с SNAT и маркировкой пакетов. создай виртуальный интерфейс на впн сервере, повесь на него прокси сервер. ifconfig eth0:10 10.192.172.1 netmask 255.255.255.0 up примерное правило Transparent Proxy iptables -t nat -A PREROUTING -i tunX -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 холидей ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 14:20 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
неТолик1, Удаленных клиентов овер дофига. Там даже не тысячи людей. А самих сетей несколько сотен. Ну не возможно заставить все подсети следовать опред. адресации. Их после подключения к VPN нужно "приводить в порядок". Всё что вы написали так и сделано + еще пару правил маскарадинга и проброс на squid 443\8080 порта ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 18:39 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
TepKuHнеТолик1, Удаленных клиентов овер дофига. Там даже не тысячи людей. А самих сетей несколько сотен. Ну не возможно заставить все подсети следовать опред. адресации. Именно это я пытался избежать в своём решении выше. TepKuHИх после подключения к VPN нужно "приводить в порядок". Всё что вы написали так и сделано + еще пару правил маскарадинга и проброс на squid 443\8080 порта Вы видимо пытаетесь ограничить доступ к какому-то своему продукту, средствами впн + прокси сервера. для авторУдаленных клиентов овер дофига. Там даже не тысячи людей. такая связка конечно не подойдет. ИМХО. Озвучьте конечную цель. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2015, 19:19 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
неТолик1, Реализация авторизации (по средствам captive portal)клиентов удаленных сетей. Удалённые сети имеют пересечений в IP-адресации (это господа такое ТРЕБОВАНИЕ, советы аля приведите адресацию в порядок не катят) Для реализации этого требования вижу след. шаги: 1) Поднимается PPTP на моём сервере 2) Удаленные сети отключают NAT на роутерах и настраивают свои роутеры на подключение к моему PPTP 3) На сервере поднимается правило iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128 4) На сервере поднимается squid и включается авторизация посредством механизма external_acl_type которому на вход подаётся IP-адрес клиента. (если IP-клиента есть в базе его пускает в инет, если IP-клиента нет в базе, его кидает на страницу captive portal посредством правила) Как вы понимаете проблема в 4ом пункте. Где на вход модулю авторизации нужно подавать IP-адреса уже в приведенном к нормальному виде. Так как может случится так что например IP 192.168.1.1 из одной сети прошел авторизацию. А точно такой же IP(192.168.1.1), но из другой под сети не прошел авторизацию, что не допустимо. Задача тревиальная если использовать два сервера, на одном VPN, на втором squid. Но проблема в том что механизм SNAT в таблице nat в iptables работает только в POSTROUTING, т.е. уже на выходе физического интерфейса. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 00:52 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
TepKuH, Можно совсем убрать из этой схемы ВПН. Какой практический смысл от него? Заменяет глобальную адрессацию на локальную. Зачем? Оставьте только прокси сервис. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 08:07 |
|
iptables + SNAT диапазона IP
|
|||
---|---|---|---|
#18+
неТолик1, В этом случаи клиенты удаленных сетей будут НАТироватся на своих роутерах. Что исключает возможность авторизовывать их на проксе. Как мне все таки кажется, мне тут без двух машин не обойтись :( На одной поднять просто VPN и маркирвать на входе пакеты механизмом conntrack zones, далее заворачивать вообще весь клиенкий трафик на вторую машину, но по выходе из интерфейса первой машины SNAT'ить (или NETMAP'ть не суть важно) Т.е. как то так роутер удаленной сети -> Интернет -> pppX -> iptables PREROUTE -j CT - > iptables POSTROUTING -j SNAT -> eth0 -> ...сервер с proxy... -> eth0 -> iptables PREROUTE -j REDIRECT -> squid:3128 -> Интернет ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2015, 11:47 |
|
|
start [/forum/topic.php?fid=25&fpage=25&tid=1481858]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
324ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 230ms |
total: | 664ms |
0 / 0 |