All of lore.kernel.org
 help / color / mirror / Atom feed
* iptables doubt
@ 2006-04-12 13:54 varun
       [not found] ` <443E21C1.9090508@info.ucl.ac.be>
  0 siblings, 1 reply; 12+ messages in thread
From: varun @ 2006-04-12 13:54 UTC (permalink / raw)
  To: netfilter-devel

Hi all,

             Iam new to netfilters and iam trying to play around to 
understand a few things. By default when no policies are specified then 
it allows all traffic to go out and in to the n/w. I want to change this 
to default as deny.
             That is when there is no policy all should be default deny.

           So in order to achieve that i tried to change the  code a little.
            In the file iptable_filter.c there is a variable called 
static int forward = NF_ACCEPT
             I changed this to NF_DROP and when i compiled and used it 
sure i was not able to send any or recv any packets
             but even after i give a policy like iptables -t filter -A 
INPUT -j ACCEPT
             Nothing changes. So achieve what i want what should i do? 
And where do i change?

             Another thing is that in normally when i put a policy like 
iptables -t filter -A OUTPUT -j REJECT
              Even my own self IP doesnt ping? Why should this happen?
               Isint it ok to ping local ip and loopback ip?
                If i want such implementation where i should be able to 
ping to self and local but not any other ip?
                Is it possible?
                I dont want to add policies rather is it possible just 
by changing the iptables kernel code?

                Please help me on this?

Varun

^ permalink raw reply	[flat|nested] 12+ messages in thread
* Re: iptables doubt
@ 2006-04-13 10:14 Sebastien Tandel
  0 siblings, 0 replies; 12+ messages in thread
From: Sebastien Tandel @ 2006-04-13 10:14 UTC (permalink / raw)
  To: netfilter-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,
varun wrote:
> Hi all,
>
>             Iam new to netfilters and iam trying to play around to
> understand a few things. By default when no policies are specified then
> it allows all traffic to go out and in to the n/w. I want to change this
> to default as deny.
>             That is when there is no policy all should be default deny.
>
>           So in order to achieve that i tried to change the  code a little.
>            In the file iptable_filter.c there is a variable called
> static int forward = NF_ACCEPT
>             I changed this to NF_DROP and when i compiled and used it
> sure i was not able to send any or recv any packets
I think you made the right change in your code in order to have a DROP
policy by default in your netfilter. the problem is just after ...

>             but even after i give a policy like iptables -t filter -A
> INPUT -j ACCEPT
>             Nothing changes. So achieve what i want what should i do?
> And where do i change?

It is quiet normal as you told netfilter to accept incoming packets but
you did not configure netfilter to accept *outgoing* packets ...
iptables -t filter -A OUTPUT -j ACCEPT

>
>             Another thing is that in normally when i put a policy like
> iptables -t filter -A OUTPUT -j REJECT
>              Even my own self IP doesnt ping? Why should this happen?
>               Isint it ok to ping local ip and loopback ip?
>                If i want such implementation where i should be able to
> ping to self and local but not any other ip?
>                Is it possible?

lo is the interface allotted to your local interface (i.e. your host)!
You must therefore create two rules in order to let netfilter accept
outgoing and incoming packets from and arriving to your local interface.
iptables -A INPOUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


>                I dont want to add policies rather is it possible just by
> changing the iptables kernel code?

You have to initialize netfilter by adding two static rules implementing
the ones described here above.

sta
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFEPiSEw76McB8jGxkRAhzNAJoCC6FwR6PvmEJG8IzNXeod29u8jQCdFPY7
N9fguzx+i6R9s+sCpz+AHfc=
=120L
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 12+ messages in thread
* Re: iptables doubt
@ 2006-04-13 16:57 Sebastien Tandel
  0 siblings, 0 replies; 12+ messages in thread
From: Sebastien Tandel @ 2006-04-13 16:57 UTC (permalink / raw)
  To: netfilter-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Sven-Haegar Koch wrote:
> On Thu, 13 Apr 2006, varun wrote:
>
>>                         The features i want to implement like that
>> priority for policy is that imagine a scenario where user added some
>> policies and then for some reason wants one policy to be checked
>> before checking others then he would have to add the policy again and
>> delete the old policy isint it?
>
>
> Every iptables rule change is loading the whole ruleset into userspace,
> modifying it, and copying the result back into kernelspace.
>
> So you should be able to fetch the rules (f.e. with iptables-save),
> modify them as you like, and push them back (iptables-restore).
>
> c'ya
> sven
>

which is not robust when competing with another user script doing some
change to netfilter ... i.e. there is no function doing an atomic move.

sta
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFEPoLww76McB8jGxkRAs7AAJ9ICzjiB1J/V82UIOsqyKT9AyeGMQCgjiMd
Maq9ku/nKaaXv81wdGd+zU8=
=2j+D
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 12+ messages in thread
* iptables doubt
@ 2006-04-26  7:09 varun
  0 siblings, 0 replies; 12+ messages in thread
From: varun @ 2006-04-26  7:09 UTC (permalink / raw)
  To: netdev

Hi all,

              Ive been trying to understand iptables kernel code and 
basically how it functions. In doing so i have a few questions.
              In the file ip_tables.c there is call do_replace() which 
is used as the start point entry from sockopt.
               That is this gets called everytime a user entrers 
policies from user. Here that data is given to me in the form of
                void __user *user.
                 This iam copying to kernel space and dereferencing into 
ipt_replace and so on. Am i right?
                  The first question is user seems to send a size as 860 
when trying to add the first policy. Does that mean that user is 
maintaining the offset of the policies added?
                    tmp.size shows as 768 which is (4 default policies x 
sizeof(struct ipt_standard)) + sizeof(struct ipt_error)
                    Am i correct in understanding? If so why should user 
space kernel policy offset?
                         Next thing is i added one extra field (int 
num)in the struct ipt_entry_target . This is added after the  unsigned 
char data[0] field.
struct ipt_entry_target
{
       union {
               struct {
                       u_int16_t target_size;

                       /* Used by userspace */
                       char name[IPT_FUNCTION_MAXNAMELEN-1];

                       u_int8_t revision;
               } user;
               struct {
                       u_int16_t target_size;

                       /* Used inside the kernel */
                       struct ipt_target *target;
               } kernel;

               /* Total length */
               u_int16_t target_size;
       } u;

       unsigned char data[0];
       unsigned int uniqueId;  /*I added this*/
};

    Iam using this field to give a global id from my kernel for every 
policy added excluding the default ones added by kernel. So if someone 
calls for iptables -F or iptables -t filter -D .... then this number 
should not be assigned to the structure.
   I want to know where is the correct place to add this value to 
structure without effecting the functionality.

 Iam also aware that making this change in structure will result in 
segmentation fault un userspace. Ill handel it seperately.
 Can this be done? Please help me in this regard.

 How can i know from the kernel structures if the policy is for -A or -D 
or -F ?
Varun

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2006-04-26  7:01 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-12 13:54 iptables doubt varun
     [not found] ` <443E21C1.9090508@info.ucl.ac.be>
     [not found]   ` <443E341F.1080206@rocsys.com>
2006-04-13 12:24     ` Sebastien Tandel
2006-04-13 13:01       ` varun
2006-04-13 13:16         ` Sebastien Tandel
2006-04-13 13:53           ` varun
2006-04-13 14:16             ` Sebastien Tandel
2006-04-14  3:42               ` varun
2006-04-13 16:04             ` Sven-Haegar Koch
2006-04-14  3:33               ` varun
  -- strict thread matches above, loose matches on Subject: below --
2006-04-13 10:14 Sebastien Tandel
2006-04-13 16:57 Sebastien Tandel
2006-04-26  7:09 varun

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.