Tổng quan về tường lửa – pfsense – part 1
Tổng quan về tường lửa và pfSense
1. Tổng quan tường lửa
Tường lửa là công cụ cần thiết trong việc quản lý và kiểm soát lưu lượng mạng, là một thiết bị mạng được sử dụng để lọc lưu lượng truy cập, thường được triển khai giữa một mạng riêng và một mạng kết nối đến Internet. Ngoài ra tường lửa cũng có thể được triển khai để phân chia giữa các phòng ban trong một công ty. Nếu không có tường lửa, hệ thống mạng sẽ không thể hạn chế lưu lượng truy cập độc hại từ Internet thâm nhập vào mạng nội bộ. Lưu lượng mạng thông qua tường lửa được lọc dựa trên các chính sách đã được thiết lập, còn được gọi là các bộ lọc hoặc danh sách kiểm soát truy cập (ACL). Chúng cơ bản là một bộ các chỉ lệnh có nhiệm vụ lọc ra các luồng dữ liệu nguy hại hoặc không được cho phép truy cập, chỉ có các kết nối cho phép mới vượt qua hàng rào an ninh được cung cấp bởi các tường lửa.
Tường lửa là một biện pháp hiệu quả trong việc ngăn chặn hay lọc lưu lượng truy cập, chống lại các lượt truy cập không hợp pháp cố gắng kết nối từ bên ngoài vào mạng nội bộ bên trong, đồng thời ngăn chặn các dữ liệu độc hại dựa trên thông tin các gói đi vào, ứng dụng, giao thức hay địa chỉ nguồn. Hầu hết các tường lửa cung cấp cơ chế log, kiểm định và khả năng giám sát cũng như hệ thống phát hiện xâm nhập (IDS) cơ bản. Cần lưu ý rằng tường lửa không thể ngăn chặn virus hoặc các mã độc hay lây lan qua các đường đi khác khi người dùng vô tình hay cố ý cho phép các đoạn mã độc thực thi đằng sau tường lửa.
Ngoài hoạt động kết nối mạng, tường lửa còn lưu lại các thông tin về các sự kiện như:
- Thời gian boot/reboot thiết bị tường lửa.
- Trạng thái dịch vụ như: proxy, các dịch vụ phụ thuộc.
- Thay đổi cấu hình.
- Lỗi hệ thống tường lửa.
Tường lửa chỉ là một phần của một giải pháp bảo mật tổng thể. Với một tường lửa có nhiều các cơ chế bảo mật được tập trung tại một nơi, điều này tạo ra rủi ro làm hệ thống mạng có thể bị mất kết nối trong trường hợp thiết bị tường lửa có sự cố. Để bảo vệ tốt hơn cho hệ thống thì chúng ta cần kết hợp nhiều tường lửa với nhau để bổ trợ cho nhau trong trường hợp một tường lửa bị tấn công.
Có bốn loại tường lửa cơ bản: (Simple) Packet Filters, Circuit-Level, Application-Level và Stateful Multilayer Inspection. Cũng có nhiều cách để tạo ra bức tường lửa an toàn bằng cách kết hợp hai hoặc nhiều hơn các loại tường lửa vào một giải pháp tường lửa duy nhất.
1.1. Static packet-filtering firewall
Packet-filter lọc lưu lượng truy cập bằng cách kiểm tra thông tin header của gói tin. Thông thường, các chính sách để tường lửa lọc sẽ dựa vào thông số liên quan tới IP nguồn, IP đích, và cổng dịch vụ. Tường lửa dạng này không thể cung cấp cơ chế xác thực người dùng hay có thể xác định được gói tin đến từ bên trong hay bên ngoài mạng riêng, dẫn đến việc dễ dàng bị lừa với các gói tin giả mạo. Static packet filter được xem là khởi đầu cho hệ thống tường lửa, hoạt động ở lớp 3 (lớp Mạng) của mô hình OSI. Nó cũng có thể được coi là thiết bị định tuyến hoặc xem như một router thông thường.
Hình 1: Packet-filter trong mô hình OSI
1.2. Application-level firewal
Một tường lửa ở lớp Ứng dụng còn được gọi là tường lửa proxy. Proxy là một bộ máy tính làm nhiệm vụ sao chép các gói tin từ một mạng đến một mạng khác; việc sao chép này đồng thời sẽ đổi địa chỉ nguồn và địa chỉ đích để bảo vệ thông tin về mạng riêng hoặc mạng trong của hệ thống. Tường lửa lớp Ứng dụng sẽ lọc các lưu lượng mạng dựa trên các dịch vụ Internet dùng để chuyển hoặc nhận dữ liệu. Một proxy server là cách để tập trung các dịch vụ ứng dụng thông qua một máy đơn lẻ, tại đây nó sẽ phân tích các gói dữ liệu. Khi các gói từ bên ngoài đến cổng này, chúng được kiểm tra và đánh giá để xác định chính sách an toàn có cho phép gói này đi vào mạng nội bộ hay không.
Loại tường lửa này ảnh hưởng đến hiệu suất của mạng vì mỗi gói tin đi đến tường lửa phải được kiểm tra và đánh giá để xác định trước khi cho phép đi vào mạng nội bộ. Tường lửa lớp ứng dụng được xem là thế hệ tường lửa thứ hai, chúng hoạt động tại lớp ứng dụng (lớp 7) của mô hình OSI.
Hình 2: Tường lửa lớp ứng dụng
Tường lửa Circuit-level dùng để khởi tạo phiên kết nối giữa hai người dùng tin cậy. Chúng hoạt động tại lớp Phiên (lớp 5) của mô hình OSI. SOCKS (SOCKetS trong TCP/IP) là dạng tường lửa circuit-level thường được áp dụng nhất. Tường lửa circuit-level còn được biết đến như là circuit proxy, quản lý kết nối dựa trên circuit, chứ không phải nội dung của lưu lượng mạng. Chúng cho phép hoặc từ chối chuyển tiếp gói tin dựa trên nơi mà gói tin cần được gởi đến (địa chỉ nguồn/đích, số port nguồn/đích). Tường lửa circuit-level cũng được xem là thế hệ thứ hai của tường lửa vì cơ chế hoạt động gần giống với tường lửa lớp ứng dụng
Hình 3: Circuit-level firewall
1.4. Stateful inspection firewall
Tường lửa kiểm tra trạng thái đánh giá hiện trạng hoặc bối cảnh lưu lượng mạng. Bằng cách kiểm tra nguồn và địa chỉ đích, sử dụng các ứng dụng, nguồn gốc, và mối quan hệ giữa các gói hiện tại và các gói trước của cùng một session. Tường lửa kiểm tra trạng thái có thể cấp một phạm vi truy cập rộng cho người dùng và các hoạt động có thẩm quyền, chủ động theo dõi và ngăn chặn người sử dụng thực hiện các hoạt động trái phép. Tường lửa kiểm tra trạng thái thường hoạt động hiệu quả hơn so với tường lửa mức Ứng dụng, được xem là tường lửa thế hệ thứ ba, hoạt động ở lớp Mạng và lớp Giao vận (lớp 3 và 4) của mô hình OSI .
Hình 4:Stateful inspection firewall
2. Các mô hình triển khai tường lửa
Có ba dạng kiến trúc tường lửa thường được triển khai là: một lớp, hai lớp, và ba lớp (còn được gọi là nhiều lớp). Kiến trúc tường lửa một lớp được kết nối thông qua một router đến Internet (hoặc những vùng mạng không an toàn khác). Mô hình tường lửa một lớp khá hữu ích trong việc ngăn chặn các cuộc tấn công cơ bản, kiến trúc này thực hiện được các cơ chế bảo mật tối thiểu.
Kiến trúc tường lửa hai lớp sử dụng một tường lửa có ba network interface trở lên, cho phép thiết lập thêm một vùng DMZ hoặc Extranet để giao tiếp với mạng bên ngoài. DMZ được sử dụng đặt những hệ thống máy chủ thông tin mà người dùng bên ngoài có thể truy cập.
Một kiến trúc ba lớp là việc triển khai của nhiều mạng con giữa mạng nội bộ và Internet ngăn cách bởi các tường lửa. Mỗi tường lửa có quy tắc lọc nghiêm ngặt hơn để hạn chế các quyền truy cập bất hợp lệ vào hệ thống mạng dữ liệu nhạy cảm. Mạng ngoài cùng thường được triển khai như là một vùng DMZ. Lớp mạng thứ hai có nhiệm vụ như một lớp mạng chuyển tiếp nhằm phục vụ các tính năng phức tạp theo yêu cầu của máy chủ tại vùng DMZ (ví dụ: database, web service…). Mạng con thứ ba hoặc back-end có thể hỗ trợ mạng nội bộ. Kiến trúc này là an toàn nhất, tuy nhiên mức độ triển khai và quản lý phức tạp hơn so với các kiến trúc còn lại.
Hình 5: Mô hình tường lửa một lớp
Hình 6: Two-tier
Hình 7: Three-tier
3. Tổng quan pfSense
PfSene là một dự án nguồn mở dựa trên nền tảng hệ điều hành FreeBSD và được sử dụng như một tường lửa hoặc một thiết bị định tuyến. Chris Buechler và Scott Ullrich là hai tác giả sáng lập dự án m0n0wall năm 2004. Tuy nhiên tại thời điểm 2004, tác giả phải gặp vấn đề khó khăn khi mã nguồn của họ không tương thích tốt với các giải pháp tích hợp phần cứng (các thiết bị sử dụng 64MB RAM). PfSense với sự phát triển theo thời gian đã hỗ trợ rộng rãi các nền tảng phần cứng khác nhau và được sự đóng góp to lớn từ cộng động sử dụng mã nguồn mở thế giới. Cùng với các chức năng quản lý mạnh mẽ, thân thiện với người dùng nên pfSense được cộng đồng sử dụng rộng rãi trong môi trường doanh nghiệp vừa và nhỏ. PfSense yêu cầu cấu hình phần cứng thấp nên phù hợp cho việc tích hợp vào các thiết bị tích hợp khác nhau nhằm tăng tính linh động và hiệu suất trong quá trình vận hành.
Phiên bản pfSense hiện tại được công bố là 2.1, tập trung phát triển các tính năng hỗ trợ môi trường mạng IPv6.
3.1 Một số phương pháp triển khai thực tế
Với các tính năng linh hoạt, pfSense được sử dụng trong nhiều mục đích khác nhau trên thực tế. Giá thành triển khai thấp hơn so với những thiết bị cùng loại, hỗ trợ những tính năng cơ bản và nâng cao như VPN, BGP, Wirelsess, cân bằng tải, QoS…
Các chức năng thường được sử dụng bao gồm:
- Tường lửa: với tính năng xử lý gói tin TCP/IP mạnh mẽ, nên pfSense được dùng như một tường lửa nhằm cản lọc những kết nối không hợp pháp đến một phân vùng mạng chỉ định.
- Thiết bị định tuyến mạng WAN/LAN: đóng vai trò như một router, pfSense hỗ trợ các chức năng như định tuyến như PPoE, BGP… phù hợp cho doanh nghiệp triển khai với giá thành thấp mà không cần đầu tư thêm router cùng chức năng. Trong môi trường mạng LAN, pfSense hỗ trợ giao thức 802.1q cho phép nhân viên kỹ thuật có thể hoạch định các phân vùng mạng nội bộ khác nhau. PfSense có thể hỗ trợ băng thông 3Gbps hoặc xử lý hơn 500.000 gói tin/giây, vì vậy pfSense có thể sử dụng thay thế một thiết bị switch lớp 3 (yêu cầu có thêm card mạng).
- Wireless Access Point.
- Máy chủ VPN/DNS/DHCP/Sniffer: pfSense được tác giả tích hợp thêm các mã nguồn mở như TinyDNS (http://tinydns.org), tcpdump (http://www.tcpdump.org/) nhằm phục vụ với vai trò là máy chủ DNS hoặc máy chủ sniffer (thu thập gói tin cho nhiệm vụ phân tích).
3.2 Các nền tảng phần cứng hỗ trợ
Live CD: nhân viên quản trị hệ thống có thể sử dụng pfSense bằng cách khởi động mã nguồn pfSense và sử dụng trực tiếp trên CD hoặc USB. Tuy nhiên, phương pháp này không được khuyến cáo sử dụng do một số tính năng như vẽ đồ thị lưu lượng truy cập không thể thực hiện.
Cài đặt vào thiết bị có kiến trúc máy tính (computer based device): đây là phương pháp được tác giả khuyến cáo sử dụng. PfSense được cài đặt trên thiết bị máy tính sẽ hỗ trợ đầy đủ các tính năng mà tác giả đã tích hợp. Tuy nhiên, nhân viên quản trị cần chú ý pfSense không hỗ trợ khởi động nhiều nền tảng hệ điều hành (Multi-boot), vì vậy cần bảo đảm rằng các thiết bị lưu trữ (HDD, SSD) có thể bị xóa trắng trong quá trình cài đặt.
Tích hợp (embedded): pfSense được cài đặt trên thẻ CF có thể được sử dụng cho các thiết bị phần cứng tích hợp. Tuy nhiên do hạn chế về không gian lưu trữ, nên người sử dụng cần lưu ý nên cấu hình sử dụng bộ nhớ RAM hệ thống để lưu trữ các bản ghi nhật ký trong quá trình vận hành.
*****************