В данной статье мы расскажем вам как заблокировать к определенным вебсайтам (к их доменам) с самым обычным межсетевым экраном 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 xakinfo.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