Tải bản đầy đủ (.docx) (46 trang)

Tổng quan về an toàn và bảo mật trong hệ điều hành 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 (1.21 MB, 46 trang )

Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux

HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN
NGUYÊN LÝ HỆ ĐIỀU HÀNH
ĐỀ TÀI

TÌM HIỂU VỀ AN TOÀN VÀ BẢO MẬT TRONG
HỆ ĐIỀU HÀNH LINUX

Sinh viên:

Nguyễn Thị Vân

Mã sinh viên :

605132

Lớp :

K60THA

Giảng viên :

ThS. Nguyễn Thị Thảo
HÀ NỘI – 2018

1



Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux

MỤC LỤC
LỜI MỞ ĐẦU......................................................................................................................................................5
CHƯƠNG I : TỔNG QUAN VỀ HỆ ĐIỀU HÀNH LINUX.......................................................................................6
I. LỊCH SỬ PHÁT TRIỂN..................................................................................................................................6
II. NHỮNG ƯU ĐIỂM KỸ THUẬT NỔI BẬT CỦA LINUX..................................................................................6
III. NHƯỢC ĐIỂM CỦA LINUX........................................................................................................................7
CHƯƠNG II. CÁCH THỨC TỔ CHỨC, CƠ CHẾ BẢO VỆ DỮ LIỆU TRONG LINUX................................................9
I. SƠ BỘ VỀ CẤU TRÚC FILE TRONG LINUX..................................................................................................9
1. Hệ thống file.......................................................................................................................................10
2. Cây thư mục – Inode..........................................................................................................................11
3. Ý nghĩa một số thư mục gốc của Linux..............................................................................................12
II. QUẢN LÝ PHÂN QUYỀN TRONG LINUX...................................................................................................14
1. Hệ thống ghi nhật ký..........................................................................................................................14
2.Quyền truy nhập như thư mục và file................................................................................................17
3. Một số phần mềm bảo mật khác trên Linux.....................................................................................23
CHƯƠNG III: AN TOÀN HỆ THỐNG, KERNEL..................................................................................................26
I. NGƯỜI DÙNG VÀ VẤN ĐỀ TRUY CẬP HỆ.................................................................................................26
1. Vấn đề xác thực người dùng..............................................................................................................26
2. Tài khoản Root....................................................................................................................................28
3. Các tài khoản đặc biệt........................................................................................................................29
4. Ngăn chặn bất kỳ người sử dụng nào chuyển thành root bằng lệnh "su".......................................30
II. TĂNG CƯỜNG BẢO MẬT CHO (LIDS)......................................................................................................30
1. Các thành phần và tính năng của LIDS...............................................................................................33
2.Bảo vệ hệ thống...................................................................................................................................33
3.Thay đổi chế độ...................................................................................................................................33
4.Các file cấu hình của LIDS: lids.conf:...................................................................................................34
5. Bảo vệ file/thư mục............................................................................................................................34

6. Bảo vệ các tiến trình...........................................................................................................................35
CHƯƠNG IV. AN TOÀN VỚI CÁC GIAO DỊCH TRÊN MẠNG.............................................................................37
I.LINUX FIREWALL.......................................................................................................................................37
II. CẤU HÌNH TỆP TIN QUAN TRỌNG..........................................................................................................42
1. Tập tin "/etc/inetd.conf"....................................................................................................................42
2. Tập tin "/etc/host.conf"......................................................................................................................44

2


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
3. Tập tin "/etc/services"........................................................................................................................45
KẾT LUẬN........................................................................................................................................................47
TÀI LIỆU THAM KHẢO.....................................................................................................................................48

DANH MỤC HÌNH VẼ

Hình 1:Cơ chế tổ chức tài nguyên trên Linux...........................................................8
Hình 2:Sector.............................................................................................................9
Hình 3:Hình ảnh về Inode.......................................................................................10
Hình 4:Lệnh ls, thông tin các inode được liệt kê ra và phân biệt các kiểu của inode
theo màu..................................................................................................................11
Hình 5: Sơ đồ hệ thống file nhật ký.........................................................................14
Hình 6: Hình ảnh thể hiện vị trí VFS.......................................................................15
Hình 7: Diễn tả cơ chế phân quyền của một file.....................................................17
Hình 8: 10 ký tự đầu tiên của dãy............................................................................18
Hình 9: Sơ đồ Netfilter/Iptables..............................................................................36
Hình 10: Sơ đồ lọc và xử lý gói trong iptables........................................................39
Hình 11: Đường đi của gói dữ liệu..........................................................................39
DANH MỤC CÁC BẢNG

Bảng
Bảng
Bảng
Bảng
Bảng

1: Ý nghĩa một số thư mục gốc trong Linux.................................................13
2: Các kiểu thư mục trong Linux..................................................................18
3: Hệ 8 áp dụng cách tính..............................................................................21
4: Chế độ truy cập ban đầu (mặc định).........................................................22
5: Các loại queues và chain cùng chức năng của nó.....................................39

3


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux

LỜI MỞ ĐẦU
Ngày nay, nhu cầu trao đổi dữ liệu qua mạng máy tính trở nên vô cùng quan
trọng trong mọi hoạt động xã hội, song song với sự phát triển bùng nổ của mạng
máy tính nói chung và mạng Internet nói riêng thì nguy cơ phải đối mặt với hàng
loạt các đe dọa tiềm tàng như virus, sâu máy tính, các kiểu tấn công, xâm
nhập,,..là rất lớn. Việc bảo vệ an toàn dữ liệu là một cấn đề cấp thiết, vì vậy việc
lựa chọn một hệ điều hành phù hợp, có khả năng bảo mật tốt, độ tin cậy cao là rất
quan trọng. Hệ điều hành Linux ra đời mang theo nhiều đặc tính an toàn bao hàm
các cơ chế bảo mật, cùng với tính chất của một mã nguồn mở đã được đánh giá là
một trong những hệ điều hành bảo mật tốt nhất hiện nay. Hơn nữa, Linux Server là
một trong những thách thức lớn đối với tình trạng xâm nhập bất hợp pháp. Do đó,
em nhận thấy vấn đề nghiên cứu về an toàn và bảo mật của hệ điều hành mã nguồn
mở Linux là cần thiết.

Điều này mang lại cho em sự say mê và đó là lý do em chọn đề tài cho môn
học : “ Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux”. Đề tài này giúp
cải thiện đáng kết tư duy và sự hiểu biết về hệ điều hành Linux đối với sinh viên.

4


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux

CHƯƠNG I : TỔNG QUAN VỀ HỆ ĐIỀU HÀNH LINUX
Hệ điều hành Linux là một khái niệm mới được sử dụng cách đây ít năm khi
sử dụng hệ điều hành này thì nhất thiết không thể không tìm hiểu một cách tổng
quát.
I. LỊCH SỬ PHÁT TRIỂN
Linux đã tạo ra một sự bùng nổ trong lĩnh vực tin học và ngày càng trở nên
phổ biến hiện nay. Rất nhiều các công ty, tổ chức trên thế giới chấp nhận Linux
như là một platform cho sản phẩm của họ, cũng như nhiều công ty, ISPs sử dụng
máy chủ Linux như là các Internet getway. Vấn đề an toàn và bảo mật cho Linux
ngày càng trở nên quan trọng và bức thiết hơn.
Phiên bản đầy tiên do Linux Torvalds viết vào năm 1991 khi còn ông còn là
sinh viên, đưa ra trên cơ sở cải tiến phiên bản Unix có tiên Minix do giáo sư
Andrew S. Tanenbaum xây dựng và phổ biến cho nhóm lập trình viên tình nguyện
khắp nơi trên Internet viết và đang hoàn thiện dần dần Linux.
Linux là hệ điều hành mô phỏng Unix, được xây dựng trên nhân Kernel và
các gói phần mềm mã nguồn mở, được công bố dưới bản quyền của GPL ( General
Public Licence). Giống như Unix, Linux gồm ba thành phần chính : nhân Kernel,
Shell và cấu trúc file
II. NHỮNG ƯU ĐIỂM KỸ THUẬT NỔI BẬT CỦA LINUX
Linux có gì hấp dẫn người dùng?.
- Linux hoàn toàn miễn phí

Linux là một hệ điều hành mã nguồn mở, như vậy chi phí sẽ rẻ hơn so với
các phần mềm truyền thống, mặt khác rất dễ nâng cấp, cải tiến (do cung cấp mã
nguồn kèm theo). Chính vì thế, phát triển phần mềm mã nguồn mở có thể tận dụng
được những công nghệ tiên tiến có sẵn trên thế giới, cải tiến cho phù hợp với người
5


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
Việt Nam, tiết kiệm được rất nhiều công sức so với việc phát triển từ đầu, có thể
tùy ý sửa chữa theo ý mình.
- Linux ổn định hơn Windows
Máy chủ chạy Linux có thể hoạt động liên tục qua nhiều năm mà không gặp vấn đề
nào. Hệ điều hành này có thể xử lý nhiều kết nối, nhiều tiến trình đồng thời tốt hơn
nhiều so với Windows. Và không bị màn hình xanh như Windows.
- Linux vô cùng bảo mật
Linux là mã nguồn mở – “Open Source”, mặc dù không phải là hệ điều hành
an toàn và miễn nhiễm 100% với mã độc, virus. Tuy nhiên nó tốt hơn nhiều so với
Windows, mã độc khó mà hoạt động trên môi trường Linux.
- Phần cứng linh hoạt
Linux rất tối ưu và không yêu cầu phần cứng phải nâng cấp liên tục như
Windows. Linux nhỏ gọn, linh hoạt và khả năng mở rộng cao, nó có thể hoạt động
hầu hết trên nhiều loại phần cứng khác nhau.
- Linux có sức mạnh với dòng lệnh thích hợp cho quản trị mạng
Quản trị Linux tất cả đều qua dòng lệnh với giao thức SSH là chủ yếu. Hãy
tưởng tượng bạn quản trị nó và gõ lệnh như là dùng “thần chú” vậy. Câu lệnh nổi
tiếng nhất là rm –rf. Giao thức TCP/IP mà ngày nay thường thấy chính là một giao
thức truyền tin của Linux
III. NHƯỢC ĐIỂM CỦA LINUX
Mặc dù hiện nay Linux đang có tốc độ phát triển nhanh hơn hẳn Windows
nhưng khách quan mà nói so với Windows, Linux vẫn chưa thể đến với người sử

dụng . Đó là do Linux vẫn còn có những nhược điểm cố hữu.
- Người dùng phải thành thạo.
Hầu hết các công việc phải thực hiện trên các dòng lệnh và phải cấu hình
nhờ sửa trực tiếp các file Trước kia việc sử dụng và cấu hình Linux được xem là
một công việc chỉ dành cho những chuyên gia. Mặc dù trong những phiên bản gần
đây, hệ điều hành Linux đã có những cải tiến đáng kể, nhưng so với Windows thì
tính thân thiện của Linux vẫn còn là một vấn đề lớn..
- Phần cứng ít được hỗ trợ
6


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
Linux vẫn chưa có đủ trình điều khiển cho tất cả các thiết bị phần cứng có
trên thị trường.
- Phần mềm ứng dụng chưa tinh xảo
Các phần mềm ứng dụng trên Linux rất sẵn và không mất tiền, nhưng đa số
không tiện dụng, không phong phú. Nhiều phần mềm ứng dụng thiếu các chức
năng thông dụng, đặc trưng mà người dùng đã quen với Microsoft Office.
- Thiếu chuẩn hóa
Do Linux toàn miễn phí nên bất cứ ai thích đều có thể tự mình đóng gói,
phân phối theo những cách riêng. Hiện tại có khá nhiều bản Linux phát triển từ một
nhân ban đầu cùng tồn tại như RedHat, SuSE, Knoppix,…. người dùng trước khi
cài đặt thường phải tự mình so sánh để tìm ra sản phẩm thích hợp.
- Số lượng ứng dụng hỗ trợ trên Linux còn rất hạn chế.
Mặc dù Windows có sản phẩm nào thì Linux cũng gần như có phần mềm
tương tự. (VD: OpenOffice trên Linux tương tự như MSOffice, hay GIMP tương tự
như Photoshop, v v... ) Tuy nhiên chất lượng những sản phẩm này là chưa thể so
sánh được với các sản phẩm viết cho Windows.
Ngoài ra, một số nhà sản xuất phần cứng không có driver hỗ trợ Linux


7


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux

CHƯƠNG II. CÁCH THỨC TỔ CHỨC, CƠ CHẾ BẢO VỆ DỮ
LIỆU TRONG LINUX
Linux là hệ điều hành quản lý tài nguyên theo cây thư mục. Nó không có khái niệm
phân vùng như windows. Linux sắp xếp mọi dữ liệu trong máy tính trên một “cây
thư mục duy nhất”. Linux có tính kế thừa các đặc tính cở bản từ Unix nên hầu hết
đều mang đặc điểm của hệ điều hành tiền nhiệm.

Hình 1:Cơ chế tổ chức tài nguyên trên Linux
I. SƠ BỘ VỀ CẤU TRÚC FILE TRONG LINUX
Linux sử dụng một cấu trúc hệ thống file có thứ bậc, mà giống một cấu trúc
cây từ trên xuống dưới, với root (/) tại cơ sở của hệ thống file và tất cả các thư mục
khác trải ra từ đó
- Một hệ thống file là một tập hợp của các file và thư mục mà có các đặc tính sau:
 Nó có một thư mục gốc (/) mà chứa các file và thư mục khác.
 Mỗi file và thư mục được xác định duy nhất bởi tên của nó, thư mục mà
trong đó nó cư trú, và một sự nhận diện duy nhất, được gọi theo cách đặc
trưng là inode.
 Theo quy ước, thư mục gốc có số inode là 2 và thư mục lost+found có số
inode là 3. Số inode 0 và 1 không được sử dụng. Các số inode có thể được
gửi bởi trình xác định trong chức năng -i của lệnh ls.
 Nó có đặc tính khác nữa là tự chứa. Không có sự phụ thuộc giữa một hệ
thống file này với một hệ thống file khác
8



Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
1. Hệ thống file
- Các kiểu hệ thống file:
 Hệ thống file ổ cứng (Disk file systems): FAT, NTFS, ext2/3/4, HFS, …
Riêng file trong Compact Diskhoặc DVD lưu theo hệ thống file ISO 9660
hoặc UDF. Từ Linux 2.6 và Windows Vista, đĩa DVD có thể ghi theo format
Mount Rainier (mở rộng của UDF) như đĩa mềm.
 Hệ thống file flash (Flash file systems): tối ưu cho ghi vào bộ nhớ flash (ổ
USB).
 Hệ thống file mạng (Network file systems): SMB, NFS.
 Hệ thống file ổ cứng mạng (Shared disk file systems): dùng truy cập các file
lưu trên các cụm ổ cứng trong mạng (SAN). Thuộc loại này có GFS của Red
Hat, GPFS của IBM.
- Đơn vị lưu trữ file trên ổ cứng
 Sector(cung từ) là đơn vị vật lý nhỏ nhất trên ổ cứng. Dung lượng một sector
từ 512B đến 1,2 hoặc 4KiB (cấp số mũ 2 của 8bit).

Hình 2:Sector
 Cluster (nhóm cung từ): khi lưu file nếu quản lý theo sector thì quá nhỏ, dữ
liệu quản lý nhiều, làm chậm quá trình đọc, ghi. Cluster là đơn vị lưu trữ nhỏ
nhất để lưu file trên ổ cứng gồm từ 1-128 sector liên tục
9


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux

2. Cây thư mục – Inode
Inode là một cấu trúc dữ liệu chứa các metadata của mỗi file, thư mục trong
các hệ thống file Linux. Trong một inode có các metadata sau:
 Dung lượng file tính bằng bytes.

 Device ID : mã số thiết bị lưu file.
 User ID : mã số chủ nhân của file.
 Group ID.: mã số nhóm của chủ file.
 File mode : gồm kiểu file và các quyền truy cập file (permissions).
 Hệ thống phụ và các cờ hạn chế quyền truy cập file.
 Timestamps: các mốc thời gian khi: bản thân inode bị thay đổi (ctime), nội
dung file thay đổi (mtime) và lần truy cập mới nhất (atime).
 Link count : số lượng hard links trỏ đến inode.
 Các con trỏ (từ 11-15 con trỏ) chỉ đến các blocks trên ổ cứng dùng lưu nội
dung file. Theo các con trỏ này mới biết file nằm ở đâu để đọc nội dung.

Hình 3:Hình ảnh về Inode
Khi truy cập đến một file, hệ điều hành từ tên file tìm ra số inode rồi dùng số
inode để đọc nội dung inode, từ đó theo các con trỏ để đọc nội dung file

10


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux

Hình 4:Lệnh ls, thông tin các inode được liệt kê ra và phân biệt các kiểu của inode
theo màu
3. Ý nghĩa một số thư mục gốc của Linux
STT
1
2

Thư mục
/root
/bin


3

/sbin

4

/ect

5

/dev

6

/proc

Ý nghĩa
Mở từng tập tin và thư mục từ thư mục Root
Chứa các tập tin thực thi nhị phân
Ví dụ: ps, ls, ping, grep, cp.
Cũng giống như /bin, /sbin cũng chứa tập tin thực
thi nhị phân (binary executables).
- Ví dụ: iptables, reboot, fdisk, ifconfig, swapon.
Chứa cấu hình các tập tin cấu hình của hệ thống,
các tập tin lệnh để khởi động các dịch vụ của hệ
thống……
Chứa các tập tin để nhận biết cho các thiết bị của
hệ thống (device files).
-Chưa các thông tin về System Process.

- Đây là hệ thống tập tin giả có chứa thông tin về
các quá trình đang chạy. chẳng hạn như thư
mục /proc/{pid} có chứa thông tin về quá trình
đặc biệt của pid.
11


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux

7
8

9
10
11

12
13
14
15

16

- Đây là một hệ thống tập tin ảo có thông tin về tài
nguyên hệ thống. Chẳng hạn như /proc/uptime.
/var
lưu lại tập tin ghi các số liệu biến đổi (variable
files).
/tmp
-Thư mục chứa các tập tin tạm thời được tạo bởi

hệ thống và user.
- Các tập tin tạo thư mục này được xóa khi hệ
thống được khởi động lại (reboot).
/usr
Chứa các ứng dụng, thư viện, tài liệu và mã nguồn
các chương trình thứ cấp.
/home
-Thư mục chính lưu trữ các tập tin cá nhân của tất
cả user.
- Ví dụ: /home/john, /home/nikita.
/boot
-Chứa các tập tin cấu hình cho quá trình khởi
động hệ thống.
- Các file Kernel initrd, vmlinux, grub nằm
trong /boot..
/lib
Chứa các file thư viện hỗ trợ các thư mục nằm
dưới /bin và /sbin.
/opt
Chứa các ứng dụng add-on từ các nhà cung cấp.
/mnt
Gắn kết các thư mục hệ thống tạm thời (thư mục
Temporary) nơi Sysadmins có thể gắn kết các file
hệ thống.
/media
Gắn kết các thư mục Temporary (thư mục tạm
thời) được hệ thống tạo ra khi một thiết bị lưu
động (removable media) được cắm vào như đĩa
CDs, máy ảnh kỹ thuật số..
/srv

Chứa các service của máy chủ cụ thể liên quan
đến dữ liệu.
Bảng 1: Ý nghĩa một số thư mục gốc trong Linux

II. QUẢN LÝ PHÂN QUYỀN TRONG LINUX
1. Hệ thống ghi nhật ký
Khi hệ điều hành bị tắt đột ngột, trong hệ thống file xuất hiện lỗi do file
đang ghi dở, địa chỉ chưa được cập nhập … Nếu hệ thống file đang dùng không
thuộc loại hệ thống file nhật ký (ext2,…), khí khởi động lại, hệ điều hành sẽ phát
hiện được lần tắt bị lỗi (unclean shutdown ) trước đó và tự động dùng phần mềm
12


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
FSCK (file system check) để soát và sửa lỗi. Nếu ổ cứng lớn, quá trình chạy FSCK
sẽ khá lâu và lỗi khá nặng FSCK không sửa được sẽ báo cho hệ điều hành khởi
động vào chế độ single user mode đẻ người dùng sửa. Hệ thống file nhật ký JFS
tránh việc hỏng hệ thống file bằng cách ghi một nhật ký. Nhật ký là một file riêng
ghi lại mọi thay đổi của hệ thống file vào một vùng đệm . Sau từng khoảng thời
gian định trước, những thay đổi đó được thực hiện chính thức vào hệ thống file.
Nếu giữ khoảng thời gian đó, hệ thống bị tắt đột ngột, file nhật ký sẽ dùng để khôi
phục lại các thông tin chưa lưu và tránh làm hỏng metadata của hệ thống file.
(Metadata của hệ thống gồm các thông tin về cấu trúc dữ liệu trên ổ cứng: ngày giờ
tạo, xóa file vào thư mục, tang giảm dung lượng file, chủ nhân của file …)
Tóm lại, hệ thống file nhật ký là hệ thống file tự chữa lỗi bằng cách dùng
một file nhật ký lưu lại mọi thay đổi trước khi thay đổi đó được thực hiện thực sự
vào hệ thống file.

Hình 5: Sơ đồ hệ thống file nhật ký
Hệ thống file ext2

Hệ thống file của Linux có tên là Ext2, được cải tiến từ hệ thống file ban đầu
của Linux là Ext thừa hưởng từ Minix. Hệ thống file Minix có dung lượng tối đa là
13


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
64MB và tên file là 14 ký tự. Ext2 hỗ trợ hệ thống file 2GB và file 255 ký tự
nhưng lại bị hạn chế về tốc độ. Ext2 hỗ trợ 4TB, tên file 255 ký tự đồng thời khắc
phục được những khuyết điểm trên.
Kiếm trúc Ext2 dùng cấu trúc dữ liệu được gọi là nút định dạng (Inode) để
tham chiếu và định vị file cũng như các dữ liệu tương ứng. Bảng Inode chứa các
thông tin gồm các loại file. Kích thước, quyền truy cập, cho đến những khỗi dữ
liệu liên quan và các thuộc tính khác. Hệ thống file này tổ chức đĩa thành các nhóm
khối, trong đó chứa cả thông tin của Inode và các khối dữ liệu tương ứng.
Nhân Linux dùng lớp hệ thống file ảo (Virtual File System viết tắt là VFS)
để tương tác với hệ thống file và thực hiện các tác vụ xuất nhập đĩa. Điều này
mang lại cho Linux khả năng hỗ trợ nhiều hệ thốn file khác nhau như DOS, FAT16,
FAT32…

Hình 6: Hình ảnh thể hiện vị trí VFS
Khi được khởi động hệ điều hành luôn luôn dùng một chương trình để kiểm
tra tính toàn vẹn của hệ thống file, đó là trình fsck. Nếu phát hiện hệ thống file có
dấu hiệu bất thường hoặc chưa được unmount, do các nguyên nhân như mất điện
hoặc hệ thống bị treo đột ngột trong khi đang chạy, lúc đó fsck sẽ quét lại toàn bộ
14


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
hệ thống file để cố gắng khôi phục lại dữ liệu. Quá trình kiểm tra và khôi phục lại
dữ liệu (nếu có) nhanh hay chậm phụ thuộc vào dung lượng của ổ cứng, và với

những hệ thống có dung lượng lưu trữ rất lớn như hiện nay (từ hàng chục đến hàng
trăm gigabyte) thì phải mất hàng giờ để quét lại toàn bộ hệ thống ổ cứng. Cách làm
này được áp dụng trên các hệ thống file Unix chuẩn ufs (Sun & HP) hoặc ext2 mà
Linux đang sử dụng. Nếu hệ thống file có khả năng ghi lại (log) được các hoạt
động mà hệ điều hành đã và đang thao tác trên dữ liệu thì hệ thống xác định được
ngay những file bị sự cố mà không cần phải quét lại toàn bộ hệ thống file, giúp quá
trình phục hồi dữ liệu trở nên tin cậy và nhanh chóng hơn. Hệ thống file như vậy
được gọi là journaling file system.
- Cách thức journaling file system.
 Ghi nhận các lần cập nhật trên file system thành các thao tác
(transaction).Mọi transaction đều phải được ghi nhận trong log file.
 Một transaction được coi là hoàn tất (commit) đã được ghi nhận đầy đủ
trong log file (lúc này file system có thể chưa được cập nhật).
 Khi file system được cập nhật với đầy đủ mọi tác vụ trong transaction thì
transaction được xóa đi trong log file.
 Nếu file system bị hỏng thì hệ điều hành dựavào các transaction trong log
file đểsửa chữa và khôi phục.
 Hệ thống file ext3 chính là kiểu hệ thống file của Linux có sử dụng JSF
được phát triển từ hệ thống fil ext2.
2.Quyền truy nhập như thư mục và file
Mỗi file và thư mục trong Linux đều có một chủ sở hữu và một nhóm sở
hữu, cũng như một tập hợp các quyền truy nhập. Cho phép thay đổi các quyền truy
nhập và quyền sở hữu file và thư mục nhằm cung cấp truy nhập nhiều hơn hay ít
hơn. Tính chất kiểm soát truy cập hệ thống file Linux được thực hiện bằng cách sử
15


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
dụng bộ dữ liệu, được bảo tồn riêng cho từng file này là dữ liệu chung gọi các chế
độ truy cập, hoặc gọi là các mod của file. Các chế độ là một phần của file, giữ lại

những thông tin trong các hệ thống file đó. Một file của chế độ kiểm soát truy cập
có ba lớp:
Users : những người dùng sở hữufile
Group : những nhóm sở hữu file
Other : tất cả những người dùng trên hệ thống.
Thông tin về một file có dạng sau (được hiện ra theo lệnh hiện danh sách file
ls -l):

Hình 7: Diễn tả cơ chế phân quyền của một file
Trong đó, dãy 10 ký tự đầu tiên mô tả kiểu file và quyền truy nhập đối với
file đó. Theo mặc định, người dùng tạo một file chính là người chủ (sở hữu) của
file đó và là người có quyền sở hữu nó. Người chủ của file có đặc quyền thay đổi
quyền truy nhập hay quyền sở hữu đối với file đó. Tất nhiên, một khiđó chuyển
quyền sở hữu của mình cho ngườidùng khácthì người chủ cũ không được phép
chuyển quyền sở hữu và quyền truy nhập được nữa.

16


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
Tập hợp một chuỗi có 10 ký tự đó giới thiệu trên đây được chia ra làm 4
phần: kiểu file, các quyền truy nhập đến file của chủ sở hữu, của nhóm sở hữu và
người dùng khác.
Có một số kiểu file trong Linux. Ký tự đầu tiên trong tập hợp 10 ký tự mô tả kiểu
file và quyền truy nhập sẽ cho biết file thuộc kiểu nào (chữ cái đó được gọi là chữ
cái biểu diễn).

17



Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
Bảng dưới đây sẽ liệt kê các kiểu file, thư mục trong Linux:
Chữ cái biểu diễn

Kiểu file ,thư mục

d

Thư mục (directory)

b

File liểu khối (block- type special file)

c

File ký tự ( charater-type special file)

l

Liên kết tượng trưng(symbolic link)

p

File đường ống (pipe)

s

Soket


-

File bình thường (regular file)
Bảng 2: Các kiểu thư mục trong Linux

Chín ký tự tiếp theo trong chuỗi là quyền truy nhập được chia ra làm ba nhóm
tương ứng với quyền truy nhập của người sử hữu, nhóm sở hữu và người dùng
khác.

Hình 8: 10 ký tự đầu tiên của dãy
Để hiểu được chính xác quyền truy nhập có ý nghĩa như thế nào đối với hệ
thống máy tính phải chú ý, Linux luôn coi mọi thứ là file. Nếu cài đặt một ứng
dụng, nó cũng sẽ được xem như mọi chương trình khác, trừ một điều, hệ thống
nhận biết rằng một ứng dụng là một chương trình khả thi, tức là nó có thể chạyđược. Một bức thư gửi là một dạng file văn bản bình thường, nhưng nếu thông báo
18


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
cho hệ thống biết đó là một chương trình khả thi, hệ thống sẽ cố để chạy chương
trình (và tất nhiên là lỗi).
Có ba loại quyền truy nhập chính đối với thư mục/file, đó là: đọc (read - r),
ghi (write - w) và thực hiện (execute - x). Quyền đọc cho phép người dùng có thể
xem nội dung của file với rất nhiều chương trình khác nhau, nhưng họ sẽ không thể
thay đổi, sửa chữa hoặc xóa bất kỳ thông tin nào trong đó. Tuy nhiên, họ có thể sao
chép file đó thành file của họ và sửa chữa file bản sao.
Quyền ghi là quyền truy nhập tiếp theo. Người sử dụng với quyền ghi khi
truy nhập vào file có thể thêm thông tin vào file. Nếu có quyền ghi và quyền đọc
đối với một file, có thể soạn thảo lại file đó - quyền đọc cho phép xem nội dung, và
quyền ghi cho phép thay đổi nội dung file. Nếu chỉ có quyền ghi, sẽ thêm được
thông tin vào file,nhưng lại không thể xem được nội dung của file.

Loại quyền truy nhập thứ ba là quyền thực hiện, quyền này cho phép người
dùng có thể chạy được file, nếu đó là một chương trình khả thi. Quyền thực hiện
độc lập với các quyền truy nhập khác, vì thế hoàn toàn có thể có một chương trình
với quyền đọc và quyền thực hiện, nhưng không có quyền ghi. Cũng có trường hợp
một chươngtrình chỉ có quyền thực hiện, có nghĩa là người dùng có thể chạy ứng
dụng, nhưng không thể xem được cách nó làm việc hay sao chép nó.
Thông thường, chủ sở hữu là người tạo ra file này. Các file của nhóm này
thường được thiết lập để tạo sự mặc định của nhóm. Nhóm có quyền sở hữu cho
biết quyền cho các nhóm thành viên. Những người khác sử dụng là những người
không phải là thành viên của các file của nhóm và không phải là file của người
được trao quyền. Đối với mỗi một lớp trong ba lớp của người sử dụng, các chế độ
truy cập xác định ba loại quyền khác nhau áp dụng cho các file và thư mục.
19


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
Chế độ truy cập
Ba quyền đọc, ghi, thực thi cho phép áp dụng cho ba lớp khác nhau của
người sử dụng: người sử dụng, nhóm, và khác. Đọc, viết, và thực thi sự cho phép
được hiển thị trong hình:

Hình 8: Chế độ truy cập bit
Giải thích hình 8:
SUID: Là thuộc tính cho các file thực thi duy nhất và không có hiệu lực trên
các thư mục.
SGID: Thuộc tính hoạt động theo cùng một cách như SUID cho các file thực
thi,quátrình cài đặt nhóm chủ sở hữu vào file của nhóm.
Ssticky: Tại một thời gian, những bit, áp dụng cho các chương trình thực thi,
cờ hệ thống, để giữ một hình ảnh của chương trình trong bộ nhớ sau khi hoàn tất
chươngtrình đang chạy.

Chín bit còn lại giới hạn quyền truy cập cho các đối tượng đó là người sở
hữu, nhóm sở hữu, và người dùng và nhóm khác theo thứ tự lần lượt ba bít một cho
từng nhóm.
20


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
Sự hạn chế trường hợp về quyền truy nhập thư mục được giải thích. Giả sử
chỉ có quyền đọc trên thư mục, khi đó sẽ xem được có những file hay thư mục nào
trong thư mục nhưng lại không thể xem cụ thể nội dung của một file hay thư mục
có trên thư mục đó vì không tìm được nó. Hoặc giả sử có quyền thực hiện - quyền
này sẽ cho phép tìm được file có trên thư mục - nhưng lại không có quyền đọc đối
với một thư mục, vậy thì khó có thể để biết được trong thư mục có những file nào.
Có thể tính quyền của thư mục hay file bằng cách quy đổi ra hệ bát phân:

Bảng 3: Hệ 8 áp dụng cách tính
Mặc định, khi tạo thư mục hoặc file, hệ thống sẽ tự gán quyền ban như sau
khi người chưa thay đổi quyền truy cập cho thư mục hoặc file đó:

Bảng 4: Chế độ truy cập ban đầu (mặc định)
3. Một số phần mềm bảo mật khác trên Linux
3.1. Linux sXid
21


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
Các thuộc tính SUID/SGID có thể trở thành một mối nguy cho vấn đề bảo mật và
an toàn của hệ thống . Để giảm các rủi ro này, trước đây đã xóa các bit từ các
chương trình được sở hữu bởi root mà sẽ không yêu cầu nhiều quyền sử dụng,
nhưng tương lai các file tồn tại khác có thể cài đặt với bit được bật lên khi không

có sự thông báo của người quản trị. SXid là một chương trình theo dõi hệ thống
suid/sgid được thiết kế chạy từ cron trên một nguyên lý cơ bản. Cơ bản là theo dõi
bất kỳ sự thay đổi nào trong các thư mục và các file SUID và SGID. Nếu có bất kỳ
một điều gì mới trong các thư mục hay file, các thư mục và file này sẽ thay đổi bit
hoặc các mode khác sau đó sẽ tự động thực hiện việc tìm kiếm tất cả suid/sgid trên
máy server và thông báo về chúng.
3.2.Linux Logcheck
Một công việc quan trọng trong thế giới bảo mật và an toàn là phải. kiểm tra
thường xuyên các file xuất ra các kết quả theo dõi hệ thống (logfile). Thông thường
các hoạt động hằng ngày của người quản trị hệ thống không cho phép người dùng
có thời gian để thực hiện những công việc này và có thể mang đến nhiều vấn đề.
Giải thích tính chất log check. Kiểm tra theo dõi và ghi nhận các sự kiện xảy ra thì
rất quan trọng. Đó là những người quản trị của hệ thống nhận biết được các sự kiện
này do vậy có thể ngăn chặn các vấn đề chắc chắn xảy ra nếu có một hệ thống kết
nối với internet. Thật không may cho hầu hết logfile là không có ai kiểm tra var log
đó, mà thường được kiểm tra khi có sự kiện nào đó xảy ra. Điều này logcheck sẽ
giúp đỡ và giải quyết tất cả các vấn đề trên.
.3.3. Linux Tripwire 2.2.1
Một tiến trình cài đặc Red Hat Linux Server tiêu biểu xử lý khoảng 30.400 file.
Vào thời điểm các nhà quản trị hệ thống không thể kiểm tra tính toàn vẹn của tất cả
các file, và nếu một kẻ tấn công nào đó truy cập máy server, thì họ có thể cài đặt
22


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
hay hiệu chỉnh các file mà không dễ nhận biết những điều này. Do khả năng của sự
cố trên mà một số các chương trình được tạo ra để đáp ứng loại vấn đề này.
Tripwire làm việc ở tầng cơ bản nhất, bảo vệ các máy server và các máy trạm làm
việc mà chúng được cấu thành mạng hợp nhất. Tripwite làm việc bằng cách trước
tiên là quét một máy tính và tạo một cơ sở dữ liệu của các file của hệ thống, một

dạng số hoá “snapshot” của hệ thống trong hệ thống bảo mật đó biết. Người sử
dụng có thể cấu hình Tripwire một cách rất chính xác, chỉ trừ file và thư mục sở
hữu riêng cho mỗi máy để theo dõi, hay tạo một dạng mẫu chuẩn mà có thể sử
dụng trên tất cả các máy trong mạng.
Một khi cơ sở dữ liệu tạo ra, một người quản trị hệ thống có thể dùng Triwire để
kiểm tra toàn vẹn của hệ thống ở bất kỳ thời điểm nào. Bằng cách quét một hệ
thống hiện hành và so sánh thông tin với dữ liệu lưu trữ trong sở dữ liệu, Triwire
phát hiện và báo cáo bất kỳ việc thêm vào, xoá bớt, hay thay đổi tới hệ thống bên
ngoài các ranh giới bên ngoài được chỉ định. Nếu việc thay đổi là hợp lệ thì quản
trị hệ thống có thể cập nhật cơ sở dữ liệu biến với thông tin mới. Nếu các thay đổi
cố tình làm hại được tìm thấy, thì người quản trị hệ thống sẽ biết ngay các phần nào
của các thành phần của mạng đó bị ảnh hưởng. Phiên bản Tripwire này là một sản
phẩm có các phần được cải tiến đáng kể so với phiên bản Tripwire trước đó.

23


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux

CHƯƠNG III: AN TOÀN HỆ THỐNG, KERNEL
I. NGƯỜI DÙNG VÀ VẤN ĐỀ TRUY CẬP HỆ
Linux quản lý quyền người dùng rất chặt chẽ. Ở Windows user bình thường
(và các chương trình) thường có quyền làm bất cứ điều gì tới hệ thống. Nếu người
dùng muốn phá luôn hệ điều hành vì dữ liệu quý giá của bạn vừa bị virus "ngốn"
mất, bạn có thể vào thư mục của hệ thống và xoá bất cứ thứ gì bạn thích: Windows
sẽ không phàn nàn. Tất nhiên, lần tới khởi động bạn sẽ gặp nhiều vấn đề. Nhưng
hãy nghĩ rằng nếu bạn có thể xoá mọi thứ bạn muốn: các chương trình khác cũng
xoá được, hoặc làm hệ thống rối tung lên. Linux không cho phép điều này. Mỗi lần
một người dùng muốn làm gì đó ảnh hưởng tới hệ điều hành, bạn phải có mật khẩu
của nhà quản trị (nếu bạn không phải nhà quản trị hệ thống, bạn không thể làm

được). Virus cũng không thể tự do xoá mọi thứ trong máy vì chúng không có
quyền.
Mỗi user trong Linux đều chỉ được cấp quyền trên hệ thống ở một mức độ
tối giản nhất, chỉ được truy cập một số thư mục cũng như một số tiền trình của user
đó.
1. Vấn đề xác thực người dùng
Trong Linux, file /etc/passwd là file lưu thông tin user của hệ thống, khi ta
tạo một user mới thì linux sẽ add thêm 1 bản ghi mới vào file này. Bạn dùng lệnh
để show quyền truy cập file này thì thấy file này có 1 đặc điểm là tất cả người dùng
trong hệ thống đều có thể đọc được (‘r’).
[root@localhost ~]# ll /etc/passwd
-rw-r--r-- 1 root root 1373 Apr 1 13:50 /etc/passwd
Điều này khá nhạy cảm vì thông tin user sẽ bị phơi bày trước bất kỳ user nào
trong hệ thống. Tuy nhiên thuộc tính ‘r’ là cần thiết vì một số ứng dụng và tool hệ
thống cần đọc file này thì mới chạy chính xác.
Nếu để password lưu trữ trong /etc/passwd thì cũng rất nguy hiểm, mặc dù
có thể mã hóa mật khẩu bằng 1 thuật toán băm (Vì tất cả user trong hệ thống đều
đọc được).
24


Tìm hiểu về an toàn và bảo mật trong hệ điều hành Linux
Vì vậy, cần lưu trữ password người dùng trong 1 file mà chỉ ‘root’ mới đọc
được. Giải pháp mà Linux đưa ra là bổ xung 1 file tên là /etc/shadow để lưu trữ
mật khẩu người dùng. File /etc/shadow này chỉ truy cập được bởi ‘root’.
Bây giờ, thử xem nội dung file /etc/shadow
[root@localhost ~]# cat /etc/shadow
mario:$1$0XJ4dcSP$wpBqBzQSmIppMPEjeYP8K/:16161:0:99999:7:::
1. Trường đầu tiên, đó chính là username mario
2.Trường thứ 2 đó là trường password đã được mã hóa

$1$0XJ4dcSP$wpBqBzQSmIppMPEjeYP8K/.
Đây chính xác là trường tôi cần quan tâm và cần khai thác ở bài post này.
Nội dung password đã được mã hóa:
$1$0XJ4dcSP$wpBqBzQSmIppMPEjeYP8K/ có ý nghĩa:
- Trường đầu tiên, cho biết thuật toán sử dụng để băm(trong ví dụ này là 1 – MD5
hashing algorithm).
$1 = MD5 hashing algorithm.
$2 = Blowfish Algorithm is in use.
$2a = eksblowfish Algorithm
$5 = SHA-256 Algorithm
$6 = SHA-512 Algorithm
- Trường thứ 2 là một chuỗi dữ liệu ngẫu nhiên(random data hay còn gọi là salt)
được sinh ra để kết hợp với mật khẩu người dùng(user password), để tăng sức
mạnh băm(trong ví dụ này là 0XJ4dcSP)
- Trường thứ 3 là giá trị băm của salt + user password(trong ví dụ này
là wpBqBzQSmIppMPEjeYP8K/)
Khi bạn login vào hệ thống, bạn nhập user/password. Hệ thống sẽ sử dụng
giá trị salt của user + password mà bạn nhập vào để tạo ra 1 chuỗi mã hóa. Nếu
chuỗi mã hóa này trùng với chuỗi mã hóa trong file /etc/shadow thì user login
thành công.
Như vậy, Linux khác hoàn toàn với windows về giao thức xác thực người
dùng. Trong windows sử dụng cơ chế xác thực LM-LAN MANAGER (password
là 14 kí tự chuẩn, sử dụng DES hash) được sử dụng trong bản windows server
25


×