HTTP проксі-сервер на декілька маршрутів

Вітаю! Нарешті виділив час, щоб продовжити писати, сьогодні ми розглянемо налаштування HTTP проксі-сервера з вибором маршрути та прив’язкою до порту.

В попередній статті ми розглянули базове налаштування проксі-сервера, також в цій статті ми використаємо маршрутизацію пакетів на основі політики маршрутизації.


Технічне завдання:

Короткий опис:
Налаштувати проксі сервер з декількома IP, щоб залежно від вказаного порту користувач виходив в інтернет через певний IP.

В наявності :
сервер з інстальованою Ubuntu 22.04;
до сервера під’єднано 3 IP адреси, 1 без тегу та 2 додаткові з тегом;

Коментар:
Оскільки це проксі сервер я хотів би мати доступ до нього через ip яка без тегу, а ось виходити в інтернет через ip який з тегом.


Почнемо реалізацію

Для початку ми під’єднаємо IP що з тегом до сервера використовуємо, налаштуємо netplan:

   vlans:
    vlan.401: # створюємо інтерфейс 
      id: 401 # тег
      link: eth0 # основний наш інтерфейс
      dhcp4: false # налаштування ми не будемо 
      addresses: [10.4.1.2/30] # наш IP
      routes: 
      - to: default # маршрут за замовчання
        via: 10.4.1.1 # IP основного шлюзу
        table: 401 # таблиця маршрутизації
      routing-policy: # політика маршрутизації
      - from: 10.4.1.0/30 # всі пакети цієї мережі будемо відправляти 
        table: 401 # в нашу таблицю маршрутизації

    vlan.402:
      id: 402
      link: eth0
      dhcp4: false
      addresses: [10.4.2.2/30]
      routes: 
      - to: default
        via: 10.4.2.1
        table: 402
      routing-policy:
      - from: 10.4.2.0/30
        table: 402

Дозволяємо ipv4 forward:

sed -i 's/.*net.ipv4.ip_forward.*/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sysctl -p

Тепер налаштуємо squid, відкриваємо основний файл конфігурації та приводимо його до наступного вигляду

# видаляємо заголовки X-Forwarded-For
forwarded_for delete
# відключаємо додавання заголовку via
via off
# порти на які ми будемо звертатися
http_port 10401
http_port 10402

# забороняємо передавати заголовок Cache-Control
request_header_access Cache-Control deny all
# налаштування списки доступу
acl port_10401 localport 10401
acl port_10402 localport 10402

access_log /var/log/squid/access.log

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm proxy
acl auth_users proxy_auth REQUIRED
# вказуємо маршрут на основі списків доступу
tcp_outgoing_address 10.4.1.2 port_10401
tcp_outgoing_address 10.4.2.2 port_10402

http_access allow auth_users
http_access deny

Створюємо користувачів:

# виконавши команду ми повинні вказати паролль для користувача 
# (-c якщо файла не існує)
htpasswd -c /etc/squid/passwd proxyuser
# пароль користувача
New password:
# повторіть пароль користувача
Re-type new password:

Можемо ще трохи додати параметрів, щоб TCP/IP Fingerprint був Windows

cat >> /etc/sysctl.conf <<EOF
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_window_scaling=0
EOF
sysctl -p

Основні налаштування закінчили, підсумуємо що виконали:

  • Під'єднали додаткові IP;

  • Налаштували проксі сервер для роботи з додатковими IP залежно від порту.

Дякую за увагу!
Залишайте свої питання в коментарях буду радий відповісти.

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Олег Ковалєвський
Олег Ковалєвський@oleh.k

169Прочитань
1Автори
4Читачі
Підтримати
На Друкарні з 26 квітня

Більше від автора

  • SQUID, HTTP проксі-сервер

    Squid - це проксі-сервер і система кешування, яка дозволяє контролювати та моніторити вхідний і вихідний інтернет-трафік в мережі. Основна функція Squid - це обслуговування запитів від клієнтів (зазвичай веб-браузерів) та пересилання їх до віддалених серверів.

    Теми цього довгочиту:

    Linux

Вам також сподобається

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається