Hur man Använder AWS VPN för att Låsa Tillgång till Dina Servrar

0
187
Elaine333/Shutterstock

Om du vill köra en server i ett privat subnät, du kommer att behöva använda en VPN som du vill ansluta till det. AWS-VPN är en managed OpenVPN tjänst som kan hantera detta för dig, och ger dig möjlighet att låsa allmänhetens tillgång till din skyddade instanser.

Klient VPN vs. Site-to-Site VPN

AWS har två olika typer av VPN som finns tillgängliga för dig att använda. Den första, och enklaste, är det Kundens VPN. Detta är en fullt hanterad elastisk VPN-tjänst som bygger på OpenVPN. I kombination med en OpenVPN-aktiverad klientenhet, detta tillåter användare att komma åt din AWS infrastruktur från var som helst som om de var i själva nätverket.

Detta gör att dina anställda att ansluta direkt till servrar i privat subnät, till exempel databas-servrar som du inte vill lämna web-inför. Du kan även välja att blockera SSH på offentliga servrar från någon som inte finns på det lokala subnätet som endast kommer att tillåta administration från användare som är ansluten till VPN.

Detta är ganska bra, och fungerar ganska bra för stora företag arbetsbelastning, men om du har bara ett fåtal människor behöver för att ansluta, eftersom det kan vara ganska dyra. Klient VPN har två avgifter, en fast avgift för varje VPN-i samband med ett subnät, och en avgift per timme för varje klient som är ansluten till den. Den fasta avgiften är $75 per månad, och avgiften per användare är $0,05 per timme. Med måttlig användning från ett fåtal personer, kan du enkelt rack upp över $100 i totala avgifter för VPN-Klient. Och, naturligtvis, du kommer att ådra sig alla de vanliga avgifter för dataöverföring för att flytta data runt i AWS och ut till internet.

Alla VPN-Klient är verkligen lyckades OpenVPN server, som är open source. Om du har lite tid, du kan sätta upp din egen OpenVPN server på en EC2 exempel, som kommer att kosta betydligt mindre. Det är ganska lätt, så om $75 per månad avgift verkar som en hel del till dig, kan du förmodligen köra det på en t2.micro exempel för en bråkdel av priset av VPN-Klient.

Den andra VPN-att AWS erbjuder är en Site-to-Site VPN. Snarare än att ansluta flera avlägsna kunder, Site-to-Site VPN ansluter din AWS VPC direkt på lokaler nätverk via en säker tunnel.

Detta gör det möjligt för dig att flytta på plats applikationer till molnet och anslut dem direkt till din redan existerande nätverk, med samma brandvägg du har på plats, och utan att ändra det sätt din användare åtkomst till dina program. På ett sätt, Site-to-Site VPN helt enkelt säkert sträcker sig till nätverket på lokaler i molnet, så att du kan få tillgång EC2-instanser i den valda VPC som om de fanns på ditt nätverk.

Site-to-Site VPN är mycket elastiskt, och även stöd för redundant failover-anslutningar om den primära förlorar anslutningen av någon anledning. Det är också prissatt lite annorlunda—du debiteras endast $36 per månad, per anslutning, men du kommer att debiteras $0.09 per GB data överförs, på toppen av standard AWS avgifter för dataöverföring.

Att sätta Upp en VPN-Klient

Vi ska visa hur man sätter upp en VPN-Klient här, eftersom det är den mest mångsidiga och användbara för människor utan på lokaler hårdvara.

Innan du sätter igång måste du skapa certifikat för servern och varje kund att använda. Du skulle kunna generera dessa med ACM, men det kräver att inrätta en privat certifikatutfärdare, som kostar $400 per månad. Om du inte känner för att betala kostnaden, du kan generera dem med hjälp av easy-rsa från OpenVPN. Ladda ner och initiera en ny CA:

git clone https://github.com/OpenVPN/easy-rsa.git
cd-easy-rsa/easyrsa3
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa bygga-server-full server nopass

Nu, generera ett certifikat, som ersätter “client1.domän.tld” med klientens namn och

./easyrsa bygga-klient-full client1.domän.tld nopass

Nu måste vi ladda upp certifikaten, ACM så att de är användbara med VPN-Klient. De är alla belägna i pki-mapp, så att cd-borta:

cd-pki

och ladda upp den server cert använder detta ganska otympliga kommando, se till att dina CLI regionen ligger i samma region du skapar en VPN-Klient i:

aws acm import-intyg
–intyg file://utfärdats/server.crt –
–den privata nyckelfil://privat/server.nyckeln
–intyg-kedjan file://ca.crt

Du kan också använda knappen “Importera Certifikat” knappen i ACM, som kommer att få dig att klistra in innehållet i varje fil, men det är lättare att kopiera och klistra in. Importera certifikat på samma sätt:

aws acm import-intyg
–intyg file://utfärdats/client1.domän.tld.crt –
–den privata nyckelfil://privat/client1.domän.tld.nyckeln
–intyg-kedjan file://ca.crt

Nu kan du ställa in VPN-Klient. Från VPC Management Console, klicka på “VPN-Klient Endpoints” under “Nätverk (VPN)” i sidomenyn, och skapa en ny slutpunkt.

Först, du måste ge den en VPN-CIDR-block som inte används av din nuvarande VPC. Du kan hitta din VPC ‘ s block under “Din VPCs” – fliken. Till exempel, om du använder standard block av 172.31.0.0/16, du kan ställa in VPN-Klient för att 172.16.0.0/16, som inte överlappar varandra.

Nästa, klistra in i ARN för din primära server-certifikat (du hittar den här i ACM Console), kryssa i “Använd Ömsesidig Autentisering,” och klistra in i ARN för klientcertifikat. Du kan använda denna klient cert för flera användare, men om du vill ha ett bättre sätt att hantera, kan du i stället använda Active Directory-autentisering med AWS Directory-Tjänsten.

Det är allt som krävs, så gå vidare och klicka på skapa. Du kommer att faktureras så snart som det är skapat.

Du kommer att associera denna VPN med en viss VPC och subnät. Från “Association” – fliken, klicka på “Koppla” och sedan välja VPC och subnät som du vill använda.

Om du använder standardinställningarna, kommer du att ha en VPC tillgängliga och flera undernät för varje tillgänglighet zon. Välj tillgänglighet zon subnet du för närvarande använder.

Under “Tillstånd”, kommer du vill lägga till en ip regel som gör det möjligt tillgång till det subnät som du associerat VPN med. Detta kan vara en mer specifik CIDR-block eller hela subnätet. Om du använder AD, kan du också begränsa åtkomsten till en viss grupp.

Från VPC konsolen, klicka på “Download Client-Konfigurationen.” Detta kommer att ladda ner en .ovpn fil som du kan använda i alla OpenVPN klient för att ansluta till VPN. Men, den här filen kommer från AWS med server CA-certifikat, så du behöver för att öppna upp den och klistra in i /utfärdats/client1.domän.tld.crt-cert i en <cert /> blockera och /privat/client1.domän.tld.nyckeln nyckelfil i en <key /> blockera. Ditt .ovpn filen kommer att se ut ungefär som följande:

kunden
dev tun
proto udp
remote asdfa.cvpn-endpoint-0dbc42be17e0f2c68.prod.clientvpn.us-east-1.amazonaws.com 443
remote-random-hostname
resolv-oändliga försök igen
nobind
persist-key
persist-tun
remote-cert-tls-server
chiffer AES-256-GCM
verb 3
<ca>
—–BEGIN CERTIFICATE—–

CA-NYCKEL

—–END CERTIFIKAT—–

</ca ->

<cert>
—–BEGIN CERTIFICATE—–

KUNDEN CRT-FIL

—–END CERTIFIKAT—–
</cert>
<key>
—–BÖRJA PRIVATA NYCKEL—–

KLIENTEN VIKTIG FIL

—–SLUT PRIVAT NYCKEL—–
</key>

reneg-sek 0

Du kommer också vill lägga till en slumpmässig sträng till “remote cvpn-slutpunkt-xxxxxx” – rad, så här:

avlägsna asdfa.cvpn-slutpunkt-xxxxxx….