Thứ Hai, 1 tháng 2, 2010

Tường lửa là gì?

Posted By Đoàn Hữu Long on Thứ Hai, 1 tháng 2, 2010 | 07:53

Mục đích của bài viết này là giúp bạn trả lời ba câu hỏi: "Tường lửa là gì?", "Nó hoạt động ra sao?", "Làm sao có thể vượt qua được tường lửa?".

Chúng tôi đoán rằng, khi bạn quyết định đọc bài viết này, tức là bạn không phải là người có hiểu biết cơ bản về hệ thống mạng Internet nói chung, và tường lửa nói riêng. Do đó, chúng tôi sẽ cố gắng giải thích bằng hình tượng và đơn giản hóa vấn đề để bạn dễ nắm bắt hơn. Thành thật xin lỗi nếu các bạn cảm thấy bài viết quá sơ đẳng...

A. Kiến thức cơ bản
Mạng Internet được xây dựng dựa trên một bộ luật, hay tập hợp của các quy tắc chung, có tên là Giao thức Internet (viết tắt là IP). Giao thức chung này đảm bảo rằng các thiết bị Internet có thể "nói chuyện" được với nhau, và hệ thống mạng Internet ở Mỹ có thể giao tiếp được với hệ thống mạng Internet ở Việt Nam, ở Lào, ở Campuchia v.v... mà không gặp trở ngại gì.

Để giao tiếp được với nhau, mỗi thiết bị trên mạng được đánh một số riêng biệt, gọi là địa chỉ IP. Địa chỉ IP có tác dụng giống như số nhà: khi bạn muốn gửi thông tin tới anh A hoặc chị B, bạn phải viết địa chỉ của anh A hoặc chị B ngoài phong bì. Nhìn vào địa chỉ đó, bưu tá sẽ biết được phải chuyển thư của bạn như thế nào.

Quá trình chuyển yêu cầu đọc một trang web và trả lời của server diễn ra giống như ở Hình 1. Máy tính của bạn gửi yêu cầu tới nhà cung cấp dịch vụ ISP của bạn (giống bỏ thư vào thùng thư), nhà cung cấp sẽ đọc địa chỉ trên phong bì, và chuyển lá thư tới đúng người nhận là server Danluan.org.

Hình 1: Máy tính của bạn muốn xem một trang web từ Danluan.org

Một điểm cần chú ý là địa chỉ IP dưới dạng số rất thích hợp với máy tính, nhưng rất khó nhớ đối với con người. Hãy thử tương tượng bạn muốn đọc tin tức từ CNN hoặc BBC, mà lại phải nhớ CCN là 157.166.224.25, BBC là 212.58.253.68 thì quả là điên cái đầu. Do đó, người ta đã đưa ra cái gọi là Domain Name System (DNS), để đặt tên cho các địa chỉ IP. Từ tên miền, dễ nhớ và gần gũi với con người, bạn có thể tìm ra địa chỉ IP của một trang web.

Như vậy, trước khi gửi bất cứ thứ gì tới Danluan.org, máy tính của bạn sẽ phải đi hỏi, trong đa số trường hợp là hỏi chính ISP của bạn, xem danluan.org tương ứng với địa chỉ IP nào, như trong Hình 2. Nó giống như trước khi bạn gọi điện thoại cho ai đó, bạn phải tra số điện thoại của người đó theo tên họ trong cuốn sổ điện thoại cá nhân của bạn, hoặc từ niên giám điện thoại của bưu điện.
Hình 2: Tra địa chỉ IP của tên miền Danluan.org

Ở trên là trường hợp ISP của bạn không lắp đặt tường lửa. Chuyện gì xảy ra nếu ISP của bạn lắp tường lửa, và nó quyết định chặn trang Danluan.org?

B. Tường lửa là gì?

Tường lửa (firewall) là hệ thống gồm cả phần cứng và phần mềm làm nhiệm vụ ngăn chặn các truy nhập "không mong muốn" từ trong ra bên ngoài hoặc từ bên ngoài vào trong. Tường lửa thường được đặt ở cổng giao tiếp giữa hai hệ thống mạng, ví dụ giữa mạng trong nước và mạng quốc tế, giữa mạng nội bộ của doanh nghiệp và mạng Internet công cộng v.v... để lọc thông tin theo các nguyên tắc được định trước.

Các công ty lớn, các trung tâm nghiên cứu quan trọng cần tường lửa để loại bỏ các cuộc tấn công của tin tặc từ bên ngoài vào, hoặc để ngăn nhân viên của mình không gửi thông tin mật ra ngoài, hoặc đơn giản hơn là không cho nhân viên sử dụng dịch vụ chat hay xem Youtube trong giờ làm việc. Ở Việt Nam và Trung Quốc, hệ thống tường lửa còn được dùng để ngăn cản người dân đọc các thông tin liên quan đến tự do, dân chủ, đa đảng hay về các bê bối của chính quyền, những thông tin mà theo chính quyền, là có hại tới họ.

Có nhiều phương pháp lọc thông tin để ngăn cản người sử dụng Internet truy cập dịch vụ mà mình mong muốn, ví dụ:

1) Lọc theo tên miền:

Theo độc giả trong nước cho biết, thì FPT sử dụng cách lọc này. Khi máy của bạn hỏi FPT rằng danluan.org nằm ở địa chỉ IP nào, thì FPT sẽ từ chối trả lời, nếu trang danluan.org nằm trong danh sách "bị cấm". Nói một cách khác, danluan.org không nằm trong cuốn "danh bạ điện thoại" của FPT.

Phương pháp này có ưu điểm là... gọn và rẻ. Số lần người sử dụng hỏi DNS server mỗi ngày ít hơn nhiều so với số yêu cầu đọc trang web, do đó số lần phải đọc, kiểm tra xem trang này có bị cấm hay không, sẽ ít hơn.

Ngược lại, đây là loại tường lửa dễ bị phá nhất. Vì nó chỉ ngăn cản truy cập dựa theo tên miền, nếu người sử dụng biết địa chỉ IP, họ có thể dùng trực tiếp địa chỉ IP để truy cập tới trang muốn xem mà không gặp trở ngại nào. Ví dụ, thay vì - http://danluan.org/node/285 -, bạn có thể đọc bài viết này bằng - http://74.55.40.99/node/285 - với FPT.

Đôi khi một trang web có nhiều tên miền khác nhau, chẳng hạn danluan.org hoặcwww.danluan.org hoặc danluan.info (hehe, cái này không tồn tại), mà FPT quên không chặn hết các tên miền, bạn có thể vào được các trang web cấm bằng sử dụng tên miền chưa bị chặn. Đã có người cho biết, chỉ cần bỏ www đi là có thể truy cập một số trang bị cấm ngon lành ==> FPT quên không đưa các cái tên đó vào danh sách "đen" :)

Hoặc chỉ cần người sử dụng kiếm cho mình một cuốn danh bạ điện thoại "ngon lành" để thay thế cho cuốn danh bạ "bị kiểm duyệt" kia (xem ở đây "Phần I.D: Vượt tường lửa bằng OpenDNS"), để có thể tự tra được danluan.org nằm ở địa chỉ IP nào, mà không cần thông qua ISP, là họ đã vượt được tường lửa kiểu đơn giản này.

2) Lọc theo địa chỉ IP

Loại tường lửa này chặt hơn tường lửa nói ở phần trên. Giả sử bạn đã tra được danluan.org nằm ở địa chỉ IP là 74.55.40.99, và bạn gửi yêu cầu đọc trang abc tới địa chỉ vừa tra. Tường lửa sẽ đọc gói tin, kiểm tra địa chỉ IP, nếu thấy nằm trong danh sách bị cấm, nó sẽ trả về thông báo: "Trang web không tồn tại" (xem Hình 3). Tường lửa kiểu này giống như người đưa thư, sau khi đọc địa chỉ thư của bạn, thấy có trong danh sách bị cấm, sẽ vứt thư của bạn đi mà không chuyển tới đúng địa chỉ.
Hình 3: Tường lửa lọc IP chặn yêu cầu của người sử dụng dựa trên địa chỉ IP.

Biện pháp vượt tường lửa lọc IP là sử dụng proxy server (xem Hình 4). Proxy server được định nghĩa là máy chủ cung cấp dịch vụ "đi gom hàng" hộ cho các khách của mình. Thay vì gửi thẳng yêu cầu xem bài viết abc tới danluan.org (bị tường lửa lọc ngay lập tức), bạn hãy gửi yêu cầu đó tới proxy server, và proxy server sẽ đi tới danluan.org lấy tin, và gửi ngược lại cho bạn. Vì tên và địa chỉ IP của proxy server "chưa" nằm trong danh sách đen, do đó tường lửa sẽ chấp nhận cho bạn kết nối tới proxy server nằm bên ngoài tầm kiểm soát của tường lửa.
Hình 4: Vai trò của proxy server trong việc vượt tường lửa lọc IP.

Ưu điểm của phương pháp lọc IP này là chặt chẽ hơn, dù bạn có địa chỉ IP của trang cần truy cập thì vẫn không qua được tường lửa như trường hợp tường lửa lọc tên miền. Tuy nhiên, nhược điểm của nó là tốn kém vì phải đầu tư hệ thống xử lý tốc độ cao, đủ để lọc tất cả các gói tin gửi ra Internet.

Lọc IP cũng không phải khó phá. Các phương pháp tìm và cài đặt, sử dụng proxy server để vượt tường lửa lọc IP đã được hướng dẫn ở đây, mời các bạn tham khảo: 


C. Một số công cụ mà bạn có thể cần dùng

Dưới đây giới thiệu một số công cụ tra cứu tên miền, địa chỉ IP trên Internet mà có thể hữu ích cho bạn trong tương lai. Chúng tôi không cấp địa chỉ cụ thể, vì các trang web được giới thiệu có thể không còn tồn tại trong tương lai. Nhưng nếu các bạn dùng Google để kiếm theo tên tiếng Anh của công cụ, các bạn sẽ tìm thấy nhiều trang web cung cấp dịch vụ kiểu đó. 

Nếu bạn có tên miền của một trang web, muốn kiểm tra xem địa chỉ IP của trang đó là gì, dùng DNS lookup (gõ vào Google từ khóa "DNS lookup tool" để tìm), ví dụ tại trang:


Nếu bạn có tên miền, muốn biết ai là chủ sở hữu của tên miền này, dùng công cụ WHOIS (gõ vào Google từ khóa "Whois"). 

Nếu bạn muốn biết một địa chỉ IP nằm ở khu vực nào trên thế giới (Mỹ, Anh, hay Việt Nam), hãy dùng công cụ IP location (gõ vào Google từ khóa "IP location"). 

Nếu bạn muốn biết địa chỉ IP CỦA CHÍNH MÌNH là gì, hãy dùng công cụ My IP address (gõ vào Google từ khóa "My IP address"). 

Bài giảng đến đây là hết, thân ái chào các bạn. Chúc các bạn ứng dụng nó thành công!

Ngày 01/02/2010

Đăng nhận xét