Try this:
echo "1" >/proc/sys/net/ipv4/ip_forward
/etc/sysconfig/iptables:
*mangle
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -j SNAT --to-source <your eth0 gateway ip #>
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0}
-A FORWARD -i eth0 ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
then run /etc/rc.d/init.d/iptables restart
This will greatly simplify things for you. BTW in the example above eth0 is
the internet facing device.
paranic wrote:
> Hello
>
> i have some machines with the flowoing iptable rules
> my problem is that sometimes i get a timeout when reaching some
> services from the public interface.
> and sometimes it works great
> it is a very strange problem maybe something with established rule and
> invalid traffic.
> most common timeout is on ssh and http.
> when i flush all rules everything works fine.
>
>
> Thanks in advance
> Nikos
>
>
> echo 0 > /proc/sys/net/ipv4/ip_forward
>
> /sbin/iptables -F
> /sbin/iptables -X
> /sbin/iptables -Z
> /sbin/iptables -P INPUT DROP
> /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
> /sbin/iptables -A INPUT -p tcp ! --syn -j REJECT --reject-with
> tcp-reset
> /sbin/iptables -A INPUT -m state --state INVALID -j DROP
>
> /sbin/iptables -P OUTPUT DROP
> /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
> /sbin/iptables -A OUTPUT -p tcp ! --syn -j REJECT --reject-with
> tcp-reset
> /sbin/iptables -A OUTPUT -m state --state INVALID -j DROP
>
> /sbin/iptables -P FORWARD DROP
> /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j
> ACCEPT
> /sbin/iptables -A FORWARD -p tcp ! --syn -j REJECT --reject-with
> tcp-reset
> /sbin/iptables -A FORWARD -m state --state INVALID -j DROP
>
> /sbin/iptables -A INPUT -i lo -j ACCEPT
> /sbin/iptables -A OUTPUT -o lo -j ACCEPT
> /sbin/iptables -A FORWARD -i lo -o lo -j ACCEPT
>
> /sbin/iptables -t mangle -F
> /sbin/iptables -t mangle -X
> /sbin/iptables -t mangle -Z
> /sbin/iptables -t mangle -P PREROUTING ACCEPT
> /sbin/iptables -t mangle -P OUTPUT ACCEPT
> /sbin/iptables -t mangle -P INPUT ACCEPT
> /sbin/iptables -t mangle -P FORWARD ACCEPT
> /sbin/iptables -t mangle -P POSTROUTING ACCEPT
>
> /sbin/iptables -t nat -F
> /sbin/iptables -t nat -X
> /sbin/iptables -t nat -Z
> /sbin/iptables -t nat -P PREROUTING ACCEPT
> /sbin/iptables -t nat -P OUTPUT ACCEPT
> /sbin/iptables -t nat -P POSTROUTING ACCEPT
>
>
>
> # ethx (All Interfaces)
> /sbin/iptables -A OUTPUT -p udp --dport 33434:33999 -j ACCEPT
> # traceroute udp packets
> /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -m limit
> --limit 1/s -j ACCEPT
> /sbin/iptables -A OUTPUT -p icmp --icmp-type echo-request -m limit
> --limit 1/s -j ACCEPT
> /sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
> /sbin/iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
> /sbin/iptables -A OUTPUT -p tcp -d debian.otenet.gr --dport 80 -j
> ACCEPT
> /sbin/iptables -A OUTPUT -p tcp -d security.debian.org --dport 80 -j
> ACCEPT
> /sbin/iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT
>
> # eth2 (Managment Interface)
> /sbin/iptables -A INPUT -i eth2 -p udp --dport 161 -j ACCEPT
> /sbin/iptables -A INPUT -i eth2 -p tcp --dport 22 -j ACCEPT
>
> # eth0 (Public Interface)
> /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
> /sbin/iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
> /sbin/iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
> /sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
> /sbin/iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
>
> /sbin/iptables -A INPUT -j DROP
> /sbin/iptables -A OUTPUT -j DROP
> /sbin/iptables -A FORWARD -j DROP
--
Regards,
Peter.
http://www.pelicom.net.nz