Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Proxy http запросов на разные IP  (Прочитано 836 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн x-nikolas

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Proxy http запросов на разные IP
« : 31 Марта 2021, 14:37:15 »
Добрый день!
Дано: сервер с Ubuntu 20.04, у сервера 3 белых IP. На сервере запущен сервис, отправляющий http запросы на определённый сайт.
Требуется: Перенаправлять http запросы от сервиса на разные IP нашего сервера. В качестве прокси-сервера выбран Squid.

Пробовал настроить опцию tcp_outgoing_address, но так и не понял, как нужно (и можно ли вообще) это сделать.
В опциях своих http запросов (на стороне сервиса) я могу указать дополнительно :username, :proxyhost и :proxyport. Задумка в том, чтобы Squid делал перераспределение в зависимости от содержимого этих опций.

Прошу подсказать, можно ли так сделать, и, если да, то на что обратить внимание?

Оффлайн x-nikolas

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Proxy http запросов на разные IP
« Ответ #1 : 09 Апреля 2021, 13:30:37 »
Свою задачу я в итоге решил при помощи Squid. Может кому пригодится:

# Чтобы не попасть в списки бесплатных прокси, разрешаем http_access только с localhost:
   http_access allow localhost
   http_access deny all


# Squid по умолчанию слушает порт 3128. Добавляем к нему ещё один (данный пример для двух белых IP):
   http_port 3128
   http_port 3129


# Создаём два списка контроля доступа с номерами портов в качестве элементов:
   acl req1 myport 3128
   acl req2 myport 3129


# Перенаправляем с каждого порта на разный IP.
   tcp_outgoing_address xxx.yyy.zzz.nnn req1
   tcp_outgoing_address xxx.yyy.zzz.mmm req2


Для описанных выше целей решение рабочее.

Хотелось, конечно, организовать работу через один порт 3128 и перенаправлять запросы по имени пользователя и паролю, что сходу что-то не вышло. Делал примерно так:

   auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
   auth_param basic children 5
   auth_param basic realm Squid proxy-caching web server
   auth_param basic credentialsttl 2 hours
(задал два юзера и два пароля)

   acl login1 proxy_auth user1
   acl login2 proxy_auth user2
   
   tcp_outgoing_address xxx.yyy.zzz.nnn login1
   tcp_outgoing_address xxx.yyy.zzz.mmm login1

В итоге - просто любые запросы проходили насквозь. И с паролем, и без пароля...

 

Страница сгенерирована за 0.015 секунд. Запросов: 21.