pregunta sobre el firewall de Linux

pregunta sobre el firewall de Linux

Tengo algunas preguntas genéricas sobre firewalls y pensé que la comunidad de aquí podría ayudarme.

1) Recientemente instalé el servidor Ubuntu barebones. Revisé si había puertos abiertos y ninguno estaba abierto, lo cual fue genial. ¿Es porque había un firewall instalado o porque no había aplicaciones instaladas?

2) Instalé algunas aplicaciones (Apache, postgres, ssh, aplicación Java y algunas pocas). Entre estos, terminé abriendo algunos puertos (~10). Ahora tengo una lista de todos los puertos que necesitaría abrir. Entonces, ¿cómo hago para protegerlos? [¿Es esta la pregunta correcta? ¿El proceso es así? Instalar Firewall -> Permitir dichos puertos necesarios -> negar el descanso usando las reglas de IPtables]

Esto estará abierto a Internet. Alojamiento de sitios de comercio electrónico de bajo tráfico.

3) ¿Cuál cree que es la forma más fácil para mí de garantizar un servidor cuasi seguro? [Baja sobrecarga de mantenimiento/simplicidad]. ¿Algún "software" de código abierto que pueda hacerme la vida más fácil?]

4) Finalmente, de dichos puertos abiertos [2], tengo 2 puertos que necesito cerrar porque son puertos telnet. ¿Puedo cerrar estos puertos sin instalar un "firewall"?

Gracias a todos por la ayuda y Feliz Navidad!!!!!!!

Respuesta1

  1. No tenías puertos de escucha porque no tenías procesos de escucha. Ubuntu hace un buen trabajo a este respecto en una instalación predeterminada. Aquellos procesos que requieren un puerto de escucha suelen utilizar localhost (127.0.0.1) de forma predeterminada. Esto impide el acceso directo desde sistemas remotos.
  2. Se espera que aplicaciones como Apache y el servidor SSH escuchen conexiones desde servidores remotos. Apache tiene sus propias listas ACL para asegurar el acceso. El servidor SSH se puede proteger utilizando los archivos hosts.allow y hosts.deny además de su configuración. Las aplicaciones my MySQL y PostresSQL deberían escuchar en localhost de forma predeterminada. Si necesita acceso desde otro sistema, deberá cambiar la configuración de su escucha. Por lo general, tendrán uno o más mecanismos para asegurar el acceso.
  3. Utilice hosts.allow/hosts.deny para aplicaciones que admitan este mecanismo. Usando un constructor de firewall comoMuro de la costaConstruir un firewall seguro ayuda. Comprender los mecanismos de seguridad propios de cada aplicación ayuda a profundizar sus mecanismos. Una herramienta como logcheck puede monitorear sus registros y notificarle sobre algunos de los eventos que quizás deba verificar. Utilizo Munin para monitorear mis sistemas y, en algunos casos, alertarme sobre problemas. Esto reemplaza el uso anterior de Nagion y MRTG para monitorear y graficar el uso del sistema.
  4. Si tiene telnet ejecutándose, puede cerrar los puertos deteniendo el servicio. A menos que realmente lo necesite, elimine el paquete telnet y reemplácelo con ssh-server. La mayoría de los servidores telnet admiten el uso de hosts.allow/hosts.deny para restringir el acceso. Esto también se aplica a aplicaciones que se ejecutan bajo inetd o xinetd. MySQL y PostgreSQL deben escuchar solo en 127.0.0.1, que está protegido del acceso directo desde fuera de su servidor.

Mi configuración habitual de firewall Shorewall comienza con la configuración de ejemplo para la cantidad de interfaces en el servidor (o zonas de acceso: NET, LAN, DMZ). Tenga en cuenta que si las zonas comparten interfaces o enrutadores, es posible que sean menos seguras de lo que podrían ser. Luego ajusto las reglas según sea necesario.

A menudo deshabilito las políticas de acceso saliente predeterminadas. Estos se reemplazan con reglas que permiten el acceso saliente en los puertos requeridos (DNS, NTP, SMTP, etc.).

Respuesta2

1.) siempre puedes comprobarlo coniptables-Lesta salida significa que no hay firewall:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

2.) sí, simplemente permita los puertos en la cadena de entrada en su interfaz (es decir, eth0) y elimine todo lo demás.

También deberías hacer algunas otras cosas como:

  • NULO
  • Navidad (SYN+FIN+ACK)
  • SYN-FIN

y no olvide configurar las opciones importantes de sysctl

3.) formas sencillas:

  • cortafuegos:http://easyfwgen.morizot.net/gen/
  • herramienta de análisis de registros, que le informa sobre amenazas
  • otras herramientas que realizan comprobaciones proactivas (es decir, fail2ban)
  • herramientas de monitoreo, que le informan sobre el estado de sus máquinas (es decir, zabbix, nagios)

4.) escriba el siguiente comando

root@host:~# netstat -npl | grep LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1417/telnet

el número interesante es el 1417 (número de proceso) después del telnet. matarlo conmatar -9 1417

¡pero ten cuidado con lo que matas!

Si no quieres eliminarlo, puedes usar el firewall para negar el uso de este puerto...

Respuesta3

1) Podrías (compruébalo tú mismo) instalar ssh e intentar ver si en otra computadora con un nmap se muestra el puerto 22 como abierto. 2) Esta es una gran respuesta. Tienes que saber exactamente qué tipo de protección quieres darle a tus servicios... 3)? 4) cerrar el servicio inetd

información relacionada