Tải bản đầy đủ (.pdf) (0 trang)

Ebook Hướng dẫn cách phòng thủ và khắc phục sự cố khi máy vi tính bị tấn công: Phần 2 - NXB Hồng Đức

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 (18.28 MB, 0 trang )

Phần 2

TẤN CỒNG VÀ PHÒNG THỦ v íl MÂY TÍNH CHẠY LINUX

1. KHỞI ĐỘNG LINUX TỪ ĐĨA CD

Trước đây, nếu muôn sử dụng Linux bạn cần cài hệ
điều hành này lên đĩa cứng của máy tính. Nhưng mọi thứ
đã thay đổi vì hiện nay xuất hiện vài phiên bản Linux có
khả năng chạy trực tiếp từ đĩa CD-ROM, ví dụ như phiên
bản Ubuntu Linux mà trong khuôn khổ bài viết này xin
tạm gọi là Linux "mì án liền".
Tương tự các phiên bản Linux cần cài đặt vào máy
tính, Ubuntu Linux cho phép người dùng tải về miễn phí
từ Internet tập tin có phần mở rộng là .iso. Sau khi tải về
máy tính, bạn dùng tiện ích ghi đĩa như Roxio Easy CD
Creator hay Nero để chép tập tin .iso này lên CD-ROM
trắng. Với Roxio Easy CD Creator thực hiện thủ tục sau:
nhấn Eile.Record CD from CD Image hay Eile.Burn Image
(với tiện ích Nero). Khi ghi đĩa xong, bạn có thể sử dụng
đĩa CD khởi động Ubuntu này và bắt đầu khám phá thế
giới Linux mà không cần trải qua những công đoạn cài đặt
đầy khó khăn.
Giốhg như thực phẩm chế biến sẵn, Linux "mì ăn liền"
được cài sẵn vô số ứng dụng để thoả mãn tốt nhất mọi yêu
cầu của nhiều đổi tượng người dùng. Và do được thực thi
trực tiếp từ đĩa CD-ROM nên bạn không thể cài đặt thêm
183


ứng dụng mới hay gỡ bỏ ứng dụng không cần thiết, tinh


chỉnh cấu hình để hệ thông hoạt động phù hỢp với nhu cầu
sử dụng cá nhân như khi dùng Linux được cài đặt trên đĩa
cứng. Hơn thế nữa, tốc độ hoạt động của Linux "mì ăn
liền" cũng bị hạn chế phần nào do phải dành một phần bộ
nhớ RAM để làm vùng nhớ đệm cho hệ điều hành hoạt
động. Do vậy, nếu sau khi chạy thử và cảm thấy thích thú
vói Linux thì bạn nên "hạ sơn" phiên bản Linux "mì ăn
liền" đang sử dụng xuống đĩa cứng của máy. Bạn có thê
lựa chọn hai phiên bản Linux như Fedora Core do Red Hat
tài trỢ và Open Circulation của Xandros Desktop cần lưu
ý rằng phiên bản này chỉ có hỗ trỢ ghi lên dĩa CD (không hỗ
trỢ ghi lên DVD) và Xandros là một sản phẩm thương mại
nên nhà sản xuất không cung cấp dạng tải về miễn phí.
Nếu trước đây đã cài đặt Windows trên đĩa cứng thì cần
lưu ý khai báo chính xác trong quá trình cài đặt để tiện ích cài
đặt Linux tự động thiết lập chế độ khởi động đôi cho hệ thống
(cho phép người dùng khởi động Windows hoặc Linux).
Trước khi cài đặt Linux, bạn nên ghi ra giấy các thông
số cấu hình hệ thống cần thiết như địa chỉ IP của máy
tính, máy chủ DNS, cổng truy cập Internet (gateway). Để
có được các thông tin này trong Windows 98/Me, bạn nhấn
chuột phải lên biểu tượng Netvvork Neighborhood rồi chọn
Properties. Tiếp đến, nhấn đúp chuột vào mục TCP/IP rồi
tìm các thẻ IP Address, Gateway và DNS Coníìguration.
Với Windows 2000/XP, nhấn chuột phải lên biểu tượng My
Netvvork Places rồi chọn Properties. Trong cửa sổ Network
Connections, nhấn chuột phải lên biểu tượng kết nối mạng
rồi chọn Properties, sau đó tìm và nhấn đúp chuột lên mục
Internet Protocol (TCP/IP). Ngoài ra, bạn cũng nên ghi lại
tên, thông sô' kỹ thuật của màn hình và card đồ họa của

máy tính phòng trường hỢp trình cài đặt Linux không tự
động xác định được các thiết bị này.
184


2. KHẮC PHỤC LỖI TIỆN ÍCH NAUTILUS

Tiện ích Nautilus trong phiên bản Ubuntu Linux 5.4
(có tính năng tướng tự như Windows Explorer của
Windows) có một nhược điểm là tự động đóng các cửa sổ
thư mục khi bạn thực hiện mở một thư mục khác. Để khắc
phục tình trạng trên, chọn Applications.Run Application,
gõ vào Enter>. Trong cửa sổ cây thư mục bên trái, chọn
apps.nautilus.preíerences và đánh dấu tùy chọn
no_ubuntu_spatial ở cửa sổ bên phải. Tiếp đến, đóng cửa
sô ConLiguration Editor lại (tương tự như Control Panel
của Windows) để kết thúc. Từ bây giò, tất cả cửa sổ thư
mục sẽ được mở cho đến khi nào bạn ra lệnh đóng.
3. CÀI ĐẶT CÁC ỨNG DỤNG TỪ MÀ NGUỔN TRÊN LINUX

Có nhiều bạn khi lần đầu tiên đến với Linux cảm giác
sự khó khán và bất tiện của việc cài đặt các ứng dụng trên
Linux, đặc biệt là các ứng dụng phải cài đặt từ mã nguồn
như xine, openGL...
Trên Windows, bạn chỉ cần tải ứng dụng về, giải nén
rồi click vào fíle Setup là hoàn tấ t việc cài đặt, nhưng trên
Linux đó là một chuyện hoàn toàn khác. Phần viết này sẽ
nhằm mục đích hướng dẫn bạn các thao tác cài đặt các
phần mềm ứng dụng trên Linux và cung cấp các kiến thức
căn bản giúp bạn có thể quản lý hệ thống của riêng mình.

Để dễ dàng thì bài viết sẽ gọi các phần mềm trên
Linux là các gói (package). Thực tế tên gọi “gói” đúng đắn
hơn vì các gói trên Linux có thể không phải là một trình
ứng dụng nào đó mà chỉ là các thư viện nền như thư viện
đồ họa Gtk+ hoặc OpenGL...
Bạn có thể sẽ tự hỏi rằng tại sao các phần mềm trên
Linux không tự đóng gói sẵn cho chúng ta rồi khi xuất bạn
chỉ cần tải về và cài đặt nó.
185


Vấn đề là các phần mềm viết trên Linux không hẳn
chỉ có thể chạy trên Linux mà có thể chạy trên nhiều hệ
thống khác nhau trong họ Unix như Solaris, AIX, HPUX... thậm chí các phần mềm đó có thể chạy trên rất
nhiều vi xử lý khác nhau như Intel, Motorola, PPG... Có
đưỢc sự đa năng đó là nhò vào tính đa nền (portable) của
ngôn ngữ C/C++ nhưng đòi hỏi chúng ta phải biên dịch lại
phần mềm từ mã nguồn cho hệ thống mà chúng vận hành.
Bạn sẽ tự hỏi là tại sao tác nhà phát triển lại không biên
dịch sẵn cho chúng ta trên hệ thống thông dụng nào đó
như Linux chẳng hạn. Các phần mềm này là phần mềm
mã nguồn mở và các nhà phát triển không có cách gì hơn
là để lại phần biên dịch cho chúng ta. Tuy nhiên bạn đừng
thất vọng vì có một số nhà phát triển rất là tốt bụng có thê
biên dịch sẵn cho chúng ta ra các gói có dạng rpm và cùng
với sự hỗ trỢ của công ty Red Hat chúng ta cũng đã có
những chương trình quản lý các phần mềm hiệu quả
không kém gì trên Windows như RPM (Redhat Package
Manager). Mặc dù là thế nhưng không phải lúc nào các gói
mới nhất từ các nhà phát triển gốc đều có phiên bản biên

dịch sẵn mà thường là một khoảng thời gian sau các phiên
bản đó mới có được dưói dạng biên dịch sẵn. Bên cạnh đó
còn có rất nhiều nhà phát triển không hề biên dịch sẵn
sản phầm của mình mà đòi hòi người dùng phải biên dịch,
điển hình là trình chơi phim và nhạc xine. Các gói biên
dịch sẵn các bạn có từ xine đa sô" là từ các nhà nhát triển
khác. Do đó nếu bạn không bạn không biết cách cài đặt các
gói từ nguồn là một trở ngại rất lớn cho việc hiểu và quản
trị hệ thống của riêng mình.
Căn bản của việc cài đặt

Điều đầu tiên khi bạn tiến hành cài đặt là bạn phải có mã
nguồn của gói đó trước. Hãy lên mạng search bất kì gói nào
186


bạn thích như thư viện Gtk+ hoặc Gnome... Sau khi tải về,
thông thường có dạng là ,gz hoặc ,bz2, đây đều là 2 chuẩn nén
khác nhau, sau khi giải nén bằng gunzip cho gz hoặc bunzip2
cho bz2 thì các gói sẽ có dạng mới là tar, cũng là một chuẩn
nén khác, bạn có thể giải nén bằng lệnh, tar -xvf... Thế nhưng
đê dễ dàng và tiết kiệm dung lượng ổ đĩa thì chúng ta có thể
gộp các câu lệnh đó thành một như sau:
- ĐỐI với gói ,gz: # tar -zxvf tengoi.gz
- Đôi với gói .bz2: # tar -jxvf tengoi.bz2
Sau khi giải nén xong và tìm tập tin INSTALL để đọc
cụ thể cho phần hướng dẫn cài đặt. Thê nhưng hầu như
các gói đều tuân theo các thao tác tuần tự sau:
# ./coníĩgure
# make

# make install
Chỉ có vài gói đặc biệt sẽ có riêng cách cài đặt nhưng
khi bạn đã nắm vững nguyên tắc chung thì dù là cách thức
nào bạn cũng có thể xoay xở được. Chúng ta hãy xét đến
câu lệnh đầu tiên, ./conílgure... Thực chất conhgure là một
Shell script sẽ kiểm tra những yêu cầu của hệ thông của
bạn có đáp ứng đủ để cài đặt gói lên không, ví dụ như một
sô" gói đòi hỏi bạn phải có sẵn thư viện đồ họa Gtk 2.4 trở
lên hoặc là thư viện để giải nén nhạc Mp3...
Rất nhiều gói có sự phụ thuộc như thê chứ các gói khi
tải về không hề có sẵn các gói tương ứng cần thiết cho nó.
Khi bạn chạy conhgure xong kết quả sẽ cho bạn biết các
gói nào cần thiết để cài đặt. Nhiệm vụ của bạn không gì
hơn là phải tìm các gói phụ thuộc đó cài lên máy rồi mói
tiếp tục việc cài đặt. Nếu như hệ thống của bạn thỏa mãn
đầy đủ các yêu cầu để cài đặt thì các Makefile sẽ được tạo
ra. Makeíĩle là một íĩle đặc biệt của tiện ích make nhằm
hướng dẫn biên dịch mã nguồn của gói ra dạng thực thi.
187


Sau khi bạn thực thi lệnh 'make' xong thì toàn bộ mã
nguồn của gói đã được biên dich sang dạng thực thi nhưng
các íĩle thực thi vẫn còn nằm trên thư mục hiện hành. Do
đó bạn cần phải thực hiện thêm lệnh 'make instair để chép
các ílle thực thi đó sang đúng vỊ trí của nó trên hệ thống.
Nếu như không có thông báo lỗi gì xảy ra thì bạn đã hòan
tất việc cài đặt gói lên hệ thống của mình.
Tổ chức các file tiên hệ thống


Bạn hoàn toàn biết thư mục trên Linux thì thư mục
/usr là thư mục quan trọng nhất vì nó sẽ chứa các chương
trình và hàm thư viện trên đó. Trong thư mục /usr/bin là
sẽ chứa các ílle thực thi cho các gói bạn đã cài đặt trên
máy, các file trong thư mục này bạn sẽ thấy các file rất
quen thuộc như mozilla, gedit... Thư mục /usr/lib sẽ chứa
các hàm thư viện, bạn sẽ thấy rất nhiều ílles có phần mỏ
rộng là .so (shared object) là các hàm thư viện liên kết
động hoặc .a (archive) hoặc .la đều là các hàm thư viện
liên kết tĩnh. Đặc tính cán bản của 2 dạng thư viện này là
hàm thư viện liên kết tĩnh sẽ được liên kết thẳng vói files
thực thi luôn trong quá trình liên kết, còn hàm thư viện
liên kết động thì sẽ được liên kết trong quá trình thực thi,
cho nên sau khi chương trình đã được biên dịch và liền kết
rồi các thư viên tĩnh chúng ta có thể bỏ đi nhưng thư viện
hên kết động thì bắt buộc phải đi kèm với chương trình. Thư
mục /usr/share sẽ chứa các icon, manual hoặc info của gói.
Loại bỏ một gói

Nếu bạn mong muốh lọai bỏ một gói đã cài đặt trên hệ
thống thì cách duy nhất là bạn phải vào lại thư mục mã
nguôn của gói và gõ lệnh make 'uninstair... thông thường bạn
sẽ có các câu lệnh sau: 'make clean' 'make distclean'... Các câu
___________ ______________ _ _ v

188

1

1


I

I

*

,

n t

^

,1

V,

,


lệnh có ý nghĩa rất tương đốĩ và được định nghĩa trong tập tin
Makeíìle, nên đầu tiên bạn cứ thử với 'make uninstair rồi
'make clean' cái CUỐI cùng 'make distclean' là giúp bạn xóa hết
các tập tin đã biên dịch ở thư mục nguồn và đồng thòi xóa
Makeíile, bạn phải chạy lại ./coniĩgure để tạo lại Makehle.
Quản iý các gói

Do việc xóa bỏ một gói như trên rất là phiền phức đôi
lúc bạn chẳng thể xóa bỏđược nếu như mất đi mã nguồn,
cho nên bạn có thể thay vì cài nó vào thư mục mặc định là

/usr thì bạn có thể cài vào các thư mục của riêng bạn, ví dụ
như bạn có thể tạo thư mục Vsoft'... Sau đó để cài gói gedit
thì bạn tạo thêm thư mục /soft/gedit và dùng lệnh
./conílgure... bạn thêm tùy chọn sau:
./conílgure --preflx=/soft/gedit
Thì khi bạn gõ make install sẽ copy toàn bộ sang thư
mục /soft/gedit. Khi bạn muốh xóa toàn bộ gói thì chỉ đơn
giản xóa đi thư mục đó thôi. Lưu ý là khi bạn cài vào thư
mục riêng của mình rồi bạn phải tạo 2 đường dẫn cho 2
biến
môi
trường
(environment
variable)
LD_LIBRARY_PATH và PKG_CONFIG_PATH.
LD_LIBRARY_PATH sẽ có đường dẫn đến thư mục lib
của gói vừa tạo (ví dụ như /soft/gedit/lib) còn
PKG_CONFIG_PATH sẽ có đường dẫn đến thư mục
pkg_config trong thư
mục
lib
(ví dụ như
/soft/gedit/lib/pkg_config). Bên cạnh đó nếu bạn muôn
chương trình gọi tự động thì bạn cũng nên thêm vào biến
PATH cho gói của mình.
4. BẢO MẬT LINUX c ơ

sở

Thê giới hiện nay vốh tồn tại hai kiểu quan niệm về

bảo mật: một bên là những người nghĩ rằng bảo mật máy
189


tính thật vui và thú vị, còn một bên lại cho rằng nó thật bí
ẩn và đáng sỢ. Các chuyên gia quản trị hệ thống chắc chắn
sẽ nói bảo mật máy tính thực sự khá buồn tẻ. Bởi họ phải
thường xuyên đọc các file thông tin cơ sở (log file) khô
khan và gắn liền với những đêm dài mất ngủ, tâm trạng
hoảng hốt khi liên tục chông lại các cuộc tấn công, nguy cơ
xâm nhập hệ thống và đôi khi còn có cả những hoạt động
điên khùng.
Hàng tháng, bạn đọc các file log đều đặn lặp đi lặp lại tin
báo giôhg nhau. Rồi vào một buổi sáng bỗng dưng một cảnh
báo lạ khác xuất hiện. Suy nghĩ đầu tiên của bạn là: "Mình đã
bị tấn công!". Muốh xác định xem liệu cuộc tấn công có thành
công hay không, bạn lùng sục trong các bản ghi log, kiểm tra
file hệ thông, tìm kiếm dấu hiệu khác thường. Nhưng rốt cuộc
chẳng có gì xảy ra cả. Cuộc tấn công đã thất bại? Cũng chưa
hẳn, có thể kẻ tấn công thông minh hơn bạn. Rồi hàng ngày,
hàng tuần bạn tự hỏi không hiểu hàng rào bảo vệ của mình có
bị xâm nhập không. Cuối cùng, bạn quên nó và đối phó với
cuộc khủng hoảng mới.
Bảo mật máy tính, ở một số điểm cũng giốhg như việc
lái xe vậy. Một số người nghĩ rằng lái xe là thú vị, hồi hộp,
nhưng số khác lại cho rằng nó nguy hiểm và đáng sỢ.
Trong lái xe, tôi luôn tuân thủ các quy định đường bộ: đeo
dây bảo hiểm, tránh đường có hại, luôn quan sát đường đi,
bảo dưỡng định kỳ. Vậy những nguyên tắc tương ứng
trong bảo mật trong máy tinh tbì như thế nào?

Xin được thông báo điều đầu tiên là: hầu hết chương
trình bảo mật máy tính không mang tính kỹ thuật nặng
nề, giông như người lái xe không đòi hỏi phải hiểu chi tiết
động cơ hoạt động bên trong như thế nào. Lái xe tốt cũng
có thế chán như lái xe tồi, có thể chẳng vui vẻ gì hơn. Bảo
mật máy tính đòi hỏi nhiều nỗ lực. Bạn phải thực hiện
kiểm tra có phương pháp các chi tiết cần thiết mới có khả
190


náng mang lại hiệu quả cho hệ thống máy tính vốh tẻ
nhạt, và có thể dự đoán trước được. Lái xe an toàn và an
toàn trong máy tính đều đòi hỏi khả năng kỹ thuật của
bạn. Mục đích là giúp bạn tránh những điều có hại ngay từ
những bước đầu tiên. Bài báo này có thể giống như một
khoá học lái xe an toàn trên đường cao tôíc cho bạn vậy.
Bảo hiểm

Hầu hết các nước trên thê giới đều không cho phép
bạn lái xe khi không có bảo hiểm, một phiíơng pháp rất cũ
trong việc quản lý và phân phôi các nguy hiểm. Leo lên
một chiếc ô tô, mức độ rủi ro nguy hiểm gây chết người và
tổn thương nghiêm trọng cho bạn gia tăng. Nhưng hầu hết
mọi người đều lái xe. Cũng giống như thế, kết nôi máy
tính vói mạng đặt bạn trưóc nguy cơ bị mất mát hay bị ăn
trộm dữ liệu. Nhưng ai cũng đều có vẻ miễn cưỡng nếu
buộc phải ngắt kết nôl Internet khi có sự cố xảy ra. Là một
quản trị viên hệ thống Linux, có thể bạn không dự đoán
được nguy hiểm, nhưng luôn quản lý được chúng.
Trưóc hết bạn cần biết mức độ tự nhiên của các mối

nguy hiểm rồi mới có thể quản lý được chúng. Bảo hiểm ô
tô có thê là các hoá đơn thuốc, bảo hiểm nguy cơ cho xe ô
tô, các kiện cáo liên quan đến tai nạn, trộm cắp xe. Khi đặt
một máy tính vào mạng Internet, những nguy hiểm gì
phát sinh cho bạn?
Các chuyên gia bảo mật máy tính nói rằng người dùng và
người quản trị nên phát triển mô hình đe doạ thử nghiệm để
nghiên cứu. Bạn muốn bảo vệ khả năng truy cập mạng, khả
năng in hay lưu trữ file? Bạn đang lo lắng về tính cẩn mật
của fíle nào đó trên hệ thống? Bạn đang lo lắng mọi người có
thể chỉnh sửa hay phá huỷ dữ 'liệu? Bạn có muốn hacker xoá
Nvebsite và đe doạ làm méo mó hình ảnh của bạn?
191


Thực thi bảo mật đòi hỏi ít nhất bạn phải hiểu được
cái gì đe doạ mình. Các điểm nguy hiểm trong bảo mật
không giốhg như bảo hiểm.
Sao lưu trong bảo mật máy tính cũng giông như bảo
hiểm ở lái xe; Tuỳ thuộc vào mô hình nguy hiểm và cấu
hình hệ thống, các phân vùng khác nhau của thủ tục sao
lưu có thể được nhấn mạnh. Nếu hệ thống đang sử dụng là
tiêu chuẩn Linux không dùng đĩa CD với một chút tuỳ
chỉnh trong các ílle cấu hình, bạn có thể chỉ cần một đĩa
nén để sao lưu íĩle trong thư mục gốc. Nếu tuỳ chỉnh hệ
thống mở rộng, bạn cũng có thể sao lưu trong thư mục: /etc
và /usr/local. Nếu việc lưu trữ file vói cơ chế cài đặt 'làm
tươi' đem lại sự chính xác cho hệ thống, bạn có thể thực
hiện cơ chê sao lưu đầy đủ thông thường.
Luật đường bộ


Hầu hết mọi chính phủ trên thế giới đều đòi hỏi bạn
phải học luật khi muốh lái xe. Trước khi cấp quyền được
lái cho ai đó, họ phải vượt qua bài kiểm tra chứng minh
khả năng hiểu luật đường bộ. Còn đối với người dùng
mạng, cuốh sách luật cầm tay là các điều khoản dịch vụ
trong hỢp đồng vói nhà cung cấp ISP. Nếu dùng máy tính
cho công việc, bạn cũng phải tuân theo các hướng dẫn tổng
hỢp hay các chính sách tổng hỢp.
Các điều khoản dịch vụ có thể gồm một mức giói hạn
dịch vụ giám sát và thực thi trên mạng, cùng vói các điều
khoản yêu cầu luật sở hữu trí tuệ khắt khe. Các chính
sách tổng hỢp đòi hỏi phải có mật khẩu an toàn, việc dùng
hệ thông cho các hoạt động không liên quan đến công việc,
các hỢp đồng bảo mật...
Khi là một quản trị viên hệ thống, bạn phải xây dựng
một sô" chính sách như mật khẩu của tổ chức, giải mã lưu
192


lượng mạng, quét tìm lỗ hổng bảo mật trên các máy công
ty. Nếu bạn nghĩ rằng đó không phải là vấn đề, hãy đọc về
trường hỢp của Randal Schwartz và về vụ một số nhân
viên CIA gần đây bị kỷ luật vì sử dụng dịch vụ chat không
rõ nguồn gốc. Nếu bạn chưa có một chính sách nào, hãy
đầu tư phát triển chúng.
Hãy thắt dây an toàn

Lòi khuyên tốt nhất khi tham gia giao thông là bạn
nên ở vai trò của một người bộ hành. Hầu hết các xâm

phạm bảo mật nguy hiểm nhất lại không phải do hacker,
đốỉ thủ cạnh tranh hay tổ chức chính phủ bất chính nào
gây ra. Nguyên nhân xuất phát từ chính các nhân viên
không thực hiện điều luật quy định. Họ sử dụng mật khẩu
tồi trên laptop, đặt chúng vào mạng bảo hiểm ở nhà cũng
như trong các cuộc họp... Hãy chắc chắn rằng tất cả các
nhân viên hiểu được chính sách của bạn và giúp họ biết
đưỢc các nguy hiểm cận kề kết hỢp với sự xâm phạm của
họ. Thậm chí cho dù các xâm phạm không gây hại trực
tiếp nhưng chúng trở thành nguyên nhân làm gia tăng
mức độ nguy hiểm, chính xác đốĩ ngược lại với những gì
bạn đang cô" gắng thực hiện.
Thắt dây an toàn cũng giông như cân bằng các mổỉ đe
doạ: những ngưòi bạn luôn nói vối tôi về một người nào đó
đã bị giết khi axih ta th ắt dây an toàn nhưng thay vào đó
là được bảo vệ an toàn. Cho dù một trong các câu chuyện
đó không phải là sự thực, nhưng cũng có những ngoại lệ,
dẫu không phải là nguyên tắc. Những người lái xe thận
trọng hay hành khách biết điều đó. Thắt lưng an toàn đã
cứu đưỢc nhiều người. Tương tự, thực thi một sô" tính năng
bảo mật máy tính có thể khiến bạn phải đô"i mặt .với nhiều
thách thức hơn. Có khi chúng trở thành đích nhắm thú vị
193


cho hacker. Một câu hỏi luôn được đặt ra là: "Xét về tổng
thể, chừng này làm tăng hay giảm tính bảo mật?"
Tránh đường xấu

Một chiếc ô tô tốt đưọc thiết kế sao cho có được sức bền

càng lớn càng hay. Sức bền trên Internet cũng tương tự với
dòng hằng của các chương trình quét mức thấp và các máy
dò hacker dùng để tìm kiếm hệ thống có thể xâm nhập.
Cách tốt nnất để tránh việc này là giữ một proílle thấp.
Hầu hết các quản trị viên Linux đều mở nhiều dịch vụ hơn
mức cần thiết trong khu vực làm việc. Tôi đã từng chứng
kiến hàng loạt máy bị hack qua các bản copy lỗi thời của
BIND cài đặt trến hệ thốhg. Hệ thồhg đó thậm chí không
dùng tên dịch vụ cục bộ. Nếu tính năng “named” không
thực thi, hệ thông sẽ không an toàn. Hãy tắt bất kỳ dịch
vụ thừa và gỡ bỏ phần mềm không cần thiết nếu có thể.
Nhiều chương trình nguy hiểm đến từ inetd. Bạn có
thể tắt chúng bằng cách dẫn giải các dòng phù hỢp tương
ứng trong thư mục /etc/inetd.conf. Một sô" hệ thống như
Red Hat 7.0 sử dụng xinetd thay thế cho các file cấu hình
xinetd, dễ dàng trong sử dụng và cũng dễ dàng tắt các dịch
vụ này. Nhiều dịch vụ nguy hiểm khác xuất hiện trong các
bản script khởi động ở /etc/rc[l-5].d, /etc/init.d/rc[l5].d, hay /sbin/rc[l-5].d. (Thư mục này có thể thay đổi tuỳ
thuộc vào hệ thốhg phân phối của bạn), nhưng tốt nhất là
nên giói hạn lượng tối thiểu vừa đủ.
Cuối cùng là bảo vệ dữ liệu khi được truyền đi trên
mạng. Các chương trình như Telnet, FTP truyền tải tất cả
mật khẩu và dữ liệu qua mạng dưối dạng văn bản thuần
tuý (cleartext). Bất kỳ ai có bộ sniffer mạng đều có thể đọc
được chúng. Bạn nên thay thê các gói này bằng OpenSSH
hoặc một phần mềm nào đó khác bảo vệ dữ liệu bằng cách
sử dụng phương pháp mã hoá.
194



Hãy luôn chú ý tới đường đi

Một người lái xe giỏi phải luôn quan sát được chướng
ngại vật, biết các nguy cơ có thể xảy đến và biết cách xử lý
chúng ra sao. Trong bảo mật, danh sách mailing là điểm
then chốt để thực hiện điều này. CIAC và CERT sử dụng
bộ danh sách mailing mức thấp với thông tin về các nguy
cơ bảo m ật cho nhiều công ty phát triển Linux như Red
Hat, SuSE, Debian và Mandrake. Nếu bạn muốn biết cụ
thể hơn các vấn đề diễn ra hàng ngày, BugTraq là danh
sách mailing hữu hiệu, nơi nhiều vấn đề bảo mật được đũa
ra đầu tiên.
Để luôn quan sát được những gì đang diễn ra, hãy đọc
các íĩle log cơ sở. Đó là điều đầu tiên bạn nên làm mỗi
sáng, sau khi kiểm tra e-mail đến. Nếu sử dụng một hệ
thống dò tìm xâm nhập như Snort, bạn cũng nên đọc các
file log. Chương trình GIAC (Global Incident Analysis
Center) của học viện SANS Institute cho phép bạn tìm ra
hệ thống dò tìm xâm nhập không hoạt động của người khá.
Đọc íĩle log của các admin khác là một cách thông minh để
hiểu các vấn đề cơ sở.
Bảo dưỡng định kỳ

Ngay cả những chiếc xe an toàn nhất, hiện đại nhất
cũng cần phải được kiểm tra và bảo dưỡng định kỳ mối có
thể luôn duy trì được khả năng hoạt động tốt nhất của
mình. Máy tính cũng vậy. Vói các hệ thốhg Linux, bảo
dưỡng định kỳ tức là phải luôn cập nhật bản mới nhất cho
phần mềm trong máy. Như vối Red Hat Linux chẳng hạn.
Thời gian cập nhật cho các bản update mới nhất là khá

thường xuyên: một hoặc thậm chí hơn các bản update
trong một tuần.
Mặc dù giữ tốc độ cập nhật liên tục cho phần mềm hệ
1Q.'=;


thông có nhiều thách thức, nhưng điều đó là cần thiết.
Hầu hết các hệ thống bị phá hoại xuất phát từ nguyên
nhân khai thác các lỗ hổng bảo mật trong phần mềm chưa
được update bản mối nhất. Bạn có thể ví nó như một cuộc
đua: bạn sẽ tìm thấy các lỗ hổng trưóc khi vá chúng?
Nhiều phân phối Linux hiện nay đều trang bị cơ chế
update tự động. Debian và các phân phôi liên quan hỗ trỢ
lệnh apt-get update, Mandrake có Mandrakeưpdate và
Red Hat có 'up2date'. sử dụng các chức năng này hoặc tự
nâng cấp cho tất cả phần mềm trong hệ thống hiện thòi
của bạn là yếu tô" quan trọng để giành chiến thắng trong
cuộc đua chổng những kẻ xâm phạm bất hỢp pháp.
Giốhg như lái xe, bảo mật máy tính cũng có những
điểm hết sức đáng chán. Để giữ an toàn, bạn phải tiếp tục
thực hiện các nguyên tắc cơ bản sau đây:
• Sao lưu hệ thống như là một hình thức bảo hiểm.
• Biết mình đang cố gắng bảo vệ cái gì.
• Thực hiện tất cả các chính sách thích hỢp (nếu cần
thì có thể xây dựng chính sách riêng).
• Biết ưóc lượng khả năng của mình và giói hạn nó.
• Luôn quan sát, theo dõi các môl đe doạ phù hỢp.
• Luôn cập nhật các bản mới nhất cho phần mềm.
Để giữ an toàn cho hệ thống cần phải luôn kiên trì,
kiên định và thường xuyên nâng cao cảnh giác.

5. LÀM REVERSE PROXY VỚI LINUX + APACHE HTTPD,
THUỘC SERIES "BẢO VỆ MÁY CHỦ..."
Giói thiệu

Nhiệm vụ của chúng ta là bảo vệ một hay nhiều
content web-server -1- nằm trong vùng Internal -2-, các
1 QC


web-server này có thể là Apache httpd, hoặc Microsoft IIS,
hoặc có thể chỉ là một web-server đơn giản được embedded
vào một ứng dụng nào đó. Để hoàn thành nhiệm vụ, chúng
ta sẽ tập trung vào xây dựng một firewall/ids hoạt động ở
tầng application, trong tài liệu này gọi là reverse-proxy, sử
dụng Apache httpd -3- trên nền Linux.
Reverse proxy là gì?
M ột proxy, th eo địn h ngh ĩa, là m ột th iết bị đứng giữa
server và Client, th am gia vào "cuộc trò chuyện" giữa hai
bên. K hái niệm proxy m à chún g ta thường dùng hàn g
n gày tốt hơn n ên được gọi là m ột forward proxy: m ột th iết
bị đứng giữa m ột Client và tấ t cả server m à Client đó m uốn
truy cập vào. M ột reverse proxy làm công việc hoàn toàn
ngược lại: nó đứng giữ a m ột server và tấ t cả Client m à
server n à y p h ải phục vụ. R everse proxy giôhg như m ột
nh à ga kiêm m ột trạm kiểm soát, các req uest từ Client, bắt
buộc p h ải ghé vào reverse proxy, tạ i reverse proxy sẽ kiểm
soát, lọc bỏ các req u est k h ôn g hỢp lệ, và lu ân chuyển các
req u est hỢp lệ đến đích cuối cùng là các server. Chú ý là
m ột reverse proxy có th ể lu ân chuyển req uest cho n h iều
server cùng lúc.


Lợi thê lộn nhất của việc sử dụng reverse proxy là ở
khả năng quản lí tập trung. Một khi đã đẩy được tất cả
traffiC đi qua một trạm kiểm soát day nhất (là reverse
proxy), chúng ta có thể áp dụng nhiều "đồ nghề" khác để
tăng cường an ninh cho hệ thông của mình. Dĩ nhiên, bất
kì sản phẩm hay công nghệ nào cũng có ưu và khuyết
điểm của nó, đi cùng với single point of access bao giò cũng
là "bóng ma" single point of failure. Single point of íailure
có thể đưỢc giải quyết bằng cách xây dựng cluster. Đây là
một vấn đề hoàn toàn vượt qua khỏi phạm vi của bài viết
197


này, tôi chỉ xin giới thiệu bồ nào muốn tìm hiểu về cluster
trên Linux thì thử ghé vào . Ngoài
ra áp dụng reverse proxy đúng cách sẽ giúp tăng cường
períormance cũng như nâng cao scalability của các webapplication chạy trên các content server. Chút xíu nữa, tôi
sẽ đi vào chi tiết các ưu điểm của reverse proxy cũng như
làm thê nào để khai thác các ưu điểm đó.
Cài đặt máy chủ reverse-pioxy

Chọn và cài đặt hệ điều hành cho reverse proxy
Dĩ nhiên là sử dụng linux cho máy chủ reverse proxy.
ở đây không mô tả quá trình cài đặt linux bởi có rất nhiều
tài liệu hảy trên Internet nói về đề tài này, và hơn nữa
một khi đã nghĩ đến chuyện làm reverse proxy thì chắc
chắn chuyện cài đặt Linux không là vấn đề.
1.3.X hay 2.X?


Trước tiên, bạn cần phải trả lòi câu hỏi là chúng ta sẽ
chọn phiên bản Apache nào để làm reverse proxy đây,
1.3.X hay 2.X? Chọn 2.X vì ba lý do:
Thứ nhất là có rất nhiều 0-day trong phiên bản 1.3.X :D.
Thứ hai là Apache 2.X cung cấp một bộ íĩltering API tốt
hơn so với phiên bản 1.3.X, cho phép các module có thể nhìn
thấy và tương tác vói nội dung của các request cũng như các
response tưong úng từ trả lòi từ server. Điều này rất quan
trọng đôi với một reverse proxy đóng vai trò là một
application gateway bởi vì nó phải kiểm tra tất cả thông tin đi
xuyên qua nó trước khi chuyển giao cho bên nhận. -6-.
Thứ ba là Apache httpd 2.X có perlormance cao hơn
hẳn 1.3.X khi phục vụ các static content như íĩle HTML và
file hình ảnh. chúng ta quan tâm đến vấn để này là vì
mong muôn giảm tải cho các content server bên trong
198


bằng cách tách content ra làm hai loại là dynamic (các loại
file CGI/Perl, PHP) và static (các fiie HTML và file hình
ảnh), các content server chỉ phục vụ dynamic cõntent, còn
tất cả static content thì đưa qua máy chủ reversế proxv
luôn. Lúc đó khi các request của Client đi vào reverse
proxy, nếu request đó có đích đến là một static content,
máy chủ reverse proxy sẽ trả lòi luôn cho Client mà không
cần forward request đó đến content server ở phía sau, chỉ
những request đến các dynamic content mới được forward
để các content server xử lí.
Chọn module cho Apache httpd
Ngoài những module mà tài liệu "Securing Apache 2;

step by step" đề nghị, chúng ta phải chọn thêm các module
sau đây:
-mod_rewrite, mod_proxy, mod_proxy_http: các module
này sẽ hỗ trỢ chúng ta trong việc thiết lập reverse proxy.
-mod_security: module này giúp chúng ta cấu hình
reverse proxy thành một application firewall để chống lại
các dạng tấn công thưòng thấy vào các web-application
chạy trên content server. -7-mod_ssl: module này giúp chúng ta mã hóa dữ liệu
của các kết nối từ Client đến server thông qua giao thức
SSL và TLS, biến giao thức HTTP không an toàn thành
giao thức HTTPS rất bảo mật. -8-

Phần quan trọng tiếp theo là chọn một MPM phù hỢp
với mục đích làm reverse proxy của chúng ta. MPM là viết
tắt của cụm từ Multi-Processing Module, là một cải thiện
đáng kể của Apache httpd 2.X so với Apache l.x. Trong
kiến trúc của Apache 2.X, MPM đóng vai trò hết sức quan
trọng, nó chịu trách nhiệm lắng nghe trên các cổng mạng,
chấp nhận các yêu cầu kết nốĩ từ phía Client, và chuyển
199


các yêu cầu đó vào bên trong để Apache httpd xử lí -9-.
Trong trường hỢp này chọn MPM worker. MPM worker sử
dụng thread để phục vụ các request, do đó nó có khả năng
phục vụ một lượng lớn các request nhưng lại tốh rất ít tài
nguyên so vói các process-based MPM khác như prefork.
Đồng thời MPM worker vẫn khai thác đặc tính ổn định
của cá process-based MPM bằng cách tạo ra nhiều process
đê trước, mỗi process có nhiều thread để sẵn sàng phục vụ

Client -10-.
Biên dịch và cài đặt Apache httpd
Như chúng ta đều biết, có hai cách biên dịch các
module trong Apache httpd. Cách thứ nhất, gọi là phương
pháp động, là biên dịch các module thành các thư viện liên
kết chia sẻ (tương tự như các thư viện DLL trên Windows).
Với cách này, các module sẽ được biên dịch thành các ílle
•SO, và sẽ được tải lên khi Apache httpd khởi động nếu cần
(tùy theo các câu lệnh LoadModule trong file cấu hình
conf/httpd.conf). Cách biên dịch thứ hai, gọi là phương
pháp tĩnh, là gom tất cả module nhét vào trong fí.le
bin/httpd luôn (link statically). Khi khỏi động và trong quá
trình chạy, Apache httpd không cần phải tải thêm module
nào nữa. Phương pháp tĩnh được xem là lựa chọn tốt hơn
hết. Chọn phương pháp tĩnh, chúng ta không cần dùng
đến module mod_so (module cần thiết để tải các íile .so
trong phương pháp động). Hơn nữa, theo kh\iyến cáo của
Apache, sử dụng phương pháp tĩnh sẽ giúp tăng 5% về
mặt períormance so vối phương pháp động.
Chúng ta tải Apache httpd 2.X ở />download.cgi và tải mod_security tại
sử dụng các lệnh sau:
CODE

localhost$ wget
/>
200


lo c a lh o st$ w g e t
h ttp ://w w w .m c x lse c u r ity .o r g /d o w n lo a d /m o d se c u r ity -1.8 .7 .ta r.g z

lcx;alhost$ tar - x z f h ttp d -2 .0 .5 4 .ta r.g z -C /usr/l(x:al/src
lcx:alhost$ tar - x z f m cx lsecu rity -1 .8 .7 .ta r.g z -C /u sr/lcx:al/src

Tài liệu kèm theo của mod_security chỉ hướng dẫn
cách biên dịch mod_security thành một thư viện chia sẻ
của Apache httpd, do đó chúng ta cần phải chuẩn bị đôi
chỗ để có thể biên dịch tĩnh mod_security;
CODE
lcx;alhost$ c d /u sr/l(x:al/src
lo c a lh o st$ m k d ir -p h ttp d -2 .0 .5 4 /m o d u les/secu rity
l(x:alh ost$ c p m cxlsecu rity -1 .8 .7 /a p a ch e2 /m cx l_ secu rity .c httpd2 .0 . 5 4 /m o d u le s/se c u r ity
lo c a lh o st$ c p h ttp d -2 .0 .5 4 /m c x iu le s/e c h o /M a k e file .in httpd2 .0 . 5 4 /m c x lu le s/se c u r ity

Bắt đầu biên dịch như sau:
CODE
lo c a lh o st$ c d /u sr/l(x :a l/src/h ttp d -2 .0 .5 4
lcx:alhost$ ,/c o n fig u r e \
—w ith -m p m = w o rk er \
—d isa b le -c h a r se t-lite \
—d isa b le -in c lu d e \
—d is a b le - e n v \
—d isa b le-sta tu sN
—d isa b le -a u to in d e x \
—d is a b le - a s is \
—d isa b le -c g id \
—d is a b le -c g i \
—d isa b le -n e g o tia tio n \
—d is a b le - im a p \
—d isa b le -a c tio n s \
-d is a b le -u s e r d ir X


201


—d is a b le -a lia s \
—d is a b le - s o \
—w ith -m c x lu le = se c u r ity :m o d _ se c u r ity .c \
—en a b le-m o d u les= 'ssl rew rite proxy proxy_http'

Nếu quá trình biên dịch thành công, chúng ta sẽ tiếp
tục như sau để cài Apache httpd vào hệ thống (tại thư mục
mặc định là /usr/local/apache):
CODE
lo ca lh o st$ m ake
lo ca lh o st$ su
lo c a lh o st# um ask 0 2 2
lo c a lh o st# m ak e install
lo c a lh o st# ch o w n -R root:sys /u sr/lo ca l/a p a ch e

6. RED HAT LINUX VÀ NHỮNG KINH NGHIỆM BẢO MẬT

Hiện nay Linux đang dần trở thành một hệ điều hành
khá phổ biến, bởi tính kinh tế, khả năng bảo mật và sự uyển
chuyển cao. Thê nhưng, mọi hệ thống dù an toàn đến đâu
cũng dễ dàng bị xâm nhập nếu người dùng (và nhất là người
quản trị - root) không đặt sự bảo mật lên hàng đầu. Sau đây
là một sô"kinh nghiệm về bảo mật trên hệ điểu hành Red Hat
Không cho phép sử dụng tài khoản root từconsole

Sau khi cài đặt, tài khoản root sẽ không có quyền kết

nối telnet vào dịch vụ telnet trên hệ thốhg, trong khi đó tài
khoản bình thường lại có thể kết nối, do nội dung tập tin
/etc/securetty chỉ quy định những console được phép truy
nhập bởi root và chỉ liệt kê những console truy xuất khi
ngồi trực tiếp tại máy chủ. Để tăng cường bảo mật hơn
nữa, hãy soạn thảo tập tin /etc/securetty và bỏ đi những
console bạn không muốh root truy nhập.
202


Xóa bớt tài khoản và nhóm đặc biệt

Người quản trị nên xóa bỏ tất cả tài khoản và nhóm được
tạo sẵn trong hệ thống nhưng không có nhu cầu sử dụng (ví
dụ: Ip, sync, shutdown, halt, news, U U C P , operator, games,
gopher...). Thực hiện việc xóa bỏ tài khoản bằng lệnh userdel
và xóa bỏ nhóm với lệnh groupdel.
Tắt các dịch vụ không sử dụng

Một điều khá nguy hiểm là sau khi cài đặt, hệ thống
tự động bật chạhỢp của RAR thì phức tạp hơn một chút do nó
có bản quyền của định dạng íĩle. Trên vvebsite RARLAB
cung cấp phiên bản chỉ dùng giải nén có bản quyền nhưng
miễn phí cho khách hàng Linux, gọi là unrar.
Bản này được thiết kế cho phân phối Intel 32-bit trong
cả hai gói RPM, Slackware; như các mã nhị phân độc lập
cho hệ thống Intel 64-bit, PovverPC; và các hệ thông Linux
ARM. Chương trình unrar của RARLAB được cung cấp
thành phần mềm miễn phí và phần mềm nguồn mở nên
bạn sẽ không thấy bất kỳ phân phốỉ Linux nào có tích hỢp

nó trong hệ điều hành. Bạn có thể download một đoạn mã
nguồn tarball trên RARLAB, nhưng quy định bản quyền
kèm theo cấm bạn dùng nó để phát triển bất kỳ chương
trình mã hoá RAR nào.
Một lựa chọn khác là công cụ dòng lệnh có bản quyền
GPLv2, đò dự án Gna! phát triển. Gna! urar được thiết kế
như một bộ bọc quanh unrarlib, thư viện mã hoá RAR
nguồn mở do Christian Scheurer và dohannes
Winkeĩmann, những người không thuộc Gna! phảc triển.
Scheurer và Winkelmann phát triển thư viện unrarlib từ
mã nguồn RARLAB nguyên bản ban đầu, nhưng vẫn phải
cần các quyền do Eugene Roshal cho phép để trở thành phần
mềm miễn phí. Do đó, có thể hiểu unrarlib được phát triển từ
GPLv2 và bản quyền ban đầu của RARLAB.
Hợp đồng bản quyền này có vẻ là con đường thú vị để
thực hiện phần mềm chạy CUỐI quanh RARLAB và tạo
262


chương trình mã hoá RAR tin học từ mã nguồn ban đầu,
nhưng cho tói nay điều này vẫn chưa diễn ra. Sheurer
không cảm thấy thích thú vói ý tưởng này. Tác giả nói
rằng, anh thích dùng các định dạng nguồn mở đế tạo lưu
trữ hơn. "Không phải lúc nào bạn cũng có thể lựa chọn
được kiểu định dạng dữ liệu. Vì thể, thật tuyệt nếu có cách
thức mở để truy cập nó. Nhưng bạn có thể chọn cách tạo ra
một lưu trữ. Nếu không muốn sử dụng các công cụ nén
nguồn đóng, có nhiều lựa chọn khác cho bạn".
Chương trình giải nén unrar có bản quyền sử dụng cú
pháp cơ bản như 7z và 7za. Để giải nén, lưu trữ và duy trì

đường dẫn ílle, gõ unrar X ten_ílle_luu_tru.rar. Trong GPL
unrar, bạn cần thêm một dấu nổi trước x: unrar - X
ten_fĩle_luu_tru.rar.
Hiện nay, thư viện unrarlib chỉ hỗ trỢ phiên bản 2
(version 2) của định dạng file RAR. sắp tói đây, định dạng
RAR3 mối hơn có thể sẽ được hỗ trỢ trong unrarlib, nhưng
Scheurer nói rằng, anh không chắc có thể hy vọng một số
kích hoạt lại từ RARLAB.
Hỗ trợ giao diện người dùng GUI

Nếu bạn thực hiện được hầu hết mọi việc trên chương
trình Window Manager của Linux, bạn th ật may mắn. cả
GNOME và KDE đểu có các chương trình quản lý lưu trữ
đồ hoạ. File Roller cho GNOME và Ark cho KDE. Hầu hêt
mọi phiên bản gần đây của cả hai chương trình đều dùng
cơ chế plug-in, hỗ trỢ nhiều định dạng lưu trữ khác nhau
và dựa trên p7zip để hỗ trỢ cho 7z, dựa trên Gna! unrar hỗ
trỢ cho RAR. Mặc dù vậy, để giải quyết vấn đề không
tương thích của các íĩle RAR3 mói, bạn vẫn cần cài đặt
chương trình unrar có bản quyển trên máy của mình.
Như đã đề cập đến ở phần đầu, cả 7z và RAR đều hỗ
263


trỢ phân tách các file lớn thành nhiều phần nhỏ hơn.
Nhưng trong chương trình kiểm tra, cả File Rooler và Ark
đều nhận ra rằng một thư mục đầy đủ vối các file được
đánh sô' lần
lượt myfĩle.7z.001,
myfile.7z.002,

myfile.7z.003... tạo một file 7z phân tách thành các đoạn
có kích thước theo bite.
Do đó, để có dữ liệu bên trong, bạn cần liên kết các file
phân tách lại thành một flle hoàn chỉnh trên dòng lệnh, sử
dụng lệnh cat; cat ten_file.7z.001
ten_íĩle.7z.002
ten_file.7z.003 > ten_íĩle.7z. Một file hoàn chỉnh gắn lại từ
các phần sẽ được tạo, đặt tên là ten_file.7z. Tại thời điểm
đó, bạn có thể mỏ lưu trữ trong File Roller hoặc Ark.
Nhưng sẽ nhanh hơn nếu gõ 7z X ten_íĩle.7z.
Server Ubuntu Linux của bạn an toàn

Khi là quản trị viên hệ thốhg, một trong những nhiệm
vụ trọng yếu của bạn là xử lý các vấn đề bảo mật server.
Nếu server của bạn được kết nối Internet, bạn nên đặt nó
trong vùng xung đột. Nếu đó chỉ là một server nội bộ, bạn
vẫn cần xử lý (có thể là một cách ngẫu nhiên) những đối
tượng nguj^ hiểm.
Thông thường Ubuntu Server rất an toàn. Ubuntu
Server Team - nhóm sản xuất các phiên bản update bảo
mật văn phòng - đã thực hiện lần lột xác thành công nhất
trong lịch sử ngành công nghiệp bảo mậi với Ubuntu
Server. Ubuntu không được gắn với chính sách cổng mở.
Có nghĩa là sau khi bạn cài đặt, để chế dộ desktop hay
server cho Ubuntu xong, mặc định sẽ không có chương
trình ứng dụng nào chấp nhận kết nối đến internet. Giốhg
như Ubuntu desktop, ưbuntu Server sử dụng cơ chế sudo
trong quản trị hệ thông, tránh sử dụng tài khoản gổc. Các
bản update bảo mật còn được bảo hành ít nhất 18 tháng
264



sau khi phát hành (một sô" bản lên đến 5 năm như Dapper)
và hoàn toàn miễn phí.
Trong phần này chúng tôi muốh bàn về vấn đề bảo mật
file hệ thốhg, các giới hạn nguồn hệ thống, xử lý các bản ghi
và an ninh mạng. Nhưng bảo mật trong Linux là một đề tài
khó và rộng lớn nên chúng tôi chỉ xin cung cấp cho các bạn
một sô" cách giải quyết xung đột cơ bản. Để trở thành một
quản trị viên tô"t, bạn nên quan tâm tới vấn đề này và học hỏi
thêm từ các nguồn khác mà chúng tôi sẽ cung cấp trong bài.
17. QUẢN TRỊ TÀI KHOẢN NGƯỜI DÙNG

Nhiều khía cạnh quản trị người dùng của hệ thông
Linux được thực hiện nhất quán trên các nhân phô"i của
nó. Trước đây, hãng Debian cung cấp một sô" tiện ích như
mã lệnh useadd, giúp bạn quản trị dễ dàng hơn. Sau này
Ubuntu kê" thừa đầy đủ mô hình quản trị người dùng của
Debian. Chúng ta sẽ không đi sâu vào chi tiết của Debian
mặc dầu nó được coi là mô hình chuẩn trong quản trị
người dùng. Các bạn muôn tìm hiểu thêm có thể tham
khảo tại vvebsite của 0 ’Reilly. Vấn đề chúng ta quan tâm ở
đây là sự khác biệt của Ubuntu với mô hình chuẩn: sudo.
Ubuntu không cho phép đặt mặc định root,
administrator, account. Nó có cách xử lý lợi ích bảo mật khá
hay và một sô" phương án giảm cấp đáng kinh ngạc. Đó là văn
bản hoá tất cả trong các trang chính của fí.le gốc sudo_root.
Trong quá trình cài đặt, bạn thêm vào người dùng nào
thì mặc định người dùng đó sẽ được đặt trong nhóm admin
và có thể dùng sudo để thực hiện các nhiệm vụ quản trị hệ

thông. Sau khi thêm tên người dùng mới vào hệ thông, bạn
có thể đưa họ vào nhóm admin bằng câu lệnh:
$ sudo adduser username admin
265


Nếu muốn loại một người nào ra khỏi nhóm admin,
đơn giản bạn chỉ cần đặt lệnh deluser thay thê adduser.
Một điều bạn nên chú ý là sudo không chỉ cung cấp
quyền truy cập thư mục gốc. Nó còn có thể điều khiển các
quyền nhỏ bên trong, chẳng hạn như việc ra lệnh: “chỉ cho
phép người dùng này thực thi 3 câu lệnh với các đặc quyền
của superuser”.
Tài liệu mô tả các quyền này nằm trong trang “sudoers”
nhưng nó khá khó hiểu. Bạn chỉ cảm thấy rõ ràng hơn đôi
chút khi đọc đến phần ví dụ của nó, tài liệu này cung cấp hầu
hết các tình huống bạn cần dùng đến sudo. Khi đã thực sự
hiểu, đơn giản bạn chỉ cần chạy câu lệnh:
$ visudo
ở đây bạn phải cẩn thận. Cơ sở dữ liệu sudoers, nằm
trong “/etc/sudoers” không mở được bằng một trình soạn
thảo. Bởi vì một trình soạn thảo không thể kiểm tra được
cú pháp.
Nếu bạn làm rối cơ sở dữ liệu sudoers, có thể bạn sẽ
phải tự mình tra tìm dữ liệu mà không thể trở thành
người quản trị được.
18. BẢO MẬT HỆ THỐNG FILE

Mô hình bảo mật file được chuẩn hoá trong hầu hết
các hệ thống tựa Unix và được gọi là mô hình POSIX. Mô

hình này có 3 quyền truy cập ílle và thư mục mở rộng cho:
người sở hữu, nhóm và các đốĩ tượng khác. Tất cả đều được
thực hiện giống nhau tại bất kỳ phân phối Linux nào. Đó
là lý do vì sao chúng ta không tập trung phân tích kỹ vấn
đề này. Các bạn có thể tham khảo thêm tại các trang
“chmod” và “chown” trong phần trỢ giúp cửa Linux hoặc
trên Internet.


×