Блокировка интернета в МОС при помощи iptables: различия между версиями

Материал из IT в школе
Перейти к навигацииПерейти к поиску
м
нет описания правки
(Основная статья)
м
Строка 1: Строка 1:




Типичной задачей при проведении олимпиад, тестирований, экзаменов и т.д. может быть ограничение доступа в интернет к одному или нескольким сайтам. Рассмотрим решение этой задачи с использованием iptables - стандартных для Linux правил обработки сетевых пакетов.
Типичной задачей при проведении олимпиад, тестирований, экзаменов и т.д. является ограничение доступа в интернет, оставив доступ к одному или нескольким сайтам. Рассмотрим решение этой задачи с использованием iptables - стандартных для Linux правил обработки сетевых пакетов.


Достоинства использования iptables на рабочих станциях:  
Достоинства использования iptables на рабочих станциях:  
Строка 21: Строка 21:
После этого необходимо отредактировать файлы из каталога /etc/net/ifaces/default/fw/iptables/filter. В этих файлах задаются правила для фильтрации входящих пакетов (INPUT) и исходящих пакетов (OUTPUT), а также для пересылаемых пакетов (FORWARD).
После этого необходимо отредактировать файлы из каталога /etc/net/ifaces/default/fw/iptables/filter. В этих файлах задаются правила для фильтрации входящих пакетов (INPUT) и исходящих пакетов (OUTPUT), а также для пересылаемых пакетов (FORWARD).


Цепочка FORWARD понадобится для настройки фильтрации на сетевых шлюзах. Если компьютер используется в качестве сетевого шлюза, то проходящие через него пакеты обрабатываются в цепочке FORWARD, и используя эту цепочку можно настроить фильтрацию трафика, например, для отдельного компьютерного класса на шлюзе, через который проходят эти пакеты, но настройках межсетевых шлюзов не является предметом этой статьи. Поэтому здесь мы ограничимся только цепочками INPUT и OUTPUT.
Цепочка FORWARD понадобится для настройки фильтрации на сетевых шлюзах. Если компьютер используется в качестве сетевого шлюза, то проходящие через него пакеты обрабатываются в цепочке FORWARD, и используя эту цепочку можно настроить фильтрацию трафика, например, для отдельного компьютерного класса на шлюзе, через который проходят эти пакеты, но настройка межсетевых шлюзов не является предметом этой статьи. Поэтому здесь мы ограничимся только цепочками INPUT и OUTPUT.


Допустим, мы хотим применить следующие правила.
Допустим, мы хотим применить следующие правила.
Строка 27: Строка 27:
*Ограничить доступ к сети интернет только одним сайтом, например, olympiads.ru
*Ограничить доступ к сети интернет только одним сайтом, например, olympiads.ru
*Также необходимо обеспечить работу службы DNS, чтобы браузер и система могли определить IP-адрес данного сайта. DNS использует порт 53.
*Также необходимо обеспечить работу службы DNS, чтобы браузер и система могли определить IP-адрес данного сайта. DNS использует порт 53.
*Снаружи оставим доступ к данному компьютеру по SSH, чтобы сохранить возможность удалённого администрироваться. SSH использует порт 22.
*Снаружи оставим доступ к данному компьютеру по SSH, чтобы сохранить возможность удалённого администрирования. SSH использует порт 22.
*Также оставим возможность использования протокола ICMP для работы ping, например, чтобы можно было "пинговать" наш компьютер.
*Также оставим возможность использования протокола ICMP для работы ping, например, чтобы можно было "пинговать" наш компьютер.


Строка 49: Строка 49:
  -p udp --dport 53 -j ACCEPT
  -p udp --dport 53 -j ACCEPT
Здесь всё аналогично, в третьей строке мы разрешаем все исходящие пакеты на адрес 194.58.88.173. При необходимости открыть доступ к другим адресам добавьте аналогичные строчки. Можно также открыть адрес к некоторой сети, например, так -d 10.0.0.0/8 откроет доступ к группе локальных IP-адресов. В строках 4 и 5 откроем соединения на исходящие порты 53 для того, чтобы работала служба DNS.
Здесь всё аналогично, в третьей строке мы разрешаем все исходящие пакеты на адрес 194.58.88.173. При необходимости открыть доступ к другим адресам добавьте аналогичные строчки. Можно также открыть адрес к некоторой сети, например, так -d 10.0.0.0/8 откроет доступ к группе локальных IP-адресов. В строках 4 и 5 откроем соединения на исходящие порты 53 для того, чтобы работала служба DNS.
Если хочется реализовать блокировку по "чёрному списку", то есь заблокировать доступ к нескольким IP-адресам, оставив открытые все остальные, то можно это реализовать при помощи -P ACCEPT в качестве политики по умолчанию и действий -j DROP для тех адресов, которые нужно заблокировать.


Для того, чтобы изменения вступили в силу, нужно перезагрузить компьютер или перезапустить поддержку сети:
Для того, чтобы изменения вступили в силу, нужно перезагрузить компьютер или перезапустить поддержку сети:

Навигация