PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Broadcast logging - Iptables



DarkAngelfire
14.01.06, 11:22
Hi Leute,
Ich setzte gerade einen Debian Sarge Server auf, bei dem es auf eine hohe Sicherheitsstufe ankommt. Um die nicht verwendeten Ports zu schließen habe ich von harry.homelinux.org den Iptables Generator verwendet. Diese Firewall scheint auch laut nmap zu funktionieren, nur sobald man das Script startet loggt diese Firewall alle Zugriffe dierekt in die Konsole.
Erste Frage: Wie kann ich die Loggs aus der Konsole umleiten, so das sie nur in /var/log/ * auftauchen z.B. firewall oder auch messages?
Zweite Frage: Wie kann ich der Firewall beibringen die Broadcastanfragen der ganzen Clients nicht zu loggen. Alle Broadcastmeldungen werden als UDP mit der Mac: ff:ff:ff:ff:ff:ff geloggt. Und da diese Meldungen überhand nehmen, würde das Logfile überlaufen!

Vielen Dank schonmal

DarkAngelfire

geronet
14.01.06, 11:52
Das Script entsprechend bearbeiten und die "-j LOG" Teile herauskommentieren.

DarkAngelfire
14.01.06, 13:40
Das hab ich mir auch schon überlegt, nur wenn ich die auskommentiere loggt das Script ja garkeine udp packete mehr. Ich wollte ja nur das er nicht jede Broadcastnachricht loggt und das er diese dann auch in ein File speichert und nicht immer alles in der aktuellen Konsole ausgibt.

steve-e
14.01.06, 20:21
Dann erstelle eine Regel, die z.b alle Pakete von der von dir genannten Mac-Adresse fallen gelassen werde, ohne direkt mitzuloggen.

Das mit der Ausgabe auf der Konsole hängt nicht an deinem Script, sondern wie du deinen Log-Daemon konfiguriert hast.

DarkAngelfire
15.01.06, 13:59
Das habe ich mir auch schon überlegt und habe folgendes versucht:
Trotzdem loggt er die Broadcasts noch weiter, was hab ich da falsch gemacht?
Und wo kann ich das dann umstellen, um die Logs aus der Konsole umzuleiten?



#!/bin/bash
# ---------------------------------------------------------------------
# Linux-iptables-Firewallskript, Copyright (c) 2006 under the GPL
# Autogenerated by iptables Generator v1.20 (c) 2002-2005 by Harald Bertram
# Please visit http://www.harry.homelinux.org for new versions of
# the iptables Generator (c).
#
#
# If you have questions about the iptables Generator or about
# your Firewall-Skript feel free to take a look at out website or
# send me an E-Mail to webmaster@harry.homelinux.org.
#
# My special thanks are going to Lutz Heinrich (trinitywork at hotmail dot com)
# who made lots of Beta-Testing and gave me lots of well qualified
# Feedback that made me able to improve the iptables Generator.
# --------------------------------------------------------------------
#
### BEGIN INIT INFO
# Provides: IP-Paketfilter
# Required-Start: $network $local_fs
# Required-Stop: $local_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Short-Description: Harry's IP-Paketfilter
# Description: Harry's IP-Paketfilter provides reasonable
# IP-Security for Home-Computers and small networks
### END INIT INFO
#

case "$1" in
start)
echo "Starte IP-Paketfilter"

# iptables-Modul
modprobe ip_tables
# Connection-Tracking-Module
modprobe ip_conntrack
# Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp

# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# MY_REJECT-Chain
iptables -N MY_REJECT

# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -m mac --mac-source FF:FF:FF:FF:FF:FF -j REJECT
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP

# Alle verworfenen Pakete protokollieren
iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "

# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP

# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP

# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP

# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP

# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP

# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP

# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP

# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP

# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# HTTP
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 80 -j ACCEPT

# SMB/CIFS
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 137 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 138 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 139 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 445 -j ACCEPT

# SSH
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 22 -j ACCEPT

#Webmin
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 10000 -j ACCEPT


# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT

# Max. 500/Sekunde (5/Jiffie) senden
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit

# Speicherallozierung und -timing für IP-De/-Fragmentierung
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 30 > /proc/sys/net/ipv4/ipfrag_time

# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

# Maximal 3 Antworten auf ein TCP-SYN
echo 3 > /proc/sys/net/ipv4/tcp_retries1

# TCP-Pakete maximal 15x wiederholen
echo 15 > /proc/sys/net/ipv4/tcp_retries2

;;

stop)
echo "Stoppe IP-Paketfilter"
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Default-Policies setzen
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
;;

status)
echo "Tabelle filter"
iptables -L -vn
echo "Tabelle nat"
iptables -t nat -L -vn
echo "Tabelle mangle"
iptables -t mangle -L -vn
;;

*)
echo "Fehlerhafter Aufruf"
echo "Syntax: $0 {start|stop|status}"
exit 1
;;

esac

McMops
08.06.07, 09:25
Nur der Vollständigkeit halber hier eine Eintrag für die
syslog-ng.conf damit Broadcast Packs nicht geloggt werden,

Kann z.B. sinnvoll sein, wenn man einen syslog-Server benutzt
und das/die Logs nicht ganz so schnell wachsen sollen.

filter f_iptables { facility(kern) and match("IN=") and match("OUT=") and not match("MAC=ff:ff:ff:ff:ff:ff:") ; };

und dann noch z.B.:

destination firewall { file("/var/log/firewall" perm(0604)); };
log { source(src); filter(f_iptables); destination(firewall); };


...neustart des syslogd nicht vergessen...


Nachtrag:
ist im syslog für messages der Eintrag:

filter f_messages { not facility(news, mail) and not filter(f_iptables) ...

landet (doppeltes not..:-)) ) der Broatcast im messages, also dafür dann eine weitere Regel...