Protokol tunelování vrstvy 2 (L2TP) s IPsec se používá k zajištění šifrování typu end-to-end, protože L2TP nepodporuje funkce zabezpečení. Nástroj OpenSwan se používá k vytvoření tunelu IPsec, který bude zkompilován na distribuci Ubuntu. Funkce zabezpečení ověřování je implementována pomocí serveru FreeRadius. Účelem autentizačního serveru je autentizovat uživatele L2TP VPN. Klienti Android a Windows podporují L2TP/IPsec PSK s CHAPv2, proto bude mezi smartphonem a serverem vytvořen bezpečný kanál.
Požadované balíčky
Následující balíčky budou nainstalovány pomocí openswan-l2tp-installation.sh skript.
Nástroje
- Freeradius Server/Client (instalace zdrojové báze)
- xl2tpd
- Poptop Server
- Server MySQL/klient
- OpenSwan (instalace zdrojové báze)
Vývojové balíčky
- Bison
- Flex
- Knihovna GMP
Obsah skriptu je zobrazen na následujícím snímku.
#!/bin/bash
##NOTE: Adding a proper date in lastaccounting filed to fix the invalid default value issue in /etc/freeradius/sql/mysql/cui.sql.
##-installation of tools-##
apt-get update
apt-get install -y mysql-server mysql-client freeradius-mysql pptpd xl2tpd build-essential libgmp3-dev bison flex
echo "Installing freeradius client --"
wget https://github.com/FreeRADIUS/freeradius-client/archive/master.zip
unzip master.zip
cd freeradius-client-master
./configure --prefix=/
make
make install
echo "Installation of OpenSwan "
wget https://download.openswan.org/openswan/openswan-latest.tar.gz
tar -xvzf openswan-latest.tar.gz
cd openswan-*
make programs
make install
echo " OpenSwan installed"
Zadejte heslo "test" pro uživatele root serveru MySql.
Konfigurace
Další skript „openswan-l2tp-configuration.sh " se používá ke konfiguraci předávání paketů na Ubuntu, pravidel iptables pro podsíť xl2tpd, nastavení serveru/klienta FreeRadius pro autentizační mechanismy a tunelu IPsec OpenSwan. Níže je zobrazeno několik snímků konfiguračního skriptu.
1. nastavení iptables &sysctl
2. Nastavení serveru FreeRadius pomocí mysql
3. Nastavení klienta FreeRadius
4. Konfigurace pro služby pptpd a xl2tpd
5. Konfigurace OpenSwan VPN
Před spuštěním konfiguračního skriptu je nutná jedna změna v cui.sql soubor, který existuje pod /etc/freeradius/sql/mysql/ . Změňte zvýrazněný následující řádek v určeném souboru SQL.
`lastaccounting` timestamp NOT NULL default '0000-00-00 00:00:00',
`lastaccounting` timestamp NOT NULL default '2016-10-01 00:00:00',
Spusťte konfigurační skript pro automatické nastavení nainstalovaných balíčků.
Vložte uživatelské jméno/heslo do FreeRadius databáze pro Android/Windows L2TP klienta pomocí následujícího příkazu.
INSERT INTO radius.radcheck (username, attribute, op, value) VALUES ('test','User-Password',':=','test123');
Spusťte FreeRadius server pomocí následujícího příkazu a také restartujte všechny požadované služby.
freeradius -X
Spuštěním následujícího příkazu na localhost otestujte konfiguraci serveru FreeRadius.
radtest test test123 localhost 0 testing123
/etc/init.d/xl2tpd restart
/etc/init.d/ipsec restart
Zdá se, že všechny požadované služby jsou správně nakonfigurovány a běží. Nyní nakonfigurujte L2TP/IPsec PSK VPN na klientech Windows a Android.
Konfigurace klienta MS Windows 8
Klikněte na "nastavení nového připojení nebo sítě" v "Centru sítí a sdílení".
vyberte možnost „Připojit k pracovišti“, jak je znázorněno na následujícím snímku.
Jak je ukázáno níže. v dalším okně vyberte možnost „použít můj internet (VPN)“.
Zadejte název a internetovou adresu (IP adresu stroje) na připojení VPN a klikněte na tlačítko „vytvořit“.
Vytvoří se nové připojení VPN a zobrazí se v seznamu sítí, jak je uvedeno níže.
Výchozí vlastnosti nového připojení VPN nebudou fungovat s aktuální konfigurací serveru FreeRadius. Proto je potřeba jen málo změn v nastavení zabezpečení MS Windows VPN klienta.
Nejprve změňte typ VPN (tunelovací protokol vrstvy 2 přes IPsec).
Klikněte na "Pokročilé nastavení" a vyberte možnost "použít předsdílený klíč pro ověření".
Vyberte možnost "Microsoft CHAP verze 2" v nastavení "Povolit tyto protokoly".
Po konfiguraci připojení L2TP/IPsec VPN zadejte uživatelské jméno/heslo (test/test123), jak je uvedeno níže.
L2TP/IPsec VPN je úspěšně připojena k serveru a IP adrese je přiřazena adresa, jak je uvedeno níže.
Následující snímek ukazuje stav připojení L2TP/IPsec VPN.
Konfigurace L2TP/IPsec v systému Android
Chcete-li klienta Android L2TP připojit k serveru, vytvořte na něm připojení L2TP/IPsec. Klikněte na „nastavení " . ." „Další „ a „VPN “. Nyní „Přidat síť VPN “ a vyberte „L2TP PSK " pro požadované připojení VPN.
Jednou se vytvoří nové připojení L2TP/IPsec VPN. Nyní klikněte na název připojení VPN a zadejte již vytvořené uživatelské jméno/heslo na serveru FreeRadius.
Klient L2TP/IPsec je připojen k serveru, jak je znázorněno níže.
Stav FreeRadius
Následující snímek ukazuje úspěšné ověření uživatele a typ ověření je CHAP.
Stav tunelu
Jak je uvedeno níže, příkaz xfrm state udává stav tunelu OpenSwan.
ip xfrm state
Dalším příkazem, který je k dispozici v nástroji OpenSwan, je "ipsec look", který poskytuje kombinaci informací o stavu xfrm, jakémkoli pravidlu iptables a směrování.
ipsec look
1. výstup stavu xfrm v příkazu ipsec
2. výstup zásad xfrm v příkazu ipsec
3. Nastavení směrování a iptables v příkazu ipsec
Následující příkaz poskytuje automatický stav tunelu, jak je znázorněno níže.
ipsec auto --status
Závěr
V tomto tutoriálu je vytvořen tunel na vrstvě 2 pomocí L2TP s OpenSwan pro zabezpečení komunikace mezi klientem a serverem. Mechanismus ověřování CHAPv2 se používá mezi klientem a serverem pomocí služeb FreeRadius. K demonstraci spojení klientů se serverem se používají klienti L2TP se systémem Android i Windows.