LINUX.ORG.RU

Введение в Linux

 , quickstart, ,


0

1

Как вы рассказываете о Linux людям, которым предстоит с ним работать в ходе classic CTF? Я попробовал как-то так:

  • Минут 10 о том, что такое и как сочетаются Unix, Linux, GNU, Android etc;
  • Как подключаться: OpenSSH/MobaXterm, sshfs/SFTP Net Drive;
  • Около часа показывал и комментировал, как решаются типичные задачи: где я, кто я, кто тут, что это... Потом ещё показал, как использовать git (reset --hard) в качестве машины времени при написании скриптов, которые могут ненароком удалить, например, себя.

В процессе рассказа я нередко соображал, что вот эта совершенно очевидная вещь на самом деле не совсем очевидна и её тоже стоит пояснить. То есть она для меня очевидна, потому что в Linux так, а в других системах я ничего подобного не делал и не пытался.

В сети наверняка есть годные quickstart'ы по Linux. Но в процессе их отыскания я пересмотрел такое количество негодных, что решил сделать с нуля сам. Вышло не очень бодро. Всё-таки хочется поглядеть на действительно качественные вводные.



Последнее исправление: Felagund (всего исправлений: 2)

советую Немет для начала прочесть, а дальше в сети все есть

warmate
()

Как вы рассказываете о Linux людям, которым предстоит с ним работать?

Показываю как работать с нужными им приложениями (DE) и максимум как их установить, остальное сами в процессе работы узнают/научатся, другими словами опыта наберутся, если оно им надо.

Остальное не нужно.

Минут 10 о том, что такое и как сочетаются Unix, Linux, GNU, Android etc;
Как подключаться: OpenSSH/MobaXterm, sshfs/SFTP Net Drive;
Около часа показывал и комментировал, как решаются типичные задачи: где я, кто я, кто тут, что это... Потом ещё показал, как использовать git (reset --hard) в качестве машины времени при написании скриптов, которые могут ненароком удалить, например, себя.

Зачем это всё людям? Это пригодится только начинающему эникею, но он и сам разберётся когда это ему нужно будет.

amorpher ★★★★★
()

Как вы рассказываете о Linux людям, которым предстоит с ним работать? Я попробовал как-то так:

Никак. Пару раз наступил на эти грабли, теперь обхожу стороной.

Zhbert ★★★★★
()
Ответ на: комментарий от amorpher

Надо было сразу уточнить, что речь идёт о CTF. Поправил пост.

Показываю как работать с нужными им приложениями (DE)

На играх DE нет, приложения каждый раз разные.

Зачем это всё людям?

Это не совсем люди. )

Felagund
() автор топика

Введение в Linux
Минут 10 о том, что такое и как сочетаются Unix, Linux, GNU, Android etc;

/me минут через 5 встал и вышел из аудитории...

Kroz ★★★★★
()

tab-auto complete
А так стараюсь не рассказывать.

anonymous
()
Ответ на: комментарий от Felagund

Если ничего не путаешь (дело было в Питере), хотелось бы услышать, почему.

1. Я не был на самом действе (если ты об этом), но, прочитав программу, я понял, что скорее всего так бы и сделал.
2. Могу и путать, поскольку, честно пройдя по ссылкам, так и не понял что такое CTF (отгоняю о себя воспоминания юности про CTF в Quake).

«Учительница географии, Марья Ивановна жалуется директору:
- Там клас, ну совсем не управляем. Постоянно срывают урок.
Директор заходит в класс, там бардак. Директор:
- Привет, шнурки!
- Привет, ботинок.
- Думаете крутые? А кто сможет презерватив на глобус натянуть?
- А что такое глобус?
- А вот об этом сейчас вам расскажет Марья Ивановна...»

Мораль: сначала нужно у публики вызвать интерес, замотивировать, показать зачем им это нужно и почему именно это (преимущества). История возникновения, «это является видом этого» (и как это соотносится с Android вот тем), определения и классификации - самое неподходящее начало.

А дальше - побольше практики. Теория только если она необходима для практики.

История, лидеры, ценности (свобода и т. п.) интересно только когда уже владеешь предметом, а не когда только узнаешь про это.

Kroz ★★★★★
()

выведение из линукс по фотографии, не дорого

punya ★★
()
Ответ на: комментарий от Kroz

История, лидеры, ценности (свобода и т. п.) интересно только когда уже владеешь предметом, а не когда только узнаешь про это.

Согласен. Собственно, я потому и просил годных примеров, чтобы не делать такие смешные ошибки.

Felagund
() автор топика
Ответ на: комментарий от Felagund

Тогда опиши:
1) аудиторию, в частности уровень владения компьютером
2) зачем они пришли на лекцию (их мотивация)
3) каких целей хочешь достигнуть ты этой лекцией - ожидаемый результат
4) отведенное время

Я что-нибудь набросаю.

P. S. И что такое CTF в данном контексте.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от Kroz

Classic CTF - командная игра. Жюри готовит образ виртуальной машины (почти всегда Linux) с уязвимыми сетевыми приложениями - «сервисами», раздаёт командам, организует VPN. Команды подключаются и запускают там свои уязвимые образы.

Каждый раунд (то есть раз в несколько минут) написанная жюри программа-чекер подключается к сервису и оставляет на нём кусочек информации специального формата, например, \w{31}=, который называется флагом. Так как сервисы намеренно уязвимые, всегда есть возможность украсть флаги с машин соперников.

Очки зачисляются обычно за защиту (чекер смог установить флаг, и за отведённое время его никто не украл) и за атаку (украденные у соперников флаги).

Аудитория

Первые курсы мат-меха. Уровень разнится, но в среднем используют Windows, умеют писать простейшие программы на C/Java, не знают скриптовых языков, не умеют работать с сетью.

Мотивация

Дело происходит на самоорганизованном семинаре по информационной безопасности. Отчётности нет. Я полагаю, ребята пришли научиться решать необычные для математика или программиста задачи.

Цель лекции

Кстати, правильный вопрос. Я перемешал введение в Linux и в CTF-тематику. Лучше было разделить? Тогда сперва про Linux: требуется понимание, что командной строки достаточно для управления машиной, а прав root для всемогущества. Для этого нужно рассказать про поиск справки, хождение по ФС, mc, монтирование удалённой ФС (sshfs), что есть cp-mv-rm-rmdir-mkdir для сильных духом, ls-tree-file-less-nano-xxd-hexedit, чтобы быстро понять, что перед нами, установка пакетов (почти всегда имеем дело с apt), nc, история shell (↑, ^R). Что забыл?

Про CTF: умение быстро решать типовые задачи: найти домашний каталог сервиса, перейти в него, исследовать, пропатчить, перезапустить; при осознании задачи быстро искать подходящий инструмент и учиться им пользоваться; строить при необходимости скриптовые велосипеды; автоматизировать работу с TCP-серверами.

Отведённое время

Пара; может, две-три. У нас помимо лекций есть ещё тренировки, что-то стоит вынести туда.

Felagund
() автор топика
Ответ на: комментарий от Felagund

Хм. Интересно. Я что-то подобное делал, но целью было научить полноценно пользоваться Линукс (в т. ч. командной строкой).

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

Мое предложение:
1. «зачем мы здесь собрались». Обрисовать суть чемпионата, убедиться что у всех одинаковое представление об этом. Пара фраз, вот так как ты это сделал для меня. Цель: чтобы у всех были одинаковые ожидания.
2. «зачем это нужно». Где они могут столкнуться с подобными задачами, «администрирование серьезных систем в банках...», % компьютеров с Линукс на серверах, можно затронуть, что те же принципы во всех *nix системах, в т. ч. FreeBSD, Android, MacOS. Цель: мотивация; показать что это не просто интересные игры, что это может пригодиться на практике.

3. Основные принципы. Здесь начинаешь рассказывать материал. Рассказываешь до того момента, как можно будет привести какой-то пример из игры, а лучше несколько примеров. Цель: чтобы люди понимали пример.
4.Пример из игры. Демонстрация, которая на игре привела бы к результату. Цель: показать как использовать теорию на практике.

Далее к пункту 3.

Когда я составлял сво программу программу я делал так:
1. Определить материал. Я открыл Gentoo handbook и выписал оттуда все команды. Думаю, тебе стоит просмотреть все команды для всех заданий.
2. Определить теорию. Выделил моменты, на которые нужна теория. Например:
- Формат команд. команда ключи другие параметры; ключи одной буквой и ключи словами (которые начинаются с двух минусов, почти всегда), типовые ключи (-V -h), разделение - пробелом, если пробел в параметре - экранировать, одинарные кавычики, двойные кавычки.
- Перенаправление ввода-вывода: <, >, >>, | . много-много примеров.
- Пути: структура файловой системы, разделитель каталогов - косая, допустимые символы в именах файлов, что делать если есть спец. символ (пробел, ...), скрытые файлы.
3. Расположить материал так чтобы:
- каждая следующая тема позволяла делать что-то полезное
- теория была возле практики
- использование нового по возможности требовало использования старого
4. Увеличить количество материала где-то на 20%, притом вглубь. Цель: все равно люди запоминают не все, так лучше специально добавить что-то лишнее. Вглубь - чтобы видели всю картину, чтобы стало понятно, что то, что нужно действительно запомнить, - простое.

Почему-то не найду финальную версию моего плана, но один из черновиков нашел, вот: http://pastebin.com/dW3GsuyN . Еще раз, целью было обучить пользоваться Линуксом, не было прицела на безопасность и взлом.

Hope this helps

Kroz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.