Перейти до вмісту
Гайды 6 хв читання 30 переглядів

Як налаштувати власний проксі-сервер

Розблокуйте цифрову свободу! Цей посібник проведе вас через налаштування потужного проксі-сервера за допомогою Squid, 3proxy або Dante для максимальної конфіденційності та контролю.

Як налаштувати власний проксі-сервер

Щоб налаштувати власний проксі-сервер, зазвичай встановлюють та конфігурують спеціалізоване проксі-програмне забезпечення, таке як Squid для кешування HTTP/HTTPS, 3proxy для легкої роботи з HTTP/SOCKS, або Dante для надійного SOCKS5, визначаючи порти прослуховування, засоби контролю доступу та механізми автентифікації на Linux-сервері.

Налаштування власного проксі-сервера забезпечує контроль над мережевим трафіком, конфіденційність, доступ до географічно обмеженого контенту або підвищену безпеку для внутрішніх мереж. Вибір програмного забезпечення залежить від конкретних вимог, таких як підтримка протоколів (HTTP, HTTPS, SOCKS), потреби в кешуванні та бажана складність.

Загальні передумови

Перед налаштуванням будь-якого проксі-сервера переконайтеся, що ваш сервер відповідає цим базовим вимогам:
* Операційна система: Зазвичай використовується дистрибутив Linux (наприклад, Ubuntu, Debian, CentOS).
* Доступ до мережі: Сервер повинен мати відповідне мережеве підключення та публічну IP-адресу, якщо потрібен зовнішній доступ.
* Налаштування брандмауера: Відкрийте необхідні порти (наприклад, 3128 для HTTP, 1080 для SOCKS) на брандмауері вашого сервера (наприклад, ufw, firewalld).

Проксі-сервер Squid

Squid — це потужний, повнофункціональний кешуючий проксі для веб-клієнтів, що підтримує HTTP, HTTPS, FTP та інші протоколи. Він чудово кешує часто відвідуваний контент, зменшуючи використання пропускної здатності та покращуючи час відгуку.

Встановлення (Debian/Ubuntu)

sudo apt update
sudo apt install squid

На CentOS/RHEL: sudo yum install squid або sudo dnf install squid.

Базова конфігурація

Основний файл конфігурації зазвичай знаходиться за адресою /etc/squid/squid.conf.
1. Визначення порту прослуховування:
Знайдіть або додайте директиву http_port.
http_port 3128
2. Списки контролю доступу (ACLs):
Squid використовує ACL для визначення мережевих сегментів, користувачів або інших критеріїв, а правила http_access для застосування дій.
```
# Визначення ACL для локальної мережі (замініть на локальну підмережу вашого сервера або IP-адресу клієнта)
acl localnet src 192.168.1.0/24 # Приклад: Дозволити клієнтам з цієї підмережі
acl localhost src 127.0.0.1/32

# Дозволити доступ для визначених ACL
http_access allow localhost
http_access allow localnet

# Заборонити весь інший доступ
http_access deny all
```
Щоб дозволити доступ з будь-якої IP-адреси (менш безпечно, використовуйте з обережністю та автентифікацією):
```
acl all src 0.0.0.0/0
http_access allow all
```
  1. Перезапуск Squid:
    bash sudo systemctl restart squid sudo systemctl enable squid sudo systemctl status squid

Автентифікація користувачів (Basic Auth)

Реалізуйте базову автентифікацію за іменем користувача/паролем для підвищення безпеки.
1. Встановлення утиліт Apache (для htpasswd):
bash sudo apt install apache2-utils
2. Створення файлу паролів:
bash sudo htpasswd -c /etc/squid/passwd yourusername # Введіть та підтвердіть пароль. Щоб додати більше користувачів, пропустіть -c: # sudo htpasswd /etc/squid/passwd anotheruser
3. Налаштування Squid для автентифікації:
Додайте ці рядки до squid.conf (наприклад, на початку або в розділі AUTH):
```
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5 startup=5 idle=1
auth_param basic realm "Squid Proxy Authentication"
auth_param basic credentialsttl 2 hours

acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_access deny all
```
Переконайтеся, що `http_access allow authenticated` з'являється *перед* будь-якими правилами `http_access deny all`, які блокували б автентифікованих користувачів.
  1. Перезапуск Squid.

Перехоплення HTTPS (прозорий проксі)

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

Проксі-сервер 3proxy

3proxy — це легкий, універсальний проксі-сервер, що підтримує HTTP, HTTPS (CONNECT), SOCKS4/5, FTP та інші протоколи. Він відомий своїм малим розміром та гнучкою конфігурацією.

Встановлення (компіляція з вихідного коду)

3proxy часто компілюється з вихідного коду для отримання останньої версії та максимального контролю.
1. Встановлення інструментів збірки:
bash sudo apt update sudo apt install build-essential git
2. Завантаження та компіляція:
bash git clone https://github.com/z3APA3A/3proxy.git cd 3proxy make -f Makefile.Linux sudo make -f Makefile.Linux install
Виконувані файли зазвичай встановлюються в /usr/local/bin/3proxy.

Базова конфігурація

Створіть файл конфігурації, наприклад, /etc/3proxy/3proxy.cfg.
1. Розпізнавач DNS:
nserver 8.8.8.8 # Google DNS nserver 1.1.1.1 # Cloudflare DNS
2. Автентифікація (за бажанням):
auth strong users yourusername:CL:yourpassword # CL для відкритого тексту, використовуйте хеш для продакшну
3. Визначення проксі:
* HTTP-проксі:
proxy -p3128
* SOCKS5-проксі:
socks -p1080
* Комбінований HTTP та SOCKS:
proxy -p3128 socks -p1080
4. Контроль доступу:
Після users і перед рядками proxy/socks:
allow yourusername # Дозволити тільки вказаному користувачеві # Або дозволити всім автентифікованим користувачам: # allow * # Або дозволити з певної IP-адреси: # allow 192.168.1.0/24
Базова, менш безпечна конфігурація, що дозволяє будь-кому з будь-якого місця:
allow * * proxy -p3128 socks -p1080
5. Запуск 3proxy:
bash /usr/local/bin/3proxy /etc/3proxy/3proxy.cfg
Для фонової роботи використовуйте start 3proxy /etc/3proxy/3proxy.cfg всередині файлу конфігурації або systemd для належного керування службами.

Служба Systemd (необов'язково)

Створіть /etc/systemd/system/3proxy.service:

[Unit]
Description=3proxy Proxy Server
After=network.target

[Service]
ExecStart=/usr/local/bin/3proxy /etc/3proxy/3proxy.cfg
Restart=always
User=nobody # Запустити як непривілейований користувач

[Install]
WantedBy=multi-user.target

Потім:

sudo systemctl daemon-reload
sudo systemctl enable 3proxy
sudo systemctl start 3proxy
sudo systemctl status 3proxy

SOCKS-сервер Dante

Dante — це надійний SOCKS-проксі-сервер, що переважно підтримує SOCKS4 та SOCKS5. Він відомий своєю стабільністю та продуктивністю, що робить його придатним для SOCKS-тунелювання з високим трафіком.

Встановлення (Debian/Ubuntu)

sudo apt update
sudo apt install dante-server

На CentOS/RHEL: sudo yum install dante-server або sudo dnf install dante-server.

Базова конфігурація

Основний файл конфігурації — /etc/danted.conf.
1. Визначення мережевих інтерфейсів та портів:
logoutput: stderr internal: eth0 port = 1080 # Замініть eth0 на ім'я внутрішнього інтерфейсу вашого сервера external: eth0 # Замініть eth0 на ім'я зовнішнього інтерфейсу вашого сервера
Якщо у вас лише один інтерфейс, використовуйте його для обох internal та external.
2. Привілеї користувачів:
user.privileged: root user.notprivileged: nobody
3. Методи автентифікації:
Для автентифікації за іменем користувача/паролем Dante використовує системних користувачів.
socksmethod: username none
username вимагає автентифікації клієнта, none дозволяє неавтентифікований доступ.
4. Правила доступу:
Визначте правила client (хто може підключатися до проксі) та правила socks (який трафік проксі буде пересилати).
```
# Правило для клієнта: Дозволити будь-кому підключатися до проксі
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
socksmethod: username none # Застосувати визначені вище методи автентифікації
}

# Правило SOCKS: Дозволити проксі пересилати трафік куди завгодно
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    socksmethod: username none
}
```
Щоб обмежити доступ клієнтів до певного діапазону IP-адрес:
```
client pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0
    socksmethod: username none
}
```
  1. Створення системного користувача для автентифікації:
    Якщо використовується socksmethod: username, створіть системного користувача (без домашнього каталогу або доступу до оболонки для безпеки).
    bash sudo adduser --no-create-home --shell /usr/sbin/nologin proxyuser # Встановіть надійний пароль для proxyuser
  2. Перезапуск Dante:
    bash sudo systemctl restart danted sudo systemctl enable danted sudo systemctl status danted

Таблиця порівняння: Squid проти 3proxy проти Dante

Функція Squid 3proxy Dante SOCKS Server
Тип HTTP/HTTPS, кешування, прямий/зворотний HTTP, HTTPS (CONNECT), SOCKS4/5, FTP SOCKS4/5
Складність Від середньої до високої (через велику кількість функцій) Від низької до середньої (компактна конфігурація) Середня (надійна реалізація SOCKS)
Основне використання Веб-кешування, фільтрація контенту, контроль доступу Легкий проксі, SOCKS-шлюз, універсальний Високопродуктивний SOCKS-проксі, тунелювання
Продуктивність Висока (особливо з кешуванням) Дуже легкий, ефективний Висока, оптимізована для SOCKS-трафіку
Автентифікація Basic, Digest, NTLM, зовнішні помічники Basic, NTLM, на основі IP, зовнішні помічники Ім'я користувача/пароль (системні користувачі), на основі IP
Підтримка ОС Linux, FreeBSD, Windows (через Cygwin) Linux, Windows, BSD, macOS Linux, FreeBSD, Solaris, macOS
Конфігурація Розширена, детальна, текстова Компактна, скриптоподібна, текстова Текстова, чіткі розділи

Загальні міркування щодо безпеки та продуктивності

  • Брандмауер: Завжди налаштовуйте брандмауер вашого сервера (наприклад, ufw, firewalld) так, щоб дозволяти вхідні з'єднання до проксі-порту(ів) лише з довірених IP-адрес або діапазонів IP-адрес.
  • Автентифікація: Використовуйте надійні, унікальні паролі для автентифікації проксі. Для публічних проксі завжди вмикайте автентифікацію.
  • Принцип найменших привілеїв: Запускайте проксі-служби під виділеним, непривілейованим користувачем (наприклад, nobody або спеціальним користувачем), щоб обмежити потенційну шкоду у разі компрометації.
  • Моніторинг: Регулярно переглядайте журнали проксі на предмет незвичайної активності та моніторте ресурси сервера (CPU, RAM, мережевий ввід/вивід) для виявлення вузьких місць продуктивності або потенційних атак.
  • Оновлення: Підтримуйте програмне забезпечення проксі та операційну систему в актуальному стані, щоб виправляти вразливості безпеки.
  • Апаратне забезпечення: Переконайтеся, що сервер має достатній CPU, RAM та пропускну здатність мережі для очікуваного навантаження. Для Squid з інтенсивним кешуванням корисним є SSD-накопичувач.
Оновлено: 04.03.2026
Назад до категорії

Читайте також

Гайды 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Гайды 1 хв

Як автоматизувати купівлю проксі через API

Автоматизація купівлі та управління проксі через API провайдерів: інтеграція, моніторинг використання та автопоновлення.

Гайды 1 хв

Створення інформаційної панелі моніторингу проксі в Grafana

Покрокове створення інформаційної панелі для моніторингу проксі в Grafana: метрики,

Гайды 1 хв

Як тестувати проксі перед покупкою

Чек-лист тестування проксі перед покупкою: швидкість, стабільність, анонімність, гео та сумісність з ціллю

Гайды 1 хв

Як налаштувати липкі сесії через проксі

Липкі сесії: підтримка однієї IP-адреси протягом усієї сесії, налаштовуються через провайдера та самостійно.

Гайды 1 хв

Використання проксі з Camoufox

Camoufox — це модифікований Firefox для обходу антиботів. Налаштування проксі, відбиток та режим невидимості.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.