lunes, 28 de octubre de 2013

PPP CHAP


Este artículo forma parte de una serie de varios artículos que tratan distintas tecnologías WAN en routers y switches para CCNA R&S, para ir al índice del curso tienes este link:

http://networkkings-es.blogspot.com.es/2013/07/curso-gratuito-ccna-200-120.html
 

PPP CHAP:


CHAP es un protocolo de tres vías utilizado con PPP que además encripta las password antes de enviarlas por la red, por tanto alguien con un tcpdump no va a poder sacar las password a la ligera como sucedía con PAP, y en el mundo real se utiliza bastante mas que PAP.

Configuración CHAP:




username <usuario_remoto> password <contraseña_comun>

Este usuario es el usuario que queremos que nos envíe el otro router.


interface Serialx/x
ppp authentication chap
ppp chap hostname <usuario>
ppp chap password <contraseña_comun>

Hostname es el usuario que vamos a enviar, y la password debe de ser común a ambos para que funcione.
 

Ejemplo

 
Como siempre, con un ejemplo se ve todo mucho mas facil.
 
 

R1:


username R2 password 0 buenastardes

interface Serial0/0
ip address 192.168.1.1 255.255.255.0
encapsulation ppp
ppp authentication chap
ppp chap hostname R1
ppp chap password 0 buenastardes


R2:
username R1 password 0 buenastardes

interface Serial0/0
ip address 192.168.1.2 255.255.255.252
encapsulation ppp
clock rate 56000
ppp authentication chap
ppp chap hostname R2
ppp chap password 0 buenastardes
end

Comandos relacionados:



debug ppp authentication
Si todo va bien deberías tener un output parecido a este al hacer un debug ppp authen, si hay algo que está mal configurado con este debug deberías poder verlo perfectamente
*Mar 2 03:45:49.001: Se0/0 PPP: Authorization required
*Mar 2 03:45:49.029: Se0/0 CHAP: O CHALLENGE id 127 len 23 from "R2"
*Mar 2 03:45:49.029: Se0/0 CHAP: I CHALLENGE id 23 len 23 from "R1"
*Mar 2 03:45:49.029: Se0/0 CHAP: Using hostname from interface CHAP
*Mar 2 03:45:49.029: Se0/0 CHAP: Using password from AAA
*Mar 2 03:45:49.029: Se0/0 CHAP: O RESPONSE id 23 len 23 from "R2"
*Mar 2 03:45:49.033: Se0/0 CHAP: I RESPONSE id 127 len 23 from "R1"
*Mar 2 03:45:49.037: Se0/0 PPP: Sent CHAP LOGIN Request
*Mar 2 03:45:49.037: Se0/0 PPP: Received LOGIN Response PASS
*Mar 2 03:45:49.037: Se0/0 PPP: Sent LCP AUTHOR Request
*Mar 2 03:45:49.037: Se0/0 PPP: Sent IPCP AUTHOR Request
*Mar 2 03:45:49.041: Se0/0 CHAP: I SUCCESS id 23 len 4
*Mar 2 03:45:49.041: Se0/0 LCP: Received AAA AUTHOR Response PASS
*Mar 2 03:45:49.041: Se0/0 IPCP: Received AAA AUTHOR Response PASS
*Mar 2 03:45:49.045: Se0/0 CHAP: O SUCCESS id 127 len 4
*Mar 2 03:45:49.045: Se0/0 PPP: Sent CDPCP AUTHOR Request
*Mar 2 03:45:49.049: Se0/0 CDPCP: Received AAA AUTHOR Response PASS
*Mar 2 03:45:49.057: Se0/0 PPP: Sent IPCP AUTHOR Request
*Mar 2 03:45:50.045: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up

viernes, 25 de octubre de 2013

PPP y PPP PAP


Este artículo forma parte de una serie de varios artículos que tratan distintas tecnologías WAN en routers y switches para CCNA R&S, para ir al índice del curso tienes este link:

http://networkkings-es.blogspot.com.es/2013/07/curso-gratuito-ccna-200-120.html

PPP


Point to Point Protcol es un protocolo de nivel 2, como puede ser HDLC, que permite transmitir, encriptar y autenticar comunicaciones. Se puede usar en interfaces Serial, así como en otro tipos de interfaces. Este procolo además es un estandar, es utilizado también por otros fabricantes de equipos de telecomunicaciones, así como a nivel de servidores también se usa en servidores Microsoft.

Configuración:


Configurar ppp sin autenticación es muy sencillo, tan solo es elegir el tipo de encapsulación, pero en lugar de elegir hdlc, elegimos ppp.
R(config)#int s0/0



R(config-if)#encapsulation ppp

Cabe destacar, que independientemente de si quieres usar ppp o hdlc, en ambos extremos debes configurar la misma encapsulación, de lo contrario veras que tienes la interfaz UP, pero el line protocol se queda en Down.
R(config-if)#do show ip int brief



Interface  IP-Address   OK?   Method   Status  Protocol
Serial0/0  192.168.1.2   YES   manual    up       down

Autenticación:

El principal motivo para usar PPP es la posibilidad de incluir autenticación a nivel 2. Para ello tenemos dos protocolos que corren sobre PPP, PAP y CHAP, en este artículo se explicará como se configura y funciona PAP.

PPP PAP:

PAP es un protocolo de dos vías que envía las password en texto plano, esto significa que si alguien esnifa la comunicación justo cuando se inicia con un tcpdump o lo que sea, va a poder ver nuestras claves, por tanto es una buena cagada.
Configuración de PAP:
username <usuario> password <contraseña>

Este usuario es el usuario que queremos que nos envíe el otro router


int serial x/x
encapsulation ppp
ppp authentication pap
ppp pap sent-username <usuario_que_enviamos> password <password_que_enviamos>

Ejemplo:


Con un ejemplo seguro que se ve mas rápido.



R1:


username R2 password 0 buenosdias



interface Serial0/0
ip address 192.168.1.1 255.255.255.252
encapsulation ppp
ppp authentication pap
ppp pap sent-username R1 password 0 buenastardes

R2:



username R1 password 0 buenastardes



interface Serial0/0
ip address 192.168.1.2 255.255.255.252
encapsulation ppp
clock rate 56000
ppp authentication pap
ppp pap sent-username R2 password 0 buenosdias


Y al terminar deberías poder hacer ping.
R2#ping 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/18/36 ms



R2#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/19/56 ms





  

lunes, 21 de octubre de 2013

Interfaces Serial con HDLC


Este artículo forma parte de una serie de varios artículos que tratan distintas tecnologías WAN en routers y switches para CCNA R&S, para ir al índice del curso tienes este link:

http://networkkings-es.blogspot.com.es/2013/07/curso-gratuito-ccna-200-120.html

Interfaces Serial con HDLC:


Las interfaces serial son un tipo de interfaces WAN, que permiten conectar extremos remotos a gran distancia, y que ademástienen una velocidad de conexión relativamente baja.

En una conexión serial uno de los extremos deberá actuar como DTE, y el otro extremo actuará como DCE.

El DCE es el equipo que establecerá la velocidad de reloj, lo que significará a que velocidad se puede transmitir en esa linea.

En cambio el otro extremo no hay que configurar reloj alguno.

Configuración del reloj en el DCE:


R(config)#int s0/0
R(config-if)#clock rate <velocidad_reloj>

Las velocidades de reloj permitidas dependerán del tipo de hardware de tu interfaz, pues hay seriales que permiten mayores velocidades que otros.

R(config-if)#clock rate ?
  With the exception of the following standard values not subject to rounding,

      1200 2400 4800 9600 14400 19200 28800 38400
      56000 64000 128000 2015232

  accepted clockrates will be bestfitted (rounded) to the nearest value
  supportable by the hardware.

  <246-8064000>    DCE clock rate (bits per second)


Por defecto el tipo de encapsulación a nivel 2 permitida por las interfaces Serial es HDLC, HDLC es un tipo de encapsulación para las interfaces punto a punto, viene por defecto pero para configurarla:

R1(config-if)#encapsulation hdlc

Como las interfaces serial con HDLC son punto a punto lo lógico a la hora de configurar una red entre dos serial suele ser configurar interfaces con mascaras /30.

Ejemplo:

 



DTE(R1):

interface Serial0/0
 ip address 192.168.1.1 255.255.255.252

DCE(R2):

interface Serial0/0
 ip address 192.168.1.2 255.255.255.252
 clock rate 56000

Verificación:




R1#ping 192.168.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/8/12 ms

   
R1#show int s0/0 | i HDLC
  Encapsulation HDLC, crc 16, loopback not set
 

viernes, 18 de octubre de 2013

Securizar acceso telnet o ssh con una ACL


Este artículo forma parte de una serie de varios artículos que tratan distintas tecnologías de seguridad en routers y switches para CCNA R&S, para ir al índice del curso tienes este link:

http://networkkings-es.blogspot.com.es/2013/07/curso-gratuito-ccna-200-120.html

ACL para SSH o Telnet:

Crear una ACL que filtre desde que ips se pueden conectar a un router por ssh o por telnet es muy facil.

Lo primero es crear una acl permitiendo las ips que queremos que se puedan conectar al router.

Router(config)#access-list 11 permit 192.168.1.0 0.0.0.255


Una vez nos hemos creado la access list nos metemos dentro de line vty, y usamos el comando access-class,  que establecerá una acl para las conexiones de telnet o SSH.

Router(config)#line vty 0 4

Router(config-line)#access-class 11 in

Como se puede ver es algo muy sencillo, y que debería estar configurado en cualquier router.


jueves, 17 de octubre de 2013

CCIE: Ya soy CCIE

Bueno queridos lectores, por fin soy CCIE, tras muchas horas de estudio, muchos euros gastados en rack rental y muchas aventuras y desventuras ya tengo mi número.

Ahora a 7000km de mi casa tengo que pensar que voy a hacer con todas esas horas que antes gastaba en el CCIE y que ahora no se en que gastar.

Posiblemente escriba un par de artículos un poco mas detallados sobre el tema del CCIE, pero por ahora creo que me he ganado unas buenas vacaciones.

Ah bueno y también me he ganado el derecho a poner este logo:



Saludos del CCIE 40905.


lunes, 14 de octubre de 2013

Acceso por SSH router cisco



Este artículo forma parte de una serie de varios artículos que tratan distintas tecnologías de seguridad en routers y switches para CCNA R&S, para ir al índice del curso tienes este link:


SSH:


Esta es una de esas cosas sencillas, pero muy útiles a la hora de configurar un router.

Habilitar SSH en un router lo que permite es que si alguien está esnifando tu red, no consiga usuarios y contraseñas de acceso a equipos de comunicaciones.

Configuración

aaa new-model <----- Para que pida usuario y contraseña
username networkkings password piruleta

line vty 0 4
   transport imput ssh
   login local <----usa los usuarios definidos localmente( si tienes tacacs omitelo)
exit

crypto key generate rsa 1024
<----crea la clave con la que se va a encriptar la conexión.
Si se te olvida el último paso el router no permitirá el acceso por telnet, ya que no será capaz de generar una conexión encriptada.

1024 es una clave normalita, pero permite el uso de ssh 1 y ssh 2, pero si vas a usar ssh2 seguro puedes poner claves RSA mas gorditas.

 Nota mental, si en ese router sustituyes la supervisora porque se fastidie, no vale tan solo con copiarle la configuración, también hay que generar la clave rsa de nuevo, o si la creaste exportable, pues volversela a cargar.

Por último añadir que no todas las IOS permiten SSH :) , por lo que antes de intentar hacer nada es mejor que compruebes el cisco feature navigator, que es una web que permite comprobar que cosas están habilitadas en cada imagen de IOS.

Cisco feature navigator

viernes, 11 de octubre de 2013

Acceso telnet a un router



Este artículo forma parte de una serie de varios artículos que tratan distintas tecnologías de seguridad en routers y switches para CCNA R&S, para ir al índice del curso tienes este link:

 Acceso telnet


Habilitar el aceso a un router por medio de telnet es una de esas cosas sencillas que deberías saber hacer sin pensarlo. Cualquier equipo admite el acceso por medio de telnet.

Lo primero que debes hacer es habilitar una contraseña para enable.

enable password<la_que_quieras>

  line vty 0 4
  login
  password 0 <la_que_quieras> <---la contraseña que te pedirá cuando te conectes por telnet
  exit

<0 4> esto permite habilitar 5 usuarios concurrentes por telnet en el router, si pones 0 6 pues tendrás 7 usuarios concurrentes.



Ver quien esta conectado al router:


Yo estoy por consola, y además me he conectado desde otro router por telnet.

Router#show users
    Line       User       Host(s)              Idle       Location
*  0 con 0                idle                 00:00:00  
 130 vty 0                idle                 00:00:14 192.168.1.1


Si, desde la ip 192.168.1.1.

Echar al que está conectado por telnet:


clear line 130

Y cuando nos hechan vemos lo suguiente.

Router#
[Connection to 192.168.1.2 closed by foreign host]


Enviar un mensaje a un usuario conectado al router:


Router#send 130                  
Enter message, end with CTRL/Z; abort with CTRL/C:
Sal de mi maldito router!!!
^Z
Send message? [confirm]



El otro usuario ve lo siguiente:

Router#


***
***
*** Message from tty0 to tty130:
***
Sal de mi maldito router!!!



Router#
 

lunes, 7 de octubre de 2013

Access list extendidas:



Este artículo forma parte de una serie de varios artículos que tratan distintas tecnologías de seguridad en routers y switches para CCNA R&S, para ir al índice del curso tienes este link:

Access list extendidas:


Se aplica todo lo que hemos visto para las listas de acceso standard, pero si antes teníamos unas ACL que filtraban el tráfico en base a la IP de origen de los paquetes ahora fitramos en base a:

  • IP/red_origen
  • IP/red_destino
  • Protocolo(TCP/UDP/ICMP...)
  • Puerto origen
  • Puerto destino

Como os podéis imaginar, con las ACLextendidas si se puede filtrar dignamente, en realidad las ACL  standard son utilizadas para otros propósitos, aunque en un origen eran para filtrar tráfico.

Configuración:


access-list <100-199> permit <protocolo> <red_origen> <wildcard_origen> <eq/lt/gt> <puerto_origen> <red_destino> <wildcard_destino> <eq/lt/gt> <puerto_destino>
Es la misma idea que con las ACL estandar, pero se usa la numeración del 100 al 199, y tenemos que poner el orígen y el destino de los paquetes. Aquí también podemos filtrar a nivel de puerto, tanto de origen como de destino.

  • <eq/lt/gt>: Eq significa que el puerto sea igual a, y un numero de puerto. Lt significa que el puerto sea menor a, y gt significa que el número de puerto sea mayor que.


Modificar ACL extendida:


R(config)#ip access-list extended<numero_ACL>
R(config-std-nacl)#<Numero_secuencia> <deny/permit> <red_origen> <wildcard_origen> <puerto> <red_destino> <wildcard_destino>


Protocolos soportados:

  ahp           Authentication Header Protocol
  eigrp         Cisco's EIGRP routing protocol
  esp           Encapsulation Security Payload
  gre           Cisco's GRE tunneling
  icmp          Internet Control Message Protocol
  igmp          Internet Gateway Message Protocol
  ip            Any Internet Protocol
  ipinip        IP in IP tunneling
  nos           KA9Q NOS compatible IP over IP tunneling
  ospf          OSPF routing protocol
  pcp           Payload Compression Protocol
  pim           Protocol Independent Multicast
  tcp           Transmission Control Protocol
  udp           User Datagram Protocol

El funcionamiento por lo demás es el mismo que el de las ACL standard.

Ejemplo:


  access-list 101 permit tcp host 192.168.1.1 host 80.80.80.80 eq 23
  access-list 101 permit tcp host 192.168.2.1 host 80.80.80.80 eq 23

Rack1R2(config)#do show ip access 101
Extended IP access list 101
    10 permit tcp host 192.168.1.1 host 80.80.80.80 eq telnet
    20 permit tcp host 192.168.2.1 host 80.80.80.80 eq telnet

viernes, 4 de octubre de 2013

Access list standard:



Este artículo forma parte de una serie de varios artículos que tratan distintas tecnologías de seguridad en routers y switches para CCNA R&S, para ir al índice del curso tienes este link:

 

Access list standard:


Las access list o ACL son un mecanismo que permite controlar el tráfico que entra o sale por una interfaz. Su funcionamiento es algo bastante sencillo, simplemente se crea una lista con el tráfico que se quiere permitir dejar pasar, y con el tráfico que no se quiere dejar pasar.

Las access list se leen secuencialmente, y cuando un paquete cumple con una linea de una access list, la access list no se sigue leyendo para ese paquete, por ello es extremadamente importante el orden en el que se meten las entradas en una access list, así como asignar números de secuencia correctamente en las ACL.

Las access list solo hacen match con el tráfico que pasa por el router, pero no van a aplicar al tráfico generado desde el propio router, esto significa que si haces un ping desde un router ese tráfico no va a matchear en ninguna ACL del mismo router, pero podrá matchear en una ACL de cualquier otro router.

Todas las ACL por defecto llevan implícitamente aplicada una condición que deniega todo el tráfico en la última linea, esto no hace falta que lo configuremos, simplemente todas las ACL llevan implícito un DENY a todo el tráfico en la última linea.

Crear una ACL standard:


R(config)#access-list <numero_ACL> <permit/deny> <red_origen> <wildcard_origen>
  • <numero_ACL>: Por narices las ACL standar tienen números en el rango 1-99, aunque hay un rango extendido entre el 1300 y el 1999 por si las moscas que también se puede usar.
  • <permit/deny>: Si queremos dejar pasar ese tráfico, o si queremos no dejarlo pasar.
  • <red_origen>: La red de origen de los paquetes que van a atravesar la interfaz.
  • <wildcard_origen>: La wildcard que aplicamos.

Usando el mismo número de access list podemos añadir todas las lineas que queramos a una access list, teniendo en cuenta las reglas de las ACL que hemos comentado antes.

Ver una access list:

show ip access-list <numero_ACL>

Rack1R1#show ip access-list 33
Standard IP access list 33
10 permit 192.168.1.1
20 permit 192.168.2.1
30 deny 192.168.1.0, wildcard bits 0.0.0.255

Lo que aparece delante de cada permit o deny es el número de secuencia, y el router siempre va a leer y ordenar las ACL en base al número de secuencia hasta que haga match, y luego no seguirá leyendo.

Modificar una access list:


Hay dos maneras de modificar una access list, la primera es borrar la access list, e introducir la access list con las lineas que queramos, y la otra es un poco mas fina, pero un poco mas entretenida.


R(config)#ip access-list standard <numero_ACL>
R(config-std-nacl)#<Numero_secuencia> <deny/permit> <red_origen> <wildcard_origen>

Si quisieramos eliminar una linea en una ACL tan solo tendríamos que hacer:

R(config)#ip access-list standard <numero_ACL>
R(config-std-nacl)#no <Numero_secuencia>

Aplicar una ACL:

Las ACL no permiten o deniegan el tráfico alegremente, las ACL se aplican a interfaces, puedes aplicar una misma ACL a todas las interfaces que quieras de un router, pero solo se puede aplicar una ACL a cada interfaz, una para input y otra para output.

R#configure terminal
R(config)#int <interfaz>
Rack8R1(config-if)#ip access-group <numero_ACL> <in/out>

  • <in/out>: Simplemente desde el punto de vista del router y mirando a la interfaz si la ACL aplica a los paquetes que entran al router por esa interfaz(in) o si salen por esa interfaz(out).

Ejemplo:


Creamos una ACL con cuatro entradas.

access-list 33 permit 192.168.1.1
access-list 33 permit 192.168.2.1
access-list 33 deny 192.168.1.0 0.0.0.255
access-list 33 permit any

Visualizamos la ACL:
Rack1R1#show ip access-list 33
Standard IP access list 33
10 permit 192.168.1.1
20 permit 192.168.2.1
30 deny 192.168.1.0, wildcard bits 0.0.0.255

Modificamos la ACL:

Rack1R1(config)#ip access-list standard 33
Rack1R1(config-std-nacl)#25 permit 192.168.1.0 0.0.0.255

Volvemos a ver la ACL:

Rack1R1#show ip access-lists 33
Standard IP access list 33
10 permit 192.168.1.1
20 permit 192.168.2.1
25 permit 192.168.1.0, wildcard bits 0.0.0.255
30 deny 192.168.1.0, wildcard bits 0.0.0.255
40 permit any

Aplicamos la ACL a una interfaz:

Rack1R1(config)#int e0/0
Rack1R1(config-if)#ip access-group 33 in

Por esa interfaz estaríamos permitiendo que entrase tráfico proveniente de las ip 192.168.1.1, 192.168.2.1 , de las 192.168.1.0 a 192.168.1.127, pero denegándolo a las 192.168.1.128-192.168.1.255, y permitiéndolo a todas las demás.