Cơ chế an toàn trên hệ điều hành linux

An toàn và bảo mật trong hệ điều hành Linux
MỤC LỤC
DANH MỤC HÌNH VẼ
Hình 2.1. Cơ chế tổ chức tài nguyên trên Linux
Hình 2.2: Sơ đồ hệ thống file nhật ký
Hình 2.3 : Hình ảnh thể hiện vị trí VFS
Hình 2.4: Diễn tả cơ chế phân quyền của một file
Hình 2.5: 10 ký tự đầu tiên của dãy
Hình 2.6: Chế độ truy cập bit
Hình 2.7: Ký tự đặc biệt đối với lệnh chmod
Hình 4.1: Sơ đồ Netfilter/Iptables
Hình 4.2: Sơ đồ lọc và xử lý gói trong iptables
Hình: 4.3. Đường đi của gói dữ liệu
1
An toàn và bảo mật trong hệ điều hành Linux
2
An toàn và bảo mật trong hệ điều hành Linux
DANH MỤC CÁC BẢNG
Bảng 1: Các kiểu thư mục trong Linux
Bảng 2: Hệ 8 áp dụng cách tính
Bảng 3: Chế độ truy cập ban đầu (mặc định)
Bảng 4 : Các loại queues và chain cùng chức năng của nó
3
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, vv…là rất lớn. Vấn đề bảo đảm an ninh, an toàn cho
thông tin trên mạng ngày càng là mối quan tâm hàng đầu của các công ty,

các tổ chức, các nhà cung cấp dịch vụ. Việc bảo vệ an toàn dữ liệu là một
vấ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.
Mục tiêu của đề tài là nghiên cứu tìm hiểu cơ chế bảo mật trong hệ
điều hành Linux, qua đó thấy được tầm quan trọng của cơ chế khi thực hiện
các vấn đề bảo mật.
4
An toàn và bảo mật trong hệ điều hành Linux
CHƯƠNG I: TỔNG QUAN 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.1. Linux là một hệ điều hành tương tự như hệ điều hành
Phiên bản đầu tiên do Linux Torvalds viết vào năm 1991 khi còn là
sinh viên, đưa ra trên cơ sở cải tiến phiên bản Unix có tên Minix do giáo sư
Andrew S.Tanenbaum xây dựng và phổ biến và nhóm lập trình viên tình
nguyện từ khắp nơi trên Internet viết và đang hoàn thiện dần dần Linux.
Là hệ điều hành mô phỏng Unix, 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.
I.2. Những ưu điểm kỹ thuật nổi bật của Linux
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 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.
Linh hoạt, uyển chuyển
5
An toàn và bảo mật trong hệ điều hành Linux
Có thể chỉnh sửa Linux và các ứng dụng trên đó sao cho phù hợp với
mình nhất. Việc Việt hóa Windows được xem là không thể nếu như không có
sự đồng ý và hỗ trợ của Microsoft. Tuy nhiên với Linux thì có thể làm được
điều này một cách đơn giản hơn. Mặt khác, do Linux được một cộng đồng
rất lớn những người làm phần mềm cùng phát triển trên các môi trường,
hoàn cảnh khác nhau nên tìm một phiên bản phù hợp với yêu cầu của riêng
mỗi cá nhân sẽ không phải là một vấn đề quá khó khăn.
Bên cạnh Windows đòi hỏi cấu hình cài đặt cao thì tính linh hoạt của
Linux còn được thể hiện ở chỗ nó tương thích được với rất nhiều môi
trường, và có thể chạy trên nhiều nền tảng. Hiện tại, ngoài Linux dành cho
server, máy tính để bàn, nhân Linux (Linux kernel) còn được nhúng vào
các thiết bị điều khiển như máy tính palm, robot Phạm vi ứng dụng của
Linux được xem là rất rộng rãi.
Độ an toàn cao
Trong Linux có một cơ cấu phân quyền hết sức rõ ràng. Chỉ có "root"
(người dùng tối cao) mới có quyền cài đặt và thay đổi hệ thống. Ngoài ra
Linux cũng có cơ chế để một người dùng bình thường có thể chuyển tạm
thời sang quyền "root" để thực hiện một số thao tác. Điều này giúp cho hệ
thống có thể chạy ổn định và tránh phải những sai sót dẫn đến sụp đổ vì hệ
thống. Trong những phiên bản Windows gần đây, cơ chế phân quyền này
cũng đã bước đầu được áp dụng, nhưng so với Linux thì vẫn kém chặt chẽ
hơn.
6
An toàn và bảo mật trong hệ điều hành Linux
Ngoài ra chính tính chất "mở" cũng tạo nên sự an toàn của Linux. Nếu

như một lỗ hổng nào đó trên Linux được phát hiện thì nó sẽ được cả cộng
đồng mã nguồn mở cùng sửa và thường thì chỉ sau 24h sẽ có thể cho ra bản
sửa lỗi. Trong Linux mọi thứ đều công khai, người quản trị có thể tìm hiểu
tới mọi ngõ ngách của hệ điều hành, điều đó cũng có nghĩa là độ an toàn
được nâng cao.
Thích hợp cho quản trị mạng
Linux có rất nhiều ưu điểm thỏa mãn đòi hỏi của một hệ điều hành
mạng: tính bảo mật cao, chạy ổn định, các cơ chế chia sẻ tài nguyên tốt
Giao thức TCP/IP mà ngày nay vẫn thường thấy chính là một giao thức
truyền tin của Linux (sau này mới được đưa vào Windows).
Chạy thống nhất trên các hệ thống phần cứng
Cho dù có rất nhiều phiên bản Linux được các nhà phân phối khác
nhau ban hành nhưng nhìn chung đều chạy khá ổn định trên mọi thiết bị
phần cứng từ Intel 486 đến những máy Pentium mới nhất, từ những máy có
dung lượng RAM chỉ 4MB đến những máy có cấu hình cực mạnh (tất nhiên
là tốc độ sẽ khác nhau nhưng về nguyên tắc vẫn có thể chạy được). Nguyên
nhân là Linux được rất nhiều lập trình viên ở nhiều môi trường khác nhau
cùng phát triển (không như Windows chỉ do Microsoft phát triển) và sẽ gặp
nhiều người có "cùng cảnh ngộ" như nhau, như vậy dễ dàng tìm được các
driver tương ứng với thiết bị của mỗi người.
7
An toàn và bảo mật trong hệ điều hành Linux
I.3. Nhược điểm của Linux
Đòi hỏi người dùng phải thành thạo
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. Hầu như mọi công việc đều 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. 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.

Tính tiêu chuẩn hóa
Linux được phát hành miễn phí nên bất cứ ai cũng 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 phải tự so sánh xem bản nào là phù hợp với mình. Điều này có
thể gây khó khăn cho người dùng, nhất là những người còn có kiến thức về
tin học hạn chế.
Số lượng các ứng dụng chất lượng cao trên Linux còn 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.
8
An toàn và bảo mật trong hệ điều hành Linux
CHƯƠNG II. BẢO VỆ, QUẢN LÝ TÀI NGUYÊN PHÂN QUYỀN
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 quan niệm đó không tồn tại.
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”.
Tài nguyên, ứng dụng trên Linux lưu giữa thiết đặt nội tại trong bản
thân nó trên cơ sở phân cấp người dùng. Tức là nó sẽ tạo ra những modul
được đặt trong các thư mục có quyền truy cập khác nhau. Khi người dùng
đăng nhập máy tính ở cấp độ nào thì ứng dụng chỉ truy cập đến modul trong
thư mục mà họ có quyền truy cập.
Hình 2.1. Cơ chế tổ chức tài nguyên trên Linux
II.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 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 đẻ
9
An toàn và bảo mật trong hệ điều hành Linux
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 2.2: Sơ đồ hệ thống file nhật ký
Hệ thống file ext2
10
An toàn và bảo mật trong hệ điều hành Linux
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à 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…
11
An toàn và bảo mật trong hệ điều hành Linux
Hình 2.3 : 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ộ 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.
12
An toàn và bảo mật trong hệ điều hành Linux
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.
II.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ử 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
13
An toàn và bảo mật trong hệ điều hành Linux
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 2.4: 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.
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 đó
14
An toàn và bảo mật trong hệ điều hành Linux
được gọi là chữ cái biểu diễn). 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 1: 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.
15
An toàn và bảo mật trong hệ điều hành Linux
Hình 2.5: 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 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ó
16
An toàn và bảo mật trong hệ điều hành Linux
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.
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
17
An toàn và bảo mật trong hệ điều hành Linux
phép được hiển thị trong hình:
18
An toàn và bảo mật trong hệ điều hành Linux
Hình 2.6: Chế độ truy cập bit
Giải thích hình 2.5:
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.
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:
19
An toàn và bảo mật trong hệ điều hành Linux
Bảng 2: 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 3: Chế độ truy cập ban đầu (mặc định)
II.3. Một số lệnh thay đổi chế độ truy cập
Thay đổi quyền sở hữu file với lệnh chown
Để thay đổi quyền sở hữu đối với một file, hãy sử dụng lệnh chown
với có pháp như sau:
chown [tuy chon][chon][nhom]
20
An toàn và bảo mật trong hệ điều hành Linux
Lệnh này cho phép thay chủ sở hữu file. Nếu chỉ có tham số về chủ,
thì người dùng ch sẽ có quyền sở hữu file và nhóm sở hữu không thay đổi.
Nếu theo sau tên người chủ là dấu "." và tên của một nhóm thì nhóm
đó sẽ nhóm sở hữu file. Nếu chỉ có dấu "." và nhóm mà không có tên người
chủ thì chỉ có quyền sở hữu nhóm của file thay đổi, lúc này, lệnh chown có
tác dụng giống như lệnh chgrp.
Thay đổi quyền sở hữu nhóm với lệnh chgrp
Các file (và người dùng) cũng thuộc vào các nhóm, đây là phương
thức truy nhập file thuận tiện cho nhiều người dùng nhưng không phải tất cả
người dùng trên hệ thống. Khi đăng nhập, mặc định sẽ là thành viên của một
nhóm được root thiết lập tạo tài khoản người dùng. Cho phép một người
dùng thuộc nhiều nhóm khác nhau, nhưng mỗi lần đăng nhập chỉ là thành
viên của một nhóm. Để thay đổi quyền sở hữu nhóm đối với một hoặc nhiều
file, hãy sử dụng lệnh chgrp với có pháp như sau: chgrp [tùy-chọn] {nhóm|
reference=nhómR}

Lệnh này cho phép thay thuộc tính nhóm sở hữu của file theo tên
nhóm được chỉ ra trực tiếp theo tham số nhóm hoặc gián tiếp qua thuộc tính
nhóm của file có tên là nhóm R.
Thay đổi quyền truy cập file với lệnh chmod.
Chế độ truy cập có thể được thay đổi với chmod lệnh, tương đương
chế độ truy cập tượng trưng hoặc truy cập vào chế độ kỹ thuật chi tiết.
21
An toàn và bảo mật trong hệ điều hành Linux
Hình 2.7: Ký tự đặc biệt đối với lệnh chmod
II.4. Một số phần mềm bảo mật khác trên Linux
II.4.1. Linux sXid
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.
22
An toàn và bảo mật trong hệ điều hành Linux
II.4.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.
II.4.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 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ệ
23
An toàn và bảo mật trong hệ điều hành Linux
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 đó.
CHƯƠNG III: AN TOÀN HỆ THỐNG, KERNEL
III.1. Người dùng và vấn đề truy cập hệ thống
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
24
An toàn và bảo mật trong hệ điều hành Linux
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 đó.
III.1.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).
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à
25