it-swarm.it

I pericoli di aprire una vasta gamma di porte? (Mosh)

Perché generalmente configuriamo i firewall per filtrare tutto il traffico che non consentiamo specificamente? È solo un ulteriore livello di sicurezza per la difesa in profondità che non ci compra nulla se non eseguiamo malware sul nostro sistema?

Esistono pericoli nel dire l'apertura delle porte, da 60000 a 61000 per le connessioni UDP in entrata, che è significativamente meno sicura rispetto all'apertura di alcune porte?

Ho appena sentito parlare di mosh che pubblicizza se stesso come un modo migliore per fare ssh mobile (tramite wifi/cellulare). Mosh utilizza UDP anziché TCP, quindi se si accede brevemente a un tunnel o cambia l'indirizzo IP (cambiando torre di telefonia mobile), non è necessario attendere per tornare dal controllo della congestione o stabilire una nuova sessione SSH. Fondamentalmente mosh usa ssh per avviare in remoto un mosh-server come utente non privilegiato, scambia una chiave AES-OCB usando ssh e quindi invia/riceve pacchetti crittografati (con numeri di sequenza) a una porta nell'intervallo 60000-61000, che dovresti configura il tuo firewall per aprirlo.

Sono un po 'a disagio con l'apertura di ~ 1000 porte per le connessioni in entrata (UDP), ma non riesco a pensare a un ottimo motivo per questo. Se nessun software è in ascolto di dati su quella porta, viene ignorato giusto? (Alla modifica: no - in realtà indica al server di inviare una risposta irraggiungibile di destinazione ICMP (ping)). Immagino che se avessi malware in esecuzione sul mio server, potrebbe essere in attesa di ascoltare le istruzioni dagli indirizzi IP falsi su una di queste porte aperte. Tuttavia, il malware in esecuzione su sistemi connessi a Internet potrebbe già stabilire connessioni/scaricare informazioni da altri server malware (anche se dovrebbe conoscere un indirizzo IP) e recuperare le istruzioni, quindi questo non rende la sicurezza molto meno sicura.

EDIT: Interessante, ho appena visto questo altra domanda che mi ha portato a leggere DP_flood_attack . Suppongo inoltre che dovrei in qualche modo disabilitare il mio sistema dall'invio di risposte irraggiungibili di destinazione ping per le porte UDP appena aperte.

29
dr jimbob

Oltre alla risposta di Justin sull'apertura involontaria di applicazioni a cui accedere in remoto, ricorda che anche se nulla è specificamente in ascolto di una connessione, il sistema operativo SEMPRE ascolterà SEMPRE - se non altro per instradare/mappare al processo appropriato o rifiutare oppure rilasciare silenziosamente il pacchetto. Pertanto, il sistema operativo è ancora un vettore di attacco specifico che può rimanere non protetto quando un firewall consente al traffico di fluire verso una porta "inattiva".

Tuttavia, a parità di condizioni in questo scenario, l'apertura di una porta inattiva o 1000 porte inattive fa poca differenza. Ma presta attenzione al consiglio di principio del minimo privilegio.

11
logicalscope

Per quanto ho capito, Mosh non ha davvero bisogno di mille porti per funzionare; ne ha bisogno solo uno (per cliente). Quindi puoi aprire qualsiasi singola porta e dire a Mosh di usarla (da il manuale ):

mosh -p 60000 my.server

Qual è la ragione per selezionare la porta a caso? Questo non lo capisco.

[AGGIORNAMENTO] non seleziona una porta casuale. Cerca attraverso una serie di porte per trovare la prima aperta ( vedi codice ). Se non fosse per questo, dovresti scegliere manualmente una porta libera su un sistema multiutente.

Ciò significa che hai solo bisogno di tutte le porte degli utenti (persone che potrebbero usare mosh) sul tuo server . Se è la tua scatola, devi solo aprire la porta 60000.

11
Leonid Shevtsov

Il problema è che l'apertura di una vasta gamma di porte potrebbe consentire a un utente malintenzionato di esporre un'altra applicazione che potrebbe utilizzare tali porte. Ad esempio, la mia applicazione EMR utilizzata per archiviare i record dei pazienti potrebbe essere configurata per utilizzare quell'intervallo di porte, ma non desidero che qualcuno di Internet non attendibile sia in grado di sfruttare tale apertura. Si tratta di imporre il minimo privilegio il più possibile. In questi scenari si vorrebbe sfruttare una VPN che avrebbe quell'intervallo di porte aperto. Ciò si occupa del problema dell'autenticazione e quindi dell'autorizzazione. Se stai parlando del tuo firewall esterno sul tuo DMZ ti fidi solo a livello di protocollo/porta e quindi devi essere ancora più severo.

6
Justin Andrusk

Dovrebbe essere perfettamente possibile minimizzare l'intervallo di porte UDP di mosh in

https://github.com/keithw/mosh/blob/master/src/network/network.h#L77

Se ho capito bene questo è l'intervallo da cui il processo del mittente sceglierà la porta UDP. Quindi dovrebbe essere possibile compilare un'edizione mosh locale a "portata ridotta" e disporre di una politica UDP del firewall locale "a portata ridotta" adatta per mosh.

Il che mi porta alla meta domanda: quanto è stretto un intervallo abbastanza ampio da rendere utile mosh?

Se ho capito bene, è necessaria una porta per server mosh. Quindi nel caso di un server personale e l'uso abituale di tmux (= solo un client) è necessario uno per lavorare e uno per risolvere le cose.

Ma potrei sbagliarmi, non sono un programmatore C e ho scoperto mosh solo ieri.

4
Peter