| Red Hat Enterprise Linux 3: Guia de Segurança | ||
|---|---|---|
| Anterior | Capítulo 6. Redes Privadas Virtuais (Virtual Private Networks) | Próxima |
Após configurar o servidor CIPE apropriadamente e testar as funcionalidades, você pode extender a conexão para a máquina cliente.
O cliente CIPE deve poder conectar e desconectar a conexão CIPE de maneira automatizada. Consequentemente, CIPE contém mecanismos próprios para personalizar configurações para usos individuais. Por exemplo: um funcionário remoto pode conectar-se a um dispositivo CIPE na LAN digitando o seguinte:
/sbin/ifup cipcb0 |
O dispositivo deve aparecer automaticamente. As informações de roteamento e regras de firewall também devem ser configuradas ao longo da conexão. O funcionário remoto deve poder terminar a conexão com o seguinte:
/sbin/ifdown cipcb0 |
Configurar clientes requer a criação de scripts localizados que são executados após o dispositivo ser carregado. A configuração do dispositivo pode ser feita localmente através de um arquivo, criado pelo usuário, chamado /etc/sysconfig/network-scripts/ifcfg-cipcb0. Este arquivo contém parâmetros que determinam se a conexão CIPE ocorre no momento de ligar a máquina (boot-time), o nome do dispositivo do CIPE, entre outras informações. Veja a seguir o arquivo ifcfg-cipcb0 para um cliente remoto conectando a um servidor CIPE:
DEVICE=cipcb0 ONBOOT=yes BOOTPROTO=none USERCTL=no # This is the device for which we add a host route to our CIPE peer through. # You may hard code this, but if left blank, we will try to guess from # the routing table in the /etc/cipe/ip-up.local file. PEERROUTEDEV= # We need to use internal DNS when connected via cipe. DNS=192.168.1.254 |
O dispositivo do CIPE é chamado cipcb0. Este dispositivo é carregado no momento de inicializar (configurado através do campo ONBOOT) e não utiliza um protocolo boot (DHCP, por exemplo) para receber um endereço IP para o dispositivo. O campo PEERROUTEDEV determina o nome do dispositivo do servidor CIPE que conecta ao cliente. Se não for especificado nenhum dispositivo neste campo, algum será determinado após o dispositivo ser carregado.
Se suas redes internas estiverem atrás de um firewall, defina regras para permitir que a interface CIPE na máquina do cliente envie e receba pacotes UDP. Consulte o Capítulo 7 para informações sobre a configuração do firewall. Neste exemplo de configuração, as regras iptables são implementadas.
![]() | Nota |
|---|---|
Clientes devem ser configurados de maneira que todos os parâmetros locais sejam inseridos em um arquivo, criado pelo usuário, chamado /etc/cipe/ip-up.local. Os parâmetros locais devem ser revertidos quando a sessão CIPE for finalizada, usando o /etc/cipe/ip-down.local. |
Firewalls devem ser configurados nas máquinas cliente para aceitar pacotes CIPE UDP encapsulados. As regras podem variar amplamente, mas a aceitação trivial de pacotes UDP é necessária para a conectividade do CIPE. As regras seguintes permitem transmissões UDP CIPE na máquina do cliente remoto conectando à LAN. A regra final adiciona o 'mascaramento' do IP para permitir que o cliente remoto se comunique à LAN e à Internet.
/sbin/modprobe iptables /sbin/service iptables stop /sbin/iptables -P INPUT DROP /sbin/iptables -F INPUT /sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.1 /sbin/iptables -A INPUT -j ACCEPT -i cipcb0 /sbin/iptables -A INPUT -j ACCEPT -i lo /sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE |
Adicione regras de roteamento para que a máquina cliente acesse os nódulos por trás da conexão CIPE como se estivessem na rede local. Isto pode ser feito rodando o comando route. Neste exemplo, a estação de trabalho do cliente precisa ter a seguinte rota de rede:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.1.2 |
Veja a seguir o script final /etc/cipe/ip-up.local para a estação de trabalho do cliente:
#!/bin/bash -v
if [ -f /etc/sysconfig/network-scripts/ifcfg-$1 ] ; then
. /etc/sysconfig/network-scripts/ifcfg-$1
else
cat <<EOT | logger
Cannot find config file ifcfg-$1. Exiting.
EOF
exit 1
fi
if [ -n ${PEERROUTEDEV} ]; then
cat <<EOT | logger
Cannot find a default route to send cipe packets through!
Punting and hoping for the best.
EOT
# Use routing table to determine peer gateway
export PEERROUTEDEV=`/sbin/route -n | grep ^0.0.0.0 | head -n 1 \
| awk '{ print $NF }'`
fi
####################################################
# Add The routes for the remote local area network #
####################################################
route add -host 10.0.1.2 dev $PEERROUTEDEV
route add -net 192.168.1.0 netmask 255.255.255.0 dev $1
####################################################
# IP TABLES Rules to restrict traffic #
####################################################
/sbin/modprobe iptables
/sbin/service iptables stop
/sbin/iptables -P INPUT DROP
/sbin/iptables -F INPUT
/sbin/iptables -A INPUT -j ACCEPT -p udp -s 10.0.1.2
/sbin/iptables -A INPUT -j ACCEPT -i $1
/sbin/iptables -A INPUT -j ACCEPT -i lo
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE |