Nội dung bài viết
6. Các phương pháp tốt nhất về firewall rule
Phần này bao gồm các phương pháp tốt nhất cho cấu hình firewall rule.
6.1 Default Deny
Có hai triết lý cơ bản trong bảo mật máy tính liên quan đến kiểm soát truy cập: default allow và default deny. Chiến lược default deny cho các firewall rule là phương pháp tốt nhất. Quản trị viên firewall nên cấu hình các rule chỉ để cho phép lưu lượng truy cập tối thiểu cần thiết cho nhu cầu của mạng, và để lưu lượng truy cập còn lại giảm với rule default deny được tích hợp trong pfSense. Theo phương pháp này, số lượng các deny rules trong một bộ rule sẽ được tối thiểu. Chúng vẫn có chỗ cho một số mục đích sử dụng, nhưng sẽ bị giảm thiểu trong hầu hết các môi trường bằng cách tuân theo chiến lược default deny.
Trong cấu hình hai interface mạng LAN và WAN mặc định, pfSense sử dụng default deny trên mạng WAN và default allow trên mạng LAN. Tất cả mọi thứ trong nước từ Internet bị từ chối, và tất cả mọi thứ ra internet từ mạng LAN được cho phép. Tất cả các router cấp nhà sử dụng phương pháp này, cũng như tất cả các dự án mã nguồn mở tương tự và hầu hết các dịch vụ thương mại tương tự. Điều đó nói rằng, nó là một cách thuận tiện để bắt đầu nhưng nó không phải là phương tiện được đề nghị để hoạt động lâu dài.
6.2 Keep it short
Bộ rule càng ngắn thì càng dễ quản lý. Các bộ rule dài rất khó làm việc, tăng khả năng mắc lỗi của người sử dụng, có xu hướng trở nên quá cho phép và khó kiểm soát hơn. Sử dụng aliases để giữ cho bộ rule càng ngắn càng tốt.
6.3 Tài liệu cấu hình
Trong tất cả, nhưng các mạng nhỏ nhất, nó có thể được khó khăn để nhớ lại những gì được cấu hình ở đâu và tại sao. Chúng ta nên sử dụng trường Description trong firewall và rule NAT để ghi lại mục đích của các rule. Trong triển khai lớn hơn hoặc phức tạp hơn, tạo và duy trì một tài liệu cấu hình chi tiết hơn để mô tả toàn bộ cấu hình pfSense. Sau này khi xem lại cấu hình firewall, điều này sẽ giúp xác định rule nào là cần thiết và tại sao chúng ở đó. Điều này cũng áp dụng cho bất kỳ vùng khác của cấu hình.
Điều quan trọng nữa là giữ cho tài liệu này được cập nhật. Khi thực hiện đánh giá cấu hình định kỳ, hãy xem lại tài liệu này để đảm bảo rằng nó vẫn được cập nhật với cấu hình hiện tại. Đảm bảo tài liệu này được cập nhật bất cứ khi nào khi thực hiện thay đổi cấu hình.
6.4 Reducing Log Noise
Theo mặc định, pfSense sẽ ghi lại các gói bị chặn bởi default deny rule. Điều này có nghĩa là tất cả tiếng ồn bị chặn từ Internet sẽ được ghi lại. Đôi khi sẽ không có nhiều tiếng ồn trong các bản ghi, nhưng trong nhiều môi trường chắc chắn sẽ có một cái gì đó không ngừng gửi thư rác các bản ghi.
6.5 Logging Practices
Ở bên ngoài box, pfSense không ghi lại bất kỳ lưu lượng truy cập đã qua nào mà nó ghi lại tất cả lưu lượng truy cập bị giảm. Đây là hành vi mặc định điển hình của hầu hết các mã nguồn mở và tường lửa thương mại. Đó là thực tế nhất, như đăng nhập tất cả lưu lượng truy cập thông qua là hiếm khi mong muốn do mức độ tải và log được tạo ra. Tuy nhiên, phương pháp này hơi lạc hậu từ góc độ bảo mật. Lưu lượng truy cập bị Block không thể gây hại cho mạng, nên giá trị log của nó bị giới hạn, trong khi lưu lượng được pass có thể là thông tin log rất quan trọng cần có nếu hệ thống bị xâm phạm. Một hệ thống phát hiện xâm nhập dựa trên máy chủ mã nguồn mở (IDS), là một hệ thống có thể thu thập log từ pfSense thông qua log hệ thống và cảnh báo dựa trên những bất thường về khối lượng log.
7. Phương pháp rule
Trong pfSense, các rule trên các tab interface được áp dụng trên cơ sở mỗi interface, luôn theo hướng đến trên interface đó. Điều này có nghĩa là lưu lượng truy cập bắt đầu từ mạng LAN được filter bằng các rule interface mạng LAN. Lưu lượng truy cập bắt đầu từ Internet được filter với các rule interface mạng WAN. Bởi vì tất cả các rule trong pfSense là trạng thái theo mặc định, một mục nhập state table được tạo khi lưu lượng truy cập khớp với allow rule. Tất cả lưu lượng trả lời được tự động cho phép bởi mục nhập state table này.
Ngoại lệ cho điều này là Floating rules, có thể hoạt động trên bất kỳ interface nào bằng cách sử dụng các hướng đến, đi hoặc cả hai hướng. Outbound rules không bao giờ được yêu cầu, bởi vì filter được áp dụng theo hướng inbound của mỗi interface.Trong một số trường hợp hạn chế, chẳng hạn như tường lửa với nhiều giao diện nội bộ, chẳng hạn như firewall có nhiều internal interfaces, việc cung cấp chúng có thể làm giảm đáng kể số lượng các firewall rules bắt buộc. Trong trường hợp này, áp dụng rule đầu ra cho lưu lượng truy cập Internet như các quy tắc đi trên mạng WAN để tránh phải sao chép chúng cho mỗi internal interface. Việc sử dụng filter inbound và outbound làm cho một cấu hình bị phức tạp hơn và dễ bị lỗi người dùng, nhưng nó có thể được mong muốn trong các ứng dụng cụ thể.
7.1 Interface Groups
Interface group là một phương pháp để đặt các rule trên nhiều giao diện cùng một lúc. Điều này có thể làm đơn giản hóa một số cấu hình rule nếu các rule tương tự được yêu cầu trên nhiều interface cùng một lúc. Interface group rules giống như interfaces rule chỉ được xử lý theo hướng inbound. Các tab VPN cho OpenVPN, L2TP và máy chủ PPPoE là tất cả các Interface groups đặc biệt được tạo tự động đằng sau hậu trường.
Ví dụ, một group có thể được sử dụng cho một bộ sưu tập các interface bao gồm tất cả các interface kiểu mạng LAN hoặc DMZ, hoặc cho một group VLANs. Group interface không hiệu quả với Multi-WAN vì các group rule không thể xử lý và trả lời một cách chính xác. Do sự thiếu hụt đó, lưu lượng truy cập phù hợp với group rule trên mạng WAN không có default gateway sẽ đi ngược lại mạng WAN có default gateway và không thông qua interface mà nó đã nhập.
7.2 Rule Processing Order
Cho đến bây giờ, chúng ta đã nói về cách các rule được xử lý trên interface tab. Nhưng có ba lớp rule chính: Regular interface rules, Floating rules, và Interface Group rules (bao gồm các rule tab VPN). Thứ tự xử lý của các loại này là rất quan trọng và nó hoạt động như sau:
1. Floating Rules
2. Interface Group Rules
3. Interface Rules
Các quy tắc được ra lệnh theo cách đó trong ruleset hiện nay, hãy ghi nhớ điều đó khi tạo các rule. Ví dụ, nếu một interface group có chứa một rule block lưu lượng truy cập, rule đó không thể được ghi đè với một rule interface tab bởi vì lưu lượng truy cập đã được thực hiện theo group rule, được kết hợp đầu tiên trong ruleset. Tuy nhiên, các rule được xử lý cho đến khi tìm thấy một sự phù hợp, vì vậy nếu một gói tin không khớp trong các group rule, nó vẫn có thể được khớp với một interface rule.
Một điểm quan trọng khác mà điều này phát huy tác dụng là với các interface OpenVPN được chỉ định. Nếu một rule “allow all” được đặt trên tab OpenVPN, thì rule đó sẽ phù hợp với group rules. Điều này có nghĩa là các rule trên tab interface sẽ không áp dụng. Đây có thể là một vấn đề nếu các rule OpenVPN cần phải trả lời để đảm bảo một số lưu lượng truy cập nhất định quay trở lại qua VPN.
7.3 Automatically Added Firewall Rules
Pfsense tự động thêm các internal firewall rule vì nhiều lý do. Phần này mô tả các quy tắc được thêm tự động và mục đích của chúng.
Anti-lockout Rule
Để ngăn chặn việc khóa quản trị viên ra khỏi giao diện web, , pfSense đã enable một rule là anti-lockout theo mặc định. Điều này được cấu hình trên System > Advanced và nằm ở phía dưới trang, nó có tên là Anti-lockout. Rule tự động thêm này cho phép lưu lượng truy cập từ bất kỳ nguồn nào bên trong mạng chứa rule, đến bất kỳ giao thức quản trị firewall nào lắng nghe trên địa chỉ IP LAN. Ví dụ: nó cấp quyền truy cập vào port TCP 443 cho WebGUI, port TCP 80 cho chuyển hướng GUI và port TCP 22 nếu SSH được enable. Nếu port WebGUI đã được thay đổi thì port cấu hình là một trong những port cho phép bởi rule anti-lockout.
Hạn chế quyền truy cập administrative interface từ mạng LAN
Đầu tiên, để định cấu hình các firewall rule như mong muốn để hạn chế quyền truy cập vào các interface quản lý là bắt buộc.Trong ví dụ trường hợp sử dụng điển hình này, cả SSH và HTTPS đều được sử dụng để quản lý, vì vậy hãy tạo alias ManagementPorts chứa các cổng này.
Sau đó tạo một alias cho máy chủ và/hoặc mạng để có quyền truy cập vào các interface quản lý.
Sau đó, các firewall rule mạng LAN phải được cấu hình để cho phép truy cập bởi các máy chủ được xác định trước đó, và từ chối truy cập vào tất cả các máy khác. Có rất nhiều cách để thực hiện điều này, tùy thuộc vào chi tiết cụ thể của môi trường và cách lọc đầu ra được xử lý. Đầu tiên cho phép truy vấn DNS tới địa chỉ IP LAN, đó là cần thiết nếu DNS Resolver hoặc DNS Forwarder được enable và cũng cho phép các máy chủ mạng LAN ping địa chỉ IP LAN. Sau đó nó từ chối tất cả các lưu lượng truy cập khác. Ví dụ thứ hai cho phép truy cập từ các máy chủ quản lý các port management, sau đó từ chối tất cả các lưu lượng truy cập khác vào các port management.
Một khi cácrule tường lửa được cấu hình, vô hiệu hóa rule anti-lockout webGUI trên trang System > Advanced. Tích vào box sau đó click Save.
Lưu ý: Nếu giao diện quản lý không còn có thể được truy cập sau khi disable rule anti-lockout, các firewall rule không được cấu hình một cách thích hợp. Enable lại rule anti-lockout bằng cách sử dụng tùy chọn đặt các địa chỉ IP của interface tại console menu, sau đó chọn reset địa chỉ IP LAN. Đặt nó thành địa chỉ IP hiện tại và rule sẽ tự động được bật lại.
Anti-spoofing Rules
pfSense sử dụng tính năng Anti-spoofing trong pf để chặn lưu lượng truy cập giả mạo. Firewall kiểm tra từng gói tin dựa trên bảng định tuyến của nó, và nếu nỗ cố gắng nối đến từ địa chỉ IP nguồn trên interface mà firewall biết rằng mạng đó không reside thì nó sẽ bị loại bỏ. Ví dụ, một gói dữ liệu đến trong mạng WAN với một địa chỉ IP nguồn của một internal network sẽ bị loại bỏ. Bất kỳ thứ gì được khởi tạo trên internal có địa chỉ IP nguồn không nằm trên internal network đều bị loại bỏ.
Block Private Networks
Tùy chọn Block private networks trên interface WAN tự động đặt trong một rule block cho mạng con RFC 1918. Trừ khi không gian IP private được sử dụng trên mạng WAN, hãy enable tùy chọn này. Điều này chỉ áp dụng cho lưu lượng truy cập bắt đầu từ phía WAN. Local client vẫn có thể tiếp cận các máy chủ trên private networks từ bên trong firewall. Tùy chọn này có sẵn cho bất kỳ interface nào, nhưng thường chỉ được sử dụng trên các interface loại WAN. Một rule tương tự có thể được tạo theo cách thủ công để chặn các private networks từ trên các interface bằng cách tạo một alias chứa các mạng con RFC 1918 và firewall rule vào đầu interface rule để block lưu lượng truy cập bằng nguồn phù hợp với alias đó.
Block Bogon Networks
Bogon networks là những thứ không bao giờ được nhìn thấy trên Internet, bao gồm cả không gian địa chỉ IP dành riêng và chưa được chỉ định. Sự hiện diện của lưu lượng truy cập từ các mạng này có thể cho thấy lưu lượng truy cập giả mạo hoặc một mạng con không được sử dụng đã bị chiếm đoạt để sử dụng với mục đích xấu. PfSense cung cấp hai bogons lists được cập nhật khi cần thiết, một cho mạng bogon IPv4 và một cho mạng bogon IPv6. Nếu Block bogon networks được enable, firewall sẽ lấy một danh sách bogons cập nhật vào ngày đầu tiên của mỗi tháng từ files.pfsense.org. Tập lệnh chạy lúc 3 giờ sáng theo giờ địa phương và ngủ một khoảng thời gian ngẫu nhiên tối đa 12 giờ trước khi thực hiện cập nhật. Danh sách này không thay đổi thường xuyên và các chỉ định địa chỉ IP mới sẽ bị xóa khỏi danh sách giả hàng tháng trước khi chúng thực sự được sử dụng, vì vậy cần cập nhật hàng tháng. Nếu danh sách phải được cập nhật thường xuyên hơn, hãy thay đổi Update Frequency cho các bogons trong System > Advanced trên tab Firewall & NAT
Lưu ý: Danh sách bogons cho IPv6 khá lớn nên là có thể không load nếu không có đủ bộ nhớ trong hệ thống hoặc nếu số mục nhập bảng tối đa không đủ lớn để chứa nó.
Forcing a bogons update
Với những thay đổi tương đối không thường xuyên đối với danh sách bogons và thông báo trước về các nhiệm vụ IP công khai mới, bản cập nhật bogons hàng tháng là đủ. Tuy nhiên, có thể có những trường hợp mà cập nhật bogon thủ công có thể giúp ích, chẳng hạn như nếu cập nhật bogon không thành công do cấu hình DNS không chính xác. Thực hiện cập nhật thông qua firewall web interface Diagnostics > Tables, lựa chọn bogons hoặc bogonsv6 sau đó click .
IPsec
Khi site to site IPsec connection được enable, rule được tự động thêm vào cho phép truy cập địa chỉ IP điểm cuối đường hầm từ xa để cổng UDP 500 và 4500, và giao thức ESP trên địa chỉ IP WAN được sử dụng cho kết nối. Khi enable IPsec cho mobile client, lưu lượng truy cập tương tự được phép, nhưng từ một nguồn bất kỳ, thay vì một địa chỉ nguồn cụ thể.
Bởi vì cách định tuyến chính sách hoạt động, bất kỳ lưu lượng truy cập phù hợp với một rule chỉ định một gateway sẽ bị buộc ra internet và sẽ bỏ qua IPsec xử lý. Các rule được thêm tự động để phủ định chính sách định tuyến cho lưu lượng truy cập đến các mạng con VPN từ xa, nhưng chúng không phải lúc nào cũng có tác dụng như mong muốn. Để disable automatic negation rules, hãy xem Disable Negate rules và thêm firewall rule ở đầu rule trên giao diện nội bộ để chuyển lưu lượng truy cập đến VPN mà không cần đặt gateway.
Default Deny Rule
Các rule không khớp với bất kỳ rule nào do người dùng xác định hoặc bất kỳ rule nào khác được thêm tự động sẽ bị block một cách âm thầm bởi default deny rule .