Ahora mismo tengo VPN SSL en wan1 con acceso limitado a hosts específicos y algunas feeds para los hosts donde NIEGO la fuente. No hay cuentas locales para VPN, todo es 2fa SAML a entra/identity/sea lo que se llamen hoy en día. Cada inicio de sesión exitoso en VPN se me envía por correo, y también los fallos. Para los fallos, se bloquean automáticamente por 24 horas tras un solo intento y los ingreso en nuestra propia feed privada para bloquear toda la /24 de donde provienen. A veces veo patrones de hosts expuestos y puedo anticiparme a ellos. Las feeds también bloquean el tráfico entrante y saliente. Parece funcionar bastante bien. Lo único que me preocupa es ver antiguos IDs de usuarios legítimos en la lista de fallos, muy acostumbrado a ver todos los nombres inventados o de invitados, copiadoras, soporte, etc.
He estado pensando en poner la VPN SSL en un loopback porque todos dicen que debería hacer eso, pero realmente no entiendo qué más control obtengo (o necesito) con eso en comparación con lo que hago ahora… pero probablemente no sepa lo que no sé aquí. ¿Alguien quiere explicarme en qué podría ser deficiente esto?
Haz esto al 100%. Toma menos de una hora. Es útil si tu subred WAN es un /29 o /27, ya que tu IP WAN y VIP externo a Loopback deberían diferir. Es mucho más fácil gestionar bloqueos. Configuramos 4 políticas:
Bloqueos geográficos
Bloqueos de servicios de Internet
Listas de bloqueo personalizadas
Permiso VPN SSL
La segunda regla es la más valiosa, puedes bloquear Stark Industries y otros proveedores sospechosos, lo que redujo el número de intentos contra nosotros en al menos un 50%.
Usa un loopback
Aquí está toda mi configuración de SSLVPN con loopback, bloqueo ASN, bloqueo geográfico, auto-bloqueo de aproximadamente 20 nombres de usuario que más atacan por fuerza bruta, usa el ISDB de fortigate y más.
https://github.com/wallacebrf/dns/blob/main/SSL_VPN%20Config%20with%20loopback%20and%20auto-block.txt
Leí su guía. Uso el bloqueo ISDB como sugiere en entrada y salida; eso cubriría en ese momento la VPN SSL, ¿no?
geográfico ya puedo hacerlo, lo mismo con listas de bloqueo personalizadas. Lo tengo configurado para NIEGAR los hosts… así que mi geo cubre todo menos EE. UU. y mis otras listas de bloqueos de IP también funcionan allí. Sin embargo, veo que no puedo hacer el ISDB allí. Supongo que no entendí que la VPN SSL era su propia interfaz, así que ahora tiene sentido que la interfaz Loopback ponga la interfaz VPN SSL detrás de una interfaz que no puede exponer al bloqueo ISDB.
Gracias por las notas de configuración. Otra persona señaló que puede no funcionar con una sola IP en la WAN. No uso el puerto 443 para nada más, ¿no sería solo un reenvío de puerto del VIP al loopback y estaría bien?
Literalmente pasé por esto hoy. Terminé poniendo la VPN en loopback y cambiando el puerto predeterminado. Puedes poner ISDB en las reglas de interfaz de entrada y salida, pero (y los que son mucho más inteligentes que yo pueden explicar esto) la VPN SSL es esencialmente su propia interfaz. La única forma de proteger eso era ejecutarla a través del loopback y proteger esa interfaz con ISDB. El enlace de otro comentario para Yuri fue muy útil.
¿Cómo bloqueabas hosts maliciosos durante 24 horas?
Exacto, solíamos hacer eso también, pero es mucho más fácil cuando lo configuras en loopback porque se convierte en una interfaz que puedes monitorear con registros mejorados y filtrar con múltiples políticas; lo más importante, como otros han mencionado, es la base de datos de servicios de Internet (necesitas tener el firmware 7.2.x o superior para aprovechar esto al máximo). Asegúrate de desactivar NEGATE cuando cambies a loopback. Honestamente, loopback debería ser lo predeterminado en FortiGate, pero creo que no funcionará si solo tienes una IP estática. Un punto importante, si registras en FAZ o Syslog, debes asegurarte de que ambos tengan sus configuraciones de registro en “set local-traffic enable” para que puedas ver el tráfico que golpea las políticas del loopback.
config log setting
set local-in-allow enable
set local-out enable
exit
config log syslogd filter
set local-traffic enable
exit
config log fortianalyzer filter
set local-traffic enable
exit
config log disk filter
set local-traffic enable
exit
config log null-device filter
set local-traffic enable
exit
Aquí está la política ISDB que usamos para bloquear los servicios de Internet que podrían lanzar escaneos o sondeos contra nosotros.
config firewall policy
edit ###
set name "Deny-In-SSLVPNLoop1-Services"
set srcintf "WAN"
set dstintf "loop1"
set dstaddr "sslvpnloop_ISP"
set internet-service-src enable
set internet-service-src-name "Akamai-CDN" "Amazon-AWS" "Botnet-C&C.Server" "Fastly-CDN" "Google-Google.Cloud" "Malicious-Malicious.Server" "Microsoft-Azure" "Phishing-Phishing.Server" "Proxy-Proxy.Server" "Tor-Exit.Node" "Tor-Relay.Node" "VPN-Anonymous.VPN" "BinaryEdge-Scanner" "Censys-Scanner" "CriminalIP-Scanner" "Cyber.Casa-Scanner" "Internet.Census.Group-Scanner" "InterneTTL-Scanner" "LeakIX-Scanner" "NetScout-Scanner" "Recyber-Scanner" "Shadowserver-Scanner" "Shodan-Scanner" "Stretchoid-Scanner" "Tenable-Tenable.io.Cloud.Scanner" "UK.NCSC-Scanner" "8X8-8X8.Cloud" "Akamai-Linode.Cloud" "Alibaba-Alibaba.Cloud" "Amazon-AWS.Cloud9" "Amazon-AWS.CloudFront" "Amazon-AWS.GovCloud.US" "Atlassian-Atlassian.Cloud" "Cato-Cato.Cloud" "Cisco-Meraki.Cloud" "Cloud4Wi-Other" "Cloudflare-CDN" "Cloudflare-Other" "Elastic-Elastic.Cloud" "Extreme-Extreme.Cloud" "Gigas-Gigas.Cloud" "Imperva-Imperva.Cloud.WAF" "Ingenuity-Ingenuity.Cloud.Service" "Jamf-Jamf.Cloud" "Netskope-Netskope.Cloud" "OVHcloud-OVHcloud" "Performive-Performive.Cloud" "Qualys-Qualys.Cloud.Platform" "RedShield-RedShield.Cloud" "SentinelOne-SentinelOne.Cloud" "VadeSecure-VadeSecure.Cloud" "Veritas-Enterprise.Vault.Cloud" "Zscaler-Zscaler.Cloud" "Google-Google.Bot" "ColoCrossing-ColoCrossing.Hosting.Service" "DigitalOcean-DigitalOcean.Platform" "GTHost-Dedicated.Instant.Servers" "Hetzner-Hetzner.Hosting.Service" "Hosting-Bulletproof.Hosting" "Hurricane.Electric-Hurricane.Electric.Internet.Services" "SERVERD-SERVERD.Hosting.Service" "Stark.Industries-Stark.Industries.Hosting.Service" "Kaspersky-Other" "LaunchDarkly-LaunchDarkly.Platform" "Microsoft-Bing.Bot" "Sendgrid-Sendgrid.Email" "Skyhigh.Security-Secure.Web.Gateway" "Spam-Spamming.Server" "Tencent-Other" "XING-Other" "Yandex-Other" "Zuora-Other" "Alibaba-DingTalk" "Alibaba-Other" "Amazon-AWS.EC2" "Baidu-Other" "Cybozu-Other" "GitHub-GitHub" "GoDaddy-Other" "Kakao-Kakao.Services" "mail.ru-Other" "Microsoft-Azure.Virtual.Desktop" "Neustar-UltraDNS.Probes" "VK-Other" "Voximplant-Voximplant.Platform" "Wetransfer-Other"
set schedule "always"
set service "ALL"
set logtraffic all
set comments "Deny Hostile Networks"
next
end
Hay algunos en esta lista que no son necesariamente hostiles, pero optamos por un enfoque de “rechazar todo lo que NUNCA será una fuente válida de tráfico VPN”. Funciona bien para nosotros, YMMV.
Tengo una IP en mi WAN para IPv4 y otra para IPv6. El VIP se utiliza para mapear la dirección IP pública a la dirección IP a la que está vinculada la interfaz VPN SSL.
No he tenido problemas con esta configuración.
Tiene que hacerse en CLI
Cómo limitar los intentos de inicio de sesión en VPN SSL y bloquear - Comunidad Fortinet
Tengo configurado para 1 intento y un máximo de 86400 segundos.
Tengo curiosidad por saber por qué no funcionaría con una sola IP de WAN. Si no uso el puerto 443 en otro lugar, el VIP simplemente redirecciona al loopback y estaría bien.
Aprecio la ayuda en esto. Pude hacer esto con una IP estática, pero no estábamos usando el 443 en otro lado, así que no había conflicto por eso. Es una lista de ISDB enorme… ¿solo seleccionaste todos y eliminaste lo que necesitabas acceder?
Gracias por eso. Feliz de informar que, tras cambiar el puerto predeterminado de SSLVPN y ejecutarlo con el loopback, actualmente no recibo alertas de intentos de inicio de session SSLVPN
Creo que la guía que seguí sugería usar otra IP/VIP si estás anunciando el puerto 443, lo cual hacemos para el acceso al portal web. Tenemos varios otros VIP que también usan 443, por eso los tenemos en IPs dedicadas para nuestro subred asignada. Si tienes una configuración más simple solo con VPN SSL anunciada, entonces puede funcionar, o puedes elegir un puerto poco común. Tiene sentido, pero no lo he probado. Tenemos un /27, así que hay muchas IPs libres para nosotros.
Basándonos en años de instinto, pero también preguntándonos, ¿alguna vez veremos tráfico legítimo desde X? También pudimos analizar los registros de quién estaba escaneando/probando nuestro sistema. Definitivamente, bloqueamos Stark Industries.
Muchos de nuestros usuarios remotos terminan conectándose desde hoteles y similares. Desafortunadamente, tengo que usar el puerto 443.