Tổng Quan Về Bảo mật Trong Vyatta – Firewall Vyatta
1. Tường lửa trong Vyatta
Tường lửa trong Vyatta là tường lửa loại stateful firewall (tường lửa có trạng thái), có khả năng thực hiện cơ chế điều tác và quản lý tình trạng của các gói tin, và khả năng kiểm tra không chỉ dừng lại ở tầng transport và network mà nó có thể trải dài lên các tầng khác như application.
Tường lửa phân tích và lọc các gói tin IP giữa các card mạng. Là ứng dụng quan trọng nhất dùng để bảo vệ luồng dữ liệu giữa mạng nội bộ và internet. Nó cho phép người quản trị có thể lọc các gói tin dựa vào đặc điểm và các hành động của chúng. Hệ thống tường lửa trong Vyatta cung cấp các khả năng sau:
- Lọc lưu lượng của các gói tin đi ngang qua router, sử dụng các từ khóa in và out trên card mạng.
- Lọc lưu lượng của chính router, sử dụng từ khóa local
- Định nghĩa các tiêu chuẩn cho các luật để lọc gói tin, bao gồm có địa chỉ IP nguồn, địa chỉ IP đích, cổng nguồn, cổng đích, giao thức IP, và kiểu ICMP.
- Phát hiện các tùy chọn trong các gói tin IP ví dụ như source routing và các gói tin broadcast.
-
Không Traceroute khi bật iptables Linux hoặc Firewall Windows
Chức năng tường lửa của Vyatta có thể kiểm tra gói một cách ổn định và cung cấp thêm nhiều chiến lược an ninh phân tầng cho người quản trị. Hệ thống có thể đóng vai trò chốt chặn chủ động, tự động phân loại và cấu hình cơ sở dữ liệu của chính nó nhằm thực hiện các hành động như cho phép, hay từ chối lưu lượng dữ liệu đi qua nó. Ngoài ra tường lửa Vyatta còn có thể là một lớp bổ sung khi sử dụng cùng với các thiết bị lọc gói khác.
2. Đặc điểm một luật trong firewall
Các luật của tường lửa sẽ định nghĩa chi tiết về điều kiện phù hợp và hành động thích hợp khi gặp các điều kiện trùng với các điều kiện đó. Lưu lượng có thể được xét với nhiều đặc điểm khác nhau, bao gồm có địa chỉ IP nguồn, địa chỉ IP đích, port nguồn, port đích, giao thức, và kiểu ICMP.
Các luật được thực hiện theo thứ tự, tùy thuộc vào số của luật. Nếu lưu lượng trùng với đặc điểm được định nghĩa trong luật, hành động gắn với luật đó sẽ được thực thi, nếu không, hệ thống sẽ tự động bỏ qua và thực hiện luật tiếp theo.
Các hành động có thể là một trong số sau:
- Accept: lưu lượng được cho phép và được chuyển đi tiếp.
- Drop: lưu lượng bị bỏ đi mà không báo trước.
- Reject: lưu lượng sẽ bị bỏ qua kèm theo tín hiệu TCP reset
- Inspect: lưu lượng sẽ được xử lý bởi hệ thống chống xâm nhập (IPS)
Mặc định sau tất cả các luật, một luật ngầm định với hành động reject all sẽ được thực hiện, như vậy, nếu lưu lượng không đáp ứng được bất kì luật nào được định nghĩa sẽ bị bỏ qua kèm theo với tín hiệu TCP reset. Ta có thể thay đổi hành động mặc định này bằng cách sử dụng câu lệnh
firewall name <tên> default-action <hành động>
Ngoài ra ta có thể sử dụng các luật phủ định với dấu chấm than “!”. Tuy nhiên việc sử dụng các luật phủ định có thể gây ra những hành động khó đoán trước cho hệ thống.
Elastix bài 5 – Hướng dẫn cấu hình một Outbound Route trong Elastix
3. Mối quan hệ giữa stateful firewall và connection tracking
Tường lửa Vyatta cung cấp khả năng kiểm tra kết nối trên nhiều chức năng của hệ thống, bao gồm có tường lửa, NAT, cân bằng tải WAN. Trên tường lửa, khả năng kiểm tra kết nối cho phép tường lửa có thể kiểm tra trạng thái các gói tin đi qua.
Không giống như tường lửa phi trạng thái (stateless firewall) sẽ lọc các gói tin một cách độc lập dựa trên các nguồn tĩnh cùng với thông tin về điểm đến, tường lửa có trạng thái (stateful firewall) kiểm tra trạng thái và luồng di chuyển của lưu lượng, từ đó cho phép hoặc chặn các lưu lượng đó cho đến khi trạng thái của các kết nối đó được nhận biết và được quyền đi qua. Mặc dù làm giảm tốc độ và tăng tải cho hệ thống, nhưng tường lửa có trạng thái có khả năng chặn tốt hơn đối với những kết nối không rõ nguồn gốc, giúp bảo vệ hệ thống tốt hơn.
Các tùy chọn mặc định cho trạng thái có thể được thay đổi bằng cách sử dụng lệnh
firewall conntrack-table-size và firewall conntrack-tcp-loose
4. Các nguyên tắc khi gắn một tường lửa vào card mạng.
Khi áp dụng các tường lửa đã được định nghĩa vào một card mạng, tường lửa sẽ hoạt độngnhư một bộ lọc gói tin. Tường lữa sẽ thực hiện việc lọc các gói tin theo các quy tắc sau, phụ thuộc vào cách ta áp dụng các quy tắc đó. Bao gồm những thông tin sau:
in: khi ta áp dụng một tường lửa kiểu in, tường lửa sẽ lọc các gói tin đi vào card mạng và đi qua hệ thống. Ta chỉ có thể dùng một luật in trong bộ lọc gói tin.
out: khi ta áp dụng một tường lửa kiểu out, tường lữa sẽ lọc các gói tin đi ra từ card mạng được áp dụng. Các gói tin được lọc bởi kiểu out có thể là các gói tin đi qua hệ thống hoặc xuất phát từ chính hệ thống.
local: khi ta áp dụng tường lửa kiểu local, tường lữa sẽ lọc các gói tin từ chính hệ thống. Một tường lửa chỉ được áp dụng một bộ lọc local.
5. Mối quan hệ giữa tường lửa, NAT và định tuyến
Vì tường lửa trong Vyatta sẽ hoạt động chung với nhiều dịch vụ khác của hệ thống. Do đó ta cần nắm rõ nguyên tắc khi hệ thống thao tác với lưu lượng đi qua. Dưới đây là sơ đồ về cách thức xử lý các gói tin đi qua hệ thống giữa các dịch vụ tường lửa, NAT, và định tuyến:





II – Zone-Based Firewall
1. Giới thiệu
Thông thường các quy tắc tường lửa cơ bản được áp dụng lên mỗi card mạng sẽ thực hiện lọc gói tin trên mỗi card mạng đó. Trong chế độ zone-based firewall, một nhóm các card mạng sẽ được đặt trọng một vùng được gọi là “zone”, ở cấp độ này, các card mạng cùng một nhóm sẽ có chung một cấp độ an ninh.

Trong mô hình trên, ta có ba vùng chính bao gồm có: Private Zone, DMZ Zone, và Public Zone. Private Zone bao gồm có eth0 và eth1, DMZ Zone thuộc về eth2, và Public Zone thuộc về eth3.
Các mũi tên màu biểu thị cho các chính sách truy cập từ vùng này sang vùng khác giữa các Zone. Ngoài ra ta còn có local Zone thuộc về chính thiết bị Router.
Trong Zone-Based Firewall, ta có thể cấu hình cho phép các chính sách lọc lưu lượng cho phép dữ liệu đi qua lại giữa các Zone với nhau.
2. Đặc điểm của Zone-Based Firewall
Mỗi card giao tiếp mạng chỉ có thể thuộc về một Zone duy nhất.
Mỗi card giao tiếp mạng khi đã phụ thuộc vào một Zone thì ta không thể áp dụng các rule riêng lẻ tính theo từng card giao tiếp mạng và ngược lại.
Nếu luồng dữ liệu di chuyển giữa các card giao tiếp mạng không phụ thuộc vào bất kì zone nào thì dữ liệu đó có thể được lọc bởi các luật riêng cho các card giao tiếp mạng đó.
Mặc định tất cả lưu lượng đi đến một zone nào đó sẽ bị bỏ đi trừ khi ta áp đặt chính sách cho phép luồng dữ liệu này đi tiếp.
Các chính sách lọc sẽ được áp dụng theo các cặp zone với nhau (from_zone và to_zone), ví dụ như từ Private to DMZ, Public to Private…
3. Đặc điểm cấu hình
Để sử dụng tường lửa, ta cần định nghĩa một luật (rule), và lưu nó dưới một cái tên.
Một tường lửa được tạo ra với một dãy các quy tắc. Sau khi được tạo ra, ta cần gán luật vào card mạng cần sử dụng để lọc các gói tin đi qua.
Để tạo một luật cú pháp câu lệnh như sau:
set firewall name Tên node là tên của chính sách ta cần tạo, trong chính sách này ta có thể thiết lập nhiều luật nhỏ, các luật nhỏ bao gồm có 4 loại: accept, drop, inspect, reject
Một số thông tin cần thiết cho mỗi rule bao gồm có:
- destination: điểm đến của gói tin
- icmp: kiểu gói icmp
- protocol: giao thức được sử dụng
- state: trạng thái của kết nối tcp
- source: nguồn của gói tin
Để áp dụng một rule của tường lửa lên một card giao tiếp mạng ta sử dụng cú pháp như sau:
set interfaces ethernet [tên card mạng] firewall [in|out|local] name [tên rule]
Ngoài ra ta có thể dùng tường lửa Vyatta để giới hạn lưu lượng của luồng dữ liệu di chuyển qua Router bằng câu lệnh có cú pháp như sau:
set firewall name [tên rule] rule [số thứ tự] limit rate [số packet/second]
hoặc
set firewall name [tên rule] rule [số thứ tự] limit burst [số packet]
Trong đó thông số packet là số gói được phép đi qua trong 1 giây (limit rate) hoặc số gói được đi qua đồng thời (limit burst)
III – Mô hình minh họa

c/ Chỉ cho phép mạng Internet truy cập vào mạng DMZ các port sau: TCP(80, 443, 25, 110, 53)
UDP(53). Mạng DMZ được phép truy cập mạng Internet tất cả các giao thức.
d/ Chỉ cho phép mạng Private truy cập mạng DMZ các port sau: TCP(53,80,443,25,110,445) UDP(53). Mạng DMZ được phép truy cập mạng Private tất cả các giao thức.
e/ Chỉ cho phép máy 192.168.10.10 của mạng Private được phép truy cập vào máy V1 các port sau: TCP (22)
f/ Máy V1 được phép truy cập tất cả các mạng.
Tạo zone








Kết luận
Ưu điểm : các cơ chế chống truy cập của tường lửa trong Vyatta cho phép ta thiết lập nhiều cách để chống sự truy cập trái phép vào hệ thống. Quản lý thời gian hoạt động của các rule, cho phép kiểm soát chi tiết đến từng loại gói tin và các cờ tcp. Từ đó giúp cho hệ thống tường lửa Vyatta trở nên mềm dẻo, kết hợp với hệ thống IPS đem lại khả năng bảo mật tốt hơn cho hệ thống.
Nhược điểm : tuy nhiên hệ thống Vyatta chỉ cho phép lọc theo đặc điểm của kết nối hoặc gói tin đi qua. Do đó, vẫn còn hạn chế so với chức năng tường lửa của Microsoft ISA server với khả năng kiểm soát truy cập ở mức người dùng hoặc nhóm người dùng, quản lý kết hợp các địa chỉ ip hoặc các tên miền v.v…
Qua phần 5 tôi sẽ trình bày về virtual private network (VPN) của Vyatta. Chúc các bạn thành công !