Bảo vệ mạng với pfSense

PfSense là một ứng dụng có chức năng định tuyến vào tường lửa mạnh và miễn phí, ứng dụng này sẽ cho phép bạn mở rộng mạng của mình mà không bị thỏa hiệp về sự bảo mật. Bẳt đầu vào năm 2004, khi m0n0wall mới bắt đầu chập chững– đây là một dự án bảo mật tập trung vào các hệ thống nhúng – pfSense đã có hơn 1 triệu download và được sử dụng để bảo vệ các mạng ở tất cả kích cỡ, từ các mạng gia đình đến các mạng lớn của của các công ty. Ứng dụng này có một cộng đồng phát triển rất tích cực và nhiều tính năng đang được bổ sung trong mỗi phát hành nhằm cải thiện hơn nữa tính bảo mật, sự ổn định và khả năng linh hoạt của nó.Phiên bản mới nhất 1.2, gồm có nhiều tính năng mà bạn vẫn thấy trên các thiết bị tường lửa hoặc router thương mại, chẳng hạn như GUI trên nền Web tạo sự quản lý một cách dễ dàng. Trong khi đó phần mềm miễn phí này còn có nhiều tính năng ấn tượng đối với firewall/router miễn phí, tuy nhiên cũng có một số hạn chế.
 
Với tư cách một tường lửa, pfSense hỗ trợ lọc bởi địa chỉ nguồn và địa chỉ đích, cổng nguồn hoặc cổng đích hay địa chỉ IP. Cho ví dụ, nếu chúng ta sử dụng lọc địa chỉ nguồn và thiết lập địa chỉ IP được kiểm tra là subnet của mạng bên trong thì bất cứ lưu lượng hay bất cứ yêu cầu nào được tạo ra từ địa chỉ đó sẽ bị phân tích và được lọc phụ thuộc vào các nguyên tắc của tường lửa. Nếu chúng ta sử dụng lọc địa chỉ đích thì tường lửa sẽ kiểm tra địa chỉ IP mà lưu lượng sẽ đi, và nếu địa chỉ đích thỏa mãn các nguyên tắc của tường lửa thì một hành động thích hợp sẽ được thực thi.
 
Một trong những tính năng tường lửa tốt nhất là khả năng P0F (passive operating system fingerprinting – tạm được dịch là: khả năng lấy dấu vân tay hệ điều hành thụ động), tính năng này sẽ phát hiện một cách thụ động hệ điều hành của kết nối và cho phép tường lửa khóa các kết nối dựa trên hệ điều hành của nút đang kết nối. Nó cũng hỗ trợ chính sách định tuyến và có thể hoạt động trong các chế độ bridge hoặc transparent, cho phép bạn chỉ cần đặt pfSense ở giữa các thiết bị mạng mà không cần đòi hỏi việc cấu hình bổ sung. pfSense cung cấp network address translation (NAT) và tính năng chuyển tiếp cổng, tuy nhiên ứng dụng này vẫn còn một số hạn chế với Point-to-Point Tunneling Protocol (PPTP), Generic Routing Encapsulation (GRE) và Session Initiation Protocol (SIP) khi sử dụng NAT.
 

 

 

 

pfSense được dựa trên FreeBSD và giao thức Common Address Redundancy Protocol (CARP) của FreeBSD, cung cấp khả năng dự phòng bằng cách cho phép các quản trị viên nhóm hai hoặc nhiều tường lửa vào một nhóm tự động chuyển đổi dự phòng. Vì nó hỗ trợ nhiều kết nối mạng diện rộng (WAN) nên có thể thực hiện việc cân bằng tải. Tuy nhiên có một hạn chế với nó ở chỗ chỉ có thể thực hiện cân bằng lưu lượng phân phối giữa hai kết nối WAN và bạn không thể chỉ định được lưu lượng cho qua một kết nối.
 
Cài đặt pfSense

Để cài đặt trước tiên bạn phải download pfSense và chọn giữa gói được nhúng hoặc một gói CD ISO. Bạn chỉ nên chọn gói được nhúng nếu sẽ sử dụng nó trên một thiết bị mạng sử dụng công nghệ flash cho lưu trữ. Hầu hết mọi người nên chọn CD ISO cho các máy tính thông thường. Để chạy pfSense đúng cách, bạn cần một “box” với cấu hình tối thiểu CPU 100MHz với 128MB Ram và có ít nhất hai card giao diện mạng (NIC), một cho LAN và một cho WAN. Yêu cầu tối thiểu này đáp ứng được cho thông lượng nhỏ hơn 10Mbps. Khi thông lượng mạng của bạn và tính năng sử dụng tăng, thì các yêu cầu của pfSense cũng tăng theo. Hãy kiểm tra trên trang của pfSense để có được các chi tiết kỹ thuật thích hợp nhất cho các yêu cầu của bạn.

Chúng tôi đã download 60MB gói CD ISO và đã burn nó vào một đĩa. Khi khởi động từ CD, bạn sẽ thấy một số tùy chọn. Nếu đây là cài đặt ban đầu cho pfSense bạn hãy chọn tùy chọn mặc định. Quá trình khởi động ban đầu sẽ thiết lập VLAN và chọn giao diện cho LAN và WAN. Bạn có thể tự động phát hiện các thiết lập giao diện nhưng phải bảo đảm rằng các giao diện đã được kết nối. Nếu chưa được kết nối, bạn sẽ phải nhập vào tên các giao diện một cách thủ công. Trong cài đặt của chúng tôi,  chúng tôi chọn le0 cho giao diện LAN và le1 cho WAN.

Sau cấu hình ban đầu, quá trình khởi động sẽ tiếp tục cho tới khi bạn vào được giao diện điều khiển của pfSense, giao diện này là một menu đơn giản cho phép bạn cấu hình các thiết lập giao diện, kích hoạt cấu hình Web và các dịch vụ khác, thiết lập lại cấu hình mặc định của nhà máy, cài đặt pfSense vào ổ đĩa cứng. pfSense sẽ tự động gán địa chỉ IP cho giao diện LAN, nhưng chúng tôi đã sử dụng một địa chỉ riêng chính vì vậy đã thay đổi địa chỉ IP của LAN để địa chỉ mới sẽ được sử dụng trong suốt quá trình cài đặt trên đĩa cứng. Bạn phải format và tạo partition đĩa trước khi cài đặt pfSense. Nếu bạn chọn partition được khuyến khích thì pfSense sẽ tạo nó cho bạn. Mặc dù vậy bạn vẫn có tùy chọn để tạo một partition layout của riêng mình.

Trong cài đặt của chúng tôi, chúng tôi đã chọn partition mặc định được khuyên dùng. Trong suốt quá trình cài đặt, pfSense sẽ hỏi bạn về kiểu hệ thống mà bạn muốn cài đặt nó trên. Bạn có thể chọn trạm thông thường (một uniprocessor hoặc multiprocessor), một trạm không có bất kỳ giao diện điều khiển hoặc bàn phím hoặc hệ thống nhúng. Chúng tôi đã chọn hệ thống uniprocessor. Sau khi cài đặt, khởi động lại máy tính và sử dụng tùy chọn cấu hình địa chỉ  IP của LAN, truy cập vào giao diện cấu hình Web.

 
Sử dụng pfSense

Cấu hình của pfSense cũng không khác với các cấu hình của bất cứ firewall và router mạng nào có sử dụng cấu hình Web. Sau khi đăng nhập bằng username và password mặc định, bạn có thể cấu hình các giao diện của tường lửa và các rule cho nó. Để việc quản lý trên Web an toàn, cần thay đổi mật khẩu mặc định và thiết lập kiểu session thành HTTPS trên các thuộc tính cài đặt chung. Ở đây bạn cũng có thể thiết lập các thiết lập DNS của tường lửa.

 

Cấu hình LAN hoàn toàn rất đơn giản. Nếu bạn chưa thực hiện thì trước khi cài đặt, bạn chỉ cần thiết lập địa chỉ IP. Trong giao diện WAN, có thể chọn giữa nhiều kết nối khác nhau như Static, Dynamic Host Configuration Protocol (DHCP), Point-to-Point Protocol trên cáp Ethernet (PPPoE) và BigPond. Chọn kết nối thích hợp như được cấu hình bởi ISP của bạn.

 

Khi đã cấu hình các giao diện mạng đúng cách, bạn có thể thiết lập các chính sách tường lửa. Cũng như bất kỳ thiết bị tường lửa nào, việc thiết lập chính sách tường lửa yêu cầu bạn phải chọn một giao diện (WAN hoặc LAN), địa chỉ nguồn, cổng và địa chỉ đích, các giao thức và dịch vụ và các kiểu hành động như cho qua, khóa hoặc reject. Hành động khóa sẽ drop hoàn toàn các gói dữ liệu trong khi đó hành động reject sẽ trả về một đáp trả "unreachable" cho host đang khởi tạo kết nối. Để bảo mật, bạn nên chọn hành động khóa hơn là reject. Trong Firewall bạn cũng có thể cấu hình các thiết lập NAT nếu cần sử dụng cổng chuyển tiếp cho các dịch vụ hoặc cấu hình NAT tĩnh (1:1) cho các host cụ thể. Thiết lập mặc định của NAT cho các kết nối outbound là automatic/dynamic, tuy nhiên bạn có thể thay đổi kiểu manual nếu cần. Chúng tôi đã test một số rule tường lửa đã được tạo chẳng hạn như các rule cho việc khóa truy cập FTP vào các mạng bên ngoài và pfSense đã khóa dịch vụ này một cách thành công.

 

Chúng tôi cũng test các tính năng VPN của pfSense. Nó hỗ trợ IPSec, OpenVPN, và cả PPTP. Nếu bạn cần một kết nối VPN nhanh và có ít băng thông hiện hữu so với được yêu cầu bởi các kết nối SSL VPN mà vẫn đảm bảo bảo mật tốt, hãy chọn IPSec VPN. Nếu bạn đã quản lý cấu hình IPSec VPN trước đây, khi đó bạn sẽ thấy rằng việc cấu hình IPSec trong VPN rất đơn giản và có thể được thực hiện trong một vài phút. Bảo đảm rằng các tham số cho các thuật toán trong sử dụng đều chung nhau cho cả hai một cách xuyên suốt. Cũng cần lưu ý thêm là có một số hạn chế của IPSec VPN trên

 
pfSense Developers Wiki. Với cấu hình IPSec đơn giản, các hạn chế của pfSense có thể vẫn đảm bảo ở mức độ nào đó và nó làm việc tốt với các cài đặt (liền kề) site-to-site mà chúng tôi đã test. Mặc dù vậy với các ứng dụng quan trọng liên quan đến việc giải quyết các máy khác di động và sự thẩm định thì bạn sẽ thấy sự thiếu và hạn chế trong cấu hình IPSec của pfSense.

Nếu bạn có các máy khác VPN vẫn sử dụng các kết nối PPTP dial-up thì pfSense sẽ hỗ trợ đầy đủ PPTP.

Các tính năng khác của pfSense phải kể đến như khả năng kết nối WAN của nó và sự cân bằng tải. Bạn có thể thiết lập một "captive portal", cổng điện tử yêu cầu người dùng truy cập vào mạng phải thẩm định bản thân anh ta thông qua một cơ sở dữ liệu nội bộ hoặc Remote Authentication Dial-In User Service (RADIUS) trước khi được phép vào. Với người dùng muốn truy cập mạng của bạn bằng PPPoE thì máy chủ PPPoE đã hiện hữu và sự thẩm định có thể được sử dụng nội bộ hoặc thông qua RADIUS.

 
Việc kiểm tra và ghi các sự kiện trong pfTools diễn ra hoàn toàn dễ dàng. Nó sẽ thể hiện cho bạn bằng biểu đồ RRDtool thời gian thực, hiển thị ảo mỗi quá trình hoạt động trong máy tính của bạn, chẳng hạn như lưu lượng và các quá trình của hệ thống. Các bản ghi đều được tổ chức và có thể tìm một cách dễ dàng. Bên cạnh đó cùng với các công cụ chuẩn đoán bên trong như traditional traceroute và packet sniffer, giúp cải thiện việc khắc phục sự cố một cách hiệu quả và rất hữu dụng.

 

Mặc dù một số tính năng cần cải thiện nhưng các khả năng pfSense hiện đang cung cấp đáp ứng được một mạng văn phòng. Nó cũng dễ dàng trong quản lý và cung cấp nhiều tính năng để như trong các sản phẩm thương mại. Mặc dù vậy một số tính năng đã được sử dụng trong các doanh nghiệp lớn vẫn còn nhiều hạn chế, chính vì vậy chúng tôi không khuyên các bạn sử dụng trong môi trường lớn như vậy. Với cộng đồng phát triển tích cực của ứng dụng này, dự án nên giải quyết các vấn đề này đó như các tính năng mới được bổ sung.
 

Với khả năng đa WAN của nó và cân bằng tải, bạn hoàn toàn có thể bổ sung pfSense vào danh sách các giải pháp firewall/router mạng đang phát triển, giá thành thấp hoặc miễn phí.  

 

Bạn có thể sử dụng OpenVPN để khắc phục một số hạn chế trên của IPSec. OpenVPN có thể cho phép tăng độ an toàn vì nó sử dụng SSL. Chỉ có một ngược điểm ở đây là nó yêu cầu nhiều overhead do SSL, điều này cũng nó nghĩa sẽ ngốn nhiều băng thông hơn IPSec.

 
pfSense hỗ trợ VPN trong sử dụng Internet Protocol Security (IPSec), OpenVPN hoặc PPTP. Do có một số hạn chế với NAT nên IPSec VPN cũng bị hạn chế khi kết nối thông qua NAT, hạn chế ở đây thể hiện ở chỗ thiếu đi sự hỗ trợ cho các máy khách VPN di động hoặc từ xa. Phần mềm cũng thiếu các tính năng IPSec nâng cao như NAT Traversal trong Internet key exchange (IKE), thành phần vẫn được biết đến với tên NAT-T và Xauth. Bạn có thể chọn OpenVPN khắc phục một số hạn chế đó, tuy nhiên vẫn có một số hạn chế khác mặc dù nhóm phát triển đã hứa hẹn sẽ giải quyết các hạn chế đó trong phiên bản kế tiếp
Bài viết khác: