- Как настроить безопасный и эффективный веб-прокси на Ubuntu 24.04?
- Зачем использовать веб-прокси?
- Типы и применение прокси-серверов
- Требования к серверу и его подготовка
- Установка и настройка Squid (прокси-сервер для переадресации HTTP/HTTPS)
- Ведение журналов и управление журналами
- Настройка SOCKS5 с помощью Dante
- Настройка Nginx в качестве обратного прокси и завершение TLS-соединения.
- Межсетевой экран, безопасность и мониторинг
- Практические советы для конкретных приложений (торговля, игры, ИИ, рендеринг)
- Эксплуатация и техническое обслуживание
- Зачем использовать облачную инфраструктуру с несколькими локациями?
- Окончательные рекомендации по безопасности
- Заключение
- Часто задаваемые вопросы
Как настроить безопасный и эффективный веб-прокси на Ubuntu 24.04?
В этом руководстве мы шаг за шагом расскажем вам о процессе установки, настройки и защиты веб-прокси на сервере. Убунту 24.04 Объяснено. Примеры основаны на Кальмар (Прямой прокси HTTP/HTTPS), Данте (SOCKS5) и Nginx (обратный прокси и завершение TLS) и включают настройку брандмауэра, аутентификацию, ведение журналов и оптимизацию производительности.
Зачем использовать веб-прокси?
Веб-прокси обладает такими преимуществами, как: контроль доступа, Кэширование контента Для уменьшения пропускной способности, Скрытие IP-адреса Клиент и Распределение трафика Для таких важных приложений, как торговля или игры, размещение прокси-сервера ближе к месту назначения может быть целесообразным. Задержка (пинг) Уменьшать.
Типы и применение прокси-серверов
К наиболее распространенным типам прокси относятся:
- Прямой прокси (например, Squid)Предназначен для доступа клиентов к Интернету; подходит для управления, кэширования и мониторинга.
- Обратный прокси (например, Nginx): Размещается перед веб-серверами для выполнения TLS, балансировки нагрузки и кэширования.
- SOCKS5 (Dante или SSH -D)Нижний уровень, подходит для различных приложений и трафика TCP/UDP.
- Прозрачный проксиДля перехвата сетевого трафика (требуются изменения NAT/переадресации).
Требования к серверу и его подготовка
Сначала обновите систему и установите базовые пакеты. Пакеты следует выбирать в зависимости от требований; для SOCKS5 используйте dante-server А для TLS от certbot Мы используем.
sudo apt update && sudo apt upgrade -y
sudo apt install squid apache2-utils dante-server nginx certbot nftables fail2ban -yУстановка и настройка Squid (прокси-сервер для переадресации HTTP/HTTPS)
В этом разделе описываются основные параметры настройки, включение HTTPS (CONNECT), аутентификация, списки контроля доступа (ACL) и кэширование.
Базовая конфигурация
Для установки Squid:
sudo apt install squid -yПеред изменением конфигурационного файла сделайте его резервную копию:
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bakПример базового конфигурационного файла (/etc/squid/squid.conf):
http_port 3128
# limit logging size
access_log /var/log/squid/access.log squid
# ACLs
acl localhost src 127.0.0.1/32
acl localnet src 10.0.0.0/8 # internal network
acl allowed_ips src 203.0.113.0/24 # example allowed client range
# permissions
http_access allow localhost
http_access allow allowed_ips
http_access deny all
# caching
cache_mem 256 MB
maximum_object_size_in_memory 512 KB
cache_dir ufs /var/spool/squid 10000 16 256
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern . 0 20% 4320
# DNS
dns_v4_first onПосле сохранения конфигурации:
sudo systemctl restart squid
sudo systemctl enable squidВключение HTTPS (CONNECT) и TLS
Для туннелирования HTTPS Squid использует CONNECT. Пример списка контроля доступа (ACL) для разрешения CONNECT:
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 443
http_access allow SSL_portsАутентификация (базовая/LDAP)
Для базовой аутентификации с использованием HTPassWD:
sudo apt install apache2-utils -y
sudo htpasswd -c /etc/squid/passwords usernameВ файл squid.conf добавьте:
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticatedACL и ограничения доступа
Типичные примеры:
- Ограничение по IP-адресу: acl allowed_ips src xxxx/xx
- Ограничение доступа к доменам: acl blocked_sites dstdomain .example.com
- Ограничение по времени: acl office_hours time MF 08:00-18:00
Пример отклоненных сайтов:
acl blocked_sites dstdomain .youtube.com .facebook.com
http_access deny blocked_sitesКэширование и оптимизация производительности
Важные настройки кэша:
- cache_mem: Оперативная память для кэширования небольших объектов.
- cache_dir: Расположение на диске для кэша большого объема контента.
- максимальный_размер_объекта: Максимальный размер объекта, который можно сохранить.
- refresh_pattern: Контроль достоверности кэша.
Пример для случая с высоким трафиком:
cache_mem 512 MB
maximum_object_size 20 MB
cache_dir ufs /var/spool/squid 50000 16 256Для интенсивного трафика используйте NVMe и диски с высокой производительностью ввода-вывода (IOPS) или LVM.
Ведение журналов и управление журналами
Лесорубы-кальмары /var/log/squid/ Пример конфигурации logrotate:
sudo nano /etc/logrotate.d/squid
/var/log/squid/*.log {
weekly
rotate 4
compress
delaycompress
missingok
notifempty
create 640 proxy proxy
sharedscripts
postrotate
systemctl reload squid >/dev/null 2>&1 || true
endscript
}Для анализа логов используйте такие инструменты, как ELK или Grafana+Prometheus.
Настройка SOCKS5 с помощью Dante
Для применений, требующих использования носков, Данте Это хороший вариант.
Установка и настройка:
sudo apt install dante-server -yПример файла /etc/danted.conf:
logoutput: syslog
internal: 0.0.0.0 port = 1080
external: eth0
method: username none
user.privileged: proxy
user.notprivileged: nobody
client pass {
from: 203.0.113.0/24 to: 0.0.0.0/0
log: connect disconnect error
}
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
protocol: tcp udp
log: connect disconnect error
}sudo systemctl restart danted
sudo systemctl enable dantedПример теста с использованием curl:
curl --socks5-hostname 127.0.0.1:1080 https://checkip.amazonaws.comНастройка Nginx в качестве обратного прокси и завершение TLS-соединения.
Nginx можно использовать для размещения страницы администрирования прокси-сервера или для завершения TLS-соединения для приложений, находящихся за прокси-сервером.
Пример серверного блока:
server {
listen 80;
server_name proxy.example.com;
location / {
proxy_pass http://127.0.0.1:3128;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}Для получения TLS-сертификата с помощью Certbot:
sudo certbot --nginx -d proxy.example.comМежсетевой экран, безопасность и мониторинг
Для обеспечения безопасности используйте nftables или ufw, fail2ban, а также системы логирования и мониторинга.
Пример базовых правил nftables:
sudo nft add table inet filter
sudo nft 'add chain inet filter input { type filter hook input priority 0 ; policy drop; }'
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input tcp dport 22 accept
sudo nft add rule inet filter input tcp dport 3128 accept # squid
sudo nft add rule inet filter input tcp dport 1080 accept # dante
sudo nft add rule inet filter input icmp type echo-request acceptВнедрите мониторинг производительности и обнаружение атак с помощью соответствующих инструментов.
Практические советы для конкретных приложений (торговля, игры, ИИ, рендеринг)
Для трейдеров: Выберите сервер, расположенный близко к серверу брокера; используйте фиксированный исходящий IP-адрес для добавления в белый список и включите защиту от DDoS-атак, если соединение критически важно.
Для геймеров: Выберите VPS с быстрым сетевым соединением, расположенный недалеко от игрового сервера, и включите BBR:
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbrЧтобы настройки сохранились, установите значения следующим образом: /etc/sysctl.conf Добавлять.
Для ИИ и рендеринга: Используйте кэш большего размера и NVMe-диски для загрузки наборов данных, а также облачные графические процессоры для распределенного вывода результатов.
Эксплуатация и техническое обслуживание
Основные рекомендации по техническому обслуживанию:
- Регулярные обновления пакетов: sudo apt update && sudo apt upgrade -y
- Установка обновлений безопасности, анализ журналов и резервное копирование конфигурации.
- Используйте инструменты автоматизации, такие как Ansible, для быстрой настройки и отката.
- Периодически проверяйте работу сервиса с помощью curl/wget и настройте мониторинг доступности.
Зачем использовать облачную инфраструктуру с несколькими локациями?
Размещение прокси-серверов ближе к пользователям или целевым серверам уменьшает пинг и обеспечивает лучший географический контроль. Использование CDN, BGP и защиты от DDoS-атак может повысить производительность и безопасность.
Окончательные рекомендации по безопасности
Важные советы по безопасности:
- Никогда не оставляйте открытый публичный прокси-сервер без аутентификации.
- Примените ограничения по IP-адресу и времени.
- Мониторинг и оповещение необходимы для выявления злоупотреблений.
- Используйте защиту от DDoS-атак и частные сети для работы с конфиденциальными приложениями.
Заключение
В этом руководстве описаны установка и настройка. Кальмар Настройка HTTP/HTTPS. Данте Для SOCKS5 и настройки Nginx В нем рассматривались обратные прокси-серверы и TLS. Также затрагивались вопросы межсетевых экранов, логирования и практические советы по торговле, играм и искусственному интеллекту.









