Portál AbcLinuxu, 24. dubna 2024 14:23


Dotaz: Prosím o Váš názor na firewall

21.11.2006 11:57 Martin Truhlář
Prosím o Váš názor na firewall
Přečteno: 202×
Odpovědět | Admin
Zdravim Vas, doma jsem se koncene pripojel k netu a protoze je treba zprovoznit vice pocitacu, tak jsem se rozhodl zkusit linuxovy router a na nem stavovy firewall, cosi jsem o tom cetl, neco nasel a vyslo me tohle, ma saci to nejak fungovat?

Cil je aby na vnitrni siti "vlan0" mel kdokoliv pristup na net a naopak aby z vnejsiho rozhrani "eth2" byl videt jen ssh /22/ a presmerovani pro SIP, ktery je ve forme LinkSys PAP2 jako 10.10.0.200.

Prosim o kritiku, nazory ...
#!/bin/sh
###############  mini firewall ############### 
##############################################

IPT="/sbin/iptables"
NET_IFACE="eth2"
NET_ADDRESS="XXX.XXX.XXX.XXX"

LAN_IFACE="vlan0"
LAN_IP="10.10.0.10"
LAN_NET="10.10.0.0/24"
LAN_BCAST="10.10.0.255"

LOC_IFACE="lo"
LOC_IP="127.0.0.1"

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects

##############################################
####################  Reset defaultni potitiky
##############################################
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -F
$IPT -X

##############################################
#####################  Zakaze co dal nepovolim
##############################################
$IPT -A INPUT -i $NET_IFACE -j DROP

##############################################
#######################  Povoleni ICMP provozu
##############################################
$IPT -A INPUT -p ICMP --icmp-type 0 -j ACCEPT
$IPT -A INPUT -p ICMP --icmp-type 3 -j ACCEPT
$IPT -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT -p ICMP --icmp-type 11 -j ACCEPT

##############################################
##########  Povolení provozu na LAN a pravidla
##############################################
$IPT -A INPUT -p ALL -i $LAN_IFACE -s $LAN_NET -j ACCEPT
$IPT -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST -j ACCEPT
$IPT -A INPUT -p UDP -i $LAN_IFACE --source-port 68 --destination-port 67 -j ACCEPT

##############################################
#############  Povolení provozu na LAN a LOCAL
##############################################
$IPT -A INPUT -p ALL -i $LAN_IFACE -j ACCEPT
$IPT -A INPUT -p ALL -i $LOC_IFACE -j ACCEPT

$IPT -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -s $LOC_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LOC_IFACE -j ACCEPT

##############################################
###############  Povolení provozu z LAN do NET
##############################################
$IPT -A FORWARD -i $LAN_IFACE -o $NET_IFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -o $NET_IFACE -j ACCEPT

##############################################
#######  Povolení forward z NET+vstup na LOCAL
##############################################
$IPT -A FORWARD -i $NET_IFACE -o $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $NET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

##############################################
########################  Uzivatelska pravidla
##############################################
## vstup na firewall, protokol SSH (port 22)
$IPT -A tcp_inbound -p TCP -s 0/0 --destination-port 22 -j ACCEPT 

## vstup na firewall, protokol SIP (port 5060:5061 + 7070:7080)
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 5060:5061 -j ACCEPT
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 7070:7080 -j ACCEPT

## SIP komunikuje primo z hardware 10.10.0.200
$IPT -A FORWARD -p udp -i $NET_IFACE --destination-port 5060:5061 --destination 10.10.0.200 -j ACCEPT 
$IPT -A FORWARD -p udp -i $NET_IFACE --destination-port 7070:7080 --destination 10.10.0.200 -j ACCEPT 
$IPT -t nat -A PREROUTING -p udp -i $NET_IFACE --destination-port 5060:5061 -j DNAT --to-destination 10.10.0.200
$IPT -t nat -A PREROUTING -p udp -i $LAN_IFACE --destination-port 5060:5061 --destination $NET_ADDRESS -j DNAT --to-destination 10.10.0.200

##############################################
############################  zprovozneni SNAT
##############################################
$IPT -t nat -A POSTROUTING -o $NET_IFACE -j SNAT --to-source $NET_ADDRESS
$IPT -t nat -A POSTROUTING -o $LAN_IFACE  -j SNAT --to-source $NET_ADDRESS
Ma to vubec potencial fungovat?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.11.2006 12:18 žabža
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
Odpovědět | | Sbalit | Link | Blokovat | Admin
Náš názor je, že kdo se potřebuje takhle ptát, by firewall stavět neměl. :-)

Na první pohled mě zaujalo, že máte všude politiku ACCEPT a pak filtrovací pravidla, která jsou taky ACCEPT...
21.11.2006 12:27 Martin Truhlář
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
Uvozuje to pravidlo:

$IPT -A INPUT -i $NET_IFACE -j DROP

Tedy příchozí z NET zahodit, takže následně je skutečně vše ACCEPT, v případě potencionálního útoku mě zajímá jen toto rozhraní, uvnitř to neřeším, není to veřejná síť, ale domácnost.

Ale nevylučuju, že je to špatně.
21.11.2006 12:42 petr
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
No já nevím... Doma mám default pravidlo DROP a jsem spokojenej...

Zastávám politiku vše je zakázané, explicitně povoluji konkrétní akce... Opačný přístup používá např. M$ v jeho windoze a všichni vidíme, jak to dopadlo...;-)
21.11.2006 12:52 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall

Pokud hned na začátku všechno zahodíte a pak teprve začnete něco povolovat, pakety se nemají k těm dalším paketům jak dostat.

Mimochodem, jaký je smysl podmínek typu '-p ALL' nebo '-s 0/0'?

21.11.2006 12:53 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
…k těm dalším pravidlům…
21.11.2006 12:59 Martin Truhlář
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
Chápu správně že tedy pravidlo:
$IPT -A INPUT -i $NET_IFACE -j DROP
má být až na konci, tomu rozumím a je to chyba.

Stejně tak můžu defultně nastavit místo:
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -F
$IPT -X
na zakázanou:
$IPT -F
$IPT -X
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
Smysl "-p ALL" a "-s 0/0" mě to pomáhá zpřehledňovat, asi je to ale k ničemu.
21.11.2006 12:44 petr
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ma to vubec potencial fungovat?
Tak to vyzkoušejte, ne?
21.11.2006 13:00 Martin Truhlář
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
Zkouška špatně napsaného firewallu může taky znamenat nemožnost se k počítači vůbec dostat, a to bych vcelku nerad. Respektive jde o počítač bez grafické karty, atd. Přísup je jen po síti.
21.11.2006 13:59 Peter Figura | skóre: 12 | blog: pefi | Modra
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
To sa da osetrit pomocou iptables-save a nakonfigurovanim cronu alebo pomocou prikazu at, aby o nejaky cas spustil iptables-restore s povodnym (funkcnym) nastavenim.
21.11.2006 14:03 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
to robim takto:

/etc/rc.d/rc.firewall start; sleep 20; /etc/rc.d/rc.firewall stop

kde "stop" je implementovane ako
        iptables -F INPUT
        iptables -F OUTPUT
        iptables -F FORWARD
        iptables -P INPUT ACCEPT
        iptables -P OUTPUT ACCEPT
        iptables -P FORWARD ACCEPT
21.11.2006 13:04 Martin Truhlář
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak tedy defaultně vše DROP, povolování co je třeba a co projde na konci smažu, i když asi je to blbost, protože tam nemá co propadnout.
##############################################
####################  Reset defaultni potitiky
##############################################
$IPT -F
$IPT -X
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP

##############################################
#######################  Povoleni ICMP provozu
##############################################
$IPT -A INPUT -p ICMP --icmp-type 0 -j ACCEPT
$IPT -A INPUT -p ICMP --icmp-type 3 -j ACCEPT
$IPT -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT -p ICMP --icmp-type 11 -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT

##############################################
########################  Omezení AUTH provozu
##############################################
$IPT -A INPUT -i $NET_IFACE -p TCP --destination-port 113 -j REJECT

##############################################
###################### SPOOFING & SYN FLOODING
##############################################
$IPT -N spoofing
$IPT -A spoofing -s 192.168.0.0/16 -j DROP
$IPT -A spoofing -s 172.16.0.0/12 -j DROP
$IPT -A spoofing -s 10.0.0.0/8 -j DROP

$IPT -A INPUT -i $NET_IFACE -j spoofing
$IPT -A FORWARD -i $NET_IFACE -j spoofing

$IPT -N syn_flood
$IPT -A INPUT -i $NET_IFACE -p tcp --syn -j syn_flood
$IPT -A syn_flood -m limit --limit 1/s --limit-burst 5 -j RETURN
$IPT -A syn_flood -j DROP

##############################################
##########  Povolení provozu na LAN a pravidla
##############################################
$IPT -A INPUT -p ALL -i $LAN_IFACE -s $LAN_NET -j ACCEPT
$IPT -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST -j ACCEPT
$IPT -A INPUT -p UDP -i $LAN_IFACE --source-port 68 --destination-port 67 -j ACCEPT

##############################################
#############  Povolení provozu na LAN a LOCAL
##############################################
$IPT -A INPUT -p ALL -i $LAN_IFACE -j ACCEPT
$IPT -A INPUT -p ALL -i $LOC_IFACE -j ACCEPT

$IPT -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LAN_IFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -s $LOC_IP -j ACCEPT
$IPT -A OUTPUT -p ALL -o $LOC_IFACE -j ACCEPT

##############################################
###############  Povolení provozu z LAN do NET
##############################################
$IPT -A FORWARD -i $LAN_IFACE -o $NET_IFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -o $NET_IFACE -j ACCEPT

##############################################
#######  Povolení forward z NET+vstup na LOCAL
##############################################
$IPT -A FORWARD -i $NET_IFACE -o $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $NET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT

##############################################
########################  Uzivatelska pravidla
##############################################
## vstup na firewall, protokol SSH (port 22)
$IPT -A tcp_inbound -p TCP -s 0/0 --destination-port 22 -j ACCEPT 

## vstup na firewall, protokol SIP (port 5060:5061 + 7070:7080)
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 5060:5061 -j ACCEPT
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 7070:7080 -j ACCEPT

## SIP komunikuje primo z hardware 10.10.0.200
$IPT -A FORWARD -p udp -i $NET_IFACE --destination-port 5060:5061 --destination 10.10.0.200 -j ACCEPT 
$IPT -A FORWARD -p udp -i $NET_IFACE --destination-port 7070:7080 --destination 10.10.0.200 -j ACCEPT 
$IPT -t nat -A PREROUTING -p udp -i $NET_IFACE --destination-port 5060:5061 -j DNAT --to-destination 10.10.0.200
$IPT -t nat -A PREROUTING -p udp -i $LAN_IFACE --destination-port 5060:5061 --destination $NET_ADDRESS -j DNAT --to-destination 10.10.0.200

##############################################
############################  zprovozneni SNAT
##############################################
$IPT -t nat -A POSTROUTING -o $NET_IFACE -j SNAT --to-source $NET_ADDRESS
$IPT -t nat -A POSTROUTING -o $LAN_IFACE  -j SNAT --to-source $NET_ADDRESS

##############################################
###############  Zakaze co proslo z NET az sem
##############################################
$IPT -A INPUT -i $NET_IFACE -j DROP
21.11.2006 17:03 Nemo
Rozbalit Rozbalit vše Re: Prosím o Váš názor na firewall
Nechces se inspirovat tady ?

http://www.petricek.cz/mpfw/

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.