QUEUE - ipq_set_verdict overridden?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am writing a userland process in C to take care of a few unpatched
issues in Unreal Tournament '99 and, if possible, to additionally
create a set of rules to make a generalized anti-cheat for UT99.

This code is derived from the sample code in the October 2001 man page
for libipq (2001 was an excellent year for man pages).

I am doing my testing on a Debian Etch (Debian kernel 2.6.18-3-486) VM
with iptables 1.3.6.  All the libraries, headers & etc are from the
Debian repositories.  I'm trying to keep it as plain vanilla as
possible.

So far, it half-works.

If the (udp port 7777) packets I want to drop are within the first 20
or so of the connection, it drops the offending packet like a rock, as
advertised.  No problem there.

However, for any "ESTABLISHED" connections nothing happens.
ipq_set_verdict returns the same status (IPQM_PACKET - 0x1C) in both
cases but the packets breeze on through for "ESTABLISHED" connections.

I should note I'm doing nothing to the packets and simply returning an
NF_DROP or NF_ACCEPT.

The iptables rules are kept as simple as possible.  I have tried both

-A INPUT -p udp -m udp --dport 7777 -j QUEUE

and

-A INPUT -p udp -m udp --dport 7777 -m state --state
NEW,ESTABLISHED,RELATED -j QUEUE

with the same results.  That is, the "NEW" connections can be dropped
but it has no affect whatsoever on the "ESTABLISHED" connections.

I am aware of libnetfilter-queue but until there is some documentation
I'm sticking with libipq.


[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux