Блокировка интернета при проведении регионального этапа ВсОШ по информатике: различия между версиями

Материал из IT в школе
Перейти к навигацииПерейти к поиску
Добавлена информация и настройке ufw
(Создание страницы)
 
(Добавлена информация и настройке ufw)
Строка 1: Строка 1:


Эта статья создана для помощи организаторам регионального этапа всероссийской олимпиады школьников по информатике в настройке фильтрации доступа в интернет во время олимпиады.
Эта статья создана для помощи организаторам регионального этапа всероссийской олимпиады школьников по информатике в настройке фильтрации доступа в интернет во время олимпиады.
Строка 72: Строка 73:
В Windows можно использовать стандартный файрвол операционной системы.
В Windows можно использовать стандартный файрвол операционной системы.


Для этого нужно создать powershell-скрипт следующего содержания.<syntaxhighlight lang="powershell">
Для этого нужно создать powershell-скрипт следующего содержания.
 
Сохраните этот скрипт в файле с расширением ps1, например, '''block-internet.ps1.'''
 
Этот скрипт нужно запускать с правами администратора. Для этого нужно запустить PowerShell с правами администратора, например, найти в меню "Пуск" Windows PowerShell, сделать правый клик мышью и выбрать "Запуск от имени администратора". Затем в консоли PowerShell ввести полный путь и имя этого скрипта. Участникам олимпиады права администратора компьютера должны быть недоступны.
 
Можно создать ярлык, чтобы скрипт всегда запускался от администратора. Для этого нужно создать новый ярлык, например, на рабочем столе: правый клик мышью - Создать - Ярлык.
 
В поле "Укажите расположение объекта" нужно вписать (заменив "C:\users\student\block-internet.ps1" на правильный путь к скрипту). Параметр -NoExit можно убрать, тогда окно PowerShell будет закрываться после исполнения скрипта.
powershell.exe -ExecutionPolicy Bypass -NoExit -File "C:\users\student\block-internet.ps1"
Затем откройте свойства ярлыка, нажмите "Дополнительно" и поставьте галку "Запуск от имени администратора".<syntaxhighlight lang="powershell">
# Устанавливаем policy для пакетов по умолчанию - Block
# Устанавливаем policy для пакетов по умолчанию - Block
Set-NetFirewallProfile -DefaultInboundAction Block
Set-NetFirewallProfile -DefaultInboundAction Block
Строка 108: Строка 119:
New-NetFirewallRule -DisplayName "Olymp Allow .contest.codeforces.com" -Direction Inbound -Action Allow -RemoteAddress 95.163.252.68
New-NetFirewallRule -DisplayName "Olymp Allow .contest.codeforces.com" -Direction Inbound -Action Allow -RemoteAddress 95.163.252.68


</syntaxhighlight>Сохраните этот скрипт в файле с расширением ps1, например, '''block-internet.ps1.'''
</syntaxhighlight>
 
Этот скрипт нужно запускать с правами администратора. Для этого нужно запустить PowerShell с правами администратора, например, найти в меню "Пуск" Windows PowerShell, сделать правый клик мышью и выбрать "Запуск от имени администратора". Затем в консоли PowerShell ввести полный путь и имя этого скрипта. Участникам олимпиады права администратора компьютера должны быть недоступны.
 
Можно создать ярлык, чтобы скрипт всегда запускался от администратора. Для этого нужно создать новый ярлык, например, на рабочем столе: правый клик мышью - Создать - Ярлык.
 
В поле "Укажите расположение объекта" нужно вписать (заменив "C:\users\student\block-internet.ps1" на правильный путь к скрипту). Параметр -NoExit можно убрать, тогда окно PowerShell будет закрываться после исполнения скрипта.
powershell.exe -ExecutionPolicy Bypass -NoExit -File "C:\users\student\block-internet.ps1"
Затем откройте свойства ярлыка, нажмите "Дополнительно" и поставьте галку "Запуск от имени администратора".


Обратите внимание, что все создаваемые правила начинаются со слова Olymp. Благодаря этому можно отфильтровать эти правила и для снятия ограничений удалить только правила, которые начинаются со слова Olymp. Для этого создайте и запустите следующий PowerShell-скрипт, который удаляет все установленные правила и сбрасывает правила для обработки пакетов "по умолчанию".<syntaxhighlight lang="powershell">
Обратите внимание, что все создаваемые правила начинаются со слова Olymp. Благодаря этому можно отфильтровать эти правила и для снятия ограничений удалить только правила, которые начинаются со слова Olymp. Для этого создайте и запустите следующий PowerShell-скрипт, который удаляет все установленные правила и сбрасывает правила для обработки пакетов "по умолчанию".<syntaxhighlight lang="powershell">
Строка 133: Строка 136:


[[Блокировка интернета в МОС при помощи iptables]] - используется iptables, применимо для дистрибутивов семейства Альт (Альт Образование, Альт рабочая станция, Simply linux и т.д.).
[[Блокировка интернета в МОС при помощи iptables]] - используется iptables, применимо для дистрибутивов семейства Альт (Альт Образование, Альт рабочая станция, Simply linux и т.д.).
==== Настройка ufw в Ubuntu ====
В Ubuntu и дистрибутивах, построенных на его основе, а также в ряде других дистрибутивов (Astra Linux) есть простая утилита [https://wiki.ubuntu.com/UncomplicatedFirewall ufw] для настройки файрвола. Основные особенности использования ufw:
* Не нужно создавать конфигурационные файлы. Каждый вызов утилиты ufw может создавать отдельное правило, для задания нескольких правил нужно несколько раз вызвать утилиту ufw.
* Правила сохраняются между перезапусками. Созданная конфигурация запоминается, не нужно изучать конфигурационные файлы, сохранение происходит автоматически.
* Для отладки и тиражирования конфигурации удобно создать скрипт, в который запишем все нужные вызовы ufw.
* Команда ufw reset сбрасывает все настройки и отключает файрвол.
* Команда ufw enable включает файрвол.
* Команда ufw status verbose выводит текущее состояние файрвола.
Вот пример скрипта для создания всех необходимых правил фильтрации. Его нужно запускать от пользователя root или через sudo<syntaxhighlight lang="bash">
#!/bin/bash
ufw --force reset
ufw enable
# Добавьте следующую строчку при необходимости подключения к компьютеру по ssh для управления им
# ufw allow ssh
# ntp
ufw allow ntp
ufw allow out ntp
# dns
ufw allow domain/udp
ufw allow out domain/udp
# Локальные соединения
ufw allow from 127.0.0.1/8
ufw allow out to 127.0.0.1/8
# Сюда вписываем сайты, к которым должен быть открыт доступ.
ufw allow out to 87.250.250.200
ufw allow out to 2a02:6b8::360
ufw allow out to 77.88.21.14
ufw allow out to 87.250.250.14
ufw allow out to 87.250.251.14
ufw allow out to 93.158.134.14
ufw allow out to 213.180.193.14
ufw allow out to 213.180.204.14
ufw allow out to 2a02:6b8::14
ufw allow out to 178.154.131.215
ufw allow out to 178.154.131.216
ufw allow out to 178.154.131.217
ufw allow out to 2a02:6b8:20::215
ufw allow out to 95.163.252.68
# Делаем reject на остальные хосты при подключении по http и https
ufw reject out http
ufw reject out https
# Политика по умолчанию - отклонять пакеты
ufw default deny incoming
ufw default deny outgoing
</syntaxhighlight>Для отключения фильтрации необходимо выполнить команду
<code>ufw --force reset</code>

Навигация