Mười cách người khác đọc dữ liệu của bạn

Mười cách người khác đọc dữ liệu của bạn.

Zxc232 biên soạn (dựa theo bài này)

Root là user cao cấp nhất, có toàn quyền với toàn bộ hệ điều hành, tương tự như Administrator của Windows. Vì vậy để an toàn (tránh dùng user root rồi xóa nhầm, sửa nhầm linh tinh trong hệ thống) và bảo mật (hạn chế hacker dùng được quyền root), các bản Linux như Mandriva, Ubuntu, … không cho log in với tên root.

Chế độ khởi động bình thường của Linux là multiuser mode (nhiều người dùng chung một máy). Mỗi user có một thư mục Home riêng (/home/username) với toàn quyền trên đó nhưng không đọc được thư mục Home của user khác. Root đương nhiên đọc được thư mục Home của mọi user và đó chính là vấn đề của bài viết này.

Trong chế độ multiuser, các thao tác cần đến quyền root (ví dụ cài phần mềm) đều phải nhập password của root (Mandriva) hoặc password của user thuộc nhóm sudo (Ubuntu) để thực hiện với quyền root. Khi thực hiện xong thao tác đó là hết quyền, hạn chế lạm dụng.

Tuy nhiên, các bản Linux đều có chế độ single user mode đăng nhập vào hệ thống với tên root, thường là không cần password. Chế độ này cần thiết để thực hiện một số thao tác bảo trì, sửa chữa hệ thống nhưng nếu có người truy cập vật lý (physical access) hay nói nôm na là sờ được vào máy của bạn, họ có thể khởi động máy ở chế độ single user mode rồi đọc thoải mái các thư mục Home của mọi user (và còn một số cách khác nêu dưới đây).

Wikipedia đánh giá trường hợp này “ is viewed as a security vulnerability” (được xem như một lỗ hổng an ninh). Hồi mới tập tọng Linux, tôi cũng phát biểu đây là một lỗ hổng an ninh, bị các bậc tiền bối đập cho tơi tả. Nhưng hồi đó mình chưa biết hỏi cụ Gúc để cãi.

Các cách nêu dưới đây cho phép một user làm một trong các việc sau:

  • Log in vào máy ở chế độ single user mode với tên root không cần biết password của root (nếu có).

  • Tạo password mới cho root không cần biết password cũ.

  • Mount một partition trên ổ cứng từ đó đọc được dữ liệu trên partition đó

Vì vậy nó vừa là cách để khôi phục password của root nếu quên, vừa là cách đọc dữ liệu của người khác cần phải đề phòng .

Các vấn đề dưới đây, nếu đi sâu còn phức tạp và còn nhiều cách làm nữa. Tuy nhiên ở đây chỉ giới hạn ở mức tối thiểu phù hợp với người dùng bình thường. Có cách tôi đã thử, có cách chưa, chỉ giới thiệu để biết.

1. Khôi phục password của root.

1.1-Từ Grub menu, khởi động vào chế độ single user mode.

Khi khởi động máy đến lúc Grub menu xuất hiện, chọn chế độ khởi động là recovery mode (Ubuntu) hoặc safe mode (Mandriva). Các chế độ này chính là single user mode.

Các bản Linux khác sẽ khởi động thẳng vào dấu nhắc của root. Riêng Ubuntu và các phiên bản của nó sẽ xuất hiện một menu phụ. Chọn trong đó Drop to root shell prompt để vào dấu nhắc root.

Tại dấu nhắc, gõ lệnh passwd rồi Enter. Tiếp theo, nhập hai lần password mới tùy chọn của root.

1.2-Khởi động vào single user mode khi chế độ đó không có trong Grub menu

Vì nhiều lý do (ví dụ xem phần sau), trong Grub boot có thể không có menu recovery mode hoặc safe mode nhưng vẫn khởi động vào dấu nhắc root được như sau:

Mandriva: khi xuất hiện Grub menu, nhấn F3, chọn Safe trong menu con và Enter. Gõ thêm vào cuối hàng lệnh mới xuất hiện từ single và nhấn Enter.

Ubuntu: khi xuất hiện Grub menu, nhấn phím E rồi dùng phím mũi tên di chuyển con trỏ đến cuối cụm từ quiet splash và gõ thêm từ single vào đó. Nhấn Ctrl+X. Khi menu con xuất hiện, chọn tiếp Drop to root shell prompt.

Hệ thống sẽ khởi động vào chế độ single user mode và xuất hiện dấu nhắc root.

1.3-Khởi động vào dấu nhắc root dùng shell

Nếu single user mode bị disabled hoặc có root password bảo vệ, cũng làm tương tự như mục 1.2-. Nhưng thay cho từ single, thêm init=/bin/bash rồi nhấn phím B để khởi động.

Khi xuất hiện dấu nhắc, gõ lệnh sau rồi Enter để mount root partition ở chế độ read/write:

#mount -no remount,rw / (chú ý cuối lệnh có ký hiệu thư mục gốc /).

Sau đó chạy lệnh passwd để đổi password của root như nói ở 1.1-.

Cách này tôi chưa thử.

1.4-Khởi động từ một hệ thống file khác

Cách này phức tạp nhưng về nguyên tắc thực hiện được. Tải về một bản Linux tối thiểu (search “minimal linux” để tìm, chỉ dưới 50MB) rồi giải nén nó vào một thư mục bạn có quyền ghi (ví dụ /tmp). Sau đó khi khởi động, sửa option root= trỏ vào bản Linux đó. Khởi động xong thì mount partition của bản Linux cũ như nói ở trên.

1.5-Khởi động từ một USB

Hiện nay có rất nhiều cách để cài một bản Linux vào một USB (ví dụ xem tại đây). Ubuntu có công cụ Startup Disk Creator trong System → Administration.

Cắm USB vào máy rồi khởi động. Đến màn hình BIOS, nhấn F12 (hoặc phím nào đó tùy loại mainboard) để chọn khởi động vào Linux cài trên USB.

Khi xuất hiện Grub menu, chọn khởi động vào single user mode như nói ở 1.1- nhưng ở đây là single user mode của bản Linux cài trên USB. Khi xuất hiện dấu nhắc root, chạy lệnh sau để tìm các ổ cứng và partition trên đó:

fdisk -l

Tạo một thư mục mới trên USB (ví dụ thư mục newdir) bằng lệnh sau:

mk /newdir

Sau đó mount partition trên ổ cứng có bản Linux mà ta muốn sửa password của root hoặc muốn đọc vào thư mục đó (ví dụ partition /dev/hda1):

mount -o,rw /dev/hda1 /newdir

Chuyển thư mục newdir thành thư mục gốc bằng lệnh:

chroot /newdir

rồi dùng lệnh passwd để tạo password mới cho root của bản Linux trên ổ cứng như nói ở 1.1-

Nếu chỉ cần xem nội dung các thư mục trên một partition thì có thể làm đơn giản hơn. Khởi động vào bản Linux trên USB bình thường. Sau đó (ví dụ với Ubuntu trên USB) nhấn vào menu Places → Computer rồi nhấn tiếp vào partition ở cột bên trái và đọc nội dung ở cột phải như hình sau:

1.6-Khởi động từ CD

Dùng một đĩa Live CD của một bản Linux nào đó. Khởi động vào bản Live CD đó giống như cách làm với USB ở trên. Sau đó làm tiếp cũng như với USB.

1.7-Khởi động từ mạng LAN

Cách này khó nhưng về nguyên tắc làm được nếu máy nối vào mạng LAN và trên mạng đã có một máy chủ được cấu hình như boot server.

Trước hết phải sửa BIOS để máy boot được từ LAN. Khi đã boot được từ một hệ điều hành trên boot server thì các bước tiếp theo như mục 1.5-.

Nếu BIOS có password bảo vệ mà bạn không biết và do đó không sửa cho máy boot từ LAN được, theo một trong các cách sau:

  • Hỏi cụ Gúc tìm master password của BIOS.

  • Rút ổ cắm nguồn của máy, tháo pin của BIOS ra chờ khoảng 120 giây rồi lắp lại, cắm nguồn khởi động lại máy và load lại default BIOS settings (không có password).

  • Một số mainboard có jumper để reset lại BIOS.

(Chú ý là một số notebook có tính năng an ninh chống reset BIOS).

1.8-Khởi động từ một ổ cứng khác khởi động được.

Dùng một ổ cứng khác khởi động được vào một bản Linux mà bạn làm chủ lắp thêm vào máy, ổ cứng cũ có bản Linux mà ta muốn xem hoặc thay password của root để nguyên. Vào BIOS, đổi ổ mới thành ổ khởi động trước (hoặc nhấn F12 chọn nó khi khởi động máy). Khi khởi động được rồi thì làm tiếp như 1.5-

1.9-Lắp ổ cứng sang một máy khác như ổ cứng phụ

Tháo ổ cứng có Linux mà ta muốn xem hoặc đổi password của root lắp sang một máy khác đã có Linux mà ta làm chủ. Sau đó khởi động máy đó và làm tiếp như nêu ở 1.5-

1.10-Khai thác lỗ hổng an ninh

Nếu một máy đã cài chạy từ lâu hoặc đã lâu không chạy và không có ai bảo trì, cập nhật phần mềm thì rất có thể là nó đang có một lỗ hổng an ninh chưa được vá. Khai thác lỗ hổng đó có thể xâm nhập được hệ thống để xem dữ liệu hoặc đổi password của root.

Cách này dành cho các cao thủ Linux nhưng về nguyên tắc là làm được.

2. Khôi phục username, password của user.

Nếu còn một user khác, log in vào bằng tên user đó rồi dùng User Management để khai lại password mới cho user đã quên password.

Nếu chỉ có một user duy nhất mà quên password:

  • Khi boot máy đến Grub menu, chọn chế độ khởi động là recovery mode (Ubuntu) hoặc safe mode, (Mandriva).

  • Các bản Linux khác sẽ khởi động thẳng vào dấu nhắc của root. Riêng Ubuntu và các phiên bản của nó sẽ xuất hiện một menu phụ. Chọn trong đó Drop to root shell prompt để vào dấu nhắc root.

  • Chạy tiếp lệnh startx để vào màn hình đồ họa. Sau đó vào tiếp User Management để khai lại password.

  • Nếu quên cả username, mở thư mục /home. Tên mỗi thư mục con trong đó là username tương ứng. Ví dụ /home/zxc thì username là zxc.

  • Hoặc không cần chạy startx mà chạy ngay lệnh passwd username để khai password mới. Ví dụ username là zxc lệnh sẽ là passwd zxc.

3. Bảo vệ máy của bạn

Như vậy, nếu máy của bạn người khác có thể sờ vào được (truy cập vật lý) thì có nhiều cách để họ đọc dữ liệu, thay password của root, thay password của chính bạn để bạn không thể đăng nhập vào máy nữa. Đó là chưa kể đến những cách truy cập máy từ Internet không nói đến ở đây.

Các cách bảo vệ dưới đây (cũng như các loại khóa ta dùng trong nhà) có tính tương đối và tùy hoàn cảnh mà áp dụng. Cũng như khóa, có cách dưới đây chỉ chống được trộm vặt, có cách chống được trộm cao cấp, tùy chọn theo nhu cầu của bạn.

3.1-Bảo vệ vật lý máy

Để máy trong tủ, trong phòng có khóa hoặc khi mang đi đâu thì giữ bên mình. Gỡ bỏ các ổ mềm, ổ CD, DVD, đổ keo vào các cổng USB. Chọn mua loại máy có thiết bị bảo vệ phụ bằng vân tay, ảnh chân dung, thẻ mã hóa, v.v….

3.2-Khóa chế độ boot thẳng vào dấu nhắc root.

Trong Ubuntu làm như sau:

  • Khởi động máy vào Recovery Mode rồi chọn Drop to root shell promt như nói ở trên.

  • Tại dấu nhắc lệnh, gõ lệnh passwd rồi Enter.

  • Nhập hai lần password tùy chọn cho root.

Từ lần sau, khi boot vào Recovery mode rồi Drop to root shell promt phải nhập password của root mới vào được hệ thống.

Với Mandriva, tôi chưa tìm ra cách.

Còn một cách nữa là đặt password cho Grub menu (tức là cho trình grub) nhưng hơi phức tạp. Các bản Linux mới nhất có option đặt password này đơn giản hơn. Ví dụ với Mandriva 2010 mở Control Center → Boot → Set up boot system. Tuy nhiên, nếu máy dùng chung thì cách này không có tác dụng bảo vệ thư mục Home của bạn vì người dùng chung vẫn có thể boot vào Single user mode.

Cách thứ ba là dùng quyền root mở file /boot/grub/menu.lst (với Grub1.5 trong Mandriva chẳng hạn) hoặc file /boot/grub/grub.cfg (Ubuntu từ 9.10 trở đi) rồi đánh dấu # vào đầu hàng Recovery mode hoặc safe mode để tắt nó đi. Tuy nhiên, chế độ boot đó không phải là thừa, khi cần đến nó lại phải bật lên cũng mệt.

3.3-Mã hóa dữ liệu

Cách này có vẻ hiệu quả nhất. Nếu dữ liệu đã được mã hóa thì các cách nêu trên có truy cập được vào thư mục cũng không đọc được dữ liệu chứa trong đó, kể cả truy cập vật lý hay truy cập từ Internet. Nhất là các loại ổ USB, ổ cứng ngoài, laptop, netbook dễ bị đánh mất hoặc ăn trộm rất nên dùng. Các công cụ mã hóa cũng rất đa dạng.

Một số bản Linux cho phép tạo thư mục Home mã hóa ngay trong quá trình cài đặt. Trong Ubuntu, vào System → Administration → Disk Utility có thể Format rồi mã hóa cả một partition.

Hoặc mã hóa cao cấp và kỹ lưỡng hơn bằng TrueCrypt xem ở đây.

Tuy nhiên cái gì cũng có giá của nó. Khóa nhiều lớp quá, mật mã phức tạp quá thì khi mở đóng mất nhiều thời gian và nếu đánh mất mật mã thì chết dở.

One thought on “Mười cách người khác đọc dữ liệu của bạn

  1. Đây là “mười cách” trong Linux, còn trong Windows thì sao hè? Ít hơn hay nhiều hơn? Tui không biết bao nhiêu, nhưng vái trời cho nó là . . . mười một cách. Bênh gà nhà mà🙂

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s