Tìm hiểu về tường lửa (firewall)
trang này đã được đọc
lần
Tường lửa là gì?
Một cách vắn tắt, tường lửa (firewall) là hệ thống ngăn chặn việc truy nhập trái
phép từ bên ngoài vào mạng. Tường lửa thực hiện việc lọc bỏ những địa chỉ không
hợp lệ dựa theo các quy tắc hay chỉ tiêu định trước.
Tường lửa có thể là hệ thống phần cứng, phần mềm hoặc kết hợp cả hai. Nếu là
phần cứng, nó chỉ bao gồm duy nhất bộ định tuyến (router). Bộ định tuyến có các
tính năng bảo mật cao cấp, trong đó có khả năng kiểm soát địa chỉ IP (IP Address
ố là sơ đồ địa chỉ hoá để định nghĩa các trạm (host) trong liên mạng). Quy trình
kiểm soát cho phép bạn định ra những địa chỉ IP có thể kết nối với mạng của bạn
và ngược lại. Tính chất chung của các tường lửa là phân biệt địa chỉ IP hay từ
chối việc truy nhập không hợp pháp căn cứ trên địa chỉ nguồn.
Các dạng tường lửa
Mỗi dạng tường lửa khác nhau có những thuận lợi và hạn chế riêng. Dạng phổ biến
nhất là tường lửa mức mạng (Network-level firewall).
Loại tường lửa này thường dựa trên bộ định tuyến, vì vậy các quy tắc quy định
tính hợp pháp cho việc truy nhập được thiết lập ngay trên bộ định tuyến. Mô hình
tường lửa này sử dụng kỹ thuật lọc gói tin (packet-filtering technique) ố đó là
tiến trình kiểm soát các gói tin qua bộ định tuyến.
Khi hoạt động, tường lửa sẽ dựa trên bộ định tuyến mà kiểm tra địa chỉ nguồn
(source address) hay địa chỉ xuất phát của gói tin. Sau khi nhận diện xong, mỗi
địa chỉ nguồn IP sẽ được kiểm tra theo các quy tắc do người quản trị mạng định
trước.
Tường lửa dựa trên bộ định tuyến làm việc rất nhanh do nó chỉ kiểm tra lướt trên
các địa chỉ nguồn mà không hề có yêu cầu thực sự nào đối với bộ định tuyến,
không tốn thời gian xử lý những địa chỉ sai hay không hợp lệ. Tuy nhiên, bạn
phải trả giá: ngoại trừ những điều khiển chống truy nhập, các gói tin mang địa
chỉ giả mạo vẫn có thể thâm nhập ở một mức nào đó trên máy chủ của bạn.
Một số kỹ thuật lọc gói tin có thể được sử dụng kết hợp với tường lửa để khắc
phục nhược điểm nói trên. Địa chỉ IP không phải là thành phần duy nhất của gói
tin có thể mắc bẫy bộ định tuyến. Người quản trị nên áp dụng đồng thời các quy
tắc, sử dụng thông tin định danh kèm theo gói tin như thời gian, giao thức,
cổng... để tăng cường điều kiện lọc. Tuy nhiên, sự yếu kém trong kỹ thuật lọc
gói tin của tường lửa dựa trên bộ định tuyến không chỉ có vậy.
Một số dịch vụ gọi thủ tục từ xa (Remote Procedure Call - RPC) rất khó lọc một
cách hiệu quả do các server liên kết phụ thuộc vào các cổng được gán ngẫu nhiên
khi khởi động hệ thống. Dịch vụ gọi là ánh xạ cổng (portmapper) sẽ ánh xạ các
lời gọi tới dịch vụ RPC thành số dịch vụ gán sẵn, tuy nhiên, do không có sự
tương ứng giữa số dịch vụ với bộ định tuyến lọc gói tin, nên bộ định tuyến không
nhận biết được dịch vụ nào dùng cổng nào, vì thế nó không thể ngăn chặn hoàn
toàn các dịch vụ này, trừ khi bộ định tuyến ngăn toàn bộ các gói tin UDP (các
dịch vụ RPC chủ yếu sử dụng giao thức UDP ố User Datagram Protocol). Việc ngăn
chặn tất cả các gói tin UDP cũng sẽ ngăn luôn cả các dịch vụ cần thiết, ví dụ
như DNS (Domain Name Service ố dịch vụ đặt tên vùng). Vì thế, dẫn đến tình trạng
tiến thoái lưỡng nan.
Tường lửa dựa trên ứng dụng/cửa khẩu ứng
dụng
Một dạng phổ biến khác là tường lửa dựa trên ứng dụng (application-proxy). Loại
này hoạt động hơi khác với tường lửa dựa trên bộ định tuyến lọc gói tin. Cửa
khẩu ứng dụng (application gateway) dựa trên cơ sở phần mềm. Khi một người dùng
không xác định kết nối từ xa vào mạng chạy cửa khẩu ứng dụng, cửa khẩu sẽ ngăn
chặn kết nối từ xa này. Thay vì nối thông, cửa khẩu sẽ kiểm tra các thành phần
của kết nối theo những quy tắc định trước. Nếu thoả mãn các quy tắc, cửa khẩu sẽ
tạo cầu nối (bridge) giữa trạm nguồn và trạm đích.
Cầu nối đóng vai trò trung gian giữa hai giao thức. Ví dụ, trong một mô hình cửa
khẩu đặc trưng, gói tin theo giao thức IP không được chuyển tiếp tới mạng cục
bộ, lúc đó sẽ hình thành quá trình dịch mà cửa khẩu đóng vai trò bộ phiên dịch.
Ưu điểm của tường lửa cửa khẩu ứng dụng là không phải chuyển tiếp IP. Quan trọng
hơn, các điều khiển thực hiện ngay trên kết nối. Sau cùng, mỗi công cụ đều cung
cấp những tính năng thuận tiện cho việc truy nhập mạng. Do sự lưu chuyển của các
gói tin đều được chấp nhận, xem xét, dịch và chuyển lại nên tường lửa loại này
bị hạn chế về tốc độ. Quá trình chuyển tiếp IP diễn ra khi một server nhận được
tín hiệu từ bên ngoài yêu cầu chuyển tiếp thông tin theo định dạng IP vào mạng
nội bộ. Việc cho phép chuyển tiếp IP là lỗi không tránh khỏi, khi đó, cracker
(kẻ bẻ khoá) có thể thâm nhập vào trạm làm việc trên mạng của bạn.
Hạn chế khác của mô hình tường lửa này là mỗi ứng dụng bảo mật (proxy
application) phải được tạo ra cho từng dịch vụ mạng. Như vậy một ứng dụng dùng
cho Telnet, ứng dụng khác dùng cho HTTP, v.v..
Do không thông qua quá trình chuyển dịch IP nên gói tin IP từ địa chỉ không xác
định sẽ không thể tới máy tính trong mạng của bạn, do đó hệ thống cửa khẩu ứng
dụng có độ bảo mật cao hơn.
Các ý niệm chung về tường lửa
Một trong những ý tưởng chính của tường lửa là che chắn cho mạng của bạn khỏi
tầm nhìn của những người dùng bên ngoài không được phép kết nối, hay chí ít cũng
không cho phép họ rớ tới mạng. Quá trình này thực thi các chỉ tiêu lọc bỏ do
người quản trị ấn định.
Trên lý thuyết, tường lửa là phương pháp bảo mật an toàn nhất khi mạng của bạn
có kết nối Internet. Tuy nhiên, vẫn tồn tại các vấn đề xung quanh môi trường bảo
mật này. Nếu tường lửa được cấu hình quá chặt chẽ, tiến trình làm việc của mạng
sẽ bị ảnh hưởng, đặc biệt trong môi trường người dùng phụ thuộc hoàn toàn vào
ứng dụng phân tán. Do tường lửa thực thi từng chính sách bảo mật chặt chẽ nên nó
có thể bị sa lầy. Tóm lại, cơ chế bảo mật càng chặt chẽ bao nhiêu, thì tính năng
càng bị hạn chế bấy nhiêu.
Một vấn đề khác của tường lửa tương tự như việc xếp trứng vào rổ. Do là rào chắn
chống kết nối bất hợp pháp nên một khe hở cũng có thể dễ dàng phá huỷ mạng của
bạn. Tường lửa duy trì môi trường bảo mật, trong đó nó đóng vai trò điều khiển
truy nhập và thực thi sơ đồ bảo mật. Tường lửa thường được mô tả như cửa ngõ của
mạng, nơi xác nhận quyền truy nhập. Tuy nhiên điều gì sẽ xảy ra khi nó bị vô
hiệu hoá? Nếu một kỹ thuật phá tường lửa được phát hiện, cũng có nghĩa người vệ
sĩ bị tiêu diệt và cơ hội sống sót của mạng là rất mỏng manh.
Vì vậy trước khi xây dựng tường lửa, bạn nên xem xét kỹ và tất nhiên phải hiểu
tường tận về mạng của mình.
Phải chăng tường lửa rất dễ bị phá?
Câu trả lời là không. Lý thuyết không chứng minh được có khe hở trên tường lửa,
tuy nhiên thực tiễn thì lại có. Các cracker đã nghiên cứu nhiều cách phá tường
lửa. Quá trình phá tường lửa gồm hai giai đoạn: đầu tiên phải tìm ra dạng tường
lửa mà mạng sử dụng cùng các loại dịch vụ hoạt động phía sau nó; tiếp theo là
phát hiện khe hở trên tường lửa ố giai đoạn này thường khó khăn hơn. Theo nghiên
cứu của các cracker, khe hở trên tường lửa tồn tại là do lỗi định cấu hình của
người quản trị hệ thống, sai sót này cũng không hiếm khi xảy ra. Người quản trị
phải chắc chắn sẽ không có bất trắc cho dù sử dụng hệ điều hành (HĐH) mạng nào,
đây là cả một vấn đề nan giải. Trong các mạng UNIX, điều này một phần là do HĐH
UNIX quá phức tạp, có tới hàng trăm ứng dụng, giao thức và lệnh riêng. Sai sót
trong xây dựng tường lửa có thể do người quản trị mạng không nắm vững về TCP/IP
(Transmission Control Protocol/ Internet Protocol).
Một trong những việc phải làm của các cracker là tách các thành phần thực ra
khỏi các thành phần giả mạo. Nhiều tường lửa sử dụng trạm hy sinh (sacrificial
hosts) - là hệ thống được thiết kế như các server Web (có thể sẵn sàng bỏ đi)
hay bẫy (decoys), dùng để bắt các hành vi thâm nhập của cracker. Bẫy có thể cần
dùng tới những thiết bị ngụy trang phức tạp nhằm che dấu tính chất thật của nó,
ví dụ: đưa ra câu trả lời tương tự hệ thống tập tin hay các ứng dụng thực. Vì
vậy, công việc đầu tiên của cracker là phải xác định đây là các đối tượng tồn
tại thật.
Để có được thông tin về hệ thống, cracker cần dùng tới thiết bị có khả năng phục
vụ mail và các dịch vụ khác. Cracker sẽ tìm cách để nhận được một thông điệp đến
từ bên trong hệ thống, khi đó, đường đi được kiểm tra và có thể tìm ra những
manh mối về cấu trúc hệ thống.
Ngoài ra, không tường lửa nào có thể ngăn cản việc phá hoại từ bên trong. Nếu
cracker tồn tại ngay trong nội bộ tổ chức, chẳng bao lâu mạng của bạn sẽ bị bẻ
khoá. Thực tế đã xảy ra với một công ty dầu lửa lớn: một tay bẻ khoá trà trộn
vào đội ngũ nhân viên và thu thập những thông tin quan trọng không chỉ về mạng
mà còn về các trạm tường lửa.
Lời kết
Hiện tại, tường lửa là phương pháp bảo vệ mạng phổ biến nhất, 95% cộng đồng phá
khoá phải thừa nhận là dường như không thể vượt qua tường lửa. Song trên thực
tế, tường lửa đã từng bị phá. Nếu mạng của bạn có kết nối Internet và chứa dữ
liệu quan trọng cần được bảo vệ, bên cạnh tường lửa, bạn nên tăng cường các biện
pháp bảo vệ khác.