Como bater em sua rede, parte 2 Proteja sua VPN (DD-WRT)
Mostramos a você como acionar o WOL remotamente por "Port Knocking" no seu roteador. Neste artigo, mostraremos como usá-lo para proteger um serviço VPN.
Imagem por Aviad Raviv & bfick.
Prefácio
Se você usou a funcionalidade incorporada do DD-WRT para VPN ou tem outro servidor VPN em sua rede, talvez aprecie a capacidade de protegê-lo contra ataques de força bruta, ocultando-o atrás de uma seqüência de detonação. Ao fazer isso, você filtrará os kiddies de script que estão tentando obter acesso à sua rede. Com isso dito, conforme declarado no artigo anterior, a batida de portas não substitui uma boa senha e / ou política de segurança. Lembre-se de que, com paciência suficiente, um invasor pode descobrir a sequência e executar um ataque de repetição.
Também tenha em mente que a desvantagem de implementar isso é que quando qualquer cliente VPN / s deseja se conectar, ele teria que acionar a sequência de interceptação. antecipadamente e que, se eles não puderem completar a sequência por qualquer razão, eles não poderão fazer VPN.
visão global
Para proteger * o serviço de VPN, primeiro desabilitaremos toda a comunicação possível bloqueando a porta de instanciação de 1723. Para atingir esse objetivo, usaremos o iptables. Isso porque, é assim que a comunicação é filtrada na maioria das distribuições Linux / GNU em geral e no DD-WRT em particular. Se você quiser mais informações sobre o iptables, confira sua entrada na wiki e dê uma olhada no nosso artigo anterior sobre o assunto. Quando o serviço estiver protegido, criaremos uma sequência de detonação que abriria temporariamente a porta de instanciação da VPN e a fecharia automaticamente após um período de tempo configurado, mantendo a sessão da VPN já estabelecida conectada..
Nota: Neste guia, estamos usando o serviço VPN PPTP como exemplo. Com isso dito, o mesmo método pode ser usado para outros tipos de VPN, você só precisa mudar a porta bloqueada e / ou o tipo de comunicação.
Pré-requisitos, suposições e recomendações
- É assumido / requerido que você tenha um roteador DD-WRT habilitado Opkg.
- Assume-se / exige-se que você já tenha executado as etapas no guia "Como entrar na sua rede (DD-WRT)".
- Algum conhecimento de rede é assumido.
Vamos começar a rachar.
Padrão Regra “Bloquear novas VPNs” no DD-WRT
Enquanto o trecho abaixo do “código” provavelmente funcionaria em todos os, iptables que se prezam usando, distribuição Linux / GNU, porque há muitas variantes lá fora, mostraremos apenas como usá-lo no DD-WRT. Nada está impedindo você, se desejar, de implementá-lo diretamente na caixa da VPN. No entanto, como fazer isso, está além do escopo deste guia.
Como queremos aumentar o Firewall do roteador, é lógico adicionarmos ao script "Firewall". Isso faria com que o comando iptables fosse executado toda vez que o firewall fosse atualizado e, assim, manter nosso aumento no lugar para manter.
Da GUI da Web do DD-WRT:
- Vá para "Administração" -> "Comandos".
- Digite o "código" abaixo na caixa de texto:
inline = "$ (iptables -L INPUT -n | grep -n" estado RELATED, ESTABLISHED "| awk -F: 'print $ 1')"; inline = $ (($ inline-2 + 1)); iptables -I INPUT "$ inline" - p tcp --dport 1723 -j DROP
- Clique em "Salvar Firewall".
- Feito.
O que é esse comando “Voodoo”??
O comando acima "magic voodoo" faz o seguinte:
- Localiza onde está a linha de iptable que permite que a comunicação já estabelecida passe. Fazemos isso porque A. Nos roteadores DD-WRT, se o serviço VPN estiver habilitado, ele estará localizado logo abaixo dessa linha e B. É essencial para nosso objetivo continuar permitindo que as sessões VPN já estabelecidas sejam mantidas após batendo evento.
- Deduz dois (2) da saída do comando de listagem para considerar o deslocamento causado pelos cabeçalhos de coluna informativos. Feito isso, adicione um (1) ao número acima, para que a regra que estamos inserindo venha logo após a regra que permite a comunicação já estabelecida. Eu deixei este simples "problema de matemática" aqui, apenas para fazer a lógica de "por que alguém precisa reduzir um do lugar da regra em vez de adicionar um a ele".
Configuração KnockD
Precisamos criar uma nova sequência de acionamento que permitirá 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
Anexar à configuração existente:
[enable-VPN]
sequência = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_command = iptables -I ENTRADA 1 -s% IP% -p tcp --dport 1723 -j ACEITAR
cmd_timeout = 20
stop_command = iptables -D ENTRADA -s% IP% -p tcp --dport 1723 -j ACEITAR
Esta configuração irá:
- Defina a janela de oportunidade para completar a sequência, para 60 segundos. (É recomendado manter isso o mais curto possível)
- Ouça uma sequência de três batidas nas portas 2, 1 e 2010 (essa ordem é deliberada para desviar os scanners de portas).
- Uma vez que a sequência tenha sido detectada, execute o “start_command”. Este comando “iptables” colocará um “tráfego de aceitação destinado à porta 1723 de onde vieram as batidas” na parte superior das regras de firewall. (A diretiva% IP% é tratada especialmente pelo KnockD e é substituída pelo IP da origem do erro).
- Aguarde 20 segundos antes de emitir o “stop_command”.
- Execute o "stop_command". Onde este comando “iptables” faz o inverso do acima e elimina a regra que permite a comunicação.
Autordicas
Enquanto você deve estar tudo pronto, há um par de pontos que eu sinto necessidade de mencionar.
- Solução de problemas. Lembre-se de que, se tiver problemas, o segmento "solução de problemas" no final do primeiro artigo deve ser sua primeira parada.
- Se você quiser, você pode fazer com que as diretivas “start / stop” executem vários comandos separando-os com um semi-colen (;) ou até mesmo um script. Isso permitirá que você faça algumas coisas bacanas. Por exemplo, eu bati em me enviar um e-mail dizendo que uma sequência foi acionada e de onde.
- Não se esqueça de que "há um aplicativo para isso" e, embora não seja mencionado neste artigo, você é incentivado a pegar o programa de aldravas Android do StavFX.
- Enquanto sobre o assunto do Android, não se esqueça que há um cliente VPN PPTP geralmente embutido no sistema operacional do fabricante.
- O método de, bloqueando algo inicialmente e depois continuando a permitir a comunicação já estabelecida, pode ser usado em praticamente qualquer comunicação baseada em TCP. Na verdade, no Knockd em filmes DD-WRT 1 ~ 6, eu fiz o caminho de volta quando, eu usei o protocolo de desktop remoto (RDP), que usa a porta 3389 como um exemplo.
Quem perturba meu sono?