Полное и практическое руководство по настройке веб-прокси в Ubuntu 24.04.
С помощью этого руководства вы легко установите и настроите веб-прокси на сервере Ubuntu 24.04.

Полное и практическое руководство по настройке веб-прокси в Ubuntu 24.04.

В этой статье пошагово объясняется, как установить и настроить веб-прокси на сервере Ubuntu 24.04 с использованием Squid, Dante и Nginx. Прочитав эту статью, вы узнаете, как защитить и оптимизировать свой веб-прокси.
0 Акции
0
0
0
0

Как настроить безопасный и эффективный веб-прокси на 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 authenticated

ACL и ограничения доступа

Типичные примеры:

  • Ограничение по 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. Также затрагивались вопросы межсетевых экранов, логирования и практические советы по торговле, играм и искусственному интеллекту.

Часто задаваемые вопросы

Вам также может понравиться

Как установить IBSng на CentOS 6/7

Руководство по установке IBSng на CentOS 6/7 В этой статье приведено руководство по установке IBSng на CentOS 6/7, которое поможет вам…

Как войти на сервер Windows через удаленный рабочий стол

Как подключиться к серверу Windows через удалённый рабочий стол. Программное обеспечение для подключения к удалённому рабочему столу предоставляется бесплатно во всех версиях…