<html><body bgcolor="#FFFFFF"><div>I Amm,</div><div><br></div><div>You are not missing anything and netfilter is working as expected</div><div><br></div><div>Your rule states put all traffic into the queue. Unless further on the traffic is dropped it will go on.</div>
<div><br></div><div>If you want to do this for a particular port you have to state so explicit<br><br>Enviado desde mi iPhone</div><div><br>El 31/03/2012, a las 13:51, Amm Snort <<a href="mailto:ammdispose-snort@...8167....">ammdispose-snort@...131...</a>> escribió:<br>
<br></div><div></div><blockquote type="cite"><div><div style="color:#000;background-color:#fff;font-family:verdana,helvetica,sans-serif;font-size:10pt"><div><span>Further to dig in to this, I  downloaded a nfq test sample code found at:</span></div>
<div><span><a href="http://netfilter.org/projects/libnetfilter_queue/doxygen/nfqnl__test_8c_source.html">http://netfilter.org/projects/libnetfilter_queue/doxygen/nfqnl__test_8c_source.html</a></span></div><div><br></div><div>
Which simply runs queue 0 and prints info about packets captured on that queue.<span><br></span></div><div><span><br></span></div><div><span>I compiled it</span> and ran it.</div><div><br></div><div style="font-weight:bold;text-decoration:underline">
First iptable rule</div><div>iptables -I INPUT -i ppp1 -j DROP # drop everything</div><div><br></div><div>>>> telnet to port 25 from remote host does not work as expected<br></div><div><br></div><div><span style="font-weight:bold;text-decoration:underline">Now add NFQUEUE</span><br>
</div><div>iptables -I INPUT -i ppp1 -j NFQUEUE # add a
 queue<br></div><div><br></div><div>>>> To my surprise, even this TEST program OPENED ALL THE PORTS.</div><div><br></div><div>Even portscan shows port 22, 80, 3128 all open.<br></div><div><br></div><div><br></div>
<div><br></div><div>I wonder if there is bug in libnetfilter_queue (of kernel 3.3)??</div><div><br></div><div>Is it considering VERDICT OF ACCEPT as iptables ACCEPT?<br></div><div><br></div><div>Or AM I REALLY MISSING SOMETHING?<br>
</div><div> <br></div><div>Amm</div><div><br><blockquote style="border-left:2px solid rgb(16,16,255);margin-left:5px;margin-top:5px;padding-left:5px">  <div style="font-family:verdana,helvetica,sans-serif;font-size:10pt">
 <div style="font-family:times new roman,new york,times,serif;font-size:12pt"> <div dir="ltr"> <font face="Arial"> <hr size="1">  <b><span style="font-weight:bold">From:</span></b> Amm Snort <<a href="mailto:ammdispose-snort@...131...">ammdispose-snort@...131...</a>><br>
 <b><span style="font-weight:bold">To:</span></b> Russ Combs <<a href="mailto:rcombs@...1935...">rcombs@...1935...</a>> <br><b><span style="font-weight:bold">Cc:</span></b> "<a href="mailto:snort-users@...6193...sts.sourceforge.net">snort-users@lists.sourceforge.net</a>" <<a href="mailto:snort-users@lists.sourceforge.net">snort-users@...2652...e.net</a>> <br>
 <b><span style="font-weight:bold">Sent:</span></b> Saturday, 31 March 2012 9:17 AM<br> <b><span style="font-weight:bold">Subject:</span></b> Re: [Snort-users] Snort with NFQUEUE allows everything (even unopened ports)<br>
 </font> </div> <br><div id="yiv910946501"><div><div style="color:#000;background-color:#fff;font-family:verdana,helvetica,sans-serif;font-size:10pt"><div><span>"config daq_mode: inline</span><span>" implies -Q, doesnt it?<br>
</span></div><div><br><span></span></div><div><span>Log shows "nfq DAQ configured to inline."</span></div><div><span>With as well as without -Q<br>
</span></div><div><br></div><div>Snort shows "hydra" alert is proof enough that inline mode is working.<br></div><div><br><span></span></div><div><span><span style="font-weight:bold">But, anyway, I tried with -Q as well</span> .... same result.. packet does not reach DROP rule and gets ACCEPTed.</span></div>
<div><br><span></span></div><div><br><span></span></div><div><span>Converted "alert" rule to "drop" but same result, PORT still becomes OPEN inspite of iptables DROP following iptables NFQUEUE rule.</span></div>
<div><br><span></span></div><div><span>(ofcourse typing "EHLO hydra" drops that packet as expected but my point is I was able to establish connection to port 25 which should not have happened at first place)<br>
</span></div><span></span><div><br><span></span></div><div><span>Also conversion of "alert" rule to "drop" is not a solution, because I may not want to drop everything, sometimes I may just want an alert to be
 logged.<br></span></div><div><br><span></span></div>I am on kernel 3.3 by the way (latest Fedora update), in case it helps in identifying the problem.<br><br>Thank you,<br> <br><div>Amm<br><blockquote style="border-left:2px solid rgb(16,16,255);margin-left:5px;margin-top:5px;padding-left:5px">
  <div style="font-family:verdana,helvetica,sans-serif;font-size:10pt"> <div style="font-family:times new roman,new york,times,serif;font-size:12pt"> <div dir="ltr"> <font face="Arial"> <hr size="1">  <b><span style="font-weight:bold">From:</span></b> Russ Combs <<a href="mailto:rcombs@...1935...">rcombs@...1935...</a>><br>
 <b><span style="font-weight:bold">To:</span></b> Amm Snort <<a href="mailto:ammdispose-snort@...131...">ammdispose-snort@...131...</a>> <br><b><span style="font-weight:bold">Cc:</span></b> "<a href="mailto:snort-users@lists.sourceforge.net">snort-users@lists.sourceforge.net</a>" <<a href="mailto:snort-users@lists.sourceforge.net">snort-users@lists.sourceforge.net</a>> <br>
 <b><span style="font-weight:bold">Sent:</span></b> Saturday, 31 March 2012 12:18 AM<br> <b><span style="font-weight:bold">Subject:</span></b> Re: [Snort-users] Snort with NFQUEUE allows everything (even unopened ports)<br>
 </font> </div> <br><div id="yiv910946501">Try using a drop rule instead of alert.  And the DAQ mode and Snort mode aren't the same thing.  Try adding -Q too.<br><br><div class="yiv910946501gmail_quote">On Fri, Mar 30, 2012 at 2:29 PM, Amm Snort <span dir="ltr"><<a rel="nofollow" target="_blank" href="mailto:ammdispose-snort@...131..."><a href="mailto:ammdispose-snort@...131...">ammdispose-snort@...131...</a></a>></span> wrote:<br>

<blockquote class="yiv910946501gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div style="font-size:10pt;font-family:verdana,helvetica,sans-serif"><div>Hello all,<br>
<span></span></div>
<div><span><br></span></div><div><span>I have setup snort with DAQ NFQUEUE.</span></div><div><span><br></span></div><div><span>My problem is inspite of firewall rule to block all ports, system starts allowing ALL THE PORTS.</span></div>

<div><span><br></span></div><div><span>Without SNORT/NFQUEUE, blocking happens perfectly fine.<br></span></div><div><br><span></span></div><div><span>So either I am making a STUPID mistake (I hope so) otherwise there is a serious SECURITY issue.<br>

</span></div><div><br></div><div><span style="font-weight:bold;text-decoration:underline">System:</span></div><div>Fedora 16 (64 bit)</div><div>Snort version 2.9.2.2 (compiled from src rpm at <a rel="nofollow" target="_blank" href="http://www.snort.org/snort-downloads"><a href="http://www.snort.org/snort-downloads">http://www.snort.org/snort-downloads</a></a>)<br>

</div><div>Daq version 0.6.2 (compiled from src rpm at
 <a rel="nofollow" target="_blank" href="http://www.snort.org/snort-downloads"><a href="http://www.snort.org/snort-downloads">http://www.snort.org/snort-downloads</a></a> with NFQ enabled)<br></div><div><br></div><div style="font-weight:bold;text-decoration:underline">
snort.conf summary:<br>
<span></span></div><div><br><span></span></div><div><span>#monitor connection to LAN and DSL IP (dynamic)<br></span></div><div><span>ipvar HOME_NET [<a rel="nofollow" target="_blank" href="http://192.168.1.0/24,1.2.0.0/16">192.168.1.0/24,1.2.0.0/16</a>]<br>

</span></div><div><span><br></span></div><div><span>config daq: nfq<br>config daq_mode: inline<br>config daq_dir: /usr/lib64/daq<br></span></div><div><br><span></span></div><div><span><span style="font-weight:bold;text-decoration:underline">Command line:</span><br>

</span></div><div><br></div><div>snort  -A fast -b -d -u snort -g snort -c /etc/snort/snort.conf -l /var/log/snort</div><div><br></div><div>(no interface specified, -Q not needed as config daq_mode set to inline)<br></div>

<div><br></div><div><span style="font-weight:bold;text-decoration:underline">Rule File:</span> (just one rule for
 testing)<br></div><div><br></div><div>alert tcp $EXTERNAL_NET any -> $SMTP_SERVERS 25 (msg:"GPL SMTP SMTP 
Hydra Activity Detected"; flow:to_server,established; content:"hydra"; 
nocase; pcre:"/^(EH|HE)LO\s+hydra\x0D\x0A/smi"; 
reference:url,<a rel="nofollow" target="_blank" href="http://www.thc.org/releases.php"><a href="http://www.thc.org/releases.php">www.thc.org/releases.php</a></a>; classtype:misc-attack; 
sid:100000167; rev:1;)</div><div><br>
</div><div><span style="font-weight:bold;text-decoration:underline">IPTABLES:</span></div><div><br></div><div>iptables -I INPUT 1 -p tcp -i ppp1 -j NFQUEUE</div><div>iptables -I OUTPUT 1 -p tcp -o ppp1 -j NFQUEUE<br></div>

<div><br></div>
<div>(rule triggers alert on sending "EHLO hydra" - hence setup seems to be running fine)<br>
</div>
<div><br></div><div><br></div><div><span style="text-decoration:underline;font-weight:bold">Now THE SERIOUS PROBLEM</span><span style="font-weight:bold">:</span></div><div><br></div><div>As shown below, my iptables INPUT chain allows connection <span style="font-weight:bold;text-decoration:underline">ONLY </span><span style="font-weight:bold;text-decoration:underline">on port 22</span>.</div>

<div><br></div><div style="font-style:italic;text-decoration:underline">1) iptables -nvL INPUT (on snort system)<br></div><div><br></div><div>Chain INPUT (policy ACCEPT 0 packets, 0 bytes)<br> pkts bytes target     prot opt in     out     source               destination         <br>

  274  146K NFQUEUE    tcp  --  ppp1  
 *       <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            NFQUEUE num 0<br>    0     0 ACCEPT     tcp  --  ppp1   *       <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:22</div>

<div>17344  816K REJECT     all  --  *      *       <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            reject-with icmp-host-prohibited<br>

</div><div><br></div><div><span style="text-decoration:underline;font-style:italic">2) telnet 1.2.3.4
 25</span> (from some remote machine)<br><span></span></div><div><br></div><div>Trying to connect to port 25 of SNORT machine from some remote machine.<br></div><div><br></div><div>Trying 1.2.3.4...<br>Connected to XXXXX.<br>

Escape character is '^]'.</div><div>220 XXXX ESMTP Sendmail; Fri, 30 Mar 2012 23:17:42 +0530</div><div style="color:rgb(255,0,0)"> >>>> How did it connect to port 25???</div>

<div>ehlo hydra</div>....<br><br><span style="text-decoration:underline;font-style:italic">3) tail -1 /var/log/snort/alert</span><br style="text-decoration:underline;font-style:italic"><br>03/30-23:17:46.056165  [**] [1:100000167:1] GPL SMTP SMTP Hydra Activity Detected [**] [Classification: Misc Attack] [Priority: 2] {TCP} <a rel="nofollow" target="_blank" href="http://2.2.2.2:35256">2.2.2.2:35256</a> -> <a rel="nofollow" target="_blank" href="http://1.2.3.4:25">1.2.3.4:25</a><br>

<br><span style="color:rgb(255,0,0)">(which means snort detected the hydra activity as expected)</span><br><br style><div style="font-style:italic;text-decoration:underline">4) iptables -D INPUT 1 -p tcp -i ppp1 -j NFQUEUE</div>

<div style><br></div><div style>Delete the NFQUEUE rule. i.e. disable SNORT inspection<br></div><div style><br></div><div style><span style="font-style:italic;text-decoration:underline">5) telnet 1.2.3.4 25 (try
 again)</span><br></div><div style><br></div><div style>Trying 1.2.3.4 ...<br>telnet: connect to address <a rel="nofollow" target="_blank" href="http://1.2.3.4">1.2.3.4</a>: No route to host<br></div><div style><br></div>
<div style><span style="color:rgb(255,0,0)">>>> Blocked (packet rejected) just as expected after removing snort NFQUEUE rule</span></div>
<div style><br></div><div style><span style="font-style:italic;text-decoration:underline">6) Add rule again with one additional DROP rule for port 25</span></div><br>iptables -I INPUT 1 -p tcp -i ppp1 -j NFQUEUE<br>iptables -I INPUT 2 -p tcp -i ppp1 --dport 25 -j DROP<br>

<div style><br></div><div style="font-style:italic;text-decoration:underline">a) iptables -nvL INPUT<br></div><div style><br></div><div style> pkts bytes target     prot opt in     out     source               destination         <br>

   29  3660 NFQUEUE    tcp  --  ppp1   *       <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            NFQUEUE num 0<br>
    0     0 DROP       tcp  --  ppp1   *       <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:25<br>

</div><div style><br></div><div style>Now try to connect again:</div><div style><br></div><div style>telnet 1.2.3.4 25<br></div><div>Trying 1.2.3.4...<br>
Connected to XXXXX.<br>
Escape character is '^]'.</div>
<div>220 XXXX ESMTP Sendmail; Fri, 30 Mar 2012 23:32:17 +0530<br></div>
<div style="color:rgb(255,0,0)"><br></div><div style><span style="color:rgb(255,0,0)">>>> WHAT?!! Started accepting connection again!!!!<br></span></div><div style><br></div><div style="font-style:italic;text-decoration:underline">

b) iptables -nvL INPUT<br>
</div>
<div style><br>
</div>
<div style> pkts bytes target     prot opt in     out     source               destination         <br>   72  7982 NFQUEUE    tcp  --  ppp1   *       <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            NFQUEUE num 0<br>

    0     0 DROP       tcp  --  ppp1   *       <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:25</div>
<div style><br></div><div style>
<span style="color:rgb(255,0,0)">>>> Notice that DROP counter has not increased at all, which means Snort/NFQUEUE is ALLOWING the packet instead of proceeding to next rule (which is DROP rule)<br>
  </span></div>
<div style><br></div><div style="text-decoration:underline"><span style="font-style:italic">c) Port Scan</span></div><div style><br>
</div>
<div style>nmap -n 1.2.3.4<br><br>Starting nmap V. 3.00 ( <a rel="nofollow" target="_blank" href="http://www.insecure.org/nmap/"><a href="http://www.insecure.org/nmap/">www.insecure.org/nmap/</a></a> )<br>Interesting ports on  (1.2.3.4):<br>
(The 1590 ports scanned but not shown below are in state: closed)<br>
Port       State       Service<br>22/tcp     open        ssh                     <br>25/tcp     open        smtp                    <br>80/tcp     open        http                    <br>111/tcp   
 open        sunrpc                  <br>135/tcp    filtered    loc-srv                 <br>137/tcp    filtered    netbios-ns              <br>139/tcp    filtered    netbios-ssn             <br>443/tcp    open        https                   <br>

445/tcp    filtered    microsoft-ds            <br>3128/tcp  
 open        squid-http<br></div><div style><br></div><div style><span style="color:rgb(255,0,0)">>>> EVERYTHING is OPEN!!! </span></div><div style><br></div><div style="font-style:italic;text-decoration:underline">

d) Delete NFQUEUE rule and try to connect again:<br></div><div style><br></div><div style>iptables -D INPUT -p tcp -i ppp1  -j NFQUEUE</div><div style><br></div><div style>telnet 1.2.3.4 25<br>
</div>
<div>Trying 1.2.3.4...</div><div><br></div><div>Nothing happens due to DROP rule (as expected)</div><div><br></div><div style><br></div><div style="font-style:italic;text-decoration:underline">d) iptables -nvL INPUT (check packet COUNTER)</div>

<div style="font-style:italic;text-decoration:underline"><br></div><div style> pkts bytes target     prot opt in     out     source               destination         <br>    2   120 DROP       tcp  --  ppp1   *       <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>           
 <a rel="nofollow" target="_blank" href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:25<br></div><div style><br></div><div style><span style="color:rgb(255,0,0)">>>> DROP Counter increased once the NFQUEUE rule is deleted</span><br>

</div><div style><br></div><div style><br></div><div style><br></div><div style>So inshort NFQUEUE or Snort is ALLOWING the packet directly instead of letting it pass to next iptables rule.<br></div><div style><br></div>
<div style>
Is there something I missed or there is really something wrong with SNORT/NFQUEUE?<br></div><div style><br></div><div style><br></div><div style>Please correct me.</div><div style><br></div><div style>Thank you,</div><div style>

<br></div><div style><br></div><div style>Amm</div></div></div><br>------------------------------------------------------------------------------<br>
This SF email is sponsosred by:<br>
Try Windows Azure free for 90 days Click Here<br>
<a rel="nofollow" target="_blank" href="http://p.sf.net/sfu/sfd2d-msazure"><a href="http://p.sf.net/sfu/sfd2d-msazure">http://p.sf.net/sfu/sfd2d-msazure</a></a><br>_______________________________________________<br>
Snort-users mailing list<br>
<a rel="nofollow" target="_blank" href="mailto:Snort-users@...4626...ceforge.net"><a href="mailto:Snort-users@lists.sourceforge.net">Snort-users@lists.sourceforge.net</a></a><br>
Go to this URL to change user options or unsubscribe:<br>
<a rel="nofollow" target="_blank" href="https://lists.sourceforge.net/lists/listinfo/snort-users"><a href="https://lists.sourceforge.net/lists/listinfo/snort-users">https://lists.sourceforge.net/lists/listinfo/snort-users</a></a><br>

Snort-users list archive:<br>
<a rel="nofollow" target="_blank" href="http://www.geocrawler.com/redir-sf.php3?list=snort-users"><a href="http://www.geocrawler.com/redir-sf.php3?list=snort-users">http://www.geocrawler.com/redir-sf.php3?list=snort-users</a></a><br>

<br>
Please visit <a rel="nofollow" target="_blank" href="http://blog.snort.org"><a href="http://blog.snort.org">http://blog.snort.org</a></a> to stay current on all the latest Snort news!<br></blockquote></div><br>
</div><br><br> </div> </div> </blockquote></div>   </div></div></div><br><br> </div> </div> </blockquote></div>   </div></div></blockquote><blockquote type="cite"><div><span>------------------------------------------------------------------------------</span><br>
<span>This SF email is sponsosred by:</span><br><span>Try Windows Azure free for 90 days Click Here </span><br><span><a href="http://p.sf.net/sfu/sfd2d-msazure">http://p.sf.net/sfu/sfd2d-msazure</a></span></div></blockquote>
<blockquote type="cite"><div><span>_______________________________________________</span><br><span>Snort-users mailing list</span><br><span><a href="mailto:Snort-users@lists.sourceforge.net">Snort-users@...5870....net</a></span><br>
<span>Go to this URL to change user options or unsubscribe:</span><br><span><a href="https://lists.sourceforge.net/lists/listinfo/snort-users">https://lists.sourceforge.net/lists/listinfo/snort-users</a></span><br><span>Snort-users list archive:</span><br>
<span><a href="http://www.geocrawler.com/redir-sf.php3?list=snort-users">http://www.geocrawler.com/redir-sf.php3?list=snort-users</a></span><br><span></span><br><span>Please visit <a href="http://blog.snort.org">http://blog.snort.org</a> to stay current on all the latest Snort news!</span></div>
</blockquote></body></html>