Sicurezza del server home: da where inizio?

Un mio amico e io stiamo pensando di iniziare la nostra attività che coinvolge codice e qualche IP abbastanza avanzato (alless, ci piace pensare che l'IP sia avanzato). Voglio impostare un repository di codice (probabilmente sovversione) e un server di monitoraggio dei bug (probabilmente fogbugz) in un sistema di server di casa che entrambi avrebbe potuto VPN entrare da luoghi remoti tramite computer porttili. Mi piacerebbe anche che questo server sia un sistema di elaborazione a distanza che esegue qualche tipo di script hudson, forse tramite antica, per eseguire test automatici e build verifica.

La mia domanda è: qual è il modo più sicuro per impostare questo sistema? Ho un budget di $ 1k per hardware e software. Ho una networking wireless domestica esistente che utilizza una stazione base Apple Wireless, un macbook pro in esecuzione sia 10.5 che windows 7, e una macchina domestica che esegue windows 7, che io uso solo per i giochi e scompiglio.

  • Linux: configurato per il sysadmin remoto
  • VPN - Man-in-the-middle quando si connette a un servizio https?
  • Come posso interrogare per tutti i contesti di file / file di selinux / etc predefiniti che interessano un tipo
  • Il mio server è ancora vulnerabile a problemi di scansione anche dopo aver aggiornato OpenSSL
  • Per aggiungere la sicurezza ai tasti SSH da attacchi Man-in-middle
  • Powershell Remoting le implicazioni di sicurezza aggiungendo gli utenti a WinRMRemoteWMIUsers
  • specificially:

    • Devo utilizzare Linux? Quale distro? Come posso bloccarlo? Mi rendo conto che questa domanda può iniziare una miriade di guerra a fiamma, ma voglio solo alcuni suggerimenti su come impostare un server sicuro con questi servizi in esecuzione (e nient'altro, sotto l'ipotesi che più servizi = più buchi di sicurezza).
    • Dove posso get buone informazioni sulla creazione di una VPN tramite quel router? Dovrei passare attraverso quel router di mele, o c'è un router di sicurezza standard oro che dovrei guardare?
    • IP statico (che significa cambiare il mio ISP) o un IP dinamico? È ansible fare questo tipo di cose con un IP dinamico e, se è così, come posso impostare il server per essere sicuro, remoto accessibile tramite un IP dinamico?
    • Che tipo di hardware devo guardare? Stavo pensando a qualcosa in linea con un processre duo core2 (forse i7?), Disco fisso regolare, 4 GB di RAM, ed è in questo caso, collegato ad un'altra unità di backup, come un disco rigido collegato a USB collegato al sistema con i lavori cron per eseguire backup di notte alla seconda unità. È ragionevole?

    Mi rendo conto che questa è una domanda enorme e non necessariamente diretta. Quando faccio ricerche sulle risposte a queste domande, ottengo molte informazioni, ma nessuna di queste è completamente diretta. Quindi, se qualcuno sa di una guida o di un paio di post sul blog che ho perso, lo apprezzerò veramente.

    7 Solutions collect form web for “Sicurezza del server home: da where inizio?”

    Linux non ha la polvere magica di sicurezza di pixie. Anche le installazioni Linux possono essere configurate male. Qualunque sia il sistema operativo server utilizzato, è necessario:

    • Distriggersre i servizi / demoni inutili.
    • Verifica per assicurarsi di distriggersre veramente i servizi / demoni inutili.
    • Modificare le password predefinite o distriggersre gli account predefiniti.
    • Comprendere come manipolare le autorizzazioni per i file e le directory.
    • Creare e utilizzare account utente che hanno less privilegi.
    • Continuare con le patch di protezione per il sistema operativo e le applicazioni.

    Date un'occhiata al sito Linux Project Documentation ( http://www.tldp.org) – ci sono alcune guide dignitarie di sicurezza. Dovresti anche cercare documenti di sicurezza per each applicazione che stai per ospitare.

    La tua networking wireless dovrebbe essere trattata come una networking non attendibile e dovresti usare VPN o criptare tutto ciò che è in esecuzione. Non utilizzare algoritmi di crittografia rotti (WEP, WPA).

    Dovresti usare una VPN, come hai detto, per spostare tutto il traffico su Internet. Ci sono scatole hardware a basso costo che è ansible utilizzare, anche se alcuni di loro hanno problemi di stabilità. È ansible eseguire OpenVPN su un host e metterlo in esposizione su Internet come un modo "a buon mercato" di fare le cose con il software. È ansible utilizzare tunnel SSH per realizzare anche questo. Puoi andare anche con una VPN IPec basata su standard. È una questione del tempo / energia che vuoi spendere per configurare. È assolutamente in grado di utilizzare sia con indirizzi IP dinamici. Come dice nik , DNS dinamico è il tuo amico.

    È bello vedere che stai pensando al backup. Sono dubbio dei "backup al secondo drive" come uno scenario molto tollerante per i disastri, ma forse perché ho avuto un buon amico passare attraverso un fuoco di casa. Consiglierei sicuramente di utilizzare un certo tipo di replica dei dati off-site crittografati o di ruotare manualmente più dischi rigidi esterni (speriamamente crittografati) fuori sede. Se i dati si adatteranno, è ansible considerare l'utilizzo di un gruppo di dispositivi di memorizzazione dello stato solido per la rotazione fuori sede, in sostituzione di unità disco rigido (unità a pollice, ecc.).

    RAID è stato menzionato in alcuni commenti, quindi lo menzionerò nella mia modifica. Avrei seriamente considerato il software RAID-1 per questa applicazione. Ottieni un sacco di vantaggi senza molta complessità o potenziale per problemi causati dal sistema RAID stesso. Il RAID, però, non è il backup, quindi non considerarlo come tale.

    È stato anche citato UPS, ed è una buona idea. Non devi spendere gravissime somme di denaro su di esso, ma vorrei raccomandare di get uno che disponga di una connessione dati per consentire l'arresto grazioso del computer server in caso di interruzione di corrente.

    Non vedo particolarmente il processre in un computer server come avere molto a che fare con la sicurezza. Il processre particolare la tua necessità dovrebbe basarsi sul carico di lavoro.

    Non intendo sembrare che ti correggo, ma vale la pena ricordare che non si vuole veramente il modo "più sicuro". Per esempio, hai già parlato di un budget. Quello che vuoi veramente è la configuration che offre un certo grado di sicurezza a cui sei a tuo agio, riduce al minimo quanti rischi possibili, si adatta al tuo budget e non è troppo ingombrante da utilizzare.

    Anche se non usi tunnel SSH in questa applicazione, dato che è stato menzionato nei commenti, butterò il mio sostegno dietro di esso. Dovresti sapere come usare tunnel SSH perché sono semplicemente troppo a portta di mano per non saper usare.

    • Potresti andare con IP dinamici e qualcosa come DynDNS o forse EasyDNS .
    • Linux è buono. E, se non siete in profondità, puoi considerare l' edizione server Ubuntu ; Riferimento libro: Inizio Amministrazione server Ubuntu
    • Per l'hardware, se si sta impostando a casa, consideri un UPS a less che non si trovi in ​​un luogo che non avrà mai interruzioni di corrente di alcun tipo.
    • Si consiglia di considerare un sistema di disco ridondato configurato RAID.
    • Una volta che hai una certa stabilità, consideri un patch di indurimento del kernel come la grsecurity . Ci sono altre patch di indurimento che puoi anche cercare (nessuna guerra di fiamma per favore).

    Prima di quando si sta parlando di un server di casa e hanno forti vincoli di bilancio (quasi) dimenticare la sicurezza fisica. Mettere la scatola da qualche parte in cui il tuo coniuge / ragazzo / animali domestici non riescono a raggiungerlo per non correre in difficoltà quando qualcuno scolbind questa cosa solo per get un posto per colbind l'aspirapolvere.

    Etichetta che spina in modo che sia assolutamente chiaro!

    Devo utilizzare Linux? Quale distro? Come posso bloccarlo? Mi rendo conto che questa domanda può iniziare una miriade di guerra a fiamma, ma voglio solo alcuni suggerimenti su come impostare un server sicuro con questi servizi in esecuzione (e nient'altro, sotto l'ipotesi che più servizi = più buchi di sicurezza).

    Utilizza il sistema operativo che sai come proteggere. Non è un bene andare con OpenBSD (che ha una buona reputazione di sicurezza) se non sai come mantenerlo sicuro . Il sistema operativo con cui sono più sicuro è Debian, per cui l'uso, la tua conoscenza potrebbe essere con Windows, Plan9, Solaris. Utilizza il sistema operativo che conosci meglio!

    Definisci le tue esigenze (sembra averlo fatto già – è eccellente) e pensa al fatto che tu abbia assolutamente bisogno di quel hardware server uber-cool . Non penso di fare veramente, piuttosto spendere i soldi su un dispositivo di backup per backup offline o marketing (o porn).

    Dove posso get buone informazioni sulla creazione di una VPN tramite quel router? Dovrei passare attraverso quel router di mele, o c'è un router di sicurezza standard oro che dovrei guardare?

    Vorrei andare con OpenVPN è relativamente facile impostare e inoltrare quella (e solo quella) port dal tuo router alla casella che utilizzi. Forse aggiungere un po 'di bussare alla port (sappiamo solo di soluzioni Linux) – gli urti verranno ora a dire la sicurezza per oscurità e hanno ragione, ma dato che hai un budget che considererebbe uno strato di sicurezza a buon mercato vale la pena – hower con tale path è necessario submit ulteriori porte inoltrate al server.

    Fare i servizi necessari ascoltare solo su IP / interfacce che non sono raggiungibili senza essere collegati da una VPN . Immagino che gli unici servizi necessari saranno HTTPS (sovversione e bugtracker).

    Configurare OpenVPN per utilizzare certificati protetti con password e password per gli utenti (Sì che è ansible).

    IP statico (che significa cambiare il mio ISP) o un IP dinamico? È ansible fare questo tipo di cose con un IP dinamico e, se è così, come posso impostare il server per essere sicuro, remoto accessibile tramite un IP dinamico?

    No, non buttare fuori i tuoi soldi, usa servizi gratuiti come Dyndns (o qualunque cosa sia l'unico che mi viene in mente). Come ha detto che si è un avvio e pagare un supplemento mensile per un IP statico non farà alcun bene se non ne hai veramente bisogno – a less che non si desideri eseguire Email-Services sul tuo server, allora non solo bisogno di un IP statico, ma assicuratevi di avere anche il controllo sul DNS inverso. E anche se cambiate un altro ISP che fornisce IP statico less costoso della tua corrente: vai per esso!

    Potrebbe essere presente una breve interruzione mentre il servizio IP sta passando al nuovo IP ma ciò dovrebbe essere eseguibile, se è troppo che potete ancora passare ad un IP statico.

    Che tipo di hardware devo guardare? Stavo pensando a qualcosa in linea con un processre duo core2 (forse i7?), Disco fisso regolare, 4 GB di RAM, ed è in questo caso, collegato ad un'altra unità di backup, come un disco rigido collegato a USB collegato al sistema con i lavori cron per eseguire backup di notte alla seconda unità. È ragionevole?

    Vorrei andare con un hardware relativamente economico di Dells Tower Servers (quello più economico che potresti essere esatto), i soldi che hai salvato dovrebbero essere spesi per un buon contratto di assistenza in caso di guasti hardware e un sistema di backup dedicato e probabilmente un UPS che avrà alless un potere sufficiente per consentire al server di arrestarsi in modo sano.

    Dato che si desidera eseguire un repo di codice sorgente e un inseguitore di bug concludo che stai sviluppando localmente e fai check. Comunicare in modo formale sul bugtracker in modo da voi e il vostro partner di affari hanno qualcosa da biasimare l'uno contro l'altro :). Il 99% del tempo che il tuo server non farà nulla.

    Se vuoi get alcuni test automatizzati aggiungere in qualche RAM, non import se la build richiede 5 minuti o 15 minuti con 2 sviluppatori, ma sarai in testa a dadi se il daemon / servizio OpenVPN viene ucciso a causa della RAM interruzioni each volta che la tua build sta runnning.

    Fai un favore e ottieni un router hardware con un buon supporto VPN. Anche qualcosa di poco costoso come la linea ProSafe di Netgear può essere avuto per $ 70 o giù di lì.

    http://www.netgear.com/Products/VPNandSSL/WiredVPNFirewallRouters/FVS114.aspx

    Questi tipi di unità saranno molto facili da configurare e configurare. Se finisci per avere bisogno di servizi IP dinamici (che puoi fare facilmente), utilizzare DynDNS come suggerito.

    Dal momento che non siete sicuri di impostare alcuni pezzi, perché non farlo fare altrui?

    Considera un ambiente ospitato come Assembla , Unfuddle , Origo , XP-Dev , ProjectLocker , CodeSpaces , bitbucket o github .

    Tiene fuori dalla configuration e la manutenzione del server e dei repository, e la maggior parte dei siti di hosting sono abbastanza economici che il tuo $ 1k andrà molto lontano.

    Il lato negativo è che dovresti trovare una soluzione di integrazione continua separata. Dall'elenco di cui sopra, solo ProjectLocker ha menzionato come funzionalità di strumenti di integrazione continua.

    Alcune parole sui backup.

    Se non ti assicuri di leggerli, non hai eseguito il backup.

    Se non si dispone di backup esterni (la casa del tuo amico farà), non hai buoni backup.

    Se i backup sono on-line (RAID o hot server), non sono backup.

    Figura quali tipi di events potrebbero eliminare sia il sistema che i backup, e assicurarsi di accettare il rischio. Se hai dei buoni backup nella casa del tuo amico e nel tuo server, allora un singolo evento dovrebbe essere abbastanza grosso (e raro) per eliminare entrambi. Ad esempio, se la città in cui vivo è banale, probabilmente non mi preoccuperei troppo del lavoro.

    Nessuno dei mezzi a basso costo per i backup è tutto ciò che durevole, quindi non basta avere un backup che si potrebbe perdere per ragioni assortite.

    E se decidi di andare con un servizio di hosting, mantenete comunque i tuoi backup. Se la tua azienda di hosting perde i tuoi dati, hanno ferito un cliente, che non è buono, ma la tua attività è morta, e questo è peggio. Se il tuo servizio esce dall'attività commerciale, potresti non visualizzare più i tuoi dati.

    La persona più interessata ai tuoi backup è lei, e questo è qualcosa che normalmente puoi fare per te stesso. Fare così.

    Questo è esattamente come ho avuto il mio inizio, e ho ancora eseguire una sandbox del server di casa.

    • Utilizzare una connessione cablata per il server, non per l'aeroporto.
    • Dopo aver utilizzato Slackware, Fedora, SuSE, CentOS e Ubuntu, suggerirei Ubuntu Server http://www.ubuntu.com/products/whatisubuntu/serveredition in quanto rende la gestione e il miglioramento della sicurezza un po 'più facile fuori dal box, ma la distribuzione è in gran parte dipendente dalla preferenza personale. Tutte le distribuzioni precedenti hanno grandi comunità dietro di loro (anche se Slackware è abbastanza piccolo in confronto).

    Per quanto riguarda l'hardware: la mia home sandbox funziona su una torre di server a 64 bit con due arrays SATA RAID (sistema, servizi) e 2 concerti di RAM, che è abbondante per questa applicazione. Le specifiche che suggeriate sono forse overkill, ma se potete permetterti, sicuramente andare per esso. A lungo termine, avrai solo bisogno di più, giusto.

    Per quanto riguarda il backup, è ansible risparmiare un po 'di denaro rinunciando all'unità disco rigido USB e solo inserendo un secondo disco rigido che copia nello stesso modo basato su cron. Si noti, però, che non sto suggerendo un arrays RAID mirroring, dato che questo non è un backup, ma solo un secondo disco rigido. Risparmierai denaro sullo scomparto e le velocità di trasferimento saranno piuttosto elevate rispetto a quelle esterne. Un metodo di backup superiore sarebbe off-site, oa un dispositivo NAS.

    E sicurezza: impara a tunnel tutto. Avnetworking probabilmente solo bisogno di aprire 80 (e forse 443) e 22 al mondo esterno. Tunnel il resto su ssh per l'amministrazione remota. Puoi anche essere in grado di tunnel tutti i servizi necessari, salvando il costo di un router VPN.

    EDIT Per creare un tunnel ssh:

    ssh remote.host.com -L local_port:remote_network_address:remote_port 

    Quindi, dall'esterno della mia networking, se voglio accedere all'interface web del mio router dal mio porttile che è fuori dalla mia LAN, uso

     ssh my-home.com -L 8081:192.168.0.1:80 

    e quindi aprire un browser e colpire http: // localhost: 8081 e voilà – tunnel crittografato da localhost: 8081 a 192.168.0.1:80 sulla LAN dell'host remoto. Se wherete farlo da Windows, PuTTY (IMHO, lo ssh de facto Windows ssh) ti permetterà di configurarli prima di connetterti. Il codice sopra funziona su qualsiasi * nix (incluso Mac OS X).

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.