- I read a post earlier concerning port scans and one of the answer stated something along the lines of:"There is no definitive protocol that can determine if a host is alive", is this actually true? Surely there must be a way?
No, e questa è una buona cosa. Se ospita un server, sicuramente è la mia scelta a chi mando i dati? Potrei filtrare interi continenti se voglio solo poter accedere al mio server da, ad esempio, i Paesi Bassi, se questo è l'unico posto da cui accedo. A meno che non ti capiti di scansionare dai Paesi Bassi, non sapresti se il mio server è attivo.
Questo è un server, ma per quanto riguarda il tuo laptop? Perché qualcuno dovrebbe essere in grado di sapere se il tuo laptop è acceso solo conoscendo il suo indirizzo IPv4 o IPv6? La maggior parte dei router NAT e dei firewall con stato non restituiscono nulla (nemmeno un pacchetto ICMP Unreachable o TCP RST) quando si tenta di raggiungere un computer nella sua rete - e penso che sia un buon progetto.
Se ti trovi nella stessa LAN, penso che in genere ci siano modi per capirlo usando arping (ARP ping), ma tecnicamente potresti evitare che funzioni anche se lo desideri. Dubito solo che qualcuno abbia fastidio.
2.This got me thinking; how does port-scanning on a computer outside of your network actually work? Is it even possible just by knowing their public IP?
Oh, penso di aver già risposto a metà di questo ... mi tufferò un po 'più in profondità.
Scansione porta scansiona le porte, ma sembra che tu stia chiedendo di controllare se un host è attivo in primo luogo.
Di solito le persone accedono a Internet tramite il loro router (o modem o qualcosa del genere). A rigor di termini, un router è solo routing, ma quello che i consumatori chiamano router è un dispositivo che fa ogni sorta di roba (DHCP, DNS, NAT, ecc.). La maggior parte delle persone ha un solo indirizzo IPv4 a causa della scarsità e tutti nella rete locale ricevono un indirizzo locale (in genere 192.168.x.x). Il router esegue una funzione chiamata NAT, che si traduce tra l'indirizzo locale e l'indirizzo pubblico.
Quando ci si connette a qualche indirizzo IP su Internet, il sistema invia un pacchetto SYN lì e viene stabilita una connessione. Il router lo riceve e tutte le risposte verranno inoltrate al computer (in base alla porta a cui è indirizzato il pacchetto). Qualsiasi pacchetto SYN o pacchetto UDP o qualcosa rimbalzerà perché il router non saprebbe a quale host interno consegnarlo. Se si configura il port forwarding, ciò indica al router di inoltrare sempre determinate porte a determinati host.
Se disponi di IPv6 o di un indirizzo IPv4 pubblico, il firewall del router eseguirà (o dovrebbe) una funzione simile. Non indirizza la traduzione perché non è necessaria (ognuno ha il proprio indirizzo) ma filtra le connessioni in entrata che non hai avviato. Questa è una funzione di sicurezza.
Quindi la scansione per vedere se un determinato computer è attivo non funzionerà perché il router rilascia solo qualcosa che non riconosce. Potrebbe anche restituire pacchetti ICMP dicendo che l'indirizzo è amministrativamente proibito (quando il firewall è semplicemente attivo), il che non ti dice nulla neanche.