[Security] Cài đặt và cấu hình firewall open source pfSense

1. Giới thiệu
pfSense là một mã nguồn mở firewall/router dựa trên FreeBSD. Nó được cài đặt trên một máy tính để thực hiện các chức năng của một firewall/router chuyên dụng.
pfSense có thể được cấu hình và nâng cấp thông qua giao diện web và đòi hỏi phải có kiến thức cơ bản về hệ thống FreeBSD để quản lý. pfSense thường được triển khai như một firewall, router, acess point, DHCP, DNS server, VPN endpoin.

Một số hãng thiết bị đã sử dụng pfSense tích hợp lên phần cứng của họ để triển khai các giải pháp firewall cho khách hàng một cách hiệu quả.
Bài viết này sẽ hướng dẫn cấu hình pfSense với mã nguồn mở được download trực tiếp từ pfSense.org.
Trước khi cài đặt, các bạn tham khảo thông tin về yêu cầu phẩn cứng tại đây
2. Cài đặt
- Lựa chọn cấu trúc phần cứng và nền tảng pfSense tại đây:
- Sau khi download file ISO về máy, tiến hành cài đặt như một HĐH Linux bình thường khác, các bạn có thể tham khảo về cách cài đặt tại trang chủ của pfSense
3. Cấu hình
pfSense có sẵn khác nhiều tính năng hữu ích của một gateway device, tuy nhiên trong khuôn khổ bài viết này, mình sẽ trình bày theo trình tự menu với các mục lớn như: Interface, Firewall, Services và VPN và sẽ khai triển vào các mục nhỏ hơn khi có thời gian
a. Interfaces
Trong phần này, các bạn sẽ chỉ định port WAN, DMZ, LAN và đặt IP, subnet, gateway. Đây là những thao tác khá đơn giản nên mình sẽ không mô tả chi tiết trong document này.
b. Firewall
- Traffic Shaper
Traffic Shaper là công cụ hữu hiệu giúp người quản trị điều tiết được băng thông của hệ thống mình quản lý, từ đó quy định cụ thể những nhóm người dùng nào được sử dụng mạng với tốc độ hợp lý theo nhu cầu công việc và độ ổn định chung của hệ thống.

Giao diện của Traffic Shaper bao gồm các thẻ như sau: By Interface, By Queue, Limitter, Layer7, Wizards.
Để tạo rule giới hạn băng thông cho mạng LAN bên trong ta cần tạo trong limiter 2 rule cho lưu lượng vào (download) và lưu lượng ra (upload).
Chọn tab Limitter, nhấp vào nút Create new limiter tạo một rule giới hạn cho lưu lượng mạng vào (Download) (ở đây mình cho tốc độ là 3MB/s)
Sau đó nhấp vào Save
Tương tự tạo tiếp một rule limiter cho lưu lượng mạng ra (upload). (Ở đây mình để tốc độ là 512Kb/s)
Tiếp theo vào mục Rules trong Thẻ Firewall
Vì phần rule này áp dụng cho mạng LAN nên chúng ta sẽ tạo rule áp trên interface LAN, lưu ý mặc định firewall sẽ tạo rule allow any to any trong Interface Lan, chúng ta sẽ sử dụng rule này hoặc, tạo mới một rule khác
Sau khi tạo Rule, ở phía dưới có mục In/Out, nhấp chọn ở mục In, chọn rule cho Download vừa tạo, Ở mục Out chọn rule cho Upload tạo trước đó. Nhấn Save để hoàn tất.
Ps: Bởi vì pfsense tùy thuộc vào phần cứng hỗ trợ sẽ có nhiều interfaces LAN và WAN, do đó sẽ có nhiều quy định về băng thông, lưu lượng nếu chúng ta phải làm việc trong môi trường mạng lớn cần phân chia.

- NAT


Khởi tạo mới: Nhấp vào nút ở bên phải ta vào giao diện như hình dưới:

Ở trang khởi tạo Nat rule có các mục: Disable, No RDR, Interface, Protocol… ở mỗi mục đều có các chú thích về nội dung sẽ cập nhật tại đó, chúng ta chỉ tác động đến các option cần thiết ví dụ: 
- Interface sẽ áp dụng
- Loại Protocol
- Source Adress/Port range: là giao thức nguồn và port nguồn cần NAT
Destination address/Port range: địa chỉ đích và cổng đích sẽ dùng.

Redirect target IP/Redirect target port:
Redirect target IP:
 Địa chỉ của IP bên trong sẽ ánh xạ đến khi có truy xuất tương ứng với giao thức bên trên.
Nhấp Save để tạo rule.
Rules
Tính năng cơ bản của một firewall:
Khi ta khởi tạo một rule mới sẽ có giao diện khởi tạo như sau:
Trong đó các option sẽ có các chức năng sau:
Action: có 3 tùy chọn là:
+ Pass: cho phép.
+ Block: chặn.
+ Reject: từ chối.
Sự khác nhau giữa Block và Reject được Pfsense chú thích ngay bên dưới như sau: “the difference between block and reject is that with reject, a packet (TCP RST or ICMP port unreachable for UDP) is returned to the sender, whereas with block the packet is dropped silently. In either case, the original packet is discarded.”
Đánh dấu vào Disable rule khi cần tạm dừng rule đã có trước đó.
Interface: là cổng sẽ áp dụng các rule.
Protocol sẽ áp dụng ví dụ: TCP, UDP, TCP/UDP, ICMP, ESP, AH,… 
Ở mục Source và Destination sẽ thiết đặt địa chỉ sẽ áp dụng cho địa chỉ nguồn và địa chỉ đích khi gói tin được gửi qua Firewall: có thể là bất kỳ hoặc một địa chỉ mạng khác…
Source port range: quy định dãy cổng dịch vụ mình sẽ dùng trong rule.
Khi thiết đặt xong nhấp vào nút Save để cập nhật rule.
c. Services
Đang cập nhật
d. VPN
Đang cập nhật