Cree un proceso seguro para abrir un puerto de firewall en un servidor (en
demanda) inicia un servidor de escucha y, finalmente, cierra el firewall
puerto.
Tu objetivo parece defectuoso por muchas razones. Esto no sería escalable en un entorno empresarial debido a la falta de puertos disponibles que podría florecer en un día pesado de visitas / trabajo. Siempre tendría que tener varios firewalls en round-robin detrás de balanceo de carga. Además, su firewall necesitaría todos los tipos de ASIC para que funcione, lo que lo convierte en un firewall bastante caro. En el lado DoS de la ecuación, estás equivocado. El envío de 10 gbps a cualquier socket abierto o no eliminará una conexión de 1 gb, independientemente de la cantidad de rechazos / rechazos (que no son una buena idea), que usted prevé realizar. La lógica MEJOR sería configurar su enrutador para que solo acepte conexiones de fuentes confiables y bloquee todo el resto.
Ni siquiera voy a entrar en las estadísticas de las vulnerabilidades en el lado del cliente, el phishing y otros ataques que su firewall no detendrá. Pero al comienzo, su objetivo no hace mucho, pero agrega muchos gastos generales y complejidades que probablemente lo obstaculizarán en el futuro.
Su implementación también es defectuosa y se basa en la seguridad a través de la oscuridad (cambio del puerto del cortafuegos). Sería mejor usar el puerto estándar con reglas en su lugar con autenticación de dos factores. Estás asumiendo que un atacante no encontrará el puerto. Si bien puede minimizar la fruta colgada, eventualmente alguien encontrará el puerto y, aunque no pueda hacer nada, puede realizar un agotamiento de recursos (DoS) contra su firewall. Eso a su vez dependiendo de su ubicación podría bloquear totalmente todo el tráfico. El acceso " Root " es una idea horrible, especialmente en el punto de egreso, y ¿estás asumiendo que un firewall de esta naturaleza se ejecutará tal vez con Linux? Si bien puede ser, la mayoría de los firewalls basados en ASIC que necesitan realizar un transporte pesado tienden a consistir en JeOS (solo el sistema operativo suficiente). Pero si insistes en ir a la ruta de Linux, para eso está el sudo.
No me molesté con suposiciones , no hay necesidad de hacerlo.