Как открыть доступ к некоторым сайтам
О чем этот текст?
Довольно часто необходимо организовать доступ в Интернет через прокси-сервер для всех сотрудников компании. Но сделать это надо так, чтобы у людей не возникало мысли, отключить Интернет дома, ведь на работе дали «халявный» доступ. То есть необходимо открыть какие-то определенные сайты, а ко всем остальным - оставить закрытым. Этот материал расскажет как это сделать.
Примечание
Прежде чем приступать к практике, убедись, что ты знаешь и понимаешь назначение следующих директив Squid:
Основная часть
# Определяем важный, обязательный ACL с именем all. Он включает в себя все возможные IP адреса протокола IPv4. Потому и его название - all(Все).
acl all src 0.0.0.0/0.0.0.0
#Определяем нашу подсеть
acl ournet src 192.168.1.0/24
# Определяем ACL разрешаемого протокола. В нашем случае это HTTP протокол, так как пользователь в Интернет будет выходить через него.
acl allowed_protocol proto http
# Определяем ACL разрешаемого порта. Порт, через который запрашиваются сайты браузером, по умолчанию - 80.
acl allowed_port port 80
# Определяем ACL разрешаемых сайтов. В этот ACL включим все сайты, к которым хотим открыть доступ.
acl allowed_sites dstdomain .break-people.ru .tforum.break-people.ru .google.com
# Открываем доступ в Интернет по протоколу HTTP(allowed_protocol), на порту 80(allowed_port) к некоторым сайтам(allowed_sites) из нашей подсети (ournet)
http_access allow allowed_protocol allowed_port allowed_sites ournet
# Остальной доступ закрываем.
http_access deny all
Примечание: Почему названия сайтов записаны начиная со знака точки(.)? Потому что если написать без точки, скажем, «break-people.ru», то набрав в строке адреса www.root1234.ru, в доступе будет отказано. То есть с приставкой www. сайт не откроется, как и любой поддомен break-people.ru. А если поставить точку, то и с www. будет открыватся сайт.
Примечание 2: Будет ли работать без указания порта и протокола? Да, будет. В этом материале показано, что можно ограничить доступ вплоть до протокола и порта.
Примечание 3: Обязательно ли задавать ACL all? Да, обязательно. Обычно он уже записан среди ACL'ов в конфигурационном файле squid.conf по-умолчанию. Слово all можно заменить любым, которое нравится, это не принципиально, просто правила мнемоники.