powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проксирование
25 сообщений из 50, страница 2 из 2
Проксирование
    #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
25 сообщений из 50, страница 2 из 2
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Проксирование
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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