13 Viewing the Firewall Logs

firewall tạo ra các log entries cho mỗi rule để cấu hình log và cho dành cho default deny rule. Có một số cách để xem các log entries, mỗi loại có mức độ chi tiết khác nhau. Không có phương pháp nào chắc chắn “tốt nhất” vì nó phụ thuộc vào sở thích và trình độ kỹ năng của quản trị viên firewall, mặc dù sử dụng GUI là phương pháp dễ dàng nhất.

13.1 Viewing in the WebGUI

Firewall logs hiển thị trong WebGUI tại Status > System Logs, tại tab Firewall. Các bản ghi log có thể được xem như một bản ghi log đã được phân tích cú pháp, dễ đọc hơn hoặc như một bản ghi raw log, chứa nhiều chi tiết hơn. Ngoài ra còn có một cài đặt để hiển thị các mục này theo thứ tự forward hoặc reverse. Nếu thứ tự các mục ghi log được hiển thị là unknown, hãy kiểm tra dấu thời gian của dòng đầu tiên và dòng cuối cùng hoặc kiểm tra Thay đổi Changing Log Setting để biết thông tin về cách xem và thay đổi các cài đặt này.

Phân tích cú pháp WebGUI logs và nó có 7 cột : Action, Time, InterfaceRule, Source, DestinationProtocol.

  • Action Hiển thị những gì đã xảy ra với gói tin tạo mục bản ghi log
  • Time Thời gian mà các gói tin đến
  • Interface Nơi gói tin đi vào firewall
  • Rule Quy tắc hoạt động đuộc áp dụng với firewall VD: Pass, Block, Reject
  • Source Nguồn địa chỉ IP và port
  • Destination Địa chỉ IP và port đích
  • Protocol Giao thức của gói tin, ví dụ: ICMP, TCP, UDP, …

pfsense 88 - Firewall trong pfSense- 8 (Tìm Hiểu Về PfSense Phần 19)

Icon Action là một liên kết sẽ tra cứu và hiển thị rule mục bản ghi log. Thông thường, điều này cho biết “Default Deny Rule”, nhưng khi troubleshooting rule , nó có thể giúp thu hẹp các nghi phạm gây ra lỗi.

Bên cạnh các địa chỉ IP nguồn và đích là pfsense 89 - Firewall trong pfSense- 8 (Tìm Hiểu Về PfSense Phần 19). Khi click vào icon này firewall sẽ thực hiện tra cứu DNS trên địa chỉ IP. Nếu địa chỉ có hostname hợp lệ, nó sẽ được hiển thị bên dưới địa chỉ IP trong tất cả các trường hợp của địa chỉ đó trên trang.

13.2 Viewing from the Console Menu

Các bản raw log có thể được xem và theo dõi trong thời gian thực từ filter.log sử dụng tùy chọn 10 từ console menu.

13.3 Viewing from the Shell

Khi sử dụng shell, từ SSH hoặc từ console, có rất nhiều tùy chọn có sẵn để xem filter log.

Khi xem trực tiếp nội dung của clog file, các mục log có thể khá phức tạp và dài dòng.

Viewing the current contents of the log file

Filter log được chứa trong một circular log dưới dạng nhị phân nên các công cụ truyền thống như cat, grep,… không thể được sử dụng trực tiếp trên file. Log phải được đọc lại bằng chương trình clog, và sau đó có thể được chuyển qua chương trình khác.

Để xem toàn bộ nội dung của file log, hãy chạy lệnh sau:

# clog /var/log/filter.log

Để hạn chế đầu ra log vào vài dòng cuối cùng,nối nó thông qua tail:

# clog /var/log/filter.log | tail

Following the log output in real time

Để “follow” đầu ra của log file, hãy sử dụng tham số -f cho clog. Điều này tương đương với tail -f cho những người được sử dụng để làm việc với các log files thông thường trên hệ thống UNIX:

# clog -f /var/log/filter.log

Thao tác này sẽ xuất ra toàn bộ nội dung của file log nhưng sau đó sẽ không quit. Thay vào đó, nó sẽ đợi nhiều mục nhập hơn và in chúng khi chúng xảy ra. Đầu ra này cũng có thể được chuyển đến các lệnh khác nếu cần.

Viewing parsed log output in the shell

Có một trình phân tích cú pháp bản ghi log đơn giản được viết bằng PHP có thể được sử dụng từ shell để tạo ra kết quả giảm thay vì toàn bộ raw log. Để xem nội dung được phân tích cú pháp của bản ghi log hiện tại, hãy chạy:

# clog /var/log/filter.log | filterparser.php

Các mục nhập bản ghi log xuất một mục trên mỗi dòng, với đầu ra được đơn giản hóa:

Aug 3 08:59:02 block igb1 UDP 198.51.100.1:67 198.51.100.2:68

Finding the rule which caused a log entry

Khi xem một trong các định dạng raw log, mục nhập sẽ hiển thị số ID. Trong ví dụ sau, rule với id 1000000103:

# pfctl -vvsr | grep 1000000103
@5(1000000103) block drop in log inet all label "Default deny rule IPv4"

Như được hiển thị trong đầu ra ở trên, đây là Default deny rule cho IPv4.

13.4 Why are there blocked log entries for legitimate connections?

Đôi khi mục ghi log có mặt đó, trong khi gắn nhãn với “Default deny” rule, xuất hiện như thể chúng thuộc về các kết nối hợp lệ. Ví dụ phổ biến nhất là thấy một kết nối bị block liên quan đến web server.

Điều này có thể xảy ra khi một gói tin TCP FIN, thường đóng kết nối, đến sau khi trạng thái của kết nối đã bị xóa hoặc khi nhận được ACK ngoài thời gian window có thể chấp nhận được. Điều này xảy ra vì đôi khi một gói tin sẽ bị mất hoặc bị delay và việc truyền lại sẽ bị chặn vì tường lửa đã đóng kết nối.

Các mục ghi log này vô hại và không chỉ ra kết nối bị chặn hiện có. Tất cả trạng thái firewall đều thực hiện điều này, mặc dù một số không tạo ra thông báo bản ghi log cho lưu lượng truy cập bị block này ngay cả khi tất cả lưu lượng truy cập bị chặn đã được ghi lại.

Hành vi này sẽ xuất hiện ngay cả khi kiểu “allow all” rule tồn tại trên tất cả các interface firewall bởi vì một rule thiết lập để “allow all” cho các kết nối TCP chỉ cho phép TCP SYN gói để tạo ra một trạng thái. Tất cả lưu lượng truy cập TCP khác hoặc là một phần của một trạng thái hiện có trong State Table, hoặc sẽ là các gói dữ liệu với giả mạo hoặc sẽ là các gói tin TCP flag giả mạo hoặc không hợp lệ.

14 How Do I Block access to a Web Site?

14.1 Using DNS

Nếu DNS Resolver hoặc Forwarder tích hợp đang hoạt động có thể đuợc nhập ghi đè ở đó để giải quyết trang web không mong muốn thành một địa chỉ IP không hợp lệ như 127.0.0.1.

14.2 Using Firewall Rules

Nếu một website hiếm khi thay đổi địa chỉ IP, truy cập vào nó có thể bị chặn bằng cách sử dụng một alias có chứa địa chỉ IP của nó và sau đó sử dụng alias này trong firewall rule. Đây không phải là một giải pháp khả thi cho các trang web trả về TTLs thấp và trải rộng tải trên nhiều server và/hoặc trung tâm dữ liệu, chẳng hạn như Google và các trang web rất lớn tương tự. Hầu hết các website có kích thước nhỏ đến trung bình đều có thể bị block hiệu quả bằng phương pháp này vì chúng hiếm khi thay đổi địa chỉ IP.

Hostname cũng có thể nằm trong network alias. Hostname sẽ được giải quyết định kỳ và cập nhật khi cần thiết. Điều này hiệu quả hơn việc tra cứu địa chỉ IP theo cách thủ công, nhưng vẫn sẽ thiếu hụt nếu trang web trả về các bản ghi DNS theo cách thay đổi nhanh chóng hoặc kết quả ngẫu nhiên từ pool của các server trên mỗi truy vấn, điều này phổ biến cho các website lớn.

Một tùy chọn khác là tìm tất cả các IP subnet chỉ định của trang web, tạo alias với các mạng đó và block lưu lượng truy cập đến các đích đó. Điều này đặc biệt hữu ích với các website như Facebook trải rộng một lượng lớn không gian địa chỉ IP, nhưng bị hạn chế trong một vài net block. Sử dụng các website đăng ký khu vực như ARIN có thể giúp theo dõi các mạng đó.

Để thay thế cho việc tra cứu các IP block theo cách thủ công, hãy xác định vị trí số BGP Autonomous System (AS) của công ty mục tiêu bằng cách thực hiện tra cứu whois trên một trong các địa chỉ IP của chúng, sau đó sử dụng số đó để tìm tất cả các phân bổ của chúng.

14.3 Using a Proxy

Nếu lưu lượng truy cập web đi qua proxy server, proxy server đó có thể được sử dụng để ngăn truy cập vào các trang web đó. Ví dụ: Squid có một tiện ích bổ sung được gọi là SquidGuard cho phép chặn các trang web theo URL hoặc các tiêu chí tương tự khác.

14.4 Prevent Bypassing Restrictions

Với bất kỳ phương pháp nào ở trên, có nhiều cách để vượt qua các block đã xác định. Cách dễ nhất và có khả năng phổ biến nhất là sử dụng bất kỳ số lượng website proxy nào. Tìm và bloack tất cả những thứ riêng lẻ này và giữ cho danh sách được cập nhật là không thể. Cách tốt nhất để đảm bảo các website này không thể truy cập được là sử dụng proxy bên ngoài hoặc filter nội dung có khả năng block theo danh mục.

Để tiếp tục duy trì điều khiển, sử dụng một ruleset đầu ra hạn chế và chỉ cho phép lưu lượng truy cập ra các dịch vụ cụ thể và/hoặc các host. Ví dụ, chỉ cho phép truy cập DNS vào firewall hoặc các DNS server đặc biệt được sử dụng cho mạng LAN client. Ngoài ra, nếu một proxy được sử dụng trên mạng, hãy đảm bảo không cho phép truy cập trực tiếp vào HTTP và HTTPS thông qua firewall và chỉ cho phép lưu lượng truy cập đến từ proxy server

15 Troubleshooting Firewall Rules

15.1 Check The Firewall Logs

Bước đầu tiên khi troubleshooting nghi ngờ bị block lưu lượng truy cập là kiểm tra các bản ghi log firewall (Status > System Logs, trên Firewall tab).

Bởi mặc định pfSense sẽ ghi lại tất cả lưu lượng truy cập bị dropped và sẽ không ghi lại bất kỳ lưu lượng truy cập nào đã vượt qua. Trừ khi các rule bị block hoặc reject có trong ruleset không sử dụng bản ghi log, tất cả lưu lượng truy cập bị block sẽ ghi lại log. Nếu không có mục bản ghi log nào có màu đỏ pfsense 90 - Firewall trong pfSense- 8 (Tìm Hiểu Về PfSense Phần 19) trong firewall log khớp với lưu lượng truy cập được đề cập, pfSense không có khả năng làm drop lưu lượng truy cập.

15.2 Check the State Table

Cố gắng kết nối và kiểm tra ngay bảng trạng thái tại Diagnostics > States, và filter trên nguồn hoặc đích để xem liệu trạng thái có tồn tại hay không. Nếu một mục nhập State Table có mặt thì firewall đã vượt qua lưu lượng truy cập.

pfsense 91 - Firewall trong pfSense- 8 (Tìm Hiểu Về PfSense Phần 19)

Nếu một rule được đề cập là rule đã vượt qua mục nhập state table có nghĩa là firewall đã truyền lưu lượng truy cập và sự cố có thể ở nơi khác chứ không phải trên firewall.

Nếu rule là một block rule và có mục nhập state table, kết nối đang mở sẽ không bị cắt. Để xem hiệu ứng ngay lập tức từ block rule, các trạng thái phải được đặt lại.

15.3 Rules and Interfaces 

Đảm bảo các rule nằm trên interface chính xác để hoạt động như dự kiến. Lưu lượng truy cập khi được filter bởi ruleset được chỉ định cấu hình trên interface nơi bắt đầu lưu lượng truy cập. Lưu lượng truy cập đến từ một hệ thống trên mạng LAN dành cho một hệ thống trên bất kỳ interface nào khác chỉ được filter bởi các rule mạng LAN. Điều này cũng đúng đối với tất cả các interface khác.

15.4 Enable Rule Logging

Xác định rule nào phù hợp với lưu lượng truy cập được đề cập. Các bộ đếm lượt truy cập trong danh sách rule có thể trợ giúp điều này ở một mức độ nào đó. Bằng cách cho phép ghi log trên pass rule, firewall log sẽ hiển thị cụ thể một mục nhập riêng lẻ để xác định rule nào đã pass qua kết nối.

15.5 Troubleshooting with packet captures

Gói tin Captures có thể là quý giá để khắc phục sự cố và gỡ lỗi các vấn đề về lưu lượng truy cập. Với một gói tin capture, nó rất dễ dàng để cho biết nếu lưu lượng truy cập đạt đến interface bên ngoài hoặc để lại một interface bên trong, trong số nhiều công dụng khác.

15.6 New Rules Are Not Applied 

Nếu một rule mới không được áp dụng, có một số cách giải thích sau.

Đầu tiên, Nếu rule là một block rule và có một mục nhập state table thì kết nối mở sẽ không bị cắt.

pfsense 91 - Firewall trong pfSense- 8 (Tìm Hiểu Về PfSense Phần 19)

Thứ hai,ruleset có thể không được tải lại đúng cách. Kiểm tra Status > Filter Reload để xem nếu có hiển thị lỗi không. Click pfsense 92 - Firewall trong pfSense- 8 (Tìm Hiểu Về PfSense Phần 19) để reload lại filter mới. Nếu một lỗi được hiển thị, giải quyết vấn đề khi cần thiết. Nếu nguyên nhân không rõ ràng, hãy tham khảo các nguồn hỗ trợ để được hỗ trợ.

Nếu không có nguyên nhân nào ở trên gây ra lỗi, có thể rule hoàn toàn không khớp, vì vậy hãy xem lại lưu lượng truy cập và rule một lần nữa.

17 1 - Firewall trong pfSense- 8 (Tìm Hiểu Về PfSense Phần 19)

15.7 Other Causes

Có những nguy hiểm khác trong firewall rule, NAT, Routing và thiết kế mạng có thể cản trở kết nối.

 

0 0 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x