<div dir="ltr">In order to run Suri as an IPS (NFQUEUE mode)  there's many things that come into play.<div>This post asks a couple of things.</div><div>Firstly,</div><div>1. Documentation lends itself to the "how to compile with nfqueue features"</div><div>2. Suggests generically how IPTABLES should be configured.</div><div><br></div><div>I kind of get that we can't account for everybody's environment but a little more detail would be VERY helpful.</div><div><br></div><div>Unless I missed this somewhere in "readthedocs", why does it not address:</div><div>A. Loading the bridge_flt kernel module ie, how and why.. (Very important BTW) </div><div>It can be done very simply but is a critical component. Ubuntu 16.04 specifically doesn't do this by default and tons of noobs get stonewalled by this.</div><div><br></div><div>B. Configuring sysctl flags appropriately to make NFQUEUE work in a bridge with Suri. (also critical) Ubuntu 16.04 specifically doesn't do this by default. If I've missed this in the docs somewhere, sorry I'm asking about it...</div><div><br></div><div>C. Configuring sysctl flags appropriately to make NFQUEUE work in a bridge that has vlan tagged packets. (this area brings a couple of dynamics that are important)</div><div>    1c. enabling more appropriate sysctl flags to deal with VLAN info appropriately.</div><div><br></div><div>    2c. Explanations of bridges handling VLAN tags and how it affects bridge MTU requirements...</div><div><br></div><div>Quote from another list:<br>Suricata looks at your MTU on the interface it is running on and adds 16 for its "Bucket length" (like snaplen on snort but not configurable on suricata). This makes the "snaplen" of data for each packet 1516 if you haven't changed from the default MTU of 1500. This leaves out the VLAN information which makes it almost impossible for the "stream" processor in suricata to actually tell which packets are related to which streams on which VLAN. This can cause website issues, no alerts on logs, etc... The fix is to change your MTU to 1502 which makes suricata again add 16 giving you a total of 1518 "snaplen" which will then be large enough to include the VLAN information.</div><div><br></div><div>Have I missed these things mentioned in the "ReadTheDocs"?</div><div><br></div><div>Also, nothing talks about NFQUEUE tuning..</div><div>for example load balancing NFQUEUE generic example for an 8 core proc:</div><div><font color="#333333">sudo suricata -q 0 -q 1 -q 2 -q 3 -q 4 -q 5 -q 6 -q7 -c /etc/suricata/suricata.yaml</font><br></div><div><font color="#333333"><br></font></div><div><font color="#333333">I know there's a feature request in for this:<br>Feature #2150<br></font></div><div><font color="#333333">How does that play into setting up iptables with:</font></div><div><font color="#333333">iptables -A FORWARD -j NFQUEUE --queue-balance 0:7  (asking about queue balance)<br></font></div><div><font color="#333333"><br></font></div><div><font color="#333333">Does one contradict the other? Can somebody help me understand these two? Pros and cons?</font></div><div><font color="#333333"><br></font></div><div><font color="#333333">I'm also curious why IPTABLES/nftables isn't mentioned more in documentation as a way to separate out unwanted traffic prior to it ever touching the NFQUEUE rule? This indirectly speeds up IDPS engines immensely and I would think is worthy of mention in documentation for NFQUEUE.</font></div><div><br></div><div>Bridge configuration itself for a non networking type can be onerous for a noob too. <br>I'm know FOSS software comes at a price. IE.. "learning". But I'm not opposed to helping them understand what they need either. It took me a very long time to round up all these elements into a cohesive formula that works well. I would offer that more people would use suricata if they could figure it out.<br><br>This list is about helping the community of users. Maybe somebody has already asked them. If so, my apologies for the duplication.<br>CB</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>