viernes, 22 de julio de 2016

Conocer estado configuración actual de una interfaz en H3C


Cuando realizamos cambios de configuración en los puertos de un switch por regla general la mayoría de fabricantes requieren que se elimine la configuración anterior y se configuren los nuevos requerimientos. Durante este proceso esa toma suele quedar inoperativa ya quela configuración está a medias. Además el orden de las instrucciones suele ser importante (p.e. en Cisco antes de poner una interfaz en modo trunk hay que especificar el encapsulamiento) por lo que hay veces que podemos perdernos al darnos error alguna instrucción y no saber cuál es la configuración exacta de la interfaz en un momento dado.
Los nuevos switches HP, aquellos que han surgido tras al integración con 3Com, incorporan una funcionalidad muy útil que nos permite ver la configuración de una interfaz concreta sin tener que recurrir a ver toda la configuración general: display this.

Con esta instrucción podemos ver la configuración actual de una interfaz en el momento preciso sin tener que salir de la configuración de la interfaz y recurrir a instrucciones del tipo display current-configuration | begin 1/0/15

[SWITCH01-GigabitEthernet1/0/15]display this
#
interface GigabitEthernet1/0/15
 port link-mode bridge
 port link-type trunk
 port trunk permit vlan all
#
return
[SWITCH01-GigabitEthernet1/0/15]
[SWITCH01-GigabitEthernet1/0/9]display this
#
interface GigabitEthernet1/0/9
 port link-mode bridge
#
return
[SWITCH01-GigabitEthernet1/0/9] 

jueves, 31 de marzo de 2016

Que nuestro Linux no responda al ping

Aunque la seguridad por oscuridad no es una buena idea la verdad es que el hecho de que nuestros servidores pasen inadvertidos para la gran mayoría de sistemas de rastreo automático nos permitirá vivir más tranquilos.

Una de las formas de escapar de las múltiples oleadas de rastreadores es que nuestro servidor no responda a las peticiones ping (ICMP Echo Request) de tal manera que para los rastreadores más sencillos, la inmensa mayoría, nuestro servidor no esté operativo y por lo tanto no intenten atacarlo posteriormente. Se trata pues de una estrategia de ocultación que nos permitirá reducir la cantidad de ataques desde Internet pero que no protegerá nuestros equipos frente a los mismos.

Hacer que Linux ignore todos los ping ahora

Dentro del directorio /proc/sys/net/ipv4 encontramos un fichero llamado icmp_echo_ignore_all que contiene un único valor numérico. Como su propio nombre indica, este fichero, o más bien su contenido, indica al sistema si debe ignorar todas las peticiones icmp echo que reciba. Para ello simplemente hay que darle un valor:

  • 0 para decirle que no ignora las peticiones (es decir, que las responda)
  • 1 para indicar que sí las ignore (es decir, que no responda)

Así que basta ejecutar lo siguiente, como root:

root@linux# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
El problema de esta estrategia es que tras el próximo reinicio el servidor perderá esta configuración y volverá a responder a los ping.

Hacer que Linux ignore todos los ping siempre

Si queremos que el servidor no repsonda al ping aunque se reinicie debemos seguir estos pasos:

  1. Modificar el fichero de configuración /etc/sysctl.conf y añadirle una nueva línea con la siguiente instrucción net.ipv4.icmp_echo_ignore_all = 1
  2. Recargar la configuración con el comando sysctl -p, o bien reiniciar el equipo


Recordad que esta configuración evita que se responda a cualquier ping (incluso los realizados localmente desde el propio equipo) por lo que si queremos que algunas peticiones sí sean respondidas tendremos queoptar por soluciones de filtrado más completas (iptables, etc.).

martes, 2 de febrero de 2016

Consultar entradas DNS en diferentes servidores

En los entornos empresariales podemos encontrarnos con la existencia de servidores DNS (Domain Name System) que permiten una resolución de nombres diferenciada para los usuarios internos y las peticiones públicas. Así los usuarios de la propia empresa reciben una dirección IP privada de tal manera que pueden acceder a los servicios internos directamente mientras que los usuarios públicos, externos a la empresa, reciben una resolución que hace referencia a una dirección IP pública accesible a través de Internet.
Con esta diferenciación se permite separar los dos tráficos (el interno y el público) de tal forma que pueden compartir recursos (servidores, ancho de banda, etc.) o ser totalmente independiente.
Esas configuraciones pueden generar algo de confusión sobre en qué servicio se está trabajando en realidad por lo que puede dificultar la resolución de incidencias.

Veamos cómo averiguar si hay diferencias entre la resolución interna y la externa para un dominio concreto utilizando la propia utilidad de nslookup:

  1. Ejecutamos el programa nslookup 
  2. Realizamos la búsqueda deseada con la configuración de usuario local
  3. Cambiar de servidor de DNS mediante el comando "server"
    1. El servidor 8.8.8.8 del ejemplo es uno de los DNS públicos de Google
  4. Realizar la misma búsqueda y comparar el resultado
Ejemplo:
C:\Users\Andreu>nslookup
Servidor predeterminado:  192.168.1.1
Address:  192.168.1.1

> www.midominio.com
Servidor:  192.168.1.1
Address:  80.58.61.250

Respuesta no autoritativa:
Nombre:  midominio.com
Address:  192.168.3.35
Aliases:  www.midominio.com

> server 8.8.8.8
Servidor predeterminado:  google-public-dns-a.google.com
Address:  8.8.8.8

> www.midominio.com
Servidor:  google-public-dns-a.google.com
Address:  8.8.8.8

Respuesta no autoritativa:
Nombre:  midominio.com
Address:  184.107.221.118
Aliases:  www.midominio.com

>

martes, 29 de diciembre de 2015

Saber usuario que ejecuta consola Windows o terminal Linux

Cuando tenemos que gestionar diferentes servidores nos podemos encontrar con tener que trabajar con distintos usuarios de acceso que tiene diferentes privilegios. Esto puedo llevar a confusiones, así que es interesante saber con qué usuario estamos trabajando.
Quizás tú sepas con que usuario te conectas pero es probable que guardes usuario/contraseña en tu gestor de conexiones y no lo recuerdes o también hay que tener en cuenta que los procesos o scripts pueden no saberlo. Así que poder obtener esta información puede ser útil.

Terminal de Linux

En Linux (o GNU/Linux para los puristas)  existen diferentes aplicaciones para saber qué usuario está ejecutando el terminal. Si bien en el propio promt se suele indicar el usuario que lo está ejecutando es posible modificarlo por lo que es interesante ver otras formas de descubrirlo. Este sistema operativo nació siendo multiusuario por lo que dichas aplicaciones están desde el principio.

El comando más simple sería id:

[root@Server ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@Server ~]#

El comando who nos indica qué usuarios están conectados por lo que si somos el único usuario podremos saber nuestro login:
[root@Server ~]# who
root     pts/0        2015-12-29 15:39 (Origen SSH)
[root@Server~]#

Consola de comandos bajo Windows

MS-DOS nació siendo un entorno monousuario si bien desde hace ya muchos años Windows permite el trabajo multiusario sin problemas. Así MS-DOS no dispone de las facilidades de origen que sí dispone Linux (usuario en el prompt, comandos específicos), las posteriores versiones de Windows han ido incorporando mejoras en las consolas  y han llegado a incluir el comando whoami (del inglés Who am I?)que proporciona el usuario utilizado en esa conexión a la consola.

C:\Windows\system32>whoami
domino\usuario
C:\Windows\system32>

martes, 5 de agosto de 2014

Configuración SNMP básica en CISCO

Ya vimos en la entrada anterior sobre cómo configurar SNMP en switches HP, el motivo de la creación de este protocolo y como aplicarlo, y securizarlo, en los equipos de ese fabricante. En este artículo veremos cómo activarlo para permitir la monitorización pero manteniendo una seguridad básica de acceso.
Las versiones 1 y 2c del protocolo no cifran la comunidad por lo que es posible que alguienno deseado tenga acceso a la misma. Para evitar que aún conociendo la comunidad puedan acceder a la información del equipo restringiremos el acceso mediante una access-list.

1. Creamos la ACL que permitirá el acceso a nuestros equipos de monitorización, y sólo a estos:
access-list 15 permit 10.10.20.2
access-list 15 permit 10.20.20.2
access-list 15 deny any log
2. Creamos la nueva comunidad (NombreDeComunidad), nunca usar public, de sólo lectura (RO) aplicando el access-list que acabamos de crear:
snmp-server community NombreDeComunidad RO 15
Con estos sencillos pasos hemos habilitado la recepción de peticiones de lectura SNMP con una comunidad específica y, al mismo tiempo, limitando el acceso a sólo a los servidores de monitorización que queramos.

En otras entradas explicaré como activar el envío de traps SNMP.