Suche Programm für Netzwerküberwachung
-
Mastertac -
May 14, 2025 at 1:57 PM -
Thread is Resolved
-
-
-
-
"portMaster" dürfte für Dich die erste Wahl sein
--> portMaster
Eine Beschreibung findes Du:. LinuxWelt 04/2022 S. 104
. LinuxWelt XXL 01/2025 S. 165 -
How to Install Ntopng on Ubuntu 20.04 | Vultr DocsLearn how to install Ntopng on Ubuntu 20.04 for effective real-time network traffic monitoring with this guide.docs.vultr.comEvtl als Zusatz. Der benutzt den Redis-Server. Kann sein , weil wahrscheinlich Redis bald aus den Distributionen verschwinden soll. Bei mir raucht der Redis-Datenbank-Server öfters mal ab, weil irgendwelche Schlüssel nicht stimmen usw.
Der zweite Punkt. Ich starte den ntopng manuell. Der sollte erst im Autostart deaktiviert/gestopt werden. Problem , dass z.B die Netzwerkschnittstelle kein Datenfluss anzeigt. Ich starte das dann per Screen. So kann ich aus extern auf die Funktion zurück greifen.,weil der sich per Pseudoterminal(pty) beendet.
Wenn der einmal läuft, kann man über die Webseiten den Server über mehrere PCs abrufen. Soweit ist das optimal.
Ich habe mal wireshark verwendet.Problem, der muss richtig konfiguriert werden, der loggt alles und bläht sich wie ein Hefekuchen auf.
-
-
evtl hilft dir das ?
Code
Display Morefunction uports() { # Option -h für Hilfe if [[ "$1" == "-h" ]]; then echo -e "Info zu uports:" echo -e "" echo -e "Lokale Verbindungen (127.0.0.1) werden als '*' und deren Ports als '-' dargestellt." echo -e "Zahl in Klammern hinter dem Programmnamen entspricht der Anzahl der Verbindungen." echo -e "" echo -e "Verbindungen werden nach Programm, Typ, IP, Port und Status gruppiert." echo -e "" echo -e "Folgende Status werden angezeigt:" echo -e " - aktiv: Eine aktive Verbindung wurde erfolgreich aufgebaut." echo -e " - bereit: Der Dienst wartet auf eingehende Verbindungen." echo -e " - wartend: Der Dienst wartet auf das Schließen einer Verbindung." echo -e " Beispielaufruf: 'uports -l' netstat gibt Anzahl lokaler Verbindungen mit an." return fi # ANSI Escape Code für fett bold=$(tput bold) normal=$(tput sgr0) # Header der Tabelle printf "${bold}%-20s | %-5s | %-25s | %-5s | %-12s${normal}\n" "Programm" "Typ" "IP Adresse" "Port" "Status" printf "${bold}%-20s | %-5s | %-25s | %-5s | %-12s${normal}\n" "--------------------" "-----" "-------------------------" "-----" "------------" # Temporäre Datei für Gruppierung und Verarbeitung tmp_file=$(mktemp) # Lese aktive Verbindungen mit lsof und filtere relevante Zeilen lsof -i -P -n | grep -E 'LISTEN|ESTABLISHED|CLOSE_WAIT' | while read -r line; do program=$(echo "$line" | awk '{print $1}') # Programmname type=$(echo "$line" | awk '{print $8}') # Typ (TCP/UDP) ip_port=$(echo "$line" | awk '{print $9}') # IP:Port status=$(echo "$line" | awk '{print $10}' | sed 's/[()]//g') # Status ohne Klammern # IP und Port aufteilen ip=$(echo "$ip_port" | sed 's/:.*//') # IP-Adresse port=$(echo "$ip_port" | sed 's/.*://') # Portnummer # Lokake Verbindungen markieren und Port ignorieren if [[ "$ip" == "127.0.0.1" || "$ip" == "::1" ]]; then ip="*" port="-" fi # Übersetze Status ins Deutsche case "$status" in LISTEN) status_de="bereit" ;; ESTABLISHED) status_de="aktiv" ;; CLOSE_WAIT) status_de="wartend" ;; *) status_de="$status" ;; esac # Eintrag in temporäre Datei schreiben echo "$program|$type|$ip|$port|$status_de" >> "$tmp_file" done # Gruppiere Einträge nach Programm und Status, eliminiere doppelte IPs und Ports awk -F'|' ' { key = $1 FS $2 FS $5 ips[key][$3] = 1 ports[key][$4] = 1 counts[key]++ } END { for (key in counts) { split(key, keys, FS) program = keys[1] type = keys[2] status = keys[3] ip_list = "" port_list = "" for (ip in ips[key]) ip_list = ip_list ip ", " for (port in ports[key]) if (port != "-") port_list = port_list port ", " ip_list = substr(ip_list, 1, length(ip_list) - 2) # Letztes Komma entfernen port_list = (length(port_list) > 0) ? substr(port_list, 1, length(port_list) - 2) : "-" # Letztes Komma entfernen printf "%-20s | %-5s | %-25s | %-5s | %-12s\n", program " (" counts[key] ")", type, ip_list, port_list, status } }' "$tmp_file" # Entferne temporäre Datei rm -f "$tmp_file" # Erklärung der Verbindungszustände echo -e "\n${bold}Verbindungszustände:${normal}" echo -e " aktiv: Eine aktive Verbindung wurde erfolgreich aufgebaut." echo -e " bereit: Der Dienst wartet auf eingehende Verbindungen." echo -e " wartend: Der Dienst wartet auf das Schließen einer Verbindung." # Zusätzliche externe IP-Adressen aus netstat echo -e "\n${bold}Externe IP Adressen von aktiven Verbindungen (netstat):${normal}" if [[ "$1" == "-l" ]]; then netstat -ntu | awk '{print $5}' | grep '\.' | sed 's/:.*//' | sort | uniq -c | sort -n # Mit Anzahl an lokalen (127.0.0.1) Verbindung else netstat -ntu | awk '{print $5}' | grep '\.' | grep -vE '^(127.0.0.1)' | sed 's/:.*//' | sort | uniq -c | sort -n fi } -
Nice aber das zeigt ja nur den IST-Stand an und nicht Realtime oder irre ich mich (nicht getestet)?
-
Nice aber das zeigt ja nur den IST-Stand ..
ja
-
Also Leute...dann muss ich mich mal outen. Ich nutze schon 10 Jahre Linux, habe aber noch nie ein Skript eingebunden. Also als Anfänger in der Frage:
Wie macht man das?
-
- kpoiere den Code in eine leere Datei und nenne sie z.B. mein_skript.sh
- Dann öffnest du einen Terminal, wechselst in das Verzeichnis wo die Datei liegt und machst diese Ausführbar mit
Skript starten mit
-
-
Gerade auch probiert. Selbe Fehlermeldung ...
-
-
Wohin damit? Hinter fi? Hinter der Klammer? Sorry...ich beschäftige mich in diesem Moment das erste mal mit sowas.
-
Code
Display Morefunction uports() { # Option -h für Hilfe if [[ "$1" == "-h" ]]; then echo -e "Info zu uports:" echo -e "" echo -e "Lokale Verbindungen (127.0.0.1) werden als '*' und deren Ports als '-' dargestellt." echo -e "Zahl in Klammern hinter dem Programmnamen entspricht der Anzahl der Verbindungen." echo -e "" echo -e "Verbindungen werden nach Programm, Typ, IP, Port und Status gruppiert." echo -e "" echo -e "Folgende Status werden angezeigt:" echo -e " - aktiv: Eine aktive Verbindung wurde erfolgreich aufgebaut." echo -e " - bereit: Der Dienst wartet auf eingehende Verbindungen." echo -e " - wartend: Der Dienst wartet auf das Schließen einer Verbindung." echo -e " Beispielaufruf: 'uports -l' netstat gibt Anzahl lokaler Verbindungen mit an." return fi # ANSI Escape Code für fett bold=$(tput bold) normal=$(tput sgr0) # Header der Tabelle printf "${bold}%-20s | %-5s | %-25s | %-5s | %-12s${normal}\n" "Programm" "Typ" "IP Adresse" "Port" "Status" printf "${bold}%-20s | %-5s | %-25s | %-5s | %-12s${normal}\n" "--------------------" "-----" "-------------------------" "-----" "------------" # Temporäre Datei für Gruppierung und Verarbeitung tmp_file=$(mktemp) # Lese aktive Verbindungen mit lsof und filtere relevante Zeilen lsof -i -P -n | grep -E 'LISTEN|ESTABLISHED|CLOSE_WAIT' | while read -r line; do program=$(echo "$line" | awk '{print $1}') # Programmname type=$(echo "$line" | awk '{print $8}') # Typ (TCP/UDP) ip_port=$(echo "$line" | awk '{print $9}') # IP:Port status=$(echo "$line" | awk '{print $10}' | sed 's/[()]//g') # Status ohne Klammern # IP und Port aufteilen ip=$(echo "$ip_port" | sed 's/:.*//') # IP-Adresse port=$(echo "$ip_port" | sed 's/.*://') # Portnummer # Lokake Verbindungen markieren und Port ignorieren if [[ "$ip" == "127.0.0.1" || "$ip" == "::1" ]]; then ip="*" port="-" fi # Übersetze Status ins Deutsche case "$status" in LISTEN) status_de="bereit" ;; ESTABLISHED) status_de="aktiv" ;; CLOSE_WAIT) status_de="wartend" ;; *) status_de="$status" ;; esac # Eintrag in temporäre Datei schreiben echo "$program|$type|$ip|$port|$status_de" >> "$tmp_file" done # Gruppiere Einträge nach Programm und Status, eliminiere doppelte IPs und Ports awk -F'|' ' { key = $1 FS $2 FS $5 ips[key][$3] = 1 ports[key][$4] = 1 counts[key]++ } END { for (key in counts) { split(key, keys, FS) program = keys[1] type = keys[2] status = keys[3] ip_list = "" port_list = "" for (ip in ips[key]) ip_list = ip_list ip ", " for (port in ports[key]) if (port != "-") port_list = port_list port ", " ip_list = substr(ip_list, 1, length(ip_list) - 2) # Letztes Komma entfernen port_list = (length(port_list) > 0) ? substr(port_list, 1, length(port_list) - 2) : "-" # Letztes Komma entfernen printf "%-20s | %-5s | %-25s | %-5s | %-12s\n", program " (" counts[key] ")", type, ip_list, port_list, status } }' "$tmp_file" # Entferne temporäre Datei rm -f "$tmp_file" # Erklärung der Verbindungszustände echo -e "\n${bold}Verbindungszustände:${normal}" echo -e " aktiv: Eine aktive Verbindung wurde erfolgreich aufgebaut." echo -e " bereit: Der Dienst wartet auf eingehende Verbindungen." echo -e " wartend: Der Dienst wartet auf das Schließen einer Verbindung." # Zusätzliche externe IP-Adressen aus netstat echo -e "\n${bold}Externe IP Adressen von aktiven Verbindungen (netstat):${normal}" if [[ "$1" == "-l" ]]; then netstat -ntu | awk '{print $5}' | grep '\.' | sed 's/:.*//' | sort | uniq -c | sort -n # Mit Anzahl an lokalen (127.0.0.1) Verbindung else netstat -ntu | awk '{print $5}' | grep '\.' | grep -vE '^(127.0.0.1)' | sed 's/:.*//' | sort | uniq -c | sort -n fi } uports -
Danke Euch beiden. Jetzt funktioniert es.

-
Habe ein altes Skript von 2011 von mir gefunden. Es prüft verschiedene Dinge wie MX Record von Servern.
Vielleicht mags ja jemand gebrauchen
Bash
Display More#!/bin/bash # Last Edit | 07.06.2011 # =========================== echo "IP oder Hostname:" read HOSTLIST #HOSTLIST=( 'toad' '192.168.0.220' ) for HOST in ${HOSTLIST[@]} do echo '================================================' echo 'NSLOOKUP |' $HOST echo '================================================' nslookup $HOST echo '================================================' echo 'MX RECORD (Mail Exchange) |' $HOST echo '================================================' nslookup -query=mx $HOST echo '================================================' echo 'NS RECORD (Name Server) |' $HOST echo '================================================' nslookup -type=ns $HOST echo '================================================' echo 'SOA RECORD (start of authority) |' $HOST echo '================================================' nslookup -type=soa $HOST echo '================================================' echo 'DNS RECORDS (any) |' $HOST echo '================================================' nslookup -type=any $HOST done -
Habe ein altes Skript von 2011 von mir gefunden. Es prüft verschiedene Dinge wie MX Record von Servern.
Vielleicht mags ja jemand gebrauchen
Bash
Display More#!/bin/bash # Last Edit | 07.06.2011 # =========================== echo "IP oder Hostname:" read HOSTLIST #HOSTLIST=( 'toad' '192.168.0.220' ) for HOST in ${HOSTLIST[@]} do echo '================================================' echo 'NSLOOKUP |' $HOST echo '================================================' nslookup $HOST echo '================================================' echo 'MX RECORD (Mail Exchange) |' $HOST echo '================================================' nslookup -query=mx $HOST echo '================================================' echo 'NS RECORD (Name Server) |' $HOST echo '================================================' nslookup -type=ns $HOST echo '================================================' echo 'SOA RECORD (start of authority) |' $HOST echo '================================================' nslookup -type=soa $HOST echo '================================================' echo 'DNS RECORDS (any) |' $HOST echo '================================================' nslookup -type=any $HOST doneWerde ich mal ausprobieren...jetzt wo ich schon mal mit skripten angefangen habe.

-
Hier ein wirklich mehr als simpler Portscanner - benötigt zenity falls es jemand nicht installiert hat
Bash
Display More#!/bin/bash # Simple Portscanner # Last Edit | 30.07.2011 # =========================== IP=`zenity --entry --title="Portscanner" --text="IP-Address:" --entry-text="192.168.178."` HOSTNAME=${1:-$IP} PSTART=${2:-1} PEND=${3:-1023} for PORT in `seq $PSTART $PEND`; do (echo >/dev/tcp/$HOSTNAME/$PORT) >/dev/null 2>&1 && echo "$PORT open" done | zenity --list $PORT --width=300 --height=300 --editable \ --title "Portscanner" --text="TCP Ports for <i>$IP</i>" --column "Port" -
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!