6Aug

Como bater na sua rede, Parte 2: Proteja sua VPN( DD-WRT)

Nós mostramos como desencadear WOL remotamente pelo "Port Knocking" no seu roteador. Neste artigo, mostraremos como usá-lo para proteger um serviço VPN.

Imagem de Aviad Raviv &bfick.

Prefácio

Se você usou a funcionalidade incorporada do DD-WRT para VPN ou, tenha outro servidor VPN em sua rede, você pode apreciar a capacidade de protegê-lo de ataques de força bruta, escondendo-o atrás de uma seqüência de batidas. Ao fazer isso, você irá filtrar os kiddies de script que estão tentando obter acesso à sua rede. Com isso dito, como afirmado no artigo anterior, a porta que bate não é uma substituição para uma boa senha e / ou política de segurança. Lembre-se de que, com paciência suficiente, um invasor pode descobrir a seqüência e realizar um ataque de repetição.
Tenha em mente que a desvantagem de implementar isso é que, quando algum cliente / s da VPN deseja se conectar, eles deveriam desencadear antes da e que se eles não puderem completar a seqüência por qualquer motivo, elesnão será possível VPN.

Visão geral

Para proteger * o serviço VPN, primeiro desativaremos toda a comunicação possível ao bloquear a porta instanciadora de 1723. Para alcançar esse objetivo, usaremos iptables. Isso ocorre porque é assim que a comunicação é filtrada na maioria das distribuições Linux / GNU modernas em geral e em DD-WRT em particular. Se você quiser mais informações sobre o iptables, verifique sua entrada no wiki e veja o nosso artigo anterior sobre o assunto. Uma vez que o serviço está protegido, criaremos uma sequência de batidas que abriria temporariamente a porta de instanciação VPN e também a fecharia automaticamente após uma quantidade de tempo configurada, mantendo a sessão VPN já estabelecida conectada.

Nota: neste guia, estamos usando o serviço PPTP VPN como exemplo. Com isso dito, o mesmo método pode ser usado para outros tipos de VPN, você precisará apenas alterar a porta bloqueada e / ou o tipo de comunicação.

Pré-requisitos, Suposições e amp;Recomendações

  • É assumido / requerido que você tenha um roteador DD-WRT habilitado para Opkg.
  • É assumido / requerido que você já tenha executado as etapas no guia "Como tocar em sua rede( DD-WRT)".
  • Algum conhecimento em rede é assumido.

Permite obter rachaduras.

Padrão Regra "Bloquear novas VPNs" no DD-WRT

Enquanto o fragmento abaixo do "código" provavelmente funcionaria em todos, auto-respeito, usando iptables, distribuição Linux / GNU, porque há tantas variantes lá fora, nós vamosApenas mostre como usá-lo no DD-WRT.Nada está impedindo você, se desejar, de implementá-lo diretamente na caixa VPN.No entanto, como fazê-lo, está além do escopo deste guia.

Porque queremos aumentar o Firewall do roteador, é lógico que adicionaremos ao script "Firewall".Ao fazê-lo, o comando iptables será executado sempre que o firewall for atualizado e, assim, mantendo o nosso aumento para manter.

da Web-GUI do DD-WRT:

  • Vá para "Administração" - & gt;"Comandos".
  • Digite o abaixo "código" na caixa de texto:

    inline = "$( iptables -L INPUT -n | grep -n" estado RELACIONADO, ESTABELECIDO "| awk -F:{ 'print $ 1'})";inline = $( ($ inline-2 + 1));iptables -I INPUT "$ inline" -p tcp --dat 1723 -j DROP

  • Clique em "Salvar Firewall".
  • Feito.

O que é este comando "Voodoo"?

O comando "voodoo magic" acima faz o seguinte:

  • Localiza onde é a linha iptable que permite que a comunicação já estabelecida seja transmitida. Fazemos isso, porque A. Nos roteadores DD-WRT, se o serviço VPN estiver ativado, ele estará localizado logo abaixo desta linha e B. É essencial que nosso objetivo seja continuar a permitir que as sessões VPN já estabelecidas permaneçam após aevento de nocaute.
  • Deduziu dois( 2) da saída do comando de listagem para explicar o deslocamento causado pelos cabeçalhos das colunas informacionais. Uma vez que está feito, adiciona um( 1) ao número acima, de modo que a regra que estamos inserindo virá logo após a regra que permite a comunicação já estabelecida. Eu deixei este "problema de matemática" muito simples aqui, apenas para tornar a lógica de "por que um precisa reduzir um do lugar da regra em vez de adicionar um" limpa.

Configuração KnockD

Precisamos criar uma nova seqüência de disparo que permita a criação de novas conexões VPN.Para fazer isso, edite o arquivo knockd.conf emitindo em um terminal:

vi /opt/etc/ knockd.conf

Anexe à configuração existente:

[enable-VPN]
sequence = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_command = iptables -I INPUT 1 -s% IP% -p tcp --datado 1723 -j ACEITAR
cmd_timeout = 20
stop_command = iptables -D INPUT -s% IP% -ptcp --dport 1723 -j ACEITAR

Esta configuração irá:

  • Defina a janela de oportunidade para completar a sequência, para 60 segundos.(Recomenda-se manter o mais curto possível)
  • Ouça uma sequência de três batidas nas portas 2, 1 e 2010( esta ordem é deliberada para jogar escaneadores de portas fora da pista).
  • Uma vez que a seqüência foi detectada, execute o "comando start_".Este comando "iptables" colocará um "tráfego de aceitação destinado à porta 1723 de onde as batidas vieram" na parte superior das regras de firewall.(A diretiva% IP% é tratada especialmente pela KnockD e é substituída pelo IP da origem das batidas).
  • Aguarde 20 segundos antes de emitir o comando "stop_".
  • Execute o comando "stop_".Onde esse comando "iptables" faz o inverso do acima e exclui a regra que permite a comunicação.
Isso é, seu serviço VPN agora deve ser conectable somente após uma "batida" bem sucedida.

's tips

Enquanto você deveria estar pronto, há alguns pontos que eu sinto precisar de mencionar.

  • Solução de problemas. Lembre-se de que, se você estiver tendo problemas, o segmento de "solução de problemas" no final do primeiro artigo deve ser sua primeira parada.
  • Se você quiser, você pode ter as diretivas "iniciar / parar" executar vários comandos, separando-os com um semi-colen( ;) ou mesmo um script. Ao fazê-lo, você poderá fazer algumas coisas astutas. Por exemplo, eu nocauteei me envie um * Email me dizendo que uma seqüência foi desencadeada e de onde.
  • Não se esqueça de que "Há um aplicativo para isso" e mesmo que não seja mencionado neste artigo, você é encorajado a apanhar o programa de aldravas Android da StavFX.
  • Enquanto estiver no assunto do Android, não esqueça que existe um cliente PPTP VPN normalmente incorporado ao sistema operacional do fabricante.
  • O método de bloquear algo inicialmente e continuar a permitir a comunicação já estabelecida pode ser usado em praticamente qualquer comunicação baseada em TCP.Na verdade, no Knockd nos filmes DD-WRT 1 ~ 6, fiz o caminho de volta quando usei o protocolo de área de trabalho remota( RDP) que usa a porta 3389 como um exemplo.
Nota: Para fazer isso, você precisará obter a funcionalidade de E-mail no seu roteador, que atualmente não há realmente um que funciona porque o instantâneo SVN dos pacotes opkg da OpenWRT está em desordem.É por isso que eu sugiro usar knockd diretamente na caixa VPN, que permite que você use todas as opções de envio de e-mail que estão disponíveis no Linux / GNU, como SSMTP e sendEmail para mencionar alguns.

Quem perturba meu sono?