Настройка прокси squid ubuntu 22.04 в DMZ для отключенной среды [закрыто]

Вопрос или проблема

У меня есть инфраструктура с DMZ, где расположен прокси Squid, а внутри находятся машины, которые будут выходить через этот прокси. Конфигурация следующая.

# Пример правила, разрешающего доступ из ваших локальных сетей.
# Настройте, чтобы указать ваши (внутренние) IP-адреса, с которых разрешен доступ
acl localnet src 0.0.0.1-0.255.255.255  # RFC 1122 "эта" сеть (LAN)
acl localnet src 10.0.0.0/8     # RFC 1918 локальная частная сеть (LAN)
acl localnet src 100.64.0.0/10      # RFC 6598 общедоступное адресное пространство (CGN)
acl localnet src 169.254.0.0/16     # RFC 3927 локальные машины (подключенные напрямую)
acl localnet src 172.16.0.0/12      # RFC 1918 локальная частная сеть (LAN)
acl localnet src 192.168.0.0/16     # RFC 1918 локальная частная сеть (LAN)
acl localnet src fc00::/7           # RFC 4193 диапазон локальных частных сетей
acl localnet src fe80::/10          # RFC 4291 локальные машины (подключенные напрямую)

acl SSL_ports port 443
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443     # https
acl Safe_ports port 70      # gopher
acl Safe_ports port 210     # wais
acl Safe_ports port 1025-65535  # незарегистрированные порты
acl Safe_ports port 280     # http-mgmt
acl Safe_ports port 488     # gss-http
acl Safe_ports port 591     # filemaker
acl Safe_ports port 777     # многоязычный http

# Запретить запросы к определенным небезопасным портам
http_access deny !Safe_ports

# Запретить CONNECT к другим, чем безопасным SSL портам
http_access deny CONNECT !SSL_ports

# Разрешить доступ manager только с localhost
http_access allow localhost manager
http_access deny manager

# ВСТАВЬТЕ ВАШИ СОБСТВЕННЫЕ ПРАВИЛА ЗДЕСЬ, ЧТОБЫ РАЗРЕШИТЬ ДОСТУП ОТ ВАШИХ КЛИЕНТОВ
#
include /etc/squid/conf.d/*.conf

# Например, чтобы разрешить доступ из ваших локальных сетей, вы можете раскомментировать
# следующее правило (и/или добавить правила, соответствующие вашему определению "локального"):
# http_access allow localnet
http_access allow localhost

# ПРАВИЛО или ACL ДЛЯ ЗАГРУЗОК
#http_access allow all
acl all_updates url_regex -i "/etc/squid/all_updates"
http_access allow all_updates


# И, наконец, запретить весь другой доступ к этому прокси
http_access deny all


# ВСТАВЬТЕ ВАШИ СОБСТВЕННЫЕ ПРАВИЛА ЗДЕСЬ, ЧТОБ  РАЗРЕШИТЬ ДОСТУП ОТ ВАШИХ КЛИЕНТОВ
#
include /etc/squid/conf.d/*.conf

# Например, чтобы разрешить доступ из ваших локальных сетей, вы можете раскомментировать
# следующее правило (и/или добавить правила, соответствующие вашему определению "локального"):
# http_access allow localnet
http_access allow localhost

# ПРАВИЛО или ACL ДЛЯ ЗАГРУЗОК
#http_access allow all
acl all_updates url_regex -i "/etc/squid/all_updates"
http_access allow all_updates


# И, наконец, запретить весь другой доступ к этому прокси
http_access deny all

# Squid обычно слушает на порту 3128
http_port 3128

# Добавьте любые свои записи refresh_pattern выше этого.
#
refresh_pattern ^ftp:       1440    20% 10080
refresh_pattern ^gopher:    1440    0%  1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
refresh_pattern \/(Packages|Sources)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
refresh_pattern \/Release(|\.gpg)$ 0 0% 0 refresh-ims
refresh_pattern \/InRelease$ 0 0% 0 refresh-ims
refresh_pattern \/(Translation-.*)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
# пример паттерна для deb пакетов
#refresh_pattern (\.deb|\.udeb)$   129600 100% 129600
refresh_pattern .       0   20% 4320

Но при попытке обновить машину отображаются эти ошибки

не удалось получить http://archive.ubuntu.com/ubuntu/dist/jammy-security/inrelease 403 Forbidden IP ......

Прошу вашей помощи в решении этой ошибки, большое спасибо

.

Ответ или решение

Настройка прокси-сервера Squid на Ubuntu 22.04 в DMZ для изолированной среды может быть сложной задачей, особенно когда возникает ошибка 403 Forbidden при попытке обновления системы. В данном ответе мы рассмотрим, как правильно настроить Squid, чтобы устранить эту проблему и обеспечить корректный доступ к обновлениям.

1. Понимание структуры сети

В вашем случае вы имеете DMZ, где находится ваш прокси-сервер Squid, и внутреннюю сеть, состоящую из машин, которым необходим доступ к интернету через этот прокси. Ошибка 403 Forbidden, как правило, указывает на проблемы с доступом, что может быть вызвано неправильной настройкой правил доступа в конфигурации Squid.

2. Проверка конфигурации Squid

Давайте рассмотрим вашу конфигурацию Squid и внесём необходимые изменения для исправления проблемы.

2.1 Определение IP-адресов

Убедитесь, что в секции acl localnet указаны все необходимые адресные диапазоны:

acl localnet src 0.0.0.1-0.255.255.255  # RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8     # RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
# Добавьте сюда ваш локальный IP-диапазон

2.2 Разрешение доступа

Вам нужно убедиться, что Squid разрешает доступ к обновлениям. Добавьте следующую строку в вашу конфигурацию:

http_access allow localnet

Это правило позволит всем устройствам в указанном локальном диапазоне IP-адресов получать доступ к прокси-серверу.

2.3 Настройка доступа для обновлений

Убедитесь, что ваши ACL для обновлений настроены корректно. Вам нужно правильно настроить ACL для URL, который будет разрешён для доступа. Убедитесь, что файл /etc/squid/all_updates содержит корректные URL-адреса.

acl all_updates url_regex -i "/etc/squid/all_updates"
http_access allow all_updates

2.4 Завершение настройки

Наконец, убедитесь, что все остальные правила доступа правильно настроены, чтобы не блокировать легитимные запросы к прокси:

# Разрешить доступ локальным сетям
http_access allow localnet
# Запретить доступ всем остальным
http_access deny all

3. Пример обновлённой конфигурации Squid

Вот пример секции конфигурации Squid с учётом всех вышеупомянутых изменений:

# Разрешение доступа из локальной сети
acl localnet src 192.168.0.0/16
http_access allow localnet

# Процесс обновления
acl all_updates url_regex -i "/etc/squid/all_updates"
http_access allow all_updates

# Запретить доступ всем остальным
http_access deny all

4. Перезагрузка Squid

После внесения изменений не забудьте перезапустить Squid, чтобы применить новую конфигурацию:

sudo systemctl restart squid

5. Проверка логов

Если ошибка сохраняется, проверьте логи Squid на наличие дополнительных подсказок о том, почему запрос блокируется. Логи находятся в /var/log/squid/access.log. Убедитесь, что нет других ошибок, указывающих на проблему.

Заключение

Следуя указанным выше шагам, вы сможете правильно настроить прокси-сервер Squid и устранить ошибку 403 Forbidden при попытке обновления системы. Убедитесь, что u ваша конфигурация соответствует вашему сетевому окружению и требованиям безопасности. Если проблемы сохраняются, рассмотрите возможность обращения за помощью к профессионалам в области сетевой безопасности или поддержки Squid.

Оцените материал
Добавить комментарий

Капча загружается...