V minulých kurzech jsme přidali jednorázová hesla do OpenVPN a vytvořili server WiKID pomocí Packer. V tomto tutoriálu vytvoříme kombinovaný server OpenVPN/WiKID pomocí Packer. Packer nám umožňuje vytvářet obrazy VMware, VirtualBox, EC2, GCE, Docker atd. pomocí kódu. Všimněte si, že kombinace vašeho dvoufaktorového ověřovacího serveru a VPN serveru v jednom boxu pro vás může, ale nemusí být tím nejlepším řešením. Obvykle máme rádi oddělení povinností kvůli bezpečnosti a flexibilitě. Pokud však potřebujete něco rychlého - auditoři PCI dorazí v pondělí - nebo jste v represivním stavu a potřebujete pouze na krátkou dobu zabezpečené odchozí připojení. A stále máte určitou flexibilitu. Na server WiKID můžete přidat další služby. Server OpenVPN můžete zakázat a místo toho přepnout na jinou VPN.
Sestavení kombinovaného serveru
Nejprve si stáhněte a nainstalujte Packer.
Podívejte se na naše skripty Packer z GitHubu. Skripty se skládají z hlavního souboru JSON, který říká Packerovi, co má dělat, adresáře http se skripty pro sestavení Anaconda, adresáře souborů, který se nahraje do obrazu, a provizorů, které se spouštějí po sestavení obrazu. Packer v zásadě začíná s nějakým zdrojem, jako je ISO nebo AMI, sestavuje server založený na Anacondě (alespoň pro CentOS), nahrává jakékoli soubory a poté spouští provizory. Packer je primárně zaměřen na vytváření idempotentních serverů. V našem případě jej používáme ke spouštění příkazů, což nám umožňuje spustit jeden příkaz namísto přibližně 50 (jen pro zajišťování).
Před stavbou je potřeba upravit několik souborů. Nejprve upravte /files/vars . Toto je standardní soubor vars pro vytváření certifikátů OpenVPN. Stačí zadat hodnoty do polí certifikátu.
# These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY="US" export KEY_PROVINCE="GA" export KEY_CITY="Atlanta" export KEY_ORG="WiKID Systems Inc" export KEY_EMAIL="[email protected]" export KEY_OU="WiKID Systems, Inc"
Dále musíte upravit sdílený tajný klíč v /files/server . Tento soubor sdělí PAM, který server RADIUS má použít. V tomto případě mluví přímo se serverem WiKID. Sdílený tajný klíč se používá ke kódování rádiového provozu. Protože WiKID běží na stejném serveru, ponechte localhost jako server:
# server[:port] shared_secret timeout (s) 127.0.0.1 secret 3
Toto sdílené tajemství budete potřebovat později.
Podívejte se do centos-6-x86-64.json . Můžete jej spustit tak, jak je, ale možná budete chtít upravit pár věcí. Měli byste potvrdit source_ami (uvedený ami je v USA-východ) nebo jej přepnout na jeden z preferovaných CentOS AMI. Pokud stavíte na VMware nebo VirtualBox, budete chtít změnit iso_url na umístění CentOS ISO na vašem pevném disku a aktualizovat MD5Sum. Možná budete chtít upravit názvy a popisy. Můžete také chtít změnit oblast EC2. Nejdůležitější je, že můžete změnit ssh_password, což je heslo uživatele root.
Jakmile budete se souborem JSON spokojeni, můžete jej ověřit pomocí Packer:
$packer_location/packer verify centos-6-x86-64.json
Pokud to funguje, postavte to. Cílovou platformu můžete zadat na příkazovém řádku:
$packer_location/packer build --only=virtualbox-iso centos-6-x86-64.json
Pokud vytváříte pro EC2, vložte požadované přihlašovací údaje do příkazového řádku:
$packer_location/packer build -var 'aws_access_key=XXXXXXXXXXXXXXXXXXXX' -var 'aws_secret_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' --only=amazon-ebs centos66.json
Pokud sledujete spouštění příkazů, uvidíte, že se buduje kompletní server OpenVPN s novými certifikáty!
Konfigurace serveru dvoufaktorové autentizace WiKID
Jakmile je vytvořen, budete muset spustit AMI nebo importovat virtuální počítač. Spusťte VirtBox a vyberte Soubor, Importovat zařízení. Nasměrujte jej do adresáře output-virtualbox-iso vytvořeného příkazem build a otevřete soubor OVF. Proveďte libovolné změny na virtuálním počítači (např. paměť nebo síť) a spusťte server.
Přihlaste se pomocí root/wikid nebo pomocí čehokoli, co jste možná nastavili jako root heslo jako v souboru JSON. Server WiKID budeme konfigurovat pomocí možnosti konfigurace rychlého startu. Zkopírujte soubor do aktuálního adresáře:
cp /opt/WiKID/conf/sample-quick-setup.properties wikid.conf
Upravte wikid.conf podle těchto pokynů. Jako kód domény použijte externí IP adresu vašeho serveru nebo instance EC2. Takže z 54.163.165.73 se stane 054163165073. Pro hostitele RADIUS použijte localhost a sdílený tajný klíč, který jste vytvořili v /files/server výše:
information for setting up a RADIUS host radiushostip=127.0.0.1 radiushostsecret=secret ; *NOTE*: YOU SHOULD REMOVE THIS SETTING AFTER CONFIGURATION FOR SECURITY
Pokud jste na virtuálním počítači, můžete nakonfigurovat síť spuštěním:
wikidctl setup
Na EC2 stačí nakonfigurovat server WiKID:
wikidctl quick-setup configfile=wikid.conf
Uvidíte procházet informace o konfiguraci. Spusťte server WiKID:
wikidctl start
Budete vyzváni k zadání přístupové fráze, kterou jste nastavili na wikid.conf. Přejděte do rozhraní WIKIDAdmin na adrese https://yourserver.com/WiKIDAdmin/ a měli byste vidět vytvořenou doménu, nakonfigurovaného klienta sítě Radius a dokončené všechny požadované certifikáty.
Před opuštěním serveru byste měli přidat své uživatelské jméno jako účet na serveru s 'useradd $username'. Není třeba přidávat heslo.
Zaregistrujte si softwarový token WiKID
Stáhněte si softwarový token WiKID nebo si jej nainstalujte pro iOS nebo market://search?q=pname:com.wikidsystems.android pro Android z obchodů s aplikacemi.
Spusťte token a vyberte „Přidat doménu“. Zadejte identifikační kód domény, který jste nastavili na wikid.conf, a měli byste být dvakrát vyzváni k nastavení PIN. Udělejte tak a dostanete zpět registrační kód. Přejděte do webového uživatelského rozhraní WiKIDAdmin a klikněte na kartu Uživatelé a poté ručně ověřit uživatele. Klikněte na svůj registrační kód a zadejte své uživatelské jméno. Tento proces přidruží token (a klíče, které byly vyměněny) s uživatelem.
Nastavení klienta VPN
Stáhněte si ca.crt do klienta:
scp -i ~/Downloads/wikid.pem [email protected]:/etc/openvpn/ca.crt .
Upravte soubor client.conf OpenVPN. Nastavte vzdálený server jako váš kombinovaný server WiKID/OpenVPN:
# The hostname/IP and port of the server. # You can have multiple remote entries # to load balance between the servers. remote yourserver.com 1194
Zakomentujte řádky certifikátu a klíče. Zbývá pouze CA. Protože k ověření a identifikaci uživatele používáme WiKID, nejsou potřeba.
ca ca.crt #cert client.crt #key client.key
V dolní části souboru řekněte klientovi, aby požádal o heslo:
auth-user-pass
Nyní spusťte klienta OpenVPN:
sudo openvpn client.conf
Budete vyzváni k zadání uživatelského jména a hesla. Vyžádejte si přístupový kód ze svého tokenu WiKID a zadejte jej do pole pro heslo. Měly by vám být uděleny přístupy.
Související:
- WiKID – server s dvoufaktorovou autentizací
- OpenVPN
- Balík