Sie sind auf Seite 1von 34

2 / 34 www.4linux.com.

br
Linux Network Servers
OpenVPN
3 / 34 www.4linux.com.br
CONCE!O "E
VPN
4 / 34 www.4linux.com.br

O #ue $ VPN%
O surgimento da VPN se deve a necessidade de se utilizar
redes de comunicao no confiveis, como a Internet para
trafegar informaes de forma segura. A Virtual Private
Netor! no passado " esteve associada a servios remotos
de conectividade, como a rede de telefonia p#$lica
comutada %&'P() ou os PV(s %Permanent Virtual
(ircuits*(+annel) do ,rame &ela-.
A VPN utiliza protocolos de tunelamento e procedimentos
de encriptao, garantindo a integridade e autenticidade
dos dados. (om a VPN . poss/vel interligar duas ou mais
redes, em diferente tipos de sistemas operacionais.
CONCE!O
& / 34 www.4linux.com.br
CON'()*+N"O
OPENVPN CO,
C-+VE ES!.!C+
/ / 34 www.4linux.com.br
Nesta configurao, vamos usar c+aves estticas, 0ue .
a forma mais simples de configurar a VPN.
Vamos gerar uma c+ave 0ue ser usada tanto pelo
servidor 0uanto pelo cliente.
# aptitude install openvpn
# openvpn --genkey --secret /etc/openvpn/chave
CON'()*+N"O O SE*V"O*
0 / 34 www.4linux.com.br
# vim /etc/openvpn/server.conf
dev tun
ifconfig 12.2.2.1 12.2.2.3
secret *etc*openvpn*c+ave
port 4222
comp5lzo
ver$ 6
!eepalive 12 132
persist5!e-
persist5tun
float
CON'()*+N"O O SE*V"O*
1 / 34 www.4linux.com.br
dev tun 7 8a$ilita suporte ao drive '9N*'AP:
ifconfig 7 (ria o IP do servidor %12.2.2.1) com suporte ao IP
do cliente %12.2.2.3):
secret 7 (omando para c+amar nossa c+ave criptografada e
o local dela:
port 7 ;efine a porta 0ue a OpenVPN vai rodar:
comp-lzo 7 Ativa suporte a compresso:
verb 7 N/vel para depurao de erros:
keepalive 7 <nvia um ping a cada 12 segundos sem
atividade e a VPN . reiniciada depois de 132 segundos sem
respostas.
CON'()*+N"O O SE*V"O*
2 / 34 www.4linux.com.br
persist-key 7 Assegura 0ue o daemon manten+a as c+aves
carregadas, 0uando a VPN . resta$elecida depois de uma
0ueda de cone=o:
persist-tun 7 Assegura 0ue o daemon manten+a a
interface tun a$erta, 0uando a VPN . resta$elecida depois
de uma 0ueda de cone=o:
float 7 Permite 0ue o t#nel continue a$erto mesmo 0ue o
endereo IP da outra m0uina mude.
CON'()*+N"O O SE*V"O*
34 / 34 www.4linux.com.br
# aptitude install openvpn
# vim /etc/openvpn/client.conf
dev tun
ifconfig 12.2.2.3 12.2.2.1
remote 1>3.1?@.322.1
secret *etc*openvpn*c+ave
port 4222
comp5lzo
ver$ 6
!eepalive 12 132
persist5!e-
persist5tun
float
CON'()*+N"O O CLEN!E
33 / 34 www.4linux.com.br
(opie o ar0uivo c+ave 0ue est em *etc*openvpn* do
Aervidor para o *etc*openvpn do cliente.
No servidorB
# /etc/init.d/openvpn start
No clienteB
# /etc/init.d/openvpn start
NC+N"O O SE*V5O
32 / 34 www.4linux.com.br
No servidorB
# ifconfig
tun0 Cin! encapBNo <specificado <ndereo de 8D 225
22522522522522522522522522522522522522522522
inet end.: 10.0.0.1 P-a-P:10.0.0.
No clienteB
# ifconfig
tun0 Cin! encapBNo <specificado <ndereo de 8D 225
22522522522522522522522522522522522522522522
inet end.: 10.0.0. P-a-P:10.0.0.1
NC+N"O O SE*V5O
33 / 34 www.4linux.com.br
CON'()*+N"O
OPENVPN CO,
CE*!'C+"OS
34 / 34 www.4linux.com.br
A OpenVPN oferece vrios mecanismos para
adicionar camadas adicionais de segurana, como
por e=emplo rodar em c+root, uso de cone=es
'CAs, certificados, uso de c+aves com maiores $its.
'odas essas camadas previnem ata0ues como EFan
in t+e FiddleG, E;oAG, E,loodingG, EPort scanningG
e EHuffer overfloG.
,EL-O*+N"O + SE()*+N5+
3& / 34 www.4linux.com.br
Adicione a configurao no servidor e cliente:, as opes
user e group para que o OpenVPN seja eecutado
co!o usu"rio no#od$ e grupo nogroup%
6 vim /etc/openvpn/server.con7
6 vim /etc/openvpn/client.con7
No final do arquivo coloque:
user nobo89
:roup no:roup
OPENVPN SE, P*VL;(O "E
*OO!
3/ / 34 www.4linux.com.br
VocI pode adicionar uma assinatura 0ue ser verificada
antes do processamento de todos os pacotes 9;P. <m nossa
configurao do servidor vamos +a$ilitar as seguintes
opesB
tls-auth 7 8a$ilita o controle de cone=es tls:
tls-server 7 A"uda a $lo0uear ata0ues ;oA e flooding na
porta do OpenVPN:
ca 7 (ertificado de autoridade %(A) 0ue usa as $i$liotecas
do OpenAAC:
cert 7 (ertificado do servidor:
key 7 (+ave &AA de 326@ do servidor:
dh 7 ParJmetros ;iffie58ellman utilizado para a troca das
c+aves criptografadas durante a e=ecuo:
cip+er 7 ;efine um tipo de criptografia maior.
!ls-auth "#$%
30 / 34 www.4linux.com.br
Para gerar os certificados e c+aves o OpenVPN traz "unto a
sua instalao, uma s.rie de scripts c+amados Eeas-5rsaG.
<les podem ser encontrados em
/usr/share/doc/openvpn/e&amples/easy-rsa/.0/
# ls /usr/share/doc/openvpn/e&amples/easy-rsa/.0/
!ls-auth "#$%
31 / 34 www.4linux.com.br
Ve"a 0ue na lista de scripts cada um, tem uma funo
especifica para criao de certificados e c+aves. Vamos
copiar o diretKrio com os scripts para nossa instalao do
OpenVPN
# cp -a /usr/share/doc/openvpn/e&amples/easy-rsa/.0
/etc/openvpn/
Acesse o diretKrio com os scripts copiadosB
# cd /etc/openvpn/.0
!ls-auth "#$%
32 / 34 www.4linux.com.br
(rie o su$diretKrio onde sero armazenadas as
c+aves e certificadoB
# mkdir keys
Lerando certificado (A e c+ave &AA
9tilizando os scripts vamos gerar os certificados e
c+aves, 0ue sero utilizados em nossa configurao
do OpenVPN.
!ls-auth "#$%
24 / 34 www.4linux.com.br
Instale o pacote opensslB
# aptitude install openssl
# vim vars
e&port '()*+,-(.0/0
e&port '()*%123!4).5645
e&port '()*P417,3%(.5+P5
e&port '()*%,!).5+aoPaulo5
e&port '()*148.59(:!(45
e&port '()*(#$,;.5root<de&ter.com.br5
(E*+N"O CE*!'C+"O
23 / 34 www.4linux.com.br
9se a se0uIncia de comandos a$ai=o para gerar o
certificado de autoridadeB
# source vars
# ./clean-all
# ./build-ca
Preencha as informa=>es do certificado:
(ountr- Name %3 letter code) MH&NB64
Atate or Province Name %full name) MAPNB+P
Cocalit- Name %eg, cit-) MAaoPauloNB+aoPaulo
Organization Name %eg, compan-) M;<O'<&NB9(:!(4
Organizational 9nit Name %eg, section) MNB9(:!(4
(ommon Name %eg, -our name or -our serverPs +ostname)
M;<O'<& (ANB
Name MNB
<mail Address MrootQde=ter.com.$rNBroot<de&ter.com.br
(E*+N"O CE*!'C+"O
22 / 34 www.4linux.com.br
./build-key-server server
Lenerating a 326@ $it &AA private !e-
..............................................................................RRR
..........RRR
riting ne private !e- to Pserver.!e-P
(ountr- Name %3 letter code) MH&NB64
Atate or Province Name %full name) MAPNB+P
Cocalit- Name %eg, cit-) MAaoPauloNB+aoPaulo
Organization Name %eg, compan-) M;<O'<&NB9(:!(4
Organizational 9nit Name %eg, section) MNB9(:!(4
(ommon Name %eg, -our name or -our serverPs +ostname)
MserverNB
Name MNB
<mail Address MrootQde=ter.com.$rNBroot<de&ter.com.br
(E*+N"O CE*!'C+"O
23 / 34 www.4linux.com.br
9sing configuration from *etc*openvpn*3.2*openssl.cnf
'+e Au$"ectPs ;istinguis+ed Name is as follos
countr-Name BP&IN'AHC<BPH&P
stateOrProvinceName BP&IN'AHC<BPAPP
localit-Name BP&IN'AHC<BPAaoPauloP
organizationName BP&IN'AHC<BP;<O'<&P
organizational9nitNameBP&IN'AHC<BP;<O'<&P
commonName BP&IN'AHC<BPserverP
emailAddress BIA4A'&INLBProotQde=ter.com.$rP
(ertificate is to $e certified until Sun 34 21BT1B34 3231 LF'
%T?42 da-s)
Aign t+e certificateU M-*nNBy
1 out of 1 certificate re0uests certified, commitU M-*nN-
Drite out data$ase it+ 1 ne entries
;ata Hase 9pdated
(E*+N"O CE*!'C+"O
24 / 34 www.4linux.com.br
Ciste o conte#do do su$diretKrio !e-s e verifi0ue o ar0uivo
de certificado do servidor %server.csr), o ar0uivo da c+ave
do servidor %server.!e-) e o certificado auto assinado
%server.crt).
8erando par?metros 9iffie-"ellman
Os parJmetros ;iffie58ellman so utilizados para a troca
das c+aves criptografadas durante a e=ecuo do OpenVPN.
9se o script a$ai=o para gerar os parJmetrosB
# ./build-dh
(E*+N"O CE*!'C+"O
2& / 34 www.4linux.com.br
Ciste o conte#do do su$diretKrio !e-s e verifi0ue o ar0uivo
com os parJmetros ;iffie58ellman %d+326@.pem).
%onfigurando o servidor 1pen7P3
(om os certificados e c+aves gerados, a$ra o ar0uivo do
servidor e adicione as opes a$ai=oB
# vim /etc/openvpn/server.conf
CON'()*+N"O O SE*V"O*
2/ / 34 www.4linux.com.br
# vim /etc/openvpn/server.conf
dev tun
ifconfig 12.2.2.1 12.2.2.3
port 4222
comp5lzo
ver$ 6
!eepalive 12 132
persist5!e-
persist5tun
float
user no$od-
group nogroup
tls5server
tls5aut+ c+ave 2
CON'()*+N"O O SE*V"O*
20 / 34 www.4linux.com.br
%ontinua=@o:
# vim /etc/openvpn/server.conf
ca 3.2*!e-s*ca.crt
cert 3.2*!e-s*server.crt
!e- 3.2*!e-s*server.!e-
d+ 3.2*!e-s*d+326@.pem
cip+er ;<A5<;<T5(H(
CON'()*+N"O O SE*V"O*
21 / 34 www.4linux.com.br
Ainda na m0uina servidor crie a c+ave e o certificado para
a m0uina cliente, com o +ostname da ma0uina cliente.
# cd /etc/openvpn/.0
# ./build-key client
(ountr- Name %3 letter code) MH&NB64
Atate or Province Name %full name) MAPNB+P
Cocalit- Name %eg, cit-) MAaoPauloNB+aoPaulo
Organization Name %eg, compan-) M;<O'<&NB9(:!(4
Organizational 9nit Name %eg, section) MNB9(:!(4
(ommon Name %eg, -our name or -our serverPs +ostname)
MclientNB
Name MNB
<mail Address MrootQde=ter.com.$rNBroot<de&ter.com.br
CON'()*+N"O O CLEN!E
22 / 34 www.4linux.com.br
'+e Au$"ectPs ;istinguis+ed Name is as follos
countr-Name BP&IN'AHC<BPH&P
stateOrProvinceName BP&IN'AHC<BPAPP
localit-Name BP&IN'AHC<BPAaoPauloP
organizationName BP&IN'AHC<BP;<O'<&P
organizational9nitNameBP&IN'AHC<BP;<O'<&P
commonName BP&IN'AHC<BPclientP
emailAddress BIA4A'&INLBProotQde=ter.com.$rP
(ertificate is to $e certified until Sun 34 21B41B3? 3231 LF'
%T?42 da-s)
Aign t+e certificateU M-*nNBy
1 out of 1 certificate re0uests certified, commitU M-*nN-
Drite out data$ase it+ 1 ne entries
;ata Hase 9pdated
CON'()*+N"O O CLEN!E
34 / 34 www.4linux.com.br
,aa a copia dos ar0uivos a$ai=o via ss+ para a m0uina
cliente.
# cd /etc/openvpn/.0/keys
# scp client.key client.crt ca.crt
root<,P*91*%;,(3!(:/etc/openvpn
CON'()*+N"O O CLEN!E
33 / 34 www.4linux.com.br
# vim /etc/openvpn/client.conf
dev tun
ifconfig 12.2.2.3 12.2.2.1
remote 1>3.1?@.322.1
port 4222
comp5lzo
ver$ 6
!eepalive 12 132
persist5!e-
persist5tun
float
user no$od-
group nogroup
ns5cert5t-pe server
CON'()*+N"O O CLEN!E
32 / 34 www.4linux.com.br
%ontinua=@o:
# vim /etc/openvpn/client.conf
tls5client
tls5aut+ c+ave 1
ca ca.crt
cert client.crt
!e- client.!e-
cip+er ;<A5<;<T5(H(
CON'()*+N"O O CLEN!E
33 / 34 www.4linux.com.br
;escrio das novas opes utilizadasB
ns-cert-type 7 Indica 0ue certificado foi assinado pelo
servidor:
tls-client 7 8a$ilita cone=o 'CA, a"udando a $lo0uear
ata0ues ;oA e flooding na porta do OpenVPN.
No servidorB
# /etc/init.d/openvpn start
;epos no clienteB
# /etc/init.d/openvpn start
CON'()*+N"O O CLEN!E
34 / 34 www.4linux.com.br
No servidorB
# ifconfig
tun0 Cin! encapBNo <specificado <ndereo de 8D 225
22522522522522522522522522522522522522522522
inet end.: 10.0.0.1 P-a-P:10.0.0.
#asc:AA.AA.AA.AA
No clienteB
# ifconfig
tun0 Cin! encapBNo <specificado <ndereo de 8D 225
22522522522522522522522522522522522522522522
inet end.: 10.0.0. P-a-P:10.0.0.1
#asc:AA.AA.AA.AA
C-EC+N"O CONE<=O

Das könnte Ihnen auch gefallen