В данной статье мы расскажем вам как заблокировать к определенным вебсайтам (к их доменам) с самым обычным межсетевым экраном Cisco ASA. Данный метод работает как на старых 5500 моделях, так и на новых 5500-X. Единственное требование – наличие версии ПО старше 8.4(2) Кроме того, вам не требуется никаких фич, присущих МСЭ следующего поколения или дополнительных подписок.
Важный момент – даже если данное решение по блокировке вебсайтов выглядит довольно простым, оно не является заменой полноценному веб-прокси серверу. В случае Cisco, таким решением является Cisco WSA – Web Security Appliance, или же данный функционал можно активировать с помощью покупки подписки на URL фильтрацию для вашего МСЭ следующего поколения.
Используемые методы
Всего существует несколько способов блокировки страниц в интернете:
- Регулярные выражения с MPF (Modular Policy Framework);
- Блокировка по сетевому адресу с помощью листов контроля доступа (ACL);
- Используя FQDN (Fully Qualified Domain Name) в листе контроля доступа (ACL);
Первый метод работает довольно хорошо с HTTP сайтами, но он не будет работать от слова совсем с HTTPS сайтами. Второй метод будет работать только для простых сайтов, у которых статический IP – адрес, то есть будет очень трудоемко настроить его для работы с такими сайтами как Facebook, VK, Twitter и т.д. Поэтому, в данной статье мы опишем третий метод.
Описание настройки
При использовании версии ПО выше или равной 8.4(2), появилась возможность добавлять в ACL такие объекты как FQDN (полные доменные имена). Таким образом, вы можете разрешить или запретить доступ к хостам используя их доменные имена вместо IP – адресов. То есть можно будет запретить доступ к Фейсбуку просто запретив доступ к FQDN объекту «www.facebook.com» внутри ACL.
Важное преимущество данного метода состоит в том, что это не скажется на производительности вашего МСЭ – т.к DNS лукап будет совершен до этого и все ассоциированные с этим FQDN будут храниться в памяти устройства. В зависимости от TTL на DNS лукапе, МСЭ может продолжать совершать DNS запросы для определенного доменного имени (каждые несколько часов, к примеру) и обновлять IP – адреса в памяти.
На примере сети ниже, мы хотим заблокировать доступ к www.website.com, который имеет IP-адрес 3.3.3.3. Наша ASA будет использовать внутренний DNS - сервер (или любой другой DNS – сервер) для получения адреса и запрета доступа к нему во входящем ACL на внутреннем интерфейсе.
Команды
Теперь настало время написать сам конфиг (точнее только его часть, которая касается блокировки страниц). Он указан ниже, с комментариями:
domain-name merionet.ru interface GigabitEthernet0 nameif outside security-level 0 ip address 1.2.3.0 255.255.255.0 interface GigabitEthernet1 nameif inside security-level 100 ip address 192.168.1.1 !другие команды настройки интерфейса скрыты !Указываем, какой DNS сервер использовать для определения IP – адресов dns domain-lookup inside dns server-group DefaultDNS name-server 192.168.1.2 domain-name mycompany.com !Создаем FQDN объекты для тех сайтов, которые хотим заблокировать. Указываем как с www так и без object network obj-www.website.com fqdn www.website.com object network obj-website.com fqdn website.com !Добавляем FQDN объекты во входящий ACL на внутреннем интерфейсе access-list INSIDE-IN extended deny ip any object obj-www.website.com access-list INSIDE-IN extended deny ip any object obj-website.com access-list INSIDE-IN extended permit ip any any !Применяем ACL выше для внутреннего интерфейса access-group INSIDE-IN in interface inside