Назад | Перейти на главную страницу

Фильтрация веб-сайтов для клиентов OpenVPN

В настоящее время я пытаюсь заблокировать некоторые веб-сайты по их доменным именам для всех клиентов моего сервера OpenVPN.

Моей первой идеей было использовать /etc/hosts файл. Но его эффекты, похоже, ограничиваются только хостом и не принимаются во внимание OpenVPN.

Затем я попытался настроить bind9 и связать его с OpenVPN, но это решение оказалось безуспешным и неудобным в использовании.

После этого я подумал об использовании iptables для сброса всех пакетов с / на эти веб-сайты, но эта ветка форума заставило меня подумать иначе, поскольку поведение iptables с FQDN может вызвать сложные проблемы.

У вас есть решение для блокировки веб-сайтов для всех клиентов, использующих сервер OpenVPN, на котором я являюсь root?

Вы делаете это так же, как блокируете веб-сайты для пользователей в сети вашей компании: запускаете прокси-сервер и пропускаете через него весь веб-трафик.

Я столкнулся с подобной проблемой. Я просто изменил DNS в файле server.conf OpenVPN на

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

то есть OpenDNS И из панели управления OpenDNS я заблокировал сайты, к которым клиенты не хотели получать доступ через VPN. P.S. Потребуется бесплатная домашняя учетная запись OpenDNS вместе со статическим IP-адресом VPN-сервера.

Вы также можете попробовать фильтровать с помощью iptables и возможностей фильтрации строк. Должно получиться примерно так:

iptables -A FORWARD -m string --string 'Host: facebook.com' -j DROP

Это было бы довольно сложно (поскольку вам нужно вести список имен DNS и создавать такую ​​команду для каждого из них), но, как уже указывал @LucasKauffman, вы не контролируете DNS, поэтому никакой фильтрации там нет.

Также обратите внимание, что это будет работать только для HTTP, а не для HTTPS, поскольку все запросы зашифрованы в HTTPS.

Это вполне логично, поскольку DNS-сервер, используемый клиентом, вероятно, не является вашим хостом. Что вы можете сделать, так это получить все их IP-адреса и заблокировать эти IP-адреса вместо имен хостов.

Даже когда вы настраиваете DNS-сервер, который «блокирует» эти доменные имена, клиент все равно может выбрать работу с другим DNS-сервером, и он сможет обойти этот контроль.