Strona 1 z 1

iptables, prośba o sprawdzenie reguł

: 10 czerwca 2009, 11:36
autor: Shalak
Witam.
Mam postawiony serwer z 10 kartami sieciowymi, 9xLAN (eth1-9) + interfejs zewnętrzny (eth0).
Serwer ma adresy IP 192.168.X.254, wpuszczam tylko pingi, ssh i zapytania do VNC Repeatera na porcie 5900. Wewnątrz sieci pracuje squid3 i samba.
Skrypty iptables:

Zmienne (/etc/iptables/set.var):

Kod: Zaznacz cały

#!/bin/sh

IPT="/sbin/iptables"
IPTN="$IPT -t nat"
IPTM="$IPT -t mangle"

EXTIP1="ip_zewn1"
EXTIP2="ip_zewn2"
EXTIP3="ip_zewn3"
EXTIP4="ip_zewn4"
EXTIP5="ip_zewn5"

EXTIF="eth0"

LAN1="192.168.1.0/24"
LAN2="192.168.2.0/24"
LAN3="192.168.3.0/24"
LAN4="192.168.4.0/24"
LAN5="192.168.5.0/24"
LAN6="192.168.6.0/24"
LAN7="192.168.7.0/24"
LAN8="192.168.8.0/24"
LAN9="192.168.9.0/24"

LAN1IF="eth1"
LAN2IF="eth2"
LAN3IF="eth3"
LAN4IF="eth4"
LAN5IF="eth5"
LAN6IF="eth6"
LAN7IF="eth7"
LAN8IF="eth8"
LAN9IF="eth9"

LAN1IP="192.168.1.254"
LAN2IP="192.168.2.254"
LAN3IP="192.168.3.254"
LAN4IP="192.168.4.254"
LAN5IP="192.168.5.254"
LAN6IP="192.168.6.254"
LAN7IP="192.168.7.254"
LAN8IP="192.168.8.254"
LAN9IP="192.168.9.254"
nat:

Kod: Zaznacz cały

#!/bin/sh

. /etc/iptables/set.var

$IPTN -F
$IPTN -X
$IPTN -Z

$IPTN -P PREROUTING ACCEPT
$IPTN -P POSTROUTING ACCEPT
$IPTN -P OUTPUT ACCEPT

#####################
#### PREROUTING #####

# pod squida

$IPTN -A PREROUTING -i $LAN1IF -p tcp --dport 80 -j DNAT --to $LAN1IP:8080
$IPTN -A PREROUTING -i $LAN2IF -p tcp --dport 80 -j DNAT --to $LAN2IP:8080
$IPTN -A PREROUTING -i $LAN3IF -p tcp --dport 80 -j DNAT --to $LAN3IP:8080
$IPTN -A PREROUTING -i $LAN4IF -p tcp --dport 80 -j DNAT --to $LAN4IP:8080
$IPTN -A PREROUTING -i $LAN5IF -p tcp --dport 80 -j DNAT --to $LAN5IP:8080
$IPTN -A PREROUTING -i $LAN6IF -p tcp --dport 80 -j DNAT --to $LAN6IP:8080
$IPTN -A PREROUTING -i $LAN7IF -p tcp --dport 80 -j DNAT --to $LAN7IP:8080
$IPTN -A PREROUTING -i $LAN8IF -p tcp --dport 80 -j DNAT --to $LAN8IP:8080
$IPTN -A PREROUTING -i $LAN9IF -p tcp --dport 80 -j DNAT --to $LAN9IP:8080

## PRZEKIEROWANIA 


$IPTN -A PREROUTING -i $EXTIF -d $EXTIP3 -p tcp --dport 8000 -j DNAT --to-destination 192.168.3.15:3389
$IPTN -A POSTROUTING -o $EXTIF -s 192.168.3.15 -p tcp --sport 3389 -j SNAT --to-source $EXTIP3


#####################
#### POSTROUTING ####



$IPTN -A POSTROUTING -s $LAN1 -o $EXTIF -j SNAT --to $EXTIP1
$IPTN -A POSTROUTING -s $LAN2 -o $EXTIF -j SNAT --to $EXTIP1
$IPTN -A POSTROUTING -s $LAN3 -o $EXTIF -j SNAT --to $EXTIP1
$IPTN -A POSTROUTING -s $LAN4 -o $EXTIF -j SNAT --to $EXTIP1
$IPTN -A POSTROUTING -s $LAN5 -o $EXTIF -j SNAT --to $EXTIP1
$IPTN -A POSTROUTING -s $LAN6 -o $EXTIF -j SNAT --to $EXTIP1
$IPTN -A POSTROUTING -s $LAN7 -o $EXTIF -j SNAT --to $EXTIP1
$IPTN -A POSTROUTING -s $LAN8 -o $EXTIF -j SNAT --to $EXTIP1
$IPTN -A POSTROUTING -s $LAN9 -o $EXTIF -j SNAT --to $EXTIP1

filtry:

Kod: Zaznacz cały

#!/bin/sh

. /etc/iptables/set.var

$IPT -F
$IPT -X
$IPT -Z

$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT



###############
#### INPUT ####

$IPT -A INPUT -i lo -j ACCEPT


# petelka dla kazdego LANa zeby nie zmieniac za kazdym razem *nastu linijek
for i in `seq 1 9`
do

	$IPT -A INPUT -i eth$i -d $EXTIP1 -j ACCEPT

	# ssh
	$IPT -A INPUT -i eth$i -d 192.168.$i.254 -p tcp --dport 22 -j ACCEPT
	
	# netbios
	$IPT -A INPUT -i eth$i -d 192.168.$i.254 -p tcp --dport 139 -j ACCEPT
	$IPT -A INPUT -i eth$i -d 192.168.$i.254 -p tcp --dport 445 -j ACCEPT
	
	# squid
	$IPT -A INPUT -i eth$i -d 192.168.$i.254 -p tcp --dport 8080 -j ACCEPT
	# vnc
	$IPT -A INPUT -i eth$i -d 192.168.$i.254 -p tcp --dport 5500 -j ACCEPT
	
	$IPT -A INPUT -i eth$i -d 192.168.$i.254 -p icmp --icmp-type echo-request -j ACCEPT
done


# nawiazane
$IPT -A INPUT -p tcp -j ACCEPT -m state --state ESTABLISHED
$IPT -A INPUT -p udp -j ACCEPT -m state --state ESTABLISHED
$IPT -A INPUT -p icmp -j ACCEPT -m state --state ESTABLISHED
$IPT -A INPUT -p icmp -j ACCEPT -m state --state RELATED

# ssh
$IPT -A INPUT -i $EXTIF -p tcp --dport 22 -j ACCEPT
# vnc repeater
$IPT -A INPUT -i $EXTIF -p tcp --dport 5900 -j ACCEPT

$IPT -A INPUT -i $EXTIF -p icmp --icmp-type echo-request -j ACCEPT

#################
#### FORWARD ####

# nawiazane
$IPT -A FORWARD -p tcp -j ACCEPT -m state --state ESTABLISHED
$IPT -A FORWARD -p tcp -j ACCEPT -m state --state RELATED
$IPT -A FORWARD -p udp -j ACCEPT -m state --state ESTABLISHED
$IPT -A FORWARD -p icmp -j ACCEPT -m state --state ESTABLISHED
$IPT -A FORWARD -p icmp -j ACCEPT -m state --state RELATED

# forwardowanie pakietow z lanow do internetu
$IPT -A FORWARD -s $LAN1 -o $EXTIF -j ACCEPT
$IPT -A FORWARD -s $LAN2 -o $EXTIF -j ACCEPT
$IPT -A FORWARD -s $LAN3 -o $EXTIF -j ACCEPT
$IPT -A FORWARD -s $LAN4 -o $EXTIF -j ACCEPT
$IPT -A FORWARD -s $LAN5 -o $EXTIF -j ACCEPT
$IPT -A FORWARD -s $LAN6 -o $EXTIF -j ACCEPT
$IPT -A FORWARD -s $LAN7 -o $EXTIF -j ACCEPT
$IPT -A FORWARD -s $LAN8 -o $EXTIF -j ACCEPT
$IPT -A FORWARD -s $LAN9 -o $EXTIF -j ACCEPT

# przekierowanie
$IPT -A FORWARD -i $EXTIF -o $LAN3IF -d 192.168.3.15 -j ACCEPT
$IPT -A FORWARD -o $EXTIF -i $LAN3IF -s 192.168.3.15 -j ACCEPT

Modem DSL w ciągu 70 godzin wykazał około 700000 błędów po stronie karty sieciowej i około 200 błędów ATM. Niestety nie mam logów z tego, tylko ilość błędów.

Zatem teraz moje pytanie: czego brakuje w tym firewallu, co jest niepotrzebne? Czy te setki tysięcy błędów może być spowodowane błędem w firewallu?

Z góry dziękuję za odpowiedź i pozdrawiam,
Shalak.

: 10 czerwca 2009, 15:38
autor: s3p4n
Błędem w firewallu raczej nie, możesz filtrować i logować błędne pakiety:

Kod: Zaznacz cały

IPT=iptables
$IPT -N Badflags
$IPT -A Badflags -m limit --limit 10/minute -j LOG --log-prefix "Badflags: "
$IPT -A Badflags -j DROP

# A list of well known combination of Bad TCP flags
# we redirect those to the Badflags chain
# which is going to handle them (log and drop)
$IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j Badflags
$IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j Badflags
$IPT -A INPUT -p tcp --tcp-flags ACK,URG URG -j Badflags
$IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j Badflags
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j Badflags
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j Badflags
$IPT -A INPUT -p tcp --tcp-flags ALL ALL -j Badflags
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j Badflags
$IPT -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j Badflags
$IPT -A INPUT -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j Badflags
$IPT -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j Badflags

: 11 czerwca 2009, 17:25
autor: Shalak
A sam firewall jest dobrze napisany?