En sistemas RedHat/CentOS (quizás me equivoque) por defecto al instalar snmp (Simple Network Management Protocol) el servicio escucha automáticamente en todas las IP configuradas del sistema -> 0.0.0.0:*, no obstante, me ha pasado que al instalar snmp en Debian por defecto el servicio únicamente escuchaba en localhost -> 127.0.0.1:*
Bien, buscando por Internet he encontrado diversas soluciones, pero la más sencilla y eficaz es la de añadir la siguiente directiva en el fichero de configuración snmpd.conf (normalmente en /etc/snmpd/snmpd.conf), donde xx.xx.xx.xx es la IP en la que queréis que escuche:
agentaddress xx.xx.xx.xx
Posteriormente recargáis el servicio:
service snmpd reload
Después, verificad que escucha por la IP que habéis configurado:
# netstat -nau
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 0.0.0.0:161 0.0.0.0:*
Si queréis, en Cybercity tenéis información ampliada sobre las distintas posibilidades.
Mediante el sistema de IPs virtuales podemos asignar varias direcciones IP a una misma interfaz de red. A continuación os indico como hacerlo en sistemas Red-Hat (Centos, Fedora, etc).
En la ruta /etc/sysconfig/network-scripts encontraréis los ficheros de arranque de cada una de las interfaces de red del sistema:
# ls -l /etc/sysconfig/network-scripts/ifcfg-*
-rw-r--r-- 3 root root 201 Jul 7 16:01 /etc/sysconfig/network-scripts/ifcfg-eth0
-rw-rw-rw- 3 root root 178 Jul 7 16:00 /etc/sysconfig/network-scripts/ifcfg-eth1
-rw-r--r-- 1 root root 254 Sep 24 2008 /etc/sysconfig/network-scripts/ifcfg-lo
En este caso, queremos que la interfaz de red eth0 contenga una IP virtual además de la IP principal de la misma, simplemente tendríamos que crear un nuevo fichero de configuración, llamado ifcfg-eth0:0 (sucesivas IPs virtuales serían ifcfg-eth0:1, ifcfg-eth0:2,….). El contenido del fichero será el mismo que el de ifcfg-eth0 pero con las siguientes modificaciones:
ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:22:7e:3c:3b:12
IPADDR=192.168.0.110
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=192.168.0.1
TYPE=Ethernet
ifcfg-eth0:0
Veréis que cambiamos la IP por la IP virtual y DEVICE por el nuevo identificador ( eth0:0 ), por lo demás, tanto la dirección MAC de la tarjeta de red sigue siendo la misma, protocolo de arranque, etc:
DEVICE=eth0:0
BOOTPROTO=static
HWADDR=00:22:7e:3c:3b:12
IPADDR=192.168.0.111
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=192.168.0.1
TYPE=Ethernet
Una vez completado el proceso, reiniciamos la red o levantamos la nueva IP virtual:
service network restart
ifup eth0:0
La nueva IP ya debería responder a ping.
Existen muchas formas de escanear desde shell un rango de IPs o subnet, por ejemplo con nmap o creando un script en bash, perl, etc. No obstante aquí va una forma sencilla que he encontrado en Shell Fu:
for IP in 192.168.1.{1..10}; do if ping $IP -c 1 > /dev/null; then echo $IP alive; else echo $IP dead; fi; done
Y la salida (escaneo desde la 192.168.1.1 a 192.168.1.10
~$ for IP in 192.168.1.{1..10}; do if ping $IP -c 1 > /dev/null; then echo $IP alive; else echo $IP dead; fi; done
192.168.1.1 alive
192.168.1.2 dead
192.168.1.3 dead
192.168.1.4 dead
192.168.1.5 dead
192.168.1.6 dead
192.168.1.7 dead
192.168.1.8 dead
192.168.1.9 dead
192.168.1.10 dead
netstat -plan|grep :<puerto> | awk {'print $5'} | cut -d: -f 1 | sort | uniq -c | sort -n
Ejemplo:
Conexiones a apache:
# netstat -plan|grep :80 | awk {'print $5'} | cut -d: -f 1 | sort | uniq -c | sort -n
1 XX.XX.XXX.XXX
1 XX.XX.XXX.XXX
1 XX.XX.XXX.XXX
51 XX.XX.XXX.XXX
64 XX.XX.XXX.XXX
Por explicar un poco el comando, NETSTAT muestra un listado de las conexiones activas del servidor, con GREP filtramos solo las conexiones al puerto 80, con AWK filtramos para que muestre solamente el contenido de la columna 5 (en este caso la IP) de la salida por pantalla, con CUT quitamos el “:”, con SORT ordenamos, con UNIQ sacamos valores únicos, y con SORT ordenamos de nuevo por nº de conexiones.
Comentarios recientes