PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [iptable] Ports vom loggen ausschließen



xmarvel
28.02.03, 13:27
hi

wie kann ich bestimmte Ports vom Loggen ausschließen ?

MFG
xmarvel

linuxhanz
28.02.03, 13:34
! Portnummer


sollte funktionieren

btw. Arbeitest Du mit multiports?

xmarvel
28.02.03, 15:42
@ linuxhanz

kannst du mal ein Beispiel machen ?
und ich arbeite ohne multiports

linuxhanz
28.02.03, 15:48
klar!


geklaut aus der CT:




iptables -N meineserver_tcp
iptables -A meineserver_tcp -p tcp --tcp-flags ALL SYN -j LOG
iptables -A meineserver_tcp -p tcp -j ACCEPT
#bei vollem betrieb
iptables -A INPUT -m multiport -p tcp --dport 21,25,1000,80,110,113,137,138,139,389,443,3128,200 11 -j meineserver_tcp

## paranoia
#iptables -A INPUT -m multiport -p tcp --dport 1000,80,20011 -j meineserver_tcp
iptables -A meineserver_tcp -p tcp -j LOG
iptables -N meineserver_udp
iptables -A meineserver_udp -p udp -j LOG
iptables -A meineserver_udp -p udp -j ACCEPT
iptables -A INPUT -m multiport -p udp --dport 123,3130,3401,4827 -j meineserver_udp


Eine Regel aus einem IPCHAINS Skript mit ! :

$IPC -A output -i $EXT -s !$LOCALIP -j REJECT

xmarvel
28.02.03, 16:12
ähm ich seh nichts wo er einzelne Ports ausschließt :rolleyes:

HangLoose
28.02.03, 16:31
@xmarvel

es gibt mehrere möglichkeiten

iptables -A MY_REJECT -p tcp --dport ! 4662 -j LOG --log-prefix "REJECT TCP "

mit ! 4662 gibst du z.b. an, das alles was tcp ist, gelogt werden soll, ausgenommen hierbei port 4662. der nachteil hierbei, du kannst nicht multiport nutzen. es ist also nur ein port möglich

in meinem script hab ich(besser gesagt Jinto;)) es etwas anders gelöst

hier ein auszug

#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# DROP & LOG CHAIN
#--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

# MY_LOG
#_______________

$ipt -N MY_LOG
$ipt -A MY_LOG -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
$ipt -A MY_LOG -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
$ipt -A MY_LOG -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "


# MY_REJECT-Chain
# MY_REJECT fuellen
#------------------------

$ipt -N MY_REJECT
$ipt -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
$ipt -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
$ipt -A MY_REJECT -p icmp -j DROP
$ipt -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
$ipt -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

# MY_LOGREJECT
#------------------------

$ipt -N MY_LOGREJECT
$ipt -A MY_LOGREJECT -j MY_LOG
$ipt -A MY_LOGREJECT -j MY_REJECT

# vom loggen ausschließen
#------------------------------

$ipt -A INPUT -p TCP --dport 4661:4665 -j MY_REJECT # edonkey Anfragen vom Logging ausschliessen
$ipt -A INPUT -p UDP --dport 4665 -j MY_REJECT # edonkey Anfragen vom Logging ausschliessen
$ipt -A INPUT -p UDP --dport 137 -j MY_REJECT # Netbios nicht loggen
$ipt -A INPUT -p UDP --dport 1214 -j MY_REJECT # Kazaa nicht loggen
$ipt -A INPUT -p TCP --dport 1214 -j MY_REJECT # Kazaa nicht loggen
$ipt -A INPUT -p UDP --dport 6970 -j MY_REJECT # udp vom realplayer nicht loggen


Gruß HL

xmarvel
28.02.03, 17:07
@HangLoose

da im Script auch noch andere Sachen drin hast. Versuch ich mal das rauszunehmen was gebraucht wird ;)



iptables -N OWN_LOG
iptables -A OWN_LOG -j LOG --log-prefix="unbekanntes Paket: "

iptables -A INPUT -i ppp0 --dport 4000 -j OWN_LOG
iptables -A INPUT -i ppp0 --dport 23 -j OWN_LOG


So würde er 4000 und 23 nicht mitloggen (wenn nicht dann habe ich das falsch verstanden) ?
Und noch eine Frage nach deiner (und meiner) Reihenfolge würde er doch zuerst alles loggen da ja die Regel:


iptables -A OWN_LOG -j LOG --log-prefix="unbekanntes Paket: "

vor den nicht mitgeloggten Ports kommt

HangLoose
28.02.03, 17:23
hi


So würde er 4000 und 23 nicht mitloggen (wenn nicht dann habe ich das falsch verstanden) ?

so würde er nur anfragen an die beiden ports loggen. wenn du sie auschließen willst, mußt du sie mit einem ! negieren.

iptables -A INPUT -i ppp0 --dport !4000 -j OWN_LOG



Und noch eine Frage nach deiner (und meiner) Reihenfolge würde er doch zuerst alles loggen da ja die Regel:

mit dieser zeile, besser gesagt mit den beiden

iptables -N OWN_LOG
iptables -A OWN_LOG -j LOG --log-prefix="unbekanntes Paket: "

*erzeugst* du eine userdefinierte regelkette, da wird noch nichts gelogt. erst mit der folgenden zeile

iptables -A INPUT -i ppp0 --dport 4000 -j OWN_LOG

wenn in der inputchain ein paket mit dport 4000 eintrifft, *schicke* dieses an die userdef. regelkette OWN_LOG (-j OWN_LOG). in der wird dann entschieden, was damit passieren soll. mämlich loggen mit prefix "unbekanntes paket"


Gruß HL

xmarvel
28.02.03, 17:36
bei deinem Script ist doch auch nichts negiert ? Dann schließt das bei dir doch auch nichts aus
:confused:
und wenn ich den ersten Port negiere. Dann würde doch die zweite Regel nicht zutreffen da ja dann schon die erste Regel zutrifft.
Ausser man macht es mit multiports

HangLoose
28.02.03, 17:46
bei deinem Script ist doch auch nichts negiert ? Dann schließt das bei dir doch auch nichts aus

bei mir wird das ganze ja auch an die regelkette MY_REJECT geschickt

$ipt -A INPUT -p TCP --dport 4661:4665 -j MY_REJECT

und in dieser kette wird nichts gelogt, sondern nur ein reject-with tcp-reset geschickt.

$ipt -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset




und wenn ich den ersten Port negiere. Dann würde doch die zweite Regel nicht zutreffen da ja dann schon die erste Regel zutrifft.

da hast du recht, man müßte mit multiport arbeiten und genau das haut nicht hin. zumindest ging es bei mir nicht.


Gruß HL

xmarvel
28.02.03, 18:04
und in dieser kette wird nichts gelogt, sondern nur ein reject-with tcp-reset geschickt.

und warum steht bei dir unten Kazza nicht loggen, Netbios nicht loggen etc. ? :rolleyes:

HangLoose
28.02.03, 18:23
und warum steht bei dir unten Kazza nicht loggen, Netbios nicht loggen etc.

bleiben wir mal bei kazaa

$ipt -A INPUT -p TCP --dport 1214 -j MY_REJECT

-j MY_REJECT bedeutet, das diese pakete an die regelkette MY_REJECT geschickt werden sollen, wenn es sich um tcp pakete mit zielport 1214 handelt. das heißt diese pakete werden an diese regel *geschickt*

$ipt -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset

das -j REJECT in dieser regel verhält sich fast so wie ein DROP. mit einem unterschied, das paket wird *fallengelassen* und es wird eine fehlernachricht an den sender geschickt. in diesem fall ein tcp-reset.

wenn ich jetzt bei der kazaa regel das target(ziel) ändern würde

$ipt -A INPUT -p TCP --dport 1214 -j MY_REJECT

in

$ipt -A INPUT -p TCP --dport 1214 -j MY_LOG

dann würde das paket an diese regel *geschickt* werden

$ipt -A MY_LOG -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "

und damit auch in den logfiles auftauchen, siehe -j LOG


Gruß HL

xmarvel
28.02.03, 18:54
ach jetzt verstehe ich weil du expliziert einige Ports gesperrt hast werden die natürlich nicht geloggt da sie schon davor eine Regel antrafen die sie sperrt.
Ich glaub jetzt habe ich es verstanden.
Danke für deine ausführliche Erklärung

MFG
xmarvel

tomes
28.02.03, 19:55
Ich mache das in einer kleinen Schleife.
Am Anfang des Scripts gibt es z.B. fuer tcp


TCP_PORTS="4662 1000 58 https ssh"

und unten in den Regeln dann


for R1 in $TCP_PORTS; do
iptables ...... --dport $R1 ........
done

Das ganze auch noch fuer udp.
Finde ich einfach flexibler, man muss nicht so viel rumschreiben ;)

T;o)Mes

P.S.: und bitte nicht fragen, warum gerade diese Ports. Das sind nur Beispiele ;)

HangLoose
28.02.03, 23:26
@tomes

mit solchen *shellscript raffinessen* kann ich leider nicht dienen.;)


ps:warum sperrst du denn https? :D


Gruß HL

linuxhanz
01.03.03, 12:59
wenn man alles andere blockt und nur Multiports zuläßt ist das doch AUCh
ausschließen. Nun, da habe ich mich wohl nicht deutlich genug ausgedrückt.

In der Ipchains Regel war aber schon ein ! zu sehen.

Egal das Thema ist geklärt.