Serwer OpenConnect, znany również jako ocserv, to serwer VPN komunikujący się przez SSL. Z założenia jego celem jest stanie się bezpiecznym, lekkim i szybkim serwerem VPN. Serwer OpenConnect korzysta z protokołu OpenConnect SSL VPN. W chwili pisania tego artykułu ma także eksperymentalną zgodność z klientami korzystającymi z protokołu AnyConnect SSL VPN.
W tym artykule dowiesz się, jak zainstalować i skonfigurować ocserv na Ubuntu 14.04 x64.
Instalowanie ocserv
Ponieważ Ubuntu 14.04 nie jest dostarczany z ocserv, będziemy musieli pobrać kod źródłowy i go skompilować. Najnowsza stabilna wersja ocserv to 0.9.2.
Pobierz ocserv z oficjalnej strony.
wget ftp://ftp.infradead.org/pub/ocserv/ocserv-0.9.2.tar.xz
tar -xf ocserv-0.9.2.tar.xz
cd ocserv-0.9.2
Następnie zainstaluj zależności kompilacji.
apt-get install build-essential pkg-config libgnutls28-dev libwrap0-dev libpam0g-dev libseccomp-dev libreadline-dev libnl-route-3-dev
Skompiluj i zainstaluj ocserv.
./configure
make
make install
Konfigurowanie ocserv
Przykładowy plik konfiguracyjny znajduje się w katalogu ocser-0.9.2/doc. Użyjemy tego pliku jako szablonu. Najpierw musimy stworzyć własny certyfikat CA i certyfikat serwera.
cd ~
apt-get install gnutls-bin
mkdir certificates
cd certificates
Tworzymy plik szablonu CA ( ca.tmpl) o treści podobnej do poniższej. Możesz ustawić własne „cn” i „organizację”.
cn = "VPN CA"
organization = "Big Corp"
serial = 1
expiration_days = 3650
ca
signing_key
cert_signing_key
crl_signing_key
Następnie wygeneruj klucz CA i certyfikat CA.
certtool --generate-privkey --outfile ca-key.pem
certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
Następnie utwórz plik szablonu certyfikatu serwera lokalnego ( server.tmpl) o treści poniżej. Proszę zwrócić uwagę na pole „cn”, musi ono odpowiadać nazwie DNS lub adresowi IP twojego serwera.
cn = "you domain name or ip"
organization = "MyCompany"
expiration_days = 3650
signing_key
encryption_key
tls_www_server
Następnie wygeneruj klucz serwera i certyfikat.
certtool --generate-privkey --outfile server-key.pem
certtool --generate-certificate --load-privkey server-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template server.tmpl --outfile server-cert.pem
Skopiuj plik klucza, certyfikatu i konfiguracji do katalogu konfiguracji ocserv.
mkdir /etc/ocserv
cp server-cert.pem server-key.pem /etc/ocserv
cd ~/ocserv-0.9.2/doc
cp sample.config /etc/ocserv/config
cd /etc/ocserv
Edytuj plik konfiguracyjny pod /etc/ocserv. Odkomentuj lub zmodyfikuj pola opisane poniżej.
auth = "plain[/etc/ocserv/ocpasswd]"
try-mtu-discovery = true
server-cert = /etc/ocserv/server-cert.pem
server-key = /etc/ocserv/server-key.pem
dns = 8.8.8.8
# comment out all route fields
#route = 10.10.10.0/255.255.255.0
#route = 192.168.0.0/255.255.0.0
#route = fef4:db8:1000:1001::/64
#no-route = 192.168.5.0/255.255.255.0
cisco-client-compat = true
Wygeneruj użytkownika, który będzie używany do logowania do ocserv.
ocpasswd -c /etc/ocserv/ocpasswd username
Włącz NAT.
iptables -t nat -A POSTROUTING -j MASQUERADE
Włącz przekazywanie IPv4. Edytuj plik /etc/sysctl.conf.
net.ipv4.ip_forward=1
Zastosuj tę modyfikację.
sysctl -p /etc/sysctl.conf
Uruchom ocserv i połącz za pomocą Cisco AnyConnect
Najpierw uruchom ocserv.
ocserv -c /etc/ocserv/config
Następnie zainstaluj Cisco AnyConnect na dowolnym urządzeniu, takim jak iPhone, iPad lub urządzenie z Androidem. Ponieważ użyliśmy samopodpisanego klucza i certyfikatu serwera, musimy odznaczyć opcję, która zapobiega niebezpiecznym serwerom. Ta opcja znajduje się w ustawieniach AnyConnect. W tym momencie możemy skonfigurować nowe połączenie z nazwą domeny lub adresem IP naszej usługi i utworzoną przez nas nazwą użytkownika / hasłem.
Połącz się i ciesz się!