¿Qué tan probable es que me hayan pirateado ejecutando un servidor local para el desarrollo?

4

Durante los últimos días he estado aprendiendo Apache y los servidores en general. Instalé Apache, PHP y mySQL en mi sistema Ubuntu y accedí a mi sitio web con 'localhost'. Siempre he pensado que cuando ejecutas algo como localhost, nunca dejas nada en tu computadora y no se puede acceder a tu servidor con las computadoras de tu red WiFi, y mucho menos con otras computadoras conectadas a Internet. Sin embargo, me asusté cuando en un video tutorial que vi les dijeron que apagaran su conexión a Internet tan pronto como instalen Apache. ¿Está justificado? No hay información confidencial en la base de datos o en / var / www, todos son datos ficticios solo para fines de aprendizaje, pero me preocupa que alguien pueda piratear todo mi sistema.

Teniendo en cuenta que he estado haciendo esto durante los últimos días, ¿debería considerarme hackeado?

Y para que quede claro, cuando ejecuto mi servidor localmente y puedo acceder a través de localhost, ¿está disponible para las personas en Internet?

    
pregunta wenn 03.01.2017 - 19:09
fuente

3 respuestas

9
  

siempre he pensado que cuando ejecutas algo como localhost, nada   Alguna vez deja su computadora y su servidor no puede ser accedido por   computadoras en tu red WiFi

El acceso a sus servicios a través de localhost no significa que se esté ejecutando como localhost:

Al iniciar un demonio, como Apache y MySQL, puede ejecutarse en localhost o en todas las interfaces. Si su dirección IP es, digamos, 10.0.0.5; y Apache se ejecuta en todas las interfaces; puede acceder a sus páginas tanto en http (s): //10.0.0.5 como en 127. *. Ahora, incluso ejecutándolo en todas las interfaces, si está protegido por un dispositivo NAT, como sus puntos de acceso predeterminados, es poco probable que alguien se dirija a su red. Por supuesto, todos los usuarios en la misma red (WLAN, ...) podrían acceder a su demonio.

La mejor manera de verificar esto es ejecutar un netstat -an en su máquina, la salida debería ser algo como:

$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      -
tcp6       0      0 :::80                   :::*                    LISTEN      -

Aquí puede ver que SSH (22) se ejecuta en todas mis interfaces IPv4, 6379 (redis) solo se puede acceder en localhost y http (80) en todas las interfaces IPv4 e IPv6 (::: 80).

Ejecutarlos localmente solo depende del demonio en sí mismo, apache permite un Listen 127.0.0.1:80 en el archivo httpd.conf, MySQL le permite poner un bind-address = 127.0.0.1 en el archivo my.cnf (bajo la directiva [mysqld]) y pronto. Una medida adicional que puede hacer es bloquear todos los puertos que usan IPTables en su interfaz (wlan0, eth0, ...), y permitir solo los servicios que desea publicar.

No es seguro considerar "hackeado". Fue, si se expone, seguro sujeto a ella. Depende si tienes malas credenciales, versiones vulnerables, ...

    
respondido por el ndrix 03.01.2017 - 19:26
fuente
2

Muchas aplicaciones comunes son inseguras por defecto, y si solo estás escribiendo tu primer PHP, es muy probable que tenga vulnerabilidades. ¿Alguna de estas cosas que pueden afectar a su computadora es más que desordenar su base de datos (lo que no le importa)? Tal vez, dependiendo de lo que sean.

La forma en que accede al servidor web no afecta a quién más puede acceder a él; Lo que importa es cómo está configurado el servidor. Por lo general, Apache se configura de manera predeterminada para escuchar todas las solicitudes en el puerto 80. Para cambiar esto, solo debe ser accesible a través de localhost, cambia esto a Listen 127.0.0.1:80 .

También deberías consultar las reglas de firewall para tu sistema, ya que eso brindará una capa adicional de protección.

    
respondido por el Xiong Chiamiov 03.01.2017 - 19:28
fuente
1

Además de las respuestas ya dadas, también señalaría dos cosas adicionales:

  • Si está ejecutando algo como Windows 10, tendrá una protección de entrada automática de todos modos y nadie podrá conectarse al servicio web en su PC a menos que haya respondido a ese diálogo siempre útil que de vez en cuando le pregunta si desea Permite algún tipo de acceso a la red, ya sea en redes públicas o privadas. Cuando utilice una red Wi-Fi que no sea suya, asegúrese siempre de establecerla como una red pública y no permita que Apache hable sobre redes públicas.

    Para Linux, tendrá algo llamado IPTABLES. Como suele ser el caso de Linux, la configuración puede ser un poco más complicada, pero la mayoría de las distribuciones tienen un extremo más amigable, como la línea de comandos UFW. Para Linux, debe comprobar que, de nuevo, no se permite ninguna conexión de entrada. Es casi seguro que la instalación de Apache en Linux reconfigure IPTABLES para al menos permitir el tráfico entrante en los puertos 80 y 443.

    No estoy seguro de Mac, me temo.

  • Cuando esté en una conexión Wi-Fi pública, asegúrese de no tener puertos abiertos si la conexión Wi-Fi está "abierta", por ejemplo. no tiene ningún cifrado activado.

respondido por el Julian Knight 03.01.2017 - 22:08
fuente

Lea otras preguntas en las etiquetas