Saturday, January 18, 2025

[Pfsense] – Lesson 7 – Rule trong Pfsense

-

1. Tổng quan.

Trong pfSense, rule (quy tắc) là một thành phần cơ bản của tường lửa (firewall) để quản lý và kiểm soát luồng dữ liệu đi và đến trong mạng của bạn. Rule được sử dụng để xác định các hành vi và chính sách mạng cho các giao tiếp mạng, cho phép hoặc chặn các kết nối dựa trên các tiêu chí như địa chỉ IP, cổng, giao thức và các thuộc tính khác.

Mỗi rule trong pfSense có các thành phần chính sau:

  • Interface (Giao diện): Xác định giao diện mạng nào trên pfSense sẽ áp dụng rule này, ví dụ: WAN, LAN, OPTx, hoặc các giao diện mạng tạo bởi VLAN.
  • Protocol (Giao thức): Xác định giao thức mạng được sử dụng trong kết nối, ví dụ: TCP, UDP, ICMP, hoặc các giao thức khác.
  • Source (Nguồn): Xác định nguồn của dữ liệu, có thể là địa chỉ IP hoặc một mạng con (subnet) cụ thể.
  • Destination (Đích): Xác định đích của dữ liệu, có thể là địa chỉ IP hoặc một mạng con (subnet) cụ thể.
  • Port (Cổng): Xác định cổng (port) sử dụng trong kết nối, có thể là cổng nguồn hoặc cổng đích.
  • Action (Hành động): Xác định hành động sẽ được thực hiện cho các gói tin khớp với quy tắc, ví dụ: cho phép (allow), chặn (block), đăng ký (pass), hoặc các hành động tương tự khác.

Qua việc cấu hình các rule, bạn có thể quản lý và kiểm soát việc truy cập mạng, xác định quyền truy cập của người dùng, tạo các quy tắc NAT (Network Address Translation), xác định chính sách VPN, và nhiều hơn nữa. Các rule được xử lý theo thứ tự từ trên xuống dưới, do đó, việc đặt thứ tự các rule rất quan trọng để đảm bảo chúng được áp dụng theo ý muốn.

2. Thực hành.

Đầu tiên bạn hãy xem qua sơ đồ lab của mình.

2.1. Thực hành thao tác với rules.

Đầu tiên để cho các bạn nhìn thấy phần config rule của mình trước. Hãy vào Rules theo các bước ở hình dưới.

Mình đang demo ở subnet vlanid 101 – 172.16.101.0/24 nên mình sẽ cho bạn xem hiện tại mình không có rule nào của vlan này.

Phần Outbound Nat mình cũng đã config cho subnet này.

Giờ mình thực hiện ping ra internet và bạn nhận được kết quả timeout như hình. Đơn giản là mặc dù bạn đã Outbound Nat nhưng bạn chưa cho phép nó đi ra internet.

Để thực hiện việc cho phép hoặc cấm, bạn sẽ sử dụng đến Rules. GIờ bạn bấm vào Add để thêm rule mới.

  • Tại action bạn chọn pass để đồng ý cho phép đi qua.
  • Interface bạn chọn interface sẽ đồng ý cho phép đi qua.
  • Tại Address Family mình chọn IPv4 vì mình chẳng có IPv6.
  • Protocol mình chỉ cho phép ICMP đi qua.
  • Source mình chọn dải 172.16.101.0/24 tương đương với VLAN101 net.
  • Phần Destination mình chọn chỉ cho phép ping tới firewall mà thôi, nên mình sẽ chọn là This firewall (self).
  • Tại phần Description bạn có thể mô tả ngắn gọn rule của mình.

Sau khi bấm Save bạn sẽ có 1 rule mới như dưới, hãy bấm Apply changes để áp dụng thay đổi này.

Thông báo hình dưới là thông báo áp dụng thay đổi rule thành công.

Kết quả bạn không thể ping ra internet vì rule này chỉ cho phép bạn ping tới Firewall mà thôi.

Bạn có thể ping bất kỳ địa chỉ nào miễn là nó nằm ở trên bản thân con Firewall, ví dụ mình đang test tới 172.16.101.253 và 172.16.102.253.

Giờ mình tạo rule mới chỉ cho phép ping tới 1.1.1.1.

Kết quả.

Và sau đây mình tạo rule cho phép DNS đến 8.8.8.8 và 2 rule HTTP, HTTPS cho phép truy cập mọi website từ internet.

  • Rule cho phép DNS 8.8.8.8.
  • Rule cho phép HTTP.
  • Rule cho phép HTTPS.

Và kết quả khi tạo xong 3 rule trên.

Kết quả mặc dù không thể ping tới 8.8.8.8 nhưng bạn vẫn có thể phân giải tên miền được. Và kết quả bạn vẫn được truy cập website.

Giờ giả sử mình sẽ cho phép truy cập tất cả các website trên internet nhưng chỉ chặn Zing mà thôi. Mình sẽ tạo ra một rule chặn HTTPS tới IP của Zing và rule này phải nằm trên rule cho phép truy cập tất cả HTTPS nhé.

Nếu rule này nằm dưới thì nó sẽ thực hiện rule ở trên và kết quả Local vẫn truy cập Zing bình thường.

Kết quả.

2.2. Thực hành di chuyển rule.

Bạn muốn di chuyển Block HTTPS VianlD 101 to Zingnews lên đầu thì bạn hãy chọn nó và bấm vào (2). Rule sẽ được chuyển đến nằm trên vị trí được bấm (2).

Và đây là kết quả

Tương tự nếu bạn muốn di chuyển xuống thì bạn cũng chọn vào rule muốn di chuyển xuống và bấm vào rule có mỏ neo mà bạn muốn nó nằm trên rule đó.

Kết quả.

Nếu bạn muốn đưa rule Block HTTPS VlaniD 101 to Zingnews xuống dưới cùng thì bạn phải làm sao khi không có rule nào ở dưới để bấm vào mỏ neo.

Đơn giản bạn chỉ cần bấm vào rule cuối cùng và kéo nó lên trên thôi.

Kết quả.

Bạn có thể move nhiều rule cùng một lúc.

Kết quả.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories