Download - Tuneles fisl2005pt
Grupo de Usuarios Linux del Uruguay
UYLUG
http://www.uylug.org.uy http://www.linux.org.uyMario Bonilla [email protected]
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Tecnologias Livres para Tecnologias Livres para Túneis e VPNs.Túneis e VPNs.
FISL 6.0
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Agenda Introdução:
Descrição da situação
Conceitos gerais encripção e autenticação
Conceitos gerais túneis
Conceitos gerais VPNs
Túneis: ssh, stunnel, zebedee
VPNs: OpenVPN
Outros: pptp, cipe,vpnd, vtun, tunnelv
Túneis, VPNs e Firewalls
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Introdução
Por qué encriptar:
Confidencialidade, seguridade (passwords).
Não sempre tenho controle da conexão física (wireless, internet, etc.)
Não confiar no canal físico:
sniffers
equipos comprometidos
tempest
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Introdução
Por qué autenticar:
Não sempre os protocolos de aplicação autenticam cliente e servidor de forma confiável (nfs, aplicações legadas).
Atacantes podem personificar o servidor e o cliente.
Ataques podem ser feitos comprometendo elementos que não estão baixo meu controle (dns, roteamento na Internet, etc.)
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Introdução
Encripção e autenticação del tráfico:
Dois problemas diferentes:
Para uma aplicação específica,
Lo ideal é que a aplicação suporte encripção em forma nativa (smtp/tls, imaps, pops, ssh, https)
Quando não suporta encripção: túnel ou VPN
Para todo o tráfico da rede: VPN
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Introdução - Encripção
Encripção por chave simétrica:
As duas partes compartilham a mesma chave secreta.
A segurança depende do segredo da chave que eles compartilham.
É muito rápida.
Escala muito mal com maior número de participantes (((n-1) * n) / 2)
Exemplos: Blowfish, AES, RC5, 3DES
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Introdução - Encripção
Encripção por chave pública:
Tem duas chaves relacionadas entre si, uma é publica e a outra privada.
A chave pública se distribuí livremente.
A segurança depende da chave privada, que deve ser conhecida solo pelo dono.
É muito lento.
Escala muito bem com o número de participantes (n).
Exemplos: dsa, rsa
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Introdução - EncripçãoDiffie-Hellman:
Protocolo para intercâmbio de chaves.
Combina las vantagems da criptografia de chave pública com as velocidade da chave simétrica.
Permite gerar dinamicamente sobre uma conexão insegura uma chave simétrica compartilhada pelas duas partes.
El resto de la comunicação se realiza encriptando com estas chaves simétricas.
Usado em: TLS, IKE, etc.
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Introdução - Túneis Para encriptar o tráfico de aplicações individuais. El túnel encripta o tráfico para um protocolo e porta determinada. No funciona para aplicações que geram conexões por portas definidos
dinamicamente (ex. ftp) Como vantagem adicional, muitos túneis permitem comprimir o tráfico. A conveniência de usar compressão depende da relação entre a velocidade
da rede e a performance da cpu.
WAN/LAN
172.16.1.2:2510.1.1.1
10.1.1.10:1234172.16.1.1
Túnel: 10.1.1.10:1234 ==> 172.16.1.2:25
(vía 172.16.1.1)
telnet 10.1.1.10 1234
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Introdução - VPNs Rede Privada Virtual, simula uma conexão segura, através de uma rede
insegura (Internet, etc.). A VPN é um dispositivo de rede más, devem estabelecer rotas, etc. Comumente a VPN é em capa 3, mais também e possível fazer VPNs em
capa 2. Geralmente é possível comprimir o tráfico.
VPN es GW a:172.16.1.0/24
WAN/LAN
172.16.1.210.1.1.3
10.1.1.1
VPN es GW a:10.1.1.0/24
172.16.1.1
10.1.1.3 172.16.1.2
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Introdução - IPsec
Estándard opcional em IPv4, obrigatório em Ipv6.
Usando IKE e encripção oportunista é possível encriptar em forma transparente nodos que não se conhecem previamente.
É uma modificação do stack IP, requer modificação do kernel.
Não é portável, cada sistema operacional tem sua própria implementação.
É complexo de configurar em ambientes heterogêneos.
O protocolo é complexo: http://www.schneier.com/paper-ipsec.pdf
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneis - ssh
Interoperatibilidade:
Instalado na maioria dos equipos Unix.
Ideal para fazer túneis para resolver problemas pontuais.
Suportado baixo Windows com cygwin.
Algoritmos usados:
Chave pública: DSA, RSA (recomendado)
Chave simétrica: 3DES, Blowfish, CAST128, Arcfour, AES
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneis - sshVantagems:
Tuneliza em forma nativa e transparente conexões X11.
Comprime com gzip.
Inconvenientes:
Seu objetivo principal não é fazer túneis.
Cuidado na configuração!. Não dar privilegios a o usuário que vai criar o túnel.
O cliente do túnel não roda como demônio, é preciso fazer scripts para verificar que no morra, iniciarlo automaticamente, etc.
Não suporta UDP.
Tuneliza sobre TCP.
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneis - sshConfiguração:
Especificar o túnel pela línea de comandos (remoto/local?). Para túneis que devam ser criados em forma automática usar chave pública. Restringir privilégios da chave pública no servidor.
WAN/LAN
172.16.1.2:25
10.1.1.10:1234172.16.1.1
Túnel: 10.1.1.10:1234 ==> 172.16.1.2:25
(vía 172.16.1.1)
$ ssh -L 1234:172.16.1.2:25 [email protected]$ telnet 10.1.1.10 1234
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneis - stunnelInteroperatibilidad:
Depende só do openssl e tcpwrappers.
Compila em todos os unixes, freebsd, gnu/linux.
Compila baixo Win NT/2000/XP.
Algoritmos usados:
Autenticação X 509 , e todos os algoritmos suportados por openssl.
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneis - stunnel
Vantagems:
Permite dar suporte SSL a servidores que não tem SSL nativamente (imaps, https, etc.)
Uma sola instância do daemon pode atender vários túneis.
Suporta chroot em forma nativa.
Inconvenientes:
Um thread por conexão, usar só com kernel 2.6
Não suporta UDP.
Tuneliza sobre TCP (usar opção TCP_NODELAY=1).
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneis - stunnelConfiguração:
WAN/LAN
10.1.1.10 172.16.1.1:1234
Túnel:10.1.1.10:1234 ==> 172.16.1.2:1234
/etc/stunnel/stunnel.conf:
socket = r:TCP_NODELAY=1pid = /var/run/stunnel4/stunnel.pidclient = yes
[1234]accept = 127.0.0.1:1234connect = 172.16.1.1:5678
/etc/stunnel/stunnel.conf:
socket = l:TCP_NODELAY=1pid = /var/run/stunnel4/stunnel.pidcert = /etc/stunnel/stunnel.pem
[5678] accept = 5678 connect = 127.0.0.1:1234
:5678127.0.0.1:1234
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneis - zebedee
Interoperatibilidade:
Compila em todos os Unix, *BSD, GNU/Linux.
Compila baixo Win NT/2000/XP.
Algoritmos usados:
Zlib Blowfish Diffie-Hellman.
Autenticação mediante chave pública associada a Diffie-Hellman.
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneis - zebedeeVantagems:
Configuração simples.
Suporta UDP.
Permite compressão zlib, opcionalmente bzip2.
Inconvenientes:
Desenvolvimento estancado desde 2003.
Multithread, usar com kernel 2.6 .
Em UDP o limite por datagrama é de 16kb.
Tuneliza sobre TCP.
Não garantiza integridade dos datos (é possível introduzir barulho).
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneles - zebedee
/usr/local/etc/zebedee/zebedee.conf
detached true server false ipmode tcp listenip 127.0.0.1logfile /var/log/zebedee-clientserverhost 172.16.1.1tunnel 12300,12400:172.16.1.1:1230,1240compression zlib:9 keylength 256maxbufsize 16383keygenlevel 2 checkidfile '/usr/local/etc/zebedee-client_server-id.id'
/usr/local/etc/zebedee/zebedee.conf
detached true server true ipmode tcp logfile /var/log/zebedee-servercompression zlib:9 keylength 256keygenlevel 2 include '/usr/local/etc/zebedee-server.key'redirect nonetarget localhost:1230/tcp,1240/tcp
WAN/LAN
10.1.1.10
172.16.1.1:1230172.16.1.1:1240
Túneles:10.1.1.10:12300 ==> 172.16.1.2:123010.1.1.10:12400 ==> 172.16.1.2:1240
127.0.0.1:12300127.0.0.1:12400
172.16.1.1
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
VPN - OpenVPNInteroperatibilidad:
Compila em GNU/Linux, *BSD, Mac OS X, Solaris.
Compila em Windows 2000/XP.
Algoritmos usados:
Os suportados pelo OpenSSL.
Certificados X509.
Autenticação por TLS.
Opcional chave simétrica compartilhada.
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
VPN - OpenVPN
Vantagems:
Compressão adaptativa dependendo do tipo de dados.
Ethernet Bridge via VPN.
VPNs nas que ambos nodos tem IP dinâmica (adsl, dhcp, etc.)
Tuneliza sobre UDP, TCP opcional.
Simples de configurar y utilizar, ideal para ambientes heterogêneos.
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
VPN - OpenVPNConfiguração:
/etc/openvpn/casa.conf :
dev tunremote 172.16.0.1ifconfig 10.1.0.2 10.1.0.1
## route add -net 10.0.0.0 netmask 255.255.255.0 gw $5:up ./home.up## openvpn --genkey --secret servidor.key :secret servidor.key
ping 15ping-restart 45ping-timer-rempersist-tunpersist-key
/etc/openvpn/servidor.conf :
dev tunifconfig 10.1.0.1 10.1.0.2
## route add -net 10.0.1.0 netmask 255.255.255.0 gw $5up ./office.up## La misma que en el cliente.secret servidor.key
ping 15ping-restart 45ping-timer-rempersist-tunpersist-key
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Outros - VPNCIPE: Requer módulo do kernel. Só funciona com kernel Linux (existe também um, porte a Windows). Segurança questionada: http://diswww.mit.edu/bloom-picayune/crypto/14238
pptp: Nativo em Windows NT, suportado em GNU/Linux, Solaris. Completamente inseguro: http://www.schneier.com/pptp.html Em vias de extinção.
vpnd: Usa SLIP. Sem desenvolvimento desde 2001.
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Outros - Túneis
tunnelv:
Usa ethertap (deprecated no kernel).
Desde 1999 sem desenvolvimento.
vtun:
Inseguro: http://diswww.mit.edu/bloom-picayune/crypto/14238
Desenvolvimento estancado em 2003.
Compila em quase todos os Unix, não compila no Windows
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Túneis, VPNs e firewalls
Fazendo um túnel, ou uma VPN, estou fazendo uma conexão direta entre duas redes que podem estar protegidas por varias camadas de firewalls.
Isto é especialmente perigoso numa VPN na que um dos nodos é comprometido.
Aplicar regras de firewall a os devices da VPN.
Restringir os túneis para que sejam só entre portas e clientes autorizados.
Muito cuidado si cada ponta da VPN está em zonas com distinto nível de segurança.
Grupo de Usuarios Linux del Uruguay UYLUGhttp://www.linux.net.uy http://www.linux.org.uy
Mario “miope” Bonilla [email protected]ído bajo licencia FDL Versión. 1.2 http://www.gnu.org/licenses/fdl.html
Sin front cover text, sin invariant text, sin back cover text.
Mario [email protected]
¿Perguntas?