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
Đượ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.
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.
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
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ể
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
- 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
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
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ý
….
+) Đá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
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à
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
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à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