Consulte los puertos abiertos en FreeBSD

Consulte los puertos abiertos en FreeBSD
En este tutorial, aprenderá a consultar los puertos abiertos en FreeBSD usando una práctica herramienta de línea de comandos llamada SockStat.

SockStat es una utilidad de línea de comandos que viene incluida con FreeBSD. Ve un uso inmenso en el examen de las conexiones de red y abre enchufes. En FreeBSD, enumera los nombres y el estado de los procesos de fondo y primer plano que han causado que un puerto de red se desbloquee. Incluso puede personalizarlo para organizar las listas de socket de comunicación sobre el estado de conexión, las versiones de IP, qué puertos están siendo escuchados por programas específicos, etc., y simplifique los resultados basados ​​en la propiedad del socket y los descriptores para los sockets de comunicación. Con SockStat, también puede ver todos los detalles intrincados en cada uno de los sockets de dominio UNIX/IPC. Un movimiento apto es integrar Sockstat con el filtro GREP para triplicar su funcionalidad y aprovecharlo al máximo.

Veamos algunas de las cosas ordenadas que podemos lograr con Sockstat en FreeBSD.

Enumere los puertos de trabajo en FreeBSD con SockStat

El comando SockStat enumera todos los enchufes que se abren actualmente en un sistema FreeBSD. Escriba el comando SockStat sin apestir con cualquiera de los indicadores u opciones para ver la lista de enchufes abiertos:

$ sockstat

Tomemos un momento y revisemos lo que significa cada una de las etiquetas de la columna en la salida. La primera columna desde la izquierda es usuarios etiquetados, y enumera todas las cuentas de usuario (raíces, mysql) a la que pertenece cada socket a. El encabezado de la segunda columna es el comando, y este encabezado de columna enumera todos los comandos que habían establecido cada socket para abrir. La columna PID y las columnas FD enumeran los ID de proceso y los descriptores de archivos, respectivamente, de los sockets. El proto de la columna muestra todos los protocolos de transporte de tipos de zócalo vinculados a cada puerto abierto. Las últimas dos columnas son la dirección local y la dirección extranjera. El primero de estos dos enumera la dirección IP local para cada enchufe abierto. Mientras que este último indica qué direcciones IP están vinculadas a cada uno de estos enchufes.

Lista de versiones específicas de los puertos abiertos en FreeBSD

Para la lista de enchufes abiertos con una versión de protocolo específica solamente, por ejemplo, la versión IPv4, agregue un indicador -4 al final del comando SockStat:

$ sockstat -4

También puede hacer que presente una lista de otras versiones de manera similar, por ejemplo

$ sockstat -6

Debe mostrar todos los enchufes con IPv6.

Enumere los enchufes abiertos basados ​​en TCP/UDP en FreeBSD

Agregue el indicador -p al comando SockStat para que se presente la lista de enchufes abiertos en función de TCP o UDP. También deberá agregar el nombre del argumento del protocolo al comando, que puede buscar en el archivo /etc /protocolos y verificando el archivo allí. Para tener solo enchufes basados ​​en TCP, escriba el siguiente comando:

$ SOCKSTAT -P TCP

Del mismo modo, puede lista en función de UDP:

$ sockstat -p udp

Estos dos se pueden unir muy simplemente:

$ sockstat -p tcp, udp

Hasta el momento, SockStat no extiende su soporte al protocolo ICMP.

Mostrar enchufes con números de puerto específicos

Para ver todos los enchufes abiertos, tanto TCP como UDP, mientras se organiza la lista en función de los números de puerto (tanto locales como de otro tipo), escriba el comando SockStat con las banderas apropiadas:

$ SOCKSTAT -P TCP -P 443
$ SOCKSTAT -P UDP -P 53
$ SOCKSTAT -P TCP -P 443,53,80,21

En los comandos anteriores, el primero muestra el puerto HTTPS TCP, el segundo los puertos DNS UDP, mientras que el tercero muestra ambos.

Vea los puertos abiertos que se escuchan en FreeBSD

Con la bandera -l agregada al comando SockStat, se le presentará un socket abierto que actualmente está escuchando a través de la suite de protocolo y todos los enchufes de dominio Unix abierto, así como cualquier tubería con nombre.

$ sockstat -l

Enumere los puertos escuchando activamente en la red

Agregue los indicadores -l y -s al comando SockStat para tener los puertos TCP abiertos dispuestos por su estado de escucha.

$ sockstat -46 -l -s

UDP no se puede mostrar como un protocolo sin red, por lo tanto, no conserva datos sobre el estado de escucha.

Organizar puertos abiertos por la aplicación/comando usando ellos

Aquí viene la parte en la que se combina el comando SockStat con GreP Utility es útil; Con GREP Utility, puede tener los puertos abiertos enumerados por las aplicaciones actualmente en el proceso de usarlas.

El comando que utilizaría para enumerar los puertos abiertos vinculados particularmente con el servidor NTPD es:

$ SOCKSTAT -46 | Grep NTPD

Puede hacer que el listado sea más específico haciendo que solo muestre los enchufes conectados agregando el indicador -c al comando anterior:

$ SOCKSTAT -46 -C | Grep NTPD

Muestra todos los enchufes Unix

Tenga todos los enchufes de dominio UNIX enumerados agregando U- un indicador al comando SockStat:

$ sockstat -u

Esto también debe mostrar las tuberías con nombre junto con los enchufes Unix.

Organizar puertos abiertos por protocolos conectados HTTPS

Para que la lista se muestre por el protocolo HTTPS para cada socket, use el comando a continuación:

$ SOCKSTAT -46 -S -P TCP -P 443 -C

Lista de enchufes remotos HTTP

También puede enumerar todos los enchufes remotos actualmente utilizando el protocolo HTTP. Ejecute cualquiera de los siguientes comandos en el terminal:

$ SOCKSTAT -46 -C | EGREP '80 | 443 '| Awk 'imprimir $ 7' | uniq -c | ordenar -nr
$ SOCKSTAT -46 -C -P 80,443 | GREP -V DIRECCIÓN | AWK 'Imprimir $ 7' |
uniq -c | ordenar -nr

Encuentre el número de veces que una dirección IP envía solicitudes

Para saber cuántas solicitudes de conexión se han recibido de cada dirección IP, puede ejecutar el siguiente comando:

$ SOCKSTAT -46 -C | EGREP '80 | 443 '| Awk 'imprimir $ 7' | CUT -D: -F1 | uniq -c | sort -n

Al determinar si hay un número inusualmente alto de solicitudes de conexión enviadas por una dirección IP, puede identificar que hay alguna intención maliciosa y puede ingresar positivamente la alerta amarilla y tomar los protocolos de seguridad apropiados.

Envíe una consulta DNS desde TCP Socket

Puede enviar una consulta DNS utilizando el enchufe TCP en la consola, siempre que la red esté libre de tráfico DNS. Ejecute el comando a continuación:

$ Dig +TCP www.dominio.com @127.0.0.1

Terminando

Por lo tanto, ha aprendido mucho sobre el uso del comando SockStat y sus variaciones con banderas e interruptores. También vio cómo se usa de diferentes maneras para presentar el diagnóstico de la red en diferentes preferencias y utilizar esta información para realizar una resolución de problemas multifacética en FreeBSD. Eso es mucho en sí mismo, pero ahora que estás familiarizado con estas cosas, debes considerar incorporar la línea de comandos de SockStat con algunas herramientas de línea de comandos potentes, como Netstat e ISOF.