15
Configuración de Firewall Cisco PIX

Configuracion de Firewall Cisco PIX

Embed Size (px)

Citation preview

Page 1: Configuracion de Firewall Cisco PIX

Configuración de FirewallCisco PIX

Page 2: Configuracion de Firewall Cisco PIX

Introducción

PIX (Private Internet eXchange) es una de las soluciones de seguridad ofrecidas porCisco Systems; se trata de un firewall completamente hardware: a diferencia de otrossistemas cortafuegos, PIX no se ejecuta en una máquina Unix, sino que incluye unsistema operativo empotrado denominado Finesse que desde espacio de usuario seasemeja más a un router que a un sistema Unix clásico. Por tanto, dado que la gestiónde este cortafuegos no es tan inmediata para un administrador de sistemas como la deuno que se ejecute sobre Unix, vamos a dedicarle más tiempo al PIX Firewall de lo quehemos dedicado al resto de cortafuegos.

El cortafuegos PIX utiliza un algoritmo de protección denominado Adaptive SecurityAlgorithm (ASA): a cualquier paquete inbound (generalmente, los provenientes de redesexternas que tienen como origen una red protegida) se le aplica este algoritmo antes dedejarles atravesar el firewall, aparte de realizar comprobaciones contra la información deestado de la conexión (PIX es stateful) en memoria; para ello, a cada interfaz del firewallse le asigna un nivel de seguridad comprendido entre 0 (el interfaz menos seguro,externo) y 100 (el más seguro, interno). La filosofía de funcionamiento del AdaptiveSecurity Algorithm se basa en estas reglas:

♦ Ningún paquete puede atravesar el cortafuegos sin tener conexión y estado.

♦ Cualquier conexión cuyo origen tiene un nivel de seguridad mayor que el destino(outbound) es permitida si no se prohíbe explícitamente mediante listas de acceso.

♦ Cualquier conexión que tiene como origen una interfaz o red de menor seguridad quesu destino (inbound) es denegada, si no se permite explícitamente mediante listasde acceso.

♦ Los paquetes ICMP son detenidos a no ser que se habilite su tráfico explícitamente.

♦ Cualquier intento de violación de las reglas anteriores es detenido, y un mensaje dealerta es enviado a syslog.

Cuando a un interfaz del cortafuegos llega un paquete proveniente de una red con menornivel de seguridad que su destino, el firewall le aplica el adaptive security algorithm paraverificar que se trata de una trama válida, y en caso de que lo sea comprobar si del hostorigen se ha establecido una conexión con anterioridad; si no había una conexión previa,el firewall PIX crea una nueva entrada en su tabla de estados en la que se incluyen losdatos necesarios para identificar a la conexión.

El cortafuegos PIX puede resultar muy complejo de gestionar, especialmente a los queprovenimos del mundo Unix, ya que como hemos dicho se asemeja más a un router quea un servidor con cualquier flavour de Unix; es por tanto recomendable consultarbibliografía adicional antes de trabajar con estos equipos.

La primera sesión con PIX Firewall

Si conectamos al firewall por consola a través de una línea serie entramos directamentesin necesidad de contraseña, en modo no privilegiado; esto lo sabemos porque nosaparece el prompt siguiente:

pixie>

Page 3: Configuracion de Firewall Cisco PIX

Si en este prompt tecleamos la orden `?', nos mostrará la ayuda disponible en el modosin privilegios:

dixie> ?enable Enter privileged mode or change privileged mode passwordpager Control page length for paginationquit Disable, end configuration or logoutdixie>

Son pocos comandos con los que apenas se puede hacer nada; la orden pager nospermite ajustar el número de líneas para paginar, la orden quit (o exit) sale del firewall,y la orden enable nos pasa a modo superusuario, pidiendo la contraseña (que pordefecto será `cisco'); cada orden del PIX se puede abreviar (por ejemplo, en lugar deenable podríamos teclear ena):

dixie> enaPassword: *****dixie#

Como vemos, al estar en modo privilegiado, el prompt cambia y nos muestra unaalmohadilla; en este modo ya podemos reconfigurar parámetros del PIX, y tenemos másórdenes disponibles que antes:dixie# ?arp Change or view the arp table, and set the arp timeout valueauth-prompt Customize authentication challenge, reject or acceptance promptconfigure Configure from terminal, floppy, or memory, clear configurecopy Copy image from TFTP server into flash.debug Debug packets or ICMP tracings through the PIX Firewall.disable Exit from privileged modeenable Modify enable passwordflashfs Show or destroy filesystem informationkill Terminate a telnet sessionpager Control page length for paginationpasswd Change Telnet console access passwordping Test connectivity from specified interface to <ip>quit Disable, end configuration or logoutreload Halt and reload systemsession Access an internal AccessPro router consoleterminal Set terminal line parameterswho Show active administration sessions on PIXwrite Write config to net, flash, floppy, or terminal, or erase flashdixie#

Para comenzar a reconfigurar el firewall nos pondremos en modo configuración (desdemodo privilegiado) con la orden configure (la `t' corresponde a Terminal); de nuevo,cambia el prompt que nos aparece en consola:

dixie# con tdixie(config)#

En este modo disponemos de más comandos para configurar el PIX; como siempre,podemos verlos con la orden `?':

dixie(config)# ?

Page 4: Configuracion de Firewall Cisco PIX

aaa Enable, disable, or view TACACS+ or RADIUS user authentication, authorization andaccounting

access-group Bind an access-list to an interface to filter inbound trafficaccess-list Add an access listage This command is deprecated. See ipsec, isakmp, map, ca commandsalias Administer overlapping addresses with dual NAT.apply Apply outbound lists to source or destination IP addressesarp Change or view the arp table, and set the arp timeout valueauth-prompt Customize authentication challenge, reject or acceptance promptaaa-server Define AAA Server groupca CEP (Certificate Enrollment Protocol)Create and enroll RSA key pairs into a PKI

(Public Key Infrastructure).clock Show and set the date and time of PIXconduit Add conduit access to higher security level network or ICMPcrypto Configure IPsec, IKE, and CAconfigure Configure from terminal, floppy, or memory, clear configurecopy Copy image from TFTP server into flash.debug Debug packets or ICMP tracings through the PIX Firewall.disable Exit from privileged modedomain-name Change domain namedynamic-map Specify a dynamic crypto map templateenable Modify enable passwordestablished Allow inbound connections based on established connectionsfailover Enable/disable PIX failover feature to a standby PIXfilter Enable, disable, or view URL, Java, and ActiveX filteringfixup Add or delete PIX service and feature defaultsflashfs Show or destroy filesystem informationipsec Configure IPSEC policyisakmp Configure ISAKMP policyglobal Specify, delete or view global address pools, or designate a PAT

(Port Address Translated) addresshostname Change host namevpdn Configure VPDN (PPTP) Policyinterface Identify network interface type, speed duplex, and if shutdownip Set ip address for specified interface, define a local address pool, or toggle Unicast Reverse Path Forwarding on an interface.kill Terminate a telnet sessionlink This command is deprecated. See ipsec, isakmp, map, ca commandslinkpath This command is deprecated. See ipsec, isakmp, map, ca commandslogging Enable logging facilitymap Configure IPsec crypto mapmtu Specify MTU(Maximum Transmission Unit) for an interfacename Associate a name with an IP addressnameif Assign a name to an interfacenames Enable, disable or display IP address to name conversionnat Associate a network with a pool of global IP addressesoutbound Create an outbound access listpager Control page length for paginationpasswd Change Telnet console access passwordping Test connectivity from specified interface to <ip>quit Disable, end configuration or logoutradius-server Specify a RADIUS aaa serverreload Halt and reload systemrip Broadcast default route or passive RIProute Enter a static route for an interfacesession Access an internal AccessPro router consolesnmp-server Provide SNMP and event informationsysopt Set system functional optionstatic Map a higher security level host address to global addresstacacs-server Specify a TACACS+ servertelnet Add telnet access to PIX console and set idle timeoutterminal Set terminal line parameters

Page 5: Configuracion de Firewall Cisco PIX

tftp-server Specify default TFTP server address and directorytimeout Set the maximum idle timesurl-cache Enable URL cachingurl-server Specify a URL filter servervirtual Set address for authentication virtual serverswho Show active administration sessions on PIXwrite Write config to net, flash, floppy, or terminal, or erase flashdixie(config)#

Interfaces de red

Cisco denomina a cada uno de sus interfaces hardware de la forma ethernetN o token-ringN. Desde el modo configuración podemos asignarles nombres simbólicos y niveles deseguridad, teniendo en cuenta que el nombre outside se asigna por defecto a la tarjetaethernet0 y el nombre inside a la ethernet1. Además, el nivel de seguridad de la interfazoutside ha de ser el más bajo, 0, y el reservado para inside el más elevado, 100; el restode tarjetas pueden tener cualquier número comprendido entre los dos anteriores.

Si queremos asignarle un nombre simbólico y un nivel de seguridad a un interfaz hemosde utilizar la orden nameif; por ejemplo, para denominar dmz a la tarjeta ethernet2, ydarle un nivel 50, ejecutaríamos lo siguiente :

dixie(config)# nameif e2 dmz security50dixie(config)#

Es muy importante que exista una interface llamada outside con un nivel 0 y una insidecon un nivel 100; si alguna de las dos no existe, o si está duplicada, el cortafuegosparará todo el tráfico que pase por él. Podemos ver si la configuración actual de lasinterfaces es correcta mediante la orden show nameif:

dixie(config)# show nameifnameif ethernet0 outside security0nameif ethernet1 inside security100nameif ethernet2 dmz security50nameif ethernet3 intf3 security15dixie(config)#

Accesos entre interfaces

Para conseguir excepciones a las reglas de funcionamiento del adaptive securityalgorithm se utilizan los comandos nat y static; la orden nat permite que una interfaz demayor seguridad pueda acceder a uno de menor, mientras que static hace justo locontrario.

Para cada interfaz de mayor nivel de seguridad que quiera acceder a una de menor nivelhemos de ejecutar la orden nat:

dixie(config)# nat (dmz) 0 0.0.0.0 0.0.0.0dixie(config)# sh natnat (dmz) 0 0.0.0.0 0.0.0.0 0 0pixie(config)#

La orden anterior indica que el interfaz dmz accederá sin realizar NAT (el primer `0'),aplicando esto a todas las máquinas de la subred conectada a ese interfaz: los dosgrupos `0.0.0.0' representan la dirección y la subred, respectivamente, de los equipos a

Page 6: Configuracion de Firewall Cisco PIX

los que permitimos la salida; si sólo quisiéramos que una de las máquinas conectada alinterfaz dmz accediera a segmentos de menor prioridad, pondríamos su dirección IP y sumáscara (255.255.255.255).

Si lo que queremos es permitir el acceso desde un interfaz de menor nivel de seguridad auno de mayor ejecutaremos la orden static, que tiene la sintaxis siguiente:static (if_interna,if_externa) dir_destino dir_destino netmask mascaraEl hecho de que aparezca por duplicado la dirección destino de la máquina que estamos`publicando' al exterior es porque, al ejecutar la orden nat, hemos decidido no hacer NATreal; si lo estuviéramos haciendo, en lugar de la dirección destino utilizaríamos en primerlugar la dirección que le damos a la máquina hacia el exterior (típicamente, una IPpública) y en segundo la dirección que tiene el equipo dentro de la red a la que estádirectamente conectado (una privada).

De esta forma, si lo que queremos es que desde toda Internet (interfaz outside) sepueda acceder a nuestro servidor de correo POP3, en la máquina 158.42.22.41 (porejemplo, dentro del interfaz dmz), ejecutaríamos en primer lugar la siguiente orden:

dixie(config)# static (dmz,outside) 158.42.22.41 158.42.22.41 netmask 255.255.255.255dixie(config)# sh staticstatic (dmz,outside) 158.42.22.41 158.42.22.41 netmask 255.255.255.255 0 0dixie(config)#

Con el comando anterior nos limitamos a `publicar' la dirección de una máquinaprotegida por el PIX firewall al resto de Internet; pero esto no significa que ya se puedaacceder a ese sistema: tras la orden static, es necesario habilitar listas de control deacceso a los diferentes servicios de la dirección que hemos publicado, y asociar dichaslistas de control a la interfaz correspondiente; si por ejemplo el acceso necesitado esSMTP, ejecutaríamos la siguiente orden:

dixie(config)# access-list prueba permit tcp any host 158.42.22.41 eq smtpdixie(config)# access-group prueba in interface outsidedixie(config)#

Como vemos, asociamos la lista de control a la interfaz de entrada del tráfico, no a laque está conectada la máquina. El tema de las listas de control de acceso es el quevamos a ver en el punto siguiente.

Listas de control de acceso

Como acabamos de decir, para acceder a determinados servicios de una máquina, unavez hemos dejado establecer las conexiones entre interfaces, es necesario definirpermisos sobre el modo de acceso, el origen y los servicios a los que se permite accederde esa máquina; esto lo conseguiremos mediante la orden access-list, cuya sintaxis esla siguiente:

access-list ID accion proto dir-origen pto-origen dir-destino pto-destino

Si por ejemplo queremos habilitar un acceso HTTP desde cualquier lugar de Internet, yademás acceso POP3 desde un determinado segmento externo (por ejemplo,196.33.22.128/25) a la máquina 158.42.22.41, lo haremos mediante una lista de controlde dos entradas (que llamaremos prova), que podemos crear con las siguientes órdenes:

Page 7: Configuracion de Firewall Cisco PIX

pixie(config)# access-list prova permit tcp any host 158.42.22.41 eq httppixie(config)# access-list prova permit tcp 196.33.22.128 255.255.255.128 host 158.42.22.41 eqhttppixie(config)#

Dentro de una lista de control es importante asegurarse que la regla más general essiempre la última; PIX funciona en este sentido como Firewall-1: en el momento en queuna determinada regla hace match, se aplica y no se sigue analizando el resto. Porejemplo, si queremos que ningún equipo del exterior haga ping a la máquina158.42.22.41, excepto los que provienen de la red 196.72.31.0/24, definiremos lasiguiente lista de control de acceso:

pixie(config)# access-list prova permit icmp 196.72.31.0 255.255.255.0 host 158.42.22.41pixie(config)# access-list prova deny icmp any anypixie(config)#

Con las órdenes anteriores no hacemos más que definir (o modificar, si ya existía) la ACL`prova'; esto no tiene ningún efecto sobre el funcionamiento del cortafuegos, ya quepara que lo tenga tenemos que asociar esta lista a una interfaz de red: en concreto, aaquella de la que va a provenir el tráfico de entrada en cada caso. Para ello, utilizaremosla orden access-group:

pixie(config)# access-group prova in interface outsidepixie(config)#

Con este comando asociamos la lista de control a la interfaz especificada; si esta interfazya tenía asociada una lista de control, la nueva reemplaza a la antigua pero lasconexiones no se pierden, ni siquiera las que estaban permitidas anteriormente peroahora se niegan. Esto es útil para poder añadir entradas intermedias a las listas decontrol sin que las conexiones establecidas por el interfaz al que queremos asociarlas sepierdan: para ello, lo más rápido es copiar la lista en un editor de textos, realizar sobre elmismo las modificaciones necesarias, y grabarla de nuevo en el cortafuegos con otronombre; tras esto, la asociamos al interfaz correspondiente mediante access-group, ycuando estemos seguros de que todo funciona correctamente la grabamos en memoriamediante write mem.

Si lo que queremos es añadir una entrada al final de la lista de control no es necesariotodo esto: basta con ejecutar el access-list correspondiente para que la nueva entrada seañada a la lista, y automáticamente se aplique sobre el interfaz; si no queremos añadir,sino eliminar entradas de una ACL, podemos ejecutar directamente no access-list, ordenque recibe como parámetro la entrada a eliminar:

pixie(config)# sh access-list provaaccess-list prova permit tcp any host 158.42.22.41 eq smtp (hitcnt=0)access-list prova permit tcp any host 158.42.22.41 eq pop3 (hitcnt=0)access-list prova permit tcp any host 158.42.22.41 eq telnet (hitcnt=0)pixie(config)# no access-list prova permit tcp any host 158.42.22.41 eq pop3pixie(config)# sh access-list provaaccess-list prova permit tcp any host 158.42.22.41 eq smtp (hitcnt=0)access-list prova permit tcp any host 158.42.22.41 eq telnet (hitcnt=0)pixie(config)#

Page 8: Configuracion de Firewall Cisco PIX

Como siempre, una vez que estemos seguros de que la configuración es correcta, seránecesario grabar los cambios en memoria flash mediante write mem.

Rutado

En el cortafuegos PIX es necesario especificar mediante rutas estáticas cómo vamos aencaminar los paquetes que nos llegan, añadiendo una ruta para cada red conectada aun interfaz; sólo podremos asignar una ruta por defecto, asociada siempre al interfazoutside.

Para ver las rutas del firewall utilizaremos la orden sh route:

pixie(config)# sh route outside 0.0.0.0 0.0.0.0 172.17.1.3 1 OTHER static inside 172.17.2.0 255.255.255.0 172.17.2.1 1 CONNECT static dmz 192.168.63.0 255.255.255.0 192.168.63.156 1 CONNECT static failover 192.168.87.208 255.255.255.252 192.168.87.209 1 CONNECT static dmz 158.42.0.0 255.255.0.0 192.168.63.156 1 OTHER staticpixie(config)#

Como vemos, la ruta por defecto está asociada a la interfaz outside; además, la interfazdmz tiene dos rutas, una para una clase pública y otra para una privada, y tambiénexiste una boca del firewall dedicada en exclusiva al failover, del que hablaremos másadelante.

Si lo que queremos es modificar cualquiera de estas rutas, añadir rutas nuevas, oeliminar alguna de ellas, ejecutaremos la orden route, cuya sintaxis es la siguiente:route interfaz direccion-remota mascara gateway metricaPor ejemplo, si deseamos enrutar el tráfico dirigido a la red 192.168.63.128/25 a travésdel interfaz dmz, que tiene como dirección IP 192.168.63.156, y que está directamenteconectado a la red (un salto), ejecutaríamos esta orden:

pixie(config)# route dmz 192.168.63.128 255.255.255.128 192.168.63.156 1pixie(config)#

Para eliminar una ruta, ejecutaremos el comando no route, que recibe como parámetrola ruta que deseamos eliminar (algo similar a lo que sucedía con las listas de control deacceso).

Arranque y parada del cortafuegos

La orden reload (modo privilegiado) reinicia el firewall y carga su configuración, biendesde diskette bien desde la memoria flash (en caso de que no haya ningún disco en launidad). Al ejecutar reload se nos pedirá confirmación para reiniciar el cortafuegos, y esmuy importante que en caso de no querer ejecutar el comando tecleemos ̀ n';cualquier otra respuesta ejecuta la orden.

Configuraciones del sistema

Nombre de la máquinaMediante la orden hostname cambiamos el nombre de host del cortafuegos:

dixie(config)# hostname pixiepixie(config)# hostname dixiedixie(config)#

Page 9: Configuracion de Firewall Cisco PIX

ContraseñasEn modo configuración podemos cambiar la contraseña de acceso al modo privilegiadomediante la orden enable password; mediante show enable vemos la cadena cifradacon nuestra contraseña:

dixie(config)# show enableenable password /hVDnFhQPQc4lzN5 encrypteddixie(config)# enable password passprovadixie(config)# show enableenable password S6KVLr8BjSKx8os/ encrypteddixie(config)#

Esta clave es diferente de la que se utiliza para acceder al cortafuegos vía telnet; paramodificar esta última (por defecto será `cisco') utilizaremos la orden passwd, y paravisualizar la cadena cifrada resultante show passwd:

dixie(config)# show passwdpasswd 2KFQnbNIdI.2KYOU encrypteddixie(config)# passwd provadixie(config)# show passwdpasswd /hVDnFhQPQc4lzN5 encrypteddixie(config)#

Si quisiéramos restaurar esta contraseña a su valor original (`cisco'), no tenemos másque ejecutar la orden clear passwd:

dixie(config)# show passwdpasswd /hVDnFhQPQc4lzN5 encrypteddixie(config)# clear passwddixie(config)# show passwdpasswd 2KFQnbNIdI.2KYOU encrypteddixie(config)#

La cadena `encrypted' que aparece tras la contraseña indica que se trata de una clavecifrada; también nos puede resultar útil para asignar un password directamente encifrado, en lugar de hacerlo en texto claro:

dixie(config)# show passwdpasswd 2KFQnbNIdI.2KYOU encrypteddixie(config)# passwd /hVDnFhQPQc4lzN5 encrypteddixie(config)# show passwdpasswd /hVDnFhQPQc4lzN5 encrypteddixie(config)# show enable passwordenable password 2KFQnbNIdI.2KYOU encrypteddixie(config)# enable password /hVDnFhQPQc4lzN5 encrypteddixie(config)# show enable passwordenable password /hVDnFhQPQc4lzN5 encrypteddixie(config)#

En caso de pérdida de la clave de acceso vía telnet, no tenemos más que conectar alcortafuegos mediante una conexión serie y, desde el modo privilegiado asignar unanueva contraseña; si lo que hemos perdido es la clave para situar al cortafuegos enmodo privilegiado, el proceso es algo más complicado: en este caso debemos

Page 10: Configuracion de Firewall Cisco PIX

descargar la utilidad PIX Password Lockout Utility apropiada para nuestra versión defirewall (que podemos ver con sh version), desde la direcciónhttp://www.cisco.com/warp/public/110/34.shtmlSe trata de un fichero `.bin' que podemos transferir a un disquette mediante la ordendd:

anita:~$ dd if=np51.bin of=/dev/fd0144+0 records in144+0 records outanita:~$

Tenemos que arrancar con el disco al que hemos transferido este sistema, que nosautomáticamente nos preguntará si queremos borrar las claves; le diremos que sí yreiniciaremos el cortafuegos, que tendrá como contraseña de acceso remoto `cisco' y notendrá password para pasar al modo privilegiado.Cambios permanentesCada vez que nuestro PIX se apague perderá su configuración y cargará o bien unaintroducida en un diskette (esto es sólo teoría, nunca nos ha funcionado correctamente)o bien la que está grabada en su memoria flash; si deseamos que nuestros cambios seanpermanentes hemos de grabarlos o en disco o en memoria flash , mediante la ordenwrite (write floppy o write mem, en cada caso):

dixie# write memBuilding configuration...Cryptochecksum: 206a9447 17e7ec36 d53c98d2 22a06c5e[OK]dixie# wr floppyBuilding configuration...[OK]dixie#Si lo que queremos es visualizar la configuración que vamos a grabar (la actual),podemos ejecutar la orden write terminal, que la volcará en pantalla; esto representa laconfiguración que se está ejecutando en estos momentos, cuyo resultado puede serdiferente del proporcionado por sh conf (este último muestra la configuración quehemos cargado al arrancar).

Configuración de terminal

Para reconfigurar el número de líneas de nuestra terminal de conexión, tanto en modoprivilegiado como en modo usuario, podemos usar la orden pager, que recibe comoparámetro el número de líneas deseado:

dixie> show pagerpager lines 24dixie> pager 30dixie> show pagepager lines 30dixie>

Para configurar el número de columnas de nuestra consola podemos utilizar el comandoterminal; si esta orden recibe como parámetro la palabra monitor, habilita la impresiónde mensajes de syslog en nuestra pantalla, mientras que si recibe como parámetro la

Page 11: Configuracion de Firewall Cisco PIX

palabra width modifica el número de columnas. De nuevo, para ver la configuraciónactual utilizaremos la orden show:

dixie# show terminal

Width = 80, monitordixie# terminal width 90dixie# show terminal

Width = 90, monitordixie#

Información del sistema

Las órdenes que nos permiten obtener información del estado actual del PIX comienzanpor la palabra `show'; algunas de ellas son las siguientes:

show processesMuestra los procesos que se están ejecutando en el cortafuegos.

show versionMuestra información genérica sobre el firewall, como la versión del software instalado enel PIX, el uptime del sistema, ciertos parámetros hardware, licencias, etc. Este es unejemplo de dicha información:

dixie(config)# show version

Cisco Secure PIX Firewall Version 5.1(2)Compiled on Tue 16-May-00 16:09 by bhochuliFinesse Bios V3.3

dixie up 140 days 0 hours

Hardware: SE440BX2, 128 MB RAM, CPU Pentium II 349 MHzFlash AT29C040A @ 0x300, 2MBBIOS Flash AM28F256 @ 0xfffd8000, 32KB

0: ethernet0: address is 0090.279b.c9d2, irq 111: ethernet1: address is 0090.279b.c848, irq 102: ethernet2: address is 0090.279b.c759, irq 153: ethernet3: address is 0090.279b.c84c, irq 9

Licensed connections: 65536

Serial Number: 18018531 (0x112f0e3)Activation Key: 0xfe1f8896 0xe1fcb1e2 0x3400545b 0x8f392616dixie(config)#

show interface

Muestra información detallada sobre cada uno de los interfaces de red del firewall, deforma muy parecida al ifconfig de Unix.

show connMuestra las conexiones activas a través del cortafuegos.

Page 12: Configuracion de Firewall Cisco PIX

show historyMuestra las últimas órdenes ejecutadas en línea de comandos, de una forma similar alhistórico que casi todos los shells de Unix incorporan; la interfaz del PIX es muy similar ala de bash: Control-W borra una palabra, Control-E va al final de línea, Control-B alprincipio, Control-R realiza búsquedas, los cursores recorren el histórico de órdenes, etc.

show flashfsMuestra información sobre el sistema de ficheros empotrado en la memoria flash de lamáquina.

show clockMuestra la fecha y hora del sistema; podemos modificar esta información mediante laorden clock:

pixie(config)# sh clock01:38:34 Jun 11 2001pixie(config)# clock set 03:30:00 Jun 11 2001pixie(config)# sh clock03:30:02 Jun 11 2001pixie(config)#

show configureMuestra la configuración cargada al arrancar el cortafuegos (no tiene por qué ser la quese está ejecutando en estos momentos; esta se puede ver con wr t). Es el contenido dela memoria no volátil.

show failoverMuestra el estado del subsistema de tolerancia a fallos.

show whoMuestra las conexiones establecidas vía telnet con el cortafuegos.

El sistema de log remoto

El PIX Firewall registra los eventos que se producen en la máquina en un sistema de logque podemos visualizar en el propio cortafuegos mediante la orden sh log. Tambiénpodemos enviar los registros a un sistema Unix que escuche peticiones de syslog remoto,indicando la interfaz por la que se van a enviar los registros y la dirección del sistemaremoto mediante logging host:

pixie(config)# logging host inside 192.168.63.22pixie(config)#

En el sistema donde deseemos enviar los registros, el demonio syslogd ha de estarescuchando peticiones remotas (opción `-r' del programa), y en los cortafuegosintermedios ha de estar habilitado el tráfico desde el PIX al puerto 514 (UDP) de lamáquina Unix.Por defecto, PIX registra eventos más relacionados con el estado del failover que con laseguridad de los sistemas y los posibles ataques que pueden sufrir. Esto genera una grancantidad de mensajes que pueden hacer crecer al fichero de log de una formaconsiderable con entradas de este tipo:

Page 13: Configuracion de Firewall Cisco PIX

Jun 6 09:46:37 192.168.63.156 %PIX-1-103003: (Primary) Other firewall network interface 0 failed.Jun 6 09:46:49 192.168.63.156 %PIX-1-103005: (Primary) Other firewall reporting failure.Jun 6 09:46:49 192.168.63.156 %PIX-1-105004: (Primary) Monitoring on interface 1 normalJun 6 09:51:04 192.168.63.156 %PIX-1-105009: (Primary) Testing on interface 0 Passed

Para evitar registrar estos mensajes, en el cortafuegos podemos ejecutar la orden nologging message, que recibe como parámetro el número de mensaje que no queremosguardar; por ejemplo, si queremos evitar el registro de la alerta PIX-1-103003,ejecutaremos:

pixie(config)# no logging message 103003pixie(config)#Si queremos lo contrario, volver a registrar el mensaje en el sistema remoto,ejecutaremos la misma orden pero sin el `no' delante, o bien clear logging disabled, quehabilita el registro de todos los mensajes.pixie(config)# logging message 103003pixie(config)#

Podemos ver los mensajes que no estamos registrando mediante el comando sh loggingdisabled:

pixie(config)# sh logging disabledno logging message 105008no logging message 105009no logging message 103003no logging message 103004no logging message 103005pixie(config)#A nosotros nos va a interesar más registrar eventos registrados con entradas y salidas alcortafuegos, y también con tráfico negado en el mismo. Para ello, podemos ver la facilityy la severity de los mensajes de log en el sistema Unix; la facility es siempre PIX,mientras que la severity es el número siguiente en el código de mensaje registrado (de 1a 7); por ejemplo, un mensaje con un código como PIX-6-307002 corresponde a unafacility PIX y a una severity 6.

Podemos configurar nuestro syslog.conf para registrar los eventos provenientes del PIX(para Unix, con severity local4) en diferentes ficheros; lo más cómodo será registrartodos los eventos (ejecutando logging trap debugging) con una facility 20 (loggingfacility 20), y luego denegar mensajes determinados - relativos al failover mediante nologging message.

Failover

El sistema de alta disponibilidad implantado por PIX permite utilizar una unidadsecundaria que tomará el control de las conexiones en caso de que la primaria falle;ambas unidades estarán conectadas por un cable serie (un RS-232 modificado) quetransmite a 9600 baudios, y contínuamente se intercambian mensajes `hello' para queambas puedan conocer el estado de la otra unidad. Si dos de estos mensajesconsecutivos - se envían a intervalos de 15 segundos - no son recibidos en un

Page 14: Configuracion de Firewall Cisco PIX

determinado tiempo, entra en juego el failover para comprobar cual de las dos unidadesha fallado y transferir el control a la otra. Entonces cada unidad cambia de estado: lanueva unidad activa asume las direcciones IP y MAC de la anterior y comienza a aceptartráfico, y la que antes era la activa ahora asume los parámetros de la que no lo era; elresto de elementos de la red no ve ningún cambio en los dispositivos, por lo que noexisten cambios o timeouts en las tablas ARP.

Si queremos saber el estado del failover (por ejemplo para ver cuál es la unidad activaen un determinado momento) hemos de ejecutar la orden sh failover:

pixie(config)# sh failoverFailover OnCable status: NormalReconnect timeout 0:00:00 This host: Primary - Active Active time: 386520 (sec) Interface failover (192.168.87.209): Normal Interface dmz1 (192.168.63.156): Normal Interface outside (172.17.1.1): Normal Interface inside (172.17.2.1): Normal Other host: Secondary - Standby Active time: 405 (sec) Interface failover (192.168.87.210): Normal Interface dmz1 (192.168.63.157): Normal Interface outside (172.17.1.2): Normal Interface inside (172.17.2.2): Normal

Stateful Failover Logical Update Statistics Link : failover Stateful Obj xmit xerr rcv rerr General 53081 0 50149 0 sys cmd 52067 0 50146 0 up time 0 0 0 0 xlate 9 0 0 0 tcp conn 1005 0 3 0 udp conn 0 0 0 0 ARP tbl 0 0 0 0 RIP Tbl 0 0 0 0

Logical Update Queue Information Cur Max Total Recv Q: 0 1 50149 Xmit Q: 0 3 53081pixie(config)#

En el resultado de la orden anterior vemos que la unidad principal está funcionandonormalmente, mientras que la secundaria está en standby; esto será lo habitual si noentra en juego el failover o incluso si entra y la unidad principal se recupera, ya que enese caso se hace un rebalanceo. Si en lugar de que todas las interfaces estén en estadonormal aparecieran errores temporales de escasa duración, no hay ningún problema, yaque esto suele significar que el cortafuegos está testeando la alta disponibilidad y laconectividad de las interfaces.

El failover es casi transparente a la administración de la máquina, en el sentido de que laconfiguración sólo se realiza en la unidad activa en cada momento, y automáticamentese transfiere a la que está en standby; además, como hemos dicho, cuando entra la alta

Page 15: Configuracion de Firewall Cisco PIX

disponibilidad las unidades intercambian sus direcciones IP, por lo que el acceso víatelnet a la máquina se realiza contra la misma dirección que durante el funcionamientonormal de los equipos. Incluso si trabajamos con stateful failover, las unidadesmantienen la información de estado de cada conexión, por lo que en caso de switchoverninguna de ellas se pierde; en caso contrario, las conexiones activas son eliminadas y elcliente debe reestablecerlas.

Con la orden failover podemos habilitar el failover, y con no failover deshabilitarlo:

pixie(config)# no failoverpixie(config)# sh failoverFailover OffCable status: NormalReconnect timeout 0:00:00pixie(config)#

Las órdenes anteriores también admiten argumentos; si indicamos `link' podemos definirla interfaz de stateful failover, por la que ambas unidades intercambiarán información.Con `ip address' podemos configurar una dirección de failover para cada interfaz de launidad secundaria, y con el parámetro `active' forzamos a una unidad determinadaponerse como activa (o en standby, si ejecutamos no failover active). Como siempre,podemos teclear el signo `?' para obtener ayuda desde línea de comandos:

pixie(config)# failover ?usage: [no] failover [active] failover ip address <if_name> <ip_address> failover timeout <hh:mm:ss> failover reset failover link <if_name>pixie(config)# failover