O servidor OpenConnect, também conhecido como ocserv, é um servidor VPN que se comunica por SSL. Por padrão, seu objetivo é se tornar um servidor VPN seguro, leve e rápido. O servidor OpenConnect usa o protocolo VPN VPN OpenConnect. No momento da redação deste artigo, ele também possui compatibilidade experimental com clientes que usam o protocolo VPN AnyConnect SSL.
Este artigo mostra como instalar e configurar o ocserv no Ubuntu 14.04 x64.
Instalando o ocserv
Como o Ubuntu 14.04 não é fornecido com o ocserv, teremos que baixar o código fonte e compilá-lo. A versão estável mais recente do ocserv é 0.9.2.
Faça o download do ocserv no site oficial.
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
Em seguida, instale as dependências de compilação.
apt-get install build-essential pkg-config libgnutls28-dev libwrap0-dev libpam0g-dev libseccomp-dev libreadline-dev libnl-route-3-dev
Compile e instale o ocserv.
./configure
make
make install
Configurando o ocserv
Um arquivo de configuração de amostra é colocado sob o diretório ocser-0.9.2/doc. Usaremos esse arquivo como modelo. Inicialmente, precisamos criar nosso próprio certificado de CA e certificado de servidor.
cd ~
apt-get install gnutls-bin
mkdir certificates
cd certificates
Criamos um arquivo de modelo de CA ( ca.tmpl) com o conteúdo semelhante ao seguinte. Você pode definir seu próprio "cn" e "organização".
cn = "VPN CA"
organization = "Big Corp"
serial = 1
expiration_days = 3650
ca
signing_key
cert_signing_key
crl_signing_key
Em seguida, gere uma chave CA e um certificado CA.
certtool --generate-privkey --outfile ca-key.pem
certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
Em seguida, crie um arquivo de modelo de certificado do servidor local ( server.tmpl) com o conteúdo abaixo. Por favor, preste atenção ao campo "cn", ele deve corresponder ao nome DNS ou endereço IP do seu servidor.
cn = "you domain name or ip"
organization = "MyCompany"
expiration_days = 3650
signing_key
encryption_key
tls_www_server
Em seguida, gere a chave e o certificado do servidor.
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
Copie a chave, o certificado e o arquivo de configuração para o diretório de configuração do 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
Edite o arquivo de configuração em /etc/ocserv. Remova o comentário ou modifique os campos descritos abaixo.
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
Gere um usuário que será usado para efetuar login no ocserv.
ocpasswd -c /etc/ocserv/ocpasswd username
Habilite o NAT.
iptables -t nat -A POSTROUTING -j MASQUERADE
Ative o encaminhamento de IPv4. Edite o arquivo /etc/sysctl.conf.
net.ipv4.ip_forward=1
Aplique esta modificação.
sysctl -p /etc/sysctl.conf
Comece o ocserv e conecte-se usando o Cisco AnyConnect
Primeiro, inicie o ocserv.
ocserv -c /etc/ocserv/config
Em seguida, instale o Cisco AnyConnect em qualquer um dos seus dispositivos, como iPhone, iPad ou dispositivo Android. Como usamos uma chave e certificado de servidor autoassinado, temos que desmarcar a opção que evita servidores inseguros. Esta opção está localizada nas configurações do AnyConnect. Nesse ponto, podemos configurar uma nova conexão com o nome de domínio ou endereço IP do nosso ocserv e o nome de usuário / senha que criamos.
Conecte-se e divirta-se!