Блокировка интернета при проведении ВсОШ в Москве: различия между версиями
Dkirienko (обсуждение | вклад) (→Настройка Windows 10 и Windows 11: Правка скриптов настройки для Windows) |
Dkirienko (обсуждение | вклад) (Обновление списка сайтов.) |
||
Строка 1: | Строка 1: | ||
Строка 30: | Строка 31: | ||
94.79.51.83 | 94.79.51.83 | ||
|Необходим для работы тестирующей системы МЭШ и "Магазина приложений" МОС | |Необходим для работы тестирующей системы МЭШ и "Магазина приложений" МОС | ||
|- | |||
|uchebnik.mos.ru | |||
|94.79.51.83 | |||
|Необходим для работы тестирующей системы МЭШ | |||
|- | |||
|login.mos.ru | |||
|212.11.153.6 | |||
|Необходим для авторизации в МЭШ | |||
|- | |- | ||
|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 | ||
Строка 55: | Строка 73: | ||
|152.199.19.160 | |152.199.19.160 | ||
|Необходим для скачивания расширений для VSCode | |Необходим для скачивания расширений для VSCode | ||
|- | |- | ||
|it-help-school.ru | |it-help-school.ru |
Версия 16:02, 4 октября 2024
Эта статья описывает необходимые настройки фильтрации интернета при проведении школьного и муниципального этапов всероссийской олимпиады школьников в Москве, если такая фильтрация осуществляется на каждом компьютере при помощи файрвола на каждом компьютере. В статье описаны настройки для систем МОС-12 и Windows-10.
Список необходимых разрешённых хостов
На каждом компьютере должен быть открыт доступ:
- Для всех соединений, находящихся в состоянии Established или Related, то есть для уже открытых соединений.
- DNS-протокол: TCP и UDP, порт 53.
- ICMP-протокол, входящие и исходящие соединения, для тестирования сети командой ping.
- Входящие соединения по протоколу TCP на порт 22 - если используется ssh-сервер, запущенный на компьютере, для удалённого управления им.
- Все соединения на localhost, для работы локальных приложений.
Также должны быть разрешены исходящие соединения на следующие адреса.
Имя хоста | 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.83 | Необходим для работы тестирующей системы МЭШ |
login.mos.ru | 212.11.153.6 | Необходим для авторизации в МЭШ |
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 можно записать в файл /etc/sysconfig/nftables.conf следующий набор правил:
# Эта команда сбрасывает все правила, иначе новые правила будут добавляться к ранее установленным
flush ruleset
table ip filter {
chain input {
# Правила обработки входящих пакетов
# По умолчанию ставим правило drop для пакетов
type filter hook input priority 0; policy drop;
# Принимаем пакеты всех установленных соединений
ct state established,related accept
# Принимаем пакеты на 22 порт (для управления компьютером по ssh)
tcp dport 22 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 для работы DNS
tcp dport 53 accept
udp dport 53 accept
# Разрешаем соединения на этот же компьютер (lo-интерфейс)
oif lo accept
# Далее идёт белый список сайтов, к которым должен быть открыт доступ
# Вся локальная сеть 10.*.*.* на всякий случай целиком
ip daddr 10.0.0.0/8 accept
# olympiads.ru
ip daddr 194.58.88.173 accept
# Репозитории МОС для возможности установки пакетов
# os.mos.ru, repo.os.mos.ru
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
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
}
}
Затем выполните команды для включения файрвола под root
# systemctl enable nftables # systemctl start nftables
Для отключения фильтрации выполните команды
# systemctl disable nftables # systemctl stop nftables
Настройка Windows 10 и Windows 11
В Windows 10 будем использовать стандартный файрвол Windows Defender ("Защитник 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
# Разрешаем трафик на 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 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 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
Сохраните этот скрипт в файле с расширением ps1, например, block-internet.ps1, запустите его под администратором. Обратите внимание, что все создаваемые правила начинаются со слова Olymp. Благодаря этому можно отфильтровать только эти правила и для снятия ограничений удалить только правила, которые начинаются со слова Olymp. Для этого создайте и запустите следующий PowerShell-скрипт.
Set-NetFirewallProfile -DefaultInboundAction NotConfigured
Set-NetFirewallProfile -DefaultOutboundAction NotConfigured
Get-NetFirewallRule | Where-Object { $_.DisplayName -like "Olymp*" } | Remove-NetFirewallRule