iptables chains

Post Reply
Message
Author
andreas78
Posts: 34
Joined: 30. Aug 2004 20:23

iptables chains

#1 Post by andreas78 »

hi,

ich hoffe es gibt hier auch n paar iptables-profis.

ich kenn mich zwar schon einigermaßen in iptables aus, hab aber mal ne grundsätzliche frage.

wenn ein paket auf einem interface ankommt und geforwardet werden soll, muß es dann erst duch den INPUT- oder OUTPUT-Chain durch? Also mit anderen Worten, wenn ich folgende Regel erstelle:
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --dport 80 -m state --state NEW -j ACCEPT

muß ich dann auch noch eine Regel für einen anderen Chain definieren??? Ich frage deswege, weil es so zwar funktioniert ich aber des öfteren pakete in den log-dateien finde die eigentlich hätten durchgehen müssen.

mfg
andreas

CheersMichael

#2 Post by CheersMichael »

Guckst Du http://www.knowplace.org/netfilter/syntax.html

Bilda sagen mehr als 1000 Worte!

Cheers

Michael

andreas78
Posts: 34
Joined: 30. Aug 2004 20:23

#3 Post by andreas78 »

hi,

ein anderen aufbau kenn ich ja auch net, aber warum finde ich in den logs so bescheidene eintrage wie:
DROP src=xxxxxxxxxxx dest=externe ip sport=80 dport=xxxx

?????
Die flags hab ich jetzt nich im Kopf, es sieht aber so aus als wenn diese pakete zu einer verbindung gehören
Connection-Tracking is an. Policy is auf DROP und am ende der Konf.-Datei werden noch alle übrig gebliebenen Pakete gedroppt.

I-Net etc funktioniert alles, FIN/RST-Attacken etc werden auch laut log verworfen 8)

hat jemand da noch n idee???

mfg
andreas

CheersMichael

#4 Post by CheersMichael »

momentan läßt Du nur die neuen Pakete durch

Ändern in ->

-m state --state NEW,ESTABLISHED -j ACCEPT

hast Du überall externe IPs oder wo passiert Dein Masquerading?

Cheers

Michael

andreas78
Posts: 34
Joined: 30. Aug 2004 20:23

#5 Post by andreas78 »

hi,

hier mein script:

iptables -A INPUT -m state --state INVALID -j LOG --log-prefix "INVALID-INPUT"
iptables -A INPUT -m state --state INVALID -j DROP

iptables -A OUTPUT -m state --state INVALID -j LOG --log-prefix "INVALID-OUTPUT"
iptables -A OUTPUT -m state --state INVALID -j DROP

iptables -A FORWARD -m state --state INVALID -j LOG --log-prefix "INVALID-FORWARD"
iptables -A FORWARD -m state --state INVALID -j DROP

#pass fw by connection state
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 8080 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 443 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 1080 -m state --state NEW -j ACCEPT

iptables -t nat -A POSTROUTING -o $EXTERN_IF -j SNAT --to-source $EXTERN_IP

iptables -A INPUT -j LOG --log-prefix "INPUT-DROP!!!"
iptables -A INPUT -j DROP
iptables -A OUTPUT -j LOG --log-prefix "OUTPUT-DROP!!!"
iptables -A OUTPUT -j DROP
iptables -A FORWARD -j LOG --log-prefix "FORWARD-DROP!!!"
iptables -A FORWARD -j DROP



weitere wichtige dienste wie DNS etc. sind natürlich auch freigegeben
eigentlich dürfte nix auftauchen

wollte nich das ganze 5-6 Seiten lange Script posten, das hier is aber das wichtigste denke ich. Ich verwerfe noch Pakete die an bestimmte port gerichtet sind wie z.B. 135,137-139, 4444 etc
mfg
Andreas

CheersMichael

#6 Post by CheersMichael »

So wie es hier aussieht, dürfen Pakete weder rein INPUT->POLICY DROP noch raus OUTPUT - POLICY DROP. Das einzige was OK ist, ist FORWARD und NATing via POSTROUTE. Dazu kommt es aber gar nicht erst, da die Pakete bei dem netfilter hook gar nicht erst ankommen. Siehe Abbildung im o.g. Link.

Cheers

Michael

andreas78
Posts: 34
Joined: 30. Aug 2004 20:23

#7 Post by andreas78 »

hi,

die frage ist dann nur: warum funktioniert es trotzdem?
hier nun mal das komplette script
außerdem denke ich das die pakete beim forward gerade (wie in der grafik ersichtlich) nicht duch INPUT/OUTPUT gehn?! :?: :?: :?:

mfg andreas



#!/bin/sh
#fire
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp

#interfaces
EXTERN_IF="eth0"
INTERN_IF="eth1"
LOOPBACK_IF="lo"

#ip's and subnets
EXTERN_IP="xxxxxxxxx"
EXTERN_NET="xxxxxxxx"
EXTERN_BROADCAST="192.168.0.255"
EXTERN_NETMASK="255.255.255.0"

INTERN_IP="xxxxxxxxxxx"
INTERN_NET="xxxxxxxx"
INTERN_BROADCAST="192.168.10.255"
INTERN_NETMASK="255.255.255.0"

BROADCAST_DEST="255.255.255.255"
BROADCAST_SRC="0.0.0.0"

#server
ISP_DHCP=""
INTERN_DHCP=""
INTERN_DNS_1="xxxxxxxx"
INTERN_DNS_2="xxxxxxx"
INTERN_MAIL="xxxxxxxx"
EXTERN_MAIL=""
EXTERN_DNS_1=""
EXTERN_DNS_2=""
TIME_SERVER_INTERN="xxxxxxxxxx"
TIME_SERVER_EXTERN=""
DMZ_GATEWAY=""
#ports
WEBMIN_PORT="xxxxx"
SSH_PORT="22"
MYSQL_PORT="3306"
HIGH_PORTS="1024:65535"
SQUID_PORT="3128"
#######################################################################
#disable sourec routet packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route;
do echo 0 > $f
done

#enable tcp syn cookie protection
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

#disable icmp redirekt acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects;
do echo 0 > $f
done

#don't send redirect messages
for f in /proc/sys/net/ipv4/conf/*/send_redirects;
do echo 0 > $f
done

#drop spoofed
for f in /proc/sys/net/ipv4/conf/*/rp_filter;
do echo 1 > $f
done

#log packets with impossible adresses
for f in /proc/sys/net/ipv4/conf/*/log_martians;
do echo 1 > $f
done

#secure redirects
for f in /proc/sys/net/ipv4/conf/*;
do echo 1 > $f/secure_redirects
done

#enable broadcast echo protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#icmp echo reply rate
#echo 5 > /proc/sys/net/ipv4/icmp_echo_reply_rate
#icmp dest unreach rate
#echo 5 > /proc/sys/net/ipv4/icmp_destunreach_rate
#icmp paramprobe
#echo 5 > /proc/sys/net/ipv4/icmp_paramprob_rate
#icmp time exceed rate
#echo 6 > /proc/sys/net/ipv4/icmp_timeexceed_rate
#ipfrag
echo 20 > /proc/sys/net/ipv4/ipfrag_time
#igmp max memberships
echo 1 > /proc/sys/net/ipv4/igmp_max_memberships

#route
echo 1 > /proc/sys/net/ipv4/route/flush

#enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
#######################################################################
#remove any existig rule
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush

#unlimited traffic on loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#set default policy to drop
iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP

#remove any pre-existing user-defined chains
iptables --delete-chain
iptables -t nat --delete-chain
iptables -t mangle --delete-chain
#######################################################################
#stealth scans and tcp flags
#all bits are cleared
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j LOG --log-prefix "all bits are cleared(inp):"
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j LOG --log-prefix "all bits are cleared(fwd):"
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP

#syn and fin are both set
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "syn & fin are both set(inp):"
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "syn & fin are both set(fwd):"
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

#syn and rst are both set
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "syn & rst are both set(inp):"
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "syn & rst are both set(fwd):"
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

#fin and rst are both set
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j LOG --log-prefix "fin & rst are both set(inp):"
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j LOG --log-prefix "fin & rst are both set(fwd):"
iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j DROP

#fin is the only bit set, without the expected accompanying ack
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j LOG --log-prefix "fin is the only bit set(inp):"
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j LOG --log-prefix "fin is the only bit set(fwd):"
iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j DROP

#psh is the only bit set, without the expected accompanying ack
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j LOG --log-prefix "psh is the only bit set(inp):"
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j LOG --log-prefix "psh is the only bit set(fwd):"
iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j DROP

#urg is the only bit set, without the expected accompanying ack
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j LOG --log-prefix "urg is the only bit set(inp):"
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j LOG --log-prefix "urg is the only bit set(fwd):"
iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j DROP

#######################################################################
#source adress spoofing and other bad adresses
#refuse spoofed packets pretending from external interface's IP adress
iptables -A INPUT -s $EXTERN_IP -j DROP
iptables -A INPUT -s $INTERN_IP -j DROP
iptables -A FORWARD -s $EXTERN_IP -j DROP
iptables -A FORWARD -s $INTERN_IP -j DROP

iptables -A INPUT -i $EXTERN_IF -s $INTERN_NET -j DROP
iptables -A FORWARD -i $EXTERN_IF -s $INTERN_NET -j DROP
iptables -A FORWARD -i $INTERN_IF -s $INTERN_NET -j DROP

iptables -A OUTPUT -o $EXTERN_IF -s ! $EXTERN_IP -j DROP
iptables -A OUTPUT -o $INTERN_IF -s ! $INTERN_IP -j DROP

#refuse packets claiming to be from a class A private network
iptables -A INPUT -i $EXTERN_IF -s 10.0.0.0/8 -j DROP

#refuse packets claiming to be from a class B private network
iptables -A INPUT -i $EXTERN_IF -s 172.16.0.0/12 -j DROP

#refuse packets claiming to be from a class A private network
#iptables -A INPUT -i $EXTERN_IF -s 192.168.0.0/16 -j DROP

#refuse packets claiming to be from a the loopback-interface
iptables -A INPUT -i $EXTERN_IF -s 127.0.0.0/8 -j DROP

#refuse malformed broadcasts packets
iptables -A INPUT -i $EXTERN_IF -s $BROADCAST_DEST -j LOG --log-prefix "255.255.255.255"
iptables -A INPUT -i $EXTERN_IF -s $BROADCAST_DEST -j DROP

iptables -A INPUT -i $EXTERN_IF -s $BROADCAST_SRC -j LOG --log-prefix "0.0.0.0"
iptables -A INPUT -i $EXTERN_IF -s $BROADCAST_SRC -j DROP

###################################################################################################################
###################################################################################################################
#dropping several services
#samba + DCOM (blaster worm)
#iptables -A INPUT -p tcp --dport 135:139 -j LOG --log-prefix "DCOM-samba-in-tcp"
iptables -A INPUT -p tcp --dport 135:139 -j DROP
#iptables -A INPUT -p udp --dport 135:139 -j LOG --log-prefix "DCOM-samba-in-udp"
iptables -A INPUT -p udp --dport 135:139 -j DROP

iptables -A INPUT -p tcp --dport 4444 -j LOG --log-prefix "blaster-in-tcp"
iptables -A INPUT -p tcp --dport 4444 -j DROP
iptables -A INPUT -p udp --dport 4444 -j LOG --log-prefix "blaster-in-udp"
iptables -A INPUT -p udp --dport 4444 -j DROP
iptables -A INPUT -p tcp --dport 67:69 -j DROP
iptables -A INPUT -p tcp --dport 67:69 -j DROP

#iptables -A OUTPUT -p tcp --dport 135:139 -j LOG --log-prefix "DCOM:samba-out-tcp"
iptables -A OUTPUT -p tcp --dport 135:139 -j DROP
#iptables -A OUTPUT -p udp --dport 135:139 -j LOG --log-prefix "DCOM:samba-out-udp"
iptables -A OUTPUT -p udp --dport 135:139 -j DROP

iptables -A OUTPUT -p tcp --dport 4444 -j LOG --log-prefix "blaster-out-tcp"
iptables -A OUTPUT -p tcp --dport 4444 -j DROP
iptables -A OUTPUT -p udp --dport 4444 -j LOG --log-prefix "blaster-out-udp"
iptables -A OUTPUT -p udp --dport 4444 -j DROP
iptables -A OUTPUT -p tcp --dport 67:69 -j DROP
iptables -A OUTPUT -p tcp --dport 67:69 -j DROP

#iptables -A FORWARD -p tcp --dport 135:139 -j LOG --log-prefix "DCOM-samba-fwd-tcp"
iptables -A FORWARD -p tcp --dport 135:139 -j DROP
#iptables -A FORWARD -p udp --dport 135:139 -j LOG --log-prefix "DCOM-samba-fwd-udp"
iptables -A FORWARD -p udp --dport 135:139 -j DROP

iptables -A FORWARD -p tcp --dport 4444 -j LOG --log-prefix "blaster-fwd-tcp"
iptables -A FORWARD -p tcp --dport 4444 -j DROP
iptables -A FORWARD -p udp --dport 4444 -j LOG --log-prefix "blaster-fwd-udp"
iptables -A FORWARD -p udp --dport 4444 -j DROP
iptables -A FORWARD -p tcp --dport 67:69 -j DROP
iptables -A FORWARD -p tcp --dport 67:69 -j DROP

#X-Windows
iptables -A INPUT -p tcp --dport 6000:6009 -j DROP
iptables -A INPUT -p udp --dport 6000:6009 -j DROP
#x-windows font server
iptables -A INPUT -p tcp --dport 7100 -j DROP
iptables -A INPUT -p udp --dport 7100 -j DROP

#sunrpc
iptables -A INPUT -p tcp --dport 111 -j DROP
iptables -A INPUT -p udp --dport 111 -j DROP
#
iptables -A INPUT -p tcp --dport 4000 -j DROP
iptables -A INPUT -p udp --dport 4000 -j DROP
#nfs
iptables -A INPUT -p tcp --dport 2049 -j DROP
iptables -A INPUT -p udp --dport 2049 -j DROP
#printer
iptables -A INPUT -p tcp --dport 512 -j DROP
iptables -A INPUT -p udp --dport 512 -j DROP

#X-Windows
iptables -A OUTPUT -p tcp --dport 6000:6009 -j DROP
iptables -A OUTPUT -p udp --dport 6000:6009 -j DROP
#x-windows font server
iptables -A OUTPUT -p tcp --dport 7100 -j DROP
iptables -A OUTPUT -p udp --dport 7100 -j DROP

#sunrpc
iptables -A OUTPUT -p tcp --dport 111 -j DROP
iptables -A OUTPUT -p udp --dport 111 -j DROP
#
iptables -A OUTPUT -p tcp --dport 4000 -j DROP
iptables -A OUTPUT -p udp --dport 4000 -j DROP
#nfs
iptables -A OUTPUT -p tcp --dport 2049 -j DROP
iptables -A OUTPUT -p udp --dport 2049 -j DROP
#printer
iptables -A OUTPUT -p tcp --dport 512 -j DROP
iptables -A OUTPUT -p udp --dport 512 -j DROP

#######################################################################
#connection handling
#blocking invalid
iptables -A INPUT -m state --state INVALID -j LOG --log-prefix "INVALID-INPUT"
iptables -A INPUT -m state --state INVALID -j DROP

iptables -A OUTPUT -m state --state INVALID -j LOG --log-prefix "INVALID-OUTPUT"
iptables -A OUTPUT -m state --state INVALID -j DROP

iptables -A FORWARD -m state --state INVALID -j LOG --log-prefix "INVALID-FORWARD"
iptables -A FORWARD -m state --state INVALID -j DROP

#pass fw by connection state
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

###################################################################################################################
#icmp handling
#iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 3/s -j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 8/m --limit-burst 12 -j ACCEPT
iptables -A OUTPUT -p icmp -m limit --limit 8/m --limit-burst 12 -j ACCEPT
iptables -A FORWARD -p icmp -m limit --limit 8/m --limit-burst 12 -j ACCEPT
##################################################################################################################
#routing
iptables -A INPUT -p tcp --dport 520 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp --dport 520 -m state --state NEW -j ACCEPT

iptables -A OUTPUT -p tcp --dport 520 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 520 -m state --state NEW -j ACCEPT

#DNS
#lokal server requests
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

iptables -A INPUT -p tcp --sport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp --sport 53 -m state --state NEW -j ACCEPT

#server 2 server/clients 2 server
iptables -A FORWARD -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -m state --state NEW -j ACCEPT

iptables -A FORWARD -p tcp --sport 53 -m state --state NEW -j ACCEPT
iptables -A FORWARD -p udp --sport 53 -m state --state NEW -j ACCEPT

#http/https/socks zum internet
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 8080 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 443 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 1080 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 81 -m state --state NEW -j ACCEPT

#http/https lokal eingehend
iptables -A INPUT -i $INTERN_IF -p tcp --sport $HIGH_PORTS -d $INTERN_IP --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -i $INTERN_IF -p tcp --sport $HIGH_PORTS -d $INTERN_IP --dport 443 -m state --state NEW -j ACCEPT
#squid
iptables -A INPUT -i $INTERN_IF -p tcp --sport $HIGH_PORTS --dport $SQUID_PORT -m state --state NEW -j ACCEPT
#http/https lokal ausgehend
iptables -A OUTPUT -o $EXTERN_IF -p tcp -s $EXTERN_IP --sport $HIGH_PORTS --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $EXTERN_IF -p tcp -s $EXTERN_IP --sport $HIGH_PORTS --dport 8080 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $EXTERN_IF -p tcp -s $EXTERN_IP --sport $HIGH_PORTS --dport 443 -m state --state NEW -j ACCEPT

#webmin lokal
iptables -A INPUT -i $INTERN_IF -p tcp --sport $HIGH_PORTS -d $INTERN_IP --dport $WEBMIN_PORT -m state --state NEW -j ACCEPT
#######################################################################
#email server/relay
#smtp
#iptables -A INPUT -p tcp --dport 25 -j LOG --log-prefix "mail-in"
iptables -A INPUT -i $INTERN_IF -p tcp --dport 25 -m state --state NEW -j ACCEPT
iptables -A INPUT -i $EXTERN_IF -p tcp --dport 25 -m state --state NEW -j ACCEPT

iptables -A INPUT -i $INTERN_IF -p tcp --sport 25 -m state --state NEW -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 25 -j LOG --log-prefix "mail-out"
iptables -A OUTPUT -o $INTERN_IF -p tcp --dport 25 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $EXTERN_IF -p tcp --dport 25 -m state --state NEW -j ACCEPT

#email internet (forwarding)
#smtp
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 25 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $EXTERN_IF -o $INTERN_IF -p tcp ! --syn --sport 25 -j ACCEPT
#pop3
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport 110 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i $EXTERN_IF -o $INTERN_IF -p tcp ! --syn --sport 110 -j ACCEPT
#######################################################################
#ftp
iptables -A FORWARD -i $INTERN_IF -o $EXTERN_IF -p tcp -m multiport --dport 20,21 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $EXTERN_IF -p tcp -m multiport --dport 20,21 -m state --state NEW -j ACCEPT

#mysql
iptables -A OUTPUT -o $INTERN_IF -p tcp --dport $MYSQL_PORT -m state --state NEW -j ACCEPT
#ssh
iptables -A INPUT -i $INTERN_IF -p tcp --sport $HIGH_PORTS -d $INTERN_IP --dport $SSH_PORT -m state --state NEW -j ACCEPT
iptables -A INPUT -i $EXTERN_IF -p tcp --dport $SSH_PORT -j ACCEPT
iptables -A OUTPUT -o $EXTERN_IF -p tcp --sport $SSH_PORT -j ACCEPT

iptables -A OUTPUT -o $INTERN_IF -p tcp --sport $HIGH_PORTS --dport $SSH_PORT -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $EXTERN_IF -p tcp --sport $HIGH_PORTS --dport $SSH_PORT -m state --state NEW -j ACCEPT

#remote lotus
iptables -A OUTPUT -o $INTERN_IF -p tcp -d $INTERN_MAIL --dport 1352 -m state --state NEW -j ACCEPT

#######################################################################
iptables -t nat -A POSTROUTING -o $EXTERN_IF -j SNAT --to-source $EXTERN_IP
#######################################################################
#logging

iptables -A INPUT -j LOG --log-prefix "INPUT-DROP!!!"
iptables -A INPUT -j DROP
iptables -A OUTPUT -j LOG --log-prefix "OUTPUT-DROP!!!"
iptables -A OUTPUT -j DROP
iptables -A FORWARD -j LOG --log-prefix "FORWARD-DROP!!!"
iptables -A FORWARD -j DROP

Post Reply