All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pablo Neira <pablo@eurodev.net>
To: Hugo Mills <hugo@soton.ac.uk>,  netfilter-devel@lists.netfilter.org
Subject: Re: [PATCH] RFC3514 packet filtering
Date: Fri, 02 Apr 2004 03:12:54 +0200	[thread overview]
Message-ID: <406CBE16.7090409@eurodev.net> (raw)
In-Reply-To: <20040401120638.GB30129@soton.ac.uk>

mmm, 1st april? evil bit? a RFC made last year but 1st april? and the 
implementation is posted 1th april but one year later... mmm...

regards,
Pablo

P.S: mmm... hehehehehehe. Please if so, laugh at me, but there's 
something which is not serious here... anyway, am I missing anything?

Hugo Mills wrote:

>   This patch provides an RFC3514 filter for iptables. This is the
>kernel half of the patch, against 2.6.5-rc3.
>
>   Please cc: replies to me -- I'm having some trouble subscribing to
>linux-kernel at the moment.
>
>   Hugo.
>
>diff -uNr linux-2.6/include/linux/netfilter_ipv4/ipt_evil.h linux-2.6-ipt-evil/include/linux/netfilter_ipv4/ipt_evil.h
>--- linux-2.6/include/linux/netfilter_ipv4/ipt_evil.h	1970-01-01 00:00:00.000000000 +0000
>+++ linux-2.6-ipt-evil/include/linux/netfilter_ipv4/ipt_evil.h	2004-03-15 22:05:34.268945232 +0000
>@@ -0,0 +1,7 @@
>+#ifndef _IPT_EVIL_H
>+#define _IPT_EVIL_H
>+
>+struct ipt_evil_info {
>+	int	invert;
>+};
>+#endif /*_IPT_EVIL_H*/
>diff -uNr linux-2.6/include/net/ip.h linux-2.6-ipt-evil/include/net/ip.h
>--- linux-2.6/include/net/ip.h	2003-09-08 19:50:16.000000000 +0000
>+++ linux-2.6-ipt-evil/include/net/ip.h	2004-03-15 20:43:33.349763049 +0000
>@@ -71,6 +71,7 @@
> 
> /* IP flags. */
> #define IP_CE		0x8000		/* Flag: "Congestion"		*/
>+#define IP_EVIL	0x8000		/* Flag: "Evil" (RFC 3514)	*/
> #define IP_DF		0x4000		/* Flag: "Don't Fragment"	*/
> #define IP_MF		0x2000		/* Flag: "More Fragments"	*/
> #define IP_OFFSET	0x1FFF		/* "Fragment Offset" part	*/
>diff -uNr linux-2.6/net/ipv4/netfilter/Kconfig linux-2.6-ipt-evil/net/ipv4/netfilter/Kconfig
>--- linux-2.6/net/ipv4/netfilter/Kconfig	2004-03-15 21:47:01.353917514 +0000
>+++ linux-2.6-ipt-evil/net/ipv4/netfilter/Kconfig	2004-03-15 20:56:08.577655525 +0000
>@@ -274,6 +274,15 @@
> 
> 	  To compile it as a module, choose M here.  If unsure, say N.
> 
>+config IP_NF_MATCH_EVIL
>+	tristate "Evil bit match support"
>+	depends on IP_NF_IPTABLES
>+	help
>+	  Matches the "Evil" bit in the IP header. See RFC 3514 for 
>+	  details.
>+
>+	  To compile it as a module, choose M here.  If unsure, say N.
>+
> # The targets
> config IP_NF_FILTER
> 	tristate "Packet filtering"
>diff -uNr linux-2.6/net/ipv4/netfilter/Makefile linux-2.6-ipt-evil/net/ipv4/netfilter/Makefile
>--- linux-2.6/net/ipv4/netfilter/Makefile	2003-09-08 19:49:57.000000000 +0000
>+++ linux-2.6-ipt-evil/net/ipv4/netfilter/Makefile	2004-03-15 20:59:18.934937734 +0000
>@@ -66,6 +66,8 @@
> 
> obj-$(CONFIG_IP_NF_MATCH_PHYSDEV) += ipt_physdev.o
> 
>+obj-$(CONFIG_IP_NF_MATCH_EVIL) += ipt_evil.o
>+
> # targets
> obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
> obj-$(CONFIG_IP_NF_TARGET_TOS) += ipt_TOS.o
>diff -uNr linux-2.6/net/ipv4/netfilter/ipt_evil.c linux-2.6-ipt-evil/net/ipv4/netfilter/ipt_evil.c
>--- linux-2.6/net/ipv4/netfilter/ipt_evil.c	1970-01-01 00:00:00.000000000 +0000
>+++ linux-2.6-ipt-evil/net/ipv4/netfilter/ipt_evil.c	2004-03-15 21:16:21.991019291 +0000
>@@ -0,0 +1,67 @@
>+/* (C) 2004 Hugo Mills <hugo@carfax.org.uk>
>+ * Structure copied/stolen from ipt_pkttype.c
>+ *
>+ * This program is free software; you can redistribute it and/or modify
>+ * it under the terms of the GNU General Public License version 2 as
>+ * published by the Free Software Foundation.
>+ */
>+
>+#include <linux/module.h>
>+#include <linux/skbuff.h>
>+#include <linux/if_ether.h>
>+#include <linux/if_packet.h>
>+#include <net/ip.h>
>+
>+#include <linux/netfilter_ipv4/ipt_evil.h>
>+#include <linux/netfilter_ipv4/ip_tables.h>
>+
>+MODULE_LICENSE("GPL");
>+MODULE_AUTHOR("Hugo Mills <hugo@carfax.org.uk>");
>+MODULE_DESCRIPTION("IP tables match to match on evil bit (RFC 3514)");
>+
>+static int match(const struct sk_buff *skb,
>+      const struct net_device *in,
>+      const struct net_device *out,
>+      const void *matchinfo,
>+      int offset,
>+      int *hotdrop)
>+{
>+    const struct ipt_evil_info *info = matchinfo;
>+
>+	if(skb->nh.iph->frag_off & __constant_htons(IP_EVIL))
>+		return !info->invert;
>+
>+	return info->invert;
>+}
>+
>+static int checkentry(const char *tablename,
>+		   const struct ipt_ip *ip,
>+		   void *matchinfo,
>+		   unsigned int matchsize,
>+		   unsigned int hook_mask)
>+{
>+	if (matchsize != IPT_ALIGN(sizeof(struct ipt_evil_info)))
>+		return 0;
>+
>+	return 1;
>+}
>+
>+static struct ipt_match evil_match = {
>+	.name		= "evil",
>+	.match		= &match,
>+	.checkentry	= &checkentry,
>+	.me		= THIS_MODULE,
>+};
>+
>+static int __init init(void)
>+{
>+	return ipt_register_match(&evil_match);
>+}
>+
>+static void __exit fini(void)
>+{
>+	ipt_unregister_match(&evil_match);
>+}
>+
>+module_init(init);
>+module_exit(fini);
>
>
>  
>

  reply	other threads:[~2004-04-02  1:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-01 12:06 [PATCH] RFC3514 packet filtering Hugo Mills
2004-04-02  1:12 ` Pablo Neira [this message]
2004-04-02  2:07   ` Henrik Nordstrom
2004-04-02  6:19   ` Cedric Blancher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=406CBE16.7090409@eurodev.net \
    --to=pablo@eurodev.net \
    --cc=hugo@soton.ac.uk \
    --cc=netfilter-devel@lists.netfilter.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.