Linux_basics

0
6 месяцев назад
6 месяцев назад
README.md

Linux_basics

Аннотация: данный проект позволит тебе познакомиться с операционной системой Linux и принципами обеспечения ее безопасности. Кроме того, ты подготовишь для себя инструменты, которые точно пригодятся в будущей профессии.

Задание 1. Создание скрипта сбора информации о дистрибутиве

Твоя задача: написать bash-скрипт с названием

get_all_info.sh
, который при запуске от root будет собирать следующую информацию о системе:

  1. Установленные пакеты.
  2. Запущенные процессы.
  3. Открытые порты.
  4. Устанавливать с помощью пакетного менеджера пакеты «cowsay» и «sl» (в 2010-х эти пакеты были «мемными» среди сисадминов и хакеров).
  5. Версию ядра и операционной системы.
  6. Записывать вышеописанную информацию в файл
    info
    и сжимать его в архив
    OS_RESULT.tar
    .

В результате выполнения этого задания у тебя должны быть:

  • архив
    OS_RESULT.tar
    с файлом
    info
    внутри;
  • bash-скрипт, в котором содержатся необходимые для выполнения вышеописанных пунктов команды и bash-конструкции. Он поможет тебе и в работе, когда нужно будет работать с новым Linux-устройством — так ты сможешь быстро получить всю основную информацию о том, что происходит в системе с сетью, процессами и пакетами.

Задание 2. Создание скрипта настройки Linux

Твоя задача: создать bash-скрипт, в котором будут создаваться пользователи и группы, но с одним условием: их права должны быть ограничены их функциональными задачами.

  1. Создай пользователя user и группу default_users с правами по умолчанию.
  2. Создай пользователей secret_agent, secret_spy, secret_boss, все они должны быть в группе secret_users.
  3. Пользователи группы secret_users должны иметь возможность получать доступ к домашним директориям друг друга. Остальные — нет.
  4. Сделай директорию /var доступной любым пользователям и любым группам.
  5. Установи пакет apache2 и проверь состояние linux-сервиса apache2 после установки.
  6. Пользователи группы default_users должны иметь возможность вводить все команды от sudo без ввода пароля.

В результате выполнения этой задачи у тебя должен быть скрипт с расширением .sh (название скрипта — любое).

Задание 3. Настройка мониторинга Linux

Твоя задача: настроить автоматическую отправку логов за предыдущий день с помощью logwatch, postfix и crontab на свою почту: gmail/yandex/mail каждые сутки в 00:00. Детализация логов должна быть максимальной.

В результате выполнения задачи ты будешь получать на почту каждые сутки отчет о состоянии своей системы. В репозиторий необходимо загрузить:

  • конфигурационный файл
    postfix main.cf
    ;
  • файл
    cron.txt
    , содержащий строку конфигурации планировщика (например, «12 40 * * * ...»).

Задание 4. Защита операционной системы встроенными инструментами

Твоя задача:

  1. Настрой подключение к своему Linux по SSH с использованием приватного и публичного ключей, а не пароля.
  2. Запрети подключаться к своему устройству по порту 80/tcp извне.

В качестве ответа загрузи в репозиторий:

  • файл конфигурации
    sshd_config
    своей виртуальной машины, к которой нужно подключаться;
  • файл
    authorized_keys
    ;
  • файл
    iptables.txt
    , в котором содержится вывод одной цепочки iptables правил на устройстве (цепочка должна быть та, куда было записано правило).