Gå til innhold

Iptables script fungerer ikkje med ny kernel


Anbefalte innlegg

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 :D

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 av xzibiz_
Lenke til kommentar
Videoannonse
Annonse

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.. :D

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...