Linux Netfilter discussions
 help / color / mirror / Atom feed
From: Mr Dash Four <mr.dash.four@googlemail.com>
To: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Cc: netfilter@vger.kernel.org
Subject: Re: ipporthash, ipportiphash, ipportnethash problems
Date: Sat, 02 Oct 2010 21:08:19 +0100	[thread overview]
Message-ID: <4CA79133.3070608@googlemail.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1010022104571.23216@blackhole.kfki.hu>


>> As for ipportiphash and ipportnethash - there were recently included in 
>> the distribution due to another bug I found when compiling xtables (even 
>> though ipportiphash and ipportnethash were compiled the .ko files were 
>> never included in the final release making it impossible to use these 
>> two construct types).
>>
>> A couple of questions and ideas for future releases:
>>
>> 1. Normally I used to get ipset as part of the xtables source. Is that still
>> the case or do I have to download the ipset source and compile it separately
>> to get the latest changes you made?
>>     
>
> It's absolutely up to you: currently ipset can be installed alone, or as a 
> part of xtables-addons. Jan updates xtables-addons quite reqularly.
>   
I just taken the latest git from xtables-addons and it is not there.

>> 2. Related to that question - I used to get the xtables .src.rpm from which to
>> compile the code and make an installation rpm. I don't seem to be able to do
>> that any longer as all fedora repos are too slow to update the latest changes.
>> Do you have a link from which I could get the latest changes in ipset/xtables
>> in src.rpm which allows me to build an installation rpm. The reason I am
>> asking this is because I am building an update images on all my machines
>> (using kickstart) and need the installation rpms with the latest changes you
>> made. Compiling this from source won't be possible as there is now way I could
>> install this as part of the image-building process.
>>     
>
> No, I'm not aware of the source rpm for ipset. That's bad if there's one
> out there without refreshed. 
>   
This is a major headache for me for 2 reasons:

1. I use 'rpmbuild' to compile from source as it allows me to build rpms 
for different architectures (I compile on x86_64 for i686 with 'rpmbuild 
--target=xxx'). If I use 'ordinary' make there is no way (at least I 
don't know of any) I could compile for different architecture.

2. rpmbuild also allow me to pack the necessary binaries (executables & 
modules/.ko files) for the target architecture to be transferred to the 
target machine - conveniently in rpm which could be installed (together 
with the necessary dependencies) as part of the target image building 
process.

Even if I solve problem No 2 (i.e. by tar-ing the necessary modules and 
executables) I can't see a way to get past compiling for a different 
architecture (and resolve all the dependencies)! Any ideas?

On a side note, I just managed to built v4.4. in the last hour or so for 
x86_64 (haven't tested it yet) and had to readjust the prefix & lib 
directories in the Makefile (I use prefix=/ and libdir=/lib64) and 
installed the new version, but I can't do anything for my other machines 
(which are mostly i686-based and their image is built using kickstart).


>> Would it be possible to include a new construct - IP,port,IP,port (without IP
>> address restriction) - and how difficult is this to implement?
>>     
>
> It's not difficult, but I see little value in such a type. The client 
> source port (except for a few protocols in some cases) is random, so how 
> could it be useful to mach for that? Or do you know a case where it can 
> still be useful?
>   
I can give you of at least 2 uses based on my experience:

1. voip - normally I can restrict the range of source ports and ip 
address when a voip connection is initialed (usually ports 8000-8050 and 
I have to also define the right ip address to point to the outside 
network), but the only way I can do this at present is if I base this on 
UID in iptables (i.e. the id of the process this is run under) - I 
cannot use sets at all because I do not have the appropriate construct. 
If I had "IP,port,IP,port (and protocol!)" as a construct to work with I 
can just built the sets (as I use 4-5 different servers outside the 
network and they work on different ports too) and that would be it!

2. VPN - for the same reason: to increase security I normally bind the 
source port to a particular range and then if I had a "IP,port,IP,port 
(and protocol!)" construct to work with I will not be using UID in 
iptables to match, but will use this construct directly without any 
further need to do anything!

>> Similar question - would it be possible to include protocol (either by name or
>> its number) as part of all available constructs for matching? The reason for
>> this is that, as it stands, in order for me to match, say, "IP,port" hosts
>> form my personal VPN I need to use two separate sets - one for UDP and one for
>> TCP and I also to create two separate statements for iptables (one for tcp and
>> one for udp), which is a bit of a waste and not very easy to administer. It
>> would be nice if I could use "IP,protocol", "port,protocol",
>> "IP,port,protocol", "IP,port,IP,protocol", "IP,port,IP/cidr,protocol" and so
>> forth.
>>     
>
> The next branch includes exactly that, i.e. the possibility to specify 
> proto:port for the ipport, ipportip and ipportnet types. And IPv6 support 
> too.
>   
That's brilliant news! I take it you will be introducing protocol 
support for all the constructs, is that right? How long would it take 
before you release this?


  reply	other threads:[~2010-10-02 20:08 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-30 22:03 ipporthash, ipportiphash, ipportnethash problems Mr Dash Four
2010-10-01  7:18 ` Jozsef Kadlecsik
2010-10-01 11:22   ` Mr Dash Four
2010-10-01 21:05     ` Jozsef Kadlecsik
2010-10-02 10:36       ` Mr Dash Four
2010-10-02 19:21         ` Jozsef Kadlecsik
2010-10-02 20:08           ` Mr Dash Four [this message]
2010-10-02 20:40             ` Jan Engelhardt
2010-10-02 20:54               ` Mr Dash Four
2010-10-02 21:06                 ` Jan Engelhardt
2010-10-03 18:57             ` Jozsef Kadlecsik
2010-10-03 22:02               ` Mr Dash Four
2010-10-02 20:35           ` Mr Dash Four
2010-10-03 19:13             ` Jozsef Kadlecsik
2010-10-03 22:04               ` Mr Dash Four
2010-10-04  9:36                 ` Jozsef Kadlecsik
2010-10-06 14:23                   ` Mr Dash Four
2010-10-06 14:37                     ` Mike Wright
2010-10-06 15:26                       ` Mr Dash Four
2010-10-06 19:57                     ` Jozsef Kadlecsik

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=4CA79133.3070608@googlemail.com \
    --to=mr.dash.four@googlemail.com \
    --cc=kadlec@blackhole.kfki.hu \
    --cc=netfilter@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox