Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   [решено] Сделать доступ к трем сайтам только в рабочее время (http://forum.oszone.net/showthread.php?t=317625)

Anatoliy2004 08-08-2016 12:55 2657819

Всем привет! Чтоб не начинать новую тему,пишу сдесь о просьбе помощи!!

Итак что у нас есть: свид 3 , написаная конфа для доступа с одного ир адреса, с которонго можно открыть только 3 сайта
Но поступило новое указание от начальства, а именно:
Сделать доступ к трем сайтам только в рабочее время ( с 9-00 до 13-00 и 14-00 до 18-00 ) в остальное время сделать общий доступ к интернету ( доступ ко всем сайтам) с этого ир адреса!

вот конфа:

acl Technolog src 192.168.5.130/24
acl special_url url_regex -i ^http://www.uvk.ua/ua/ ^https://edi.su/ ^https://uk.lardi-trans.com/
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 80 # https
acl SSL_ports port 3128 # https
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 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow CONNECT SSL_ports
http_access allow Technolog special_url
http_access deny Technolog
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all

Зарание благодарен за помощь!!!!!

MakaBooka 09-08-2016 10:26 2658048

в чём вопрос-то?

Anatoliy2004 09-08-2016 10:41 2658055

Цитата:

Цитата Anatoliy2004
Сделать доступ к трем сайтам только в рабочее время ( с 9-00 до 13-00 и 14-00 до 18-00 ) в остальное время сделать общий доступ к интернету ( доступ ко всем сайтам) с этого ир адреса! »


NickM 09-08-2016 10:57 2658063

Anatoliy2004, описываете acl с указанием времени, в Вашем случае будет 5 правил времени,
Рабочее время:
1 - с 9.00 до 13.00
2 - с 14.00 до 18.00
Не рабочее время:
3 - с 13.01 до 13.59
4 - с 18.01 до 23.59
5 - с 0.00 до 8.59
а после эти правила применяете/назначаете

Код:

acl worktime1 time SMTWHFA 9:00-13:00
acl worktime2 time SMTWHFA 14:00-18:00
acl noworktime1 time SMTWHFA 13:01-13:59
acl noworktime2 time SMTWHFA 18:01-23:59
acl noworktime3 time SMTWHFA 00:00-8:59


Anatoliy2004 09-08-2016 11:13 2658075

NickM, по правилах с временем я понял! но не могу понять как в нерабочее время этому ир адресу дать полный доступ, тоесть без ограничений!!!???

El Scorpio 10-08-2016 09:20 2658355

Цитата:

Цитата Anatoliy2004
не могу понять как в нерабочее время этому ир адресу дать полный доступ »

Код:

http_access deny Workstation !WorkSites Worktime_PM
http_access deny Workstation !WorkSites Worktime_AM
http_access allow Workstation

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

MakaBooka 10-08-2016 10:55 2658381

А, понятно. Просто нужно было процитировать ман и conf-пример. А я думал что-то конкретное не получается.

El Scorpio 12-08-2016 03:38 2659034

Anatoliy2004, делать нужно так:
строки acl для значений Workstation, WorkSites, Worktime_PM и Worktime_AM вставляете в файл /etc/squid/squid.conf в любом порядке вместе с остальными строками acl в любом порядке

Код:

http_access deny Workstation !WorkSites Worktime_PM
http_access deny Workstation !WorkSites Worktime_AM
http_access allow Workstation

вставляете перед другими строками http_access


Принцип блокировки доступа простой: Squid проверяет каждый запрос HTTP по списку http_access в порядке их очерёдности.
Если запрос соответствует всем условиям строки: он или пропускается для строки allow, или же блокируется для строки deny
Если какое-то из условий строки не совпадает, то происходит проверка по следующей строке списка.
В конце списка обычно стоит строка "блокировать всё"

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

Anatoliy2004 20-09-2016 11:11 2670421

Поправьте пожалуйста если чтото сделал не так!!!

acl Workstation src 192.168.5.130/24
acl special_url url_regex -i ^http://www.uvk.ua/ua/ ^https://edi.su/ ^https://uk.lardi-trans.com/

acl worktime1 time SMTWHFA 9:00-13:00
acl worktime2 time SMTWHFA 14:00-18:00
acl noworktime1 time SMTWHFA 13:01-13:59
acl noworktime2 time SMTWHFA 18:01-23:59
acl noworktime3 time SMTWHFA 00:00-8:59

acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 80 # https
acl SSL_ports port 3128 # https
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 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

http_access deny Workstation !WorkSites Worktime_PM
http_access deny Workstation !WorkSites Worktime_AM
http_access allow Workstation

http_access allow CONNECT SSL_ports
http_access allow Workstation special_url
http_access deny Workstation
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all

El Scorpio 21-09-2016 01:17 2670652

Цитата:

Цитата Anatoliy2004

зачем?
url_regex используется, чтобы ограничивать доступ к конкретным страницам сайта по значению строки URL
К тому параметры url_regex не работают для запросов HTTPS, потому что этот протокол передаёт строку URL в шифрованном виде.

Если нужен выбор просто по именам сайтов, используйте параметры dstdomain (для отбора конкретных имён) или dstdom_regex (для отбора по регулярным выражениям)
Внимание: имена сайтов site.com и www.site.com служба SQUID воспринимает, как имена разных сайтов. В параметре dstdomain всегда прописывайте оба варианта написания.

Anatoliy2004 21-09-2016 11:13 2670734

El Scorpio,

В первом посте есть рабочий конфиг, который работает!!!! Тоесть squid пропускает только к этим трем сайтам (http://www.uvk.ua/ua/ ^https://edi.su/ ^https://uk.lardi-trans.com/) 24 часа в сутки!
Цитата:

Цитата El Scorpio
К тому параметры url_regex не работают для запросов HTTPS, »

все работает!!!!

Мне нужно чтоб ограничение это работало только в рабочее время!!! (9-13 и 14-18 ) а в нерабочее был полный доступ ко всем сайтам!!!

El Scorpio 22-09-2016 01:04 2671000

Цитата:

Цитата Anatoliy2004
Мне нужно чтоб ограничение это работало только в рабочее время!!! (9-13 и 14-18 ) а в нерабочее был полный доступ ко всем сайтам!!! »

У вас есть нужные строки
acl worktime1 time SMTWHFA 9:00-13:00
acl worktime2 time SMTWHFA 14:00-18:00

и
http_access deny Workstation !WorkSites Worktime_PM
http_access deny Workstation !WorkSites Worktime_AM


просто пропишите названия ACL одинаково

Anatoliy2004 22-09-2016 11:58 2671126

Вот так правильно???
acl Workstation src 192.168.5.130/24
acl special_url url_regex -i ^http://www.uvk.ua/ua/ ^https://edi.su/ ^https://uk.lardi-trans.com/

acl worktime1 time SMTWHFA 9:00-13:00
acl worktime2 time SMTWHFA 14:00-18:00
acl noworktime1 time SMTWHFA 13:01-13:59
acl noworktime2 time SMTWHFA 18:01-23:59
acl noworktime3 time SMTWHFA 00:00-8:59

acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 80 # https
acl SSL_ports port 3128 # https
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 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

http_access deny Workstation !WorkSites worktime1
http_access deny Workstation !WorkSites worktime2
http_access allow Workstation

http_access allow CONNECT SSL_ports
http_access allow Workstation special_url
http_access deny Workstation
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all

El Scorpio 23-09-2016 01:05 2671283

Цитата:

Цитата Anatoliy2004
http_access deny Workstation !WorkSites worktime1
http_access deny Workstation !WorkSites worktime2
http_access allow Workstation »

Вы думаете, я это "крибле-крабле-бумс" просто так написал?
Вы вообще пробовали понять смысл этих строк конфига, или просто так копипастите?
Неужели вам не понятно, что WorkSites означает список рабочих сайтов?


Если всё-таки не понятно, объясняю.
Первая строка: запретить доступ с компьютеров из списка Workstation ко всем сайтам, которые не входят в список WorkSites, в период времени worktime1 (рабочее время до обеда)
Вторая строка: запретить доступ с компьютеров из списка Workstation ко всем сайтам, которые не входят в список WorkSites, в период времени worktime2 (рабочее время после обеда)
Третья строка: разрешить доступ с компьютеров из списка Workstation

Поскольку директивы http_access проверяются по очереди в заданном порядке до первого полного соответствия, третья строка выполнится, только если не сработали предыдущие строки. Таким образом третья строка разрешает все запросы к "рабочим" сайтам в любое время и доступ ко всем сайтам в "нерабочее" время.


А теперь объясните мне, почему вы задаёте список рабочих сайтов значением special_url и используете это значение в строке, которая никогда не сработает?

P.S.
Кстати да, я уже писал вам о том, что параметр url_regex используется, когда нужно обеспечить проверку по адресам конкретных страниц сайтов.
А если нужно просто проверять сайты, то нужно использовать другие параметры, которые гораздо проще задавать и гораздо быстрее обрабатывать.

Anatoliy2004 23-09-2016 14:35 2671423

а так ???

acl Workstation src 192.168.5.130/24
acl WorkSites dstdomain .uvk.ua .edi.su .uk.lardi-trans.com
acl worktime1 time SMTWHFA 9:00-13:00
acl worktime2 time SMTWHFA 14:00-18:00
http_access deny Workstation !WorkSites worktime1
http_access deny Workstation !WorkSites worktime2
http_access allow Workstation

El Scorpio 27-09-2016 09:05 2672592

Цитата:

Цитата Anatoliy2004
acl WorkSites dstdomain .uvk.ua .edi.su .uk.lardi-trans.com »

Имена сайтов нужно писать без первой точки и желательно писать второй раз с префиксом www.. Потому что это разные имена сайтов.

acl WorkSites dstdomain uvk.ua www.uvk.ua и так далее по списку

Anatoliy2004 04-10-2016 16:03 2674983

El Scorpio,
Спасибо большущее всё получилось!!!!!

P/S думаю тема будет актуальна для многих !)


Время: 22:07.

Время: 22:07.
© OSzone.net 2001-