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.