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

Материал из IT в школе
Перейти к навигацииПерейти к поиску
(Создание страницы, настройка в МОС)
 
(Для online.olimpiada.ru выписана целиком сеть 212.193.144.0/20)
 
(не показано 19 промежуточных версий этого же участника)
Строка 1: Строка 1:


Эта статья описывает необходимые настройки фильтрации интернета при проведении школьного и муниципального этапов всероссийской олимпиады школьников в Москве, если такая фильтрация осуществляется на каждом компьютере при помощи файрвола на каждом компьютере. В статье описаны настройки для систем МОС-12 и Windows-10.
 
 
При проведении муниципального этапа ВсОШ по информатике в Москве места проведения должны фильтровать доступ в интернет по указанным правилам. Фильтрация может быть осуществлена на сетевом оборудовании (роутере), централизованно для всех участников. При отсутствии роутера фильтрация осуществляется на каждом компьютере настройкой файрвола операционной системы.
 
Эта статья описывает необходимые настройки фильтрации интернета при проведении муниципального этапов всероссийской олимпиады школьников в Москве. В статье описаны настройки для систем МОС-12 и Windows. Фильтрацию можно реализовать на МОС-10 используя правила из этой статьи и инструкцию [[Блокировка интернета в МОС при помощи iptables|Блокировка интернета в МОС при помощи iptables.]]
 
Список необходимых хостов из этой статьи может дополняться и меняться. Перед муниципальным этапом необходимо использовать актуальный список.
 
До проведения муниципального этапа рекомендуется провести проверку фильтрации при проведении любого школьного этапа ВсОШ, а также при проведении школьного этапа ВсОШ по информатике в Москве.
 
После настройки фильтрации необходимо проверить, что данные сайты открываются в браузере, другие сайты (например, ya.ru, vk.com, gmail.com, web.telegram.org) - не открываются.


=== Список необходимых разрешённых хостов ===
=== Список необходимых разрешённых хостов ===
Строка 6: Строка 16:


* Для всех соединений, находящихся в состоянии Established или Related, то есть для уже открытых соединений.
* Для всех соединений, находящихся в состоянии Established или Related, то есть для уже открытых соединений.
* DNS-протокол: TCP и UDP, порт 53.
* DNS-протокол: UDP, порт 53.
*mDNS-протокол (zeroconf, Avahi): UDP порт 5353
*NTP-протокол: UDP порт 123.
* ICMP-протокол, входящие и исходящие соединения, для тестирования сети командой ping.
* ICMP-протокол, входящие и исходящие соединения, для тестирования сети командой ping.
* Входящие соединения по протоколу TCP на порт 22 - если используется ssh-сервер, запущенный на компьютере, для удалённого управления им.
* Входящие соединения по протоколу TCP на порт 22 - если используется ssh-сервер, запущенный на компьютере, для удалённого управления.
*Входящие соединения по протоколу TCP на порты 11100, 11200, 11300, 11400 - если используется Veyon для удалённого управления.
* Все соединения на localhost, для работы локальных приложений.
* Все соединения на localhost, для работы локальных приложений.


Также должны быть разрешены исходящие соединения на следующие адреса.
В случае использования средств удалённого управления (ssh, Veyon) они не должны быть доступны участникам для подключения к компьютерам других участников.
 
Также должны быть разрешены соединения со следующими хостами.
{| class="wikitable"
{| class="wikitable"
|+Список открытых хостов
|+Список открытых хостов
Строка 28: Строка 43:
94.79.51.83
94.79.51.83
|Необходим для работы тестирующей системы МЭШ и "Магазина приложений" МОС
|Необходим для работы тестирующей системы МЭШ и "Магазина приложений" МОС
|-
|uchebnik.mos.ru
|94.79.51.81
94.79.51.82
94.79.51.83
|Необходим для работы тестирующей системы МЭШ
|-
|login.mos.ru
|212.11.151.56
212.11.151.57
212.11.151.58
|Необходим для авторизации в МЭШ. Сам сайт login.mos.ru открывать не нужно, он делает редирект на mos.ru
|-
|online.olimpiada.ru
|46.235.186.69
46.235.188.68
78.41.110.69
93.93.88.23
212.193.144.0/20
|Резервная тестирующая система
|-
|vos.olimpiada.ru
|185.178.208.183
|Сайт ВсОШ в Москве
|-
|всош.цпм.рф
|185.30.228.25
|Сайт ВсОШ в Москве (xn--b1ayi3a.xn--l1afu.xn--p1ai)
|-
|-
|olympiads.ru
|olympiads.ru
|194.58.88.173
|194.58.88.173
|Сайт городской предметно-методической комиссии ВсОШ по информатике
|Сайт городской предметно-методической комиссии ВсОШ по информатике
|-
|mc.yandex.ru
|87.250.250.119
87.250.251.119
93.158.134.119
77.88.21.119
|Метрика яндекса, если заблокировать, то браузер будет долго загружать страницу
|-
|-
|os.mos.ru
|os.mos.ru
Строка 53: Строка 110:
|152.199.19.160
|152.199.19.160
|Необходим для скачивания расширений для VSCode
|Необходим для скачивания расширений для VSCode
|-
|
|
|
|-
|-
|it-help-school.ru
|it-help-school.ru
Строка 64: Строка 117:


=== Настройка МОС-12 ===
=== Настройка МОС-12 ===
Подробности о настройке файрвола в МОС-12 в статье [[Блокировка интернета в МОС-12 при помощи nftables]]
В МОС-12 можно записать в файл '''/etc/sysconfig/nftables.conf''' следующий набор правил:<syntaxhighlight lang="text">
В МОС-12 можно записать в файл '''/etc/sysconfig/nftables.conf''' следующий набор правил:<syntaxhighlight lang="text">
# Эта команда сбрасывает все правила, иначе новые правила будут добавляться к ранее установленным
# Эта команда сбрасывает все правила, иначе новые правила будут добавляться к ранее установленным
flush ruleset
flush ruleset


table ip filter {
table inet filter {
     chain input {
     chain input {
         # Правила обработки входящих пакетов
         # Правила обработки входящих пакетов
Строка 77: Строка 132:
         ct state established,related accept
         ct state established,related accept


         # Принимаем пакеты на 22 порт (для управления компьютером по ssh)
         # Принимаем пакеты на 22 порт TCP для управления компьютером по ssh
         tcp dport 22 accept
         tcp dport 22 accept
        # Разрешаем соединения на порт 53 TCP и UDP для работы DNS
        tcp dport 53 accept
        udp dport 53 accept
        # Принимаем пакеты на 5353 порт UDP для работы mDNS (avahi)
        udp dport 5353 accept
        # Принимаем пакеты на порты 11100, 11200, 11300, 11400 TCP для управления компьютером по Veyon
        tcp dport 11100 accept
        tcp dport 11200 accept
        tcp dport 11300 accept
        tcp dport 11400 accept


         # Принимаем входящий ping
         # Принимаем входящий ping
Строка 94: Строка 162:
         # Разрешаем все установленные соединения
         # Разрешаем все установленные соединения
         ct state established,related accept
         ct state established,related accept
         # Разрешаем соединения на порт 53 для работы DNS
 
        tcp dport 53 accept
         # Разрешаем соединения на порт 53 UDP для работы DNS
         udp dport 53 accept
         udp dport 53 accept
        # Разрешаем соединения на порт 5353 UDP для работы mDNS
        udp dport 5353 accept
        # Разрешаем соединения на UDP порт 123 для работы NTP
        udp dport 123 accept


         # Разрешаем соединения на этот же компьютер (lo-интерфейс)
         # Разрешаем соединения на этот же компьютер (lo-интерфейс)
Строка 103: Строка 177:
         # Далее идёт белый список сайтов, к которым должен быть открыт доступ
         # Далее идёт белый список сайтов, к которым должен быть открыт доступ


         # Вся локальная сеть 10.*.*.* на всякий случай целиком
         # Вся локальная сеть 10.*.*.* для доступа к ресурсам МЭШ из сети ДОНМ, для простоты целиком
         ip daddr 10.0.0.0/8 accept
         ip daddr 10.0.0.0/8 accept
        # school.mos.ru, uchebnik.mos.ru
        ip daddr 94.79.51.81 accept
        ip daddr 94.79.51.82 accept
        ip daddr 94.79.51.83 accept
        # login.mos.ru
        ip daddr 212.11.151.56 accept
        ip daddr 212.11.151.57 accept
        ip daddr 212.11.151.58 accept
        # mc.yandex.ru
        ip daddr 87.250.250.119 accept
        ip daddr 87.250.251.119 accept
        ip daddr 93.158.134.119 accept
        ip daddr 77.88.21.119 accept
        # online.olimpiada.ru
        ip daddr 46.235.186.69 accept
        ip daddr 46.235.188.68 accept
        ip daddr 78.41.110.69 accept
        ip daddr 93.93.88.23 accept
        ip daddr 212.193.144.0/20 accept
        # vos.olimpiada.ru
        ip daddr 185.178.208.183 accept
        # всош.цпм.рф
        ip daddr 185.30.228.25 accept


         # olympiads.ru
         # olympiads.ru
         ip daddr 194.58.88.173 accept
         ip daddr 194.58.88.173 accept


        # Репозитории МОС для возможности установки пакетов
         # os.mos.ru, repo.os.mos.ru
         # os.mos.ru, repo.os.mos.ru
         ip daddr 37.230.149.17 accept
         ip daddr 37.230.149.17 accept
          
          
        # school.mos.ru
        ip daddr 94.79.51.81 accept
        ip daddr 94.79.51.82 accept
        ip daddr 94.79.51.83 accept
        # Магазин расширений для vscode
         # marketplace.visualstudio.com
         # marketplace.visualstudio.com
         ip daddr 13.107.42.18 accept
         ip daddr 13.107.42.18 accept
Строка 134: Строка 230:
         ip daddr 91.221.70.4 accept
         ip daddr 91.221.70.4 accept


        # Это правило делает reject на все остальные соединения
        # на порт 80 (http) и 443 (https), в результате
        # браузер не будет ждать загрузки недоступных ресурсов
        tcp dport 80 reject
        tcp dport 443 reject
     }
     }
}
}
Строка 143: Строка 244:
  # systemctl disable nftables
  # systemctl disable nftables
  # systemctl stop nftables
  # systemctl stop nftables
=== Настройка Windows 10 и Windows 11 ===
В Windows 10 будем использовать стандартный файрвол Windows.
Для этого нужно создать powershell-скрипт следующего содержания.<syntaxhighlight lang="powershell">
# Устанавливаем policy для пакетов по умолчанию - Block
Set-NetFirewallProfile -DefaultInboundAction Block
Set-NetFirewallProfile -DefaultOutboundAction Block
# Разрешаем весь трафик для службы dnscache
New-NetFirewallRule -DisplayName "Olymp Allow dnscache service" -Direction Outbound -Action Allow -Service "dnscache"
New-NetFirewallRule -DisplayName "Olymp Allow dnscache service" -Direction Inbound -Action Allow -Service "dnscache"
# Открываем порт 53 для работы DNS
New-NetFirewallRule -DisplayName "Olymp Allow DNS Outbound" -Direction Outbound -Action Allow -Protocol UDP -RemotePort 53
New-NetFirewallRule -DisplayName "Olymp Allow DNS Inbound" -Direction Inbound -Action Allow -Protocol UDP -RemotePort 53
New-NetFirewallRule -DisplayName "Olymp Allow DNS Outbound TCP" -Direction Outbound -Action Allow -Protocol TCP -RemotePort 53
New-NetFirewallRule -DisplayName "Olymp Allow DNS Inbound TCP" -Direction Inbound -Action Allow -Protocol TCP -RemotePort 53
# Открываем порт 5353 для работы mDNS
New-NetFirewallRule -DisplayName "Olymp Allow mDNS Outbound" -Direction Outbound -Action Allow -Protocol UDP -RemotePort 5353
New-NetFirewallRule -DisplayName "Olymp Allow mDNS Inbound" -Direction Inbound -Action Allow -Protocol UDP -RemotePort 5353
# Открываем порт 123 UDP для работы NTP
New-NetFirewallRule -DisplayName "Olymp Allow NTP Outbound" -Direction Outbound -Action Allow -Protocol UDP -RemotePort 123
New-NetFirewallRule -DisplayName "Olymp Allow NTP Inbound" -Direction Inbound -Action Allow -Protocol UDP -RemotePort 123
# Разрешаем трафик на localhost
New-NetFirewallRule -DisplayName "Olymp Allow Localhost Inbound" -Direction Inbound -Action Allow -RemoteAddress 127.0.0.1
New-NetFirewallRule -DisplayName "Olymp Allow Localhost Outbound" -Direction Outbound -Action Allow -RemoteAddress 127.0.0.1
# Разрешаем ICMP (ping)
New-NetFirewallRule -DisplayName "Olymp Allow ICMP Outbound" -Direction Outbound -Action Allow -Protocol ICMPv4
New-NetFirewallRule -DisplayName "Olymp Allow ICMP Inbound" -Direction Inbound -Action Allow -Protocol ICMPv4
# Разрешаетм доступ к локальной сети 10.0.0.0/8 для доступа к ресурсам МЭШ из сети ДОНМ
New-NetFirewallRule -DisplayName "Olymp Allow Local Network" -Direction Outbound -Action Allow -RemoteAddress 10.0.0.0/8
New-NetFirewallRule -DisplayName "Olymp Allow Local Network" -Direction Inbound -Action Allow -RemoteAddress 10.0.0.0/8
# Разрешаем доступ к конкретным сайтам
New-NetFirewallRule -DisplayName "Olymp Allow school.mos.ru" -Direction Outbound -Action Allow -RemoteAddress 94.79.51.81,94.79.51.82,94.79.51.83
New-NetFirewallRule -DisplayName "Olymp Allow school.mos.ru" -Direction Inbound -Action Allow -RemoteAddress 94.79.51.81,94.79.51.82,94.79.51.83
New-NetFirewallRule -DisplayName "Olymp Allow login.mos.ru" -Direction Outbound -Action Allow -RemoteAddress 212.11.151.56,212.11.151.57,212.11.151.58
New-NetFirewallRule -DisplayName "Olymp Allow login.mos.ru" -Direction Inbound -Action Allow -RemoteAddress 212.11.151.56,212.11.151.57,212.11.151.58
New-NetFirewallRule -DisplayName "Olymp Allow online.olimpiada.ru" -Direction Outbound -Action Allow -RemoteAddress 46.235.186.69,46.235.188.68,78.41.110.69,93.93.88.23,212.193.144.0/20
New-NetFirewallRule -DisplayName "Olymp Allow online.olimpiada.ru" -Direction Inbound -Action Allow -RemoteAddress 46.235.186.69,46.235.188.68,78.41.110.69,93.93.88.23,212.193.144.0/20
New-NetFirewallRule -DisplayName "Olymp Allow vos.olimpiada.ru" -Direction Outbound -Action Allow -RemoteAddress 185.178.208.183
New-NetFirewallRule -DisplayName "Olymp Allow vos.olimpiada.ru" -Direction Inbound -Action Allow -RemoteAddress 185.178.208.183
New-NetFirewallRule -DisplayName "Olymp Allow vsosh.cpm.rf" -Direction Outbound -Action Allow -RemoteAddress 185.30.228.25
New-NetFirewallRule -DisplayName "Olymp Allow vsosh.cpm.rf" -Direction Inbound -Action Allow -RemoteAddress 185.30.228.25
New-NetFirewallRule -DisplayName "Olymp Allow olympiads.ru" -Direction Outbound -Action Allow -RemoteAddress 194.58.88.173
New-NetFirewallRule -DisplayName "Olymp Allow olympiads.ru" -Direction Inbound -Action Allow -RemoteAddress 194.58.88.173
New-NetFirewallRule -DisplayName "Olymp Allow mc.yandex.ru" -Direction Outbound -Action Allow -RemoteAddress 87.250.250.119,87.250.251.119,93.158.134.119,77.88.21.119
New-NetFirewallRule -DisplayName "Olymp Allow mc.yandex.ru" -Direction Inbound -Action Allow -RemoteAddress 87.250.250.119,87.250.251.119,93.158.134.119,77.88.21.119
New-NetFirewallRule -DisplayName "Olymp Allow marketplace.visualstudio.com" -Direction Outbound -Action Allow -RemoteAddress 13.107.42.18
New-NetFirewallRule -DisplayName "Olymp Allow marketplace.visualstudio.com" -Direction Inbound -Action Allow -RemoteAddress 13.107.42.18
New-NetFirewallRule -DisplayName "Olymp Allow ms-vscode.gallerycdn.vsassets.io" -Direction Outbound -Action Allow -RemoteAddress 68.232.34.200
New-NetFirewallRule -DisplayName "Olymp Allow ms-vscode.gallerycdn.vsassets.io" -Direction Inbound -Action Allow -RemoteAddress 68.232.34.200
New-NetFirewallRule -DisplayName "Olymp Allow ms-vscode.gallery.vsassets.io" -Direction Outbound -Action Allow -RemoteAddress 13.107.6.175
New-NetFirewallRule -DisplayName "Olymp Allow ms-vscode.gallery.vsassets.io" -Direction Inbound -Action Allow -RemoteAddress 13.107.6.175
New-NetFirewallRule -DisplayName "Olymp Allow az764295.vo.msecnd.net" -Direction Outbound -Action Allow -RemoteAddress 152.199.19.160
New-NetFirewallRule -DisplayName "Olymp Allow az764295.vo.msecnd.net" -Direction Inbound -Action Allow -RemoteAddress 152.199.19.160
New-NetFirewallRule -DisplayName "Olymp Allow it-help-school.ru" -Direction Outbound -Action Allow -RemoteAddress 91.221.70.4
New-NetFirewallRule -DisplayName "Olymp Allow it-help-school.ru" -Direction Inbound -Action Allow -RemoteAddress 91.221.70.4
</syntaxhighlight>Сохраните этот скрипт в файле с расширением 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"
Затем откройте свойства ярлыка, нажмите "Дополнительно" и поставьте галку "Запуск от имени администратора".
Обратите внимание, что все создаваемые правила начинаются со слова Olymp. Благодаря этому можно отфильтровать эти правила и для снятия ограничений удалить только правила, которые начинаются со слова Olymp. Для этого создайте и запустите следующий PowerShell-скрипт, который удаляет все установленные правила и сбрасывает правила для обработки пакетов "по умолчанию".<syntaxhighlight lang="powershell">
Set-NetFirewallProfile -DefaultInboundAction NotConfigured
Set-NetFirewallProfile -DefaultOutboundAction NotConfigured
Get-NetFirewallRule | Where-Object { $_.DisplayName -like "Olymp*" } | Remove-NetFirewallRule
</syntaxhighlight>Исполнение этого скрипта снимает все установленные ограничения. Его также нужно запускать с правами администратора, рекомендуется создать на рабочем столе два ярлыка для запуска под администратором - ддя блокировки и разблокировки интернета.
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__

Текущая версия на 15:27, 11 ноября 2024


При проведении муниципального этапа ВсОШ по информатике в Москве места проведения должны фильтровать доступ в интернет по указанным правилам. Фильтрация может быть осуществлена на сетевом оборудовании (роутере), централизованно для всех участников. При отсутствии роутера фильтрация осуществляется на каждом компьютере настройкой файрвола операционной системы.

Эта статья описывает необходимые настройки фильтрации интернета при проведении муниципального этапов всероссийской олимпиады школьников в Москве. В статье описаны настройки для систем МОС-12 и Windows. Фильтрацию можно реализовать на МОС-10 используя правила из этой статьи и инструкцию Блокировка интернета в МОС при помощи iptables.

Список необходимых хостов из этой статьи может дополняться и меняться. Перед муниципальным этапом необходимо использовать актуальный список.

До проведения муниципального этапа рекомендуется провести проверку фильтрации при проведении любого школьного этапа ВсОШ, а также при проведении школьного этапа ВсОШ по информатике в Москве.

После настройки фильтрации необходимо проверить, что данные сайты открываются в браузере, другие сайты (например, ya.ru, vk.com, gmail.com, web.telegram.org) - не открываются.

Список необходимых разрешённых хостов

На каждом компьютере должен быть открыт доступ:

  • Для всех соединений, находящихся в состоянии Established или Related, то есть для уже открытых соединений.
  • DNS-протокол: UDP, порт 53.
  • mDNS-протокол (zeroconf, Avahi): UDP порт 5353
  • NTP-протокол: UDP порт 123.
  • ICMP-протокол, входящие и исходящие соединения, для тестирования сети командой ping.
  • Входящие соединения по протоколу TCP на порт 22 - если используется ssh-сервер, запущенный на компьютере, для удалённого управления.
  • Входящие соединения по протоколу TCP на порты 11100, 11200, 11300, 11400 - если используется Veyon для удалённого управления.
  • Все соединения на localhost, для работы локальных приложений.

В случае использования средств удалённого управления (ssh, Veyon) они не должны быть доступны участникам для подключения к компьютерам других участников.

Также должны быть разрешены соединения со следующими хостами.

Список открытых хостов
Имя хоста IP-адрес Зачем нужен
10.0.0.0/8 Локальная сеть ДОНМ для доступа ко всем ресурсам, для простоты конфигурирования
school.mos.ru 94.79.51.81

94.79.51.82

94.79.51.83

Необходим для работы тестирующей системы МЭШ и "Магазина приложений" МОС
uchebnik.mos.ru 94.79.51.81

94.79.51.82

94.79.51.83

Необходим для работы тестирующей системы МЭШ
login.mos.ru 212.11.151.56

212.11.151.57

212.11.151.58

Необходим для авторизации в МЭШ. Сам сайт login.mos.ru открывать не нужно, он делает редирект на mos.ru
online.olimpiada.ru 46.235.186.69

46.235.188.68

78.41.110.69

93.93.88.23

212.193.144.0/20

Резервная тестирующая система
vos.olimpiada.ru 185.178.208.183 Сайт ВсОШ в Москве
всош.цпм.рф 185.30.228.25 Сайт ВсОШ в Москве (xn--b1ayi3a.xn--l1afu.xn--p1ai)
olympiads.ru 194.58.88.173 Сайт городской предметно-методической комиссии ВсОШ по информатике
mc.yandex.ru 87.250.250.119

87.250.251.119

93.158.134.119

77.88.21.119

Метрика яндекса, если заблокировать, то браузер будет долго загружать страницу
os.mos.ru

repo.os.mos.ru

37.230.149.17 Репозитории МОС, для установки пакетов, если возникнет необходимость доставить приложения.
marketplace.visualstudio.com 13.107.42.18 Магазин расширений для VSCode
ms-vscode.gallerycdn.vsassets.io 68.232.34.200 Необходим для скачивания расширений для VSCode
ms-vscode.gallery.vsassets.io 13.107.6.175 Необходим для скачивания расширений для VSCode
az764295.vo.msecnd.net 152.199.19.160 Необходим для скачивания расширений для VSCode
it-help-school.ru 91.221.70.4 Этот сайт, для доступа к техническим инструкциям

Настройка МОС-12

Подробности о настройке файрвола в МОС-12 в статье Блокировка интернета в МОС-12 при помощи nftables

В МОС-12 можно записать в файл /etc/sysconfig/nftables.conf следующий набор правил:

# Эта команда сбрасывает все правила, иначе новые правила будут добавляться к ранее установленным
flush ruleset

table inet filter {
    chain input {
        # Правила обработки входящих пакетов
        # По умолчанию ставим правило drop для пакетов
        type filter hook input priority 0; policy drop;

        # Принимаем пакеты всех установленных соединений
        ct state established,related accept

        # Принимаем пакеты на 22 порт TCP для управления компьютером по ssh
        tcp dport 22 accept

        # Разрешаем соединения на порт 53 TCP и UDP для работы DNS
        tcp dport 53 accept
        udp dport 53 accept

        # Принимаем пакеты на 5353 порт UDP для работы mDNS (avahi)
        udp dport 5353 accept

        # Принимаем пакеты на порты 11100, 11200, 11300, 11400 TCP для управления компьютером по Veyon
        tcp dport 11100 accept
        tcp dport 11200 accept
        tcp dport 11300 accept
        tcp dport 11400 accept

        # Принимаем входящий ping
        icmp type echo-request accept

        # Принимаем все пакеты с этого компьютера (на lo-интерфейс)
        iif lo accept
    }

    chain output {
        # Правила обработки исходящих пакетов
        # По умолчанию ставим правило drop для пакетов
        type filter hook output priority 0; policy drop;

        # Разрешаем все установленные соединения
        ct state established,related accept

        # Разрешаем соединения на порт 53 UDP для работы DNS
        udp dport 53 accept

        # Разрешаем соединения на порт 5353 UDP для работы mDNS
        udp dport 5353 accept

        # Разрешаем соединения на UDP порт 123 для работы NTP
        udp dport 123 accept

        # Разрешаем соединения на этот же компьютер (lo-интерфейс)
        oif lo accept

        # Далее идёт белый список сайтов, к которым должен быть открыт доступ

        # Вся локальная сеть 10.*.*.* для доступа к ресурсам МЭШ из сети ДОНМ, для простоты целиком
        ip daddr 10.0.0.0/8 accept

        # school.mos.ru, uchebnik.mos.ru
        ip daddr 94.79.51.81 accept
        ip daddr 94.79.51.82 accept
        ip daddr 94.79.51.83 accept

        # login.mos.ru
        ip daddr 212.11.151.56 accept
        ip daddr 212.11.151.57 accept
        ip daddr 212.11.151.58 accept

        # mc.yandex.ru
        ip daddr 87.250.250.119 accept
        ip daddr 87.250.251.119 accept
        ip daddr 93.158.134.119 accept
        ip daddr 77.88.21.119 accept

        # online.olimpiada.ru
        ip daddr 46.235.186.69 accept
        ip daddr 46.235.188.68 accept
        ip daddr 78.41.110.69 accept
        ip daddr 93.93.88.23 accept
        ip daddr 212.193.144.0/20 accept

        # vos.olimpiada.ru
        ip daddr 185.178.208.183 accept

        # всош.цпм.рф
        ip daddr 185.30.228.25 accept

        # olympiads.ru
        ip daddr 194.58.88.173 accept

        # os.mos.ru, repo.os.mos.ru
        ip daddr 37.230.149.17 accept
        
        # marketplace.visualstudio.com
        ip daddr 13.107.42.18 accept

        # ms-vscode.gallerycdn.vsassets.io
        ip daddr 68.232.34.200 accept

        # ms-vscode.gallery.vsassets.io
        ip daddr 13.107.6.175 accept
        
        # az764295.vo.msecnd.net
        ip daddr 152.199.19.160 accept

        # it-help-school.ru
        ip daddr 91.221.70.4 accept

        # Это правило делает reject на все остальные соединения
        # на порт 80 (http) и 443 (https), в результате
        # браузер не будет ждать загрузки недоступных ресурсов
        tcp dport 80 reject
        tcp dport 443 reject
    }
}

Затем выполните команды для включения файрвола под root

# systemctl enable nftables
# systemctl start nftables

Для отключения фильтрации выполните команды

# systemctl disable nftables
# systemctl stop nftables

Настройка Windows 10 и Windows 11

В Windows 10 будем использовать стандартный файрвол Windows.

Для этого нужно создать powershell-скрипт следующего содержания.

# Устанавливаем policy для пакетов по умолчанию - Block
Set-NetFirewallProfile -DefaultInboundAction Block
Set-NetFirewallProfile -DefaultOutboundAction Block

# Разрешаем весь трафик для службы dnscache
New-NetFirewallRule -DisplayName "Olymp Allow dnscache service" -Direction Outbound -Action Allow -Service "dnscache"
New-NetFirewallRule -DisplayName "Olymp Allow dnscache service" -Direction Inbound -Action Allow -Service "dnscache"

# Открываем порт 53 для работы DNS
New-NetFirewallRule -DisplayName "Olymp Allow DNS Outbound" -Direction Outbound -Action Allow -Protocol UDP -RemotePort 53
New-NetFirewallRule -DisplayName "Olymp Allow DNS Inbound" -Direction Inbound -Action Allow -Protocol UDP -RemotePort 53
New-NetFirewallRule -DisplayName "Olymp Allow DNS Outbound TCP" -Direction Outbound -Action Allow -Protocol TCP -RemotePort 53
New-NetFirewallRule -DisplayName "Olymp Allow DNS Inbound TCP" -Direction Inbound -Action Allow -Protocol TCP -RemotePort 53

# Открываем порт 5353 для работы mDNS
New-NetFirewallRule -DisplayName "Olymp Allow mDNS Outbound" -Direction Outbound -Action Allow -Protocol UDP -RemotePort 5353
New-NetFirewallRule -DisplayName "Olymp Allow mDNS Inbound" -Direction Inbound -Action Allow -Protocol UDP -RemotePort 5353

# Открываем порт 123 UDP для работы NTP
New-NetFirewallRule -DisplayName "Olymp Allow NTP Outbound" -Direction Outbound -Action Allow -Protocol UDP -RemotePort 123
New-NetFirewallRule -DisplayName "Olymp Allow NTP Inbound" -Direction Inbound -Action Allow -Protocol UDP -RemotePort 123

# Разрешаем трафик на localhost
New-NetFirewallRule -DisplayName "Olymp Allow Localhost Inbound" -Direction Inbound -Action Allow -RemoteAddress 127.0.0.1
New-NetFirewallRule -DisplayName "Olymp Allow Localhost Outbound" -Direction Outbound -Action Allow -RemoteAddress 127.0.0.1

# Разрешаем ICMP (ping)
New-NetFirewallRule -DisplayName "Olymp Allow ICMP Outbound" -Direction Outbound -Action Allow -Protocol ICMPv4
New-NetFirewallRule -DisplayName "Olymp Allow ICMP Inbound" -Direction Inbound -Action Allow -Protocol ICMPv4

# Разрешаетм доступ к локальной сети 10.0.0.0/8 для доступа к ресурсам МЭШ из сети ДОНМ
New-NetFirewallRule -DisplayName "Olymp Allow Local Network" -Direction Outbound -Action Allow -RemoteAddress 10.0.0.0/8
New-NetFirewallRule -DisplayName "Olymp Allow Local Network" -Direction Inbound -Action Allow -RemoteAddress 10.0.0.0/8

# Разрешаем доступ к конкретным сайтам
New-NetFirewallRule -DisplayName "Olymp Allow school.mos.ru" -Direction Outbound -Action Allow -RemoteAddress 94.79.51.81,94.79.51.82,94.79.51.83
New-NetFirewallRule -DisplayName "Olymp Allow school.mos.ru" -Direction Inbound -Action Allow -RemoteAddress 94.79.51.81,94.79.51.82,94.79.51.83
New-NetFirewallRule -DisplayName "Olymp Allow login.mos.ru" -Direction Outbound -Action Allow -RemoteAddress 212.11.151.56,212.11.151.57,212.11.151.58
New-NetFirewallRule -DisplayName "Olymp Allow login.mos.ru" -Direction Inbound -Action Allow -RemoteAddress 212.11.151.56,212.11.151.57,212.11.151.58
New-NetFirewallRule -DisplayName "Olymp Allow online.olimpiada.ru" -Direction Outbound -Action Allow -RemoteAddress 46.235.186.69,46.235.188.68,78.41.110.69,93.93.88.23,212.193.144.0/20
New-NetFirewallRule -DisplayName "Olymp Allow online.olimpiada.ru" -Direction Inbound -Action Allow -RemoteAddress 46.235.186.69,46.235.188.68,78.41.110.69,93.93.88.23,212.193.144.0/20
New-NetFirewallRule -DisplayName "Olymp Allow vos.olimpiada.ru" -Direction Outbound -Action Allow -RemoteAddress 185.178.208.183 
New-NetFirewallRule -DisplayName "Olymp Allow vos.olimpiada.ru" -Direction Inbound -Action Allow -RemoteAddress 185.178.208.183
New-NetFirewallRule -DisplayName "Olymp Allow vsosh.cpm.rf" -Direction Outbound -Action Allow -RemoteAddress 185.30.228.25
New-NetFirewallRule -DisplayName "Olymp Allow vsosh.cpm.rf" -Direction Inbound -Action Allow -RemoteAddress 185.30.228.25
New-NetFirewallRule -DisplayName "Olymp Allow olympiads.ru" -Direction Outbound -Action Allow -RemoteAddress 194.58.88.173
New-NetFirewallRule -DisplayName "Olymp Allow olympiads.ru" -Direction Inbound -Action Allow -RemoteAddress 194.58.88.173
New-NetFirewallRule -DisplayName "Olymp Allow mc.yandex.ru" -Direction Outbound -Action Allow -RemoteAddress 87.250.250.119,87.250.251.119,93.158.134.119,77.88.21.119
New-NetFirewallRule -DisplayName "Olymp Allow mc.yandex.ru" -Direction Inbound -Action Allow -RemoteAddress 87.250.250.119,87.250.251.119,93.158.134.119,77.88.21.119
New-NetFirewallRule -DisplayName "Olymp Allow marketplace.visualstudio.com" -Direction Outbound -Action Allow -RemoteAddress 13.107.42.18
New-NetFirewallRule -DisplayName "Olymp Allow marketplace.visualstudio.com" -Direction Inbound -Action Allow -RemoteAddress 13.107.42.18
New-NetFirewallRule -DisplayName "Olymp Allow ms-vscode.gallerycdn.vsassets.io" -Direction Outbound -Action Allow -RemoteAddress 68.232.34.200
New-NetFirewallRule -DisplayName "Olymp Allow ms-vscode.gallerycdn.vsassets.io" -Direction Inbound -Action Allow -RemoteAddress 68.232.34.200
New-NetFirewallRule -DisplayName "Olymp Allow ms-vscode.gallery.vsassets.io" -Direction Outbound -Action Allow -RemoteAddress 13.107.6.175
New-NetFirewallRule -DisplayName "Olymp Allow ms-vscode.gallery.vsassets.io" -Direction Inbound -Action Allow -RemoteAddress 13.107.6.175
New-NetFirewallRule -DisplayName "Olymp Allow az764295.vo.msecnd.net" -Direction Outbound -Action Allow -RemoteAddress 152.199.19.160
New-NetFirewallRule -DisplayName "Olymp Allow az764295.vo.msecnd.net" -Direction Inbound -Action Allow -RemoteAddress 152.199.19.160
New-NetFirewallRule -DisplayName "Olymp Allow it-help-school.ru" -Direction Outbound -Action Allow -RemoteAddress 91.221.70.4
New-NetFirewallRule -DisplayName "Olymp Allow it-help-school.ru" -Direction Inbound -Action Allow -RemoteAddress 91.221.70.4

Сохраните этот скрипт в файле с расширением 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"

Затем откройте свойства ярлыка, нажмите "Дополнительно" и поставьте галку "Запуск от имени администратора".

Обратите внимание, что все создаваемые правила начинаются со слова Olymp. Благодаря этому можно отфильтровать эти правила и для снятия ограничений удалить только правила, которые начинаются со слова Olymp. Для этого создайте и запустите следующий PowerShell-скрипт, который удаляет все установленные правила и сбрасывает правила для обработки пакетов "по умолчанию".

Set-NetFirewallProfile -DefaultInboundAction NotConfigured
Set-NetFirewallProfile -DefaultOutboundAction NotConfigured
Get-NetFirewallRule | Where-Object { $_.DisplayName -like "Olymp*" } | Remove-NetFirewallRule

Исполнение этого скрипта снимает все установленные ограничения. Его также нужно запускать с правами администратора, рекомендуется создать на рабочем столе два ярлыка для запуска под администратором - ддя блокировки и разблокировки интернета.