172
правки
Dkirienko (обсуждение | вклад) (Создание страницы) |
Dkirienko (обсуждение | вклад) (Добавлена информация и настройке 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> | </syntaxhighlight> | ||
Обратите внимание, что все создаваемые правила начинаются со слова 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> |