RE: 2 basic iptables questions

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

 



Answers inline

> -----Original Message-----
> From: netfilter-bounces@xxxxxxxxxxxxxxxxxxx [mailto:netfilter-
> bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Peter
> Sent: Tuesday, July 25, 2006 2:21 PM
> To: netfilter
> Subject: 2 basic iptables questions
> 
> Hi,
> 
> Two questions:
> 
> 1) I understand the basics of the iptables command but I am having
> trouble grasping how the various "scripts" go together.  I have a
> CentOS (Red Hat) box set up and there is an init script
> /etc/init.d/iptables.  There is also a support script
> /etc/sysconfig/iptables-config.  I know also that 'service iptables
> save' saves a ruleset file of the current ruleset inside
> /etc/sysconfig/iptables.  My question is therefore "Where do I place
my
> main (and documented) ruleset file?".  I envision a file solely
> containing a multitude of iptables commands but many files I find on
> the net contain other commands as well.

If you load your iptables that you want to run using iptables-restore
then you can do an iptables-save, drop it into the
/etc/sysconfig/iptables file and it will autoload on the next restart of
the server (or a restart of /etc/init.d/iptables).

Some people find iptables-save/restore too limiting so they just put all
of the commands into a shell script and load each line individually.  

Both ways work.  Pick the one that's easiest to you.  Remember, if you
put something in /etc/sysconfig/iptables it will load every time the
computer starts.  If things break randomly remember to check that before
restarting.

> 
> 2) I have inherited an iptables firewall and I'm trying to grok its
> ruleset.  Here are the beginning lines of the output of 'cat
> /etc/sysconfig/iptables':
> 
> *filter
> :INPUT ACCEPT [0:0]
> :FORWARD ACCEPT [0:0]
> :OUTPUT ACCEPT [0:0]
> :log_and_drop - [0:0]
> :service_chain - [0:0]
> [0:0] -A INPUT -d 127.0.0.1 -j ACCEPT
> [0:0] -A INPUT -s 127.0.0.1 -j ACCEPT
> [0:0] -A INPUT -i lo -j ACCEPT
> [0:0] -A INPUT -j service_chain

Here is where you chain is called.  Basically you are telling the input
chain to jump to the service_chain at that point.  I find it helpful to
create buckets (like your service_chain) which handle certain processes
(such as a bucket for http servers, a bucket for email spoolers, etc).
I then call them on my input (or forward) chain.  This way if I have a
email spooler on a particular IP I can just forward it to the specific
chain that will already take care of what it needs to do.


> [0:0] -A log_and_drop -j LOG --log-prefix "FWSERVER (Blocked
> Connection)"
> [0:0] -A log_and_drop -j REJECT --reject-with icmp-port-unreachable
> [0:0] -A service_chain -p icmp -j ACCEPT
> [0:0] -A service_chain -p icmp -j log_and_drop
> .
> .
> .
> { many more '[0:0] -A service_chain' lines }
> COMMIT
> 
> My question here is how is the last rule ever matched?  If ICMP is
seen
> it will be accepted and the evaluation stops.  What is the meaning of
> this line?  My guess is that it is there to log and then block
unwanted
> traffic (via the log_and_drop chain) but I do not see how it works.
> The ruleset is full of these line patterns.
> 
> Peter
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com




[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