Hace unos días comencé a preocuparme mucho por la seguridad de mis datos, nmap
y terminé con:nmap 127.0.0.1
Sorpresa, sorpresa, tengo muchos servicios activos escucha localhost:
$ nmap 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2013-05-05 00:19 WEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00025s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
El único que podría usar es ssh
(aunque probablemente no esté bien configurado, mantendré este asunto en otra pregunta).
Por lo que sé ipp
, CUPS utiliza el protocolo para compartir mis impresoras, no necesito compartirlas, solo acceder a las impresoras desde un servidor.
Esta es la salida del netstat -lntup
usuario raíz, eliminando las direcciones localhost:
Active Internet connections (only servers)
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 497/sshd
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN 2217/dropbox
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:50022 0.0.0.0:* LISTEN 1021/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 906/rpcbind
tcp6 0 0 :::22 :::* LISTEN 497/sshd
tcp6 0 0 :::42712 :::* LISTEN 1021/rpc.statd
tcp6 0 0 :::445 :::* LISTEN 892/smbd
tcp6 0 0 :::139 :::* LISTEN 892/smbd
tcp6 0 0 :::111 :::* LISTEN 906/rpcbind
udp 0 0 0.0.0.0:51566 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:68 0.0.0.0:* 7362/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 906/rpcbind
udp 0 0 192.168.1.255:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:137 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.255:138 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:655 0.0.0.0:* 906/rpcbind
udp 0 0 0.0.0.0:17500 0.0.0.0:* 2217/dropbox
udp 0 0 0.0.0.0:5353 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:34805 0.0.0.0:* 1021/rpc.statd
udp6 0 0 :::40192 :::* 1021/rpc.statd
udp6 0 0 :::111 :::* 906/rpcbind
udp6 0 0 :::655 :::* 906/rpcbind
udp6 0 0 :::5353 :::* 615/avahi-daemon: r
udp6 0 0 :::42629 :::* 615/avahi-daemon: r
¿Cómo configuro esos servicios para que solo escuchen el mundo exterior cuando realmente los estoy usando?
netstat -lntup
-l = escuchar -n = número -t = tcp -u = udp -p = pid. Muestra qué procesos está ejecutando y qué puertos están exponiendo. Cualquier cosa abierta a 127.0.0.1 es inaccesible a internet.eth0
,?) Agregandosmb.conf
las dos directivasbind interfaces only = yes
yinterfaces = eth0
.Respuestas:
Determina tu exposición
Tomando su salida del
netstat
comando, lo que parece una gran cantidad de servicios es en realidad una lista muy corta:Obteniendo un plano de la tierra
Mirando esta lista, hay varios servicios que dejaría en paz.
Comience a reducirlo - deshabilite Samba
Probablemente puede desactivar de inmediato Samba, representa 2 de los servicios anteriores
nmbd
ysmbd
. Es cuestionable que realmente necesite que se ejecute en una computadora portátil, ya sea en localhost o su IP frente a su red.Para verificar que se estén ejecutando, puede usar el siguiente comando
status
:Desactivar los servicios puede ser confuso con todo el flujo que ha estado ocurriendo con los negocios nuevos, /etc/rc.d, por lo que puede ser difícil determinar qué servicio está bajo qué tecnología. Para Samba puedes usar el
service
comando:Ahora están fuera:
Manteniéndolos fuera ... permanentemente
Para que se mantengan alejados, he estado usando esta herramienta
sysv-rc-conf
, para administrar servicios desde una consola, funciona mejor que la mayoría. Le permite verificar qué servicios desea ejecutar y en qué nivel de ejecución deben iniciarse / detenerse:Deshabilitar el resto de lo que NO es necesario
Así que ahora que Samba está fuera, nos queda lo siguiente:
Para los 3 restantes, puede hacer lo mismo que hicimos para que Samba los apague también.
¿TAZAS?
Para desactivar CUPS, que por cierto no necesita, puede seguir el mismo baile de desactivar el servicio y luego desactivarlo para que no se inicie. Para poder imprimir necesitará configurar cada impresora individualmente en su sistema. Puede hacerlo a través de la
system-config-printer
GUI.¿Hacer estos servicios a pedido?
Este es realmente el corazón de su pregunta, pero en realidad no hay una solución definitiva para hacer que estos servicios sean "inteligentes" para que funcionen cuando se usan, en lugar de todo el tiempo.
# 1 - systemd vs. advenedizoParte de esto es la división actual entre systemd y upstart . Hay una buena visión general de las tecnologías de la competencia 2 aquí .
Ambas tecnologías están tratando de hacer cosas ligeramente diferentes, en mi opinión, dado su conjunto de características, systemd parece estar más orientado hacia los servidores, mientras que el arranque parece más orientado hacia el rollo de escritorio. Con el tiempo, esto funcionará solo, IMO, y ambos servicios serán estables y ricos en funciones.
Eventualmente, ambos servicios ofrecerán a pedido, comenzando y deteniéndose en todos los ámbitos de todos los servicios que administran. Características como las que
# 2 - soporte de servicioStopWhenUnneeded=yes
ya existen,systemd
por ejemplo, por lo que es solo cuestión de tiempo hasta que estas capacidades se desarrollen.Algunos servicios no permiten detener / iniciar muy bien, si es que lo hacen. Los servicios que
sshd
parecen tener poco sentido para ejecutarse como a pedido, especialmente si se usan mucho. Además, algunos servicios como Apache proporcionan mecanismos dentro de sí mismos para hacer que más o menos sus propios oyentes se administren. Por lo tanto, no está claro cómo los servicios a pedido brindansystemd
oupstart
se integrarán con este tipo de servicios.¿Es esto realmente necesario?
Escuchará de ambos lados que esto es excesivo o que debe adoptar un enfoque minimalista solo instalando lo que absolutamente necesita, pero es realmente una elección personal. Comprender que estos servicios están ahí y que lo que hacen es realmente lo importante. Al final del día, una computadora es una herramienta, y al usar un sistema Unix ya estás diciendo que estás dispuesto a mirar detrás de la cortina y entender qué hace que tu computadora funcione.
Diría que este tipo de preguntas es exactamente el estado de ánimo por el que uno debe luchar cuando se trata de computadoras y Unix en general.
Referencias
systemd - wikipedia
[10: http://tech.cueup.com/blog/2013/03/08/running-daemons/
fuente
127.0.0.1 no es el "mundo exterior", está mirando dentro de la casa.
Verifique la configuración de su firewall (iptables en Linux hoy), la mayoría de ellos no deberían ser accesibles desde afuera.
No ejecute servicios que no necesita. Desinstale todo el software no requerido.
Cambia las contraseñas para ser más fuerte. Comprueba tu uso del sistema, no persigas ningún sitio web interesante al azar. Verifique la configuración antifraude, antiscripts, etc. del navegador. Revise su uso de SSH y su / sudo.
Pero, sobre todo, la paranoia excesiva es contraproducente. No te dejes atrapar por el brillo de la tecnología .
fuente
Si bien puede 'cerrar' los servicios individuales, tal vez sea más fácil configurar un firewall. Casi todas las distribuciones comunes (Ubuntu, Debian, Centos, etc.) tienen soporte para iptables incorporado.
Un conjunto de reglas simple para comenzar: (puede escribirlos en el símbolo del sistema; para que sean permanentes, agréguelos a sus scripts de inicio o díganos qué distribución está usando. En Centos por ejemplo: system-config -firewall es una buena interfaz de usuario para configurar las reglas de iptables)
Básicamente - permitir ssh entrante; deja todo lo demás.
Su cadena de ENTRADA ahora se ve así:
Luego, en una fecha posterior, digamos que desea permitir 'samba' (uso compartido de archivos de Windows): podría ejecutar
El
-I
antecede y gobierna a la lista;-A
añade una regla Entonces su cadena ahora se ve así:La
INPUT
cadena se refiere a los paquetes destinados a su sistema. Otras cadenas sonOUTPUT
para paquetes de su computadora, para ir a Internet yFORWARD
para paquetes que se enrutan a través de su computadora (es decir, paquetes que "transitan" a su computadora, como el área de tránsito de un aeropuerto; cosas que noINPUT
se deben a que no ingresan a su computadora )Como nota de despedida: nmap'ing 127.0.0.1 no es muy útil; Se puede acceder a muchos servicios solo desde 127.0.0.1 y desde ninguna otra dirección. Si no tiene otra máquina desde la que pueda ejecutar nmap, ¡intente usar Gibson Research 'Shields UP! ( https://www.grc.com/shieldsup ), que es un nmap-lite gratuito en línea. O agregue un comentario con su IP / correo electrónico y lo mapearé :)
fuente