Protezione di un server Web Ubuntu su cloud per un'applicazione web

1

Sto per pubblicare un'applicazione web Python. Il server è una macchina remota Ubuntu ospitata da 1 & 1.

Per ora avvio remotly l'app del server python con un comando console.

Riguardo alla sicurezza, quali sono le procedure obbligatorie con la mia macchina Ubuntu, prima di renderlo pubblico con un nome di dominio?

Grazie

    
posta Guilhem Fry 11.09.2017 - 17:13
fonte

3 risposte

1

Crea un utente non root esegui la tua app con quell'utente.

Imposta il blocco ufw (non complicato) a prescindere da SSH, http e HTTPS. Questo è molto più semplice di iptables (imo).

Disabilita autenticazione password SSH. Imposta le chiavi, usale solo.

Inoltre configura Fail 2 Ban per monitorare i registri e intraprendere qualsiasi azione aggiuntiva che potresti desiderare (lista nera di IP ecc.)

Ci sono molte guide online per indurire Ubuntu, questi sarebbero i miei passi obbligati. Consiglierei le guide di Linode di solito sono di buona qualità ( link ).

Tieni anche presente che anche senza un nome di dominio, se la tua app era in esecuzione sulle probabilità remote, è già stata rilevata e verificata sulla base di IP: solo porta. Farei tutti questi passaggi non appena il provisioning del server.

    
risposta data 11.09.2017 - 20:21
fonte
0

Supponendo che la tua applicazione sia sicura e che ti fidi dell'host del tuo server, i modi più semplici per proteggere il sistema sono:

  1. Mantieni aggiornati i tuoi sistemi / pacchetti e patch ( sudo apt upgrade )
  2. Esegui solo ciò di cui hai bisogno per essere eseguito. Rimuovi i pacchetti server non necessari che ascoltano sulle porte o tieni fermi ( chkconfig <service> stop && chkconfig <service> off )
  3. Utilizza un firewall. Se l'host del tuo server fornisce un sistema firewall, usalo. In caso contrario, configura IPTables per limitare il traffico al tuo server.

Sapere quali servizi interrompere potrebbe non essere banale se non si ha esperienza con la configurazione di un server. In generale, i server ospitati sono piuttosto limitati e gestiscono solo i programmi essenziali per essere il più efficiente possibile in termini di risorse, quindi potresti non dover fare molto lì.

modifica: è stato appena letto il sito web del tuo host del server. Forniscono strumenti di gestione firewall e sistemi di protezione dalle intrusioni che è possibile configurare per consentire solo il traffico alla porta dell'applicazione. Se ti puoi permettere la loro offerta di backup / snapshot, dovresti prenderla e renderla un punto per fare frequenti snapshot (backup) del tuo server per ogni evenienza. È una buona pratica.

    
risposta data 11.09.2017 - 19:12
fonte
0

Direi sicuramente che il routing di tutto il traffico attraverso CloudFlare è essenziale nelle applicazioni web. Non solo il loro DNS è molto veloce, ma fornisce un certificato SSL gratuito (condiviso, è possibile effettuare l'aggiornamento a dedicato) che, senza alcuna configurazione dalla tua parte (a parte l'aggiornamento dei tuoi server dei nomi) ti consente di usare https e quindi, una connessione sicura (assicurati di scegliere Cloudflare per accedere al modulo Crypto e abilitare "Usa sempre HTTPS" in modo che tutto il traffico debba essere instradato attraverso una connessione crittografata). Molti sostengono che qualcosa come Letsencrypt potrebbe offrire un tale servizio, ma Cloudflare nasconde anche l'indirizzo IP di origine (del server web) in modo che gli utenti non possano trovare l'IP tramite il ping del dominio o altro. E, oltre a tutto questo, offre una varietà di altri strumenti come la protezione DDoS, la lista nera IP e una varietà di altri utili moduli che aiuteranno senza dubbio in sicurezza.

Molte grandi aziende utilizzano CloudFlare poiché sono estremamente buone.

    
risposta data 13.09.2017 - 00:13
fonte

Leggi altre domande sui tag