Tải bản đầy đủ (.doc) (36 trang)

TÌM HIỂU VỀ HỆ ĐIỀU HÀNH KALI LINUX

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (870.42 KB, 36 trang )

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

TÌM HIỂU VỀ HỆ ĐIỀU HÀNH KALI LINUX
Môn học: An toàn mạng
Giảng viên: Nguyễn Hoàng Thắng
Nhóm sinh viên (nhóm 02):
1.

Lê Anh Dũng – B14DCAT185

2.

Đinh Duy Đông – B14DCAT217

3.

Nguyễn Đức Kiên – B14DCAT202

4.

Trịnh Đức Quang – B14DCAT233

5.

Nguyễn Đình Thái – B14DCAT161

Hà Nội, 2017



Hệ điều hành Kali Linux

MỤC LỤC

Nội dung
I.

Tổng quan về hệ điều hành Kali Linux...............................................................................................3
1.

Lịch sử.................................................................................................................................................3

2.

Đặc điểm..............................................................................................................................................3

3.

Các ứng dụng trong Kali Linux........................................................................................................3

II. Cài đặt Kali Linux..................................................................................................................................9
III.

Kiến trúc hệ điều hành Kali Linux................................................................................................17

1.

Cấu trúc hệ thống Unix...................................................................................................................17


2.

Kiến trúc nhân..................................................................................................................................18

3.

Quá trình khởi động của hệ điều hành Kali Linux......................................................................19

4.

Cấu trúc thư mục.............................................................................................................................22

IV.

Cách thêm ứng dụng – cập nhật mã lỗi.........................................................................................33

1.

Cách thêm ứng dụng, plugin cho Kali Linux................................................................................33

2.

Cách cập nhật cho Kali Linux........................................................................................................33

3.

Hướng dẫn dùng sqlmap để khai thác lỗi sql injection...............................................................35

2



Hệ điều hành Kali Linux

I.

Tổng quan về hệ điều hành Kali Linux
1. Lịch sử
Kali Linux là một hệ điều hành được xây dựng trên nhân Linux, được
thiết kế để kiểm tra bảo mật, thử nghiệm xâm nhập các hệ thống máy
tính. Tiền thân của Kali Linux là BackTrack, xuất hiện năm 2006 và
được các chuyên gia đánh giá bảo mật ưa chuộng sử dụng.
Sau 7 năm liên tục phát triển, tháng 3 năm 2013, hãng Offensive
Security đã công bố phiên bản mới của BackTrack có tên là Kali
Linux (được xem như phiên bản BackTrack 6). Kali Linux tập hợp và
phân loại gần như tất cả các công cụ thiết yếu mà bất kì chuyên gia
đánh giá bảo mật nào cũng cần sử dụng khi tác nghiệp.
2. Đặc điểm
Nói về ưu điểm của Kali là nói về những thay đổi giữa BackTrack và
Kali. So với BackTrack, Kali có rất nhiều cải tiến:
 Kali phát triển trên nền tảng hệ điều hành Debian
 Tính tương thích kiến trúc
 Hỗ trợ mạng không dây tốt
 Khả năng tùy biến cao
 Dễ dàng nâng cấp giữa các phiên bản Kali trong tương lai
3. Các ứng dụng trong Kali Linux
Kali được cài đặt hơn 600 công cụ tùy theo nhu cầu đánh giá và nó đã
được sắp xếp, phân loại rõ ràng dựa trên mục đích sử dụng để người
dùng có thể sử dụng những công cụ này một cách tối ưu nhất.
 Thu thập thông tin – Information Gathering
Nhóm phân loại này gồm những công cụ tập trung vào việc thu

thập thông tin về mục tiêu. Trong phân loại này có một số
lượng lớn các công cụ được phân chia theo loại thông tin cần
thu thập như:
 OS Fingerprinting (Thu thập thông tin về hệ điều hành).

3


Hệ điều hành Kali Linux

 Network Scanners (Dò quét cổng, dò quét mạng, dò quét
phiên bản dịch vụ).
 SSL Analysis (Phân tích giao thức SSL).
 VoIP Analysis (Phân tích giao thức VoIP).
Trong số các công cụ trên có một số công cụ rất nổi tiếng, cực
kỳ hữu ích khi thực hiện đánh giá bảo mật hạ tầng mạng lưới
điện toán, đó chính là Nmap. Với Nmap, chúng ta có thể biết
được Ports (cổng dịch vụ) nào đang Open, Filtered hoặc
Closed, ngoài ra còn có thể xác định được phiên bản dịch vụ
(Banner version) và cũng có thể thực hiện phá đoán phiên bản
hệ điều hành mà mục tiêu đang sử dụng.
 Phân tích lỗ hổng – Vulnerability Analysis
Những công cụ nằm trong nhóm này tập trung vào việc phát
hiện các lỗ hổng bảo mật như: lỗ hổng ứng dụng, lỗ hổng trong
hạ tầng mạng, mạng lưới cho đến phần cứng chuyên dụng. Vì
vậy ở đây có rất nhiều các công cụ Vulnerability Scanner (Dò
quét lỗ hổng) và Fuzzers (Kiểm thử). Một số công cụ có thể kể
đến như:
SQLMap: Đây là một công cụ tuyệt vời mà thực sự có thể giúp
bạn tìm kiếm và khai thác các lỗ hổng SQL Injection. Với công

cụ này, bạn chỉ định các ứng dụng web và các thông số bạn
muốn kiểm tra, phần còn lại phần mềm sẽ tự động hóa thực
hiện.
 Ứng dụng Web – Web Applications
Nhóm phân loại này gồm những công cụ dùng để phát hiện và
tấn công các lỗ hổng ứng dụng Web. Trong đó có một số công
cụ rất đáng để chúng ta quan tâm, chính là Burp Suite (có hai
phiên bản Free và Pro).
Một trong những tính năng chính và cơ bản Burp Suite là khả
năng Intercept (đánh chặn) tất cả các HTTP Request được gửi
đến các ứng dụng Web, nhờ đó chúng ta có thể chỉnh sửa, thay
đổi, kiểm thử tham số và gửi đến ứng dụng.

4


Hệ điều hành Kali Linux

Burp Suite không chỉ là một công cụ đánh chặn, mà còn là một
trong những công cụ tốt nhất để thực hiện các phân tích lỗ hổng
ứng dụng Web tự động hoặc thủ công.
 Đánh giá CSDL – Database Assesment
Nhóm này gồm các ứng dụng chủ yếu liên quan đến cơ sở dữ
liệu SQL.
 JSQL là một ứng dụng nhẹ được sử dụng để tìm thông tin
cơ sở dữ liệu từ một máy chỉ ở xa.
 SQLNinja là một công cụ nhằm khai thác các lỗ hổng
SQL Injection trên một ứng dụng web sử dụng Microsoft
SQL Server làm backend của nó.
 Tấn công mật khẩu – Password Attacks

Trong nhóm này chúng ta có thể tìm thấy những công cụ bẻ
khóa mật khẩu Offline hay khởi tạo các cuộc tấn công mật khẩu
vào các giao thức. Công cụ đáng chú ý trong phân loại này là
John the Ripper, oclhashcat-plus, Medusa và THC-Hydra.
Nhiều công cụ hữu ích có thể được tìm thấy ở đây, từ công cụ
tấn công bằng mật khẩu trực tuyến đến các cuộc tấn công ngoại
tuyến chống lại sự mã hóa hoặc các hệ thống băm.
John the Ripper là một công cụ phần mềm bẻ khóa mật khẩu
ban đầu được phát triển cho hệ điều hành Unix. Nó là một trong
những chương trình testing/breaking mật khẩu phổ biến nhất vì
có kết hợp một số bộ cracker mật khẩu, tự động phát hiện các
kiểu mật khẩu và có một bộ cracker có khả năng tùy chỉnh.
Công cụ này có thể được chạy cho các định dạng mật khẩu đã
được mã hóa chẳng hạn như các kiểu mật khẩu mã hóa vẫn thấy
trong một số bản Unix khác (dựa trên DES, MDS hoặc
Blowfish), Kerberos AFS và Windows NT/2000/XP/2003 LM
hash. Bên cạnh đó còn có các modul bổ sung mở rộng khả năng
gồm có cả các kiểu mật khẩu MD4 và các mật khẩu được lưu
trong LDAP, MySQL và các thành phần khác.
Oclhashcat-plus là công cụ dùng để giải mã md5crypt, phpass,
mscash2 và WPA / WPA2.
5


Hệ điều hành Kali Linux

Medusa và THC-Hydra có thể giúp khởi tạo các cuộc tấn công
Brute Force đối với các giao thức như HTTP, FTP, SSH, RDC.
 Tấn công mạng không dây – Wireless Attacks
Sự phổ biến của mạng không dây khiến chúng luôn là mục tiêu

thường bị tấn công. Các công cụ thuộc nhóm này dùng để phân
tích và tấn công các giao thức mạng như IEEE 802.11
Công cụ hữu dụng nhất trong phần này để thực hiện phân tích
giao thức IEEE 802.11 (WiFi) là aircrack-ng. Công cụ này cho
phép thực hiện nhiều kiểu tấn công khác nhau với các cơ chế
xác thực (authentication) và ủy quyền (authorization) của mạng
WiFi.
 Reverse Engineering
Phân tích malware (viruses, trojans, worms...) để biết được
chúng lây lan ra sao, lấy cắp thông tin cá nhân như thế nào? Để
xóa chúng khỏi hệ thống, hay điều tra thông tin về người phát
tán, cần thực hiện những hành động điều tra gì?
Ví dụ: OllyDbg, đây là một trình gỡ lỗi sử dụng hợp ngữ trên
nền Windows 32-bit chú trọng đến việc phân tích mã nhị phân
và rất hữu dụng để gỡ lỗi những chương trình không được cung
cấp mã nguồn. Nó dò xét các thanh ghi, nhận diện các thủ tục,
các lời gọi hàm API, các khóa chuyển, các bảng, hằng số và
các chuỗi, cũng như chỉ ra vị trí các routines từ các tập tin đối
tượng và các thư viện.
 Exploitation Tools
Khai thác, lợi dụng các lỗ hổng đã được xác định, cho phép
điều khiển các máy tính, thiết bị từ xa.
Ví dụ: metasploit framework là một môi trường dùng để kiểm
tra ,tấn công và khai thác lỗi của các service. Metasploit được
xây dựng từ ngôn ngữ hướng đối tượng Perl, với những
components được viết bằng C, assembler, và Python.Metasploit
6


Hệ điều hành Kali Linux


có thể chạy trên hầu hết các hệ điều hành: Linux, Windows,
MacOS.
 Nghe lén/ giả mạo – Sniffing/Spoofing
Sniffing/Spoofing cung cấp các công cụ để chặn lưu lượng
mạng trên đường truyền, có thể xác định giao thức được sử
dụng, phân tích các dữ liệu quan trọng.
Một trong những chương trình nghe lén tốt nhất hiện nay chính
là Wireshark. Với Wireshark bạn sẽ có thể intercept lưu lượng
mạng và có thể xác định giao thức được sử dụng, phân tích và
highlight các dữ liệu quan trọng.
 Post Exploitation
Một khi bạn đã có quyền truy cập vào một hệ thống, bạn
thường sẽ muốn duy trì mức độ truy cập đó hoặc mở rộng kiểm
soát bằng cách di chuyển ngang qua mạng.
Các công cụ hỗ trợ cho các mục tiêu này được tìm thấy ở đây.
Ví dụ: backdoor factory, là một shellcode cho phép bạn tiêm
vào bất kỳ một file thực thi chạy trên windows 32/64bit, mà file
thực thi vẫn chạy bình thường. Công cụ này được viết bởi nhà
nghiên cứu bảo mật Joshua Pitts được trình diễn tại hội nghị
bảo mật Debycon 2013.
 Forensic
Mục đích sử dụng của kỹ thuật forensics là tìm kiếm, duy trì và
phân tích thông tin trên hệ thống máy tính để tìm kiếm bằng
chứng phạm tội cho một vụ án.
Ví dụ: chkrootkit là một chương trình của Unix nhằm giúp các
quản trị viên hệ thống kiểm tra hệ thống của họ về các rootkit.
Nó là một kịch bản sử dụng các công cụ UNIX/Linux giống
như các chuỗi và các lệnh grep để tìm kiếm các dấu hiệu trong
các chương trình hệ thống lõi và so sánh sự mâu thuẫn của

7


Hệ điều hành Kali Linux

/proc filesystem với đầu ra của lệnh ps (process status) nhằm
tìm kiếm những vấn đề khác nhau. Chương trình này có thể
được sử dụng từ một “đĩa giải cứu” hoặc có có thể sử dụng một
thư mục khác để chạy tất cả các lệnh của riêng nó. Tuy vậy vẫn
có một số hạn chế cố hữu về độ tin cậy của bất cứ chương trình
nào muốn phát hiện sự thỏa hiệp (chẳng hạn như các rootkit và
các virus máy tính). Các rootkit mới hơn có thể phát hiện và
thỏa hiệp các copy của các chương trình chkrootkit hoặc dùng
các thủ đoạn khác để vòng tránh sự phát hiện bởi chương trình
này.
 Reporting Tools
Reporting Tools (Các công cụ dành cho việc báo cáo): gồm các
công cụ giúp tạo ra những bản báo cáo sau khi hoàn tất công
việc đánh giá bảo mật, dựa trên các kết quả mà chúng ta đã tìm
thấy.
Ví dụ, công cụ recordMyDesktop, nhiệm vụ đơn giản của nó
chính là tạo ra các File video ghi lại những hoạt động của bạn
trên máy tính.
 Social Engineering Tools
Đây là phương pháp tấn công đơn giản nhưng lại vô cùng hiệu
quả vì nó tấn công trực tiếp vào sự thiếu hiểu biết của người
dùng. Phương pháp này kể từ khi ra đời đến nay vẫn là phương
pháp cực kỳ hiệu quả do không có một dạng cố địch, có thể tùy
biến tùy vào kẻ tấn công và khả năng phòng thủ là vô cùng khó
khăn.

VD: social engineering toolkit(SET) là một bộ công cụ mã
nguồn mở trợ giúp cho việc thử nghiệm xâm nhập theo kiểu
Social Engineering. Social Engineering là một phương pháp kỹ
thuật đột nhập vào hệ thống hoặc mạng công ty. Đó là quá trình
đánh lừa người dùng của hệ thống, hoặc thuyết phục họ cung
cấp thông tin có thể giúp chúng ta đánh bại bộ phận an ninh.
Hình thức tấn công chia làm 2 dạng chính:

8


Hệ điều hành Kali Linux

- Human-base: dựa vào những kỹ thuật khai thác mối quan
hệ giữa người với người.
- Computer-base: tấn công dựa vào sự trợ giúp của máy
tính. Những hình thức này được biết như là phising, fake
website…
 System Services
Danh mục này chứa các công cụ cho phép bạn khởi động và
dừng ứng dụng chạy dưới nền hệ thống như các dịch vụ.
VD: beef start, beef stop.
II.

Cài đặt Kali Linux
1) Chuẩn bị:
- Bản cài đặt Kali Linux dưới dạng file ISO
- Phần mềm VMWare
2) Chúng ta mở phần mềm VMWare và tùy chọn như bình thường,
đến phần chọn hệ điều hành:


9


Hệ điều hành Kali Linux

Chọn Customize hardware để chỉnh sửa một vài thông số.
(Ram >= 1.5 GB – Processors > 2 – Network chọn bridged)

10


Hệ điều hành Kali Linux

3) Cài đặt cấu hình cơ bản:
Chọn ngôn ngữ hiển thị

Chọn vùng và quốc gia:

11


Hệ điều hành Kali Linux

Chọn loại bàn phím:

Sau đó, đợi khoảng 1 phút để cài đặt các thành phần từ CD-ROM
12



Hệ điều hành Kali Linux

Cấu hình Kali Linux:
Tiếp theo sẽ điền hostname cho Kali Linux

Điền domain: (Phần này có thể bỏ trống )

Tạo mật khẩu cho tài khoản root:

13


Hệ điều hành Kali Linux

4) Lựa chọn phân vùng cài đặt
Chúng ta sẽ chọn Guide-use entire disk để cho Kali tự động phân
vùng

14


Hệ điều hành Kali Linux

Giờ đến phần cấu hình mạng, chọn Yes để dùng bất kì mạng nào
trong hệ thống.

Quá trình cấu hình sẽ chạy 1 lần nữa. Lưu ý bước sau này cực kỳ
quan trọng đây, đó là tùy chọn nạp GRUB vào mục khởi động của
Kali Linux, bắt buộc phải chọn Yes nhé:


Chọn /dev/sda để hệ thống thêm GRUB vào đó
15


Hệ điều hành Kali Linux

Về cơ bản như vậy là đã xong, khi màn hình thông
báo Installation complete , các bạn bấm Continue và hệ thống sẽ
tự khởi động lại:

Vậy là chúng ta đã cài đặt xong Kali Linux:
- Sau khi nhập user, mật khẩu root và đây là màn hình khởi động
của Kali Linux

16


Hệ điều hành Kali Linux

III.

Kiến trúc hệ điều hành Kali Linux

1. Cấu trúc hệ thống Unix

Sơ đồ dưới là cấu trúc của một hệ thống Unix
Hình 1: Sơ đồ cấu trúc hệ thống
17



Hệ điều hành Kali Linux

Khái niệm chính mà được thống nhất trong tất cả các phiên bản
Unix gồm 4 cơ sở sau:


Kernel: Kernel là trái tim của hệ điều hành. Nó tương tác với
phần cứng và hầu hết nhiệm vụ như quản lý bộ nhớ, quản lý file,
lên chương trình nhiệm vụ.



Shell: Shell là một tiện ích mà xử lý các yêu cầu của bạn. Khi bạn
gõ một lệnh tại terminal của bạn, shell biên dịch lệnh đó và gọi
chương trình mà bạn muốn. Shell sử dụng cú pháp chuẩn cho tất
cả các lệnh. C Shell, Bourne Shell và Korn Shell là những shell
được biết đến nhiều nhất và có sẵn trong hầu hết các phiên bản
Unix.



Các lệnh và các tiện ích: Có rất nhiều lệnh và tiện ích mà bạn có
thể sử dụng trong công việc hàng ngày. cp, mv, cat và grep … là
một số ví dụ của lệnh và tiện ích. Có trên 250 lệnh tiêu chuẩn cộng
với một số lệnh khác được cung cấp bởi phần mềm thứ 3. Tất cả
các lệnh này đi cùng với các tùy chọn (chức năng) của nó.



File và thư mục: Tất cả dữ liệu trong Unix được tổ chức trong các

file. Tất cả các file được tổ chức vào trong các thư mục. Những
thư mục này được tổ chức trong một cấu trúc dạng cây được gọi
như là hệ thống file.

2. Kiến trúc nhân

Hình 2: Kiến trúc nhân
18


Hệ điều hành Kali Linux

Kali Linux cũng là hệ điều hành và tức nhiên là nó cũng phải có
kernel, do phát triển từ Debian và Debian thì lại thuộc GNU/Linux
nên Kali Linux cũng được thừa hưởng từ cha.
Kernel đóng vai trò giao tiếp giữa phần mềm và phần cứng, và
được hỗ trợ trên rất nhiều loại phần cứng vì vậy sẽ được tích hợp
rất nhiều những driver không cần thiết trong kernel gốc. Việc biên
dịch kernel cho phép ta loại bỏ cũng như thêm vào những tính
năng mà ta thấy cần thiết, tối ưu cho một loại phần cứng nhất định
(ở đây là máy tính của bạn).
3. Quá trình khởi động của hệ điều hành Kali Linux

Hình 3: Quá trình khởi động của hệ điều hành kali linux
 Power-on:
BIOS (một phần mềm được cài đặt sẵn (embedded) vào các chíp
PROM, EPROM hay bộ nhớ flash nằm trên bo mạch chủ) là
chương trình được chạy đầu tiên khi bạn nhấn nút nguồn hoặc nút
reset trên máy tính của mình. BIOS thực hiện một công việc gọi là
POST (Power-on Self-test) nhằm kiểm tra thông số và trạng thái

của các phần cứng máy tính khác như bộ nhớ, CPU, thiết bị lưu
trữ, card mạng… Đồng thời, BIOS cũng cho phép bạn thay đổi các
thiết lập, cấu hình của nó (tùy từng máy mà bạn nhấn phím F2,
Delete, F10,… để vào giao diện cài đặt cho BIOS).
19


Hệ điều hành Kali Linux

Nếu quá trình POST kết thúc thành công (tức, các phần cứng ở
trạng thái tốt, BIOS không phát hiện ra các trục trặc nào), thì sau
đó BIOS sẽ cố gắng tìm kiếm và khởi chạy (boot) một hệ điều
hành được chứa trong các thiết bị lưu trữ như ổ cứng, CD/DVD,
USB…. Thứ tự tìm kiếm có thể được thay đổi bởi người dùng.
 Master Boot Record (MBR):
Sector đầu tiên (được đánh số 0) của một thiết bị lưu trữ dữ liệu
được gọi là MBR, thường sector 0 này có kích thước là 512byte. Sau khi BIOS xác định được thiết bị lưu trữ nào sẽ được ưu
tiên để tìm kiếm đầu tiên thì thực chất BIOS sẽ đọc trong MBR của
thiết bị này để nạp vào bộ nhớ một chương trình rất nhỏ (dưới 512byte). Chương trình nhỏ này sẽ định vị và khởi động boot loader –
đây là chương trình chịu trách nhiệm cho việc tìm và nạp nhân
(kernel) của hệ điều hành.
Chú ý, hệ điều hành sẽ được nạp bởi boot loader không nhất thiết
phải nằm chung thiết bị lưu trữ với boot loader đó (những năm
trước đây có thể bạn đã từng nghe tới đĩa mềm khởi động, thực ra
chúng chỉ chứa boot loader mà thôi.)
 Boot loader:
Có 2 bootloader phổ biến trên Linux là GRUB và LILO (tiền thân
của GRUB). Cả 2 chương trình này đều có chung mục đích: cho
phép bạn lựa chọn một trong các hệ điều hành có trên máy tính để
khởi động, sau đó chúng sẽ nạp kernel của hệ điều hành đó vào bộ

nhớ và chuyển quyền điều khiển máy tính cho kernel này.
GRUB hay LILO đều có thể khởi động cho cả Linux và Windows,
nhưng ngược lại các bootloader trên Windows như (NTLDR,
BOOTMGR) thì không hỗ trợ khởi động cho các hệ điều hành
Linux. Trong thế giới Linux, các bootloader cũng có thể nạp thêm
các ramdisk hoặc các INITRD, lát nữa chúng ta sẽ nói thêm về
chúng.
 Linux kernel được nạp và khởi chạy:

20


Hệ điều hành Kali Linux

Bootloader nạp một phiên bản dạng nén của Linux kernel, và ngay
lập tức nó tự giải nén và tự cài đặt mình lên đỉnh bộ nhớ hệ thống –
nơi mà nó sẽ nằm ở đó cho tới khi bạn tắt máy.
 Các script trong (các) INITRD được thực thi:
Tại bước 3, tôi đã đề cập tới các ram disk nhưng đã không giải
thích nó là gì. Giờ thì tôi sẽ giải thích nó. Một vấn đề mà những
người viết các bản Linux đa mục đích phải đối mặt là: không thể
nào đoán trước được chính xác cấu trúc máy tính của người sẽ sử
dụng bản Linux của họ… Máy tính của người dùng có những
thành phần linh kiện nào?
Các INITRD cung cấp một giải pháp: một tập các chương trình
nhỏ sẽ được thực thi khi kernel vừa mới được khởi chạy. Các
chương trình nhỏ này sẽ dò quét phần cứng của hệ thống và xác
định xem kernel cần được hỗ trợ thêm những gì để có thể quản lý
được các phần cứng đó. Chương trình INITRD có thể nạp thêm
vào kernel các module bổ trợ. Khi chương trình INITRD kết thúc

thì quá trình khởi động Linux sẽ tiếp diễn.
 Chương trình init được thực thi:
Khi kernel được khởi chạy xong, nó triệu gọi duy nhất một chương
trình tên là init. Tiến trình này có PID (process ID) =1, init là cha
của tất cả các tiến trình khác mà có trên hệ thống Linux này. Do
tính chất cực kỳ quan trọng này mà init sẽ không bao giờ bị chết
(khi sử dụng lệnh kill) và không được phép chết!
Sau đó, init sẽ xem trong file /etc/inittab để biết được nó cần làm gì
tiếp theo như: dựa vào runlevel mặc định để thực thi các script
khởi động (initscript) tương ứng trong thư mục /etc/rc.d.
Nhân đây, một trong các vấn đề phổ biến thường xảy ra với một hệ
thống Linux mới cài đặt (hoặc mới được cập nhật) là kernel không
thể tìm thấy init. Một thông báo khó hiểu được đưa ra là kernel
panic – not syncing. Nguyên nhân chủ yếu là sự thiết sót tham số
root= khi bạn cấu hình cho bootloader. Kernel cũng có thể “than
phiền” với ai đó mà cố gắng để tiêu diệt tiến trình init.

21


Hệ điều hành Kali Linux

 Các InitScript được thực thi dựa trên RunLevel được chọn:
Nếu bạn kiểm tra trong file /etc/inittab, bạn sẽ thấy nó bao gồm
hầu hết các đặc tả, chỉ dẫn để chạy các chương trình nào đó. Các
script có tên bắt đầu bằng ký tự S sẽ được thực thi, bằng cách này,
init sẽ khởi động tất cả các hệ thống con (subsystem) hoặc các dịch
vụ (deamon) để tạo thành một hệ thống Linux hoạt động hoàn
chỉnh.
Tại thời điểm này, về cơ bản Linux đã khởi động xong, init cũng

hoàn thành vai trò của mình: tạm thời nó sẽ “ngủ” (ở trạng thái chờ
đợi) cho tới khi có chương trình nào đó bị chết hoặc cần được khởi
động lại. Tất cả các hoạt động của hệ thống bây giờ sẽ được thực
hiện bởi các deamon khác nhau.
 Đăng nhập với giao diện đồ họa:
Subsystem cuối cùng được init khởi động lên là X Window (còn có
các tên gọi khác là X.Org, Xorg, hay đơn giản là X), đây là một hệ
thống cung cấp giao diện đồ họa người dùng (GUI) của Linux. Một
thành phần của X được gọi là XDM đưa ra cho bạn màn hình đăng
nhập dạng GUI.
Tuy nhiên, do XDM chưa thực sự thân thiện với người dùng nên
hiện nay XDM được thay thế bằng GDM (nằm trong gói
GNOME), KDM (nằm trong gói KDE) hoặc Entrance (nằm trong
gói Enlightenment).
 Khi bạn hoặc ai đó đăng nhập thành công vào hệ thống:
Một chương trình shell (có thể là bash, sh, csh…) sẽ được bắt đầu.
Tất cả các chương trình mà bạn chạy và mọi thao tác khác mà bạn
thực hiện trong suốt phiên làm việc sẽ được thực hiện bởi shell đó
hoặc bởi chương trình khác mà được shell khởi động.
Khi bạn đăng xuất, shell đó và tất cả các tiến trình con của nó sẽ bị
kết thúc. Sau đó init (hoặc XDM/GDM/KDM/Entrance) sẽ “thức
tỉnh” và bắt đầu một lời nhắc nhở đăng nhập mới.

22


Hệ điều hành Kali Linux

4. Cấu trúc thư mục
Hệ điều hành Linux hình thành từ nhiều thư mục và tập tin khác nhau.

Các thư mục có thể lập thành nhiều file system khác nhau, tùy vào
cách cài đặt bạn đã chọn. Nhìn chung, đa phần hệ điều hành nằm ở
hai file system: root file system (file system gốc) được ký hiệu là /, và
một file system khác được kết nối theo /usr (đọc là user).

Hình 4: Cây thư mục hệ thống kali linux
1. / – Root

23


Hệ điều hành Kali Linux

Đúng với tên gọi của mình: nút gốc (root) đây là nơi bắt đầu của tất cả các file và
thư mục, là thư mục ở mức cao nhất. Chỉ có root user mới có quyền ghi trong thư
mục này. Chú ý rằng /root là thư mục home của root user chứ không phải là /.
2. /bin – Chương trình của người dùng
Thư mục này chứa các chương trình thực thi. Các chương trình chung của Linux
được sử dụng bởi tất cả người dùng được lưu ở đây.
Ví dụ như: ps, ls, ping…
Đối lập với /sbin/ thư mục /bin chứa rất nhiều ứng dụng khác nhau dùng được cả
cho việc bảo trì hệ thống của root, cũng như các lệnh cho người dùng thông
thường.
Thư mục này thông thường chứa hệ vỏ (Shell), cũng như rất nhiều lệnh hữu dụng
như cp (sao chép), mv (di chuyển), cat, ls.
Cũng giống như sbin, thư mục /usr/bin cũng chứa các tệp tin có chức năng tương
tự như /bin.
3. /sbin – Chương trình hệ thống
Cũng giống như /bin, /sbinn cũng chứa các chương trình thực thi, nhưng chúng là
những chương trình của admin, dành cho việc bảo trì hệ thống.

Ví dụ như: reboot, fdisk, iptables…
/sbin chứa đựng các file thực thi dạng binary (nhị phân) của các chương trình cơ
bản giúp hệ thống có thể hoạt động. Các lệnh bên trong /sbin thường được sử dụng
dùng cho các mục đích là duy trì quản trị hệ thống. Các lệnh này yêu cầu phải có
quyền root.
Một số lệnh trong đây ví dụ: lilo, fdisk, init, ifconfig v.v..
Để liệt kê, bạn dùng lệnh “ls /sbin/”.
Còn một thư mục mà nó chứa các tệp tin thi hành cho hệ thống là /usr/sbin/. Nhưng
các chương trình ở đây không được sử dụng để bảo trì hệ thống.
24


Hệ điều hành Kali Linux

4. /etc – Các file cấu hình
Thư mục này chứa các file cấu hình của các chương trình, đồng thời nó còn chứa
các shell script dùng để khởi động hoặc tắt các chương trình khác.
Ví dụ: /etc/resolv.conf, /etc/logrolate.conf
/etc chứa file cấu hình cho các chương trình hoạt động. Chúng thường là các tệp tin
dạng text thường. Chức năng của nó gần giống với “Control Panel” trong
Windows.
Ví dụ:
/etc/resolv.conf (cấu hình dns-server )
/etc/network dùng để quản lý dịch vụ network
Ở /etc có một thư mục quan trọng đó là /etc/rc.d. Nơi đây thường chứa các scripts
dùng để start, stop, kiểm tra status cho các chương trình.
5. /dev – Các file thiết bị
Các phân vùng ổ cứng, thiết bị ngoại vi như USB, ổ đĩa cắm ngoài, hay bất cứ thiết
bị nào gắn kèm vào hệ thống đều được lưu ở đây. Ví dụ: /dev/sdb1 là tên của USB
bạn vừa cắm vào máy, để mở được USB này bạn cần sử dụng lệnh mount với

quyền root: # mount /dev/sdb1 /tmp
Đây là một thư mục thú vị nhất, nó thể hiện một cách rõ ràng là hệ điều hành Linux
coi mọi thứ đều là các tệp tin và thư mục. Trong thư mục này bạn có thể thấy rất
nhiều tệp tin đại diện cho các thiết bị như ổ đĩa SATA, cổng COM v.v.. Bạn liệt kê
chúng ra bằng lệnh

ls /dev/
Bạn sẽ thấy rất nhiều nhưng không phải chúng đều có thật trên máy tính của bạn
đâu nhé. Chẳng hạn bạn chỉ có một cổng COM nhưng ở đây bạn sẽ thấy không chỉ
có một.
25


×