![]()  | 
s i s t e m a o p e r a c i o n a l m a g n u x l i n u x | ~/ · documentação · suporte · sobre | 
Página seguinte
Página anterior
Índice
277. IntroduçãoComo as firewalls estão amplamente mais e mais usadas na segurança de Internet e Intranet, a capacidade de fazer boas VPNs é importante. Aqui estão as minhas experiências, e comentários são bem-vindos. 
 277.1 Convenções
 Usarei os termos "firewall mestre" e "firewall escravo", apesar de uma VPN não ser feita com uma arquitetura cliente-servidor. Eu simplesmente me referi a elas como participantes ativos e passivos da configuração da conexão. A máquina que é o início da configuração será referida como mestre, e o participante passivo seráo escravo. 
 
 277.2 Planejamento
 Antes de você iniciar a configuração do seu sistema, você deve conhecer os detalhes da rede. Eu assumo que você tem duas firewalls protegendo uma intranet por firewall, e ambas estão conectadas a internet. Então agora você deve duas interfaces de rede (pelo menos) por firewall. Pegue um pedaço de papel, e escreva o seu endereço IP e sua máscara de rede. Você precisará de mais de um endereço IP por firewall para a VPN que você quer construir agora. Aqueles endereços deve ser exteriores a suas subredes existentes; eu sugiro usar os endereços do grupo de endereços "privado". Eles são os seguintes: 
 Por causa do exemplo, aqui está uma amostra de configuração: As duas fortalezas são chamadas fellini e polanski. Elas tem uma interface para a internet (-out), uma para intranet (-in) euma para a vpn (-vpn). Os endereços e as máscaras de rede: 
 Deste modo nós temos um plano. 
 277.3 Juntando as FerramentasVocê precisará de: 
 Versões atuais: 
 
 277.4 Compilar e InstalarCompile ou instale as ferramentas coletadas. Olhe cada uma das documentações (e o COMO FAZER do firewall) para detalhes. Agora nós temos as ferramentas. 
 277.5 Configure os outros subsistemas
 
 Configure sua firewall. Você precisa habilitar o tráfego do ssh entre as duas máquinas da firewall; significa uma conexão para a porta 22 no escravo originado do mestre. Inicie o sshd no escravo e verifique se você pode efetuar o login. Este pass é sem teste, por favor fale-me de seus resultados. 
 277.6 Configure as contas para a VPNCrie uma conta na firewall escravo usando a sua ferramenta favorita (por exemplo, vi, mkdir, chown, chmod). Você deve criar uma conta no mestre também, mas eu acho que você precisa configurar a conexão na hora da inicialização, desta maneira a sua conta de root fará. Qualquer um pode apontar os riscos do uso da conta de root no mestre? 
 277.7 Gerar uma chave ssh para a conta do mestre
 Use o programa ssh-keygen. Ajuste a senha vazia para a chave privada se você quiser fazer a configuração automática da VPN. 
 277.8 Configure login automático do ssh para a conta do escravo
 Copie a chave pública recentemente gerada na conta do escravo no .ssh/authorized_keys, e as permissões do arquivo de configuração como a seguir: drwx------ 2 slave slave 1024 Apr 7 23:49 ./ drwx------ 4 slave slave 1024 Apr 24 14:05 ../ -rwx------ 1 slave slave 328 Apr 7 03:04 authorized_keys -rw------- 1 slave slave 660 Apr 14 15:23 known_hosts -rw------- 1 slave slave 512 Apr 21 10:03 random_seed A primeira linha sendo o ~slave/.ssh, e a segunda a ~slave. 
 277.9 Segurança ssh estreita
 
 Isto refere-se aos recursos na minha configuração no sshd_conf: 
 PermitRootLogin no IgnoreRhosts yes StrictModes yes QuietMode no FascistLogging yes KeepAlive yes RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication yes PasswordAuthentication no PermitEmptyPasswords no A autenticação da senha é desligada, então o acesso só é possível com chaves autoriazadas (é claro que você desligou telnet e os comandos 'r'). 
 277.10 Habilite a execução do ppp e da rota para ambas as contas
 Como a conta do mestre é o root no meu caso, não há nada a fazer. Para a conta do escravo, as linhas a seguir aparecem em /etc/sudoers: Cmnd_Alias VPN=/usr/sbin/pppd,/usr/local/vpn/route slave ALL=NOPASSWD: VPN Como você pode ver, estou usando alguns scripts para configurar o ppp e as tabelas de roteamento no escravo. 
 277.11 Faça os scriptsNo mestre existe um script de inicialização completamente desenvolvido que eu estou usando: 
#! /bin/sh
# skeleton      arquivo de exemplo para a construção de scripts /etc/init.d/.
#               Este arquivo deve ser usado para construir scripts para o /etc/init.d.
#
#               Escrito por Miquel van Smoorenburg <miquels@cistron.nl>.
#               Modificado pela Debian GNU/Linux
#               por Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Versão:        @(#)skeleton  1.6  11-Nov-1996  miquels@cistron.nl
#
PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11/:
PPPAPP=/home/slave/ppp
ROUTEAPP=/home/slave/route
PPPD=/usr/sbin/pppd
NAME=VPN
REDIR=/usr/local/bin/pty-redir
SSH=/usr/bin/ssh
MYPPPIP=192.168.0.1
TARGETIP=192.168.0.2
TARGETNET=193.6.37.0
MYNET=193.6.35.0
SLAVEWALL=polanski-out
SLAVEACC=slave
test -f $PPPD || exit 0
set -e
case "$1" in
  start)
        echo setting up vpn
        $REDIR $SSH -o 'Batchmode yes' -t -l $SLAVEACC $SLAVEWALL sudo $PPPAPP >/tmp/device
        TTYNAME=`cat /tmp/device`
echo tty is $TTYNAME
        sleep 10s
        if [ ! -z $TTYNAME ]
        then
        $PPPD $TTYNAME ${MYPPPIP}:${TARGETIP}
        else
                echo FAILED!
                logger "vpn setup failed"
        fi
        sleep 5s
        route add -net $TARGETNET gw $TARGETIP
        $SSH -o 'Batchmode yes' -l $SLAVEACC $SLAVEWALL sudo $ROUTEAPP
    ;;
  stop)
        ps -ax | grep "ssh -t -l $SLAVEACC " | grep -v grep | awk '{print $1}' | xargs kill
    ;;
  *)
    # echo "Usage: /etc/init.d/$NAME {start|stop|reload}"
    echo "Usage: /etc/init.d/$NAME {start|stop}"
    exit 1
    ;;
esac
exit 0
 
O escravo usa um script para configuração do roteador (/usr/local/vpn/route): #!/bin/bash /sbin/route add -net 193.6.35.0 gw 192.168.0.1 e o seu .ppprc consiste do seguinte: passive Página seguinte Página anterior Índice  |