da ich apache und mysql laufen hab habe ich mich vor einiger zeit ein wenig in die firewall-materie eingelesen und mir für suse10 ein skript "gebastelt" welches seine kleinen anforderungen recht gut erfüllte..
nun da ich ubuntu linux probiere muss ich bemerken dass ich zwar ein ping packet rausschicken kann, mit dem surfen ists aber vorbei.. die firewall verhindert es großartig :-( (ich habe nichts verändert)
ich habe kubuntu dapper drake .. die netzwerkeinstellungen habe ich korrekt vorgenommen, nameserver.. gateway.. alles gesetzt. sobald ich die firewall deaktiviere, klappts auch mit dem nachbarn... äähm..
hier das skript: ich hoffe es kann mir jemand den (die) fehler korrigieren...
danke!
nun da ich ubuntu linux probiere muss ich bemerken dass ich zwar ein ping packet rausschicken kann, mit dem surfen ists aber vorbei.. die firewall verhindert es großartig :-( (ich habe nichts verändert)
ich habe kubuntu dapper drake .. die netzwerkeinstellungen habe ich korrekt vorgenommen, nameserver.. gateway.. alles gesetzt. sobald ich die firewall deaktiviere, klappts auch mit dem nachbarn... äähm..
hier das skript: ich hoffe es kann mir jemand den (die) fehler korrigieren...
Code:
#! /bin/bash
### BEGIN INIT INFO
# Provides: packet filter rules
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Description: Start Iptables-Firewall
### END INIT INFO
##--------------------------------------------------------##
##--------------------Variablen setzen--------------------##
##--------------------------------------------------------##
IIF=eth0 # Interface
TNET=192.168.0.0/24 # Trusted Net
ENET=0/0 # Enemy Net
uPort="137 138" # udp ports die durch sollen
tPort="445" # tcp ports die durch sollen
PortOut="" # udp/tpc ports über die ich raus darf
##--------------------------------------------------------##
##--------------------------------------------------------##
######################Prüfen ob Module geladen sind
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_nat_ftp
modprobe ipt_state
######Abfrage der Eingabe
case $1 in
start)
echo "Starting Firewall..."
##################Alles, was nicht erlaubt ist, ist verboten
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
##################Alle anderen (alte) Regeln löschen
iptables -F # Lösche alle Regeln aus der Filter Tabelle
iptables -t nat -F # Lösche aller Regeln aus der NAT Tabelle
iptables -X # Lösche alle selbstdefinierten Regeln
###############################
##--------------------------------------------------------##
#-------------------------Regeln---------------------------#
##--------------------------------------------------------##
###############################
##################Loopback öffnen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
###############ICMP
# ping: 8 und 0, ausgehend
iptables -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type echo-reply -j ACCEPT
# ping: 8 und 0, eingehend
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
# source quench (4)
iptables -A OUTPUT -p ICMP --icmp-type source-quench -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type source-quench -j ACCEPT
# time exceeded (11)
iptables -A OUTPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
# parameter problem (12)
iptables -A OUTPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type parameter-problem -j ACCEPT
# destination unreachable (3)
iptables -A OUTPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
iptables -A OUTPUT -p ICMP --icmp-type port-unreachable -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type destination-unreachable -j ACCEPT
#############PING erlauben
iptables -A OUTPUT -p ICMP -j ACCEPT
#############portscans sperren
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP # Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP # SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP # SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP # FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP # FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP # PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP # URG ohne ACK
########MTU Problem loesen
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
#########Schutz vor IP-Spoofing
iptables -A INPUT -i ppp0 -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i ppp0 -s 172.16.0.0/16 -j DROP
iptables -A INPUT -i ppp0 -s 192.168.0.0/24 -j DROP
################# Internes Netz darf alles
# iptables -A INPUT -s $TNET -j ACCEPT
# iptables -A OUTPUT -d $TNET -j ACCEPT
#################
##--------------------------------------------------------##
##-----------Definierte Ports öffnen - Ankommend----------##
##--------------------------------------------------------##
for p in $tPort
do
iptables -A INPUT -p tcp --dport $p -i $IIF -j ACCEPT
done
for p in $uPort
do
iptables -A INPUT -p udp --dport $p -i $IIF -j ACCEPT
done
##--------------------------------------------------------##
##---------Definierte Ports öffnen - Ausgehend------------##
##-----(diese regeln lassen alles was rausgeht zu)--------##
##--------------------------------------------------------##
iptables -N filter
iptables -A filter -m state --state NEW -o $IIF -j ACCEPT
iptables -A filter -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A filter -j LOG
iptables -A filter -j DROP
iptables -A INPUT -j filter
iptables -A FORWARD -j filter
iptables -A OUTPUT -j filter
##--------------------------------------------------------##
##--------------------------------------------------------##
################## Routing an
echo 1 > /proc/sys/net/ipv4/ip_forward
########################
;;
########################
stop)
echo "Stopping Firewall"
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -t nat -F
iptables -X
################ Routing aus
echo 0 > /proc/sys/net/ipv4/ip_forward
;;
status)
echo "Die gesetzten Firewallregeln: "
iptables -L -v
iptables -v -t nat -L POSTROUTING
iptables -v -t nat -L PREROUTING
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
;;
esac
danke!