Di cosa dovrei essere a conoscenza quando apro il mio server di casa su Internet?

6

Ho costruito un server di casa (praticamente solo un PC di base con un paio di grandi HDD) che vorrei usare come server FTP e server di minecraft. Entrambi sarebbero per i membri della mia comunità di gioco. Vorrei anche accedere al terminale del mio server di casa mentre non sono in casa (SSH).

Al momento non sono sicuro di come concedere l'accesso al server FTP, ma mi piacerebbe che fosse disponibile a chiunque nella comunità volesse l'accesso, quindi potrebbe potenzialmente essere qualcuno ostile, ma non lo sarebbe essere robot d'attacco casuali. È probabile che invierò loro i dettagli di accesso di un account "guest" condiviso o darei singoli account separati ai membri.

Non ho intenzione di ospitare dati importanti o personali sul server, ma mi piacerebbe proteggerlo il più possibile, senza che questo possa essere un problema per le persone. È connesso come un nodo nella mia rete domestica e non ha nulla di speciale (oltre al port forwarding nel router per minecraft server).

Gestisce il server Ubuntu 15.10 ed è connesso al router Sky Hub tramite uno switch non gestito a 5 porte (a cui è collegato anche il mio PC desktop personale). Ha un IP interno statico.

È ciò che sto progettando una pessima idea e come potrei mitigare i potenziali attacchi?

    
posta BenAdamson 30.11.2015 - 00:04
fonte

3 risposte

4

Per prima cosa, supponiamo che il tuo server sarà sotto attacco non appena lo metti online. Operare sotto quell'ipotesi e eviterai molti errori che le persone normalmente fanno.

Comincerei inserendo il server in un DMZ in modo che nel caso in cui venga compromesso, la superficie di attacco è limitata in termini di ciò che può ottenere. Se questo non è possibile, non è la fine del mondo ma aiuta a mantenere le cose separate.

Successivamente, e probabilmente ancora più importante, assolutamente nulla che non debba essere in esecuzione dovrebbe essere in esecuzione. Disattiva tutte le funzionalità non necessarie (hai davvero bisogno di un ambiente GUI?) E blocca tutte le porte che non sono specificamente richieste per funzionare. Mi piace iptables da solo, ma l'importante è che qualcosa sia usato.

Ci sono alcuni strumenti che puoi usare per rilevare attività dannose, come la scansione, la forzatura bruta, i tentativi di exploit, ecc. Non ne parlerò in dettaglio, ma qui ce ne sono alcuni che ho usato nel corso degli anni:

  • tripwire è un po 'obsoleto ma non terribilmente
  • ossec svolge un ruolo simile, ma è più reattivo
  • snort è molto popolare, ha un sacco di regole

Più importante di qualsiasi strumento specifico è che lo configuri e utilizzi correttamente. Assicurati di aver capito cosa copre tutto lo strumento, cosa non funziona e cosa succede quando fallisce.

Puoi sicuramente eseguire un server di casa, e può essere una buona esperienza di apprendimento farlo, ma vorrai assicurarti che il tuo sistema sia aggiornato e tenuto sotto controllo. Non trascurare di controllarlo occasionalmente solo perché sembra funzionare bene.

    
risposta data 30.11.2015 - 02:20
fonte
2

Il mio consiglio principale è di assicurarti di bloccarlo il più possibile.

Inizia a livello di trasporto. C'è un sacco di percorsi linux per fare questo, personalmente, trovo che sia un modo ragionevolmente facile da usare. Se c'è una porta che non ha bisogno di essere aperta (cioè non c'è un motivo specifico per cui sia aperta a Internet), allora non dovrebbe esserlo. Se è necessario l'accesso locale, aprirlo solo per gli indirizzi sulla rete locale. Hai elencato 3 servizi (FTP, SSH, Minecraft) che devono essere aperti, quindi limita la configurazione per consentire solo quelli al di fuori della rete.

Quindi guarda l'autenticazione. Per SSH, poiché consente l'esecuzione, ti consiglio di NON aprirlo per l'accesso generale. Seleziona il tuo account utente e assegnagli le autorizzazioni per SSH e blocca tutti gli altri. Personalmente raccomanderei l'utilizzo di chiavi per l'autenticazione e non consentire affatto le password, ma sono solo io.

Vuoi che l'FTP sia aperto, quindi la soluzione è di limitarne l'accesso. Dagli un account generico e fallo in modo che possa accedere solo a una directory specifica e non importante. Non eseguire niente da qui e non averlo indicato come una directory di salvataggio.

Immagino che vuoi che Minecraft sia relativamente aperto, il che va bene, ma che richiede più gestione per affrontare il griefing (backup mondiali, ecc.).

Ci sono alcuni HIDS (sistemi di rilevamento delle intrusioni basati su host) che aiuteranno a mitigare gli effetti di chiunque tenti di attaccare il tuo server.

    
risposta data 30.11.2015 - 13:05
fonte
1

Sono d'accordo con le risposte di @Jozef Woods e @TactiFail sul blocco del server ecc.

Vorrei anche aggiungere che dovresti assicurarti di applicare le patch regolarmente, e questo vale non solo per il sistema operativo. Se vuoi che sia un server di Minecraft, allora eseguirà Java presumo? Questo sarà un componente chiave per la patch. Ad esempio, questo aggiornamento da Java ha risolto 8 vulnerabilità classificate come gravità critica oltre a un mucchio di altri elementi meno gravi:

link

Applicherei anche il hardening standard del settore al server. Puoi scaricare ed eccellente guida per vari tipi di Linux, gratuitamente da CIS:

link

Queste guide riguardano:

  • Blocco del file system
  • Indurimento del contesto di esecuzione del processo
  • Rimozione dei servizi che non sono richiesti
  • Configurazione di rete
  • Registrazione e controllo
  • Gestione account utente
risposta data 30.11.2015 - 13:45
fonte

Leggi altre domande sui tag