Для начала работы с ACL, нажмите на иконку Access Control(Контроль доступа) на главной странице модуля.
Рисунок - Главная страница модуля Squid. Для увеличения картинки, нажмите на неё.
Прежде чем вы сможете запрещать или разрешать приём запросов с некоторых адресов, на некоторые сервера, или на какие-нибудь страницы, вам нужно будет создать соответствующий ACL. Для этого выполните следующие действия:
1. Выберите тип ACL из меню расположенного ниже таблицы Access control lists(списки контроля доступа) и нажмите кнопку Create new ACL(Создать новый ACL).
Рисунок - Таблица Access Control lists. Для увеличения картинки, нажмите на неё.
2. В форме которая появилась, введите название нового ACL в поле ACL name(ACL имя). Название должно состоять только из букв и цифр без пробелов и специальных символов.
Рисунок - Форма Create ACL. Для увеличения картинки, нажмите на неё.
3. При заполнении описания ACL, руководствуйтесь таблицей ниже.
4. В поле Failure URL(Ошибочный URL) введите полный URL на который будут перенаправлены все клиенты если они не проходят по ACL Это позволяет определить пользовательские страницы ошибок, которые будут отображаться вместо автоматически генерируемых Squid ответов.
5. Нажмите кнопку Save(Сохранить) в нижней части формы.
После того, как ACL будет создан, вы можете редактировать его, нажав на его имя в списке. После внесения изменений нажмите кнопку Save(Сохранить). Вы также можете удалить его (если он не используется некоторым прокси или ICP ограничениями), нажав кнопку Delete(Удалить). Как обычно, кнопка Apply Changes(Применить изменения) активирует изменения, которые вы сделали.
Squid имеет удивительное число ACL типов, хотя и не все доступны во всех версиях прокси сервера. Таблица ниже представляет собой список тех типов, которые вы можете создадвать в Squid 2.4. К каждому типу прилагается объяснение в соседних столбцах.
Таблица - Squid ACL типы
Тип |
Цель |
Поля |
---|---|---|
Browser RegExp |
Проверяет заголовок User-Agent HTTP для определения типа браузера клиента. Полезно для блокирования определенных браузеров |
Browser regexp: Для ввода Perl-syle регулярных выражений для идентификации браузеров. Например, IE 5.5 отправляет идентификатор Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; H010818). |
Client address |
Проверяется IP-адрес клиента, имеет ли он право отправлять запросы. Часто используется, чтобы разрешать доступ клиентам только из вашей LAN. |
Как поясняется в разделе 44.6 "Введение в ACL ", при создании или редактировании ACL такого типа, появится таблица с тремя колонками. Каждая строка в таблице определяет соответствие IP-адреса или диапазона адресов сети. Заполнение строки осуществляется, введением значений в поля -From IP(Начиная с IP адреса), To IP(Заканчивая IP адресом), либо можно указать диапазон адресов введя необходимые значения в поля From IP(Начиная с IP) и Netmask(Маска сети). Сохраняя и заново редактируя Client address ACL, вы получаете каждый раз ещё одну пустую строку к таблице уже введенных значений. Это позволяет добавлять более одной строки в таблицу. |
Client Hostname |
Проверяет имя хоста клиента от которого поступил запрос. Осуществляется поиск в базе DNS запись соответствующая IP адресу клиента. После этого найденная запись сравнивается с именем хоста или домена. Бывает полезным для разрешения доступа клиентам только из вашей сети. Заметим, что этот тип ACL очень похож на Client Address, с той лишь разницей, что в Client Address происходит сравнение с IP адресом, а в Client Hostname - с именем согласно DNS. |
Domains: Для ввода списка хостов или доменных имен с которыми будет сравниватся клиентский хост или домен. Например, example.com. |
Client RegExp |
Проверяет имя хоста клиента от которого поступил запрос. Как и тип Client Hostname ACL, но совпадения ищутся согласно регулярному выражению. |
Regular expression: Для ввода Perl-style регулярных выражений, для сравнения с именем хоста, например ^.*.foo.com$. Если выбрано Ignore case?, тогда сравнения будут регистронезависимыми. |
Date and Time |
Проверяет дату и время поступления запроса. Позволяет ограничивать доступ по дате и времени. Обычно используется, для организации доступа в Интернет, строго в рабочие часы. |
Days of the week: Если выбрано All(Все), то в ACL попадут клиенты запросивший доступ в любой день недели. Если выбрано Selected(Выбранные), то в ACL попадут клиенты запросившие доступ в выбранные дни. Hours of the day: Если выбрано All(Все), то в ACL попадут клиенты запросившие доступ в любое время. Иначе вам следует ввести время открытия доступа и его закрытие, в формате 24 часов, по маске ЧЧ:ММ (часы: минуты) в соответствующие поля. Например, начало в 08:00, а окончание в 17:00. Только запросы в этот промежуток времени будут отправлены. |
Dest AS Numbers |
Не используется. |
Не используется. |
Ethernet Address |
Проверяет клиентский MAC адрес. Это может использоватся в сети с динамической раздачей IP адресов. Но это оказывается бесполезным, если между клиентом и прокси есть маршрутизатор(роутер). Этот тип ACL доступен, если Squid скомпилирован с опцией -enable-arp-acl. |
Client Ethetnet addresses: Вводится список MAC-адресов, разделённых точкой с запятой. Например, 00: D0: B7: 1D: FB: A1. |
External Auth |
Проверяется Username клиента, отправившего запрос. Если этот тип ACL используется, то клиенты пропускаются прокси, сверяя только Username. См. "Установка прокси авторизации" для более подробной информации. |
External auth users: Если выбрано All users, авторизация будет необходима каждому клиенту по его Username, и каждый попадет в этот список ACL. Если выбрано будет Only those listed, то получат доступ только те, чьи имена(Username) будут перечислены в поле для ввода. |
External Auth Regexp |
Проверяется Username клиента, отправившего запрос. ACL такой же как предыдущий, но с поддержкой регулярных выражений. |
External auth users: Вводятся Perl-style регулярные выражения для сверки пользовательских имен(Username). Если выбрано Ignore case?(Игнорировать регистр?) то проверка будет регистронезависимой. |
Maximum Connections |
Тип ACL проверяет количество одновременных сессий от клиента. Используется для снижения нагрузки на сервер. |
Maximum concurrent request: Вводится количество одновременных сессий на клиента. |
Proxy IP Address |
Проверяет IP адрес клиента. Используется в том случае, если ваша система имеет несколько сетевых интерфейсов и вы хотите использовать их по разному. Этот ACL можно использовать для блокировки соединений из Internet. |
IP address: Вводится IP адрес или подсеть адресов локального пула. Например, 192.168.1.100. Netmask: Вводится маска сети для проверки IP адреса. Если нужно указать один IP адрес, то укажите 255.255.255.255. |
Proxy Port |
Проверяет TCP порт прокси на который подключаются клиенты. ACL может быть полезен если ваш прокси слушает несколько портов, один из которых используется для прозрачного проксирования. |
Proxy server port: Вводится список портов, разделенных пробелом, на которые будет "подвешен" локальный порт. |
RFC931 User |
Протокол RFC931 может быть использован для идентификации UNIX пользователей, подключенных к вашему прокси. При этом клиентская система должна быть под UNIX'ом и демон ident включен. Этот ACL может быть использован для разрешения доступа удаленным пользователям, но это используется только если клиентская система под вашим контролем или под контроле доверенного лица, из соображений безопасности. |
RFC931 users: Вводите список имен удаленных пользователей для разрешения доступа. Например, jcameron. |
Request MIME type |
Проверяет MIME тип пользовательского запроса. Обычно для POST запросов это application/x-www-form-urlencoded и для отправки(upload) файлов это multipart/form-data. |
Request MIME type: Вводите тип запроса согласно которому будет производится сверка и занесение в ACL. |
Request Method |
Проверят метод, которым отправлен запрос. Каждый HTTP запрос включает метод отправки данных. Это один из: GET: используется для нормальных запросов со страниц или форм. POST: используется только для форм. CONNECT: используется для открытия прямого соединения на некоторый удаленный порт, обычно SSL. Этот ACL может использоватся для блокировки незащищенных(non-SSL) соединений. |
Request methods: Расставьте галочки напротив тех методов запроса, которые будут проверятся на совпадение. |
SNMP Community |
Проверяется запрос отправленный от SNMP агента. Этот тип полезен только для ограничения доступа к агенту SNMP Squid. |
SNMP community string: Строка инициализации SNMP агента. |
Source AS Number |
Не используется. |
Не используется. |
URL Path RegExp |
Проверяет путь в запрашиваемом URL. Путь это всё после имени хоста и порта. Например, /images/foo.gif. Полезно для определения запросов сгенерированных CGI-программами. |
Regular expressions: Вводите Perl-style регулярные выражения для сравнения с URL path. Если выбрано Ignore case?(Игнорировать регистр?) то проверка будет регистронезависимой. |
URL Port |
Этот тип ACL проверяет порт по которому происходит URL запрос. Полезно для блокирования не-HTTP(non-HTTP) портов, таких как 23 или 25. Есл номер порта не указан, то будут использоваться порты по умолчанию: HTTP - 80; FTP - 21. |
TCP ports: Ввводите список портов, разделённых пробелами, которые будут проходить проверку с запрошенным портом. |
URL Protocol |
Проверяется протокол URL Запроса. Например, HTTP или FTP. Этот ACL может использоватся для блокировки FTP доступа для одного или нескольких пользователей. |
URL Protocols: Расставьте галочки напротив протоколов, которые будут проходить сверку. Специальный протокол cache_object используется только Squid cache manager.
|
URL RegExp |
Првоеряет URL запрос на совпадение согласно регулярных выражений. Используется для блокировки отдельных страниц ли сайтов. |
Regular expressions: Вводите Perl-style регулярные выражения для сравнения с URL. Если выбрано Ignore case?(Игнорировать регистр?) то проверка будет регистронезависимой. |
Web Sever Address |
Проверяется IP адрес сервера к которому отправлен запрос. Это может быть использовано для блокировки сетей или серверов со специфическим контентом, к которому вы хотите запретить доступ пользователям. |
Введите IP адрес сервера и маску сети. Как и везде в Webmin, для добавления дополнительного IP адреса, необходимо сохранить введенную информацию и открыть этот ACL на редактирование вновь. |
Web Server Hostname |
Проверяет имя хоста в URL. |
Domains: Вводите список имен хостов или доменных имен с которыми будут проводится сравнение. |
Web Server RegExp |
Проверяет имя хоста согласно регулярным выражениям. |
Regular expressions: Вводите Perl-style регулярные выражения для сравнения с именами хоста. Если выбрано Ignore case?(Игнорировать регистр?) то проверка будет регистронезависимой. |
Множество типов ACL несрабатывают в конкретных ситуациях. Например, клиент посылает CONNECT запрос, в нем нет URL path, поэтому URL path RegExp не сработает. В таких случаях ACL автоматически пропускает запрос.
Ссылки:
К содержанию