Настройка средствами iptables фильтрации для избранных пользователей компьютера

Если вы используете домашний ПК или ученические компьютеры в школе на базе Linux, то достаточно легко сделать режим фильтрации только для избранных пользователей этого компьютера (детей), не фильтруя при этом интернет для системных сервисов и других пользователей (учителей, родителей).

Порядок настройки компьютера в этом случае следующий:

  1. Проверьте, что в файле /etc/resolv.conf указаны DNS вашего провайдера или любые другие DNS (не SkyDNS).

  2. Пропишите в личном кабинете SkyDNS внешний IP адрес вашего компьютера для соответствующего профиля настроек. Способы привязки динамических IP адресов можно прочесть в соответствующих инструкциях.

  3. В Iptables пропишите правила для перенаправления трафика определенных пользователей компьютера на адрес DNS серверов SkyDNS.

Пример настройки

iptables -F OUTPUT
iptables -t nat -F OUTPUT
iptables -t nat -A OUTPUT -m owner --uid-owner username -p tcp --dport 53 -j DNAT --to 193.58.251.251:53
iptables -t nat -A OUTPUT -m owner --uid-owner username -p udp --dport 53 -j DNAT --to 193.58.251.251:53 

Где username – это имя соответствующего пользователя компьютера.

Для сохранения правил Iptables после перезагрузки компьютера выполните команду

iptables-save > /etc/iptables.rules

Аналогичным образом можно создать правила для группы, если те пользователи которые должны фильтроваться объединены в группу. В этом случае ключ uid-owner меняется на gid-owner с указанием имени группы пользователей.