Te hemos mostrado cómo activar WOL de forma remota mediante "Port Knocking" en su enrutador . En este artículo, mostraremos cómo usarlo para proteger un servicio VPN.
Imagen de Aviad Raviv & bfick .
Prefacio
Si ha usado
Funcionalidad incorporada DD-WRT
para VPN o tener
otro servidor VPN
en su red, puede apreciar la capacidad de protegerlo de los ataques de fuerza bruta ocultándolo detrás de una secuencia de golpes. Al hacer esto, filtrará los script kiddies que intentan obtener acceso a su red. Dicho esto, como se indicó en el artículo anterior, la activación de puertos no reemplaza una buena contraseña y / o política de seguridad. Recuerde que, con suficiente paciencia, un atacante puede descubrir la secuencia y realizar un ataque de repetición.
También tenga en cuenta que la desventaja de implementar esto es que cuando cualquier cliente VPN quiera conectarse, tendrá que activar la secuencia de detonación.
antemano
y que si no pueden completar la secuencia por algún motivo, no podrán usar VPN en absoluto.
Visión de conjunto
Para proteger * el servicio VPN, primero deshabilitaremos todas las comunicaciones posibles con él bloqueando el puerto de instanciación de 1723. Para lograr este objetivo, usaremos iptables. Esto se debe a que así es como se filtra la comunicación en la mayoría de las distribuciones modernas de Linux / GNU en general y en DD-WRT en particular. Si desea obtener más información sobre iptables, consulte su entrada wiki y echa un vistazo a nuestro artículo anterior sobre el tema. Una vez que el servicio esté protegido, crearemos una secuencia de golpe que abrirá temporalmente el puerto de instanciación de VPN y también lo cerrará automáticamente después de un período de tiempo configurado, mientras mantiene conectada la sesión de VPN ya establecida.
Nota: En esta guía, usamos el servicio PPTP VPN como ejemplo. Dicho esto, se puede usar el mismo método para otros tipos de VPN, solo tendrá que cambiar el puerto bloqueado y / o el tipo de comunicación.
Requisitos previos, supuestos y recomendaciones
- Se asume / requiere que tenga un Enrutador DD-WRT habilitado para Opkg .
- Se asume / requiere que ya haya realizado los pasos en el " Cómo entrar en su red (DD-WRT) ”Guía.
- Se asume algún conocimiento de redes.
Pongamos manos a la obra.
Defecto Regla "Bloquear nuevas VPN" en DD-WRT
Mientras que el siguiente fragmento de "código" probablemente funcionaría en todas las distribuciones de Linux / GNU que se respeten a sí mismas con iptables, porque hay tantas variantes que solo mostraremos cómo usarlas en DD-WRT. Nada le impide, si lo desea, implementarlo directamente en la caja VPN. Sin embargo, la forma de hacerlo está fuera del alcance de esta guía.
Debido a que queremos aumentar el firewall del enrutador, es lógico que lo agreguemos al script "Firewall". Hacerlo, haría que el comando iptables se ejecute cada vez que se actualice el firewall y así mantendría nuestro aumento en su lugar para siempre.
Desde DD-WRT Web-GUI:
-
Vaya a "Administración" -> "Comandos".
-
Ingrese el "código" a continuación en el cuadro de texto:
inline = "$ (iptables -L INPUT -n | grep -n" estado RELACIONADO, ESTABLECIDO "| awk -F: {'print $1'})"; en línea = $ (($ en línea-2 + 1)); iptables -I INPUT "$ en línea" -p tcp --dport 1723 -j DROP - Haga clic en "Guardar firewall".
- Hecho.
¿Qué es este comando "vudú"?
El comando de "magia vudú" anterior hace lo siguiente:
- Encuentra dónde está la línea iptable que permite el paso de la comunicación ya establecida. Hacemos esto porque A. En los enrutadores DD-WRT, si el servicio VPN está habilitado, se ubicará justo debajo de esta línea y B. Es esencial para nuestro objetivo de continuar permitiendo que las sesiones VPN ya establecidas continúen después de la evento de golpe.
- Resta dos (2) de la salida del comando de listado para tener en cuenta el desplazamiento causado por los encabezados de las columnas de información. Una vez hecho esto, suma uno (1) al número anterior, de modo que la regla que estamos insertando vendrá justo después de la regla que permite la comunicación ya establecida. Dejé este "problema matemático" muy simple aquí, solo para aclarar la lógica de "por qué es necesario reducir uno del lugar de la regla en lugar de agregar uno".
Configuración KnockD
Necesitamos crear una nueva secuencia de activación que permitirá la creación de nuevas conexiones VPN. Para hacer esto, edite el archivo knockd.conf emitiendo en una terminal:
vi /opt/etc/knockd.conf
Anexar a la configuración existente:
[enable-VPN]
secuencia = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
comando_inicio = iptables -I ENTRADA 1 -s% IP% -p tcp --dport 1723 -j ACEPTAR
cmd_timeout = 20
stop_command = iptables -D ENTRADA -s% IP% -p tcp --dport 1723 -j ACEPTAR
Esta configuración:
- Establezca la ventana de oportunidad para completar la secuencia en 60 segundos. (Se recomienda que sea lo más breve posible)
- Escuche una secuencia de tres golpes en los puertos 2, 1 y 2010 (este orden es deliberado para desviar los escáneres de puertos).
- Una vez que se ha detectado la secuencia, ejecute el "start_command". Este comando "iptables" colocará un "aceptar tráfico destinado al puerto 1723 desde donde vinieron los golpes" en la parte superior de las reglas del firewall. (La directiva% IP% es tratada especialmente por KnockD y es reemplazada por la IP del origen de los golpes).
- Espere 20 segundos antes de emitir el "stop_command".
- Ejecute el "stop_command". Donde este comando “iptables” hace lo contrario de lo anterior y borra la regla que permite la comunicación.
Autor Consejos
Si bien debería estar listo, hay un par de puntos que creo que es necesario mencionar.
- Solución de problemas. Recuerde que si tiene problemas, el segmento de "solución de problemas" al final de el primer articulo debería ser tu primera parada.
- Si lo desea, puede hacer que las directivas "start / stop" ejecuten varios comandos separándolos con un semicollen (;) o incluso un script. Hacerlo le permitirá hacer algunas cosas ingeniosas. Por ejemplo, he llamado a la puerta y me ha enviado un * correo electrónico diciéndome que se ha activado una secuencia y desde dónde.
- No olvides que " Hay una aplicación para eso "Y, aunque no se menciona en este artículo, le recomendamos que obtenga StavFX Es Android programa de aldaba .
- En cuanto al tema de Android, no olvide que hay un cliente VPN PPTP generalmente integrado en el sistema operativo del fabricante.
- El método de bloquear algo inicialmente y luego continuar permitiendo la comunicación ya establecida, se puede utilizar en prácticamente cualquier comunicación basada en TCP. De hecho en el Golpeó en DD-WRT 1 ~ 6 películas, lo hice hace mucho tiempo, usé el protocolo de escritorio remoto (RDP) que usa el puerto 3389 como ejemplo.