Rete

netstat

Comando che uso di più

netstat  -an | grep 80

Riferimento da appunti informatica libera che riguarda il Capitolo 228. Strumenti per il controllo e l'analisi del traffico IP
L'eseguibile netstat emette attraverso lo standard output una serie di informazioni riferite a tutti i tipi di connessione disponibili, traendo le informazioni dai file virtuali della directory /proc/net/.

Se netstat viene usato senza opzioni, mostra la situazione di tutti i tipi di connessione, elencando i socket (le porte) aperti. Se tra le opzioni appare l'indicazione di uno o più protocolli, le informazioni che si ottengono si limitano a quanto richiesto espressamente.

Alcune opzioni

-t | --tcp    Richiede espressamente lo stato delle connessioni TCP.
-u | --udp   Richiede espressamente lo stato delle connessioni UDP.
--inet | --ip Richiede espressamente le informazioni che riguardano le connessioni dei protocolli TCP/IP.
-e  Richiede di aggiungere l'indicazione dell'utente proprietario del processo relativo.
-o Richiede di aggiungere l'indicazione dei timer di rete.
-a Elenca tutte le porte, incluse quelle dei serventi in ascolto.
-n Mostra le informazioni in forma numerica: indirizzi IP, numeri di porta, numeri UID.
--unix richiede i socket del dominio unix al contrario di quelli tcp questi operano in locale e servono per i servizi del s. o.

Esempi
# netstat —inet Emette l'elenco delle connessioni TCP/IP.
# netstat —inet -e Emette l'elenco delle connessioni TCP/IP aggiungendo l'indicazione degli utenti proprietari dei processi che attuano le connessioni.
# netstat —tcp -a Mostra la situazione delle porte TCP, in particolare quelle dei servizi in ascolto.

Conta il numero di connessioni attive

netstat --tcp -a -n | grep 8080 | grep ESTABLISHED | wc

Uno script che monitora il numero di connessioni

i=1
while [ $i -le 100000 ]
do
    echo $i
    i=`expr $i + 1`
    P80=`netstat --tcp -a -n | grep 80 | grep ESTABLISHED | wc | awk '{print $1}'`
    P18080=`netstat --tcp -a -n | grep 18080 | grep ESTABLISHED | wc | awk '{print $1}'`
    P8080=`netstat --tcp -a -n | grep 8080 | grep ESTABLISHED | wc | awk '{print $1}'`
    P1521=`netstat --tcp -a -n | grep 1521 | grep ESTABLISHED | wc | awk '{print $1}'`
    echo `date |  awk '{print $5}'` '#80='$P80 '#18080='$P18080 '#8080='$P8080 '#1521='$P1521 >> connessionidb.txt
    sleep 5
done

Interpretazione del risultato

Gli elenchi restituiti da Netstat sono composti in forma tabellare. Di seguito appare la descrizione dei nomi delle colonne di queste.
*Proto Rappresenta il protocollo utilizzato in ogni porta attiva. Può trattarsi di tcp, udp e raw.
*Recv-Q, Send-Q Rappresenta la coda di byte che sono stati ricevuti ma non ancora prelevati dal programma che utilizza la connessione, o che sono stati trasmessi ma per i quali non è stata ricevuta conferma dal nodo remoto.
* Local Address, Foreign Address Rappresenta rispettivamente l'indirizzo locale e quello remoto, completo dell'indicazione della porta relativa.
* State Rappresenta lo stato della porta, indicato attraverso una parola chiave tra quelle elencate di seguito. Lo stato riguarda prevalentemente le connessioni TCP, negli altri casi è dovrebbe essere assente. ESTABLISHED la porta ha una connessione in corso. SYN SENT La porta sta tentando di instaurare una connessione. SYN RECV È in corso l'inizializzazione della connessione. FIN WAIT1 La porta è chiusa e la connessione è in corso di conclusione. FIN WAIT2 La connessione è chiusa e la porta è in attesa della conferma dall'altra parte. TIME WAIT La porta è in attesa della conferma della conclusione della connessione. CLOSED La porta non è in uso. CLOSE WAIT La porte remota conclude la connessione ed è in attesa di conferma dell'altra parte. LAST ACK La parte remota chiude la connessione e la porta è chiusa: si è in attesa della conferma finale. LISTEN La porta è in ascolto in attesa di connessioni in arrivo. Queste porte vengono indicate solo se si utilizza l'opzione -a. CLOSING Entrambe le porte stanno chiudendo la connessione, ma i dati non sono stati inviati completamente. UNKNOWN Lo stato della porta è sconosciuto.
*

User

Il nome o il numero UID dell'utente proprietario della porta. Si ottiene questa informazione con l'opzione -e.

PING

ping di linux invia solo pacchetti di tipo echo_request che ha associato il numero 7 , e attentde echo_replay.
invia molti pacchetti finche non arriva un msg che dice di non inviare più
-c numero dice qunati pacchetti deve inviare
-f flood non aspetta che arrivi un replay del precedente, si sommerge, i puntini che si aggiungono sono i pacchetti che mandi , quelli che levano sono quelli che arrivano
-s numero decide la dimensione

IFCONFIG

+++CAMBIARE IL MAC ADDRESS
sotto mac os x
ifconfig en0 lladdr 00:11:22:33:44:55

sotto linux
ifconfig eth0 hw ether 00:12:23:23:34:ed (cambia il MAC)

TRACEROUTE

traceroute ip per veder cosa non va sulla rete , quanti nodi dobbiamo attraversare per raggiungere il destinatario, il router e un punto, lo fa tramite il TTL perchè manda pacchetti con TTL =1 prima che lo uccide e manda un msg che dice la sua identità e il fatto che lo ha ucciso, poi fa con TTL =2 e così via.
quando arrivano gli * vuol dire che non arriva o che ci sono router che non inviano pacchetti time exceded
-I invia pacchetti di echo_request invece degli udp
-m definisce
- a livello applicativo ci sono le socket quelle che può generare l'utente, per generare pacchetti ad hoc come fa traceroute si usano le rawsocket che solo l'utente root può usare

IPTRAF

iptraf menù grafico per l'analisi della rete

ARP

#visualizza le voci
arp

#Cancellazione di tutte le voci arp per l’interfaccia eth0:
ip neigh flush dev eth0

#Cancellazione delle voci arp provenienti dall’ip 192.168.15.30:
ip neigh flush 192.168.15.30

#Cancellazione delle voci arp provenienti dalla classe ip 192.168.15.0/24:
ip neigh flush 192.168.15.0/24

#Cancellazione di tutte le voci arp x tutte le interfacce di rete:
ip neigh flush all

NMAP

nmap controlla porta per porta e dice quali servizi offre, la telecom ha messo nel contratto che non si può fare rischio denunce
supporta tcp e udp
un host dice se siamo collegati o no, qual'è il sitema operativo del destinatario
due famiglie di scansioni half-open e full-open
- full-open un programma che crea una socket normalissima , avvia una sessione normale perciò dall'altra parte veniamo tracciati
- half-open non completa le rihe di connessione tcp , non si arriva all'ack. mitt: syn=1; dest:syn=1 ack=1; mitt=ack=1;
se non c'è niente manda un pacchetto di reset
nmap -sS ip in modalità silenziosa, questo è default per root syn Scan
nmap -sT avvia la connessione
namp -F ip manda dei fin (fine connessione), il s.o. non risponde perciò se scade il timeout sapremmo che c'è qualcosa perchè non manda il reset
nmap -X ip abilita i flag urgente e push , il push salta il buffer
nmap -N ip manda pacchetti con tutti i flag a zero
il ping scannig serve per vedere quali macchine sono collegate nella rete, come ping ma mette l'ack abilitato
nmap scandisce le porte udp anche se è più difficile a causa della mancanza di connessione, se una porta udp è chiusa il sistema risponde con un porta udp chiusa ICMP PORT_UNREACHABLE, se c'è qualcuno non risponderà nessuno
nmap -sV implica una connessione full , e dice che la versione del programma che gira e altre info debian o genntoo, linux più di 80 pacchetti icmp non invia , nmap ha un db con le risposte
nmap -O fa il tcp fingerprinting che trova le versioni , si può accoppiare a qualsiasi altra opzione
nmap -p 80 per scnadire solo la porta
nmap -p 80-120 fino alla 120 , di default scandisce fino a 1024
nmap -sV -O 192.168.100.* trova tutto nella classe
nmap -sS 192.168.100.100-200 #trova invece il quel range di ip, si può anche applicare alla sottorete

nmap -v -sS -P0 192.168.30.12 scansione approfondita lunga , da provare se senza -P0 non si riesce a trovare niente

Scan sul server openvpn UDP

Verifichiamo se il server vpn funziona.

root@peppe-laptop-hp:/home/giuseppe# nmap -sU -p 1194 10.0.0.7
Starting Nmap 5.21 ( http://nmap.org ) at 2011-06-14 16:50 CEST
Nmap scan report for 10.0.0.7
Host is up (0.00015s latency).
PORT     STATE         SERVICE
1194/udp open|filtered unknown
MAC Address: 00:18:71:EC:5A:42 (Hewlett Packard)

IMPOSTAZIONI AVANZATE DI RETE

WIRELESS
iwlist interfaccia rate dà la velocità della wireless….
se le velocità consentite sono fino ad 11 allora è b
invece se sono fino a 55 allora è G.
comunque per saperlo puoi fare anche iwlist oppure ifconfig e invio….

Appunti del corso di linux

LEZ DEL 2/4/05
-ping 192.168.100.255 con l'opzione -s cambio la dimensione del pacchetto di ping con -b faccio un ping in broadcast che serve per vedere gli altri host della rete locale per esempio l'ultimo byte a 255 serve proprio per questo
-ifconfig eth0 192.168.100.11 netmask 255.255.255.0 up #attivo l'interfaccia eth0 con quest'indirizzo
-arp #va a leggere nel fiel /proc/net/arp la corrispondenza tra ip e indirizzo ethernet

LEZ DEL 9/4/05

-lo smistamento dei pacchetti nella rete dell'alcantara si fa con lo swich, si opera al livello 2 perchè per fare gli indirizzamenti si utilizzano i mac address
-ogni macchina ha la sua tabella di routing
-facendo l'and tra l'ip e la netmask si ottiene l'indirizzo di rete. Per esempio se lo facciamo in questi due indirizzi 192.168.1.26 e 192.168.1.50 con netmask 255.255.255.0 l'indirizzo di rete che si ottiene è 192.168.1.0
-in una tabella di routing c'è la rete di destinazione 192.168.10.1/24, il numero di salti per raggiungerla 2 , e l'interfaccia che porta a questa rete eth2.
-il default gatwey è l'indirizzo di una macchina a cui mandare i pacchetti di cui non abbiamo l'indirizzo nella tabella di rete, per esempio quando si deve effettuare la connessione ad internet
-route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 eth0

- la destination della prima riga è il nome della rete 192.168.100.0 in questa riga non c'è gatwey perchè le altre macchine sono sulla stessa rete
- nella seconda riga invece non c' destination perchè serve per la connessione ad internet
flags U vuol dire up
metric il numero di salti necessari
ref ignorato in linux ma messo per compatibilità ,numero di riferimenti per questo percorso
use numero di lookup i router isti dalla macchina, su linux è disabilitato
-per connettersi bisogna aggiungere nella tabella di routing questa voce: route add default gw 192.168.100.1

-traceroute indirizzo #per vedere il percorso che fa un pacchetto.

SIMULIAMO UN ROUTER
-Esperimento dividiamo la rete in due 192.168.5.0 e 192.168.2.0 con un computer che funge da router che ha 192.168.2.1 e 192.168.5.1 , si fa riscrivendo l'ifconfig con due alias eht0 e eth0:1
-se non abbiamo impostato il gatwey ci si vede solo sulla stessa rete
-route add -net 192.168.2.0 gw 192.168.5.1 netmask 255.255.255.0 eth0 #viene impostato sulla nostra macchina l'indirizo del router
-nel file /proc/sys/net/ipv4/ip_forward deve essere impostato a 1 per fare routing ma questo in una macchina potrebbe essere usato per fare un attacco.
-basta lanciare dhcpd o dhcpclient per avere settato dalla macchina server l'ip e forse il gateway
-per avere un servizio di dns gratuito dyndns.org, mi da una risoluzione del mio ip

Connessione via modem ethernet
-rp_ppoe pacchetto che ha diversi tool
-bisogna abilitare la scheda di rete e aver i moduli del kernel installati
adsl-setup imposta i parametri di connessione in modalità interattiva
adsl-start ci sarà la ppp0 con l'ip pubblico
per condividere la connessione senza un router e con un modem e uno swich si usa appunto il rp-ppp
-allora modem connesso al mio pc che poi è connesso allo swich
-eth0 ha 0.0.0.0 ppp0 ha l'ip pubblico fin quÏ tutto fatto con adsl-start
-eth1 ha 192.168.100.254 che è il gateway, questo è l'indirizzo di gatewey predefinito che devo scegliere io

Definizioni
-l'hub è un ripetirore di segnale che replica i pacchetti a li manda a tutti
-lo swich invece replica il segnale e lo manda solo al destrinatario

IL SERVER
-bisogna usare il nat perchè altrimenti usando solamente la tabella di routing con il campo di default gli indirzzi ip sulla rete si perderebbero.
-firewalling catene e regole c'è ne una che fa funzionare il firewall.
-bisogna mettere a 1 ip_forward
-iptables -l -t nat leggere le regole impostate
-iptables -t nat -A POSTROUTING -o ppp0 -d 192.168.100.0/24 -j MASQUERADE
-per abilitare una porta

Ha fatto questo ma non mi funziona , il fisso pinga il portatile ma non il contrario,come si imposta la possibilità di accettare i ping
iptables -t nat -A POSTROUTING -o wlan0 -d 192.168.5.2 -j MASQUERADE
o ricompilare i moduli del kernel per il nat
con iptables -t nat -n -L mi fa vedere
target prot opt source destination
MASQUERADE all — 0.0.0.0/0 192.168.5.2

netcat

Utile strumento per fare i test di connessione di network

Server, ascolta sulla porta 9876, e scrive in stdout quello che riceve

netcat -l 9876

Client invia i dati all'ip e alla porta specificata

netcat 192.168.98.5 9876

Tshark (wireshark a linea di comando)

Ottima guida qui

tcptrack

installazione

redhat/centos

andare su questo url http://dag.wieers.com/rpm/packages/tcptrack/ scaricare il pacchetto e

# rpm -ivh tcptrack-1.1.5-1.2.el5.rf.x86_64.rpm
ubuntu
$ sudo apt-get install tcptrack

utilizzo

tcptrack -i eth0 port 25
tcptrack -i eth1 port 80
tcptrack -i eth0 src or dst 76.11.22.12

AutoScan

È un utilissimo network scanner grafico , che memorizza lo stato dei dispositivi sulla rete.
Si scarica da source forge e poi basta eseguire da root lo script di installazione.

Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License