<div>Hi Alex, </div><div><br></div><div>Thanks for "NFQ" section, my configuration misses that part, now it is working. Here is my setups, but I am not sure if this the best/efficiency way, I am quite new to network, if I am doing wrong, please comment me, thanks.</div><div><br></div><div>WAN: wlan0</div><div>LAN: eth0, static IP, and all traffic go through this NIC out to internet</div><div>- suricata.yaml</div><div>  </div><div><span style="line-height: 1.5;">  nfq:</span></div><div>     mode: accept</div><div>     ......</div><div>     </div><div>- setup for ubuntu to act as a router</div><div><br></div><div><div style="line-height: 21px;">  # all packets will be sent to suricata, and will not be inspected by the rest of the iptables rules</div></div><div>  iptables -I FORWARD -j NFQUEUE --queue-num 0    </div><div><span style="line-height: 1.5;">  </span></div><div><span style="line-height: 1.5;">  # make it as a router</span></div><div>  iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE</div><div>  echo "1" > /proc/sys/net/ipv4/ip_forward</div><div>  echo "1" > /proc/sys/net/ipv4/ip_dynaddr</div><div>  </div><div>  # offload to CPU</div><div>  ethtool --offload eth0 rx off tx off</div><div><br></div><div>- start suricata:</div><div><br></div>  sudo suricata -c /etc/suricata/suricata.yaml -q 0<div><br><div>- And after run all of above, here are two working iptables rules:</div><div><br></div><div><div>  Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)</div><div>   pkts bytes target     prot opt in     out     source               destination</div><div>   7750K 1972M NFQUEUE    all  --  *      *       0.0.0.0/0            0.0.0.0/0            NFQUEUE num 0</div></div><div><div>  Chain POSTROUTING (policy ACCEPT 46 packets, 3169 bytes)</div><div>   pkts bytes target     prot opt in     out     source               destination</div><div>   5982  561K MASQUERADE  all  --  *      wlan0   0.0.0.0/0            0.0.0.0/0</div></div><div><br></div><div>Suricata can drop/reject/alert payloads, and all internal computers can access internet through the suricata box, but i am uncertain about this "<span style="line-height: 1.5;">iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE" is right or not?</span></div><div><br></div><div>Best regards,</div><div>Liao</div><div><br></div><div><div style="font-size: 12px;font-family: Arial Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div><div style="font-size: 12px;background:#efefef;padding:8px;"><div><b>From: </b> "unite";<unite@openmailbox.org>;</div><div><b>Send time:</b> Thursday, Jan 22, 2015 7:01 PM</div><div><b>To:</b> "Liao Zhuodi"<liao_zd@foxmail.com>; <wbr></div><div><b>Cc:</b> "oisf-users"<oisf-users@lists.openinfosecfoundation.org>; <wbr></div><div><b>Subject: </b> Re: [Oisf-users] Make a Ubuntu as a gateway router + Suricatainline probe.</div></div><div><br></div>On 2015-01-22 12:38, Liao Zhuodi wrote:<br>> Hi guys,<br>> <br>> I have a ubuntu box works as a router already (following this<br>> instruction: https://help.ubuntu.com/community/Router ),<br>> and install Suricata 2.1beta2 with NFQueue support, but I a problem to<br>> make it work as inline mode ( instruction here -<br>> https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Setting_up_IPSinline_for_Linux<br>.......</div><div>.......<br><br><br>Hi Liao!<br><br>First of all, in the iptables output  you've posted I can see no NFQUEUE <br>rule. So if you would like to use the nfqueue mode, your iptables should <br>contain rule like this:<br><br>iptables -A FORWARD <your_params> -j NFQUEUE --queue-num 0<br><br>The default queue number for suricata is 0.<br><br>Also note, that if you have that rule in iptables chain and your <br>suricata is not started packets would be just dropped because no one <br>listens to them. I guess you applied that rule while your suricata <br>wasn't started. You can avoid this by applying the rule with option <br>"--queue-bypass", then traffic will pass through even if there is no <br>application listening for nfqueue:<br><br>iptables -A FORWARD <your_params> -j NFQUEUE --queue-num 0 <br>--queue-bypass.<br><br>Also I would remind that to run suricata in IPS NFQUEUE mode you should <br>start it with "-q" key:<br><br>sudo suricata -c /etc/suricata/suricata.yaml -q 0<br><br>where "-c" is for conf file, "-q" states for NFQUEUE mode, 0 - nfqueue <br>number.<br><br>Also I would advice you to read about nfqueue modes and to choose one <br>that fits you the best:<br><br>https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricatayaml <br>(look at the "NFQ" section).<br><br>-- <br>With kind regards,<br>Alex<br></div></div>