241
правка
Dkirienko (обсуждение | вклад) (Создание страницы, настройка в МОС) |
Dkirienko (обсуждение | вклад) (Правка скрипта под Windows) |
||
| (не показана 21 промежуточная версия этого же участника) | |||
| Строка 1: | Строка 1: | ||
Эта статья описывает необходимые настройки фильтрации интернета при проведении | |||
При проведении муниципального этапа ВсОШ по информатике в Москве места проведения должны фильтровать доступ в интернет по указанным правилам. Фильтрация может быть осуществлена на сетевом оборудовании (роутере), централизованно для всех участников. При отсутствии роутера фильтрация осуществляется на каждом компьютере настройкой файрвола операционной системы. | |||
Эта статья описывает необходимые настройки фильтрации интернета при проведении муниципального этапов всероссийской олимпиады школьников в Москве. В статье описаны настройки для систем МОС-12 и Windows. Фильтрацию можно реализовать на МОС-10 используя правила из этой статьи и инструкцию [[Блокировка интернета в МОС при помощи iptables|Блокировка интернета в МОС при помощи iptables.]] | |||
Список необходимых хостов из этой статьи может дополняться и меняться. Перед муниципальным этапом необходимо использовать актуальный список. | |||
До проведения муниципального этапа рекомендуется провести проверку фильтрации при проведении любого школьного этапа ВсОШ, а также при проведении школьного этапа ВсОШ по информатике в Москве. | |||
После настройки фильтрации необходимо проверить, что данные сайты открываются в браузере, другие сайты (например, ya.ru, vk.com, gmail.com, web.telegram.org) - не открываются. | |||
=== Список необходимых разрешённых хостов === | === Список необходимых разрешённых хостов === | ||
| Строка 6: | Строка 16: | ||
* Для всех соединений, находящихся в состоянии Established или Related, то есть для уже открытых соединений. | * Для всех соединений, находящихся в состоянии Established или Related, то есть для уже открытых соединений. | ||
* DNS-протокол: | * 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 | |||
|94.79.51.169 | |||
94.79.51.170 | |||
94.79.51.171 | |||
|Необходим для авторизации в МЭШ. Сам сайт 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 | table inet filter { | ||
chain input { | chain input { | ||
# Правила обработки входящих пакетов | # Правила обработки входящих пакетов | ||
| Строка 77: | Строка 132: | ||
ct state established,related accept | ct state established,related accept | ||
# Принимаем пакеты на 22 порт | # Принимаем пакеты на 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 | |||
# Разрешаем соединения на порт 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 94.79.51.169 accept | |||
ip daddr 94.79.51.170 accept | |||
ip daddr 94.79.51.171 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 | ||
# 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 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 94.79.51.169,94.79.51.170,94.79.51.171 | |||
New-NetFirewallRule -DisplayName "Olymp Allow login.mos.ru" -Direction Inbound -Action Allow -RemoteAddress 94.79.51.169,94.79.51.170,94.79.51.171 | |||
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>Исполнение этого скрипта снимает все установленные ограничения. Его также нужно запускать с правами администратора, рекомендуется создать на рабочем столе два ярлыка для запуска под администратором - ддя блокировки и разблокировки интернета. | |||
__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__ | |||