Рейтинг:1

Как иметь auth ip/user|pass auth для каждого порта. Сквид Прокси

флаг cn

Я пытаюсь запустить то, что должно быть простым коммерческим прокси-сервером. Я купил подсеть IP-адресов и хочу сделать эти IP-адреса доступными для некоторых платных клиентов. Вот основные требования, которые я собираюсь выполнить:

  1. 1 порт на 1 IP, статическое соединение - Готово
  2. 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
djdomi avatar
флаг za
Я бы предложил сделать это проще и вместо этого запустить 2 копии squid, если вы беспокоитесь о новой проблеме?
user728874 avatar
флаг cn
@djdomi мне понадобятся тысячи открытых портов, так что, к сожалению, это невозможно :(
djdomi avatar
флаг za
тогда, пожалуйста, обновите свой вопрос, кажется, в настоящее время это проблема x и y, зачем вам нужен http-порт для каждого клиента, когда вы можете установить пользователей или группы и выровнять их acl для получения правил? имейте в виду, что если умирает один-единственный процесс, это затрагивает всех ваших клиентов одновременно....
user728874 avatar
флаг cn
@djdomi Я немного запутался в твоем совете. Нет ли способа иметь acl для каждого порта? Что-то не так с тем, как я задал свои вопросы?
djdomi avatar
флаг za
Короче говоря, что вы пытаетесь решить (проблема X и Y), для чего эта маршрутизация/проксирование?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.