Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - spidysense

#1
Feature Request: GUI-Based Editor for Full Suricata Rule Syntax in OPNsense
Date: August 23, 2025
To: OPNsense Development Team
Subject: Request for Enhanced GUI Support for Adding and Editing Custom Suricata Rules

Summary
I respectfully request the addition of a GUI-based editor in OPNsense to allow users to manually add and edit full Suricata rules with complete syntax support, including advanced keywords such as fileext, http.method, and pcre. This feature would enhance the usability of the Suricata IDS/IPS plugin by eliminating the need for SSH-based file editing, which is currently required for complex rule definitions.

Current Limitation
The Services > Intrusion Detection > User Defined tab in OPNsense 25.7.2 provides a form for adding custom rules, but it is limited to basic fields: Enabled, Source IP, Destination IP, SSL/Fingerprint, and Action. These fields support simple IP-based or SSL fingerprint rules but do not allow users to specify advanced Suricata keywords or protocol-specific conditions. For example, to detect .dat file exfiltration via HTTP uploads, a rule like the following is needed:

drop http $HOME_NET any -> $EXTERNAL_NET any (msg:"Blocked .dat File Exfiltration via HTTP Upload"; http.method; content:"POST"; nocase; fileext:"dat"; filestore; sid:1000010; rev:2;)

OR

drop http $HOME_NET any -> $EXTERNAL_NET any (msg:"Blocked .dat File Exfiltration via HTTP Upload"; http.method; content:"POST"; nocase; fileext:"dat"; filestore; sid:1000010; rev:2;) drop ftp $HOME_NET any -> $EXTERNAL_NET any (msg:"Blocked .dat File Exfiltration via FTP"; fileext:"dat"; filestore; sid:1000011; rev:2;) drop smtp $HOME_NET any -> $EXTERNAL_NET any (msg:"Blocked .dat File Exfiltration via SMTP"; fileext:"dat"; filestore; sid:1000012; rev:2;) drop smb $HOME_NET any -> $EXTERNAL_NET any (msg:"Blocked .dat File Exfiltration via SMB"; fileext:"dat"; filestore; sid:1000013; rev:2;) drop nfs $HOME_NET any -> $EXTERNAL_NET any (msg:"Blocked .dat File Exfiltration via NFS"; fileext:"dat"; filestore; sid:1000014; rev:2;) drop dns $HOME_NET any -> $EXTERNAL_NET any (msg:"Blocked .dat File Exfiltration via DNS Tunneling"; dns.query; content:".dat"; nocase; pcre:"/^[a-f0-9]{32,}.dat$/"; sid:1000015; rev:2;)

This requires editing /usr/local/etc/suricata/rules/custom.rules via SSH, which is inaccessible to users without CLI experience or those in restricted environments where SSH is disabled for security reasons. Additionally, the absence of a GUI-based file editor under System > Diagnostics in some installations (e.g., 25.7.2) further complicates manual rule management.

Impact

Accessibility: Users without SSH access or CLI expertise cannot implement advanced Suricata rules, limiting the IDS/IPS functionality for non-technical administrators.

Security Risks: Enabling SSH to edit configuration files introduces potential security vulnerabilities, especially in production environments where SSH is disabled.

Use Case Example: Detecting file exfiltration (e.g., .dat or .pdf files via HTTP, FTP, SMTP, SMB, NFS, or DNS) requires complex rules with fileext and protocol-specific keywords. Without GUI support, users must resort to manual file edits, increasing the risk of errors and configuration issues.

Efficiency: Manual SSH-based edits are time-consuming and error-prone, requiring validation steps (e.g., suricata -T) that are not integrated into the GUI workflow.

Proposed Solution
I propose adding a Custom Rule Editor to the OPNsense GUI, either within Services > Intrusion Detection > User Defined or as a new tab (e.g., Custom Rules).

The editor should include:

Text-Based Rule Input:
A text area for entering full Suricata rule syntax, supporting all keywords (e.g., fileext, http.method, dns.query, pcre).
Syntax highlighting or validation to catch errors (e.g., invalid SIDs, missing semicolons).


Rule Management:
Options to add, edit, delete, enable/disable, and assign SIDs to custom rules.
Ability to group rules into categories (e.g., "File Exfiltration") for organization.


Integration with Suricata:
Automatic addition of rules to /usr/local/etc/suricata/rules/custom.rules (or a similar file).
Validation button to run suricata -T and display errors within the GUI.
Option to reload Suricata after changes (equivalent to service suricata restart).


Configuration Checks:
Automatic verification of prerequisites (e.g., file-store and fileinfo enabled in suricata.yaml for fileext rules).
Warnings for undefined variables (e.g., $HOME_NET) with suggestions to configure them in Global Settings.

Benefits

User Accessibility: Enables non-technical users to leverage Suricata's full capabilities without CLI knowledge, broadening OPNsense's audience.

Security: Reduces reliance on SSH, aligning with secure configurations where SSH is disabled.
Efficiency: Streamlines rule creation and management within the familiar GUI, reducing errors and configuration time.
Flexibility: Supports advanced use cases (e.g., file exfiltration detection, custom protocol monitoring) not possible with the current User Defined form.
Consistency: Aligns with other OPNsense features (e.g., firewall rule editor) that offer robust GUI controls.

Use Case Example
To detect and block .dat file exfiltration, users need to implement rules like I posted above.

Currently, this requires SSH access to edit /usr/local/etc/suricata/rules/custom.rules and verify /usr/local/etc/suricata/suricata.yaml, which is cumbersome and inaccessible in some environments. A GUI editor would allow users to input this rule directly, validate it, and apply it without leaving the web interface.

Additional Notes

Community Support: OPNsense forum threads and GitHub issues (e.g., #8232, #3472) highlight user demand for enhanced Suricata rule management, suggesting this feature would be well-received.

Implementation Feasibility: Similar GUI-based rule editors exist in competing platforms (e.g., pfSense's Snort/Suricata interfaces), providing a model for development.

Fallback: If a full editor is resource-intensive, consider adding a System > Diagnostics > Edit File option for suricata.yaml and custom.rules to all OPNsense versions, as it's missing in some 25.7.2 installations.

Conclusion
Adding a GUI-based editor for full Suricata rule syntax would significantly enhance the usability and security of OPNsense's IDS/IPS functionality. It would empower users to implement advanced rules for scenarios like file exfiltration detection without requiring CLI access, aligning with OPNsense's user-friendly design. We appreciate the development team's efforts and look forward to your consideration of this feature.

Thank you.
#2
So the Floating rule should be:

Source: Any
Destination: (alias) Blocklist

This would be any (source) network on my LAN blocking traffic to that IP address. I thought by selecting interface LAN/WAN would block this IP going in and out with any protocol.

I just want to make sure no traffic in or out is going to or coming from the IP in the alias. Is there more I need to add to this rule for that?
#3
UPDATED THIS POST TO SHOW THE CORRECT ANSWER
OPNsense 24.7.12_2-amd64

Set up an alias: Firewall-> Alias
Named it: blocklist
** Type: Host(s)
Content: 34.107.243.93 (single IP example)

Created Firewall Floating Rule: Firewall-> Rules-> Floating
Action: Block
Apply the action immediatly on match: checked
Interface: LAN & WAN
Direction: any
TCP/IP Version: IPv4
Protocol: any
Source: any
Destination: (alias) blocklist

PLACES TO CHECK

If not blocking, Try: Firewall-> Diagnostic-> States-> Actions-> Reset state table

Firewall-> Diagnostics-> Aliases-> (alias name) blocklist
Should show the IP address to be blocked

** ALIAS TYPES

Host(s): This type allows you to define individual IP addresses or subnets (CIDR blocks).
Usage: It's useful when you want to create an alias that contains a list of specific IP addresses
Example: 192.168.1.100, 10.0.0.0/24, 203.0.113.0/32.

URL (IPs): This type allows you to specify a URL that contains a list of IP addresses (the URL will return a plain list of IPs, typically in a text format).
Usage: It's useful for dynamically pulling a list of IP addresses from a URL (such as a publicly available threat intelligence feed).
Example: You could enter a URL that points to an IP blocklist file, and OPNsense will download and parse that list to use it in the alias.
Example URL: https://lists.blocklist.de/lists/all.txt

URL Table (IPs): This type allows you to define an alias based on a list of IP addresses that is fetched from a URL, similar to the URL (IPs) type. However, in this case, OPNsense treats the list as a "table" and will update the list periodically (according to the refresh interval you specify) and maintain it in memory for use in firewall rules.


#4
This fixed the issue. Thank you.
#5
Zenarmor (Sensei) / ZenArmor - Database Issue Error 200
November 27, 2024, 07:34:14 PM
I keep getting "Error 200" when trying to view the Zenarmor logs or Live Sessions in the GUI. I cant see the logs at all. Also the database will not start, even after reboot. I tried to reinstall the zenarmor packages. That didnt help.



#6
Is there a way to upload custom Suricata rulesets using the GUI? At one point we use to be able to do this but it doesn't look like its availaible any longer. Here was an old way:

Step 1: Navigate to the Suricata Settings

    - In the OPNsense dashboard, go to Services > Intrusion Detection.
    - Click on the "Signatures" tab.

Step 2: Add Custom Suricata Rules

    - Scroll down to the "Local Rules" section.

Here, you can add custom rules directly into the Suricata rule configuration:
You can paste the contents of your custom rules into the box.
Alternatively, you can specify a custom rule file location (more advanced).
#7
I have this same problem. It immediatly pops up with a new schedule creation. When clicking Cancel, it take you out of the schedule tab.
#8
TO get your Plex server Fully accessible outside your network

Firewall -> Nat -> Port Forward
From this page click + (add)
No RDR: unchecked
Interface: WAN
TCP/IP Version: IPv4
Protocol: TCP
Source: Any
Source Port Range: any/any
Destination: WAN Address
Destination port range: (other) 32400/32400
Redirect target IP: Plex server internal IP
Redirect target port: (other) 32400
Pool Options: Default
Description: Plex Media Server
NAT Reflection: Enable
Filter Rule Association: Pass

Services-> Unbound DNS-> Advanced-> Private Domains-> plex.direct

Firewall-> Settings -> Advanced
Reflection for port forwards: checked
Reflection for 1:1: checked
Automatic outbound NAT for Reflection: checked
Firewall Optimization: normal
#9
General Discussion / Cannot Brridge LAN & Wifi
October 11, 2018, 08:12:30 PM
Every time I follow these instructions to bridge my LAN & WIFI card I get this error:

Bridging a wireless interface is only possible in hostap mode.

How do I bridge Lan & Wifi?

Trying this: https://forum.opnsense.org/index.php?topic=5066.0
and this: https://www.cyberciti.biz/faq/howto-configure-wireless-bridge-access-point-in-pfsense/

Wifi card is a Dell DP/N: 0MX846.
https://www.pchub.com/uph/laptop/279-79033-1500/Dell-Common-Item-Dell-Wireless-LAN-Card.html

Also tried a Realtek RTL81878 MOW 11b/g and got the same error.
#10
I'm using Suricata IPS. It keeps blocking a single specific IP address with a rule. I would like to keep the rule in place just not block the single IP. What is the correct way to whitelist the IP address so it is not blocked with the Suricata IPS rule?
#11
Go to:  Services>Intrusion Detection>Administration>Rules

Browse past page 6 of rules, for the example.
Then click a box to enable any rule (furthest box on the right of rule).
This bring you back to page 1 automatically.

This is very annoying while browsing each page and trying to enable individual rules. You have to remember which page you are on to go back and continue where you left off. Enabling a rule should keep you on the same page you enabled the rule from.
#12
Hardware and Performance / Re: wireless dropping?
February 17, 2018, 02:09:04 AM
I have tried several WiFi cards And they all had issues. Instead of using the internal cards I flashed an old Linksys router with DDWRT firmware and used that as an access point. Since then I do not have wireless issues.
#13
Hardware and Performance / Compatible WiFi Cards
February 17, 2018, 02:04:58 AM
If you have a WiFi card installed in your Opnsense box please let us know what brand and model it is and its limitations you have encountered. Thanks!
#14
General Discussion / Re: Best log viewer?
December 09, 2017, 07:59:09 PM
Can you describe how to set that up? Not as simple as installing a package  :-\
#15
17.1 Legacy Series / Re: 17.1.2 - Still have IDPS issues
December 09, 2017, 07:49:34 PM
I get a lot of these alerts:
SURICATA Applayer Detect protocol only one direction

Looking HERE it explains this:
Protocol detection only succeeded in one direction. For FTP and SMTP this is expected.
So if you have been using these protocols from your network then you will see these alerts.