Bảo mật GRUB Boot Loader bằng mật khẩu trên Linux

Trong bài viết này chúng ta sẽ cùng tập trung đến vấn đề làm thế nào để bảo mật GRUB Boot Loader trên Linux ? Chúng ta sẽ bảo mật như thế nào ? Bằng cách nào và hiệu quả là gì ? Cùng đến với bài viết sau nhé.

I. Thế GRUB là gì ?

GRUB là trình khởi động máy tính – nó có nhiệm vụ tải nhân và khởi động hệ thống Linux cũng như một số hệ điều hành khác: FreeBSD, NetBSD, OpenBSD, GNU HURD, DOS, Windows 95, 98, Me, NT, 2000 và XP…

Nếu bạn là một quản trị viên Linux thì bạn sẽ biết rằng việc tiếp xúc hệ thống máy chủ về mặt vật lý tuy rất khó nhưng không phải không có rủi ro. Kẻ xấu khi tiếp xúc được sẽ có thể thâm nhập vào hệ thống thông qua việc thiếu bảo mật Single-User mode để thay đổi mật khẩu root (nếu bạn không thiết lập chứng thực mật khẩu ở chế độ này) hay tinh chỉnh các giá trị ở GRUB. Tất nhiên thì mình không nhắc đến việc kẻ xấu chỉ cần cắm ổ đĩa DVD vào thế là xong chuyện.

bảo mật grub

II. Bật tính năng chứng thực mật khẩu GRUB

Dùng tính năng yêu cầu mật khẩu của GRUB để chỉ cho phép người quản trị dùng các hoạt động tương tác với GRUB. Khi đó GRUB không cho phép điều khiển tương tác nào cho đến khi gõ phím và nhập đúng mật khẩu. Nếu không sử dụng tuỳ chọn hàm băm như MD5 hay SHA thì GRUB cho rằng mật khẩu sẽ ở dạng văn bản thuần tuý.

Lưu ý : bài hướng dẫn này được áp dựng đối với GRUB version 1, từ GRUB version 2 trở lên mình sẽ có bài viết riêng khác để cập nhật về điều đó.

Để xác định phiên bản version của GRUB ta thực hiện lệnh sau :

# grub-install -v
grub-install (GNU GRUB 0.97)

 

Tiến hành bật tính năng chứng thực mật khẩu GRUB qua các bước sau

Bước 1 : tạo mật khẩu hash MD5

– Để tạo mật khẩu cho GRUB bạn phải thực hiện các thao tác dưới quyền root. Ta sẽ tạo mật khẩu được hash MD5 nhằm phục vụ việc bảo mật thông tin mật khẩu. Bạn cũng có thể sử dụng công cụ khác “grub-crypt” để tạo các mật khẩu được băm 1 chiều kiểu khác mà mình sẽ trình bày ở cuối bài phụ trợ. Ví dụ mật khẩu ở đây là “123456” :

# grub-md5-crypt
Password: ******
Retype password: ******
$1$TYNQI$t58C8V2o.4gN6zvsc5cTD/

 
Bước 2 : chỉnh sửa cấu hình GRUB

– File /boot/grub/grub.conf chứa các thông tin sẽ được thể hiện trên menu GRUB trong quá trình khởi động hệ thống. Ở một số hệ thống thì file /etc/grub.conf là một symbolic link chỉ đến /boot/grub/grub.conf .

Thế nên ta sẽ chỉnh sửa file config của GRUB để thêm thông tin mật khẩu.

# vi /boot/grub/grub.conf

 
– Các bạn hãy copy nội dung mật khẩu đã được MD5 hash ra ở trên và thêm vào file config với cấu trúc như sau “password –md5 <mật khẩu md5 hash>” .

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5

# Password for GRUB
password --encrypted $1$TYNQI$t58C8V2o.4gN6zvsc5cTD/

splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-504.12.2.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-504.12.2.el6.x86_64 ro root=UUID=0fa15f94-a0c3-4cec-a36d-a3f2ed2a10de rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-504.12.2.el6.x86_64.img
title CentOS (2.6.32-431.el6.x86_64)
root (hd0,0)

 
Một khi dòng password đã được thêm vào file cấu hình GRUB, thì khi khởi động lại sẽ hiện ra thông tin yêu cầu nhập mật khẩu mới có thể thao tá được các lệnh grub hay chỉnh sửa các tham số kernel.

Bước 3 : kiểm tra lại hoạt động chứng thực bảo mật GRUB

– Ta khởi động lại máy tính Linux và bấm nút ‘p‘ để kiểm tra đã thành công hay chưa. Nếu màn hình hiện ra prompt “password” phía dưới với nội dung cơ bản như sau tức bạn đã thành công.

Use the up-arrow and down-arrow keys to select which entry is highlighted.
Press enter to boot the selected OS or 'p' to enter a password to unlock the next set of features.>

III. Khởi tạo mật khẩu băm (hash) bằng “grub-crypt”

Ta sẽ sử dụng chương trình “grub-crypt” để tạo ra các mật khẩu được băm 1 chiều. Grub-crypt chỉ hỗ trợ 2 thuật toán băm phổ biến nhất là MD5 và SHA.

# grub-crypt -h
Usage: grub-crypt [OPTION]...
Encrypt a password.
-h, --help Print this message and exit
-v, --version Print the version information and exit
--md5 Use MD5 to encrypt the password
--sha-256 Use SHA-256 to encrypt the password
--sha-512 Use SHA-512 to encrypt the password (default)

 
+ Tạo mật khẩu hàm băm SHA 256.

# grub-crypt --sha-256
Password:
Retype password:
$5$C8bS7m7wadcNRCFA$lTQacOcnovA4KAwBsFfWkdtgqCCXgCi.WfgRFs07Ky5

 
+ Tạo mật khẩu hàm băm SHA 512.

# grub-crypt --sha-512
Password:
Retype password:
$6$X2GxexkqTpzq6atk$6YTgT2yPRqTLHb2mMA6.P8ENHfjDK0THLv9lS1lDba6qI6vGLNvJAX/SBdqSnYiwKyWrf9V47HyTaPQ84auLs0

 
Tạo mật khẩu hàm băm MD5.

# grub-crypt --md5
Password:
Retype password:
$1$F0bxGz8K$EUHeZpFzSRIkX8Wmekkyl.

 
Sau khi ra được các chuỗi băm của mật khẩu đã được nhập vào thì bạn tiến hành lại bước 2 nhé.
 
Như vậy bạn đã biết cách để cài đặt mật khẩu nhằm bảo mật GRUB Boot Loader trên Linux rồi. Chúc các bạn thành công.

Previous article[Awk] Bài 1: Cài đặt chương trình AWK
Next article[Linux] Thay đổi thuật toán băm lưu trữ mật khẩu /etc/shadow
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !