powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проксирование
50 сообщений из 50, показаны все 2 страниц
Проксирование
    #40027286
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго добра!

В двух словах объясню задачу и свои мысли. Есть 2 сервера в разных локациях.
Один сервер (Srv1) в США, например, второй в России (Srv2).

Задача в том, чтобы скрыть IP (Srv1) от клиентов и делать вид будто всё на Srv2 :)

Пробросить всё через iptables затея не плохая, но есть момент. Srv1 то будет видеть запросы от IP Srv2, а не клиентов и соответственно логировать его же IP :)

Сервисы на Srv1 (http, https) поднятые на nginx. Возможно можно сделать на Srv2 проксирование средствами nginx и передавать IP клиента в каком-нибудь заголовке чтобы его можно было логировать и на Srv1.

Кто-то может делал что-то подобное
...
Рейтинг: 0 / 0
Проксирование
    #40027291
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FreeAdman
Всем доброго добра!

В двух словах объясню задачу и свои мысли. Есть 2 сервера в разных локациях.
Один сервер (Srv1) в США, например, второй в России (Srv2).

Задача в том, чтобы скрыть IP (Srv1) от клиентов и делать вид будто всё на Srv2 :)

Пробросить всё через iptables затея не плохая, но есть момент. Srv1 то будет видеть запросы от IP Srv2, а не клиентов и соответственно логировать его же IP :)

Сервисы на Srv1 (http, https) поднятые на nginx. Возможно можно сделать на Srv2 проксирование средствами nginx и передавать IP клиента в каком-нибудь заголовке чтобы его можно было логировать и на Srv1.

Кто-то может делал что-то подобное


Если бы оба сервера были в РФ, вам пришлось бы их пытаться объединять показывая как один?
Если нет, то дайте Srv1 российский IP адрес через VPN, и все дела.

Сыграть "у меня один сервер, а не два" с высокой степенью убедительности непросто, т.к. клиент может опрашивать параметры серверов и искать различия в конфигурации, платформе, пэтчах, и т.д. В конце концов DOSнуть первый, и заметить что второй не упал.
...
Рейтинг: 0 / 0
Проксирование
    #40027294
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdman
Всем доброго добра!

В двух словах объясню задачу и свои мысли. Есть 2 сервера в разных локациях.
Один сервер (Srv1) в США, например, второй в России (Srv2).

Задача в том, чтобы скрыть IP (Srv1) от клиентов и делать вид будто всё на Srv2 :)

Пробросить всё через iptables затея не плохая, но есть момент. Srv1 то будет видеть запросы от IP Srv2, а не клиентов и соответственно логировать его же IP :)

Сервисы на Srv1 (http, https) поднятые на nginx. Возможно можно сделать на Srv2 проксирование средствами nginx и передавать IP клиента в каком-нибудь заголовке чтобы его можно было логировать и на Srv1.

Кто-то может делал что-то подобное

Это называется reverse proxy . Srv1 может быть смаппирован в Srv2 на заданный путь.
...
Рейтинг: 0 / 0
Проксирование
    #40027295
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НеофитSQL,

А зачем играть?
Домену в DNS прописывается IP Srv2 и всё, о чём вы?

А вот как VPN работает я не очень понимаю, но видимо годный вариант. Тогда, получается, Srv2 будет как шлюз??? И Srv1 будет видеть запросы от клиентов, а не от Srv2, так получается?
...
Рейтинг: 0 / 0
Проксирование
    #40027296
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OoCc,

Код: sql
1.
2.
3.
4.
5.
location /some/path/ {
    proxy_set_header Host $host;
>>> proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://localhost:8000;
}



Вот. Фишка в том, что на другом сервере nginx с апачем, поэтому там свой X-Real-IP передаётся непосредственно на апач.
Вот и вопрос, применит ли nginx на сервере srv1 пришедший "X-Real-IP" или всё-таки подставит в него IP от Srv2 ?
...
Рейтинг: 0 / 0
Проксирование
    #40027300
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdman
OoCc,

Код: sql
1.
2.
3.
4.
5.
location /some/path/ {
    proxy_set_header Host $host;
>>> proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://localhost:8000;
}



Вот. Фишка в том, что на другом сервере nginx с апачем, поэтому там свой X-Real-IP передаётся непосредственно на апач.
Вот и вопрос, применит ли nginx на сервере srv1 пришедший "X-Real-IP" или всё-таки подставит в него IP от Srv2 ?

Нужно смотркть код nginx Теоретически количество ревёрс прохи на пути ничем не ограничено и может быть больше одной, например может быть добавлен load balanser. Так что X-Real-IP не должен переписываться. Это моё предположение, нужно смотреть код.
...
Рейтинг: 0 / 0
Проксирование
    #40027301
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НеофитSQL

Сыграть "у меня один сервер, а не два" с высокой степенью убедительности непросто, т.к. клиент может опрашивать параметры серверов и искать различия в конфигурации, платформе, пэтчах, и т.д. В конце концов DOSнуть первый, и заметить что второй не упал.


Клиенты тупорылые у нас, никто такого делать не будет. У нас чисто женские необоснованные визги из-за локации. Ибо остальные локации - "вражины" родины.

А можете пнуть по ориентиру как левому серверу дать IP другого через VPN? Я примерно догадываюсь поверхностно и всё же пока не понимаю.
...
Рейтинг: 0 / 0
Проксирование
    #40027302
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OoCc

Теоретически количество ревёрс прохи на пути ничем не ограничено и может быть больше одной, например может быть добавлен load balanser. Так что X-Real-IP не должен переписываться. Это моё предположение, нужно смотреть код.


Если в конфигурации nginx можно поставить " * " для переадресации всех, а не прописывать каждый домен вручную, то возможно не плохой вариант
...
Рейтинг: 0 / 0
Проксирование
    #40027305
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FreeAdman
НеофитSQL,

А зачем играть?
Домену в DNS прописывается IP Srv2 и всё, о чём вы?


ранее..> Задача в том, чтобы скрыть IP (Srv1) от клиентов и делать вид будто всё на Srv2 :)

Я написал, что "скрыть" можно от простаков. Кто умный, заметит что это два сервера, и не только по IP
Поэтому я уточнил - вам важно замаскировать расположение сервера в другой стране, или наличие двух разномастных серверов?

Первое довольно просто, тогда у вас будут Sr1 и Srv2 правдоподобно выглядеть как если они в одной стране. Не забудьте часовой пояс отрегулировать, и региональные настройки :)

Второе - сложно. Я смогу определить, что на мои запросы к вашему http:// или https:// отвечают два разных веб сервера.

Если вам ни то ни другое, а просто надо чтобы некоторые из URL ( http://company/ datamine ) мапились на второй сервер, так для этого редирект есть. https://developer.mozilla.org/ru/docs/Web/HTTP/Redirections

> А вот как VPN работает я не очень понимаю

В вашем случае, VPN будет выполнять роль очень длинного сетевого провода через океан, чтобы дотянуться до местного датацентра.
...
Рейтинг: 0 / 0
Проксирование
    #40027311
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НеофитSQL, видимо я не совсем правильно написал мысль.
Есть домен клиента, и он должен висеть на Российском IP. Всё :)
А сервер у нас в США с IP омерики, вот и всё дело. Поэтому я думаю просто сделать проксирование с российского сервера на второй для решения задачи, и домен соответственно посадить на IP российского сервера.
Женщины вечно всё раздувают до размеров слона.
...
Рейтинг: 0 / 0
Проксирование
    #40027312
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Основная сложность это в том, что nginx будет логировать запросы с другого сервера, а не запросы клиентов, а хотелось бы вести обычный лог запросов на http :)
...
Рейтинг: 0 / 0
Проксирование
    #40027313
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FreeAdman
НеофитSQL

Сыграть "у меня один сервер, а не два" с высокой степенью убедительности непросто, т.к. клиент может опрашивать параметры серверов и искать различия в конфигурации, платформе, пэтчах, и т.д. В конце концов DOSнуть первый, и заметить что второй не упал.


Клиенты тупорылые у нас, никто такого делать не будет. У нас чисто женские необоснованные визги из-за локации. Ибо остальные локации - "вражины" родины.

А можете пнуть по ориентиру как левому серверу дать IP другого через VPN? Я примерно догадываюсь поверхностно и всё же пока не понимаю.


Это не будет IP другого сервера, это будет IP по соседству.
Я не знаком с упомянутым ngix, но концепции у VPN везде похожи.
На местном рутере конфигурируется VPN сервер, самый дешевый DLINK это умеет. Если нет доступа к сетевому оборудованию, можно VPN сервер сконфигурировать в большинстве ОС. Напр, на Винде: https://docs.microsoft.com/ru-ru/windows-server/remote/remote-access/vpn/always-on-vpn/deploy/vpn-deploy-ras

Когда VPN север настроен и готов к звонкам, вражеский сервер к нему обращается с заранее условленным паролем, получает от него новый российский IP и поднимает новый сетевой интерфейс - виртуальную сетевую карту. Все эти шаги практически неотличимы от интернета по телефону с модемом - помните такой?

Есть полно вариаций. Например, если у вас есть рабочий контакт с обоими датацентрами, вы можете просто попросить чтобы вам в США оформили физический провод, который "напрямик" соединен с родиной-матерью. Многие это называют экстранет.
...
Рейтинг: 0 / 0
Проксирование
    #40027315
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FreeAdman
Основная сложность это в том, что nginx будет логировать запросы с другого сервера, а не запросы клиентов, а хотелось бы вести обычный лог запросов на http :)


Вы уверены, или предполагаете? В HTTP 1.1 клиент сообщает свой "настоящий адрес", поэтому у веб сервера есть возможность логить настоящие адреса клиентов. Это популярная проблема, т.к. клиенты часто сидят за NAT, и она решена у многих веб серверов.

https://campus.barracuda.com/product/webapplicationfirewall/doc/4259905/logging-actual-client-ip-address-on-the-apache-server/

Умеет ли это nginx, я не знаю.
...
Рейтинг: 0 / 0
Проксирование
    #40027318
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо экспериментировать :)
...
Рейтинг: 0 / 0
Проксирование
    #40027340
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdmanЕсть домен клиента, и он должен висеть на Российском IP. Всё :)
А сервер у нас в США с IP омерики, вот и всё дело.

Если ты хочешь чтобы реальный сервер видел реальные адреса клиентов, тебе надо настраивать
DNAT/SNAT, но тогда он потеряет возможность обрабатывать запросы напрямую.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проксирование
    #40027375
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdman
проксирование средствами nginx

Dimitry Sibiryakov
Если ты хочешь чтобы реальный сервер видел реальные адреса клиентов, тебе надо настраивать DNAT/SNAT, но тогда он потеряет возможность обрабатывать запросы напрямую.
Почему внедрение НАТа отключит локальный nginx? Критерием срабатывания правил файрвола может быть не только адрес источника или айпи:порт назначения... есть время, частота запросов, доступность адреса назначения и т.п. Знай рулить успевай, куда пакеты швырять локально или в забугорье. Если конечные юзеры итак за НАТом, то одним НАТом больше, одним меньше - не велика разница.
...
Рейтинг: 0 / 0
Проксирование
    #40027395
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_PisarevskyПочему внедрение НАТа отключит локальный nginx?

Локальный - не отключит. Я говорил об удалённом, американском. Ему все пакеты надо слать
на российский прокси. Такое правило их маршрутизации, чтобы он ещё мог отвечать и напрямую
у меня в голову не приходит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проксирование
    #40027401
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdman
OoCc

Теоретически количество ревёрс прохи на пути ничем не ограничено и может быть больше одной, например может быть добавлен load balanser. Так что X-Real-IP не должен переписываться. Это моё предположение, нужно смотреть код.


Если в конфигурации nginx можно поставить " * " для переадресации всех, а не прописывать каждый домен вручную, то возможно не плохой вариант

Ты хочешь всю Америку смаппировать на Россию? Глобально мыслишь, одобряю. Идеальное импортозамещение.
...
Рейтинг: 0 / 0
Проксирование
    #40027402
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал проксирование через nginx.

Заголовки X-Real-IP, X-Forwarded-For не воспринимаются на втором nginx. X-Real-IP - по идее и не должен работать в такой схеме.

Как вариант лог вести на русском сервере средствами nginx.

Пробовал проброс через iptables - работает замечательно! Думал, логирование сделать с помощью ULOG, но удобно когда в логе есть и запрашиваемый URL
...
Рейтинг: 0 / 0
Проксирование
    #40027426
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdman
Женщины вечно всё раздувают до размеров слона.

а зачем у вас женщины-домохозяйки решают айтишные вопросы?
FreeAdman
Основная сложность это в том, что nginx будет логировать запросы с другого сервера, а не запросы клиентов, а хотелось бы вести обычный лог запросов на http :)

nginx может тупо перекидывать запросы вдаль без изменений
называется proxy_pass
...
Рейтинг: 0 / 0
Проксирование
    #40027427
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
глюки форума
...
Рейтинг: 0 / 0
Проксирование
    #40027432
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tip78
а зачем у вас женщины-домохозяйки решают айтишные вопросы?

Это вам так показалось. Если бы не читали между строк, то логически бы поняли, что женщина - клиент которая брезгует чужими локациями.

tip78
nginx может тупо перекидывать запросы вдаль без изменений
называется proxy_pass


Прокси по сути своей не может выдавать себя за клиента полноценно. Пихать IP клиента в заголовках - да, но запрос будет от сервера, а не от клиента за ним.

Похоже, что логирование буду вести на прокси-сервере
...
Рейтинг: 0 / 0
Проксирование
    #40027445
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdmanлогически бы поняли, что женщина - клиент которая брезгует чужими локациями.

А откуда этот клиент знает локацию?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проксирование
    #40027451
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
FreeAdmanлогически бы поняли, что женщина - клиент которая брезгует чужими локациями.

А откуда этот клиент знает локацию?

Вопрос хороший и любопытный :)
Возможно проверили страну IP к которому был привязан домен. У клиента стоит Джумла, возможно там может модуль какой-то стоит, например погоду местную определяет и палится, я не знаю =)))

Если модуль какой извне запрашивает что-то, то вариант с nginx proxy не проканает в данном случае, VPN только чтобы обмануть качественно :)
...
Рейтинг: 0 / 0
Проксирование
    #40027454
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда человек обосновано хочет конкретную локацию - это одно. Когда тётя из принципов боится "ахрессора компрессора карбюратора нападатора" - это немножко другое ;)
...
Рейтинг: 0 / 0
Проксирование
    #40027458
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А разве возможно одному серверу при помощи VPN присвоить внешний IP другого сервера где VPN и установлен?
Это получается сервер, где поднят VPN, должен перенаправлять пакеты в VPN, а на другом сервере прописан 2-й IP, так получается?
...
Рейтинг: 0 / 0
Проксирование
    #40027477
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdman
tip78
а зачем у вас женщины-домохозяйки решают айтишные вопросы?

Это вам так показалось. Если бы не читали между строк, то логически бы поняли, что женщина - клиент которая брезгует чужими локациями.

FreeAdman
Клиенты тупорылые у нас, никто такого делать не будет. У нас чисто женские необоснованные визги из-за локации. Ибо остальные локации - "вражины" родины.

что написано, то и читаю. Кухарка имеет админа. Ясно и понятно.
Клиенты всегда тупорылые, поэтому нужен толковый админ, которым не будут помыкать "женские визги".
FreeAdman
Прокси по сути своей не может выдавать себя за клиента полноценно. Пихать IP клиента в заголовках - да, но запрос будет от сервера, а не от клиента за ним.

для логирования заголовков достаточно
...
Рейтинг: 0 / 0
Проксирование
    #40027491
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался с NGINX. Выкладываю решение:

на Srv1 в NGINX прописываем доверенный IP сервера которому разрешено подменять IP через заголовок X-Real-IP
Код: sql
1.
2.
3.
http {
set_real_ip_from 1.1.1.1;
}



На проксирующем сервере.
В секции http{} разместил:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
server {
listen 80;

location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://2.2.2.2:80; # проксируем на второй сервер
   }
}



Не забудьте закомментировать строку #include /etc/nginx/sites-enabled/*; т.к. там по умолчанию задано server_name - надо править
...
Рейтинг: 0 / 0
Проксирование
    #40027538
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdman
Прокси по сути своей не может выдавать себя за клиента полноценно. Пихать IP клиента в заголовках - да, но запрос будет от сервера, а не от клиента за ним.
nginx еще умеет TRANSPARENT proxy
Правда, при этом он должен быть запущен от рута -- тогда он открывает локальный сокет с адресом удаленного клиента и с него уже ломится на проксируемый сервер. Соответственно, на проксируемом сервере надо настроить соответствующую маршрутизацию, чтоб ответы возвращались тоже через nginx
...
Рейтинг: 0 / 0
Проксирование
    #40027811
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, а как можно проксировать https без сертификатов?
Через iptables https перенаправляется прекрасно

Ох уж эти линуксы... Без страданий и плача ничего не подымается.

VPN будет лучшим решением? И, получается, на прокси-сервере делать переадресацию в VPN шлюз где другой сервер сидит в качестве подключённого клиента? Попросту никогда не подымал VPN на линуксах.
...
Рейтинг: 0 / 0
Проксирование
    #40027812
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров, в одной из тем ваше сообщение, цитирую:

Вячеслав Любомудров
Конфигурация ниже, для стримов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
upstream morpheus_xxx      {
    hash $remote_addr consistent;
    server  192.168.213.13:9094;
}

limit_conn_zone $binary_remote_addr zone=limit_conn_stream_9094:10m;

server      {
    listen          9094;
...
    proxy_bind      $remote_addr transparent;

    proxy_pass      morpheus_xxx;
Собственно, именно из-за него возникло требование использовать TRANSPARENT -- обязательно нужно знать IP-адрес клиента. Возможно есть другой вариант, но я его, к сожалению, не знаю

Ну и "чтоб два раза не вставать" так же сделано по остальным приложениям (для HTTPS). Тут еще небольшой ньюанс -- производитель приложения явным образом не поддерживает правки server.xml (в частности, добавления org.apache.catalina.valves.RemoteIpValve) и восстанавливает его из своих ранее сгенеренных шаблонов перед каждым запуском. Можно прописать его в этих шаблонах, но при любой модификации через управлялку или апгрейда приложения они перегенерятся и придется прописывать по-полной. Ничего сложного, но можно и забыть. С TRANSPARENT-proxy такой проблемы вовсе нет

И как я уже говорил, озвученные проблемы стреляют что через обычный, что через TRANSPARENT прокси.

Может быть мне это подойдёт
...
Рейтинг: 0 / 0
Проксирование
    #40027816
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VPN, получается, самое надёжное решение спрятать локацию сервера.

А как настроить перенаправление трафика на VPN сервере к другому серверу пока не очень понимаю. Наверное, через iptables
...
Рейтинг: 0 / 0
Проксирование
    #40027866
Фотография peter64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdman,
если связка nginx+apache (nginx proxy) , то
"процесс «проброски» реального клиентского IP к серверу обеспечивается модулем mod_rpaf для Apache. При комбинировании nginx+apache, почти всегда возникает проблема в логах Апача – вместо реального айпи туда записывается localhost (127.0.0.1 или другой, если он переназначался). В то время как с логами nginx все нормально."
...
Рейтинг: 0 / 0
Проксирование
    #40027971
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все про-админы уже давно с апача свалили
...
Рейтинг: 0 / 0
Проксирование
    #40028019
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
peter64, эта проблема уже давно не актуальна. Логи ведет nginx.
Вопрос то в другом, когда в качестве прокси выступает не ПО локально, а внешний сервер, в теме об этом писалось.


Ну, самый менее замороченый путь это перебросить https через iptables и логировать пакеты с помощью подобия ULOG. Костыль, конечно...

Ищу более ровные пути. Я по сети и по linux вообще не специалист
...
Рейтинг: 0 / 0
Проксирование
    #40028029
Фотография peter64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Проксирование
    #40028070
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
peter64,
Решение с http я уже выложил выше. По https есть решение?
...
Рейтинг: 0 / 0
Проксирование
    #40028983
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НеофитSQL
дайте Srv1 российский IP адрес через VPN, и все дела

Вот это интересно. Как?

VPN поднял. Имеется внешние IP серверов и локальные VPN.

Вот и думаю. Как? Вместо локальных VPN адресов вида 192.168.0.x прописать внешний IP VPN сервера?
Как это будет работать? Тогда на VPN сервере будет два интерфейса с одинаковым IP? eth0 и tun0.
Пока не понимаю.
...
Рейтинг: 0 / 0
Проксирование
    #40028987
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как роутеры перенаправление делают, что клиент с локальным IP видит пакеты с реальным внешним IP извне?
Кажется, допёр. У локального клиента шлюз прописан роутера.
...
Рейтинг: 0 / 0
Проксирование
    #40028990
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже, нашёл решение.

Поднял VPN на одном сервере, а на втором просто забиндил nginx на выданный локальный IP VPN, итого в логах пишется внешний IP

Рекомендую для быстрой настройки VPN
https://github.com/Nyr/openvpn-install
...
Рейтинг: 0 / 0
Проксирование
    #40029306
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил попробовать GRE туннель без шифрования (шифрование не нужно).

Виртуальную локальную сеть создал, между собой пингуются свободно.
192.168.0.1 и 192.168.0.2 (второй сервер)

На втором сервере (который скрыть) прописал первый вторым шлюзом с метрикой 10 (10 - чтобы основная сеть не отваливалась)

Код: sql
1.
2.
3.
4.
5.
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         45.94.158.1     0.0.0.0         UG    0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    10     0        0 grelan
45.94.158.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 grelan



На первом сервере прописал правила в iptables и...

Код: sql
1.
ping -I grelan 8.8.8.8


Успешно пингуется.
Но вот пробросить порты на 80 nginx пока не получается. Есть мысль, что nginx пытается ответить через главный шлюз, а не через второй.

Может кто делал что-то подобное, подскажет

VPN грузит ЦП, да и КПД по сокрости порта не очень, да и шифрование то не нужно, приберегу как запасную альтернативу
...
Рейтинг: 0 / 0
Проксирование
    #40029944
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, как можно 192.168.0.0 пустить по второму шлюзу без подмены IP в пакете?

Видимо, создавая некие таблицы, а потом ими маневрировать в iptables. Пока до этого уровня не дошёл
...
Рейтинг: 0 / 0
Проксирование
    #40031415
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неделю мучений и получилось.
Спасибо всем, кто пытался помочь, и тем, кто прошёл мимо.

Выкладываю своё решение. Возможно, однажды, это очень поможет кому-то.

Код: ruby
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
# транзитный \ проксирующий сервер
# 111.111.111.5 - внешний IP сервера
# 222.222.222.5 - внешний ip второго сервера
# 192.168.0.2 - локальный ip второго сервера в туннеле

# создаём туннель
ip link add grelan type gretap local 111.111.111.5 remote 222.222.222.5
ip link set grelan up
iptables -I INPUT -p gre -s 222.222.222.5 -j ACCEPT

#добавляем локальный ip для этого сервера (будет шлюзом для второго)
ip addr add 192.168.0.1/24 dev grelan

sysctl -w net.ipv4.ip_forward=1

# здесь, как пример, перенаправляем пришедший пакет на 80 порт на второй сервер уже на локальный ip
# можно перенаправить и диапазон "--dport 80:100" - от 80 по 100 порт
iptables -t nat -A PREROUTING -i ens3 -p tcp -d 111.111.111.5 --dport 80 -j DNAT --to 192.168.0.2

iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.2 -j SNAT --to 111.111.111.5

#UDP нужно для DNS, например
iptables -t nat -A POSTROUTING -p udp -s 192.168.0.2 -j SNAT --to 111.111.111.5


Код: ruby
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
# второй сервер
# 222.222.222.1 - шлюз провайдера

ip link add grelan type gretap local 222.222.222.5 remote 111.111.111.5
ip link set grelan up
iptables -I INPUT -p gre -s 111.111.111.5 -j ACCEPT

ip addr add 192.168.0.2/24 dev grelan

#прописываем маршрут для связи с проксирующим сервером через шлюз провайдера
route add -host 111.111.111.5 gw 222.222.222.1

#удаляем шлюз провайдера прописанный по-умолчанию
route del -net default gw 222.222.222.1 dev eth0

#можно добавить шлюз провайдера обратно с большей метрикой
#route add -net default gw 222.222.222.1 metric 10 dev eth0
...
Рейтинг: 0 / 0
Проксирование
    #40031421
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл.
Код: ruby
1.
2.
#добавляем наш шлюз как шлюз по-умолчанию на втором сервере
route add default gw 192.168.0.1 dev grelan
...
Рейтинг: 0 / 0
Проксирование
    #40031520
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreeAdman
Забыл.
Код: ruby
1.
2.
#добавляем наш шлюз как шлюз по-умолчанию на втором сервере
route add default gw 192.168.0.1 dev grelan

Вот это не совсем правильно
Нужно сделать отдельное правило и таблицу маршрутизации и отправлять на этот интерфейс только те пакеты, которые с него приехали
Что-то типа:
Код: powershell
1.
2.
3.
4.
ip rule from 192.168.0.2 table 100 # Все пакеты с этого адреса обрабатываются таблицей маршрутизации 100
ip route 192.168.0.2 dev grelan proto kernel scope link 192.168.0.2 table 100 # Где прописан сам этот адрес
ip route default via 192.168.0.1 dev grelan table 100 # И дефолтовый маршрут на NGINX
ip route flush cache



Ну и ссылка на настройку NGINX как TRANSPARENT PROXY
...
Рейтинг: 0 / 0
Проксирование
    #40031521
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров, спасибо за пример, обязательно разберу и попрактикуюсь.
В моём случае и исходящий трафик тоже идёт через транзитный сервер, что в общем подобно VPN, поэтому порядок, так и задумано
...
Рейтинг: 0 / 0
Проксирование
    #40032741
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров, "ip rule from" в Debian 9 не работает, ругается на "from"
Иначе всё было бы слишком просто и хорошо. Однако это не про Линукс.

Читал про "--mark". До конца так и не вкурил. Про какие-то биты статьи. То... Это... Не понимаю, зачем так усложнять всё...
...
Рейтинг: 0 / 0
Проксирование
    #40032795
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, ну понятно что там пропущено add
...
Рейтинг: 0 / 0
Проксирование
    #40032804
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров, спасибо большое!!! Вроде бы работает!

Код: ruby
1.
2.
3.
ip rule add from 192.168.0.2 table 100
ip route add 192.168.0.2 dev grelan proto kernel scope link src 192.168.0.2 table 100
ip route add default via 192.168.0.1 dev grelan table 100


Всех с наступающими, кстати :)
...
Рейтинг: 0 / 0
Проксирование
    #40033069
FreeAdman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,

Может дадите координату куда Вам на пивко скинуть? ;)
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проксирование
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]