Come proteggere gli ambienti di test / dev dal mondo esterno?

5

Vorrei creare una barriera di sicurezza per i miei ambienti test / dev. Sono sotto una LAMP più o meno tipica su server dedicati.

Il fatto è che ho alcune app di Facebook, un widget per altri dispositivi e altre app che devono connettersi al mio sito tramite un'API (anche chiamate ajax!). Ma voglio che i miei siti test / dev non siano accessibili dall'esterno. Quindi, come potrei impostare meglio qualche protezione qui?

Le prime idee che vengono da me sono:

  • Rimuovi le voci DNS.
    • È possibile accedere solo tramite IP e configurare le voci / etc / hosts ovunque io voglia testare. Ma sarebbe necessario fare riferimento tramite IP in altre app esterne come l'app FB.
  • Autenticazione http Apache
    • Pro: hai bisogno di u / pw per accedere, quindi un po 'sicuro. Ma: come puoi impostare l'accesso automatico? Per esempio. widget, app FB, chiamate Ajax ... (In realtà non lo so)
  • voce robots.txt per evitare l'esposizione al motore di ricerca - ma non abbastanza per bloccare effettivamente un sito.

Idee per favore? Grazie!

    
posta Co Lega 06.10.2011 - 20:09
fonte

5 risposte

4

Metti il server di prova dietro un router / firewall e non esporlo all'esterno. Fintanto che tutti coloro che hanno bisogno di accedere al server di test sono dietro lo stesso router, tutto va bene (a patto che tu abbia fiducia nella rete locale); il mondo esterno non saprà nemmeno che la macchina esiste.

Se hai bisogno di accedere dall'esterno, VPN o SSH-tunnel nella rete locale.

    
risposta data 06.10.2011 - 23:20
fonte
3
  • Remove DNS entries.

Questo non ti aiuterà. Chiunque trovi e scansiona dall'esterno è quasi certamente alla scansione cieca dello spazio IP, non cerca i nomi e provandoli, e rimuoversi dal DNS non avrà alcun impatto su di loro.

  • Apache http auth

Questo aiuterà, ma come hai fatto notare, farlo funzionare con tutti i tuoi widget potrebbe finire per essere un problema.

  • robots.txt entry to avoid search engine exposure

Questo non aiuta molto. Potrebbe ridurre i motori di ricerca onesti che ti indicizzano, ma blocca solo i crawler ben educati. E le probabilità che il tuo avversario ti stia inciampando attraverso una ricerca sul web sono molto, molto basse - vedi sopra, probabilmente stanno esaminando ciecamente lo spazio IP e ti stanno colpendo.

Aggiornamento per rispondere pienamente al commento di @Co Lega

Oh, vuoi anche delle soluzioni? Merda, questa è la roba dura! 8)

Una soluzione che potrebbe funzionare per te è concedere temporaneamente l'accesso basato su IP in base all'autenticazione. Questo è simile a bussare alla porta o POP-prima-SMTP. Sembra che tu voglia testare le app sul server di sviluppo, e quindi non puoi aggiungere l'autenticazione del livello dell'applicazione al server di sviluppo senza entrare in conflitto con le applicazioni che potrebbero già avere la loro autenticazione. Non vuoi mantenere le regole del firewall perché i tuoi utenti potrebbero non essere prevedibili nel loro IP di origine, o perché non vuoi mantenere una serie di regole mutevoli.

L'idea, quindi, è che le persone eseguano un'autenticazione sul server dev con l'unico scopo di aprire l'accesso dal proprio IP per un periodo di tempo limitato, come una regola firewall dinamica e temporanea. Poiché stai modificando l'accesso IP, il browser e / o l'applicazione non devono mantenere le credenziali, il server delle applicazioni non ha bisogno di mantenere lo stato per quel livello di accesso, ecc. Ecc. Sfoglia la pagina di autenticazione del server , autenticati e il loro IP è cancellato per l'accesso al resto del sito per 30 minuti, 2 ore, 2 giorni, qualunque cosa tu voglia. Testano le app senza la necessità di consentire il wrapping di quell'accesso nell'autenticazione, poiché al loro IP è stato concesso l'accesso in base all'autenticazione fuori banda (ad esempio, non l'applicazione).

Uno svantaggio è che la sorgente IP non è sempre così sicura; se sono dietro un proxy nella libreria, anche a chiunque altro dietro quel proxy è concesso l'accesso. A quel punto si vuole vedere una soluzione VPN.

Guardando la tua domanda, non sono sicuro di quanto si adatti al tuo obiettivo originale. Si rivolge a un pubblico più vasto rispetto agli utenti finali e sembra che tu stia pensando agli utenti finali. In tal caso, forse la risposta è di rafforzare le applicazioni per sopravvivere all'esposizione su Internet, che comunque è una buona idea.

Buona fortuna!

    
risposta data 06.10.2011 - 21:14
fonte
2

Imposta DNS non guast.

$ openssl rand -hex 16
dbfbd61101a137242e6f1e1149923e20

$ host instance-dbfbd61101a137242e6f1e1149923e20.myapp.com
instance-dbfbd61101a137242e6f1e1149923e20.myapp.com has address 128.64.32.16
    
risposta data 06.10.2011 - 21:14
fonte
2

Imposta un firewall. Inizia con una politica che blocca tutti gli accessi alla tua macchina dall'esterno. Quindi fai qualche buco attraverso il firewall solo per le porte di destinazione che devono essere esposte, ma limitali per IP sorgente in base all'indirizzo IP del servizio esterno che deve contattarti.

Questo non è perfetto, perché gli indirizzi IP possono essere falsificati. Tuttavia, è probabilmente abbastanza buono per configurare un ambiente test / dev per un po 'di tempo. Basta non lasciarlo per sempre: quando hai finito, spegnilo.

    
risposta data 06.10.2011 - 22:43
fonte
0

Non ripeterò le altre risposte. Vuoi un'app Facebook per accedere al tuo sito, se è dietro un login. Puoi dare a quell'app l'opzione per accedere immagino. Non ho mai creato un'applicazione FB, quindi non conosco i limiti, ma immagino che non sarai il primo a aver bisogno di qualcosa del genere. Lo stesso vale per qualsiasi app, PHP o qualsiasi altra lingua tu usi. Dovrebbe essere possibile.

    
risposta data 01.05.2014 - 10:49
fonte

Leggi altre domande sui tag