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

bảo mật đối với hệ điều hành mã nguồn mở

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 (283.59 KB, 30 trang )

Giới thiệu về hệ điều hành mã nguồn mở
Phần mềm nguồn mở là phần mềm với mã nguồn được công bố và sử dung một giấy
phép nguồn mở. Giấy phép này cho phép bất cứ ai cũng có thể nghiên cứu thay đổi và cải
tiến phần mềm cũng như phân phối ở dạng chưa thay đổi hoặc đã thay đổi.
Định nghĩa nguồn mở của Tổ chức sáng kiến nguồn mở (Open Source Initiative-
OSI.)Thể hiện một triết lý nguồn mở và xác định ranh giới về việc sử dụng,thay đổi và tái
phân phối phần mềm nguồn mở.giấy phép phần mềm cung cấp cho ngui dùng các
quyềnvốn bị cấm bởi bản quyền.Gồm các quyền về sử dụng,thay đổi và tái phân phối.
Một vài giấy phép phần mềm nguồn mở đã được thẩm định thuộc giới hạn của Định
nghĩa nguồn mở. Ví dụ nổi bật nhất là giấy phếp công cộng GNU (GPL) . Trong khi
nguồn mở cho phépcông chúng truy cập vào nguồn của một sản phẩm,giấy phép nguồn
mở cho phép tác giảđiều chỉnh cách truy cập đó Ngày nay có rất nhiều dạng mở bao gồm
: phần cứng , phần mềm nguồn mở, tài liệu mở …
Mã nguồn mở ngày nay phát triển với tốc độ khá cao,cho thấy nó có nhiều tiện dụng hơn
so với mã đóng. Không nghi ngờ này nay khi nói tới sự phát triển công nghệ thông tin thì
mã nguồn mở như một cái gì đó năng động nhất.Tốc độ thay đổi của mã có thể đến
từnggiờ một.
-Phần mềm mã nguồn mở đầu tiên phải kể đến là LINUX . LINUX không chỉ là phần
mềm hệ điều hành mã nguồn mở thông thường mà nó còn là nhân của hệ điều hành.Từ
LINUX người ta đã viết nên các bản phân phối các hệ điều hành đang được sử dụng phổ
biến hiện nay như Fedora, Ubuntu, Suse, Open Solar
Phiên bản LINUX đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn là sinh viên
của đại học Helsinki tại Phần Lan. Ông làm việc một cách hăng say trong vòng 3 năm liê
tục và cho ra đời phiên bản LINUX 1.0 vào năm 1994. Bộ phận chủ yếu này được phát
triển và tung ra trên thị trường dưới bản quyền GNU General Public License. Do đó mà
bất cứ ai cũng có thể tải và xem mã nguồn của LINUX. Một cách chính xác ,thuật ngữ
“LINUX”được sử dụng để chỉ nhân Linux, nhưng tên này Được sử dụng một cách rộng
rãi để miêu tả tổng thể một hệ điều hành giống UNIX được tạo ra bởi việc đóng gói nhân
Linux cùng với các thư viện và công cụ GNU, cũng như là các bản phân phối Linux.
1
Thực tế thì nó là tập hợp một số lượng lớn các phần mềm như máy chủ web , các ngôn


ngữ lập trình , các hệ quản trị cơ sở dữ liệu, các môi trường làm việc desktop như
GNOME và KDE, và các ứng dụng thích hợp cho công việc văn phòng như OpenOffice,
LibreOffice.
Khởi đầu ,Linux được phát triển cho dòng vi xử lý 386, hiện tại hệ điều hành này hỗ trợ
một số lượng lớn các kiến trúc vi xử lý, và được sử dụng trong nhiều ứng dụng khác nhau
từ máy tính cá nhân cho tới các siêu máy tính và các thiết bị nhúng ví dụ như các máy
điện thoại di động. Hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như IBM và
Hewlett-Packard, đồng thời nó cũng bắt kịp được các phiện bản UNIX độc quyền và
thậm trí là mt thách thức đối với sự thống trị của của microsoft windows trong một số
lĩnh vực. Linux đạt được những thành công một cách nhanh chóng nhờ vào các đặc tính
nổi bật
So với các hệ thống khác : chi phí phần cứng thấp, tốc độ cao , và khả năng bảo mật tốt,
độ tin cậy cao cũng như là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà
cung cấp. Một đặc tính nổi trội của nó là được phát triển bởi một mô hình phát triển phần
mềm nguồn mở hiệu quả.
*Những ưu điểm nổi bật của Linux :
•Linh hoạt uyển chuyển :
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.Linux
tương thích với rất nhiều môi trường và có thể chạy trên nhiều nền tảng.
•Độ 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ể tạm 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 khỏi những sai sót dẫn đến sụp đổ vì
hệ thống.
Ngoài ra tính chất mở cũng tạo nên sự an toàn cho 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 va thường
thì chỉ sau 24 h sẽ có thể cho ra bản sửa lỗi.
•Thích hợp cho quản trị mạng:
2

Được thiết kế ngay từ đầu cho chế đọ đa người dùng nên Linux được cho là một hệ
điều hành mạng rất giá trị , là hệ điều hành thống trị đối với các server . đó là do 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
là một giao thức truyền tin của Linux.
•Chạy thống nhất trên các hệ thống phần cứng:
Dù có rất nhiều các phiên bản Linux khác nhau do các nhà phân phối ban hành nhưng
nhìn chung đều chạy khá ổn định trên các thiết bị phần cứng từ intel 4.6 đến những máy
Pentium mới nhất, từ những máy có udng lượng RAM chỉ 4MB đến những máy có cấu
hình cực mạnh
*Một vài 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à công việc dành cho những
chuyên gia . Hầu như mọi công việc đều thực hiệ bằng các dòng lệnh và phải cấu hình
nhờ sửa trực tiếp các file . Tuy nhiên Linux hiện nay đã phát triển nhiều phiên bản thân
thiện với người dùng ,giao diện đẹp nên cũng đã dần được nhiều người sử dụng.
•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ó rất nhiều bản Linux phát triển từ một nhân ban
đầucùng tồn tại như : RedHat, SuSE, K noppix… 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 phm nào thì Linux gần như có sản phẩm tương tự .Tuy nhiên
chất lượng những sản phẩm này chưa thể so sánh được với cá sản phẩm viết cho
windows.
•Một số nhà sản xuất phần cứng không có driver hỗ trợ Linux
Do hiện nay Linux chưa phổ biến bằng windows nên nhiều nhà sản xuất không hỗ
trợ các driver chạy trên Linux. Tuy nhiên vẫn có thể tìm thấy các driver này do ai đó
trong cộng đồng mã nguồn mở viết.

3
2/ An toàn và bảo mật Linux server
-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
gateway. Vấn đề an toàn an ninh cho hệ thống Linux ngày càng trở nên quan trọng và bức
thiết hơn. Sau đây là cái nhìn tổng quát về an toàn hệ thống và những giải pháp giúp tăng
cường mức độ an toàn cho Linux.
Loại bỏ tất cả các tài khoản và nhóm đặc biệt
Ngay sau khi cài đặt Linux, người quản trị nên xoá bỏ tất cả các tài khoản và nhóm
(group) đã được tạo sẵn trong hệ thống nhưng không có nhu cầu sử dụng, ví dụ như lp,
sync, shutdown, halt, news, uucp, operator, games, gopher, v.v
Thực hiện việc xoá bỏ account với lệnh :
# userdel
Ví dụ, nếu không có nhu cầu về in ấn trên hệ thống, có thể xoá account lp như sau:
# userdel lp
Tương tự như vậy, có thể thực hiện việc xoá bỏ các nhóm không cần thiết với lệnh
# groupdel
2.Che giấu file chứa mật khẩu
Từ lịch sử xa xưa của Unix và cả Linux, mật khẩu của toàn bộ các account đã từng
được lưu ngay trong file /etc/password, file có quyền đọc bởi tất cả các account trong hệ
thống! Đây là một kẽ hở lớn cho các kẻ phá hoại: Mặc dù các mật khẩu đều được mã hoá,
nhưng việc giải mã ngược là có thể thực hiện được (và có thể thực hiện khá dễ dàng, đặc
biệt vì cơ chế mã hoã mật khẩu không phải là khó phá và ngày nay khả nǎng tính toán và
xử lý của máy tính rất mạnh). Vì lí do trên, gần đây các nhà phát triển Unix và Linux đã
phải đặt riêng mật khẩu mã hoá vào một file mà chỉ có account root mới đọc được: file
/etc/shadow. (Khi sử dụng phương pháp này, để đảm bảo tính tương thích, nơi vốn đặt
mật khẩu trong file /etc/password người ta đánh dấu "x")
4

Nếu đang sử dụng các phiên bản RedHat gần đây (ví dụ RedHat 6.x hay 7.x) thì nhớ
chọn lựa Enable the shadow password khi cài đặt RedHat để sử dụng tính nǎng che giấu
mật khẩu này.
3.Tự động thoát khỏi shell
Người quản trị hệ thống rất hay quên thoát ra khỏi dấu nhắc shell khi kết thúc công việc.
Bản thân tôi cũng đã từng nhiều lần khi đang thực hiện việc quản trị với account root thì
bỏ đi vì một số công việc khác.Thật nguy hiểm nếu lúc đó có một kẻ phá hoại ở đó: Kẻ
này có thể dễ dàng có quyền truy xuất hệ thống ở mức cao nhất mà chẳng cần tốn một
chút công sức nào cả.
Để giảm nguy cơ này, người quản trị nên cài đặt tính nǎng tự động thoát ra khỏi shell khi
không có sự truy xuất nào trong một khoảng thời gian định trước bằng cách đặt một tham
số quy định khoảng thời gian hệ thống vẫn duy trì dấu nhắc shell.
Muốn cài đặt tham số này, người sử dụng biến môi trường TMOUT và gán cho nó một
giá trị số thể hiện khoảng thời gian tính bằng giây hệ thống vẫn duy trì dấu nhắc. Để thực
hiện điều này cho tất cả các account trong hệ thống, cách đơn giản nhất là đặt nó vào
file /etc/profile dòng lệnh sau: (giả sử ta đặt khoảng thời gian là 600 giây)TMOUT=600
Như vậy là nếu trong khoảng 10 phút người sử dụng không truy xuất shell, shell sẽ tự
động thoát ra. Tuy nhiên cần chú ý: Mẹo này sẽ không "ǎn" nếu lúc đó người dùng đang
chạy một chương trình nào đó như vi hay mc, Có nghĩa là người dùng phải đang làm
việc trực tiếp với shell chứ không phải với bất kỳ một chương trình nào khác.
4. Loại bỏ 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ạy khá nhiều dịch vụ
(và đa số là các dịch vụ không mong muốn), dẫn tới tốn tài nguyên và gây nên nhiều
nguy cơ về bảo mật.Người quản trị nên loại bỏ ngay lập tức các dịch vụ không dùng tới
ngay sau khi cài máy.Hoặc đơn giản bằng cách xoá bỏ các gói phần mềm/dịch vụ không
sử dụng (qua công cụ quản trị gói phần mềm rpm của RedHat) hoặc sử dụng công cụ
ntsysv để duyệt xem tất cả các dịch vụ đang cài đặt rồi vô hiệu hoá những dịch vụ không
cần thiết (bằng cách bỏ đánh dấu các dịch vụ không sử dụng với phím Space).Sau khi
thoát ra khỏi ntsysv thì khởi động lại máy: các dịch vụ không mong muốn sẽ không chạy
nữa.

5.không tiết lộ thông tin về hệ thống qua telnet
5
Dịch vụ cho phép truy xuất hệ thống từ xa telnet có khả nǎng tiết lộ thông tin về hệ
thống, dễ tạo điều kiện cho những kẻ phá hoại tấn công dựa vào những điểm yếu đã
biết.Điều này rất dễ nhận thấy: Mọi người dùng kết nối từ xa vào dịch vụ telnet đều nhận
được thông tin về tên máy, phiên bản Linux và phiên bản của nhân (kernel) của máy chủ.
Để tránh điều này, ta cần thực hiện việc kích hoạt telnetd (telnet server) với tham số -h.
(Tham số -h sẽ ngǎn telnet tiết lộ các thông tin và chỉ in ra dấu nhắc "Login:" cho những
người kết nối từ xa).
Do các phiên bản RedHat 7.x khi chạy telnetd không còn sử dụng inetd nữa (mà sử dụng
xinetd - một phiên bản nâng cấp và có nhiều cải tiến so với inetd) nên cách cấu hình lại
telnetd sẽ khác nhau tuỳ theo phiên bản RedHat đang sử dụng.
+ Với các phiên bản RedHat 6.x và trước đó, thực hiện các bước sau:
Trong file /etc/inetd.conf, thay đổi dòng
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
chuyển thành :
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
Tiếp theo, khởi động lại inetd bằng câu lệnh:
# /etc/rc.d/init.d/inetd restart
+ Với các phiên bản RedHat 7.x, thực hiện bước sau:
Trong file /etc/xinetd.d/telnet , thêm chọn lựa:
server_args = -h
File trên sẽ có dạng như sau;
service telnet
{
disable = yes
flags = REUSE
socket_type = stream
6
wait = no

user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
server_args = -h
}
Tiếp theo, khởi động lại xinetd bằng câu lệnh:
# /etc/rc.d/init.d/xinetd restart
6.Tránh sử dụng các dịch vụ không mã hoá thông tin trên đường truyền
Mặc dù ở trên chúng tôi đã trình bày cách ngǎn dịch vụ telnet tiết lộ thông tin, nhưng
chúng tôi xin có lời khuyên: Tuyệt đối tránh sử dụng những dịch vụ kiểu như telnet, ftp
(ngoại trừ ftp anonymous) vì những dịch vụ này hoàn toàn không hề mã hoá mật khẩu
khi truyền qua mạng.Bất kỳ một kẻ phá hoại nào cũng có thể dễ dàng "tóm" được mật
khẩu của bạn bằng những công cụ nghe lén kiểu như sniffer.
Ở những trường hợp có thể, nên sử dụng dịch vụ ssh thay thế cho cả ftp và telnet: dịch
vụ SSH (Secure Shell) dùng cơ chế mã hoá công khai để bảo mật thông tin, thực hiện mã
hoá cả mật khẩu lẫn thông tin chuyển trên đường truyền. Hiện đang được sử dụng khá
rộng rãi, gói phần mềm của SSH cũng được đóng kèm trong hầu hết các phiên bản gần
đây của Linux. Chẳng hạn, các phiên bản RedHat từ 7.0 trở lên mặc định đều cài
OpenSSH, một sản phẩm mã nguồn mở có thể sử dụng hoàn toàn miễn phí
Ngoài ra, những dịch vụ "r" kiểu như rsh, rcp hay rlogin nên tuyệt đối tránh sử dụng. Lý
do là các dịch vụ này ngoài việc truyền mật khẩu không mã hoá còn thực hiện việc kiểm
tra quyền truy xuất dựa trên địa chỉ máy kết nối, là một điều cực kỳ nguy hiểm. Các kẻ
phá hoại sử dụng kỹ thuật spoofing đều có thể dễ dàng đánh lừa được cách kiểm tra này
khi "làm giả" được địa chỉ của máy truy xuất dịch vụ hợp lệ.
7.Cấm sử dụng account root từ consoles
Có thể chúng ta đều nhận thấy, ngay sau khi cài đặt RedHat, account root sẽ không có
quyền kết nối telnet vào dịch vụ telnet trên hệ thống (chỉ những account thường mới có
7
thể kết nối). Nguyên nhân là do file /etc/securetty quy định những console được phép
truy nhập bởi root chỉ liệt kê những console "vật lý" (tức là chỉ truy xuất được khi ngồi

trực tiếp tại máy chủ) mà bỏ qua những kết nối qua mạng. Dịch vụ ftp cũng sẽ bị hạn chế
này: account root không được phép truy xuất ftp qua mạng.
Để tǎng tính bảo mật hơn nữa, soạn thảo file /etc/securetty và bỏ đi những console bạn
không muốn root truy nhập từ đó.
8.Cấm "su" lên root
Trong Linux, lệnh su (Substitute User) cho phép người dùng chuyển sang một
account khác. Nếu không muốn một người bất kỳ "su" thành root, thêm hai dòng
sau vào nội dung file /etc/pam.d/su
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel
Như vậy, chỉ có những người có đǎng ký là thành viên của nhóm wheel mới có
quyền "su" thành root. Để cho phép một người dùng có quyền này, người quản trị
chỉ việc gán account của người này vào nhóm wheel (qua file /etc/group)
9.Hạn chế các thông tin ghi bởi bash shell
Thông thường, tất cả các lệnh được thực hiện tại dấu nhắc shell của các account đều
được ghi vào file ".bash_history" nằm trong thư mục cá nhân của các account. Điều này
cũng gây nên những nguy hiểm tiềm ẩn, đặc biệt với những ứng dụng đòi hỏi phải gõ các
thông mật như mật khẩu trên dòng lệnh.Người quản trị nên hạn chế nguy cơ này dựa trên
2 biến môi trường HISTFILESIZE và HISTSIZE: Biến môi trường HISTFILESIZE xác
định số lệnh (gõ tại dấu nhắc shell) sẽ được lưu lại cho lần truy nhập sau, còn biến môi
trường HISTSIZE xác định số lệnh sẽ được ghi nhớ trong phiên làm việc hiện thời.Ta có
thể giảm giá trị của HISTSIZE và đặt bằng 0 giá trị HISTFILESIZE để giảm tối đa những
nguy hiểm đã nêu trên.
Để thực hiện việc này, chỉ cần đơn giản thay đổi giá trị hai biến này trong file /etc/profile
như sau:
HISTFILESIZE=0
HISTSIZE=20
8
Như vậy, tại phiên làm việc hiện thời, shell chỉ ghi nhớ 20 lệnh gần nhất, đồng thời không
ghi lại các lệnh người dùng đã gõ khi người dùng thoát ra khỏi shell.

10. Cấm nhòm ngó tới những file script khởi động Linux
Khi khởi động Linux, các file script được đặt tại thư mục /etc/rc.d/init.d sẽ được thực
hiện. Để tránh những sự tò mò không cần thiết, người quản trị nên hạn chế quyền truy
xuất tới những file này chỉ cho account root bằng lệnh sau:
# chmod -R 700 /etc/rc.d/init.d/*
11. Xoá bỏ những chương trình SUID/SGID không sử dụng
Thông thường, những ứng dụng được thực hiện dưới quyền của account gọi thực hiện
ứng dụng. Tuy nhiên, Unix và Linux sử dụng một kỹ thuật đặc biệt cho phép một số
chương trình thực hiện dưới quyền của người quản lý chương trình (chứ không phải
người thực hiện). Đây chính là lý do tại sao tất cả mọi user trong hệ thống đều có thể đổi
mật khẩu của mình trong khi không hề có quyền truy xuất lên file /etc/shadow: Nguyên
nhân vì lệnh passwd có gán thuộc tính SUID và được quản lý bởi root, mà chỉ có root
mới có quyền truy xuất /etc/shadow.
Tuy nhiên, khả nǎng này có thể gây nên những nguy cơ tiềm tàng: Nếu một chương trình
có tính nǎng thực thi được quản lý bởi root, do thiết kế tồi hoặc do được cài đặt cố tình
bởi những kẻ phá hoại mà lại có thuộc tính SUID thì mọi điều tồi tệ đều có thể xảy ra.
Thực tế cho thấy, khá nhiều kỹ thuật xâm nhập hệ thống mà không có quyền root được
thực hiện nhờ kỹ thuật này: kẻ phá hoại bằng cách nào đó tạo được một shell (ví dụ bash)
được quản lý bởi root, có thuộc tính SUID. Sau đó mọi truy xuất phá hoạt sẽ được thực
hiện qua shell này vì mọi lệnh thực hiện trong shell sẽ được thực hiện dưới quyền của
root.
Thuộc tính SGID cũng tương tự như thuộc tính SUID: các chương trình được thực hiện
với quyền nhóm là nhóm quản lý chương trình chứ không phải nhóm của người chạy
chương trình.
Như vậy, người quản trị sẽ phải thường xuyên kiểm tra xem trong hệ thống có những ứng
dụng nào có thuộc tính SUID hoặc SGID mà không được phép không?
Để tìm tất cả các file có thuộc tính SUID/SGID, sử dụng lệnh find như sau:
# find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls ưlg {} \;
9
Nếu phát hiện được một file có thuộc tính SUID/SGID một cách không cần thiết, có thể

loại bỏ các thuộc tính này bằng lệnh: # chmod a-s.
12.Tǎng tính bảo mật cho nhân (kernel) của Linux
Thực tế cho thấy, Linux không hẳn được thiết kế với các tính nǎng bảo mật thật chặt chẽ:
khá nhiều lỗ hổng có thể bị lợi dụng bởi những tin tặc thông thạo về hệ thống. Do đó,
việc sử dụng một hệ điều hành với nhân được củng cố là rất quan trọng: Một khi nhân -
phần cốt lõi nhất của hệ điều hành - được thiết kế tốt thì nguy cơ bị phá hoại sẽ giảm đi
rất nhiều
An toàn cho các giao dịch trên mạng.
Internet đem lại cho chúng ta nhiều thứ hữu ích nhưng đồng thời cũng đem đến
cho chúng ta những hiểm họa tiềm tàng như virus, worm, phần mềm gián điệp, phần
mềm đánh cắp password, thư rác hay các cuộc tấn công. Trên hệ thống mạng luôn tồn
tại những kẻ muốn đánh cắp thông tin cá nhân, dữ liệu hay phá hoại hệ thống của
bạn.Ngoài những mục đích tấn công cá nhân, những kẻ này còn coi đó là một cách để
kiếm sống. Chúng có thể đột nhập vào hệ thống mạng của bạn hoặc máy tính của bạn
để ăn cắp các thông tin nhạy cảm, tấn công các wedsite, ngăn chặn các kết nối, phá
hủy hoặc làm sai lệnh dữ liệu. Chúng ta không biết lúc nào các cuộc tấn công này sẽ
xảy ra vì vậy biện pháp tốt nhất chính là phòng ngừa chúng.
Có rất nhiều dịch vụ mạng truyền thống giao tiếp thông qua giao thức văn bản
không mã hoá, như TELNET, FTP, RLOGIN, HTTP, POP3. Trong các giao dịch
giữa người dùng với máy chủ, tất cả các thông tin dạng gói được truyền qua mạng
dưới hình thức văn bản không được mã hoá.Các gói tin này có thể dễ dàng bị chặn và
sao chép ở một điểm nào đó trên đường đi.Việc giải mã các gói tin này rất dễ dàng,
cho phép lấy được các thông tin như tên người dùng, mật khẩu và các thông tin quan
trọng khác. Việc sử dụng các giao dịch mạng được mã hoá khiến cho việc giải mã
thông tin trở nên khó hơn và giúp bạn giữ an toàn các thông tin quan trọng. Các kỹ
thuật thông dụng hiện nay là IPSec, SSL, TLS, SASL và PKI.
Quản trị từ xa là một tính năng hấp dẫn của các hệ thống UNIX.Người quản trị
mạng có thể dễ dàng truy nhập vào hệ thống từ bất kỳ nơi nào trên mạng thông qua
các giao thức thông dụng như telnet, rlogin. Một số công cụ quản trị từ xa được sử
10

dụng rộng rãi như linuxconf, webmin cũng dùng giao thức không mã hoá. Việc thay
thế tất cả các dịch vụ mạng dùng giao thức không mã hoá bằng giao thức có mã hoá
là rất khó. Tuy nhiên, bạn nên cung cấp việc truy cập các dịch vụ truyền thống như
HTTP/POP3 thông qua SSL, cũng như thay thế các dịch vụ telnet, rlogin bằng SSH.
 Nguyên tắc bảo vệ hệ thống mạng:
1. Hoạch định hệ thống bảo vệ mạng.
Trong môi trường mạng, phải có sự đảm rằng những dữ liệu có tính bí mật phải được
cất giữ riêng sao cho chỉ có người có thẩm quyền mới được phép truy cập chúng.Bảo
mật thông tin là việc làm quan trọng và việc bảo vệ hoạt động mạng cũng có tầm quan
trọng không kém.
Mạng máy tính cần được bảo vệ an toàn, tránh những hiểm họa do vô tình hay cố
ý. Mạng không nhất thiết phải được bảo vệ quá cẩn mật đến mức người dùng luôn gặp
khó khăn khi truy nhập mạng để thực hiện nhiệm vụ của mình.
Bốn hiểm họa chính đối với sự an ninh của mạng là:
- Truy nhập mạng bất hợp pháp
- Sự can thiệp bằng phương tiện điện tử
- Kẻ trộm
- Tai họa vô tình hoặc có chủ ý
• Mức độ bảo mật: Tùy thuộc vào dạng môi trường trong đó mạng đang hoạt động.
• Chính sách bảo mật: hệ thống mạng đòi hỏi một tập hợp những nguyên tắc, điều luật
và chính sách nhằm loại trừ mọi rủi ro. Giúp hướng dẫn vượt qua các thay đổi và
những tình huống không dự kiến trong quá trình phát triển mạng.
Sự đề phòng: đề phòng những truy cập bất hợp pháp.
Sự chứng thực: trước khi truy nhập mạng, bạn gõ đúng tên đăng nhập và password
hợp lệ.
• Đào tạo: Người dùng mạng được đào tạo chu đáo sẽ có ít khả năng vô ý phá hủy một
tài nguyên.
• An toàn cho thiết bị: Tùy thuộc ở quy mô công ty, độ bí mật dữ liệu, các tài nguyên
khả dụng. Trong môi trường mạng ngang hàng, có thể không có chính sách bảo vệ
phần cứng có tổ chức nào. Người dùng chịu trách nhiệm đảm bảo an toàn cho máy

tính và dữ liệu của riêng mình.
2. Mô hình bảo mật.
11
Hai mô hình bảo mật khác nhau đã phát triển giúp bảo vệ an toàn dữ liệu và tài
nguyên phần cứng:
• Bảo vệ tài nguyên dùng chung bằng mật mã: Gắn mật mã cho từng tài nguyên dùng
chung.
• Truy cập khi được sự cho phép: là chỉ định một số quyền nhất định trên cơ sở người
dùng, kiểm tra truy nhập tài nguyên dùng chung căn cứ vào CSDL user-access trên
máy server.
3. Nâng cao mức độ bảo mật.
• Kiểm soát: Theo dõi hoạt động trên mạng thông qua tài khoản người dùng, ghi lại
nhiều dạng biến cố chọn lọc vào sổ nhật kí bảo mật của server. Giúp nhận biết các
hoạt động bất hợp lệ hoặc không chủ định. Cung cấp các thông tin về cách dùng trong
tình huống có phòng ban nào đó thu phí sử dụng một số tài nguyên nhất định và cần
quyết định phí của những tài nguyên này theo cách thức nào đó.
• Máy tính không có ổ đĩa cứng và ổ đĩa mềm: Có thể thi hành mọi viêc như mày tính
thông thường ngoại trừ việc lưu trữ dữ liệu trên đĩa cứng hay đĩa mềm cục bộ, không
cần đĩa khởi động, có khả năng giao tiếp với server và đăng nhập nhờ vào một con
chip ROM khởi động đặc biệt được cài trên card mạng. Khi bật máy tính không đĩa,
chip ROM khởi động phát tín hiệu khởi động cho server biết rằng nó muốn khởi
động, server trả lời bằng cách tải phần mềm khởi động vào RAM của máy tính không
đĩa và tự động hiển thị màn hình đăng nhập. Khi đó máy tính được kết nối với mạng.
• Mã hóa dữ liệu: Người tẫm hóa thông tin sang dạng mật mã bằng một phương pháp
nào đó sao cho đảm bảo thông tin đó không thể nhận biết được nếu nơi nhận không
biết cách giải mật mã. Một người sử dụng hay một nhóm người có thể sử dụng thông
tin mà không sợ ảnh hưởng đến người sử dụng hay một nhóm người khác.
• Chống virus:
- Ngăn không cho virus hoạt động.
- Sửa chữa hư hại ở một mức độ nào đó

- Chặn đứng virus sau khi nó bộc phát
Ngăn chặn tình trạng truy cập bất hợp pháp là một trong những giải pháp hiệu nhiêm
nhất để tránh virus.Do biện pháp chủ yếu là phòng ngừa nên nhà quản trị mạng phải
đảm bảo sao cho mọi yếu tố cần thiết đều đã săn sàng:
- Mật mã để giảm khả năng truy cập bất hợp pháp
- Chỉ định các đặc quền thích hợp cho mọi người dùng
- Các profile để tổ chức môi trường mạng cho người dùng có thể lập cấu hình và duy trì
môi trường đăng nhập, bao gồm các kết nối mạng và những khoản mục chương trình
khi người dùng đăng nhập.
- Một chính sách quyết định có thể tải phần mềm nào.
 Kiến trúc bảo mật của hệ thống mạng.
Các mức an toàn thông tin trên mạng:
12
Hình 1: Mô hình các mức an toàn thông tin trên mạng
- Lớp bảo vệ trong cùng là quyền truy cập (Access Right) nhằm kiểm soát các tài
nguyên (thông tin) của mạng và quyền hạn (người dùng có thể làm gì trên tài nguyên
đó). Việc kiểm soát được thực hiện trên tất cả các partion, thư mục và tới tập tin.
- Lớp bảo vệ tiếp theo là hạn chế theo tài khoản truy cập gồm username và password
tương ứng (login/password). Đây là một phương pháp bảo vệ phổ biến vì nó khá đơn
giản, ít tốn kém và lại có hiệu quả khá cao. Người quản trị sẽ có trách nhiệm quản lý,
kiểm soát hoạt động của người sử dụng khác nhau tùy theo thời gian và không gian.
- Lớp thứ ba sử dụng các phương pháp mã hóa (Encryption).Dữ liệu sẽ được mã hóa
bằng một thuật toán nào đó để hạn chế việc dù lấy được dữ liệu nhưng tin tặc cũng
chưa chắc có khả năng đọc nó.
- Lớp thứ tư là lớp bảo vệ vật lý (Physical Protection) nghĩa là ta sẽ ngăn chặn các
quyền truy cập vật lý vào hệ thống.
- Lớp thứ năm là tường lửa (Firewall): Việc cài đặt các hệ thống firewall nhằm ngăn
chặn các thâm nhập trái phép, lọc các gói tin mà ta không muốn gửi đi hoặc nhận vào.
Hệ điều hành mã nguồn mở Linux được thiết kế là một hệ điều hành nối mạng và
sự phát triển mạnh mẽ của nó chỉ để tập trung vào sự an toàn. Hệ điều hành mã nguồn

mở cho phép người quản trị mạng và những người phát triển, những người dùng triền
miên theo dõi và kiểm soát những gì dễ bị tấn công. An toàn hay bảo mật không phải
là một sản phẩm, cũng không phải là một phần mềm mà nó là một cách nghĩ. Sự an
toàn có thể được khởi động và dùng như một dịch vụ. Tài liệu bảo mật là các tư liệu
mà những thành viên của tổ chức muốn bảo vệ. Sự an toàn mạng có vai trò quan trọng
hàng đầu. An toàn phải được đảm bảo từ những nhân tố bên ngoài hạt nhân, tại phần
cốt lõi của Linux server. Cơ chế bảo mật cần phải bao gồm cấu hình mạng của server,
chu vi ứng dụng của tổ chức mạng và thậm chí của những khách hàng truy cập mạng
từ xa.
Những mức an toàn thông tin trên mạng:
13
- Sự an toàn vật lý
- An toàn hệ thống
- An toàn mạng
- An toàn các ứng dụng
- Sự truy nhập từ xa và việc chấp nhận
• Sự an toàn vật lý.
Sự an toàn vật lý là cơ bản và giám sát được tốt khía cạnh an toàn của hệ điều
hành Linux. Sự an toàn vật lý bắt đầu với môi trường ví dụ như đối với các nhà cung
cấp dịch vụ hãm hại. Có nên khóa các khối dữ liệu lại?những người nào được chấp
nhận được vào trung tâm dữ liệu? Việc bảo vệ thích hợp là phải thực hiện lại khi
muốn xây dựng một cài đặt mới hay di chuyển dữ liệu đến một vị trí mới.
• An toàn hệ thống.
An toàn hệ thống bao gồm việc chọn phân phối hệ điều hành Linux, xây dựng kernel
hướng tới sự an toàn tài khoản người dùng, cho phép truy cập thư mục file, mã hóa
syslog và file system. Các tác vụ này được hoàn thành trước khi dịch vụ nối vào
internet.Việc chọn một phân phối nào thì tùy thuộc vào những nhu cầu như chính
sách được phác thảo trong cơ chế an toàn. Việc xây dựng một kernel sẵn có có hai lơi
thế:
- Những lựa chọn an toàn của nhân được xác định bởi người quản trị mạng và người

quản trị mạng biết cái gì được xác định vào bên trong kernel. Phần mềm nguồn mở
nói chung và hệ điều hành Linux nói riêng có những cải tiến để dễ dàng cho người sử
dụng và có những tiện ích dễ ứng dụng.
- Sự an toàn các tài khoản người dùng có vai trò to lớn, có những vùng được vô hiệu
hóa, những tài khoản không hoạt động, vô hiệu hóa việc truy cập đến NFS (Network
File System) lên root, hạn chế những đăng nhập vào môi trường điều khiển hệ thống.
Mã hóa file hệ thống sử dụng kỹ thuật mã hóa mà thường là phòng thủ cuối cùng cho
mạng. Có hai cách tiếp cận chung: hệ thống file mã hóa (CFS) và Practical Privacy
Disk Driver (PPDD). Hệ thống có thể được theo dõi và trong Linux, hệ thống
Logging được logged trong tiện ích syslog. Công cụ theo dõi bao gồm swatch và
logcheck. Swatch có công cụ thông báo thời gian thực, trong khi logcheck cung cấp
một công cụ mà phát sinh những báo cáo định kỳ. Kiểm soát password cũng có vai trò
sống còn trong việc an toàn, bảo mật hệ thống trong khi mối liên kết yếu nhất trong
việc an toàn mạng là người sử dụng và việc lựa chọn các mật khẩu.
• An toàn mạng.
An toàn mạng ở đây liên quan đến việc kết nối từ Linux server vào mạng. Cấu hình
dịch vụ mạng với sự an toàn ngày càng khó khăn cho những nhà quản trị mạng. Lệnh
netstat là một tiện ích mạnh cho phép người quản trị kiểm tra cấu hình mạng. Kiểm
tra mạng là điều cần thiết của an toàn mạng. Điều này đảm bảo rằng cơ chế an toàn đó
được thực hiện có hiệu quả trong việc hoàn thành những yêu cầu bảo mật. Cách tiếp
14
cận việc kiểm định mạng hiệu quả nhất sẽ có trong vai trò của người làm phiền. Có
những công cụ kiểm định cơ sở và host cơ sở. SATAN (Security Administrator’s Tool
for Analysing Networks), SAINT (Security Administrator’s Integrated Network Tool),
SARA (Security Auditor’s Research Assistant ) là những công cụ tốt để kiểm định cơ
bản. SATAN được công nhận đầu tiên năm 1995. SAINT mạnh hơn SATAN, trong
khi SARA là một modul package, tương tác với Nmap và Samba. Những cải tiến gần
đây nhất là là công cụ Nessus.Nessus là miễn phí, nguồn mở đầy đủ nổi bật, công cụ
kiểm toán vẫn được hỗ trợ cải tiến tích cực.Nessus đi vào 2 thành phần:
Client(nessus) và server( nesssus). Công cụ Nmap cho người quản trị giàu kinh

nghiệm.Mặt khác Nmap có sức mạnh, công cụ quét cho người có kinh nghiệm.Nó
được sử dụng tốt trong mạng LAN. TARA(Tiger Auditors Research Assistant)là một
ví dụ cho công cụ kiểm toán cơ sở host.Theo dõi mạng dưới một sự tấn công. Công cụ
để theo dõi đó là PortSentry và Ethereal. Port Sentry quét trong chế độ ngầm định.
Bảo mật mạng như một trò chơi của trí tuệ và máy đếm trí tuệ. Trong khi mạng kiểm
toán là một phần của mạng bình thường, mạng theo dõi cần phải được ưu tiên cao
hơn. Việc bảo mật bao gồm việc kiểm toán chính xác và cả việc có nên để như vậy
hay không. Portsentry là một ví dụ của công cụ theo dõi thời gian thực được thiết kế
để quét phát hiện ra hệ thống và có tính khả dụng cho những hồi đáp.
• Các ứng dụng an toàn.
Một vài chế độ chuẩn trong việc phân phối Linux hiện thời là những ứng dụng
đầy đủ mà có cấu trúc file phức tạp. Wed, file, mail server sử dụng những giao thức
phức tạp. An toàn có thể được thực hiện bởi các đặc tính bảo mật của việc các cơ quan
cho phép như Sendmail, Qmail và Postfix. Wed Server có thể cũng được giữ an toàn
bởi các modul cho phép: mod_auth, mod_dbm, mod_auth_db,… Việc cho phép Open
SSH hỗ trợ cho Apache sẽ cũng tương tác với wed server. Samba có thể làm an toàn
bởi việc đọc các thông số đang chạy. Bước đầu tiên sẽ được bảo vệ bởi công cụ quản
trị wed Samba với SLL nên các lệnh quản lý Samba được bảo vệ.
• Chu vi an toàn.
Cấp số tự nhiên của cách tiếp cận được sắp từng lớp đến sự an toàn máy tính ra
khỏi lớp từ lớp mạng đến lớp ứng dụng và từ đó đến lớp chu vi, đây là vùng được
quan tâm. Firewalls là thành phần chính của miền chu vi an toàn, là phần mềm mà
chức năng bắt buộc tổ chức bảo mật an toàn bởi bộ lọc, bảo mật, đẩy mạnh hay yêu
cầu nằm trong Linux server để kết nối đến cả mạng chính và Internet. Firewall có thể
được thực hiện nhiều cách dựa trên các lớp của mô hình OSI: lớp mạng, lớp giao vận
và ứng dụng. Có điểm tích cực và tiêu cực trong việc triển khai firewall tại các lớp
của mạng. Firewall mạng được biết như các packet-filtering gateway, nơi mà chúng
kiểm tra hững gói tin IP vào giao diện firewall và hoạt động phù hợp được giữ lại,
hoạt động bao gồm drop, cho phép hoặc log. Sự bất lợi là kiểu Firewall này không
15

khôn khéo. Firewall giao vận làm việc bởi khảo sát TCP hoặc UDP. Firewall yêu cầu
sự can thiệp của người dùng sửa đổi những thủ tục. Firewall ứng dụng làm cho các
quyết định truy cập ở tầng ứng dụng. Cho phép người quản trị Firewall cho yêu cầu
của mỗi loại ứng dụng.Các bất tiện trong firewall là người quản trị cần định hình triển
khai theo dõi và bảo trì quá trình firewall cho mỗi ứng dụng mà cần truy nhập điều
khiển. Luôn thực hiện tốt bảo mật bởi việc sử dụng kết hợp một firewall tại ba tầng để
tránh sự tổn thương. Firewall không chỉ cản trở những người làm phiền không hợp
pháp vào mạng nhưng phải cho phép người sử dụng truy nhập bên ngoài vào nguồn
tài nguyên, trong khi đó chấp nhận phê chuẩn nhất định những kết nối sau cho người
dùng.
• Firewall mạng
Có vài lợi thế trong việc sử dụng Linux như nền tảng firewall.Sự quản lý đồng bộ,
phần cứng, số người dùng, kiểm tra nền tảng, việc thực hiện, đánh giá giữa các lý do
tại sao. Sự lọc gói là lợi ích hiệu quả và cách bảo vệ trong phạm vi tránh xâm nhập.
Người sử dụng không cần xác nhận để sử dụng tin cậy những dịch vụ vùng bên ngoài.
Những giải pháp cho việc lọc gói trong Linux bao gồm Ipchains và Ipfwadm.Tiện ích
của việc lọc gói tin được sử dụng trong nhân từ phiên bản 1.2.1 về trước.Phiên bản
cuối cùng của Ipfwadm vào tháng 7/1996, sau đó Ipchains thay thế. Những địa chỉ
Ipchains là những thiếu sót của Ipfwadm như đếm 32 bit, không có khả năng giải
quyết cấu thành địa chỉ IP,… Ipchains chiến thắng các giới hạn đó bởi việc tận dụng
lợi ích của ba kênh riêng biệt hay những quy tắc nối tiếp để lọc. Ba kênh đó là
INPUT, OUTPUT và FORWARD.
 Input chain: Chain này áp dụng cho tất cả lưu lượng mạng đích cho firewall.Ví
dụ nếu chúng ta muốn cho admin điều khiển firewall của chúng ta thông qua phương
thức remote, chúng ta sẽ cấu hình một luật cho input chain để cho phép mọi thứ lưu
lượng mạng mà công cụ của admin sử dụng.
 Output chain: áp dụng cho mọi lưu lượng mạng đi ra khỏi firewall. Ví dụ nếu
firewall muốn liên lạc DNS server cho name lookups, chúng ta cần cấu hình output
chain để cho phép lưu thông này.
 Forward chain: áp dụng cho tất cả lưu lượng mạng mà Linux firewall quản lý

cho các máy tính khác.Ví dụ như nếu firewall của chúng ta lưu thông mạng từ các
máy tính clients ra ngoài mạng Internet, chúng ta phải cấu hình the forward chain để
cho phép lưu thông này.
Hiện nay có những thiết kế firewall bắt được hầu hết các cấu trúc mạng phổ
biến, báo hiệu đơn giản theo yêu cầu kết nối tới những nơi rất phức tạp như khu vực
được phi quân sự hóa (DMZ).
16
Firewall đối với hệ điều hành mã mở
I. Tầm quan trọng của Firewall trong hệ điều hành mã nguồn mở
An toàn và bảo mật mà 1 vấn đề sống còn của hệ thông mạng máy tính sữ dụng hệ
điều hành mã nguồn mở và Firewall là 1 thành phần tất yếu trong việc đảm bảo an ninh
mạng nội bộ trước nhưng nguy cơ từ bên ngoài( từ internet và các mạng khác).
Trong thực thế không có 1 giải pháp nào để bảo vệ an toàn cho mạng máy tính nội bộ
một cách tuyệt đối,vì vậy Người ta thường kết hợp nhiều mức bảo vệ khcas nhau tạo
thành lớp “rào chắn” đối với các hợt động xâm phạm thông tin và tài nguyên nội bộ.
Việc bảo vệ thông tin tren mạng chủ yếu là bảo vệ thông tin được lưu trữ trong máy tính,
đặc là trong các server mạng.
Lớp Firewall dựa trên mã nguồn mở có những ưu điểm vượt trội hơn những lớp khác
là:
+) Trước tiên Firewall là một dạng FOSS nên nên có những ưu thế như mã mở, cộng
đồng người sử dụng lớn nên bạn hoàn toàn có thể nhận được sự một cách dễ dàng và phát
triển liên tục.
+) Dựa trên nền tảng hệ điều hành *nix.Ưu điểm của các hệ điều hành này so với các hệ
điều hành khác đã được chứng minh qua thời gian, hiệu quả và tính bảo mật của nó.
+) chi phí để trả cho Firewall trong hệ điều hành mã nguồn mở gần như bằng không ,
người dùng có thể download trực tiếp trên trang chủ và sử dụng và người dùng có thể trả
tiền để nhận được sự giúp đở tốt hơn từ nhà sản xuất. Ví dụ có thể dùng 1 số các sản
phẩm Firewall thương mại thích hợp cho hệ dieduf hành mã nguonf mở như :Check Point
FireWall-1, Phoenix Adaptive FireWall, Gateway Guardian, XSentry FireWall, Raptor…
hay rất nhiều các bản miển phí như T.Rex Firewall, Dante, SINUS TÍ FireWall Toolkit,

….
+) Đáp ứng được các công nghệ tiên tiến như lọc gói theo tạng thái, proxy, ngoài ra cnf
có thể kết hợp với nhiều chức năng khác như VPN, DHCP,…
II. Firewall
17
1. khái niệm về firewall:
• Firewalllà 1 rào chắn được cá nhân hay tổ chức, doanh nghiệp, cơ quan nhà
nước tạo ra nhằm ngăn chặn người dung internet truy cập vào các thông tin không
mong muốn hoặc ngăn chặn người dung từ bên ngoài truy cập vào cac thông tin
bảo mật nằm trong mạng nội bộ
• firewall là 1 phần mềm hoặc 1 phần cứng được chạy trên máy chủ, hoặc là sự kết
hợp cả 2 . Được thiết kế nhằm mục đích cho phép hoặc từ chói sự truy cập qua
mạng dựa trên 1 số quy tắc; và nó thường được dung để bảo vệ mạng khỏi những
truy cập trái phép từ bên ngoài củng như từ trong nội bộ mạng ra ngoài và đồng
thời firewall củng cho phép các truyền thong hợp pháp đi qua
2. Nhiệm vụ của Firewall trong hệ điều hành mã nguồn mở :
+) Bảo vệ vạng tin tưởng (mạng nội bộ ) với các mạng không tin tưởng (thường là từ
internet)
+) Ngăn chặn những sự truy cập bất hợp pháp;
+) Kiểm soát thông tin trao đổi từ trong ra và từ internet vào hệ thống cục bộ;
+) là bộ phận trung gian Ghi nhận và theo dõi thông tin mạng từ internet và intranet
*) Tuy nhiên Firewall củng chỉ là giải pháp bảo vệ lớp ngoài nên nó không thể làm
được tất cả mọi thứ được.một số điểm mà Firewall không thể làm được như
+) Firewall không đủ thông minh như con người để đọ hiểu các thông tin và phân tích
nó tốt hay xấu.Nó chỉ có thể ngăn chặn thông tin khi đã xác định các thông số.
+)Firewall không thể ngăn chặn một cuộc tấn công nếu nhu cuộc tấn công đó không
đi qua nó. Nói chung nó sẽ không thể ngăn chặn sự dò rỉ thông tin khi mà dữ liệu bị
sao chép một cách vật lý.
+)Firewall củng không thể kiêm luôn nhiệm vụ quét virus trên dữ liệu do tốc độ xử lý,
sự xuất hiện lien tục của các loại virus và những cách mã hóa dữ liệu để che dấu virus

nhằm qua mặt Firewall
3. Các loại Firewall và cơ chế hoạt động
• Firewall gồm có 2 loại :
a; Firewall cứng:
+ là nhưng thiết bị firewall chuyên dụng của hãng Cisco hoặc Juniper, hay
những Firewall được tích hợp sẳn trên router.
+ Không linh hoạt như Firewall mềm (khó thêm quy tắc, chức năng như Firewall
mềm).
18
+Firewall cứng hoạt động ở tầng thấp hơn Firewall mềm( tầng Network và tầng
Transport trong mô hình OSI).
+Firewall cứng không thể kiểm tra được nội dung gói tin.
b) Firewall mềm:
+Là những chương trình, hệ điều hành có tích hợp sẵn chức năng Firewall
được cài đặt trên Server.
+Có tính linh hoạt cao: có thể thêm, bớt các quy tắc, các chức năng .
+Firewall mềm hoạt đọng ở tấng cao hơn Firewall cứng( Tầng ứng dụng
trong mô hình OSI).
+Firewall có thể kiểm tra được nội dung của gói tin( thong qua các từ khóa).
• Cơ chế hoạt động của Firewall:
Firewall gồm 3 thành phần là: Bộ lọc gói( Packet-Filter), cổng ứng dụng(Application-
level Gateway/Proxy server), cổng vòng(Circuite level Gateway).
*Bộ lọc gói(Packet-Filter)
Khi nói đến việc lưu thông dữ liệu giữa các mạng với nhau thông qua Firewall thì
điều đó có nghĩa rằng Firewall hoạt động chặt chẽ với giao thức TCI/IP( giao thức
phổ biết trong hệ điều hành linux) . Vì giao thức này làm việc theo thuật toán chia
nhỏ các dữ liệu nhận từ các ứng dụng trên mạng, hay nói chính xác hơn lafcacs
dịch vụ chạy trên các giao thức (telnet, SMTP, DNS, SMNP,NFS…) thành gói dữ
liệu (data packets) rồi gán cho các packet này những địa chỉ có thể nhận dạng, tái
lập lại ở đích cần gửi đến, do đó các loại Firewall cửng lien quan rất nhiều đến các

Packet và những con số địa chỉ của chúng.
+) Bộ lọc gói cho phép hay từ chối mỗi Packet mà nố nhận được.Nó kiểm tra
toan bộ đoạn dữ liệu để quyết định xem đoạn dữ liệu đó có thõa mản một trong
số các luật lệ của lọc gói hay không. Các luật lệ lọc này là dựa trên các thông
tin ở đầu mỗi Packet(Packet Header). Dùng để cho phép truyền các Packet đó
trên mạng đó là:
o Địa chỉ IP nơi xuất phát( IP Source address)
o ĐỊa chỉ IP nơi nhận ( IP Destination address)
o Những thủ tục truyền tin( TCP, UDP, ICMP, IP tunnel)
o Cổng TCP/UDP nơi xuất phát.
o Cổng TCP/UDP nơi nhận.
o Dạng thông tin ICMP.
o Giao diện Packet đến
o Giao diện Packet đi
19
Nếu luật lệ lọc gói được thõa mản thì Packet được chuyển qua Firewall.nếu không Packet
sẽ bị bỏ đi. Nhờ vậy mà Firewall có thể ngăn cản được các kết nối vào các máy chủ hoặc
mạng nào đó được xác định, hoặc khoá việc truy cập vào hệ thống mạng nội bộ từ những
địa chỉ không cho phép. Hơn nữa, việc kiểm soát các cổng làm cho Firewall có khả năng
chỉ cho phép một số loại kết nối nhất định vào các loại máy chủ nào đó, hoặc chỉ có
những dịch vụ nào đó (Telnet, SMTP, FTP ) được phép mới chạy được trên hệ thống
mạng cục bộ.
+) Ưu điểm của bộ lọc:
Đa số các hệ thống Firewall đều sử dụng bộ lọc gói.Một trong những ưu điểm của
phương pháp dùng bộ lọc gói là chi phí thấp vì cơ chế lọc gói đã được bao gồm trong
mỗi phần mềm Router.Ngoài ra, bộ lọc gói là trong suốt đối với người sử dụng và các
ứng dụng, vì vậy nó không yêu cầu sự huấn luyện đặc biệt nào cả.
+) Hạn chế của bộ lọc:
Việc định nghĩa các chế độ lọc gói là một việc khá phức tạp; nó đòi hỏi người quản
trị mạng cần có hiểu biết chi tiết về các dịch vụ Internet, các dạng Packet Header, và

các giá trị cụ thể mà họ có thể nhận trên mỗi trường. Khi đòi hỏi vể sự lọc càng lớn,
các luật lệ về lọc càng trở nên dài và phức tạp, rất khó để quản lý và điều khiển.
Do làm việc dựa trên Header của các Packet, rõ ràng là bộ lọc gói không kiểm soát
được nội dung thông tin của Packet. Các Packet chuyển qua vẫn có thể mang theo
những hành động với ý đồ ăn cắp thông tin hay phá hoại của kẻ xấu
+) Lọc gói dữ liệu (Packet Filtering). Đây là 1 chức năng cơ bản của một Firewall, , nó
là một kỹ thuật an ninh mạng hoạt động ở tầng mạng, bằng cách điều khiển dữ liệu
vào hoặc ra một mạng máy tính. Packet Filtering sẽ định tuyến một cách có chọn lọc
các gói tin tuỳ thuộc theo chính sách an ninh do người quản trị đặt ra. Lọc gói thông
thường có tốc độ rất cao bởi nó chỉ kiểm tra phần header của các gói tin mà không
kiểm tra phần dữ liệu trong đó.Vì kĩ thuật gói thườg có tốc độ nhanh, mềm dẻo và
trong suốt với người dùng nên ngày nay hầu hết các router đều có trang bị khả năng
lọc gói. Một router sử dụng bộ lọc gói được gọi là screening router
Trên thực tế thì các Server hoạt động cho các dịch vụ Internet thường tập trung
vào một cổng nào đó, do vậy để đơn giản ta chỉ cần cấu hình tập luật lọc gói tin của
router theo số hiệu cổng tương ứng là có thể ngăn chặn được các kết nối. Ví dụ với
server HTTP : cổng mặc định là 80, với server FTP : cổng 23 …
Do vậy với Screening router thì ngoài chức năng như một router bình thường là
dẫn đường cho các gói tin nó còn có khả năng lọc các gói tin đi qua nó. Screening router
20
sẽ đọc gói tin một cách cẩn thận hơn từ đó đưa ra quyết định cho phép hay không cho
phép gói tin tới đích. Việc cho phép hay không cho phép các gói tin đi qua phụ thuộc vào
các luật lọc gói mà screening router được cấu hình.
Từ đó ta có các cách thực hiện chức năng lọc gói : Lọc gói dựa vào địa chỉ, lọc gói
dựa vào loại dịch vụ hay cổng, lọc gói theo cả địa chỉ và cổng
Lọc gói theo địa chỉ:
Là cách đơn giản nhất, lọc theo cách này giúp chúng ta điều hướng các gói tin
dựa theo địa chỉ nguồn hoặc đích mà không cần biết các gói tin này thuôc giao thức nào.
Ta thấy ngay ở đây các rủi ro với cách lọc gói dựa theo địa chỉ :là việc kẻ tấn công
sử dụng địa chỉ IP giả mạo để vượt qua module lọc gói và truy cập các máy trong mạng

nội bộ cần bảo vệ. Có hai kiểu tấn công dựa trên việc giả mạo địa chỉ IP đó là source
address và man in the middle. Cách giải quyết vấn đề này là sử dụng phương pháp xác
thực người dùng đối với các gói tin.
Lọc gói dựa theo dịch vụ
Hầu hết các ứng dụng trên mạng TCP/IP hoạt động trên một Socket bao gồm địa
chỉ IP và một số hiệu cổng nào đó.Do vậy việc lọc các gói tin dựa trên dịch vụ cũng chính
là việc lọc các gói tin dựa trên số hiệu cổng. Ví dụ như các ứng dụng Web theo giao thức
HTTP thường hoạt động trên cổng 80, dịch vụ Telnet hoạt động trên cổng 23,… Việc lọc
gói có thể dựa vào địa chỉ cổng nguồn hay địa chỉ cổng đích hoặc cả hai.
Các rủi ro xảy ra đối với việc lọc gói dựa trên số hiệu cổng đó là : rất nhiều các ứng
dụng theo mô hình server/client hoạt động với số hiệu cổng ngẫunnhiên trong
khoảng từ 1023 – 65535. Khi đó việc thiết lập các luật theo cách này là rất khó khăn
và có thể để cho các gói tin nguy hiểm đi qua mà chặn lại các gói tin cần thiết.
21
Các hoạt động của bộ lọc gói
Sau khi thực hiện kiểm tra một gói tin, Packet Filtering có thể thực hiện một trong các
công việc sau :
- Cho phép gói tin đi qua: nếu gói tin thoả mãn các điều kiện trong cấu hình của bộ
lọc gói, gói tin sẽ được chuyển tiếp tới đích của nó
- Loại bỏ gói tin : nếu gói tin không thoả mãn các điều kiện trong cấu hình của
Packet Filtering thì gói tin sẽ bị loại bỏ
- Ghi nhật ký các hoạt động
Ta không cần thiết phải ghi lại tất cả các gói tin được cho phép đi qua mà chỉ cần ghi lại
một số hoạt động của một số gói tin loại này. Ví dụ ghi lại các gói tin bắt đầu của một kết
nối TCP để có thể theo dõi được các kết nối TCP đi vào và đi ra khỏi mạng cần boả vệ.
Đặc biệt là ghi lại các gói tin bị loại bỏ , ta cần theo dõi các gói tin nào đang cố gắng đi
qua trong khi nó bị cấm.
Ưu, nhược điểm của bộ lọc gói
a. Ưu điểm
- Trong suốt

- Có thể lọc bất cứ dịch vụ nào dùng các giao thức mà Firewall hỗ trợ
- Chỉ cần một Screening Router là có thể bảo vệ cả mạng : Đây là một ưu điểm
chính của Packet Filtering vì nó là đơn lẻ, không phải thay đổi các host trong
mạng bảo vệ khi thay đổi qui mô của mạng.
- Không như Proxy nó không yêu cầu phải học cách sử dụng
b. Nhược điểm
- Cần phải hiểu rõ mạng được bảo vệ và các giao thức được sử dụng trên mạng
- Không có sự xác thực người sử dụng, việc lọc gói tin chỉ dựa trên địa chỉ mạng
của hệ thống phần cứng
- Không che giấu kiến trúc bên trong của mạng cần bảo vệ
- Không bảo vệ chống lại các yếu điểm của các dịch vụ không lọc
- Với giao thức DHCP thì kết quả lọc sẽ không chuẩn xác
- Một số giao thức không phù hợp với bộ lọc gói.
22
* Cổng ứng dụng (Application-Level Gateway )
Nguyên lý hoạt động
Đây là một loại Firewall được thiết kế để tăng cường chức năng kiểm soát các loại dịch
vụ, giao thức được cho phép truy cập vào hệ thống mạng. Cơ chế hoạt động của nó dựa
trên cách thức gọi là Proxy Service (dịch vụ đại diện). Proxy Tìm hiểu và xây dựng hệ
thống Firewall mã nguồn mở sử dụng Smoothwall 9Service là các bộ code đặc biệt cài
đặt trên cổng ra (gateway) cho từng ứng dụng. Nếu người quản trị mạng không cài đặt
Proxy code cho một ứng dụng nào đó, dịch vụ tương ứng sẽ không được cung cấp và do
đó không thể chuyển thông tin qua Firewall. Ngoài ra, Proxy code có thể được định cấu
hình để hỗ trợ chỉ một số đặc điểm trong ứng dụng mà ngưòi quản trị mạng cho là chấp
nhận được trong khi từ chối những đặc điểm khác.
Một cổng ứng dụng thường được coi như là một pháo đài (Bastion Host), bởi
vì nó được thiết kế đặt biệt để chống lại sự tấn công từ bên ngoài. Những biện pháp
đảm bảo an ninh của một Bastion Host là:
• Bastion Host luôn chạy các version an toàn (secure version) của các phần mềm hệ
thống (Operating system). Các version an toàn này được thiết kế chuyên cho mục đích

chống lại sự tấn công vào hệ điều hành (Operating System), cũng như là đảm bảo sự tích
hợp Firewall.
• Chỉ những dịch vụ mà người quản trị mạng cho là cần thiết mới được cài đặt trên
Bastion Host, đơn giản chỉ vì nếu một dịch vụ không được cài đặt, nó không thể bị tấn
công.Thông thường, chỉ một số giới hạn các ứng dụng cho các dịch vụ Telnet, DNS, FTP,
SMTP và xác thực user là được cài đặt trên Bastion Host.
• Bastion Host có thể yêu cầu nhiều mức độ xác thực khác nhau, Ví Dụ như user
password hay smart card.Mỗi Proxy được đặt cấu hình để cho phép truy nhập chỉ một
sồ các máy chủ nhất định.Điều này có nghĩa rằng bộ lệnh và đặc điểm thiết lập cho mỗi
Proxy chỉ đúng với một số máy chủ trên toàn hệ thống.Mỗi Proxy duy trì một quyển
nhật ký ghi chép lại toàn bộ chi tiết của giao thông qua nó, mỗi sự kết nối, khoảng thời
gian kết nối. Nhật ký này rất có ích trong việc tìm theo dấu vết hay ngăn chặn kẻ phá
hoại.Mỗi Proxy đều độc lập với các proxies khác trên Bastion Host. Điều này cho
phép dễ dàng quá trình cài đặt một Proxy mới, hay tháo gỡ môt Proxy đang có vấn
đề.
Ưu điểm
Tìm hiểu và xây dựng hệ thống Firewall mã nguồn mở sử dụng Smoothwall 10Cho phép
người quản trị mạng hoàn toàn điều khiển được từng dịch vụ trên mạng, bởi vì ứng
dụng Proxy hạn chế bộ lệnh và quyết định những máy chủ nào có thể truy nhậpđược bởi
23
các dịch vụCho phép người quản trị mạng hoàn toàn điều khiển được những dịch vụ
nào cho phép, bởi vì sự vắng mặt của các Proxy cho các dịch vụ tương ứng có nghĩa
là các dịch vụ ấy bị khoáCổng ứng dụng cho phép kiểm tra độ xác thực rất tốt, và nó có
nhật ký ghi chép lại thông tin về truy nhập hệ thốngLuật lệ filltering (lọc) cho cổng ứng
dụng là dễ dàng cấu hình và kiểm tra hơn
so với bộ lọc gói
Hạn chế
Yêu cầu các users biến đổi (modify) thao tác, hoặc modify phần mềm đã cài đặt trên
máy Client cho truy nhập vào các dịch vụ Proxy. Ví Dụ, Telnet truy nhập qua cổng ứng
dụng đòi hỏi hai bước để nối với máy chủ chứ không phải là một bước thôi. Tuy nhiên,

cũng đã có một số phần mềm Client cho phép ứng dụng trên cổng ứng dụng là trong
suốt, bằng cách cho phép user chỉ ra máy đích chứ không phải cổng ứng dụng trên lệnh
Telnet.
*Cổng vòng (Circuit-Level Gateway)
Cổng vòng là một chức năng đặc biệt có thể thực hiện đươc bởi một cổng
ứng dụng.Cổng vòng đơn giản chỉ chuyển tiếp (relay) các kết nối TCP mà không
thực hiện bất kỳ một hành động xử lý hay lọc gói nào Cổng vòng đơn giản chuyển tiếp
kết nối Telnet qua Firewall mà không thực hiện một sự Tìm hiểu và xây dựng hệ thống
Firewall mã nguồn mở sử dụng Smoothwall 1kiểm tra, lọc hay điều khiển các thủ tục
Telnet nào.Cổng vòng làm việc như một sợi dây, sao chép các byte giữa kết nối bên
trong (inside connection) và các kết nối bên ngoài (outside connection). Tuy nhiên, vì sự
kết nối này xuất hiện từ hệ thống Firewall, nó che dấu thông tin về mạng nội bộCổng
vòng thường được sử dụng cho những kết nối ra ngoài, nơi mà các nhà quản trị mạng
thật sự tin tưởng những người dùng bên trong. Ưu điểm lớn nhất là một Bastion Host có
thể được cấu hình như là một hỗn hợp cung cấp cổng ứng dụng cho những kết nối đến,
và cổng vòng cho các kết nối đi. Điều này làm cho hệ thống bức tường lửa dễ dàng sử
dụng cho những người trong mạng nội bộ muốn trực tiếp truy nhập tới các dịch vụ
Internet, trong khi vẫn cung cấp chức năng bức tường lửa để bảo vệ mạng nội bộ từ
những sự tấn công bên ngoài
III. Mô hình của Firewall.
• Dual-Homed Host
24
Dual-Homed Host là là hình thức xuất hiện đầu tiên để bảo vệ mạng nội bộ, là một máy
tính có 2 giao tiếp mạng : một nối với mạng cục bộ (intranet) và 1 nối với mạng ngoài
(internet)
Hệ điều hành của Dual–homed Host được cấu hình để chức năng chuyển các
gói tin (Packet forwarding) giữa hai giao tiếp mạng này không hoạt động.Để làm
việc được với một máy trên Internet, người dùng ở mạng cục bộ trước hết phải login
vào Dual–homed Host, và từ đó bắt đầu phiên làm việc.
+) Ưu điểm của Dual–homed Host:

• Cài đặt dễ dàng, không yêu cầu phần cứng hoặc phần mềm đặc biệt.
• Dual–homed Host chỉ yêu cầu cấm khả năng chuyển các gói tin, do vậy, thông thường
trên các hệ Unix, chỉ cần cấu hình và dịch lại nhân (Kernel) của hệ điều hành là đủ.
+) Nhược điểm của Dual–homed Host:
• Không đáp ứng được những yêu cầu bảo mật ngày càng phức tạp, cũng như những hệ
phần mềm mới được tung ra thị trường.
• Không có khả năng chống đỡ những cuộc tấn công nhằm vào chính bản thân
nó, và khi Dual–homed Host đó bị đột nhập, nó sẽ trở thành đầu cầu lý tưởng
để tấn công vào mạng nội bộ.
Kiến trúc Screened Host
Kiến trúc này kết hợp 2 kỹ thuật đó là Packet Filtering và Proxy Services. Packet Filtering:
Lọc một số loại dịch vụ mà hệ thống muốn cung cấp sử dụng Proxy Server, bắt người sử
dụng nếu muốn dùng dịch vụ thì phải kết nối đến Proxy Server mà không được bỏ qua
Proxy Server để nối trực tiếp với mạng bên trong/bên ngoài (internal/external network),
đồng thời có thể cho phép Bastion Host mở một số kết nối với internal/external host.
+) Proxy Service: Bastion Host sẽ chứa các Proxy Server để phục vụ một số dịch vụ hệ
thống cung cấp cho người sử dụng qua Proxy Server.Tìm hiểu và xây dựng hệ thống
Firewall mã nguồn mở sử dụng Smoothwall
Ưu, khuyết điểm của kiến trúc Screened Host
Kiến trúc screened host hay hơn kiến trúc dual–homed host ở một số điểm cụ
thể sau:
• Dual–Homed Host: Khó có thể bảo vệ tốt vì máy này cùng lúc cung cấp nhiều dịch vụ,
vi phạm qui tắc căn bản là mỗi phần tử hay thành phần nên giữ ít chức năng nếu có thể
được (mỗi phần tử nên giữ ít chức năng càng tốt), cũng như tốc độ đáp ứng khó có thể
cao vì cùng lúc đảm nhận nhiều chức năng.
25

×