Help an IPTABLES neophyte please
Rick Stevens
ricks at nerd.com
Fri May 9 23:01:01 UTC 2008
Paul Campbell wrote:
> Question for clarification on
> REDHAT iptables vs iptables
>
> It seems that there is something that translates an
> "abbreviated" iptables command-line and processes it.
>
> WHY ? The cmd line differences seem trivial.
> eg.
> > iptables -A INPUT -i lo -j ACCEPT
> -A RH-Firewall-1-INPUT -i lo -j ACCEPT
Ok, you're getting confused. The first one you have is the actual
command used to ADD a rule to the iptables ruleset. It consists of the
command "iptables" followed by the appropriate parameters:
"-A INPUT" means "append to end of the INPUT chain". Note that
"-I" would try to insert the rule between two existing rules
in the chain. E.g. "-I INPUT 12" would mean to insert THIS
rule BEFORE rule 12 in the INPUT chain.
"-i lo" means "this refers to packets coming IN on the lo
(loopback) interface
"-j ACCEPT" means to jump to the ACCEPT result, accepting the
packet
The second line is an example of what's kept in /etc/sysconfig/iptables.
It consists of the same command parameters, but not the "iptables"
command itself. When the system boots, it runs a command:
/sbin/iptables-restore </etc/sysconfig/iptables
which reads the contents of /etc/sysconfig/iptables and essentially
feeds each line, one at a time, to the iptables command. Conversely,
you can run
/sbin/iptables-save >/path/to/some/file
which would save the EXISTING iptables rules to the file
"/path/to/some/file" in exactly the same format as found in
/etc/sysconfig/iptables.
Most people find it easier to edit the /etc/sysconfig/iptables file to
insert rules between existing rules, then running
service iptables restart
to make them effective instead of running "iptables -L -n
--line-numbers" to get appropriate rule numbers and then using "iptables
-I" commands to insert the rules between existing rules.
Also note that the system used to do
/sbin/iptables-save >/etc/sysconfig/iptables
when it shut down to save any rules inserted via the "iptables" command
directly so they'd reinserted at the next boot. I'm not sure that
happens anymore, but it used to.
Now, as to the "-A RH-Firewall-1-INPUT" versus the "-A INPUT" bit,
you can create separate rulesets and name them however you want.
system-config-securitylevel (which is run by the system installer)
creates a separate INPUT ruleset, called "RH-Firewall-1-INPUT" and
sticks its rules in it. Any rules set up by system-config-securitylevel
(at any time, not just at system installation) get stuffed into that
ruleset.
The first rule that gets inserted into /etc/sysconfig/iptables by the
system installer is
-A INPUT -j RH-Firewall-1-INPUT
which causes the INPUT chain to unconditionally jump to the
"RH-Firewall-1-INPUT" ruleset. In my opinion, it's kinda silly. I
suppose you could insert rules for the INPUT chain BEFORE the rule above
that effect what you want to do, and leave the Red Hat ruleset alone.
I generally find Red Hat's rules too simplistic for my uses, so I
generally chuck their entire ruleset and just use my own in the normal
"INPUT" chain. If I find I need to do something extra-special, then I
may create a separate ruleset, but I virtually NEVER jump to it
unconditionally...I usually have some criteria in the rule that has to
be met to jump to my special set.
Hope that explains it. :-)
----------------------------------------------------------------------
- Rick Stevens, Systems Engineer rps2 at nerd.com -
- Hosting Consulting, Inc. -
- -
- Memory is the second thing to go, but I can't remember the first! -
----------------------------------------------------------------------
More information about the Redhat-install-list
mailing list