Вопрос или проблема
Просто хочу заблокировать доступ к моей внутренней сети от запросов “squid”, таких как маршрутизаторы IDRAC, но squid настолько умный, что не может заблокировать запросы к 192.168.8.1 или 192.168.22.1. Даже запрет не работает, перемещение правил с одного места на другое их не переписывает. Доступ ограничен IP-адресом через брандмауэр: 22.33.44.55, так просто и так сложно. Возможно, “Arch Linux” чего-то не устанавливает, но когда удаляю разрешение, показывает страницу отказа.
#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 localnet src 22.33.44.55
acl localnet2 src 0.0.0.1-0.255.255.255 # RFC 1122 "эта" сеть (LAN)
acl localnet2 src 10.0.0.0/8 # RFC 1918 локальная частная сеть (LAN)
acl localnet2 src 100.64.0.0/10 # RFC 6598 общая адресная область (CGN)
acl localnet2 src 169.254.0.0/16 # RFC 3927 локальные (непосредственно подключенные) машины
acl localnet2 src 172.16.0.0/12 # RFC 1918 локальная частная сеть (LAN)
acl localnet2 src 192.168.0.0/16 # RFC 1918 локальная частная сеть (LAN)
acl localnet2 src fc00::/7 # RFC 4193 диапазон локальных частных сетей
acl localnet2 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
# Например, чтобы разрешить доступ из ваших локальных сетей, вы можете раскомментировать следующее правило (и/или добавить правила, которые соответствуют вашему определению "локального"):
http_access allow localnet
# Запретить CONNECT к другим, кроме защищенных SSL портов
http_access deny CONNECT !SSL_ports
# Разрешить доступ к cachemgr только с локального хоста
http_access allow localhost manager
http_access deny manager
# Эта.default конфигурация позволяет только запросы localhost, потому что более
# разрешительная установка Squid может ввести новые векторы атак в
# сеть, проксируя внешние TCP соединения на незащищенные сервисы.
http_access allow localhost
# Два правила запрета ниже не обязательны в этой.default конфигурации,
# потому что за ними идет правило "запретить всем". Однако они могут стать
# критически важными, когда вы начнете разрешать внешние запросы ниже них.
# Защитите веб-приложения, работающие на том же сервере, что и Squid. Они часто
# предполагают, что только локальные пользователи могут получить доступ к ним на портах "localhost".
http_access deny to_localhost
# Защитите облачные серверы, которые предоставляют локальным пользователям конфиденциальную информацию о
# их сервере через определенные хорошо известные адреса link-local (так называемые APIPA).
http_access deny to_linklocal
#
# ВСТАВЬТЕ СВОЁ СОБСТВЕННОЕ ПРАВИЛО(А) ЗДЕСЬ, ЧТОБЫ РАЗРЕШИТЬ ДОСТУП ОТ ВАШИХ КЛИЕНТОВ
#
acl toblock dstdomain asusrouter.com
http_access deny toblock
http_access deny localnet2
# И, наконец, запретить весь другой доступ к этому прокси
http_access deny all
Ответ или решение
Чтобы успешно заблокировать доступ к определённым диапазонам IP-адресов в конфигурации Squid, важно разобраться в структуре правил доступа, их порядке и специфике настроек. Рассмотрим вашу ситуацию по параметрам, представленным в описании, и по предоставленному коду конфигурации.
1. Понимание текущей конфигурации
Вы создали несколько ACL (Access Control List), чтобы управлять доступом:
localnet
иlocalnet2
содержат множество адресов (в том числе ваши внутренние адреса, такие как 192.168.8.1 и 192.168.22.1).- Есть ACL
toblock
, предназначенная для блокировки доступа к ресурсуasusrouter.com
. - Основные правила доступа (http_access) рядами в нижней части конфигурации определяют, какая группа ACL будет иметь доступ, а какая будет заблокирована.
2. Проблема
Основная проблема заключается в том, что правила блокировки фактически не срабатывают. Ваша конфигурация допускает доступ к внутренним ресурсам, даже если вы пытались их заблокировать. Являясь экспертом в области ІТ, я рекомендую сделать следующее:
3. Рекомендации по исправлению конфигурации
3.1 Изменение порядка правил
Правила Squid обрабатываются в порядке их появления. Если ваше правило http_access deny localnet2
находится ниже более общего разрешающего правила http_access allow localnet
, то оно не будет достигнуто. Измените порядок правил следующим образом:
# Deny access to localnet2 before allowing localnet
http_access deny localnet2
http_access allow localnet
Это гарантирует, что все IP-адреса из localnet2
будут заблокированы перед тем, как будет предоставлен доступ к localnet
.
3.2 Уточнение ACL
Часто проблемы связаны с тем, как вы определяете списки ACL. Убедитесь, что в ваших списках определены все диапазоны IP-адресов, которые вы хотите заблокировать. Для блокировки 192.168.8.1 и 192.168.22.1 можно заменить:
acl localnet2 src 192.168.8.1
acl localnet2 src 192.168.22.1
Если хотите работать с диапазоном, то используйте:
acl localnet2 src 192.168.0.0/16
Это позволит заблокировать все IP-адреса из подсети 192.168.XX.XX.
4. Проверка доступности
Убедитесь, что после внесения изменений вы перезапустили службу Squid. Это можно сделать с помощью следующей команды:
sudo systemctl restart squid
Или с помощью команды:
sudo service squid restart
5. Логи и отладка
Следите за логами Squid, чтобы удостовериться, что блокировки работают корректно. Логи можно найти по умолчанию в /var/log/squid/access.log
. Используйте команду:
tail -f /var/log/squid/access.log
Это поможет вам отслеживать, какие запросы обрабатываются и блокируются.
Заключение
Внесённые изменения в конфигурацию должны помочь вам успешно заблокировать доступ к указанным диапазонам IP. Если после этих действий проблема не решится, возможно, стоит рассмотреть другие настройки вашего окружения, такие как фаервол или другие сетевые настройки, которые могут повлиять на это.
Надеемся, что эти рекомендации помогут вам в решении проблем с конфигурацией Squid. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.