Ес­ли у тебя есть дети, ты зна­ешь, что в наше вре­мя к обыч­ному набору родитель­ских обя­зан­ностей неиз­бежно добав­ляет­ся еще одна: вытащить чадо из ому­та компь­ютер­ных игр и «Тик­тока», зас­тавив его учить­ся. Обыч­ные прог­раммы родитель­ско­го кон­тро­ля неэф­фектив­ны, поэто­му мы решим эту задачу самос­тоятель­но — пра­виль­но нас­тро­ив опе­раци­онную сис­тему на при­мере Ubuntu Linux.

Под­рос­тки по при­роде сво­ей весь­ма пыт­ливы и целе­устрем­ленны, если дело не каса­ется воп­росов обра­зова­ния. Но глав­ное — они име­ют запас вре­мени, сущес­твен­но пре­вос­ходящий твой. В какой‑то момент юный падаван заяв­ляет, что ему для уче­бы нужен компь­ютер. Ага, дума­ешь ты, зна­ем мы эту уче­бу. Сам в свое вре­мя «учил­ся» ночи нап­ролет, вла­делец палат­ки с игро­выми СD сме­нил аж три мер­седеса с тво­их заносов.

Боль­шинс­тво домаш­них ком­пов, как извес­тно, работа­ют под управле­нием Windows, а с родитель­ским кон­тро­лем в этой сис­теме все неод­нознач­но. Подоб­ные прог­раммы либо сто­ят денег, либо не работа­ют сов­сем. В 10-й вин­де что‑то мож­но было накол­хозить с помощью Software Restriction Policies (SRP), но в Windows 11 этот инс­тру­мент выпили­ли: по мне­нию раз­работ­чиков, эта фун­кция лиш­няя для домаш­них сетей.

Вы­вод нап­рашива­ется оче­вид­ный: нуж­но при­учать юное поколе­ние к Linux в виде самого популяр­ного дис­три­бути­ва — Ubuntu. А пока нас­ледни­ки будут искать в гуг­ле, как обой­ти воз­веден­ные тобою пре­пятс­твия, волей‑неволей научат­ся работать с этой сис­темой.

www

Ес­ли тебе неохо­та пос­ле каж­дого катак­лизма вос­ста­нав­ливать работу сис­темы вруч­ную, мож­но вос­поль­зовать­ся го­товым набором сце­нари­ев safews4lin, который пред­назна­чен для нас­трой­ки рабочей стан­ции под управле­нием Ubuntu в качес­тве учеб­ной машины.

 

Возможные угрозы и их нейтрализация

В информа­цион­ной безопас­ности про­екти­рова­ние тех­ничес­ких решений начина­ется с пос­тро­ения модели наруши­теля. Пос­коль­ку наруши­теля мы зна­ем бук­валь­но с пеленок, это добав­ляет опре­делен­ные штри­хи как к его поведе­нию, так и к воз­можным мерам про­тиво­дей­ствия. Нап­ример, угро­за физичес­кого вскры­тия ноут­бука эффектив­нее все­го бло­киру­ется орга­низа­цион­ными мерами. Наруши­тели пре­дуп­режде­ны, что ноут­бук фик­сиру­ет факт сня­тия крыш­ки (на самом деле нет, но об этом, кро­ме тебя, ник­то не зна­ет), и если что, то ой. В самом край­нем слу­чае мож­но зас­верлить пару вин­тов на ниж­ней крыш­ке: что­бы вскрыть ноут, их при­дет­ся раз­воротить до кон­ца. А с уче­том того, что руки нынеш­ней молоде­жи заточе­ны под чатики и тик­токи, эту угро­зу мож­но счи­тать нез­начитель­ной.

Ог­раничить исполь­зование фле­шек у нас воз­можнос­ти нет вооб­ще. Не в силу архи­тек­турных осо­бен­ностей сис­темы, а потому, что они нуж­ны для уче­бы. То есть ребенок, ско­рее все­го, при­тащит на съем­ных носите­лях домой все что угод­но, вклю­чая экс­пло­иты, игры и про­чую дре­бедень. С этим при­дет­ся сми­рить­ся как с неиз­бежным злом, пос­коль­ку, кро­ме раз­вле­чений, молодая поросль занята прог­рамми­рова­нием, а там без запус­ка сво­его соф­та никуда.

До­бав­ляет слож­ностей и невысо­кий уро­вень кри­тичес­кого мыш­ления у субъ­ектов защиты. Если в опи­сании прог­раммы будет написа­но «взлом­щик все­го», «зараба­тываль­щик бит­коинов не при­ходя в соз­нание» или «минус‑зиродей‑экс­пло­ит», это с высокой веро­ятностью будет ска­чано и запуще­но.

 

BIOS

Па­роль на вход в BIOS нужен обя­затель­но. Ина­че «зло­умыш­ленни­ки» прос­то вот­кнут заг­рузоч­ную флеш­ку и поп­равят что надо, не отхо­дя от кас­сы. Рекомен­дую зап­ретить в нас­трой­ках выбор заг­рузоч­ного носите­ля, порядок заг­рузки дол­жен быть при­бит гвоз­дями (записать бол­ванку или рас­катать заг­рузоч­ную флеш­ку и вот­кнуть ее в при­вод мно­го ума не надо).

 

Grub

Па­роль на кон­фигура­цию заг­рузчи­ка тоже обя­зате­лен. Параметр init=/bin/bash — пер­вое, что посове­туют школь­нику в интерне­те. А так совет­чики слег­ка под­расте­ряют авто­ритет. Recovery mode тоже прячь под пароль, ина­че все про­изой­дет лишь чуть мед­леннее (а может, и быс­трее). Для уско­рения про­цеду­ры нас­трой­ки есть сце­нарий bin/init.grub.sh, который соз­даст поль­зовате­ля и раз­решит ему бес­пароль­ную заг­рузку по умол­чанию.

 

Пароли

Важ­ный момент по поводу паролей. Оче­вид­но, что они дол­жны быть слож­ными и труд­но под­бира­емы­ми. На вся­кий слу­чай луч­ше записать их на бумаж­ку и хра­нить где‑нибудь в укромном мес­те. Можешь, конеч­но, запих­нуть лис­ток в сейф, но тог­да он рис­кует стать объ­ектом повышен­ного инте­реса и пос­тра­дает уже не толь­ко ноут­бук. Мой совет — отне­си бумаж­ку с пароля­ми на работу. Слу­чись что, сос­лужив­цы зачита­ют по телефо­ну. Вари­ант, что наруши­тель поз­вонит тво­ему кол­леге и выманит пароль методом соци­аль­ной инже­нерии, пока не рас­смат­рива­ем. Искрен­не наде­юсь, что такой уро­вень ком­петен­ции будет дос­тигнут к момен­ту, ког­да заборы уже ста­нут не нуж­ны.

Ес­ли пароль ста­тич­ный, он дол­жен быть длин­ным. Под­росток, у которо­го име­ется мас­са вре­мени и есть цель, спо­собен месяца­ми под­бирать пароль по фраг­менту, который он запом­нил, под­гля­дывая через пле­чо. И никакие задер­жки вво­да его не оста­новят. Lockout after failed attempts вооб­ще дол­жен быть отклю­чен: сам же потом будешь смот­реть на над­пись «Учет­ная запись заб­локиро­вана» и гадать, это ты пароль забыл или тебе помог­ли.

 

Контроль доступа в интернет

Ах, этот чудес­ный интернет. В юнос­ти мне казалось, что люди, получив­шие дос­туп ко всем зна­ниям мира, смо­гут теперь учить­ся всег­да и вез­де, вес­ти философ­ские беседы с луч­шими ума­ми со всех кон­цов све­та, изу­чать инос­тран­ные язы­ки, обща­ясь с их носите­лями. Одна­ко что‑то пош­ло не так.

На­ша задача — нап­равить любоз­натель­ность ребен­ка в конс­трук­тивное рус­ло, по воз­можнос­ти огра­ничив ему дос­туп к учеб­ным матери­алам уров­ня «как пра­виль­но запихать „Мен­тос“ в пеп­си‑колу». Воп­рос — каким обра­зом?

На­ибо­лее рас­простра­нен­ный под­ход в виде спис­ка «неп­равиль­ных сай­тов» совер­шенно неп­ригоден в реаль­ной жиз­ни. Это толь­ко в мар­кетин­говых матери­алах хорошо смот­рится фра­за «Наши спе­циалис­ты при под­дер­жке искусс­твен­ного интеллек­та регуляр­но попол­няют спи­сок нежела­тель­ных ресур­сов». За кад­ром оста­ется то, что у про­изво­дите­лей «бул­лщит‑кон­тента» (я тоже умею в молодеж­ный сленг) мил­лион рук и работа­ют они круг­лосуточ­но, при­чем на совесть. А у экспер­тов рук все­го две при­чем обе — из извес­тно­го мес­та, и вот они работа­ют все­го лишь сорок часов в неделю, при­чем за зар­пла­ту нек­рупно­го насеко­мого. Это бит­ва, про­игранная с самого начала.

По­тому самый надеж­ный и эко­ном­ный путь — откры­ваем дос­туп толь­ко к заведо­мо пра­виль­ному. Ука­зан­ный спо­соб в детс­тве успешно испы­тали на авто­ре этих строк, и я не могу ска­зать о нем ничего пло­хого. Ресур­сы со вся­кой мурой по стран­ному сов­падению кон­цен­три­руют­ся за буг­ром, поэто­му пер­вый и самый оче­вид­ный шаг — огра­ниче­ние дос­тупа рунетом. Отправ­ная точ­ка — перечень сетей зоны RU. Автор подоб­рал некую базу, сох­ранил ее в файл data/runet.db и начал с нее.

Ог­раниче­ние исхо­дяще­го тра­фика нас­тра­ивает­ся через -j DROP при помощи ком­бинации ipset/iptables для чле­нов груп­пы safeusers с GID 8425. При­мене­ние ipset обус­ловле­но тем, что спис­ки весь­ма велики и, если попытать­ся их запихать в iptables, это даст прям сущес­твен­ную про­сад­ку в быс­тро­дей­ствии. Соз­даем спи­сок под­сетей, нап­ример ipv4:

ipset create allow_v4 hash:net family inet hashsize 32768 maxelem 128000 counters comment
ipset add allow_v4 5.167.151.0/24 packets 0 bytes 0 comment "runet.db"
...

Вы­пол­няем про­вер­ку адре­са наз­начения на сов­падение в iptables:

iptables -A OUTPUT -m owner --gid-owner 8425 --suppl-groups -j safe_output
iptables -A safe_output -d 127.0.0.0/24 -j ACCEPT
iptables -A safe_output -m set --match-set deny_v4 dst -j DROP
iptables -A safe_output -m set --match-set allow_v4 dst -j ACCEPT
iptables -A safe_output -j LOG --log-prefix "[SAFEWS]"
iptables -A safe_output -j DROP

Все это хозяй­ство ини­циали­зиру­ем при помощи пакетов iptables-persistent и netfilter-persistent. Вто­рой за счет сис­темы пла­гинов поз­воля­ет под­гру­жать в том чис­ле и пра­вила ipset, если сце­нарий ини­циали­зации положить, нап­ример, в /usr/share/netfilter-persistent/plugins.d/10-ipset.

Те­перь вклю­чаем нуж­ного поль­зовате­ля в груп­пу usermod -aG safeusers rediska, и в учеб­ное вре­мя — уже никаких юту­бов и про­чих изли­шеств. Коман­ды netfilter-persistent flush и netfilter-persistent start, запус­каемые из кро­на, поз­воля­ют в нуж­ные момен­ты взво­дить и сни­мать огра­ниче­ния.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии