Re: opening up an ipchain

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

 



Hello,

Alex Feldman a écrit :

I know nothing about ipchains.

Fine, here we're talking about iptable, the successor of ipchains. :-)

*****************************************************************

iptables --policy INPUT   DROP
iptables --policy OUTPUT  ACCEPT
iptables --policy FORWARD DROP

iptables -t nat --policy POSTROUTING ACCEPT
iptables -t nat --policy PREROUTING ACCEPT

+ iptables -t nat --policy OUTPUT ACCEPT


#---------------------------------------------------------------
# The loopback interface should accept all traffic
# Necessary for X-Windows and other socket based services
#---------------------------------------------------------------

iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#---------------------------------------------------------------

iptables -A INPUT -p tcp -i eth0 --dport 25 --sport 1024:65535 -m state --state NEW -j ACCEPT

iptables -A INPUT -p udp -i eth0 --sport 53 --dport 1024:65535 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --sport 53 --dport 1024:65535 -j ACCEPT

These two rules are possibly harmful : they allow any incoming packet to a non privileged local port from any host using source port 53. Better deal with DNS replies in the generic rule allowing established/related connections.

iptables -A INPUT -p tcp -i eth0 --dport 80 --sport 1024:65535 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------
# Allow previously established connections
#---------------------------------------------------------------
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED -i eth0 -p tcp

Don't restrict this rule to TCP. It's also needed for other protocols : DNS replies using UDP, ICMP ping and traceroute replies, ICMP signalling messages...

*********************************************************************

Some of this I copied off the web, and I do not understand why I need
all of it, e.g., all the 1024:65535 port identifiers.

"--sport 1024:65535" means that connections to your services should are expected to come from unprivileged source ports, which is usually true. However it's not really useful.

However, I would like to open up the computer further, maybe not all the
way but for the moment that would be OK, to my own laptop via its mac
address - I figure that would be pretty safe, but if not, I'd like to
hear why not.

It is not safe because it is very easy to spoof a MAC address.

 So I added the line:

iptables -A INPUT -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT

and some variations on it, like with "-p all" in there, at various
places in the file, but none of them worked (and they all had my real
mac address in there, I just took it out before I displayed this to the
world).

Be aware that this will work only when the client and the server are on the same network (link layer). MAC addresses don't go through routers.

Is the problem that I have it in the wrong place in the chain, or
something else?  I really don't understand the difference between -A and
-I,

-A = append at the end of the chain
-I = insert at the beginning (or explicit location) of the chain

especially since the basic file seems to work even though the first
thing I do is drop all input, and then allow some back later.

No, you don't drop first then allow later, else nothing would work. The first three commands (--policy or -P) just set the default policy of the chains to DROP. The default policy tells what to do when the packet doesn't match any rule with a "terminal" target and reaches the end of the chain. So it's rules first then default policy, regardless of the location of the --policy commands in the script.



[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