Коллеги, всем доброго времени суток.
Прошу помочь в настройке доступа.
Есть отдельно стоящий ПК, дебиан 11.
Локальной сетки нет и она не нужна.
Требуется запретить доступ ко ВСЕМ интернет-сайтам, кроме конкретно заданных.
Например, разрешаем условно:
буратино.ру
чебурашка.ру
учеба.ру
...
...
Доступ ко всем остальным надо блокировать.
-----
ЗЫ
Раньше это можно было сделать оч. просто через hosts.allow и hosts.deny.
Сейчас, уже не все программы поддерживают libwrap.
Так, например, в выводе ldd для моей версии фаерфокса не упоминается libwrap.so.
Поэтому редактирование hosts.allow и hosts.deny, насколько я понимаю, бесполезно.
Можно ли как-то обойтись без возни с nftables/iptables, прокси и т.п.?
Ограничить доступ маленького ребёнка к интернету.
Можно ли как-то обойтись без возни с nftables/iptables, прокси и т.п.?
Не без iptables:
#!/bin/bash
# Скрипт: iptables whitelist
# Требуются: iptables, ipset, bind-utils (утилита host)
# Очищаем iptables; Разрешаем всё для создания актуального whitelist
iptables -F ; iptables -X
iptables -P INPUT ACCEPT; iptables -P OUTPUT ACCEPT; iptables -P FORWARD ACCEPT
# Создаём список разрешенных сайтов whitelist
[[ $(ipset -L ) ]] || ipset -N whitelist iphash; ipset -F whitelist
# URL сайтов; для некоторых может потребоваться www. в имени
for site in ya.ru mail.ru www.google.com; do
for ip in $(host $site | grep "has address" | cut -d " " -f4); do
ipset -A whitelist $ip
done
done
# Вывод всех IP-сайтов в белом списке (визуальный контроль)
ipset -L whitelist
# Запрещаем всё
iptables -P OUTPUT DROP
# Разрешаем установленные
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Разрешаем DNS
iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
# Разрешаем все ip из списка whitelist
iptables -A OUTPUT -m set --match-set whitelist dst -j ACCEPT
Для поверки не забывайте переоткрывать браузер по факту применения новых правил iptables. Как-то так. :)
Похожая тема: SiteBlocker - блокировщик сайтов и другого контента по времени
Cпасибо за подробный ответ!
Если найду более простое решение, - поделюсь.
Если найду более простое решение, - поделюсь.
Ок. Для разнообразия можете попробовать свежую прогу "Цензор": https://github.com/AKotov-dev/censor Список правда не белый, а черный: планировщик, три метода блокировки, графика. В релизах есть *.deb.