Archiv verlassen und diese Seite im Standarddesign anzeigen : [iptable] Ports vom loggen ausschließen
hi
wie kann ich bestimmte Ports vom Loggen ausschließen ?
MFG
xmarvel
! Portnummer
sollte funktionieren
btw. Arbeitest Du mit multiports?
@ linuxhanz
kannst du mal ein Beispiel machen ?
und ich arbeite ohne multiports
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
ähm ich seh nichts wo er einzelne Ports ausschließt :rolleyes:
@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
@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
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
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
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
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:
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
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
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 ;)
@tomes
mit solchen *shellscript raffinessen* kann ich leider nicht dienen.;)
ps:warum sperrst du denn https? :D
Gruß HL
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.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.