squid врежиме прозрачного прокси разрешить только определенные сайты (squid работает в двух режимах.)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение Voler »

Добрый день.

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

И можно ли это сделать?
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian
Контактная информация:

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение McSim »

Могу предположить, что примерно так:

Код: Выделить всё

acl   имя_acl  myportname   указать_порт_который_указан_в_http_port_nnn_transparent
acl   tolko_saiti    dstdomain      указать_разрешенный_сайт
http_access        allow              имя_acl  tolko_saiti
http_access        deny               имя_acl


Но нужно потестить... Но в целом, по логике должно отработать. Да, и squid должкн быть не менее 3.0 для данного acl myportname
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение Voler »

Сделал так
acl transparent 3128
acl white_list dstdomain ritishcoucil.ru
http_access allow transparent white_list
http_access deny transparent

Пишет ошибку
Starting squid service: 2012/10/17 22:15:42| aclParseAclLine: Invalid ACL type '3128'
FATAL: Bungled squid.conf line 611: acl transparent 3128
Squid Cache (Version 3.0.STABLE19): Terminated abnormally.
CPU Usage: 0.080 seconds = 0.048 user + 0.032 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian
Контактная информация:

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение McSim »

Voler писал(а):
17.10.2012 22:17
Сделал так
acl transparent 3128
acl white_list dstdomain ritishcoucil.ru
http_access allow transparent white_list
http_access deny transparent

Пишет ошибку
Starting squid service: 2012/10/17 22:15:42| aclParseAclLine: Invalid ACL type '3128'
FATAL: Bungled squid.conf line 611: acl transparent 3128
Squid Cache (Version 3.0.STABLE19): Terminated abnormally.
CPU Usage: 0.080 seconds = 0.048 user + 0.032 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0

нужно было

Код: Выделить всё

acl   transparent  myportname 3128
acl white_list dstdomain ritishcoucil.ru
http_access allow transparent  white_list
http_access deny transparent
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian
Контактная информация:

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение McSim »

подправил оригинальный образец, чтобы было понятней наглядней.
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение Voler »

McSim писал(а):
18.10.2012 08:20
подправил оригинальный образец, чтобы было понятней наглядней.


acl transparent myportname 3128
acl white_list dstdomain ritishcoucil.ru dnevnik.ru
http_access allow transparent white_list
http_access deny transparent


Сделал так, но сайты не открываются.
Вот полный конфиг.

Код: Выделить всё

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
acl password proxy_auth REQUIRED
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl Rsync_ports port 873
acl Jabber_ports port 5222 5223
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  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 563         # snews
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl CONNECT method CONNECT
acl transparent myportname 3128
acl white_list dstdomain ritishcoucil.ru dnevnik.ru
http_access allow transparent  white_list
http_access deny transparent
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports !Jabber_ports !Rsync_ports
http_access allow password
http_access deny all
icp_access allow localnet
icp_access deny all
htcp_access allow localnet
htcp_access deny all
http_port 192.168.24.1:3128
http_port 192.168.24.1:3128 transparent
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern (cgi-bin|\?)    0       0%      0
refresh_pattern .               0       20%     4320
negative_ttl 0
visible_hostname localhost
icp_port 3130
icap_enable on
icap_connect_timeout 100 second
icap_io_timeout 100 second
icap_preview_enable off
icap_send_client_ip on
icap_send_client_username on
icap_client_username_header X-Authenticated-User
icap_client_username_encode on
icap_service service_url_filter reqmod_precache 0 icap://127.0.0.1:1344/url_filter
icap_service service_url_filter_res respmod_precache 1 icap://127.0.0.1:1344/url_filter
icap_class class_url_filter service_url_filter service_url_filter_res
icap_access class_url_filter allow all
coredump_dir /var/spool/squid
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian
Контактная информация:

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение McSim »

у тебя на одном порту и транспарент и не транспарент.

Код: Выделить всё

http_port 192.168.24.1:3128
http_port 192.168.24.1:3128 transparent

Я думаю, что это вообще не гуд.

Я бы на время экспериментов отключил icap
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение Voler »

McSim писал(а):
18.10.2012 12:21
у тебя на одном порту и транспарент и не транспарент.

Код: Выделить всё

http_port 192.168.24.1:3128
http_port 192.168.24.1:3128 transparent

Я думаю, что это вообще не гуд


http_port 192.168.24.1:3129
http_port 192.168.24.1:3128 transparent
Сделал так, теперь ошибка вот такая
ERROR
The requested URL could not be retrieved

While trying to retrieve the URL: http://dnevnik.ru/

The following error was encountered:

Access Denied.

Access control configuration prevents your request from being allowed at this time. Please contact your service provider if you feel this is incorrect.
Может список сайтов перенсти в отдельный файл и нужно писать полносью http://Site_Name?

Your cache administrator is webmaster.
Generated Thu, 18 Oct 2012 09:50:09 GMT by localhost (squid/3.0.STABLE19)
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian
Контактная информация:

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение McSim »

Voler писал(а):
18.10.2012 13:53
Access Denied.

где-то ему не хватает прав.
Voler писал(а):
18.10.2012 13:53
Может список сайтов перенсти в отдельный файл и нужно писать полносью http://Site_Name?

адреса необходимо задавать как .host.ru
для траблешутинга можно попробовать оставить из http_access только:

Код: Выделить всё

http_access allow transparent
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports !Jabber_ports !Rsync_ports
http_access deny all
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение Voler »

Сделал пока так:
# grep -v "^#" /etc/squid/squid.conf | sed -e '/^$/d'

Код: Выделить всё

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
acl password proxy_auth REQUIRED
acl whitelist url_regex "/etc/squid/whitelist"
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl Rsync_ports port 873
acl Jabber_ports port 5222 5223
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  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 563         # snews
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports !Jabber_ports !Rsync_ports
http_access allow localnet whitelist
http_access allow password
http_access deny all
icp_access allow localnet
icp_access deny all
htcp_access allow localnet
htcp_access deny all
http_port 192.168.24.1:3128
http_port 192.168.24.1:3129 transparent
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern (cgi-bin|\?)    0       0%      0
refresh_pattern .               0       20%     4320
negative_ttl 0
visible_hostname localhost
icp_port 3130
icap_enable on
icap_connect_timeout 100 second
icap_io_timeout 100 second
icap_preview_enable off
icap_send_client_ip on
icap_send_client_username on
icap_client_username_header X-Authenticated-User
icap_client_username_encode on
icap_service service_url_filter reqmod_precache 0 icap://127.0.0.1:1344/url_filter
icap_service service_url_filter_res respmod_precache 1 icap://127.0.0.1:1344/url_filter
icap_class class_url_filter service_url_filter service_url_filter_res
icap_access class_url_filter allow all
coredump_dir /var/spool/squid


Но один минус, добавлять сайты приходится и в whitelist и в БД netpolice.
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian
Контактная информация:

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение McSim »

Тоже рабочее решение, но при таком конфиге и те кто с аутентификацией тоже будет ходить на сайты из whitelist без ограничений. При этом, если стоит какой-то биллинг, он не будет видеть имен пользователей, отправившихся на сайты из whitelist (они все будут по IP в логах).
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение Voler »

Изначальное решение интересно мне, тоже просто времени не было.
Буду пробовать.
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: squid врежиме прозрачного прокси разрешить только определенные сайты

Сообщение Poor Fred »

Почему бы не возпользоваться rejik'ом или другим редиректором?
Убить всех человеков!
Спасибо сказали:
Ответить