Come configurare un server solo per uso interno [Ubuntu]


0

Sto provando a costruire un VM-Home Lab con diversi server Ubuntu. Voglio rendere ogni server non accessibile dall'esterno / Internet e ho pensato di poterlo fare configurando iptables.

Ho provato un paio di tutorial che mi suggerivano di DROP tutto il traffico e di configurarlo solo su ACCPET dalla mia rete interna (ad esempio 10.10.0.0/24).

Tuttavia, quando seguo questi turotomi, finisco sempre con un paio di errori:

  • Prima di tutto, se inizio con il comando iptables -P INPUT DROP Non posso continuare con il resto dei comandi, perché il server in qualche modo non può risolvere il proprio nome host
  • Quando aggiungo il mio intervallo IP locale con iptables -A INPUT -i eth0 -s 192.168.100.0/24 -m state --state NEW,ESTABLISHED -j ACCEPT Non riesco ad accedere al mio server dal mio computer host tramite ssh o non posso nemmeno caricare una pagina web ospitata su di esso

Il mio obiettivo principale è rendere il server accessibile da qualsiasi computer, laptop ecc. Nella mia rete domestica, ma non dall'esterno. Quindi i miei amici e io possiamo lavorare insieme su progetti di codifica, quando portano il loro laptop.

Forse sto esagerando, e forse c'è un modo più semplice (usando l'hypervisor della virtualbox).

I servizi in esecuzione sulle macchine sono gitlab-ce e jira sull'altro.

Qualsiasi aiuto sarebbe apprezzato, dal momento che questa è la mia prima volta che lavoro con queste cose (in realtà sono solo uno sviluppatore di software: P)

Saluti


Quindi stai usando la modalità "bridged networking"? Il tuo router sta già impedendo l'accesso ai tuoi server da internet, vero?
SpiderPig

Stessa osservazione. Di default il tuo modem / router di casa impedisce ai sistemi su Internet di connettersi alle macchine della tua casa (in altre parole consente solo connessioni in uscita). Inoltre, su Ubuntu puoi installare ufw (FireWall non complicato) che è molto più facile da usare di iptables.
xenoid

Grazie ragazzi. Non sapevo che i router già bloccano l'accesso ...
Zanidd

Ecco perché è necessario impostare port forwarding sul router se si desidera rendere accessibile qualcosa dall'esterno. Dopo tutto, in che altro modo il router dovrebbe sapere quale dispositivo sulla rete domestica dovrebbe inoltrare un pacchetto?
SpiderPig

Risposte:


0

Hai diversi modi per configurare il tuo hypervisor per raggiungere il tuo obiettivo:

  1. Ogni VM ha la sua scheda di rete allegato a bridged adapter. È quindi necessario configurare un IP pubblico (ad esempio in 10.10.0.0/24) per ciascuna di queste schede di rete.

    Finalmente puoi eseguire i seguenti comandi di iptables sul tuo host:

    • iptables -P INPUT DROP per impostare la politica predefinita come DROP
    • iptables -A INPUT -i eth0 -s 10.10.0.0/24 -j ACCEPT : per consentire il pacchetto dalla rete interna.
  2. Ogni VM ha la sua scheda di rete allegato a NAT. È quindi necessario configurare il reindirizzamento delle porte per ciascun servizio di ogni VM (pulsante Impostazioni VM & gt; Rete & gt; Avanzate & gt; Port Forwarding in fondo). Si prega di consultare la nota alla fine del post per maggiori dettagli sulla configurazione di port forwarding.

    Quindi devi eseguire i seguenti comandi di iptables sul tuo host:

    • iptables -P INPUT DROP
    • iptables -A INPUT -i eth0 -s 10.10.0.0/24 -j ACCEPT
    • invece dell'ultimo comando puoi essere più preciso nella tua autorizzazione: iptables -A INPUT -i eth0 -s 10.10.0.0/24 --dport ssh -j ACCEPT ma potresti dover riconfigurare a volte iptables se aggiungi più servizi alle tue VM.

In tal caso, le macchine virtuali non saranno raggiungibili da Internet e dal resto della rete interna, presupponendo che l'intera rete interna sia 10.0.0.0/8. Nota Avrai maggiori dettagli su ponte / NAT e Port forwarding Qui

MODIFICARE

Considerando i requisiti inferiori alla richiesta, non mi sono reso conto che la tua rete locale è "solo" 10.10.0.0/24 (e non 10.0.0.0/8). Per di più, 10.10.0.0/24 appartengono al più ampio rete privata 10.0.0.0/8 ( https://en.wikipedia.org/wiki/Private_network ), che non è instradabile su Internet (voglio dire senza VPN, ma non è tecnicamente di routing). Pertanto il client da Internet non sarà in grado di raggiungere le VM interne.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.