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 |