[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debian] ip-up/down - > ipchains -D | ipchains -F?



On Sam, Jan 13, 2001 at 04:15:04 +0100, Janto Trappe wrote:

debian support um 06 uhr morgens... wenn das mein boss wüsste :)

> ich habe hier drei ipchains Scripte, zwei davon in ip-up und ip-down.
> Bis jetzt sehen ip-up und ip-down so aus das am Anfang immer alle
> Rules geloescht und dann ansprechend neu angelegt werden. (Die beiden
> Scripte sind natürlich unterschiedlich)

bad idea.

> Ist es nun sinnvoller die Rules alle mit "ipchains -F" zu loeschen und
> komplett neu zu generieren oder sollte man mit "ipchains -D" und
> "ipchains -A" arbeiten?

letzteres ist IMHO schon besser.  

> Die Flush-Methode hat den Vorteil, dass man uebersichtliche Scripte schreiben
> kann aber den Nachteil, dass fuer eine kurze Zeit ueberhaupt keine bzw.
> unvollstaendige Rules existieren. 

eben. eine restriktive default policy hilft da vor dem ip-up schon
weiter. manuell eingefügte (testweise, man weiss ja nie) regeln bleiben
beim initalisieren und beenden der firewall vorhanden. könnte bei
falscher handhabe aber auch ein sicherheitsloch darstellen. aber evt.
willst du das ja testweise...

> Wenn man mit -D arbeitet und die Rules alle
> einzeln loescht und neue anlegt, werden die Scripte IMHO sehr
> unuebersichtlich. Was meint ihr?

nimm die unübersichtlichkeit in kauf. mit etwas know-how lässt sich
schon ein einigermassen übersichtliches script schreiben.

filter script ebenfalls in ip-{up,down}.

[0firewall kannst du mal austesten]
/etc/ppp/ip-up.d/3firewall:

#!/bin/sh
#
# start firewall
#

if [ -x /etc/init.d/firewall ]; then
	/etc/init.d/firewall start;
fi

/etc/ppp/ip-down.de/99firewall

#!/bin/sh
#
# start firewall
#

if [ -x /etc/init.d/firewall ]; then
	/etc/init.d/firewall stop;
fi

[etwas FHS muss es ja haben]
/etc/init.d/firewall -> /usr/local/etc/init.d/firewall

[achtung: ich verwende hier noch 2.0. ipchains regeln selber eingeben.
das script ist evt. nicht optimal auf ipchains angepasst. ergänzungen
willkommen. damit das folgende script was bringt muss man wissen was 
man macht]
/usr/local/etc/init.d/firewall:

#!/bin/sh
#
# start/stop firewall
	
addrules () {
 # adding rules


# default policies setzen
ipchains -P input WASAUCHIMMER # an 1. stelle damit die firewall in der
                               # kurzen zeitspanne nicht geknackt werden 
			       # kann. hat IMHO priorität. wenn kein
			       # masq benützt und die default forwarding 
			       # policy auf ACCEPT ist könnte das evt. anders
			       # aussehen.
ipchains -P forward WASAUCHIMMER # forward als nächstes damit niemand
                                 # über ip forwarding in's lan gelangen 
				 # kann.
ipchains -P output WASAUCHIMMER  # als kompromiss am schluss

# icmp filter. nur wenn unbedingt nötig. ist bei 2.2 auch schon besser
# geworden

 for i in 4 5 8 12 13 15 17; do
 # ipchains icmp typ in $i filtrieren
 done;

# udp zuerst da wegen spoofing IMHO kritischer
# udp ports in einer for schleife einzeln filtrieren

 for i in $portlist do
   ipchains -A input -p udp -i iface # und hier deine regleln mit udp ports 
 done;

# jetzt tcp
# tcp ports in einer for schleife einzeln filtrieren

 for i in $portliste do
   ipchains -A input -p tcp -i iface # und hier deine regeln mit tcp ports
 done;

# forward/masq regeln hier
ipchains -A forward [...]

# hier das gleiche für output

[...]


}

removerules () {
 # removing rules

# ab hier jetzt nochmal das ganze for spiel mit ipchains -D sons alles
# wie oben in umgekehrter reihenfolge.

[...]

# default policies zurücksetzen
ipchains -P output WASAUCHIMMER
ipchains -P forward WASAUCHIMMER
ipchains -P input WASAUCHIMMER

}


case "$1" in
    start)
	echo -n "Starting firewall..."
	removerules # zur sicherheit. YMMV.
	addrules
	echo "done."
	;;
    stop)
        echo -n "Stopping firewall..."
	removerules
	echo "done."
	;;
    *)
	echo "Usage: /etc/init.d/firewall {start|stop}"
	exit 1
esac

exit 0

die portlisten sollte man evt. noch global machen... aber ich will
endlich das mail fertig schreiben...

die default policy sollte wie in jeder guten firewall auf DENY sein.

die angabe des interfaces erlaubt eine filtrierung speziell für's ppp
device. im lan ist natürlich, sofern nicht schon konfiguriert, alles
offen in bezug auf die konfiguration. weitere variablen und so kannst du
einfach anpassen.

folgende gründe:

- die firewall wird speziell für deine internet connection auf- und
  wieder abgebaut. alle regeln sind in in einer variablen gespeichert
  und werden mit einer for-schleife abgearbeitet. kann einfach erweitert
  werden.

- beim einbau einer weiteren netzwerkkarte für ein weiteres subnetz oder
  weiss ich was, gerät's du mit ip-{up,down} nicht in konflikt mit regeln
  die du anderweitig konfigurierst. lässt sich also problemlos
  erweitern.

- wenn du am basteln bist behälst du deine ursprünglichen filter.
  nachteil: manuell eingefügte filter regeln müssen auch manuell oder
  mit -F (bad idea) gelöscht werden. je nachdem wann du manuell filter
  einbaust kann auch ein -I im script besser sein.

- und evt. noch andere gründe die mir aber zu so später stunde nicht
  mehr einfallen

folgendes gibt es zu beachten:

ipmasq kann dir einen strich durch die rechnung machen, sofern
installiert. das masquerading allenfalls in /etc/ipmasq/*.rul anpassen
und die masq konfiguration dem packet üblassen. ist konformer, da ipmasq
ganz am anfang gestartet wird.

isdn hat in den ip-{up,down} scripts ebenfalls rules, die aber per
default, soweit ich das sehe, auskommentiert sind.

ergänzungen willkommen.

-- 
"Mine!  Mine!  It's all mine!"
	-- Daffy Duck

--
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an debian-user-de-request@lehmanns.de die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------

685 eingetragene Mitglieder in dieser Liste.


Reply to: