El Libro Blanco del Software Libre ha publicado hoy sus Siete deseos para el Software Libre en 2007, que yo hago míos:
1. Que no se aprueben las patentes de software. Probablemente el problema más serio que puede afrontar el SL en 2007 en España y en la UE. Tú puedes hacer algo, infórmate y colabora.
2. Que los formatos realmente abiertos se generalicen en la administración pública. Que nuestros datos como ciudadanos, sean realmente nuestros, y no dependan de aplicaciones de terceros, y que de esta forma se abra el mercado a una mayor competencia. También puedes colaborar aquí e informarte aquí.
3. Que el software libre pueda competir en igualdad de condiciones con el propietario.
4. Que sigan creciendo las empresas que hacen negocio con el Software Libre.
5. Que las administracones públicas coordinen más sus esfuerzos en materia de Software Libre. ¿Hará esto el CENATIC?
6. Que Hispalinux comience una nueva andadura y los grupos locales de usuarios desarrollen muchas actividades.
7. Y que Stallman se afeite la barba para saber qué hay debajo. :-D
Al margen de la nota de humor del punto 7, creo que son cosas muy positivas que todos los amantes del SL deseamos. Ojalá se cumplan.
martes, 16 de enero de 2007
Wake On LAN: Arrancando equipos de forma remota
Wake On LAN es un estándar de redes que permite encender un equipo de forma remota, mediante el envío de un Magic Packet, un paquete especial que recibe la tarjeta de red.
Activar y usar Wake On LAN en nuestros equipos con Linux es muy sencillo (¿qué tarea de redes no lo es en *NIX?), y el software necesario lo tenemos en los repositorios de Debian.
Hay que decir que es necesario que la tarjeta de red soporte WOL, pero todas las tarjetas medianamente modernas lo soportan. También ha de estar la opción habilitada en la BIOS.
En primer lugar echaremos mano de ethtool, una herramienta sumamente útil que nos permite ver o modificar las características y configuración de la tarjeta de red. Lo vamos a usar en el equipo que queremos "despertar".
takashi:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x000000c5 (197)
Link detected: yes
Como vemos, la tarjeta soporta WOL (Supports Wake-on: pumbg), además de otros modos. También vemos que el modo está desactivado (Wake-on: d, por disabled). Para activarlo sólo tendremos que ejecutar
ethtool -s eth0 wol g
y ahora veremos cómo la función se ha activado (Wake-on: g). Por algún motivo, la mayoría de los drivers de red en Linux no dejan la tarjeta en modo WOL, y la opción se vuelve a desactivar durante el shutdown. Si os ocurre esto, podéis incluir un script en /etc/init.d (por ejemplo /etc/init.d/wol) para que se active el modo:
#!/bin/bash
ethtool -s eth0 wol g
Le dais permisos de ejecución y lo enlazais con los que se han de ejecutar durante el apagado (runlevel 0):
ln -sf /etc/rc0.d/K20wol /etc/init.d/wol
En el otro lado, el del equipo que tiene que enviar el Magic Packet, debemos instalar el software que envíe la señal. Podemos optar por etherwake o por wakeonlan. El modo es bien sencillo:
etherwake -i
o bien
wakeonlan -i
Si no especificamos la interfaz con la opción -i, el Magic Packet será enviado a través de la interfaz eth0.
También podeis crear el archivo /etc/ethers donde incluir pares MAC/alias, y poder de esta forma sustituir la dirección MAC del equipo remoto por un alias.
Así, cada vez que necesiteis hacer algo en otro equipo de vuestra red, no tendreis ni que levantaros a encenderlo: WOL + SSH y a tirar millas ;)
Activar y usar Wake On LAN en nuestros equipos con Linux es muy sencillo (¿qué tarea de redes no lo es en *NIX?), y el software necesario lo tenemos en los repositorios de Debian.
Hay que decir que es necesario que la tarjeta de red soporte WOL, pero todas las tarjetas medianamente modernas lo soportan. También ha de estar la opción habilitada en la BIOS.
En primer lugar echaremos mano de ethtool, una herramienta sumamente útil que nos permite ver o modificar las características y configuración de la tarjeta de red. Lo vamos a usar en el equipo que queremos "despertar".
takashi:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x000000c5 (197)
Link detected: yes
Como vemos, la tarjeta soporta WOL (Supports Wake-on: pumbg), además de otros modos. También vemos que el modo está desactivado (Wake-on: d, por disabled). Para activarlo sólo tendremos que ejecutar
ethtool -s eth0 wol g
y ahora veremos cómo la función se ha activado (Wake-on: g). Por algún motivo, la mayoría de los drivers de red en Linux no dejan la tarjeta en modo WOL, y la opción se vuelve a desactivar durante el shutdown. Si os ocurre esto, podéis incluir un script en /etc/init.d (por ejemplo /etc/init.d/wol) para que se active el modo:
#!/bin/bash
ethtool -s eth0 wol g
Le dais permisos de ejecución y lo enlazais con los que se han de ejecutar durante el apagado (runlevel 0):
ln -sf /etc/rc0.d/K20wol /etc/init.d/wol
En el otro lado, el del equipo que tiene que enviar el Magic Packet, debemos instalar el software que envíe la señal. Podemos optar por etherwake o por wakeonlan. El modo es bien sencillo:
etherwake -i
o bien
wakeonlan -i
Si no especificamos la interfaz con la opción -i, el Magic Packet será enviado a través de la interfaz eth0.
También podeis crear el archivo /etc/ethers donde incluir pares MAC/alias, y poder de esta forma sustituir la dirección MAC del equipo remoto por un alias.
Así, cada vez que necesiteis hacer algo en otro equipo de vuestra red, no tendreis ni que levantaros a encenderlo: WOL + SSH y a tirar millas ;)
Recuperacion de contraseña en routers Cisco

Recuperaremos el enable password o enable secret passwords. Estos passwords protegen el acceso al modo EXEC privilegiado y al modo de configuracion. El enable password puede recuperarse, pero el enable secret password esta cifrado y la unica opcion es cambiarlo.
Nos conectamos por puerto de consola al router. Lo primero es anotar el valor actual del registro de configuracion:
vlan7>sh version
Normalmente sera 0x2102. El ultimo numero es el campo de arranque, un 2 significa que pregunta a la NVRAM de donde cargar el IOS.
Reiniciamos y al arrancar pulsamos CTRL+Pausa. Con esto nos saltamos cargar la NVRAM, que cargaria configuracion y passwords.
El prompt del router cambia a:
ROMMON1>
Le decimos que arranque de la Flash para que no cargue la configuracion.
ROMMON1>confreg 0x2142
Reseteamos:
ROMMON2>reset
Pulsamos CTRL+C para abortar el procedimiento de configuracion inicial y llegamos al prompt
Router>
Pasamos al modo privilegiado y copiamos la configuracion de la startup-config a la running-config:
Router>en
Router#copy star run
Establecemos el registro a su valor original que apuntamos al principio:
Router#conf t
Router(config)#config-register 0x2102
Ahora deberiamos configurar las interfaces, etc. Y tras cambiar los passwords hacer un:
Router#copy run star
Pero sobre los passwords hablaremos en otro post.
Passwords en routers Cisco
Tipos de cifrado:
7: Usa un algoritmo de Cisco. Se usa por fuerza en line password.
5: Usa un hash MD5, mucho mas fuerte que el tipo 7.
Por defecto los passwords se almacenan en texto plano, si hacemos un sh run...
vlan7#sh run
...
line con 0
exec-timeout 120 0
password vlan7
login local
...
...ahi esta la contraseña en texto plano: vlan7
El primer nivel de proteccion es aplicar cifrado de tipo 7 a las conexiones que no soporten el tipo5:
vlan7(config)#service password-encryption
vlan7(config)#line vty 0 4
vlan7(config-line)#login local
vlan7(config-line)#password postal
Lo mismo para el puerto de Consola y el AUX.
Volvemos a hacer un sh run...
vlan7#sh run
line con 0
exec-timeout 120 0
password 7 06160032584F05
login local
Y ahora aparece cifrado, pero esta contraseña se puede descifrar en 1 segundo, ya veremos como.
Para proteger el modo EXEC privilegiado, no hay que usar enable password sino enable secret para que el cifrado sea MD5 (Tipo 5 de Cisco).
vlan7#config t
vlan7(config)#enable secret PasswordDificil
vlan7(config)#no enable password
Para crear usuarios tambien es recomendable usar secret:
vlan7(config)#username vlan7 secret miclave
7: Usa un algoritmo de Cisco. Se usa por fuerza en line password.
5: Usa un hash MD5, mucho mas fuerte que el tipo 7.
Por defecto los passwords se almacenan en texto plano, si hacemos un sh run...
vlan7#sh run
...
line con 0
exec-timeout 120 0
password vlan7
login local
...
...ahi esta la contraseña en texto plano: vlan7
El primer nivel de proteccion es aplicar cifrado de tipo 7 a las conexiones que no soporten el tipo5:
vlan7(config)#service password-encryption
vlan7(config)#line vty 0 4
vlan7(config-line)#login local
vlan7(config-line)#password postal
Lo mismo para el puerto de Consola y el AUX.
Volvemos a hacer un sh run...
vlan7#sh run
line con 0
exec-timeout 120 0
password 7 06160032584F05
login local
Y ahora aparece cifrado, pero esta contraseña se puede descifrar en 1 segundo, ya veremos como.
Para proteger el modo EXEC privilegiado, no hay que usar enable password sino enable secret para que el cifrado sea MD5 (Tipo 5 de Cisco).
vlan7#config t
vlan7(config)#enable secret PasswordDificil
vlan7(config)#no enable password
Para crear usuarios tambien es recomendable usar secret:
vlan7(config)#username vlan7 secret miclave
Descifrar passwords Cisco tipo 7
En menos de 1 segundo podemos romper el cifrado Cisco tipo 7. Ahi va el programa:
/* This code is originally from a Bugtraq post by
Jared Mauch . I patched it with an improved
translation table by Janos Zsako
-Fyodor (fyodor@insecure.org) */
#include
#include
char xlat[] = {
0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,
0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,
0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 0x42
};
char pw_str1[] = " password 7 ";
char pw_str2[] = "enable password 7 ";
char pw_str3[] = "ip ftp password 7 ";
char pw_str4[] = " ip ospf message-digest-key 1 md5 7 ";
char *pname;
cdecrypt(enc_pw, dec_pw)
char *enc_pw;
char *dec_pw;
{
unsigned int seed, i, val = 0;
if(strlen(enc_pw) & 1)
return(-1);
seed = (enc_pw[0] - '0') * 10 + enc_pw[1] - '0';
if (seed > 15 || !isdigit(enc_pw[0]) || !isdigit(enc_pw[1]))
return(-1);
for (i = 2 ; i <= strlen(enc_pw); i++) {
if(i !=2 && !(i & 1)) {
dec_pw[i / 2 - 2] = val ^ xlat[seed++];
val = 0;
}
val *= 16;
if(isdigit(enc_pw[i] = toupper(enc_pw[i]))) {
val += enc_pw[i] - '0';
continue;
}
if(enc_pw[i] >= 'A' && enc_pw[i] <= 'F') {
val += enc_pw[i] - 'A' + 10;
continue;
}
if(strlen(enc_pw) != i)
return(-1);
}
dec_pw[++i / 2] = 0;
return(0);
}
usage()
{
fprintf(stdout, "Usage: %s -p \n", pname);
fprintf(stdout, " %s \n", pname);
return(0);
}
main(argc,argv)
int argc;
char **argv;
{
FILE *in = stdin, *out = stdout;
char line[257];
char passwd[65];
unsigned int i, pw_pos;
pname = argv[0];
if(argc > 1)
{
if(argc > 3) {
usage();
exit(1);
}
if(argv[1][0] == '-')
{
switch(argv[1][1]) {
case 'h':
usage();
break;
case 'p':
bzero(passwd, sizeof(passwd));
if(cdecrypt(argv[2], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
fprintf(stdout, "password: %s\n", passwd);
break;
default:
fprintf(stderr, "%s: unknow option.", pname);
}
return(0);
}
if((in = fopen(argv[1], "rt")) == NULL)
exit(1);
if(argc > 2)
if((out = fopen(argv[2], "wt")) == NULL)
exit(1);
}
while(1) {
for(i = 0; i < 256; i++) {
if((line[i] = fgetc(in)) == EOF) {
if(i)
break;
fclose(in);
fclose(out);
return(0);
}
if(line[i] == '\r')
i--;
if(line[i] == '\n')
break;
}
pw_pos = 0;
line[i] = 0;
if(!strncmp(line, pw_str1, strlen(pw_str1)))
pw_pos = strlen(pw_str1);
if(!strncmp(line, pw_str2, strlen(pw_str2)))
pw_pos = strlen(pw_str2);
if(!strncmp(line, pw_str3, strlen(pw_str3)))
pw_pos = strlen(pw_str3);
if(!strncmp(line, pw_str4, strlen(pw_str4)))
pw_pos = strlen(pw_str4);
if(!pw_pos) {
fprintf(stdout, "%s\n", line);
continue;
}
bzero(passwd, sizeof(passwd));
if(cdecrypt(&line[pw_pos], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
else {
if(pw_pos == strlen(pw_str1))
fprintf(out, "%s", pw_str1);
else if (pw_pos == strlen(pw_str2))
fprintf(out, "%s", pw_str2);
else if (pw_pos == strlen(pw_str3))
fprintf(out, "%s", pw_str3);
else if (pw_pos == strlen(pw_str4))
fprintf(out, "%s", pw_str4);
fprintf(out, "%s\n", passwd);
}
}
}
/* This code is originally from a Bugtraq post by
Jared Mauch
translation table by Janos Zsako
-Fyodor (fyodor@insecure.org) */
#include
#include
char xlat[] = {
0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f,
0x41, 0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72,
0x6b, 0x6c, 0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 0x42
};
char pw_str1[] = " password 7 ";
char pw_str2[] = "enable password 7 ";
char pw_str3[] = "ip ftp password 7 ";
char pw_str4[] = " ip ospf message-digest-key 1 md5 7 ";
char *pname;
cdecrypt(enc_pw, dec_pw)
char *enc_pw;
char *dec_pw;
{
unsigned int seed, i, val = 0;
if(strlen(enc_pw) & 1)
return(-1);
seed = (enc_pw[0] - '0') * 10 + enc_pw[1] - '0';
if (seed > 15 || !isdigit(enc_pw[0]) || !isdigit(enc_pw[1]))
return(-1);
for (i = 2 ; i <= strlen(enc_pw); i++) {
if(i !=2 && !(i & 1)) {
dec_pw[i / 2 - 2] = val ^ xlat[seed++];
val = 0;
}
val *= 16;
if(isdigit(enc_pw[i] = toupper(enc_pw[i]))) {
val += enc_pw[i] - '0';
continue;
}
if(enc_pw[i] >= 'A' && enc_pw[i] <= 'F') {
val += enc_pw[i] - 'A' + 10;
continue;
}
if(strlen(enc_pw) != i)
return(-1);
}
dec_pw[++i / 2] = 0;
return(0);
}
usage()
{
fprintf(stdout, "Usage: %s -p \n", pname);
fprintf(stdout, " %s \n", pname);
return(0);
}
main(argc,argv)
int argc;
char **argv;
{
FILE *in = stdin, *out = stdout;
char line[257];
char passwd[65];
unsigned int i, pw_pos;
pname = argv[0];
if(argc > 1)
{
if(argc > 3) {
usage();
exit(1);
}
if(argv[1][0] == '-')
{
switch(argv[1][1]) {
case 'h':
usage();
break;
case 'p':
bzero(passwd, sizeof(passwd));
if(cdecrypt(argv[2], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
fprintf(stdout, "password: %s\n", passwd);
break;
default:
fprintf(stderr, "%s: unknow option.", pname);
}
return(0);
}
if((in = fopen(argv[1], "rt")) == NULL)
exit(1);
if(argc > 2)
if((out = fopen(argv[2], "wt")) == NULL)
exit(1);
}
while(1) {
for(i = 0; i < 256; i++) {
if((line[i] = fgetc(in)) == EOF) {
if(i)
break;
fclose(in);
fclose(out);
return(0);
}
if(line[i] == '\r')
i--;
if(line[i] == '\n')
break;
}
pw_pos = 0;
line[i] = 0;
if(!strncmp(line, pw_str1, strlen(pw_str1)))
pw_pos = strlen(pw_str1);
if(!strncmp(line, pw_str2, strlen(pw_str2)))
pw_pos = strlen(pw_str2);
if(!strncmp(line, pw_str3, strlen(pw_str3)))
pw_pos = strlen(pw_str3);
if(!strncmp(line, pw_str4, strlen(pw_str4)))
pw_pos = strlen(pw_str4);
if(!pw_pos) {
fprintf(stdout, "%s\n", line);
continue;
}
bzero(passwd, sizeof(passwd));
if(cdecrypt(&line[pw_pos], passwd)) {
fprintf(stderr, "Error.\n");
exit(1);
}
else {
if(pw_pos == strlen(pw_str1))
fprintf(out, "%s", pw_str1);
else if (pw_pos == strlen(pw_str2))
fprintf(out, "%s", pw_str2);
else if (pw_pos == strlen(pw_str3))
fprintf(out, "%s", pw_str3);
else if (pw_pos == strlen(pw_str4))
fprintf(out, "%s", pw_str4);
fprintf(out, "%s\n", passwd);
}
}
}
Descifrar passwords Cisco tipo 7 (II)
iku posteo el 12-Ene-1998 en la lista Bugtraq una version en perl del programa en C que rompia el cifrado tipo 7 de Cisco.
#!/usr/bin/perl -w
# $Id: cisco.passwords.html 1799 2003-05-08 20:33:12Z fyodor $
#
# Credits for orginal code and description hobbit@avian.org,
# SPHiXe, .mudge et al. and for John Bashinski
# for Cisco IOS password encryption facts.
#
# Use for any malice or illegal purposes strictly prohibited!
#
@xlat = ( 0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41,
0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c,
0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 0x42 );
while (<>) {
if (/(password|md5)\s+7\s+([\da-f]+)/io) {
if (!(length($2) & 1)) {
$ep = $2; $dp = "";
($s, $e) = ($2 =~ /^(..)(.+)/o);
for ($i = 0; $i < length($e); $i+=2) {
$dp .= sprintf "%c",hex(substr($e,$i,2))^$xlat[$s++];
}
s/7\s+$ep/$dp/;
}
}
print;
}
#!/usr/bin/perl -w
# $Id: cisco.passwords.html 1799 2003-05-08 20:33:12Z fyodor $
#
# Credits for orginal code and description hobbit@avian.org,
# SPHiXe, .mudge et al. and for John Bashinski
# for Cisco IOS password encryption facts.
#
# Use for any malice or illegal purposes strictly prohibited!
#
@xlat = ( 0x64, 0x73, 0x66, 0x64, 0x3b, 0x6b, 0x66, 0x6f, 0x41,
0x2c, 0x2e, 0x69, 0x79, 0x65, 0x77, 0x72, 0x6b, 0x6c,
0x64, 0x4a, 0x4b, 0x44, 0x48, 0x53 , 0x55, 0x42 );
while (<>) {
if (/(password|md5)\s+7\s+([\da-f]+)/io) {
if (!(length($2) & 1)) {
$ep = $2; $dp = "";
($s, $e) = ($2 =~ /^(..)(.+)/o);
for ($i = 0; $i < length($e); $i+=2) {
$dp .= sprintf "%c",hex(substr($e,$i,2))^$xlat[$s++];
}
s/7\s+$ep/$dp/;
}
}
print;
}
Banners de advertencia en Cisco
Se pueden mostrar banners de advertencia a distintos niveles.
vlan7(config)#banner ?
LINE c banner-text c, where 'c' is a delimiting character
exec Set EXEC process creation banner
incoming Set incoming terminal line banner
login Set login banner
motd Set Message of the Day banner
prompt-timeout Set Message for login authentication timeout
slip-ppp Set Message for SLIP/PPP
Creamos un banner que aparezca al intentar conectar...
vlan7(config)#banner login #
Enter TEXT message. End with the character '#'.
~ WARNING ~
Authorized Access ONLY!
All connections are logged and monitored. Any unauthorized use will be prosecuted to the fullest extent of the law. If you do not agree to this conditions, disconnect now.
#
vlan7(config)#
...y otro que aparezca una vez estamos dentro del sistema.
vlan7(config)#banner motd #
Enter TEXT message. End with the character '#'.
You are connected to a monitored network. Unauthorized access and use of this network will be vigorously prosecuted.
#
vlan7(config)#
Probemoslo:
vlan7@probador ~ $ ssh 192.168.2.1
vlan7@192.168.2.1's password:
You are connected to a monitored network. Unauthorized access and use of this network will be vigorously prosecuted.
vlan7>
Vaya, solo nos aparece el banner motd. Hay un problema, y es que si entramos por SSH no nos muestra el banner login. En cambio si entraramos por Telnet si que nos lo mostraria. ¿A alguien se le ocurre como solucionar esto?
posted by vlan7 at 12:28 PM 0 comments
miércoles, marzo 22, 2006
Niveles de privilegio en Cisco
Existen 16 niveles de privilegio:
Nivel 1: Predefinido para el acceso a nivel de usuario.
Niveles 2..14: Privilegios personalizables.
Nivel 15: Predefinido para el modo enable.
Es aconsejable mover ciertos comandos del nivel 1 al 15:
vlan7(config)#privilege exec level 15 connect
vlan7(config)#privilege exec level 15 telnet
vlan7(config)#privilege exec level 15 ssh
Asi solo puede iniciar sesion en otro equipo el usuario con privilegio 15.
vlan7>sh priv
Current privilege level is 1
vlan7>ssh 1.2.3.4
^
% Invalid input detected at '^' marker.
Pero ¿y si tenemos un usuario al que queremos permitirle ssh pero no queremos que tenga acceso al modo 15?
Pues definimos un nivel (2 en el ejemplo) para ese usuario...
vlan7(config)#enable secret level 2 0 pass_enable
...y un usuario para ese nivel:
vlan7(config)#username pepe secret 0 pass_user
Por ultimo bajamos el comando ssh al nivel 2. El 2 y todos los niveles superiores podran usarlo.
vlan7(config)#privilege exec level 2 ssh
Lo probamos:
vlan7>sh priv
Current privilege level is 1
vlan7>en 2
Password:
vlan7#sh priv
Current privilege level is 2
vlan7#ssh -l vlan7 192.168.2.2
Connection refused by remote host
Cisco no recomienda crear usuarios en los niveles personalizables, pero lo cierto es que existen buenos motivos para no hacer caso a Cisco:
1.- El usuario tiene que entrar con user/pass, no solo con 1 password.
2.- En los logs queda registrado el nombre de usuario con lo que hizo.
vlan7(config)#banner ?
LINE c banner-text c, where 'c' is a delimiting character
exec Set EXEC process creation banner
incoming Set incoming terminal line banner
login Set login banner
motd Set Message of the Day banner
prompt-timeout Set Message for login authentication timeout
slip-ppp Set Message for SLIP/PPP
Creamos un banner que aparezca al intentar conectar...
vlan7(config)#banner login #
Enter TEXT message. End with the character '#'.
~ WARNING ~
Authorized Access ONLY!
All connections are logged and monitored. Any unauthorized use will be prosecuted to the fullest extent of the law. If you do not agree to this conditions, disconnect now.
#
vlan7(config)#
...y otro que aparezca una vez estamos dentro del sistema.
vlan7(config)#banner motd #
Enter TEXT message. End with the character '#'.
You are connected to a monitored network. Unauthorized access and use of this network will be vigorously prosecuted.
#
vlan7(config)#
Probemoslo:
vlan7@probador ~ $ ssh 192.168.2.1
vlan7@192.168.2.1's password:
You are connected to a monitored network. Unauthorized access and use of this network will be vigorously prosecuted.
vlan7>
Vaya, solo nos aparece el banner motd. Hay un problema, y es que si entramos por SSH no nos muestra el banner login. En cambio si entraramos por Telnet si que nos lo mostraria. ¿A alguien se le ocurre como solucionar esto?
posted by vlan7 at 12:28 PM 0 comments
miércoles, marzo 22, 2006
Niveles de privilegio en Cisco
Existen 16 niveles de privilegio:
Nivel 1: Predefinido para el acceso a nivel de usuario.
Niveles 2..14: Privilegios personalizables.
Nivel 15: Predefinido para el modo enable.
Es aconsejable mover ciertos comandos del nivel 1 al 15:
vlan7(config)#privilege exec level 15 connect
vlan7(config)#privilege exec level 15 telnet
vlan7(config)#privilege exec level 15 ssh
Asi solo puede iniciar sesion en otro equipo el usuario con privilegio 15.
vlan7>sh priv
Current privilege level is 1
vlan7>ssh 1.2.3.4
^
% Invalid input detected at '^' marker.
Pero ¿y si tenemos un usuario al que queremos permitirle ssh pero no queremos que tenga acceso al modo 15?
Pues definimos un nivel (2 en el ejemplo) para ese usuario...
vlan7(config)#enable secret level 2 0 pass_enable
...y un usuario para ese nivel:
vlan7(config)#username pepe secret 0 pass_user
Por ultimo bajamos el comando ssh al nivel 2. El 2 y todos los niveles superiores podran usarlo.
vlan7(config)#privilege exec level 2 ssh
Lo probamos:
vlan7>sh priv
Current privilege level is 1
vlan7>en 2
Password:
vlan7#sh priv
Current privilege level is 2
vlan7#ssh -l vlan7 192.168.2.2
Connection refused by remote host
Cisco no recomienda crear usuarios en los niveles personalizables, pero lo cierto es que existen buenos motivos para no hacer caso a Cisco:
1.- El usuario tiene que entrar con user/pass, no solo con 1 password.
2.- En los logs queda registrado el nombre de usuario con lo que hizo.
Suscribirse a:
Entradas (Atom)