xzibiz Skrevet 18. oktober 2006 Skrevet 18. oktober 2006 (endret) Sitter her med ein nyinstallasjon av slackware 10.2 med kernel 2.6.18. Denne maskinen skal brukes som router / brannmur på et lan til ca 50 stk, som er nå til helga. Derfor ville eg bruke dette scriptet som et utgangspunkt. Men problemet er at den slepper gjennom all trafikk, selv om den skal sperre alt uten dei portane som er lista nesten heilt øverst. :: Eller vis du har et script som gjer det sama, tar eg gjerne imot det Bare at det router, blokker alt, liste over porter som skal vere opne. #!/bin/sh# IPT må peke mot der du har iptables installert. IPT="/sbin/iptables" LANNET="192.168.1.0/24" LAN_IFACE="eth1" WAN_IFACE="eth0" WAN_IP="wan ip" OPEN_PORTS_TCP="21,22,80,1863,5050,6667,6901,8080,27015,64530" OPEN_PORTS_UDP="53,6901" # Vi starter med å flushe og blokke alt! Og jeg mener alt $IPT -F $IPT -t nat -F $IPT -t mangle -F $IPT -X # Vi legger til noen saker i /proc systemet echo "1" > /proc/sys/net/ipv4/ip_forward echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects echo "0" > /proc/sys/net/ipv4/conf/all/secure_redirects echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses echo "1" > /proc/sys/net/ipv4/tcp_syncookies echo "0" > /proc/sys/net/ipv4/tcp_ecn for i in /proc/sys/net/ipv4/conf/*; do echo "1" > $i/rp_filter done echo "1" > /proc/sys/net/ipv4/conf/all/log_martians $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP # Nå lager vi en rule som deler internett med de andre pc'ene du har. $IPT -t nat -A POSTROUTING -s $LANNET -d ! $LANNET -o $WAN_IFACE -j SNAT --to $WAN_IP $IPT -A FORWARD -s $LANNET -d ! $LANNET -j ACCEPT $IPT -A FORWARD -m state --state NEW -i $LAN_IFACE -s $LANNET -d ! $LANNET -j ACCEPT $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -i $WAN_IFACE -s ! $LANNET -j ACCEPT # Vi dropper noen scans.... som eks. XMAS Scan osv... $IPT -A INPUT -p tcp --tcp-flags ALL ALL -j DROP $IPT -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP # Vi tillater 4 TCP koblinger pr. sekund, ingen flere! $IPT -N syn-flood $IPT -A INPUT -p tcp --syn -j syn-flood $IPT -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN $IPT -A syn-flood -j DROP # Nå må vi sette opp en state rules $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A INPUT -m state --state NEW -i ! $WAN_IFACE -j ACCEPT $IPT -A INPUT -m state --state INVALiD -j DROP # NEW state uten syn er sperret!, siden dette er mest sansynlig noe 'ondt'. $IPT -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A INPUT -p tcp --tcp-option ! 2 -j REJECT --reject-with tcp-reset # Vi lar $LAN_IFACE ha tilgang til alt... $IPT -A INPUT -i $LAN_IFACE -j ACCEPT # Vi tillater ECHO Requests. Det vil si Ping $IPT -A INPUT -p icmp --icmp-type 0 -j ACCEPT $IPT -A INPUT -p icmp --icmp-type 8 -j ACCEPT # Vi setter opp destination unreachable $IPT -A INPUT -p icmp --icmp-type 3 -j ACCEPT # Vi er hyggelig som tillater 'traceroute' $IPT -A INPUT -p icmp --icmp-type 11 -j ACCEPT $IPT -A INPUT -p icmp --icmp-type 30 -j ACCEPT # Vi tillater noen TCP porter $IPT -A INPUT -p tcp -m multiport --dport $OPEN_PORTS_TCP -m tcp -j ACCEPT # Vi tiltater noen UDP porter $IPT -A INPUT -p udp -m multiport --dport $OPEN_PORTS_UDP -m udp -j ACCEPT # Vi stenger for noen lokale ip'er som ikke er våre. $IPT -A FORWARD -s 192.168.0.0/16 -j DROP $IPT -A FORWARD -s 172.16.0.0/12 -j DROP $IPT -A FORWARD -s 10.0.0.0/8 -j DROP $IPT -A INPUT -s 192.168.0.0/16 -j DROP $IPT -A INPUT -s 172.16.0.0/12 -j DROP $IPT -A INPUT -s 10.0.0.0/8 -j DROP $IPT -A FORWARD -d 192.168.0.0/16 -j DROP $IPT -A FORWARD -d 172.16.0.0/12 -j DROP $IPT -A FORWARD -d 10.0.0.0/8 -j DROP # Nå må vi huske å tillate OUTPUT:) $IPT -A OUTPUT -s $WAN_IP -j ACCEPT $IPT -A OUTPUT -s $LANNET -j ACCEPT $IPT -A OUTPUT -s 127.0.0.1 -j ACCEPT # Ferdig det funka fint med 2.4 kernel.. Endret 18. oktober 2006 av xzibiz_
Palme Skrevet 18. oktober 2006 Skrevet 18. oktober 2006 Hva mener du med at den slipper gjennom all trafikk? Det er jo heller dårlig med regler på hva som skal gå ut fra boksen.. Ellers kan jeg ikke se noen direkte feil i scriptet. Du har vel støtte for iptables/ipchains i kjernen?
xzibiz Skrevet 18. oktober 2006 Forfatter Skrevet 18. oktober 2006 Heilt øvert står det at den skal blokke alt. Og bare sleppe gjennom dei portane som er lista opp.... Men dersom eg fjerner port 80 feks klarer eg ennå å surfe heilt fint.. Ja eg har støtte for iptables.. og ipchain. Dersom du har ein bedre måde å skriva scriptet på, kan du bare poste det her..
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå