6. Завершение настройки и проверка

6.1. Ограничение доступа к web-интерфейсу по IP-адресу

Из соображений безопасности рекомендуем Вам ограничить доступ к web-интерфйсу по IP-адресу:

iptables -I INPUT -p tcp ! -s <YOUR_IP_ADDRESS> --dport 80 -j DROP

<YOUR_IP_ADDRESS> - IP-адрес компьютера, с которого Вы будете использовать web-интерфейс.

6.2. Первоначальная проверка

  • Убедитесь, что сервер SkyDNS Zapret ISP имеет выход в интернет.

С сервера выполните команды ping 8.8.8.8 и ping ya.ru - эти ресурсы должны быть доступны.

  • Проверьте работоспособность локального DNS-сервера:
# На сервере
dig @127.0.0.1 yandex.ru
  • Проверьте, что работает фильтрующий DNS-сервер:
# На сервере
dig @127.0.0.2 <SOME_BLOCKED_DOMAIN>

# На клиенте
dig @%s.%s.%s.%s <SOME_BLOCKED_DOMAIN>

В ответе будут IP-адреса, с неизменяющимся ttl равным 3600.

  • Загрузите источники, используя консольную команду zi-ctl download:
sudo zi-ctl download

Она выполняется несколько минут. На выходе будут сообщения вида:

2018-06-28 12:20:56,697 Downloading module <SRC_NAME> has finished. # Загрузка завершилась успешно
2018-06-28 12:20:57,405 Parsing module <SRC_NAME> has finished. # Загруженные данные были успешно занесены в базу

<SRC_NAME> - название источника (MJ - для списка Министерства юстиции РФ, RKN - для списка Роскомнадзора)

  • Перезапустите сервис zi-update:
sudo supervisorctl restart zi-update

Проверьте, что он работает:

tail -f /var/log/skydns-zi/updater.log

На выходе будет лог, в котором указана текущая скорость разрешения доменных имен и количество успешно/неуспешно разрешенных доменов на текущий момент. Также там должна присутствовать информация о соответствии доменом с IP-адресами:

2018-10-05 11:06:04,812 Host <domain>: ip <ipv4>
2018-10-05 11:06:04,812 Host <domain>: ip <ipv6>
2018-10-05 11:06:04,812 Could not resolve domain <domain> into IPv4/IPv6
  • Проверьте настройку маршрутизации:

Если используются протоколы динамической маршрутизации, проверьте их настройки, наличие запущенных демонов, а также установление отношения соседства следующими способами:

Выполните команду service quagga status и проверьте наличие следующих процессов:

CGroup: /system.slice/quagga.service
        ├─30266 /usr/lib/quagga/zebra --daemon -A 127.0.0.1 # Основной демон Quagga.
        ├─30270 /usr/lib/quagga/bgpd --daemon -A 127.0.0.1 # Демон BGP.
        ├─30274 /usr/lib/quagga/ospfd --daemon -A 127.0.0.1 # Демон OSPF.
        └─30279 /usr/lib/quagga/watchquagga --daemon zebra bgpd ospfd # Демон мониторинга.

Проверьте, что запущен Exabgp service exabgp status.

Для проверки состояния BGP-сессии между Exabgp и Quagga выполните команду:

vtysh -E -c "sh ip bgp neighbors"

Для проверки состояния соседей по OSPF выполните команду:

vtysh -E -c "sh ip ospf neighbor"

Проверьте, что маршрутизатор направляет трафик, идущий на IP-адреса запрещенных ресурсов, на систему фильтрации. Это можно сделать, проверив командой tracert или traceroute маршрут до какого-либо заблокированного ресурса с компьютера, выступающего в роли компьютера клиента. После выполнения команды, один из промежуточных IP-адресов должен быть адресом SkyDNS Zapret ISP.

  • Проверьте правила iptables и списки ipset.

Выполните команды iptables-save и ipset list. Убедитесь в правильности правил iptables (предполагаемые правила располагаются в /usr/share/skydns-zi/firewall.conf) и наличии списков ipset.

  • Проверьте, что запущен сервис Squid:
service squid status

Если все шаги пройдены, то система работает корректно.

6.3. Дополнительная проверка

После выполнения первоначальной проверки, рекомендуется выполнить проверку утилитой SkyDNS Zapret Check.

Это позволит Вам выявить наличие каких-либо неявных проблем.

6.4. Логирование

По умолчанию после установки включен уровень записи в логи DEBUG - подробное отслеживание всего, что происходит в системе. После завершения настройки, в случае, если объем дискового пространства, которым Вы располагаете, меньше 20 Gb, установите уровень записи в логи INFO (логируются основные события - загрузка списков и т.п) или WARNING (только предупреждения и ошибки). Сделать это можно в файле /etc/skydns-zi/config.yml:

---
loglevel: DEBUG # (DEBUG, INFO, WARNING)

После изменения уровня логирования нужно перезапустить сервисы:

sudo service squid restart
sudo supervisorctl restart zi-update

Файлы логов системы фильтрации находятся в папке /var/log/skydns-zi/. Предназначение файлов в папке /var/log/skydns-zi/:

  1. Логи acl пишутся в acl.log.
  2. Работу zi-update можно отслеживать в updater.log.
  3. Проверять анонс маршрутов можно через routing.log.
  4. Всё остальное пишется в isp-filter.log.

Файлы логов Squid находятся в папке /var/log/squid/.

Файлы логов supervisor, который управляет zi-update, находятся в папке /var/log/supervisor/.

Файлы логов uwsgi (web-интерфейс) находятся в /var/log/uwsgi/.