Sunday, January 10, 2010

FireWall - part 1

HN quyết định viết tut về Firewall, đầu tiên, xem nào, định nghĩa, phân loại, so sánh một số loại, rồi sau đó là nghiên cứu về IpTables.
Đầu tiên là định nghĩa FireWall, mà tiếng Việt ta gọi là tường lửa. Được coi là thiết bị an ninh đầu tiên, đơn giản nhất của các thiết bị phòng thủ trong mạng. Có nhiều loại FireWall, bạn có thể sử dụng nó như là 1 stand-alone server hoặc là một thiết bị mạng khác như router hoặc server. Sở dĩ vậy vì hiện nay ngoài những FW tích hợp sẵn trong OS hoặc tồn tại như một dạng phần mềm thì cũng có những sản phẩm là FW chuyên biệt. FW cũng có thể là thiết bị phần cứng hoặc là phần mềm. Do đó, có thể thấy FW rất đa dạng.
Để hiểu về mục đích FW, ta làm một ví dụ có phần sinh động thế này. Một ngày trước đây, chỗ nhà bạn xây tường đóng tất cả các cửa vào, và khi có hỏa hoạn, cách dễ nhất để thoát ra là phá một trong các cửa. Cái này mô tả những hiểm họa có thể xảy ra với hệ thống của bạn, những bức tường xây dựng giữa những tòa nhà, là những bức tường xây bằng những viên gạch lớn sẽ chia đôi 2 tòa nhà ra, do đó, bên kia, có làm sao, cũng chưa chắc ảnh hưởng đến bạn. Và ở đó có 1 cái của nhỏ, ai muốn qua thì phải qua cái cửa đó. Bây giờ ta sẽ tổng kết.
Mục đích cơ bản của FW là cô lập, hay nói đúng hơn là ngăn cách mạng này ( thường là mạng nội bộ) với những mạng khác. Điều đó có nghĩa là FW phải được thiết lập trên một thiết bị (PC, router..) ở giữa 2 mạng. Có nhiều cách phân chia FW, là physical device hay software-applicane, loại built-in hay stand-alone. Tuy nhiên, về chính thống, FW đc phân chia như sau:
Packet filtering.
Proxy FW – Application Layer gateway
Statefull packet filtering.
Bắt đầu tìm hiểu các loại này nhé. Đầu tiên là loại đơn giản Packet Filtering.
Nếu bạn đã từng sử dụng ACL trong các Cisco Router thì đây là một ví dụ khá dễ hiểu của nó. Lý thuyết của nó chỉ đơn giản là: Block ( deny) hoặc Allow ( permit) cho gói tin đi qua. Vậy làm thế nào để nó có thể làm đc như vậy. Đầu tiên ta cần nói đến rule. Đây là tập hợp các bộ luật do người quản trị viết. Và làm thế nào để FW biết gói tin đó có bị… phạm tội hay không. FW sẽ đọc Header của gói tin để biết. 5 tiêu chuẩn để block đơn giản nhất là: Source IP, Destination IP, Source Port, Destiantion Port, Protocol. Ngoài ra tùy hoàn cảnh có thể có những tiêu chuẩn khác.
Ví dụ nhé, server của bạn chạy webserver, vậy bạn cần mở port 80 cho nó. Nói chung loại này là dễ triển khai, nên được triển khai nhiều nhất, đặc biệt là ở các FW biên. Tuy nhiên, nó lại có vài hạn chế như sau:
- Rất dễ bị ảnh hưởng bởi IP spoofing. Một số FW allow cho chính ip của mình, và từ đó Hacker có thể giả IP đi qua rất dễ dàng.
- Rất dễ ko lọc những gói tin tốt. Đơn giản gói tin đc chia làm các packet, và thông tin được lưu trong gói TCP đầu tiên. Nói chung là không tốt nhưng ít xảy ra.
- Một số loại FW thô như ACL thì khá là khó để triển khai, giám sát.
Tiếp theo là Proxy FireWall. Nó là thành phần đứng giữa 2 mạng. Điểm đặc biệt là nó tiếp nhận yêu cầu của mạng bên ngoài, kiểm tra rồi đưa vào bên trong xử lý. Đến đây thì có thể bạn sẽ nói: trên kia cũng nhận mà. Packet Filtering có nhận gói tin, nhưng mà là gói tin vào mạng Internal của bạn, có nghĩa là đích của nó là một máy ở trong mạng của bạn. Còn Proxy FireWall khác, người bên ngoài chỉ thấy 1 máy duy nhất, chính là Proxy FireWall. Vậy làm thế nào để nó có thể đưa vào trong. Dựa vào Port. Giả sử bên ngoài yêu cầu kết nối đến webserver, Proxy FireWall sẽ đưa yêu cầu ấy vào trong cho webserver vào trong xử lý. Vậy là người bên ngòai chỉ thấy bạn qua một IP duy nhất, nhưng bên trong bạn là cả một hệ thống.
Chính vì thế mà ProxyFireWall an toàn hơn Packet Filltering. Bởi vì nó chỉ cho những cái cần qua ( giống ở trên), và nó lọc thông mình hơn.
Trong Proxy FireWall có một khái niệm là dual-home FW. Đó là 1 Nic nối ra mạng ngoài, 1 nic vào mạng internal. Phần mềm Proxy sẽ quản lý traffic qua nó. Nếu bạn sử dụng ISA ( ngày nay gọi là FF của M$), cái proxy rất rõ. Proxy FW sẽ còn làm cache server. Và hơn nữa, nó support Auditing – Accouting.
Vấn đề của nó sẽ là gì: Thứ nhất vì nó phải route request vào trong, rồi đợi xử lý mới trả lời, nên nó sẽ chậm hơn trên kia. Thứ 2, thường thì cái này chỉ triển khai trên các single application. Nếu mà bạn chạy multiply service sẽ đòi hỏi multiple ALG program. Tuy nhiên một số chương trình hiện nay có khả năng hỗ trợ 2 3 giao thức rồi. Thứ 3, FW của bạn sẽ là điểm cuối của mạng. Nếu bị vượt qua thì coi như mạng của bạn đã ko còn đc bảo vệ.
Statefull Packet Filtering: Lọc bằng trạng thái gói tin. Công nghệ này đc khai sinh vào giữa những năm 90s, và từ đó cũng khai sinh ra tập đoàn FW lớn nhất TG, Checkpoint.
Bản chất của nó là kết hợp Packet Filtering và Proxy Fw (ALG). Đối với FW bình thường, gói tin pass qua thì nó sẽ quên đi. Nhưng với cái này, nó sẽ lưu vào state table. Vậy là, nó làm việc với trạng thái và kết nối, cung cấp một hiệu năng cao hơn 2 loại trên, nó hỗ trợ connection và connectionless, từ nhiều source khác nhau.
Nhưng nó lại có 1 thử thách : DDOS, bởi DDOS hoàn toàn có thể flood, làm overload state table, khiến FW shutdown và reboot.
Tạm kết phần phân chia. Bản thân mình có nhận xét:
FW hầu như không chống được virus, nhưng lại chống trojan khá tốt.
FW cũng cần bảo mật, nghe thật buồn cười nhưng nếu FW bị chết, mạng của bạn ở trong dù sống cũng chết theo. Trước có một vụ là 1 sp của Checkpoint bị lỗi phần tốc độ đọc ghi ổ đĩa. Nắm bắt version đó, Attacker đã liên tục kết nối vào FW, bắt nó phải ghi log. Kết quả là FW đó bị chết ổ cứng.
Tạm dừng ở đây đã.
To be continued…..

---------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------
All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.

No comments:

Install Xposed Inspector and Frida on Genymotion

Today i had some work with android. So i need trace application. I found 2 nice tool can help me: Xposed Inspector and Frida. To setup ther...