-
Notifications
You must be signed in to change notification settings - Fork 0
Overview
The IP2Location pfSense package is comprised of two components.
- pfSense dashboard widget
- IP2Location backend service
The dashboard widget is installed and run on a pfSense instance. Its purpose is to read the firewall's filter log at specified intervals, sending the log entries to the backend service for processing. The widget then receives the processed results from the backend service and displays them visually on a map.
Additionally, the widget allows for the exploration of specific IP addresses and the display of associated geolocation information retrieved from the IP2Location.io API. IP addresses may also be added to the "watch list" where they will be monitored for the number of hits or occurrences observed.
As the dashboard widget is responsible for reading the firewall logs, logs are only processed when the pfSense dashboard page is open in an active session on the pfSense instance. This design is intentional to keep the number of IP addresses processed to a minimum and follows the principles of "don't ask don't tell" and the "if a tree falls in the forest"... For continuous monitoring and capture of IP addresses, an additional service is required (currently under development), installed and run in the background on the pfSense host itself.
The backend service is a separate service that may be installed and run on the pfSense host or preferably on a separate host.
The geolocation and additional details associated with an IP address are obtained from the IP2Location.io API service. You can set up an account for free by visiting https://www.ip2location.io/.
The service is written in Go and is therefore able to be compiled and run on any OS that supports Go lang. Precompiled binaries are provided for Linux and Windows. A precompiled package for pfSense FreeBSD is coming soon.
The host must be reachable from the pfSense instance via TCP port 9999 (which is configurable) and as communication with the service is secured using SSL/TLS, the hostname of the host must be resolvable and match the hostname specified by a valid SSL certificate. If generating a self-signed certificate (refer to the installation instructions), the hostname or IP address of the service's host must be specified when creating the self-signed certificate.
The backend service utilises Redis, the open-source key/pair in-memory database for the persistence of IP addresses and geolocation information retrieved from the IP2Location.io API service. The Redis instance may be run on the same host as the backend service or may be run on any host that is reachable by the backend service. Additionally, an existing installation of Redis or Redis cluster may be used, provided the Redis JSON module is installed and configured. For further information on the installation and configuration of Redis, please refer to https://redis.io/docs/getting-started/installation/.
(As explained by ChatGPT)
A reference to the philosophical thought experiment: "If a tree falls in a forest and no one is around to hear it, does it make a sound?"
This question has been posed for centuries and can be approached in various ways:
Physical Approach: From a purely physical standpoint, when a tree falls, it generates vibrations in the air. These vibrations are what we perceive as sound. So, even if there's no one around to hear it, the tree would still produce these vibrations, hence it makes a sound.
Epistemological Approach: From a knowledge-centred perspective, if there's no conscious entity to observe or experience the event, can we truly say it occurred? This gets into deep questions about observation, existence, and the nature of knowledge.
Linguistic/Definitional Approach: This revolves around how we define "sound." If we define sound as a potential for perception, then the sound doesn't exist unless there's an ear to hear it. If we define sound purely as the physical phenomenon of air vibrations, then it exists whether or not there's an ear present.
Spiritual/Religious Approach: Some might argue that there's always a conscious entity around to witness events, whether it be a deity, spirits, or some form of universal consciousness.
The question is often used to provoke deep thought and to explore the relationships between observation, perception, reality, and knowledge. It doesn't have a single "correct" answer, but serves as a tool for philosophical inquiry.