Introduzione
Qualsiasi tipo di server è gestibile tramite una VPN. La configurazione di una VPN di accesso remoto da un dispositivo desktop/mobile è particolarmente importante quando si lavora con server back-end per proteggere l'accesso al server.
In questo articolo imparerai come configurare l'accesso remoto al Bare Metal Cloud (BMC) di phoenixNAP.
L'articolo copre i seguenti scenari:
- Configurazione di una VPN di accesso remoto su phoenixNAP BMC (accesso a dispositivi desktop/mobili).
- Configurazione dei client Windows per l'accesso remoto.
- Configurazione dei client Ubuntu per l'accesso remoto.
- Configurazione dei client Mac per l'accesso remoto.
- Configurazione della connessione VPN tra due posizioni phoenixNAP BMC.
- Configurazione di una VPN IPSec tra phoenixNAP BMC e apparecchiature locali.
Prerequisiti
- Almeno un server BMC basato su Linux con indirizzamento pubblico e privato (o due server BMC necessari per una VPN tra due posizioni).
- Almeno un server che richiede l'amministrazione remota.
- Un firewall per ufficio remoto in caso di scenario on-premise.
Strumenti
Questo articolo fa riferimento a software di terze parti. Puoi utilizzare il software VPN di tua scelta. Tutte le password e gli indirizzi IP sono puramente illustrativi e devono essere modificati.
Gli strumenti a cui si fa riferimento in questo articolo includono:
- Server cloud bare metal – server fisici distribuiti sulla piattaforma phoenixNAP Bare Metal Cloud (BMC).
- Abile – uno strumento software che facilita il supporto dell'automazione multipiattaforma. Ansible viene utilizzato per l'orchestrazione della configurazione in varie fasi del ciclo di vita di un componente.
- Galassia Ansible – L'hub ufficiale di Ansible per la condivisione dei contenuti.
- SoftEther – un programma VPN open source, multipiattaforma e multiprotocollo. Il progetto SoftEther VPN è stato sviluppato come progetto accademico dall'Università di Tsukuba, sotto la licenza Apache 2.0.
- Cigno forte – un'implementazione IPsec open source utilizzata per il terzo scenario. strongSwan facilita la connettività VPN IPsec con i tradizionali firewall hardware.
- Tunnelblink – un client open source. Tunnelblink viene utilizzato per connettere gli host Mac ai server VPN perimetrali.
Configurazione della VPN di accesso remoto su phoenixNAP BMC
Lo scenario seguente descrive la VPN di accesso remoto , che mostra come accedere a un server BMC da un dispositivo desktop o mobile tramite VPN.
Richiede un server cloud bare metal con indirizzamento pubblico e privato e un server perimetrale SoftEther per fornire il servizio VPN.
La configurazione descritta di seguito collega le sessioni VPN di accesso remoto alla stessa sottorete dei server. Utilizzando questo metodo, è possibile accedere al server perimetrale tramite l'indirizzo pubblico solo dal lato client VPN.
1. Stabilire una connessione tramite SSH con il server su cui si desidera installare SoftEther edge.
2. Quindi, installa ansible pacchetto eseguendo uno dei seguenti comandi:
- Per installare Ansible su Ubuntu:
sudo apt -y install ansible
- Per installare Ansible su CentOS:
sudo yum -y install ansible
3. Installa softasap.sa-vpn-softether Ruolo di Ansible da Ansible Galaxy:
sudo ansible-galaxy install softasap.sa-vpn-softether
4. Crea una directory di lavoro:
mkdir softether && cd softether
5. Nella directory di lavoro appena creata, crea un ansible-playbook (vpn.yml ) per SoftEther VPN:
---
- hosts: localhost
vars:
roles:
- {
role: "softasap.sa-vpn-softether",
softether_init_script: "{{ playbook_dir }}/create_hub"
}
6. Trova il nome dell'adattatore e sottorete per la rete privata di back-end eseguendo il comando:
ip address
L'output dovrebbe essere simile all'immagine qui sotto dove le informazioni richieste sono evidenziate nelle caselle verdi.
7. Crea uno script iniziale (create_hub ) per la configurazione di SoftEther VPN. Devi creare un hub virtuale denominato vpn :
HubCreate vpn /PASSWORD:""
hub vpn
8. Collega l'hub virtuale e l'adattatore fisico utilizzando il nome dell'adattatore dal passaggio 6 :
BridgeCreate vpn /DEVICE:bond0.1101 /TAP:False
9. Abilita il NAT protetto funzione per DHCP funzionalità:
SecureNatEnable
NatDisable
10. Assegna la sottorete appropriata nei parametri DHCP (in base all'indirizzamento della rete privata raccolto nel passaggio 6 ):
DhcpSet /START:10.0.0.200 /END:10.0.0.250 /MASK:255.255.255.0 /EXPIRE:7200 /GW:none /DNS:none /DNS2:none /DOMAIN:none /LOG:yes /PUSHROUTE:none
SecureNatHostSet /MAC:none /IP:10.0.0.253 /MASK:255.255.255.0
11. Genera un certificato per la connessione VPN con il tuo nome di dominio completo (FQDN):
ServerCertRegenerate vpn.yourdomain.com
ServerCertGet ./generated/cert.cer
12. Quindi, abilita il supporto VPN.
- Per abilitare il supporto per VPN SSTP Windows client eseguiti:
SstpEnable yes
- Per abilitare il supporto per OpenVPN client eseguiti:
OpenVpnEnable yes /PORTS:1194
OpenVpnMakeConfig ./generated/openvpn_config.zip
13. Definisci utenti VPN locali:
UserCreate rauser /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet rauser /PASSWORD:sadigGjyt387
14. Definire una password di gestione del server SoftEther:
ServerPasswordSet adskfnne44onkdasl
15. Crea due file:vpn.yml e create_hub .
Se necessario, modificare:
- Dhcpset inizio e fine intervallo
- SecureNatHostSet Parametri dell'indirizzo IP
- ServerCertRegenerate dominio
Se non sono necessarie modifiche, incollare le seguenti righe sul server SoftEther:
cat <<EOF > vpn.yml
---
- hosts: localhost
vars:
roles:
- {
role: "softasap.sa-vpn-softether",
softether_init_script: "{{ playbook_dir }}/create_hub"
}
EOF
cat <<EOF > create_hub
HubDelete DEFAULT
HubCreate vpn /PASSWORD:""
hub vpn
BridgeCreate vpn /DEVICE:bond0.1101 /TAP:False
SecureNatEnable
NatDisable
DhcpSet /START:10.0.0.200 /END:10.0.0.250 /MASK:255.255.255.0 /EXPIRE:7200 /GW:none /DNS:none /DNS2:none /DOMAIN:none /LOG:yes /PUSHROUTE:none
SecureNatHostSet /MAC:none /IP:10.0.0.253 /MASK:255.255.255.0
ServerCertRegenerate vpn.yourdomain.com
ServerCertGet ./generated/cert.cer
SstpEnable yes
OpenVpnEnable yes /PORTS:1194
OpenVpnMakeConfig ./generated/openvpn_config.zip
UserCreate rauser /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet rauser /PASSWORD:sadigGjyt387
ServerPasswordSet adskfnne44onkdasl
EOF
16. Dopo aver creato il vpn.yml e create_hub file, puoi avviare ansible-playbook. Il comando seguente installa e configura il server SoftEther VPN:
sudo ansible-playbook vpn.yml
Ora il server VPN SoftEther configurato è pronto per accettare connessioni client di accesso remoto, consentendo la comunicazione con gli indirizzi di back-end dei server all'interno di BMC.
Opzioni di configurazione aggiuntive
Per ulteriori opzioni di configurazione, puoi utilizzare l'Utilità di gestione della riga di comando di SoftEther VPN (vpncmd), utilizzato per la gestione di più server VPN perimetrali.
Ad esempio, per impostare il server SoftEther, eseguire:
/opt/vpnserver/vpncmd localhost /SERVER /CMD:ServerPasswordSet
Per aggiungere utenti VPN, dovresti utilizzare i comandi:
/opt/vpnserver/vpncmd localhost /SERVER /CMD:UserCreate
/opt/vpnserver/vpncmd localhost /SERVER /CMD:UserPasswordSet
Configurazione dei client Windows
Configura i client VPN su Windows utilizzando SoftEther o il nativo SSTP MS .
Opzione 1:Metodo SoftEther
1. Scarica il client SoftEther per Windows.
2. Dopo aver scaricato e installato il client SoftEther, attenersi alla procedura seguente per connettersi al server perimetrale Phoenix:
- Seleziona Aggiungi connessione VPN per aprire le nuove proprietà delle impostazioni VPN.
- Fornire il Nome dell'impostazione .
- Specificare l'indirizzo IP , il numero di porta e il Nome hub virtuale .
- Fornire le informazioni di autenticazione dell'utente per la connessione al server VPN fornendo un Nome utente e Password .
- Fai clic su OK per confermare le proprietà dell'impostazione.
Opzione 2:metodo SSTP di Windows
1. Scaricare e installare il certificato che si trova sul server SoftEther nel percorso softether/generated/generated/cert.cer .
2. Una volta ottenuto il Certificato si apre la finestra, fai clic su Installa certificato .
3. La Importazione guidata certificati appare. Seleziona Utente attuale per la Posizione del negozio e continua facendo clic su Avanti .
4. Quindi, configura l'endpoint VPN su Windows. Apri le Impostazioni VPN e seleziona Aggiungi una VPN .
5. Inserisci le informazioni richieste, assicurandoti di selezionare Windows (integrato) come provider VPN e Secure Socket Tunneling Protocol (SSTP) come tipo VPN.
6. Fai clic su Salva per completare.
Configurazione dei client Ubuntu
1. Installa i pacchetti OpenVPN per utilizzare il client OpenVPN:
sudo apt install network-manager-openvpn network-manager-openvpn-gnome
2. Dopo aver scaricato e decompresso openvpn_config.zip file, importa la configurazione:
- Apri Impostazioni e vai a Rete .
- Fai clic su + sign per aggiungere una VPN alla tua rete.
- Scegli Importa da file...
3. Dal pacchetto di configurazione di esempio di OpenVPN, seleziona l'accesso remoto Phoenix edge OpenVPN file. Fai clic su Apri pulsante nell'angolo in alto a destra.
4. Fornisci il Nome utente e Password per l'autenticazione. Fai clic su Aggiungi per continuare.
5. Passa a IPv4 scheda e seleziona l'impostazione Utilizza questa connessione solo per le risorse sulla sua rete . Fai clic su Applica .
Configurazione dei client Mac
Puoi utilizzare Tunnelblick per installare il client OpenVPN su Mac.
1. Apri Tunnelblick e seleziona Ho file di configurazione .
2. Viene visualizzata una finestra che spiega come installare un file di configurazione.
3. Trascina e rilascia il file di configurazione sull'icona TunnelBlink situata nella barra dei menu.
4. Connettiti alla VPN appena aggiunta facendo clic sull'icona Tunnelblick e selezionando Connetti phx-edge_openvpn_remote_access_l3 .
5. Inserisci il tuo nome utente VPN e password . Quindi, fai clic su OK per accedere.
Configurazione della connessione VPN tra due posizioni BMC phoenixNAP
È possibile interconnettere due posizioni BMC tramite VPN. Tale connessione è anche nota come Lan to Lan (L2L) o Site to Site (S2S).
Tale configurazione richiede server BMC Linux in ciascuna posizione. Entrambi i server devono avere un indirizzamento pubblico e privato. Agiscono come server perimetrale SoftEther e uno o più server BMC privati nella stessa rete privata back-end.
In questo esempio, utilizziamo le posizioni di Phoenix e Ashburn. Tuttavia, puoi configurare una connessione VPN tra qualsiasi posizione phoenixNAP BMC.
1. Se inizi da qui, implementa i passaggi 1 tramite 6 &15 fino a 16 dalla prima sezione. Questi sono necessari per impostare la parte Phoenix.
2. Quindi, stabilisci una connessione tramite SSH a SoftEther edge in Ashburn e installa il pacchetto ansible:
- Per Ubuntu:
sudo apt -y install ansible
- Per CentOS:
sudo yum -y install ansible
3. Installa softasap.sa-vpn-softether ruolo ansible da Ansible Galaxy:
sudo ansible-galaxy install softasap.sa-vpn-softether
4. Prendere nota del nome dell'adattatore e della sottorete per la rete privata di back-end utilizzando il comando:
ip address
5. Crea i due file:vpn.yml e create_hub .
Se necessario, modificare:
- Dhcpset inizio e fine intervallo
- SecureNatHostSet Parametri dell'indirizzo IP
- ServerCertRegenerate dominio
Se non sono necessarie modifiche, incolla le righe seguenti nel server SoftEther:
cat <<EOL > vpn.yml
---
- hosts: localhost
vars:
roles:
- {
role: "softasap.sa-vpn-softether",
softether_init_script: "{{ playbook_dir }}/create_hub"
}
EOF
cat <<EOL > create_hub
HubDelete DEFAULT
HubCreate vpn /PASSWORD:""
hub vpn
BridgeCreate vpn /DEVICE:bond0.1100 /TAP:False
SecureNatEnable
NatDisable
DhcpSet /START:10.1.0.200 /END:10.1.0.250 /MASK:255.255.255.0 /EXPIRE:7200 /GW:none /DNS:none /DNS2:none /DOMAIN:none /LOG:yes /PUSHROUTE:none
SecureNatHostSet /MAC:none /IP:10.1.0.253 /MASK:255.255.255.0
ServerCertRegenerate vpn.yourdomain.com
ServerCertGet ./generated/cert.cer
SstpEnable yes
OpenVpnEnable yes /PORTS:1194
OpenVpnMakeConfig ./generated/openvpn_config.zip
UserCreate rauser /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet rauser /PASSWORD:sadigGjyt387
ServerPasswordSet adskfnne44onkdasl
EOF
6. Dopo aver creato il vpn.yml e create_hub file, puoi avviare ansible-playbook. Utilizzare il comando seguente per installare e configurare il server VPN Ashburn SoftEther:
sudo ansible-playbook vpn.yml
A questo punto, hai installato e configurato i server SoftEther in due posizioni (Phoenix e Ashburn).
Ora devi connettere queste posizioni con un tunnel VPN S2S.
8. Modifica l'inizializzazione create_hub script su entrambi i server e creare un nuovo hub virtuale denominato s2s .
HubCreate s2s /PASSWORD:""
hub s2s
9. Crea una password per l'autenticazione VPN s2s.
UserCreate s2s /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet s2s /PASSWORD:bjdbsi9273jygUYGf6
10. Per avviare la connessione VPN da sito a sito, aggiungi le seguenti righe alla posizione principale (in questo esempio è Phoenix).
CascadeCreate s2s /SERVER:131.153.155.210:443 /HUB:s2s /USERNAME:s2s
CascadePasswordSet s2s /PASSWORD: bjdbsi9273jygUYGf6 /TYPE:standard
CascadeOnline s2s
Questo punta la connessione in cascata all'IP pubblico e all'hub s2s del server SoftEther nella posizione di Ashburn.
11. Per consentire il traffico tra vpn e s2s hub, è necessario aggiungere un router virtuale su entrambi i server SoftEther.
Server Phoenix SoftEther:
- Crea un router virtuale chiamato s2s:
RouterAdd s2s
- Aggiungi un'interfaccia per ogni hub:
RouterIfAdd s2s /HUB:vpn
/IP:10.0.0.254/255.255.255.0
RouterIfAdd s2s /HUB:s2s
/IP:192.168.168.254/255.255.255.0
- Aggiungi un percorso statico per vpn hub nella posizione di Ashburn:
RouterTableAdd s2s /NETWORK:10.1.0.0/255.255.255.0 /GATEWAY:192.168.168.253 /METRIC:1
RouterStart s2s
Server Ashburn SoftEther:
- Creazione di un router virtuale denominato s2s :
RouterAdd s2s
- Aggiungi un'interfaccia per ogni hub:
RouterIfAdd s2s /HUB:vpn
/IP:10.1.0.254/255.255.255.0
RouterIfAdd s2s /HUB:s2s
/IP:192.168.168.253/255.255.255.0
- Aggiungi un percorso statico per vpn hub in posizione Phoenix:
RouterTableAdd s2s /NETWORK:10.0.0.0/255.255.255.0 /GATEWAY:192.168.168.254 /METRIC:1
RouterStart s2s
12. Successivamente è necessario consentire agli utenti collegati a Phoenix di stabilire una connessione ai server in Ashburn e viceversa. Per farlo, aggiungi un percorso statico al client VPN:
Server Phoenix SoftEther:
DhcpSet /START:10.0.0.200 /END:10.0.0.250
/MASK:255.255.255.0 /EXPIRE:7200 /GW:none
/DNS:none /DNS2:none /DOMAIN:none /LOG:yes
/PUSHROUTE:none
DhcpSet /START:10.0.0.200 /END:10.0.0.250
/MASK:255.255.255.0 /EXPIRE:7200 /GW:none
/DNS:none /DNS2:none /DOMAIN:none /LOG:yes
/PUSHROUTE:10.1.0.0/255.255.255.0/10.0.0.254
Server Ashburn SoftEther:
DhcpSet /START:10.1.0.200 /END:10.1.0.250
/MASK:255.255.255.0 /EXPIRE:7200 /GW:none
/DNS:none /DNS2:none /DOMAIN:none /LOG:yes
/PUSHROUTE:none
DhcpSet /START:10.0.0.200 /END:10.0.0.250
/MASK:255.255.255.0 /EXPIRE:7200 /GW:none
/DNS:none /DNS2:none /DOMAIN:none /LOG:yes
/PUSHROUTE:10.0.0.0/255.255.255.0/10.1.0.254
Per riassumere, il Phoenix SoftEther create_hub lo script iniziale dovrebbe essere costituito dal seguente contenuto:
HubDelete DEFAULT
HubCreate vpn /PASSWORD:""
hub vpn
BridgeCreate vpn /DEVICE:bond0.1100 /TAP:False
SecureNatEnable
NatDisable
DhcpSet /START:10.1.0.200 /END:10.1.0.250 /MASK:255.255.255.0 /EXPIRE:7200 /GW:none /DNS:none /DNS2:none /DOMAIN:none /LOG:yes /PUSHROUTE: 10.0.0.0/255.255.255.0/10.1.0.254
SecureNatHostSet /MAC:none /IP:10.1.0.253 /MASK:255.255.255.0
ServerCertRegenerate vpn.yourdomain.com
ServerCertGet ./generated/cert.cer
SstpEnable yes
OpenVpnEnable yes /PORTS:1194
OpenVpnMakeConfig ./generated/openvpn_config.zip
UserCreate rauser /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet rauser /PASSWORD:sadigGjyt387
ServerPasswordSet adskfnne44onkdasl
HubCreate s2s /PASSWORD:""
hub s2s
UserCreate s2s /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet s2s /PASSWORD:bjdbsi9273jygUYGf6
RouterAdd s2s
RouterIfAdd s2s /HUB:vpn /IP:10.1.0.254/255.255.255.0
RouterIfAdd s2s /HUB:s2s /IP:192.168.168.253/255.255.255.0
RouterTableAdd s2s /NETWORK:10.0.0.0/255.255.255.0 /GATEWAY:192.168.168.254 /METRIC:1
RouterStart s2s
Ashburn SoftEther create_hub lo script iniziale dovrebbe essere costituito dal seguente contenuto:
HubDelete DEFAULT
HubCreate vpn /PASSWORD:""
hub vpn
BridgeCreate vpn /DEVICE:bond0.1101 /TAP:False
SecureNatEnable
NatDisable
DhcpSet /START:10.0.0.200 /END:10.0.0.250 /MASK:255.255.255.0 /EXPIRE:7200 /GW:none /DNS:none /DNS2:none /DOMAIN:none /LOG:yes /PUSHROUTE:10.1.0.0/255.255.255.0/10.0.0.254
SecureNatHostSet /MAC:none /IP:10.0.0.253 /MASK:255.255.255.0
ServerCertRegenerate vpn.yourdomain.com
ServerCertGet ./generated/cert.cer
SstpEnable yes
OpenVpnEnable yes /PORTS:1194
OpenVpnMakeConfig ./generated/openvpn_config.zip
UserCreate rauser /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet rauser /PASSWORD:sadigGjyt387
ServerPasswordSet adskfnne44onkdasl
HubCreate s2s /PASSWORD:""
hub s2s
UserCreate s2s /GROUP:none /REALNAME:none /NOTE:none
UserPasswordSet s2s /PASSWORD:bjdbsi9273jygUYGf6
CascadeCreate s2s /SERVER:131.153.155.210:443 /HUB:s2s /USERNAME:s2s
CascadePasswordSet s2s /PASSWORD:bjdbsi9273jygUYGf6 /TYPE:standard
CascadeOnline s2s
RouterAdd s2s
RouterIfAdd s2s /HUB:vpn /IP:10.0.0.254/255.255.255.0
RouterIfAdd s2s /HUB:s2s /IP:192.168.168.254/255.255.255.0
RouterTableAdd s2s /NETWORK:10.1.0.0/255.255.255.0 /GATEWAY:192.168.168.253 /METRIC:1
RouterStart s2s
14. Una volta che gli script di inizializzazione sono pronti, riconfigurare entrambi i server SoftEther VPN:
/opt/vpnserver/vpncmd localhost /SERVER /IN:create_hub
15. Aggiungi le route statiche ai server utilizzando l'indirizzo privato del server VPN per ottenere la connettività tra le posizioni.
Impostazioni specifiche di CentOS
Se stai utilizzando CentOS server, segui i passaggi descritti per ciascuna posizione del server.
Server BMC lato Phoenix:
- Aggiungi un percorso statico sul server eseguendo:
sudo ip route add 10.1.0.0/24 via 10.0.0.254 dev bond0.1101
- Per rendere persistenti i percorsi, modifica il file di configurazione di rete /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg .
- Aggiungi le informazioni sui percorsi al file:
type: vlan
mtu: 9000
name: bond0.1101
vlan_id: 1101
vlan_link: bond0
subnets:
- address: 10.0.0.12/24
type: static
routes:
- gateway: 10.0.0.254
network: 10.1.0.0/24
Server BMC lato Ashburn:
- Aggiungi un percorso statico sul server eseguendo:
sudo ip route add 10.0.0.0/24 via 10.1.0.254 dev bond0.1100
- Rendi persistenti i percorsi modificando il file di configurazione di rete /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg .
- Aggiungi una sezione di percorsi al file:
- type: vlan
mtu: 9000
name: bond0.1100
vlan_id: 1100
vlan_link: bond0
subnets:
- address: 10.1.0.12/24
type: static
routes:
- gateway: 10.1.0.254
network: 10.0.0.0/24
Impostazioni specifiche di Ubuntu
Se stai utilizzando Ubuntu server, segui i passaggi descritti per ciascuna posizione.
Server BMC lato Phoenix:
- Aggiungi un percorso statico sul server eseguendo:
sudo ip route add 10.1.0.0/24 via 10.0.0.254 dev bond0.1101
- Per rendere persistenti i percorsi, modifica il file di configurazione di rete /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg .
- Aggiungi le seguenti informazioni al file:
bond0.1101:
addresses:
- 10.0.0.12/24
id: 1101
link: bond0
mtu: 9000
routes:
- to: 10.1.0.0/24
via: 10.0.0.254
Server BMC lato Ashburn:
- Aggiungi un percorso statico sul server eseguendo:
sudo ip route add 10.0.0.0/24 via 10.1.0.254 dev bond0.1100
- Rendi persistenti i percorsi modificando il file di configurazione di rete /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg .
- Aggiungi una sezione di percorsi al file:
bond0.1100:
addresses:
- 10.1.0.12/24
id: 1100
link: bond0
mtu: 9000
routes:
- to: 10.0.0.0/24
via: 10.1.0.254
Configurazione di IPSec VPN tra phoenixNAP BMC e apparecchiature locali
Per illustrare il terzo scenario, utilizziamo la nostra topologia esistente. Avere due sedi BMC non è obbligatorio. La connettività a un data center, a un ufficio oa un sito remoto in locale rientra in questo esempio. Se questo è il tuo unico caso d'uso richiesto, questa sezione è indipendente.
Come endpoint locale, utilizziamo la configurazione Cisco ASA per creare una VPN IPsec da sito a sito. Inoltre, utilizziamo il lato server strongSwan per stabilire questo tunnel. Il traffico descritto può fluire dai client di accesso remoto a entrambi i nodi BMC, nonché da un ufficio remoto a entrambi i nodi BMC. La connessione del client di accesso remoto tramite BMC al sito/ufficio remoto non è descritta.
1. SSH sull'edge server e installa il pacchetto strongSwan:
- Per Ubuntu:
sudo apt -y install strongswan
- Per CentOS:
sudo yum -y install strongswan
A seconda della distribuzione, i file di configurazione si troveranno in percorsi diversi.
- Su Ubuntu puoi trovarlo in:/etc/ipsec.*
- Su CentOS, il file di configurazione si trova in:/etc/strongswan/ipsec.*
2. Modificare il file di configurazione IPsec sull'edge server nella posizione di Phoenix:
#####Mandatory part of configuration setup#####
config setup
# strictcrlpolicy - Defines if a fresh CRL must be available in order for the peer authentication based on RSA signatures to succeed.
strictcrlpolicy=no
# uniqueids - Defines whether a particular participant ID must be kept unique, with any new IKE_SA using an ID deemed to replace all old ones using that ID.
uniqueids = yes
# charondebug - Defines how much charon debugging output must be logged.
charondebug = "all"
conn vpn-to-asa
#####Per VPN configuration settings#####
# conn <name> - Defines a connection.
authby=secret
# authby - Defines how the peers must authenticate; acceptable values are secret or psk, pubkey, rsasig, ecdsasig.
left=%defaultroute
# left - Defines the IP address of the strongSwan's interface paricipating in the tunnel.
leftid=131.153.142.202
# leftid - Defines the identity payload for the strongSwan.
leftsubnet=10.0.0.0/24
# leftsubnet - Defines the private subnet behind the strongSwan, expressed as network/netmask.
right=185.28.188.0
# right - Defines the public IP address of the VPN peer.
rightid=192.168.0.254
# rightid - Defines the identity payload for the VPN peer.
rightsubnet=192.168.1.0/24
# rightsubnet - Defines the private subnet behind the VPN peer, expressed as network/netmask.
ike=aes256-sha1-modp1536
# ike - Defines the IKE/ISAKMP SA encryption/authentication algorithms. You can add a comma-separated list.
esp=aes256-sha1
# esp - Defines the ESP encryption/authentication algorithms. You can add a comma-separated list
keyingtries=%forever
# keyingtries - Defines the number of attempts that must be made to negotiate a connection.
leftauth=psk
rightauth=psk
keyexchange=ikev1
ikelifetime=1h
# ikelifetime - Defines the duration of an established phase-1 connection.
lifetime=8h
dpddelay=30
# dpddelay - Defines the time interval with which R_U_THERE messages/INFORMATIONAL exchanges are sent to the peer.
dpdtimeout=120
# dpdtimeout - Defines the timeout interval, after which all connections to a peer are deleted in case of inactivity.
dpdaction=restart
# dpdaction - Defines what action needs to be performed on DPD timeout. Takes three values as paramters : clear, hold, and restart.
auto=start
# auto - Defines what operation, if any, must be done automatically at IPsec startup (start loads a connection and brings it up immediately).
3. La chiave precondivisa IPSec è archiviata in un file separato:/etc/strongswan/ipsec.secrets
131.153.142.202 185.28.188.0 : PSK "ksdbk78823kdcs92kwehsfkphx"
4. Crea file di configurazione strongSwan (ipsec.conf e ipsec.secrets ) dopo aver modificato i parametri necessari. È possibile utilizzare la seguente configurazione sul server perimetrale Phoenix:
sudo cat <<EOF > /etc/strongswan/ipsec.conf
# mandatory configuration
config setup
strictcrlpolicy=no
uniqueids = yes
charondebug = "all"
# VPN to Cisco ASA
conn vpn-to-asa
authby=secret
left=%defaultroute
leftid=131.153.142.202
leftsubnet=10.0.0.0/24
right=185.28.188.0
rightid=192.168.0.254
rightsubnet=192.168.1.0/24
ike=aes256-sha1-modp1536
esp=aes256-sha1
keyingtries=%forever
leftauth=psk
rightauth=psk
keyexchange=ikev1
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
auto=start
EOF
sudo cat <<EOT > /etc/strongswan/ipsec.secrets
131.153.142.202 185.28.188.0 : PSK "ksdbk78823kdcs92kwehsfkphx"
EOT
5. Per evitare possibili problemi con SELinux, eseguire il comando successivo sul server perimetrale CentOS:
sudo /sbin/restorecon -R -v /etc/strongswan/ipsec.conf
sudo setsebool -P daemons_use_tty 1
6. Avvia il servizio strongSwan a Phoenix:
sudo systemctl enable --now strongswan
7. Una procedura simile dovrebbe essere eseguita nella posizione di Ashburn. In questo esempio il sistema operativo del server perimetrale in Ashburn è Ubuntu (non obbligatorio). I file di configurazione si troveranno su un percorso diverso. Dopo aver modificato i parametri necessari, incolla le righe successive sul server perimetrale nella posizione di Ashburn:
sudo cat <<EOF > /etc/ipsec.conf
# mandatory configuration
config setup
strictcrlpolicy=no
uniqueids = yes
charondebug = "all"
# VPN to Cisco ASA
conn vpn-to-asa
authby=secret
left=%defaultroute
leftid=131.153.155.210
leftsubnet=10.1.0.0/24
right=185.28.188.0
rightid=192.168.0.254
rightsubnet=192.168.1.0/24
ike=aes256-sha1-modp1536
esp=aes256-sha1
keyingtries=%forever
leftauth=psk
rightauth=psk
keyexchange=ikev1
ikelifetime=1h
lifetime=8h
dpddelay=30
dpdtimeout=120
dpdaction=restart
auto=start
EOF
sudo cat <<EOT > /etc/ipsec.secrets
131.153.155.210 185.28.188.0 : PSK "ksdbk78823kdcs92kwehsfkash"
EOT
8. Avvia il servizio strongSwan su Ashburn:
sudo systemctl enable --now strongswan
9. Aggiungi percorsi statici sui server perimetrali per consentire la comunicazione con il data center, l'ufficio o il sito remoto in locale:
Percorsi statici specifici di CentOS
La seguente configurazione si applica a CentOS server.
Server BMC lato Phoenix:
- Aggiungi route statica sul server eseguendo:
sudo ip route add 192.168.1.0/24 via 10.0.0.11 dev bond0.1101
- Per rendere persistenti i percorsi, modifica il file di configurazione di rete /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg .
- Aggiungi le seguenti informazioni al file:
type: vlan
mtu: 9000
name: bond0.1101
vlan_id: 1101
vlan_link: bond0
subnets:
- address: 10.0.0.12/24
type: static
routes:
- gateway: 10.0.0.11
network: 192.168.1.0/24
Server BMC lato Ashburn:
- Aggiungi route statica sul server eseguendo:
sudo ip route add 192.168.1.0/24 via 10.1.0.11 dev bond0.1100
- Rendi persistenti i percorsi modificando il file di configurazione di rete /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg .
- Aggiungi una sezione di percorsi al file:
type: vlan
mtu: 9000
name: bond0.1100
vlan_id: 1100
vlan_link: bond0
subnets:
- address: 10.1.0.12/24
type: static
routes:
- gateway: 10.1.0.11
network: 192.168.1.0/24
Percorsi statici specifici di Ubuntu
Usa la seguente configurazione su Ubuntu server.
Phoenix side BMC servers:
- Add static route on server by running:
sudo ip route add 192.168.1.0/24 via 10.0.0.11 dev bond0.1101
- To make the routes persistent, edit the network configuration file /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg .
- Add the following information to the file:
bond0.1101:
addresses:
- 10.0.0.12/24
id: 1101
link: bond0
mtu: 9000
routes:
- to: 192.168.1.0/24
via: 10.0.0.11
Ashburn side BMC servers:
- Add static route on server by running:
sudo ip route add 192.168.1.0/24 via 10.1.0.11 dev bond0.1100
- Make the routes persistent by editing the network configuration file /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg .
- Add a routes section to the file:
bond0.1100:
addresses:
- 10.1.0.12/24
id: 1100
link: bond0
mtu: 9000
routes:
- to: 192.168.1.0/24
via: 10.1.0.11
10. The following step includes an on-premises Cisco ASA firewall IPSsec configuration. Your actual configuration may vary.
name 131.153.142.202 PHX-VPN-PEER
name 131.153.155.210 ASH-VPN-PEER
object-group network PHX-VPN-REMOTE
network-object 10.0.0.0 255.255.255.0
object-group network ASH-VPN-REMOTE
network-object 10.1.0.0 255.255.255.0
object-group network PHX-VPN-LOCAL
network-object 192.168.1.0 255.255.255.0
object-group network ASH-VPN-LOCAL
network-object 192.168.1.0 255.255.255.0
!
access-list PHXl2l_acl extended permit ip object-group PHX-VPN-LOCAL object-group PHX-VPN-REMOTE
access-list ASHl2l_acl extended permit ip object-group ASH-VPN-LOCAL object-group ASH-VPN-REMOTE
nat (inside,outside) source static PHX-VPN-LOCAL PHX-VPN-LOCAL destination static PHX-VPN-REMOTE PHX-VPN-REMOTE no-proxy-arp
nat (inside,outside) source static ASH-VPN-LOCAL ASH-VPN-LOCAL destination static ASH-VPN-REMOTE ASH-VPN-REMOTE no-proxy-arp
!
crypto ikev1 policy 10
authentication pre-share
encryption aes-256
hash sha
group 5
lifetime 3600
!
crypto ipsec ikev1 transform-set ESP-AES-256-SHA esp-aes-256 esp-sha-hmac
crypto map outside_map 10 match address PHXl2l_acl
crypto map outside_map 10 set peer PHX-VPN-PEER
crypto map outside_map 10 set ikev1 transform-set ESP-AES-256-SHA
crypto map outside_map 10 set security-association lifetime seconds 28800
crypto map outside_map 20 match address ASHl2l_acl
crypto map outside_map 20 set peer ASH-VPN-PEER
crypto map outside_map 20 set ikev1 transform-set ESP-AES-256-SHA
crypto map outside_map 20 set security-association lifetime seconds 28800
crypto map outside_map interface outside
crypto ikev1 enable outside
!
tunnel-group 131.153.142.202 type ipsec-l2l
tunnel-group 131.153.142.202 ipsec-attributes
ikev1 pre-shared-key ksdbk78823kdcs92kwehsfkphx
tunnel-group 131.153.155.210 type ipsec-l2l
tunnel-group 131.153.155.210 ipsec-attributes
ikev1 pre-shared-key ksdbk78823kdcs92kwehsfkahs