У статті розповідається як встановити пароль на менеджер завантаження ОС GRUB. Ці дії безсумнівно підвищать загальну безпеку Вашої системи. Допоможуть обмежити доступ до деяких режимів завантаження операційної системи або обмежити доступ на завантаження системи в цілому. Установка пароля справа швидке і не займе у Вас багато часу.

Зміст

  • 1. Навіщо потрібен пароль на GRUB?
  • 2. Способи установки пароля на менеджер завантаження ОС GRUB.
  • 2.1. Пароль на редагування конфігурації GRUB
  • 2.2. Пароль на запуск пункту в GRUB
  • 2.3. Приховати деякі пункти мене завантаження GRUB
  • 3. Висновок
  • 1. Навіщо потрібен пароль на GRUB?

    Нагору


    Як вже було написано вище ці дії підвищать загальну безпеку операційної системи. Менеджер завантаження ОС вимагає додаткових налаштувань безпеки, так як при фізичному доступі «просунутий користувач може отримати права суперкористувача в системі.

    Багато дистрибутиви Linux після установки ніяк не захищають свій менеджер завантаження, а адже змінивши налаштування входу можна отримати повний доступ до системи, змінити всі паролі і накоїти ще багато різних капостей. З усіх цих причин слід самостійно прийняти заходи по захисту своєї операційної системи на рівні GRUB.

    Якщо Ви все ще сумніваєтеся, то пропоную прочитати статтю «Відновлення пароля root або загроза безпеки з коробки в Linux», в якій детально розписано як легко це зробити.

    2. Способи установки пароля на менеджер завантаження ОС GRUB

    Нагору


    Нижче наведено найбільш ефективні методи захисту менеджера завантаження GRUB. GRUB – це дуже потужний засіб в руках системного адміністратора, що має дуже багато параметрів конфігурування.

    Редагувати будемо конфігураційний файл /boot/grub/menu.lst. У деяких дистрибутивах це /boot/grub/grub.conf.

    Пароль в конфігураційний файл можна внести або відкритим текстом, або його хеш-образ, отриманий за допомогою алгоритму MD5. Простіше кажучи, в GRUB можна задати пароль явним чином, тобто написати його як є або зашифрувати його відображення. Нижче, для прикладу, наведено пароль спочатку відкритим текстом, а потім його хеш-образ:

    password secretnoe_slovo
    password $1$GtD63/$3aUy5vj.INHE4J6UBk/u40

    Ці два рядки, по суті, є одним і тим же паролем.

    Для захисту меню GRUB безпечніше використовувати хеш-образ пароля, так як його неможливо прочитати в конфігураційному файлі GRUB.

    2.1. Пароль на редагування конфігурації GRUB
    Нагору

    Реалізація даного способу дозволить захистити конфігурацію GRUB від ненавмисного редагування. Всі пункти меню будуть доступні для запуску будь-якій людині, але їх редагування відкриється, тільки після введення пароля.

  • Створюємо резервну копію конфігураційного файлу /boot/grub/menu.lst, щоб в разі НП відновити все в початкове положення:
    # sudo cp /boot/grub/menu.lst /boot/grub/menu.bak
  • Отримуємо хеш-функцію пароля.
    # grub
    # Входимо в командний рядок менеджера завантаження GRUB
    # md5crypt
    # Створюємо хеш-образ пароля.

    Результат:

    grub> md5crypt

    Password: **********
    Encrypted: $1$GtD63/$3aUy5vj.INHE4J6UBk/u40

    Рядок $1$GtD63/$3aUy5vj.INHE4J6UBk/u40 є хеш-образ введеного Вами пароля. Поєднання клавіш + дозволяють вийти з командного рядка GRUB.

  • Редагуємо конфігураційний файл GRUB.
    # sudo nano /boot/grub/menu.lst
    # Відкриваємо конфіг GRUB

    На початку файлу, після рядка параметра timeout, додаємо:

    password –md5 $1$GtD63/$3aUy5vj.INHE4J6UBk/u40

    В результаті:


    ## timeout sec
    # Set a timeout, in SEC seconds, before automatically booting the default entry
    # (normally the first entry defined).
    timeout 10
    password –md5 $1$GtD63/$3aUy5vj.INHE4J6UBk/u40
  • Зберігаємо зміни. Після перезавантаження комп’ютера в меню GRUB, відредагувати будь-який пункт меню без введення пароля вже не вийде. Щоб ввести пароль, потрібно натиснути

    .

  • 2.2. Пароль на запуск пункту в GRUB
    Нагору

    Цей спосіб допоможе обмежити завантаження вибраних пунктів меню GRUB. Можна, наприклад, поставити пароль на завантаження системи у режимі recovery mode, який присутній в сімействі ОС *buntu та інших дистрибутивах.

  • Створюємо резервну копію конфігураційного файлу /boot/grub/menu.lst, щоб в разі НП відновити все в початкове положення:
    # sudo cp /boot/grub/menu.lst /boot/grub/menu.bak
  • Отримуємо хеш-функцію пароля.
    # grub
    # Входимо в командний рядок менеджера завантаження GRUB
    # md5crypt
    # Створюємо хеш-образ пароля.

    Результат:

    grub> md5crypt

    Password: **********
    Encrypted: $1$GtD63/$3aUy5vj.INHE4J6UBk/u40

    Рядок $1$GtD63/$3aUy5vj.INHE4J6UBk/u40 є хеш-образ введеного Вами пароля. Поєднання клавіш + дозволяють вийти з командного рядка GRUB.

  • Редагуємо конфігураційний файл GRUB.
    # sudo nano /boot/grub/menu.lst
    # Відкриваємо конфіг GRUB

    В кінці конфігураційного файлу знаходяться параметри запуску відображуваних пунктів меню GRUB. До параметрів пункту меню, який потребує захисту, після рядки зі словом title, додаємо рядок:

    password –md5 $1$GtD63/$3aUy5vj.INHE4J6UBk/u40

    Приміром, додаємо рядок в пункт завантаження системи у режимі recovery mode:

    title Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
    password –md5 $1$GtD63/$3aUy5vj.INHE4J6UBk/u40
    uuid 03d11ea5-2b80-4a5e-ba09-cd6909425070
    kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=03d11ea5-2b80-4a5e-ba$
    initrd /boot/initrd.img-2.6.28-11-generic
  • Зберігаємо зміни. Після перезавантаження комп’ютера в меню GRUB, завантажити цей пункт меню без введення пароля вже не вийде. Щоб ввести пароль, потрібно натиснути

    .

  • 2.3. Приховати деякі пункти мене завантаження GRUB

    Нагору

    У GRUB можна приховати деякі пункти меню, які будуть видні тільки після введення пароля. Наприклад, можна приховати recovery mode вашої операційної системи.

    Для цього потрібно зробити два конфігураційних файлів. У першому файлі будуть знаходиться «відкриті» пункти меню, які завантажуються відразу при старті GRUB, а в другому пункти меню, які потрібно показати тільки після введення пароля – «приховані».

  • Створюємо резервну копію конфігураційного файлу /boot/grub/menu.lst, щоб в разі НП відновити все в початкове положення:
    # sudo cp /boot/grub/menu.lst /boot/grub/menu.bak
  • Отримуємо хеш-функцію пароля.
    # grub
    # Входимо в командний рядок менеджера завантаження GRUB
    # md5crypt
    # Створюємо хеш-образ пароля.

    Результат:

    grub> md5crypt

    Password: **********
    Encrypted: $1$GtD63/$3aUy5vj.INHE4J6UBk/u40

    Рядок $1$GtD63/$3aUy5vj.INHE4J6UBk/u40 є хеш-образ введеного Вами пароля. Поєднання клавіш + дозволяють вийти з командного рядка GRUB.

  • Створюємо другий конфігураційний файл, який буде містити приховані пункти:
    # sudo cp /boot/grub/menu.lst /boot/grub/menu_hidden.lst

    Для полегшення налаштування другий файл створюємо простим копіюванням першого з подальшим редагуванням обох.

  • Редагуємо перший конфігураційний файл:
    # sudo nano /boot/grub/menu.lst
  • На початку файлу, після рядка параметра timeout, додаємо:
    password –md5 $1$GtD63/$3aUy5vj.INHE4J6UBk/u40 /boot/grub/menu_hidden.lst

    Результат повинен бути такий:


    ## timeout sec
    # Set a timeout, in SEC seconds, before automatically booting the default entry
    # (normally the first entry defined).
    timeout 10
    password –md5 $1$GtD63/$3aUy5vj.INHE4J6UBk/u40 /boot/grub/menu_hidden.lst

    Цей рядок показує системі, що після введення пароля повинен відкритися інший файл /boot/grub/menu_hidden.lst.

  • В кінці файлу додаємо або видаляємо пункти меню GRUB, які повинні бути видно або не видно в початку завантаження (у першому меню).

    Наприклад, щоб приховати режим recovery mode, потрібно закоментувати або видалити рядки файлу, що містять команди завантаження цього режиму:

    title Ubuntu 9.04, kernel 2.6.28-11-generic
    uuid 3d11ea5-2b80-4a5e-ba09-cd6909425070
    kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=03d11ea5-2b80-4a5e-ba$
    initrd /boot/initrd.img-2.6.28-11-generic
    quiet

    title Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
    uuid 03d11ea5-2b80-4a5e-ba09-cd6909425070
    kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=03d11ea5-2b80-4a5e-ba$
    initrd /boot/initrd.img-2.6.28-11-generic

    title Windows Vista (loader)
    rootnoverify (hd0,0)
    savedefault
    makeactive
    chainloader +1

  • Закриваємо файл, зберігаючи всі зміни.
  • Відкриваємо другий файл для редагування:
    # sudo nano /boot/grub/menu_hidden.lst
  • Додаємо або видаляємо пункти меню GRUB, які повинні бути видно або не видно після введення пароля у другому меню.

    У нашому прикладі, у другому меню повинен бути присутнім тільки режим завантаження системи recovery mode, тому коментуємо або видаляємо всі інші пункти:

    title Ubuntu 9.04, kernel 2.6.28-11-generic
    uuid 3d11ea5-2b80-4a5e-ba09-cd6909425070
    kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=03d11ea5-2b80-4a5e-ba$
    initrd /boot/initrd.img-2.6.28-11-generic
    quiet

    title Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
    uuid 03d11ea5-2b80-4a5e-ba09-cd6909425070
    kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=03d11ea5-2b80-4a5e-ba$
    initrd /boot/initrd.img-2.6.28-11-generic

    title Windows Vista (loader)
    rootnoverify (hd0,0)
    savedefault
    makeactive
    chainloader +1

  • Зберігаємо зміни. Після перезавантаження комп’ютера потрапляємо в меню, де представлені тільки вибрані пункти меню. Після набору пароля відкривається друге меню з прихованими пунктами. Щоб ввести пароль, потрібно натиснути

    .

  • 3. Висновок

    Нагору


    В якості висновку хотілося б додати, що принцип захисту інформації: «Що не дозволено, то заборонено» повинен передбачати:

    • редагування всіх пунктів завантаження операційної системи повинно бути заборонено;
    • запуск операційної системи в recovery mode і інших режимах, які можуть дати повний доступ до системи, повинні бути запаролены;
    • По можливості, рекомендується приховати адміністраторський режими завантаження операційної системи, такі як recovery mode.

    LEAVE A REPLY

    Please enter your comment!
    Please enter your name here