Я пытаюсь запустить то, что должно быть простым коммерческим прокси-сервером. Я купил подсеть IP-адресов и хочу сделать эти IP-адреса доступными для некоторых платных клиентов. Вот основные требования, которые я собираюсь выполнить:
- 1 порт на 1 IP, статическое соединение - Готово
- 1 порт/диапазон портов до 1 или нескольких acl auth ips или user auth. - Проблемы здесь.
Проблема в том, что я пытаюсь добавить ACL к каждому порту отдельно, к сожалению, squid разрешает любому доступу ACL ко всем портам.
Это соответствующие записи в моем файле cfg:
acl server_one_ip источник 40.70.184.218
http_access разрешить server_one_ip
http_access запретить всем
http_порт 3128 имя=port_3128
http_порт 3127 имя=port_3127
acl port_3128_acl имя_порта port_3128
acl port_3127_acl имя_порта port_3127
# просто пересылать трафик, не использовать пиры (не?)
always_direct запрещать порт_3128_acl server_one_ip
always_direct запрещать порт_3127_acl
never_direct разрешить port_3128_acl server_one_ip
never_direct разрешать порт_3127_acl
№ 3128
cache_peer 207.202.217.26 родитель 7823 0 имя по умолчанию только для прокси = proxy3128
cache_peer_access proxy3128 разрешить port_3128_acl server_one_ip
cache_peer_access proxy3128 запретить все
№ 3127
cache_peer 207.202.211.170 родитель 5991 0 имя по умолчанию только для прокси = proxy3127
cache_peer_access proxy3127 разрешить port_3127_acl
cache_peer_access proxy3127 запретить все
Итак, повторюсь, все остальное работает нормально. Каждый порт сохраняет свою внешнюю маршрутизацию статической, проблема в том, что я не знаю, как добавить конкретную акл источник
списки для каждого порта.
Весь мой файл конфигурации, если это поможет:
#
# Рекомендуемая минимальная конфигурация:
#
# Пример правила, разрешающего доступ из вашей локальной сети.
# Адаптируйте список ваших (внутренних) IP-сетей, откуда вы просматриваете
# должно быть разрешено
acl localnet src 10.0.0.0/8 # RFC1918 возможная внутренняя сеть
acl localnet src 172.16.0.0/12 # RFC1918 возможная внутренняя сеть
acl localnet src 192.168.0.0/16 # RFC1918 возможная внутренняя сеть
acl localnet src fc00::/7 # RFC 4193 диапазон локальной частной сети
acl localnet src fe80::/10 # RFC 4291 локальные (подключенные напрямую) машины
acl server_one_ip источник 40.70.184.218
acl SSL_ports порт 443
acl Safe_ports порт 80 # http
acl Safe_ports порт 21 # ftp
acl Safe_ports порт 443 # https
acl Safe_ports порт 70 # суслик
acl Safe_ports порт 210 # wais
acl Safe_ports port 1025-65535 # незарегистрированные порты
acl Safe_ports порт 280 # http-mgmt
acl Safe_ports порт 488 # gss-http
acl Safe_ports порт 591 # файлмейкер
acl Safe_ports порт 777 # мультилинк http
acl метод CONNECT CONNECT
#
# Рекомендуемая минимальная конфигурация прав доступа:
#
# Разрешить доступ к cachemgr только с локального хоста
http_access разрешить диспетчеру локального хоста
http_access менеджер запрета доступа
# Запретить запросы к определенным небезопасным портам
http_access запретить !Safe_ports
# Запретить ПОДКЛЮЧЕНИЕ к портам, отличным от защищенных SSL
http_access запретить ПОДКЛЮЧЕНИЕ !SSL_ports
# Мы настоятельно рекомендуем раскомментировать следующее, чтобы защитить невиновных
# веб-приложения, работающие на прокси-сервере, которые считают единственным
# тот, кто может получить доступ к службам на "localhost", является локальным пользователем
#http_access запретить to_localhost
#
# ВСТАВЬТЕ ЗДЕСЬ СВОИ ПРАВИЛА, ЧТОБЫ РАЗРЕШИТЬ ДОСТУП ОТ ВАШИХ КЛИЕНТОВ
#
# Пример правила, разрешающего доступ из вашей локальной сети.
# Адаптируйте локальную сеть в разделе ACL, чтобы указать ваши (внутренние) IP-сети.
# откуда должен быть разрешен просмотр
http_access разрешить локальную сеть
http_access разрешить локальный хост
http_access разрешить server_one_ip
# И, наконец, запретить всем остальным доступ к этому прокси
http_access запретить всем
# Squid нормально слушает порт 3128
http_порт 3128 имя=port_3128
http_порт 3127 имя=port_3127
nonhierarchical_direct выкл.
acl port_3128_acl имя_порта port_3128
acl port_3127_acl имя_порта port_3127
# просто пересылать трафик, не использовать пиры (не?)
always_direct запрещать порт_3128_acl server_one_ip
always_direct запрещать порт_3127_acl
never_direct разрешить port_3128_acl server_one_ip
never_direct разрешать порт_3127_acl
№ 3128
cache_peer 207.202.217.26 родитель 7823 0 имя по умолчанию только для прокси = proxy3128
cache_peer_access proxy3128 разрешить port_3128_acl server_one_ip
cache_peer_access proxy3128 запретить все
№ 3127
cache_peer 207.202.211.170 родитель 5991 0 имя по умолчанию только для прокси = proxy3127
cache_peer_access proxy3127 разрешить port_3127_acl
cache_peer_access proxy3127 запретить все
# Раскомментируйте строку ниже, чтобы включить кэширование диска - формат пути /cygdrive/<полный путь к папке кэша>, т.е.
#cache_dir aufs /cygdrive/d/squid/cache 3000 16 256
# Оставить дампы ядра в первом каталоге кеша
coredump_dir /var/cache/squid
# Добавьте любую из ваших собственных записей refresh_pattern выше этих.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^ суслик: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
шаблон_обновления . 0 20% 4320
dns_nameservers 8.8.8.8 208.67.222.222
max_filedescriptors 3200