Sunteți pe pagina 1din 333

Pgina 1

Pgina 2
Network Security Hacks
Andrew Lockhart
Editor
Brian Sawyer
Copyright 2009 O'Reilly Media, Inc.
O'Reilly Media
Pgina 3
Oferta especial: este ebook con O'Reilly
Haga clic aqu para ms informacin sobre esta oferta!
Tenga en cuenta que las ofertas de actualizacin no estn disponibles a partir del contenido de la muestra.
Pgina 4
Derechos de autor
Copyright 2007, 2004 O'Reilly Media, Inc. Todos los derechos reserved.Printed en los Estados Unidos de
Amrica.
Publicado por O'Reilly Media, Inc., 1005 Gravenstein Highway Norte, Sebastopol, CA 95472.
Libros de O'Reilly pueden ser adquiridos para uso educacional, comercial, o uso promocional. Ediciones en lnea
Tambin estn disponibles para la mayora de los ttulos (safari.oreilly.com). Para obtener ms informacin, pngase en contacto con nuestro
departamento corporativo / institucional ventas: (800) 998-9938 o corporate@oreilly.com.
Editor: Brian Sawyer
Editor de Produccin: Philip Aros y Aretes
Copyeditor: Rachel Wheeler
Indexador: Ellen Troutman-Zaig
Cover Designer: Karen Montgomery
Diseador de Interiores: David Futato
Ilustradores: Robert Romano y Jessamyn Leer
Historial de impresin:
Abril de 2004: Primera edicin.
Noviembre de 2006: Segunda edicin.
Nutshell Handbook, el logotipo de Nutshell Handbook y el logotipo de O'Reilly son marcas registradas de
O'Reilly Media, Inc. Las denominaciones de la serie Hacks, Network Security Hacks, la imagen de pas
alambre, y la imagen comercial son marcas registradas de O'Reilly Media, Inc.
Muchas de las denominaciones utilizadas por los fabricantes y vendedores para distinguir sus productos son reclamados
como marcas. Cuando esas designaciones aparecen en este libro, y O'Reilly Media, Inc. fue consciente de una
demanda sobre la marca, las designaciones se han impreso en maysculas o maysculas iniciales.
Si bien todas las precauciones se han tomado en la preparacin de este libro, el editor y el autor
no asume ninguna responsabilidad por errores u omisiones, ni por perjuicios resultantes del uso de la
informacin aqu contenida.
Pequea impresin: Las tecnologas tratadas en esta publicacin, las limitaciones en estas tecnologas que
propietarios de la tecnologa y de contenidos tratan de imponer, y las leyes en realidad la limitacin del uso de estos
tecnologas estn cambiando constantemente. Por lo tanto, algunos de los hacks describen en esta publicacin no puede
trabajo, puede causar dao involuntario a los sistemas en los que se utilizan, o pueden no ser compatibles con
acuerdos de usuario aplicable. La utilizacin de estos hacks es bajo su propio riesgo, y O'Reilly Media, Inc.
renuncia a la responsabilidad por los daos o gastos derivados de su uso. En cualquier caso, usted debe
tener cuidado de que el uso de estos hacks no viola cualquier ley aplicable, incluidas las leyes de derechos de autor.
ISBN 10: 0-596-52763-2
Pgina 5
Crditos
Sobre el autor
Andrew Lockhart es originario de Carolina del Sur, pero actualmente reside en el norte de Colorado, donde
l pasa su tiempo tratando de aprender el arte negro de auditora desmontado binarios y tratando de mantener
de la congelacin a la muerte. l tiene una licenciatura en ciencias de la computacin de la Universidad Estatal de Colorado y tiene
consultora de seguridad hecho por pequeas empresas de la zona. Cuando no est escribiendo libros, l es una persona mayor
analista de seguridad con la Red de Qumica, un proveedor lder de soluciones de seguridad inalmbrica. Andrew es
Tambin es miembro de las vulnerabilidades inalmbricas y Exploits proyecto (
http://www.wirelessve.org
)
consejo editorial y regularmente contribuye a su columna de la seguridad inalmbrica en NetworkWorld
(
http://www.networkworld.com/topics/wireless-security.html
). En su tiempo libre, trabaja en Snort-
Wireless (
http://snort-wireless.org
), Un proyecto destinado a aadir la deteccin de intrusiones inalmbricas a la
popular de cdigo abierto Snort IDS.
Pgina 6
Colaboradores
Las siguientes personas contribuyeron hacks, la escritura, y la inspiracin para este libro:
Oktay Altunergil es el fundador del Proyecto Free CD de Linux (
http://www.freelinuxcd.org
) Y
uno de los mantenedores de Turk-PHP.com (un portal PHP turco). Tambin trabaja a tiempo completo como Unix
administrador de sistemas y programador PHP.
Michael D. (Mick) Bauer (
http://mick.wiremonkeys.org
) Escribe Linux Journal 's "Paranoid
Columna de la seguridad del pingino ". Durante el da, trabaja para mantener a los extranjeros fuera de las redes informticas de los bancos.
Schuyler Erle (
http://nocat.net
) Es un desarrollador de Software Libre y activista. Sus intereses incluyen
cartografa de colaboracin, las redes inalmbricas, software para el cambio social y poltico, y la
Web Semntica. Schuyler es el desarrollador principal de NoCatAuth, la telefona mvil lder de cdigo abierto
portal cautivo.
Bob Fleck (
http://www.securesoftware.com
) Es director de los servicios de seguridad en el software Secure.
Es consultor en las reas de desarrollo seguro y de seguridad inalmbrica y es coautor del
Libro 802.11 Seguridad de O'Reilly. Los resultados de sus investigaciones ms recientes en Bluetooth
de seguridad se puede encontrar en
http://bluetooth.shmoo.com
.
Rob Flickenger (
http://nocat.net
) Es un escritor y editor de la serie Hacks de O'Reilly. Actualmente
pasa su tiempo de hacking en varios proyectos y promover la creacin de redes inalmbricas comunitarias.
Preston Gralla es el autor de ms de 30 libros sobre las computadoras y la Internet, que tienen
ha traducido a 15 idiomas, incluyendo Windows XP Hacks (O'Reilly), Internet Molestias
(O'Reilly), y Windows XP Poder Hound (Pogue Press). l ha estado escribiendo sobre tecnologa
desde los albores de la era de la PC, y ha sido editor y columnista para muchos nacionales
peridicos, revistas y sitios web. Fue el editor fundador de la Semana de la PC; editor fundador,
entonces editor, entonces director editorial de PC / Informtica; y editor ejecutivo de ZDNet / CNet. Preston
ha escrito acerca de la tecnologa para numerosas revistas y peridicos, entre ellos la revista PC Magazine,
Computerworld, CIO Magazine, Computer Shopper, el diario Los Angeles Times, EE.UU. Hoy en da, el Dallas
Noticias de la maana (donde era un columnista de tecnologa), y muchos otros. Ha sido columnista
para ZDNet / CNet y actualmente es columnista de TechTarget.com. Sus comentarios acerca de
La tecnologa ha sido presentado en la radio pblica de la Nacin "All Things Considered", y tiene
gan el premio a la Mejor Pelcula en una publicacin de la Computacin de la Computer Press
Asociacin. Bajo su direccin editorial, PC / Computing fue nalista en la categora de general
Excelencia de los National Magazine Awards. Preston es tambin el editor de O'Reilly
WindowsDevCenter.com sitio. l vive en Cambridge, MA, con su esposa y sus dos hijos-
aunque su hija ha huido recientemente del nido para la universidad. Entre la escritura de libros, artculos y
columnas, l nada, juega tenis, va a la pera, y contempla el crneo de carnero que cuelga en
la pared de su ocina.
Michael Lucas (
http://www.blackhelicopters.org/mwlucas/
) Vive en una casa encantada en Detroit,
Michigan, con su esposa Liz, roedores variados, y una multitud de peces. l ha sido un wrangler mascota, un
bibliotecario, y un consultor de seguridad, y ahora trabaja como ingeniero de redes y sistemas
administrador con la de los Grandes Lagos Technologies Group. Michael es el autor del Absoluto BSD,
OpenBSD Absoluto y routers Cisco para los desesperados (todos de No Starch Press), y l es
Actualmente prepara un libro sobre NetBSD.
Matt Messier (
http://www.securesoftware.com
) Es el Director de Ingeniera de Software Seguro y
una autoridad de seguridad que ha estado programando desde hace casi dos dcadas. Adems de la coautora
Pgina 7
el libros de O'Reilly Programacin Segura Cookbook para C y C + + y Network Security con
OpenSSL, Matt coautor del C Biblioteca Permite String (SafeStr), XXL, ratas y EGADS.
Ivan Ristic (
http://www.modsecurity.org
) Es un especialista en seguridad web y el autor de
mod_security
, Una fuente abierta de deteccin de intrusos y el motor de la prevencin para las aplicaciones web. l es
un miembro del Comit Tcnico de OASIS Web Application Security, donde trabaja en la
estndar para la proteccin de aplicaciones web.
Hans Schefske es columnista en myITforum.com (
http://www.myitforum.com
) Y cuenta con ms de ocho
aos de experiencia en ingeniera y diseo de la arquitectura e implementacin de Microsoft
cliente / servidor basado en soluciones de red. Consultora y direccin de proyectos en la industria de TI, que tiene
proporcionado los conocimientos tcnicos en las reas de diseo e implementacin de infraestructuras para grandes
empresas de nivel empresarial tales como Nabisco, Prudential, AIG, Simpson, Thatcher y Bartlett,
Novartis y Hoffman LaRoche farmacia. En 2003, Hans fue galardonado con un Microsoft Most
Valuable Professional (MVP) Premio por SMS por sus habilidades tcnicas pendientes y la voluntad
para compartir conocimientos con sus compaeros. Como autor tcnico en myITforum.com, que brinda asistencia tcnica
informacin, herramientas, scripts y utilidades para profesionales de TI y administradores para ayudar mejor a los
en la gestin de sus soluciones basadas en Microsoft. Hans es actualmente un Active Directory y SMS Superior
consultor en una gran empresa de telecomunicaciones con sede en Atlanta, GA.
De Rod Trent, gerente de myITforum.com (
http://www.myitforum.com
), Es el principal experto en
Microsoft Systems Management Server (SMS). l tiene ms de 18 aos de experiencia en TI, 8 de los cuales
se han dedicado a los SMS. Es autor de libros como Microsoft SMS Installer, Admin911:
SMS, y Windows 2000 IIS 5.0: Gua de un principiante (todos de McGraw-Hill) y ha escrito
miles de artculos sobre temas de tecnologa. myITforum.com es la ubicacin central para terceros
SMS de apoyo y un lugar de reunin en lnea bien conocida por los profesionales de TI y de la comunidad de TI.
Vara habla por lo menos tres veces al ao en varias conferencias y es un director al NetImpress, Inc.
(
http://www.netimpress.com
).
Mitch Tulloch (
http://www.mtit.com
) Es Presidente de MTIT Enterprises, un desarrollo de contenidos de TI
con sede en Winnipeg, Canad compaa. Antes de iniciar su propia empresa en 1998, trabaj como Mitch
Microsoft Certied Trainer para la Productividad Point International. Mitch es un ampliamente reconocido
experto en la administracin de Windows, redes y seguridad y ha sido galardonado Ms Valioso
Professional (MVP) de estado por parte de Microsoft por sus destacadas contribuciones en apoyo a los usuarios que
implementar las plataformas de Microsoft, productos y soluciones. Mitch tambin es actualmente profesor en Jones
Universidad Internacional (DCI), donde imparte cursos de posgrado en Seguridad de la Informacin
Gestin que l co-desarrollado con su esposa, Ingrid Tulloch, para el programa de MBA de la DCI. Mitch es
el autor de 14 libros, incluyendo Windows Server Hacks (O'Reilly), Windows Server 2003 en un
Nutshell (O'Reilly), el Microsoft Encyclopedia of Networking (Microsoft Press), el Microsoft
Enciclopedia de la seguridad (Microsoft Press), y Administracin de IIS 6 (Osborne / McGraw-Hill).
Mitch tambin ha escrito artculos de fondo para revistas del sector, como NetworkWorld y Microsoft
Certied Professional Magazine, y contribuye regularmente artculos a O'Reilly
WindowsDevCenter.com, ITWorld.com, y WindowsNetworking.com. Artculos de Mitch han sido
ampliamente sindicado en otros sitios de TI, tales como Computerworld.com, Smallbusiness.com, e incluso
CNN.com.
John Viega (
http://www.securesoftware.com
) Es director de tecnologa y fundador de Secure
Software. l es tambin el co-autor de varios libros sobre la seguridad del software, incluyendo Secure
Programacin Cookbook para C y C + + (O'Reilly) y Construccin de Software seguro (Addison-
Wesley). John es responsable de numerosas herramientas de software de seguridad, y l es el autor original de
Pgina 8
Mailman, el gestor de listas de correo de GNU.
Pgina 8
Pgina 9
Agradecimientos
Una vez ms tengo que agradecer a Karen (aka DJ Jackalope para los asistentes Defcon) por su constante apoyo
y aliento, y por soportar las muchas horas pasadas en el trabajo.
Tambin, agradecimiento a Brian Sawyer por su paciencia a lo largo de todo este proceso, y para toda la
otras personas maravillosas en O'Reilly que trabajaron duro para hacer que este libro sea una realidad tangible. Tambin me gustara
dar las gracias a John Hoopes para proporcionar la revisin tcnica para esta edicin. El consejo de Juan era
instrumental en hacer de este un libro mejor.
Por ltimo, me gustara dar las gracias a mis padres por su constante aliento.
Pgina 10
Prefacio
En ninguna parte es el trmino hacker ms errada interpretacin que en el campo de la seguridad de la red. Es
comprensible porque las mismas herramientas que los profesionales de seguridad de red utilizan para sondear la
robustez de sus propias redes tambin se puede utilizar para lanzar ataques contra cualquier mquina en Internet.
La diferencia entre los administradores de sistemas legtimamente a prueba sus propias mquinas y el sistema
crackers intentan obtener acceso no autorizado no es tanto una cuestin de tcnicas o herramientas, sino una
cuestin de intencin. Despus de todo, como con cualquier pieza de gran alcance de la tecnologa, una herramienta de seguridad no es intrnsecamente
bueno o malo-esta determinacin depende totalmente de cmo se utiliza. El mismo martillo se puede utilizar para
ya sea para construir una pared o derribarla.
La diferencia entre el "sombrero blanco" y los piratas "sombrero negro" no radica en las herramientas o tcnicas que utilizan
(O incluso el color de su sombrero), pero en sus intenciones. La diferencia es sutil pero importante. Blanco
hackers de sombrero encuentran que la construccin de sistemas seguros presenta un desafo interesante, y la seguridad de
tales sistemas pueden ser verdaderamente probados slo a travs de un conocimiento profundo de cmo subvertir ellos. Sombrero negro
hackers (ms apropiadamente llamados crackers) persiguen precisamente el mismo conocimiento, pero sin tener en cuenta
para la gente que construy los sistemas o los servidores que atacan. Ellos usan sus conocimientos para subvertir
estos sistemas para su propio benecio personal, a menudo en detrimento de los sistemas que se inltran.
Por supuesto, los cuentos de atrevidos tecno-robos internacionales y negro-revestido, hbito de fumar cigarrillos, laptop-
armados con intelectuales malos tienden a vender mejor que cuentos simples de los ingenieros que construyen fuertes
redes, por lo que el trmino piratera se ha ganado una mala reputacin en la prensa popular. Lo usan para referirse a
personas que irrumpen en los sistemas o que causan estragos uso de computadoras como su arma. Entre
personas que resuelven problemas, sin embargo, el trmino se reere a hackear una solucin "rpida y sucia" a un problema,
o una forma inteligente de hacer algo. Y el trmino hacker se toma en gran medida como un cumplido,
referirse a alguien como ser creativo, es decir, con las chuletas de tcnicas para hacer las cosas. Los Hacks
serie es un intento de recuperar esta palabra, documentar las formas en que realizando cambios (en el buen sentido), y
pasar la tica hacker de participacin creativa a los no iniciados. Al ver cmo se acercan a los dems
sistemas y problemas es a menudo la forma ms rpida de aprender sobre una nueva tecnologa. Slo por abiertamente
discusiones sobre las fallas de seguridad e implementaciones podemos esperar construir sistemas fuertes.
Por qu la Red de Seguridad Hacks?
Esta segunda edicin de Network Security Hacks es un grimorio de 125 tcnicas de seguridad de gran alcance. Este
volumen muestra los mtodos ecaces para la defensa de sus servidores y las redes de una variedad de
ataques arteros y sutiles. Dentro de este libro son ejemplos de cmo detectar la presencia (y la pista
cada golpe de teclado) de intrusos de la red, los mtodos para la proteccin de su red y sus datos usando una fuerte
encriptacin, e incluso tcnicas para la colocacin de trampas para los potenciales crackers de sistemas. Muchos importantes
se presentan herramientas de seguridad, as como los mtodos inteligentes para el uso de ellos para revelar real, til
informacin acerca de lo que est sucediendo en su red.
Pgina 11
Cmo est organizado este libro
Aunque cada truco est diseada para sostenerse por s mismo, este libro hace un uso extensivo de la cruz-
referencia entre los hacks. Si encuentra una referencia a algo que le interesa, mientras que la lectura de un
particular, hack, sintase libre para saltar alrededor y seguirlo (tanto como es posible que durante la navegacin por la web).
El libro en s se divide en varios captulos, organizados por tema:
Captulo 1, Unix Host Seguridad
Como dice el viejo refrn, Unix fue diseado para compartir la informacin, no para protegerlo. Este viejo dicho es
ya no es as con los sistemas operativos modernos, donde la seguridad es un componente integral de cualquier
servidor. Muchos nuevos programas y caractersticas del ncleo se han desarrollado que proporciona una mucho mayor
grado de control sobre lo que los sistemas operativos de tipo Unix pueden hacer. Captulo 1 demuestra avanzada
tcnicas para el endurecimiento de su Linux, FreeBSD, OpenBSD o servidor.
Captulo 2, Windows Seguridad de host
Microsoft Windows se utiliza como plataforma de servidor en muchas organizaciones. Como la plataforma de Windows
es un objetivo comn para los diversos ataques, la administracin de estos sistemas puede ser un reto. Este
captulo abarca muchos pasos importantes que los administradores de Windows a menudo pasan por alto, incluyendo
apretando los permisos, auditar toda la actividad del sistema, y la eliminacin de los agujeros de seguridad que son
presentar en la instalacin por defecto de Windows.
Captulo 3, privacidad y anonimato
En estos das, el control de la pista de la informacin dada en lnea es ms importante que nunca. Como ms de
nuestras vidas se llevan a cabo en lnea, nuestra informacin es ms fcil de acceder por amigos y enemigos.
Este captulo discute varias maneras de protegerse en lnea, ofreciendo soluciones para el cifrado
correo electrnico, de manera annima, y la gestin de contraseas para los sitios web.
Captulo 4, Cortafuegos
Los cortafuegos son una tecnologa clave en el mbito de la seguridad de la red. Sin ellos, el mundo de la
seguridad de la red sera muy diferente. En este captulo se muestra cmo congurar los servidores de seguridad bajo
varios sistemas operativos, como Linux, OpenBSD, FreeBSD y Windows. Filtrado Diferente
y tcnicas de prueba de rewall tambin estn cubiertos en este captulo.
Captulo 5, Cifrado y Proteccin de servicios
Limitar cmo los servicios pueden afectar al sistema en el que se estn ejecutando es un aspecto clave del servidor
seguridad. Tambin es vital que el trco entre el servicio y los clientes que se conectan a l permanecen
condencial con el n de proteger los datos y las credenciales de autenticacin de los usuarios. Este captulo muestra cmo
hacerlo por varios servicios populares, como SMTP, IMAP, POP3, Apache y MySQL.
Captulo 6, Seguridad de redes
Independientemente del sistema operativo de los servidores utilizan, si la red est conectada a Internet,
utiliza TCP / IP para las comunicaciones. Protocolos de red pueden ser subvertidos en una serie de gran alcance
y de manera sorprendente, que conduce a los ataques que pueden ir desde la simple negacin de servicio a
acceso no autorizado con todos los privilegios. Este captulo muestra algunas herramientas y tcnicas
utilizado para atacar a servidores utilizando la propia red, as como los mtodos para la prevencin de estos ataques.
Captulo 7, Seguridad Wireless
Las redes inalmbricas se han convertido en una vista comn en el paisaje red domstica y continuar
ganar traccin en las redes empresariales. Sin embargo, la guardia de usuarios no autorizados y los atacantes poses
Pgina 12
un desafo mayor en una red inalmbrica. Si bien este captulo incluye slo un puado de hacks,
lo que se puede aprender de ellos tiene un valor incalculable. Si usted quiere compartir su red con otros
(Pero an as mantener una apariencia de seguridad) o bloquear su red inalmbrica con grano no
autenticacin, este captulo tiene algo para ti.
Captulo 8, Tala
Los administradores de seguridad de red viven y mueren por la calidad de sus registros. Si es demasiado poca informacin
seguimiento, intrusiones pueden deslizarse desapercibidas. Si es demasiado amigable, los ataques se pueden perder en el diluvio de
informacin irrelevante. Este captulo le muestra cmo equilibrar la necesidad de informacin con el
necesario por razones de brevedad recogiendo de forma automtica, el procesamiento y la proteccin de sus registros del sistema.
Captulo 9, Vigilancia y Tendencias
Tan til como registros del sistema y anlisis de red pueden ser, representan slo un nico punto de datos de
informacin, relevantes slo para el instante en que se registraron los acontecimientos. Sin un historial de
la actividad en su red, no tienes manera de establecer una lnea de base para lo que es "normal", ni ninguna
camino real para determinar si algo raro est pasando. En este captulo se presenta una serie de herramientas y
mtodos para la observacin de la red y los servicios en el tiempo, lo que permite reconocer tendencias que
ayudar en la planicacin futura y le permiten saber a primera vista cuando algo no est bien.
Captulo 10, tneles seguros
Cmo es posible mantener comunicaciones seguras a travs de redes como no able como la
Internet? La respuesta casi siempre implica el cifrado de gran alcance y las tcnicas de autenticacin.
Captulo 10 le muestra cmo implementar tecnologas VPN potentes, incluyendo IPSec, PPTP, y
OpenVPN. Tambin encontrar tcnicas para la proteccin de los servicios mediante SSL, SSH, y otra fuerte
herramientas de cifrado.
Captulo 11, deteccin de intrusos en redes
Cmo sabe cuando su red est bajo ataque? Mientras que los registros y las estadsticas histricas puede
mostrar si algo est fuera de tipo, hay herramientas diseadas para que le notique (o de lo contrario toma
accin) inmediatamente cuando se detecten ataques comunes. Este captulo se centra en la tremendamente
herramienta popular NIDS Snort y presenta muchas tcnicas y los complementos que desencadenan esta poderosa
todo el potencial de la herramienta. Tambin se presentan mtodos para la creacin de su propia red de "honeypot" para
atraer y confundir a los posibles crackers de sistemas.
Captulo 12, Recuperacin y Respuesta
Incluso el administrador de la red ms competente y cuidadoso con el tiempo tendr que hacer frente a
incidentes de seguridad de xito. Este captulo contiene sugerencias sobre cmo vericar su sistema de
integridad, preservar las pruebas para su posterior anlisis, y localizar a la persona humana en el otro extremo de la
el trco de red no deseado.
Pgina 13
Convenciones utilizadas en este libro
Los siguientes convenios tipogrcos se utilizan en este libro:
Itlico
Indica los nuevos trminos, URLs, direcciones de correo electrnico, nombres de archivos y extensiones de archivo, nombres de las rutas, directorios,
demonios, programas y utilidades Unix
Anchura constante
Indica los comandos, las opciones, los conmutadores, las variables, atributos, llaves, funciones, tipos, clases,
espacios de nombres, mtodos, mdulos, propiedades, parmetros, valores, objetos, eventos, controladores de eventos,
Las etiquetas XML, etiquetas HTML, macros, el contenido de archivos, y la salida de los comandos
Negrita de ancho constante
Muestra los comandos u otro texto que debe escribirse literalmente por el usuario
Cursiva ancho constante
Muestra el texto que se debe sustituir con los valores suministrados por el usuario
Tipo de Gray
Se utiliza para indicar una referencia dentro del texto
Se debe prestar especial atencin a las notas que guran aparte del texto con los siguientes iconos:
TIP
Este es un consejo, sugerencia, o una nota general. Contiene informacin adicional til sobre el tema que nos ocupa.
ADVERTENCIA
Esta es una advertencia o una nota de cautela, a menudo lo que indica que la bolsa o la vida privada podran estar en riesgo.
Los iconos del termmetro, que se encuentra al lado de cada truco, indican la relativa complejidad del hack:
Pgina 14
Safari Activado
Cuando vea un icono de Safari Habilitado en la portada de tu libro favorito de la tecnologa, que signica la
libro est disponible en lnea a travs de la Red de O'Reilly Safari Biblioteca.
Safari ofrece una solucin que es mejor que los libros electrnicos. Es una biblioteca virtual que te permite buscar fcilmente
miles de los mejores libros de tecnologa, cortados y ejemplos de cdigo pasta, captulos de descarga, y encontrar respuestas rpidas
cuando se necesita la informacin actual y ms exacta. Prubelo gratuitamente en
http://safari.oreilly.com
.
Pgina 15
Utilizando ejemplos de cdigo del
Este libro est aqu para ayudarle a conseguir su trabajo hecho. En general, usted puede usar el cdigo de este libro en su
programas y documentacin. No es necesario ponerse en contacto con nosotros para obtener permiso, a menos que ests reproduciendo
una porcin signicativa del cdigo. Por ejemplo, escribir un programa que utiliza varios trozos de cdigo
de este libro no requiere permiso. La venta o distribucin de un CD-ROM de ejemplos de
Libros de O'Reilly s requiere permiso. Respondiendo a una pregunta de la que cita este libro y citando
ejemplo de cdigo no requiere autorizacin. La incorporacin de una cantidad signicativa de ejemplo de cdigo de
este libro en la documentacin de su producto requiere permiso.
Apreciamos, pero no lo necesitamos, la atribucin. Una atribucin suele incluir el ttulo, el autor,
editor, e ISBN. Por ejemplo: "Network Security Hacks, segunda edicin, por Andrew Lockhart.
Copyright 2007 O'Reilly Media, Inc., 978-0-596-52763-1. "
Si usted sospecha que su uso de los ejemplos de cdigo se encuentra fuera de uso justo o el permiso dado aqu, no dude en
ponerse en contacto con nosotros en
permissions@oreilly.com
.
Pgina 16
Cmo comunicarse con nosotros
Por favor dirigirse a los comentarios y preguntas en relacin con este libro a la editora:
O'Reilly Media, Inc.
1005 Gravenstein Highway Norte
Sebastopol, CA 95472
800-998-9938 (en los Estados Unidos o Canad)
707-829-0515 (internacional o local)
707-829-0104 (fax)
Tenemos una pgina web de este libro, en el que lista de erratas, ejemplos, y cualquier informacin adicional.
Puede acceder a esta pgina en:
http://www.oreilly.com/catalog/netsechacks2/
Para dejar un comentario hacer preguntas tcnicas acerca de este libro, enve un correo a:
bookquestions@oreilly.com
Para obtener ms informacin acerca de nuestros libros, conferencias, centros de recursos, y la Red de O'Reilly, consulte
nuestro sitio web en:
http://www.oreilly.com
Pgina 17
Tienes un Hack?
Para explorar los libros Hacks lnea o contribuir un hack para futuros ttulos, visite:
http://hacks.oreilly.com
Pgina 18
Captulo 1. Unix Host Seguridad
Networking es conectar ordenadores entre s, por lo que se deduce que una red informtica hay
ms seguro que las mquinas que conecta. Un nico host insegura puede hacer un montn de problemas para
toda la red, ya que puede actuar como una herramienta para reconocimiento o una base fuerte de ataque si es
bajo el control de un adversario. Los cortafuegos, mecanismos de deteccin de intrusos, y otra avanzada
las medidas de seguridad son intiles si los servidores ofrecen servicios fcilmente comprometidos. Antes de ahondar en
la parte de red de seguridad de la red, primero debe asegurarse de que las mquinas que son responsables
para son lo ms segura posible.
Este captulo ofrece muchos mtodos para reducir los riesgos asociados a la oferta de servicios en el basado en Unix, un
sistema. A pesar de que cada uno de estos hacks puede sostenerse por s mismo, vale la pena leer a travs de todo este
captulo. Si implementa un solo tipo de medida de seguridad, se corre el riesgo de que toda tu preparacin
siendo totalmente negada una vez que un atacante se da cuenta de la manera de eludir l. As como Fort Knox no est protegido
por una puerta regular con un cerrojo comn, ningn elemento de seguridad nico puede proteger en ltima instancia su
servidores. Y las medidas de seguridad que pueda necesitar para tener aumento en proporcin al valor de lo que
que est protegiendo.
Como dice el viejo refrn, la seguridad no es un sustantivo, es un verbo. Es decir, la seguridad es un proceso activo que debe
ser constantemente seguido y renovada. Corto de desenchufarlo, no hay una sola accin que puede tomar para
asegurar su mquina. Con esto en mente, considere estas tcnicas como un punto de partida para la construccin de una
Servidor Seguro que satisfaga sus necesidades particulares.
Hack # 1. Asegure puntos de montaje
Utilice las opciones de montaje para ayudar a prevenir que los intrusos escalada, adems, un compromiso.
La principal manera de interactuar con una mquina Unix es a travs de su sistema de archivos. Por lo tanto, cuando un intruso
ha tenido acceso a un sistema, es conveniente limitar lo que puede hacer con los archivos disponibles para l.
Una forma de lograr esto es con el uso de opciones de montaje restrictivas.
Una opcin de montaje es una bandera que controla cmo se puede acceder al sistema de archivos. Se pasa a la operacin
cdigo de kernel del sistema cuando el sistema de archivos se pone en lnea. Opciones de montaje se pueden utilizar para prevenir
los archivos se interpreta como nodos de dispositivos, para no permitir los binarios de ser ejecutado, y para no permitir
el bit SUID entre en vigor (mediante el uso de la
nodev
,
noexec
, Y
nosuid
banderas). Los sistemas de archivos tambin se puede
ser montado de slo lectura con la
ro
opcin.
Estas opciones se especican desde la lnea de comandos ejecutando
monte
con el
-O
bandera. Por ejemplo, si
que tener una particin separada para / tmp que se encuentra en la tercera particin de tu primer disco duro IDE, puede
montar con el
nodev
,
noexec
, Y
nosuid
banderas, que se habilitan mediante la ejecucin del siguiente comando:
# Mount-o nodev, noexec, nosuid / dev/hda3 / tmp
Una entrada equivalente en su / etc / fstab sera algo como esto:
/ Dev/hda3 / Tmp ext3 incumplimientos, nodev, noexec, nosuid 1 2
Al considerar cuidadosamente sus necesidades y dividir el almacenamiento en mltiples sistemas de cheros,
usted puede utilizar estas opciones de montaje para aumentar el trabajo que un atacante tendr que hacer para
comprometer an ms su sistema. Una forma rpida de hacer esto es clasicar primero de su rbol de directorios en
reas que necesitan acceso de escritura para que el sistema funcione y los que no lo hacen. Usted debe considerar el uso de
el indicador de slo lectura en cualquier parte del sistema de archivos donde los contenidos no cambian con regularidad. Una buena
candidato para esto podra ser / usr, dependiendo de la frecuencia se realizan las actualizaciones al software del sistema.
Pgina 19
Obviamente, tendr que ser montado como lectura / escritura de muchos directorios (como el / home). Sin embargo, es
poco probable que los usuarios de un sistema medio multiusuario debern ejecutar binarios SUID o crear el dispositivo
archivos en sus directorios de inicio. Por lo tanto, un sistema de cheros por separado, montado con la
nodev
y
nosuid
opciones, se podran crear para albergar a los directorios personales de los usuarios. Si ha determinado que su
los usuarios no tendrn que ejecutar programas almacenados en sus directorios de inicio, puede utilizar el
noexec
monte
opcin tambin. Una solucin similar podra ser usado para / tmp y / var, donde es muy poco probable que cualquier
proceso legtimamente necesite ejecutar SUID o no SUID binarios o archivos de dispositivo de acceso. Este
estrategia ayudara a prevenir la posibilidad de que un atacante dejando un caballo de Troya en un comn
directorio como / tmp o directorio de inicio del usuario. El atacante puede ser capaz de instalar el programa, pero
no ser capaz de ejecutar, con o sin los bits chmod adecuados.
TIP
Servicios que se ejecutan en un entorno de espacio aislado [Hack # 10] se puede romper si no se especica nodev en el sistema de archivos que se ejecutan en el
caja de arena. Esto se debe a los nodos de dispositivos como / dev / log y / dev / null deben estar disponibles en el (medio ambiente) chroot.
Hay un nmero de maneras en que un atacante puede eludir estas restricciones de montaje. Por ejemplo, la
noexec
opcin en Linux puede ser evitado mediante el uso de / lib / ld-linux.so ejecutar binarios residen en un
sistema de archivos montado con esta opcin. A primera vista, se podra pensar que este problema podra solucionarse
haciendo ld-linux.so no ejecutable, pero esto hara que todos los binarios enlazados dinmicamente
no ejecutable.
As que, a menos que todos los programas que se basan en estticamente ligado (es probable que no lo son), la
noexec
opcin es de poco uso en Linux. Adems, un atacante que ya se ha ganado privilegios de root no lo har
obstaculizada de manera signicativa por los sistemas de cheros montados con opciones especiales, ya que a menudo pueden ser
vuelto a montar con la
-O remount
opcin. Pero mediante el uso de banderas de montaje, puede limitar fcilmente la posible
ataques disponibles para un usuario hostil antes de que gana privilegios de root.
Pgina 20
Hack # 2. Analizar en busca de programas SUID y SGID
Compruebe rpidamente a los programas y puertas traseras root explotables potenciales.
Una forma potencial de un usuario a escalar sus privilegios en un sistema es explotar una vulnerabilidad en un
SUID o SGID programa. SUID y SGID estn legtimamente usados cuando los programas tienen especial
Permisos ms all de los que estn disponibles para el usuario que los ejecuta. Uno de tales
programa es passwd. Permitiendo al mismo tiempo un usuario cambiar su contrasea mientras que no permite ningn
usuario modique el chero de contraseas del sistema signica que el programa passwd debe ejecutarse con la raz
privilegios. De este modo, el programa tiene su bit SUID, lo que provoca que se ejecute con los privilegios
del dueo del archivo del programa. Del mismo modo, cuando se establece el bit SGID, el programa se ejecuta con el
privilegios del propietario del grupo del archivo.
Correr
ls-l
en un binario que tiene su bit SUID debera tener este aspecto:
-rs - x - x 1 root raz 16336 13 de febrero 2003 / usr / bin / passwd
Tenga en cuenta que en lugar de un bit de ejecucin (
x
) Para los bits de propietario, tiene una
s
. Esto signica un archivo SUID.
Por desgracia, una SUID o SGID binaria mal escrito puede ser usado para escalar rpidamente y fcilmente una
los privilegios del usuario. Adems, un atacante que ya ha obtenido acceso root podra ocultar binarios SUID
a travs de su sistema con el n de dejar una puerta trasera para acceder en el futuro. Esto nos lleva a la necesidad de
sistemas de escaneo para SUID y SGID binarios. Este es un proceso sencillo y se puede hacer con la
siguiente comando:
# Find / \ (-perm -4000-o-perm -2000 \)-type-f ejecutivo ls-la {} \;
Una cosa importante a considerar es si un programa SUID es en realidad un script de shell en lugar de una
ejecutable, ya que es trivial para alguien cambie un script inocua en una puerta trasera.
La mayora de los sistemas operativos ignoran cualquier bit SUID o SGID en un script de shell, pero si usted quiere encontrar todo
SUID o SGID secuencias de comandos en un sistema, cambie el argumento de la
-Exec
opcin en el ltimo comando y
aadir una tubera para que el comando se lee:
# nd / \ (-perm -4000-o-perm -2000 \)-type f \
-Exec archivo {} \; | Grep-v ELF
Ahora, se encuentra cada vez que un archivo SUID o SGID, la
expediente
comando se ejecutar y determinar qu
tipo de archivo est siendo examinado. Si se trata de un archivo ejecutable,
grep
ltrar hacia fuera; de lo contrario, ser impreso
a la pantalla con un poco de informacin acerca de qu tipo de archivo se trata.
La mayora de los sistemas operativos utilizan los ejecutables ELF-formato, pero si se est ejecutando un sistema operativo que
no (versiones antiguas de Linux utilizan
a.out
, y los usos de AIX
XCOFF
), Usted tendr que reemplazar el
ELF
en el
anterior
grep
comando con el formato binario utilizado por el sistema operativo y arquitectura. Si
no est seguro de lo que debe buscar, ejecute el
expediente
comando en un binario ejecutable, y se informar
la cadena que est buscando.
Por ejemplo, aqu hay un ejemplo de funcionamiento
expediente
en un binario de Mac OS X:
$ le / bin / sh
/ Bin / sh: Mach-O ppc ejecutable
Para ir un paso ms all, incluso se podra hacer cola el comando para ejecutar una vez al da utilizando
cron
y lo han
redirigir la salida a un archivo. Por ejemplo, esta entrada crontab sera buscar los archivos que tengan la extensin
SUID o SGID, comparar la lista actual a la del da anterior, y luego enviar el
diferencias con el propietario del crontab (asegurarse de que esto es todo en una lnea):
Pgina 21
0 4 *** nd / \ (-perm -4000-o-perm -2000 \)-type f \
> / Var / log / sidlog.new && \
diferencias / var / log / sidlog.new / var / log / sidlog && \
mv / var / log / sidlog.new / var / log / sidlog
Este ejemplo tambin dejar una lista actualizada de los archivos SUID y SGID en / var / log / sidlog .
Pgina 22
Hack # 3. Analizar en busca de World-y en grupo-grabables Directorios
Analiza rpidamente para directorios con permisos sueltos.
Y World-directorios del grupo grabable presentan un problema: si los usuarios de un sistema no han puesto su
umask
s correctamente, ellos inadvertidamente crear archivos inseguros, sin darse cuenta de las implicaciones.
Con esto en mente, parece que sera bueno para buscar directorios con permisos sueltos. Al igual que en
"Buscar SUID y SGID Programas" [Hack # 2] , Esto se puede lograr con un
encontrar
comando:
# nd-type / d \ (-perm-g + w-o-perm-o + w \)-exec ls-lad {} \;
Cualquier directorio que se enumeran en la salida deben tener el bit pegajoso, que se denota por un
t
en
bits de permisos del directorio. Activando el bit adherente en un directorio con permisos de escritura asegura que incluso
aunque cualquiera puede crear archivos en el directorio, es posible que no eliminar o modicar archivos de otro usuario.
Si usted ve un directorio en la salida que no contenga un poco pegajosa, considere si realmente necesita
que el mundo pueda escribir o si el uso de grupos o ACL [Hack # 4] va a funcionar mejor para su
situacin. Si usted realmente no necesita el directorio que posean permisos de escritura, establecer el bit sticky en l mediante
chmod
+ T
.
Para obtener una lista de directorios que no tienen su bit pegajoso, ejecute este comando:
# nd-type / d \ (-perm-g + w-o-perm-o + w \) \
-No-perm-a + t-exec ls-lad {} \;
Si est utilizando un sistema que crea un grupo nico para cada usuario (por ejemplo, se crea un usuario andrew ,
que a su vez crea un grupo de andrew como grupo primario), es posible que desee modicar los comandos para
No analizar los directorios del grupo de escritura. (De lo contrario, usted recibir una gran cantidad de la produccin que realmente no es
pertinente.) Para ello, ejecute el comando sin la
-Perm-g + w
porcin.
Pgina 23
Hack # 4. Crear Permisos Flexibles Jerarquas con POSIX
ACL
Cuando los permisos basados en el modo de Unix no son sucientes, usar una ACL.
La mayor parte del tiempo, el sistema tradicional de los permisos de archivos de Unix se ajuste el proyecto de ley muy bien. Pero en una altamente
entorno de colaboracin con varias personas que necesitan acceso a los archivos, este sistema puede llegar a ser
difcil de manejar. listas de control de acceso , tambin conocido como ACL (que se pronuncia para rimar con "pelos de punta"), son un
relativamente nueva caracterstica de los sistemas de cdigo abierto de Unix que funcionan, pero que han estado disponibles en su
contrapartes comerciales durante algn tiempo. Mientras que las ACL no aaden inherentemente "ms seguridad" a un
sistema, que hacen reducir la complejidad de la gestin de los permisos. ACL proporcionan nuevas formas de aplicar el archivo
y permisos de directorio sin tener que recurrir a la creacin de grupos innecesarios.
ACL se almacenan como atributos extendidos dentro de los metadatos del sistema de cheros. Como el nombre implica, se
permiten denir listas que, o bien conceder o denegar el acceso a un archivo o directorio determinado en base a la
criterios suministrados por el usuario. Sin embargo, las ACL no abandonan el sistema de permisos tradicionales por completo.
Las ACL se pueden especicar para los usuarios y grupos y todava se separan en los reinos de la lectura, escritura,
y acceso de ejecucin. Adems, una lista de control se puede denir para cualquier usuario o grupo que no hace
corresponden a ninguna de las otras ACL de usuario o grupo, al igual que los "otros" modo de bits de un archivo.
Listas de control de acceso tambin tienen lo que se llama una mscara de ACL , que acta como una mscara de permisos para todos
ACL que mencionan especcamente un usuario y un grupo. Esto es similar a una
umask
, Pero no exactamente lo mismo.
Por ejemplo, si establece la mscara de ACL para
R -
, Cualquier ACL que pertenecen a un usuario o grupo especco y son
ms ojo en los permisos (por ejemplo,
rw-
) Llegar a ser efectiva
R -
. Los directorios tambin pueden contener un defecto
ACL, que especica las ACL iniciales de los archivos y subdirectorios creados dentro de ellos.
Habilitacin de las ACL
La mayora de los sistemas de archivos de uso comn hoy en da bajo Linux (Ext2 / 3, ReiserFS, JFS, XFS y) son capaces de
el apoyo a las ACL. Si ests usando Linux, asegrese de una de las siguientes opciones de conguracin del kernel
se establece que corresponde al tipo de sistema de archivos que est utilizando:
CONFIG_EXT2_FS_POSIX_ACL = y
CONFIG_EXT3_FS_POSIX_ACL = y
CONFIG_REISERFS_FS_POSIX_ACL = y
CONFIG_JFS_POSIX_ACL = y
CONFIG_FS_POSIX_ACL = y
CONFIG_XFS_POSIX_ACL = y
Para habilitar las ACL en FreeBSD, montar cualquier sistema de cheros que desee utilizar en la
ACL
monte
opcin:
# mount-o ACL-u / usr
# mount
/ Dev/ad0s1a en / (ufs, local)
devfs en / dev (devfs, local)
/ Dev/ad0s1e en / tmp (ufs, y suaves-updates locales)
/ Dev/ad0s1f en / usr (ufs, locales, soft-updates, ACL)
/ Dev/ad0s1d en / var (ufs, y suaves-updates locales)
La
-U
opcin actualiza el monte, que le permite cambiar las opciones de montaje para una montada en la actualidad
sistema de archivos. Si desea deshacer esto, puede desactivar ACLs utilizando el
noacls
opcin en lugar. A
activar las ACL de forma automtica en el arranque de un sistema de archivos, modicar el sistema de cheros de / etc / fstab entrada para mirar
de esta manera:
/ Dev/ad0s1f / Usr ufs rw, las ACL 2 2
Pgina 24
La gestin de ACL
Una vez que han sido activadas, las ACL se pueden establecer, modicar y eliminar con el
setfacl
comando. A
crear o modicar una ACL, utilice el -M opcin, seguido por una especicacin de ACL y un nombre de archivo o una lista de
nombres de archivo. Puede eliminar una ACL utilizando el
-X
opcin y especicar una ACL o lista de ACL.
Existen tres formas generales de una ACL: una para usuarios y otra para grupos, y otro para los dems. Vamos a
mirarlos aqu:
# El usuario ACL
u: [usuario]: <modo>
# Grupo ACL
g: [grupo]: <modo>
# Otro ACL
o: <modo>
Observe que en las ACL de usuario y grupo, los nombres de usuario y de grupo reales que la ACL se aplica a son
opcional. Si stos se omiten, que signica que la ACL se aplicar a la ACL de base, que se deriva
de bits de modo del archivo. Por lo tanto, si modica estos, los bits de modo se pueden modicar, y viceversa.
Vea por usted mismo mediante la creacin de un archivo y luego modicar su ACL de base:
$ michero toque
$ ls-l myle
-Rw-rw-r - 1 andrew Andrs 0 13 de octubre 15:57 miarchivo
$ setfacl-mu :: ---, g :: ---, o: --- michero
$ ls-l myle
---------- 1 andrew Andrs 0 13 de octubre 15:57 miarchivo
A partir de este ejemplo, tambin se puede ver que las mltiples ACLs se pueden enumerar separndolas con
por comas.
Tambin puede especicar ACLs para un nmero arbitrario de grupos o usuarios:
$ foo touch
$ setfacl-mu: jlope: rwx, g: Vino: rwx, o: --- foo
$ foo getfacl
# File: foo
# El propietario: andrew
# Grupo: andrew
usuario :: rw-
usuario: jlope: rwx
grupo :: ---
grupo: Vino: rwx
mscara :: rwx
otros :: ---
Ahora bien, si usted cambi la mscara para
R -
, Las ACLs para jlope y el vino se convertira efectivamente
R -
como
as:
$ setfacl mm: r - foo
$ foo getfacl
# File: foo
# El propietario: andrew
# Grupo: andrew
usuario :: rw-
usuario: jlope: rwx # Efectivo: r -
grupo :: ---
grupo: Vino: rwx # Efectivo: r -
enmascarar :: r -
otros :: ---
Pgina 25
Como se mencion anteriormente, un directorio puede tener una ACL por defecto que se aplicar automticamente a los archivos
que se crean dentro de ese directorio. Para designar una ACL como predeterminado, prejo una
d:
:
$ mkdir mydir
$ setfacl-md: u: jlope: rwx mydir
$ getfacl midir
# File: mydir
# El propietario: andrew
# Grupo: andrew
usuario :: rwx
grupo :: ---
otros :: ---
por defecto: usuario :: rwx
por defecto: usuario: jlope: rwx
default: Grupo :: ---
por defecto: mscara :: rwx
default: other :: ---
$ touch mydir / bar
$ getfacl mydir / bar
# File: mydir / bar
# El propietario: andrew
# Grupo: andrew
usuario :: rw-
usuario: jlope: rwx # Efectivo: rw-
grupo :: ---
enmascarar :: rw-
otros :: ---
Como te habrs dado cuenta de los ejemplos anteriores, puede enumerar las ACL utilizando el
getfacl
comando. Este comando es bastante sencillo y cuenta con slo unas pocas opciones. La ms til es la
-R
opcin, que le permite listar las ACL de forma recursiva y funciona muy parecido
ls-R
.
Pgina 26
Hack # 5. Proteja sus Registros de manipulacin
Usar atributos de archivo para evitar que intrusos puedan quitar los rastros de sus robos.
En el curso de una intrusin, el atacante tendr mayores posibilidades de dejar signos reveladores de sus acciones en
diversos registros del sistema. Esta es una valiosa pista de auditora que deben ser bien protegido. Sin registros conables,
puede ser muy difcil de averiguar cmo el atacante entr, o cuando el ataque vino de. Este
informacin es crucial en el anlisis de los hechos y luego responder a ella ponindose en contacto con el adecuado
partes implicadas [Hack # 125] . Sin embargo, si el intento de ingreso tiene xito y las ganancias de intrusos
privilegios de root, lo que es para que dejara de retirar los rastros de su mal comportamiento?
Aqu es donde los atributos de archivo vienen a salvar el da (o al menos que sea un poco mejor). Tanto Linux y
los BSD tienen la capacidad para asignar atributos adicionales para archivos y directorios. Esto es diferente de la
estndar Unix esquema de permisos en que los atributos establecidos en un archivo de aplicar universalmente a todos los usuarios de
el sistema, y afectan a los accesos a cheros en un nivel mucho ms profundo que los permisos de archivos o ACL [Hack
# 4] . En Linux, se puede ver y modicar los atributos que se establecen para un archivo determinado mediante el uso de la
lsattr
y
chattr
comandos, respectivamente. Bajo los BSD, puede utilizar
ls-lo
para ver los atributos y utilice
chags
modicarlos.
Un atributo til para proteger los archivos de registro es append-only. Cuando se establece este atributo, el archivo no puede
se eliminan y las escrituras slo se les permite que se anexar al nal del archivo.
Para establecer el slo para adjuntar bandera bajo Linux, ejecute este comando:
# chattr + a
nombre de archivo
Bajo los BSD, utilice esto:
# chags sappnd
nombre de archivo
Ver cmo el
+ A
atribuir las obras mediante la creacin de un archivo y estableciendo su atributo slo de adicin:
# touch / var / log / logle
# echo "de slo anexar no ajuste"> / var / log / logle
# chattr + a / var / log / logle
# echo "de slo anexar ajuste"> / var / log / logle
bash: / var / log / logle: Operacin no permitida
El segundo intento de escritura ha fallado, ya que sobrescribir el archivo. Sin embargo, aadiendo al nal de
el archivo todava est permitido:
# echo "anexar al archivo" >> / var / log / logle
# cat / var / log / logle
slo para adjuntar no se establece
aadiendo a presentar
Obviamente, un intruso que ha ganado privilegios de root podra darse cuenta de que se estn utilizando los atributos de archivo
y acaba de quitar la bandera slo de adicin de los registros mediante la ejecucin
chattr-a
. Para evitar esto, usted necesitar
para deshabilitar la capacidad para quitar el atributo slo de adicin. Para lograr esto en Linux, utilice su
mecanismo de capacidades. Bajo los BSD, use la facilidad securelevel.
El modelo de capacidades de Linux a fraccionar los privilegios otorgados a la cuenta de root todopoderoso y
Pgina 27
le permite desactivar selectivamente. Para evitar que un usuario quitar el atributo de slo de adicin
desde un archivo, es necesario eliminar la
CAP_LINUX_IMMUTABLE
capacidad. Cuando est presente en la gestin
sistema, esta capacidad permite slo para adjuntar el atributo que desea modicar. Para modicar el conjunto de
capacidades disponibles en el sistema, use una utilidad llamada sencilla LCAP (
http://snort-
wireless.org/other/lcap-0.0.6
. Tar.bz2.
Para desempaquetar y compilar la herramienta, ejecute este comando:
# xvfj tar lcap-0.0.6.tar.bz2 && cd lcap-0.0.6 && make
Entonces, para no permitir la modicacin de la slo para adjuntar bandera, ejecute:
# . / lcap CAP_LINUX_IMMUTABLE
# . / lcap CAP_SYS_RAWIO
El primer comando elimina la capacidad de cambiar la bandera slo de adicin, y el segundo comando
elimina la posibilidad de hacer cruda I / O. Esto es necesario para que los archivos protegidos no pueden ser modicados por
acceder al dispositivo de bloques en el que residen. Tambin impide el acceso a / dev / mem y / dev / kmem ,
que proporcionara un resquicio para un intruso para restablecer la
CAP_LINUX_IMMUTABLE
capacidad.
Para eliminar estas capacidades en el arranque, aadir los dos comandos anteriores para las secuencias de comandos de inicio del sistema
(Por ejemplo, / etc / rc.local ). Usted debe asegurarse de que se eliminan las capacidades nales de la orden de inicio, para evitar
problemas con otros scripts de inicio. Una vez
lcap
ha eliminado la capacidad del ncleo, slo se puede restablecer
ellos reiniciando el sistema.
Los sistemas BSD consiguen lo mismo mediante el uso de securelevels . El securelevel es un kernel
variable que se puede congurar para rechazar ciertas funcionalidades. Elevar el securelevel a 1 es funcionalmente
la misma como la eliminacin de las dos capacidades de Linux discutidos previamente. Una vez que el securelevel ha sido
establecido en un valor mayor que 0, no se puede bajar. De forma predeterminada, OpenBSD elevar el securelevel a 1
cuando est en modo multiusuario. En FreeBSD, el securelevel es -1 por defecto.
Para cambiar este comportamiento, agregue la siguiente lnea a / etc / sysctl.conf :
kern.securelevel = 1
Antes de hacer esto, usted debe ser consciente de que la adicin de slo aadir las banderas de los archivos de registro lo ms probable es
hacer que los scripts de rotacin de logs fallen. Sin embargo, hacer esto mejorar en gran medida la seguridad de su auditora
sendero, que ser de gran valor en el caso de un incidente.
Pgina 28
Hack # 6. Delegar funciones administrativas
Deja que otros hagan el trabajo por usted sin dar a los privilegios de root.
El sudo utilidad puede ayudarle a delegar algunas responsabilidades del sistema a otras personas, sin tener que
otorgar pleno acceso de root. sudo es un binario setuid root que ejecuta comandos en un usuario autorizado de
nombre, despus de que ella ha entrado en su contrasea actual.
Como root, ejecute / usr / sbin / visudo para editar la lista de usuarios que pueden llamar a sudo . El valor por defecto sudo lista parece
algo como esto:
root ALL = (ALL) ALL
Por desgracia, muchos administradores de sistemas suelen utilizar esta entrada como una plantilla y subvencin sin restricciones
acceso root a todos los dems administradores de manera unilateral:
root ALL = (ALL) ALL
rob ALL = (ALL) ALL
jim ALL = (ALL) ALL
david ALL = (ALL) ALL
Mientras que esto puede permitir que usted pueda dar a acceso de root sin revelar la contrasea de root, este mtodo
es realmente til slo cuando todas las sudo usuarios pueden completamente conar. Cuando se congura correctamente,
el sudo utilidad proporciona una gran exibilidad para la concesin de acceso a cualquier nmero de comandos, ejecute
como cualquier ID de usuario arbitrario (UID).
La sintaxis de la sudo lnea es:
mquina de usuario = ( usuario efectivo ) de comandos
La primera columna especica el sudo usuario. La siguiente columna dene los antriones en el que esta sudo entrada est
vlida. Esto le permite utilizar fcilmente un solo sudo conguracin a travs de mltiples mquinas.
Por ejemplo, suponga que tiene un desarrollador que necesita acceso root en una mquina de desarrollo, pero no
en cualquier otro servidor:
peter beta.oreillynet.com = (ALL) ALL
La siguiente columna (entre parntesis) especica el usuario efectivo que pueden ejecutar los comandos. Esto es muy
muy til para que los usuarios puedan ejecutar cdigo como usuario distinto del root:
peter lists.oreillynet.com = (cartero) TODO
Finalmente, la ltima columna especica todos los comandos que este usuario puede ejecutar:
david ns.oreillynet.com = (enlazar) / usr / sbin / rndc, / usr / sbin / named
Si usted se encuentra especicando grandes listas de comandos (o, para el caso, a los usuarios o mquinas), tomar
ventaja de sudo sintaxis de alias 's. Un alias puede ser utilizado en lugar de su respectiva entrada en cualquier lnea de
el sudo de conguracin:
User_Alias ADMINS = robar, jim, david
User_Alias WEBMASTERS = peter, nancy
Runas_Alias DAEMONS = bind, www, smmsp, ircd
Host_Alias servidores web = www.oreillynet.com, www.oreilly.com, www.perl.com
Cmnd_Alias PROCS = / bin / kill, / bin / killall, / usr / bin / habilidad, / usr / bin / top
Cmnd_Alias APACHE = / usr / local / apache / bin / apachectl
WEBMASTERS servidores web = (www) APACHE
ADMINS ALL = (DAEMONS) TODO
Tambin es posible especicar un grupo de sistemas en lugar de un usuario, para permitir que cualquier usuario que pertenezca a ese
Pgina 29
grupo para ejecutar comandos. Justo como prejo el nombre del grupo con un
%
, As:
% = Wwwadmin servidores web (www) APACHE
Ahora cualquier usuario que sea parte de la wwwadmin grupo puede ejecutar apachectl como el www de usuario en cualquiera de los
mquinas de servidor web.
Una caracterstica muy til es la
NOPASSWD:
bandera. Cuando est presente, el usuario no tendr que introducir una contrasea
antes de ejecutar el comando. Por ejemplo, esto permitir que el usuario rob ejecute kill , killall , habilidad ,
y la parte superior en cualquier mquina, como cualquier usuario, sin necesidad de introducir una contrasea:
rob ALL = (ALL) NOPASSWD: PROCS
Por ltimo, sudo puede ser una alternativa til para do para ejecutar comandos en el arranque del sistema rc
archivos:
(Cd / usr / local / mysql,. Sudo-u mysql / bin / safe_mysqld Y)
sudo-u www / usr / local / apache / bin / apachectl comienzo locales
Para que eso funcione en tiempo de arranque, la lnea predeterminada
root ALL = (ALL) ALL
debe estar presente.
Utilizar sudo con las habituales advertencias que se aplican a los archivos binarios setuid. En particular, si usted permite que sudo para ejecutar
comandos interactivos (como editores) o cualquier tipo de compilador o intrprete, se debe asumir que se trata de
posible que el sudo usuario ser capaz de ejecutar comandos arbitrarios como el usuario efectivo. Sin embargo,
en la mayora de los casos esto no es un problema, y es sin duda preferible a regalar indebida
el acceso a los privilegios de root.
Rob Flickenger
Pgina 30
Hack # 7. Automatice criptogrco Comprobacin de la rma
Utilice secuencias de comandos y los servidores de claves para automatizar la tarea de vericar la autenticidad del software.
Una de las cosas ms importantes que puede hacer por la seguridad de su sistema es hacer usted mismo
familiarizado con el software que est instalando. Es probable que no tienen el tiempo, el conocimiento, o
recursos para ir a travs del cdigo fuente de todo el software que se instala. Sin embargo, la vericacin de que
el software est compilando e instalando es lo que los autores tenan la intencin puede ir una manera larga hacia la
la prevencin de la amplia distribucin de los troyanos.
Recientemente, las versiones con troyanos de varias piezas fundamentales de software (como tcpdump , libpcap , sendmail ,
y OpenSSH) se han distribuido. Dado que este es un vector de ataque cada vez ms popular, vericando
el software es de vital importancia.
Por qu esta necesidad de ser automatizado? Se necesita poco esfuerzo para vericar el software antes de instalarlo, pero
ya sea por pereza o la ignorancia, muchos administradores de sistemas pasan por alto este paso crtico. Este es un
ejemplo clsico de la pereza "false", ya que probablemente conducir a ms trabajo para el administrador del sistema en el largo
correr.
Este problema es difcil de resolver, ya que depende de los programadores y distribuidores para obtener su
acta conjuntamente. Luego est el aspecto de la pereza. Los paquetes de software a menudo ni siquiera cuentan con un
rma que se utilizar para la vericacin de la legitimidad de lo que has descargado, e incluso cuando las rmas
se proporcionan con el cdigo fuente, para vericar el cdigo que debe buscar a travs del proveedor de software de
El sitio para la clave pblica que se utiliza para crear la rma. Despus de encontrar la clave pblica, que tiene que
descargarlo, compruebe que la clave es genuino, aadir a su llavero, y nalmente comprobar la rma de
el cdigo.
Aqu es lo que este se vera como en la comprobacin de la rma para la versin 1.3.28 del web Apache
servidor utilizando GnuPG (
http://www.gnupg.org
):
# claves GPG-importacin
# gpg-vericar apache_1.3.28.tar.gz apache_1.3.28.tar.gz.asc
gpg: Firma hecho Mi Jul 16 13:42:54 PDT 2003 con la clave DSA ID 08C975E5
gpg: Good rma de "Jim Jagielski <jim@zend.com>"
gpg: tambin conocido como "<jim@apache.org> Jim Jagielski"
gpg: tambin conocido como "Jim Jagielski <jim@jaguNET.com>"
gpg: ADVERTENCIA: Esta clave no est certicada con una rma de conanza!
gpg: No hay ninguna indicacin de que la rma pertenezca al propietario.
Huella digital: 8B39 757B 1D8A 994D F243 3ED5 8B3A 601F 08C9 75E5
Como puede ver, no es terriblemente difcil de hacer, pero este paso es a menudo pasado por alto cuando las personas se encuentran en una
prisa. Aqu es donde este hack viene al rescate. Vamos a utilizar un poco de secuencias de comandos de shell y cules son
conocido como servidores de claves para reducir el nmero de pasos necesarios para llevar a cabo el proceso de vericacin.
Los servidores de claves son una parte de una infraestructura de criptografa de clave pblica que le permite recuperar las claves
de una tercera parte de conanza. Una buena caracterstica de GnuPG es su capacidad de consultar los servidores de claves para una clave de identicacin y
para descargar el resultado en un anillo de claves local. Para averiguar qu tecla ID de pedir, nos basamos en el hecho de
que el mensaje de error generado por GnuPG nos dice qu tecla ID que era incapaz de encontrar a nivel local cuando
tratando de vericar la rma.
En el ejemplo anterior, si la clave GnuPG que estaba buscando no se haba importado antes de la
la vericacin de la rma, que habra generado un error como este:
gpg: Firma hecho Mi Jul 16 13:42:54 PDT 2003 con la clave DSA ID 08C975E5
gpg: No se puede comprobar la rma: la clave pblica que no se encuentra
El siguiente guin se aprovecha de que el error:
Pgina 31
#! / Bin / sh
VENDOR_KEYRING = vendors.gpg
KeyServer = search.keyserver.net
KEYID = "0x \ Qgpg - vericar $ 1 $ 2 2> & 1 | grep 'ID tecla' | awk '{print $ NF}' \ Q"
gpg - no-default-keyring - llavero $ VENDOR_KEYRING - recv-key \
- Servidor de claves $ servidor de claves $ KEYID
gpg - llavero $ VENDOR_KEYRING - verify $ 1 $ 2
La primera lnea de la secuencia de comandos especica el llavero en el que el resultado de la consulta de servidor clave ser
almacenado. Usted podra utilizar pubring.gpg (que es el depsito de claves predeterminado para GnuGP), pero utilizando un archivo separado
har que la gestin de las claves pblicas de proveedores ms fcil. La segunda lnea de la secuencia de comandos especica qu clave
servidor de consulta (el script usa
search.keyserver.net
; otra buena es
pgp.mit.edu
). La tercera
line intenta (y no) para vericar la rma sin consultar previamente al servidor de claves. A continuacin, utiliza la
ID de clave que vio en el error, anteponiendo un
0x
con el n de consultar el servidor de claves en la lnea siguiente. Finalmente,
GnuPG intenta vericar la rma y especica el archivo de claves en los que el resultado de la consulta se almacena.
Esta secuencia de comandos se ha acortado el proceso de vericacin, al eliminar la necesidad de buscar e importar el
clave pblica que se utiliza para generar la rma. Volviendo al ejemplo de la vericacin de la Apache
1.3.28 cdigo fuente, se puede ver cmo mucho ms cmodo que es ahora vericar el paquete de
autenticidad:
# checksig apache_1.3.28.tar.gz.asc apache_1.3.28.tar.gz
gpg: solicitando clave 08C975E5 del servidor de claves HKP search.keyserver.net
gpg: clave 08C975E5: clave pblica importada
gpg: Cantidad total procesada: 1
gpg: importado: 1
gpg: Warning: using insecure memory!
gpg: consulte http://www.gnupg.org/faq.html para ms informacin
gpg: Firma hecho Mi Jul 16 13:42:54 PDT 2003 con la clave DSA ID 08C975E5
gpg: Good rma de "Jim Jagielski <jim@zend.com>"
gpg: tambin conocido como "<jim@apache.org> Jim Jagielski"
gpg: tambin conocido como "Jim Jagielski <jim@jaguNET.com>"
gpg: comprobando el trustdb
gpg: teclas no en ltima instancia, de conanza que se encuentran
gpg: ADVERTENCIA: Esta clave no est certicada con una rma de conanza!
gpg: No hay ninguna indicacin de que la rma pertenezca al propietario.
Huella digital: 8B39 757B 1D8A 994D F243 3ED5 8B3A 601F 08C9 75E5
Este pequeo, escritura rpida ha reducido tanto el nmero de pasos y la cantidad de tiempo necesario para vericar
un paquete fuente. Como con cualquier buen script de shell, debe ayudar a ser perezoso en el buen sentido: al hacer
ms trabajo correctamente, pero con menor esfuerzo de su parte.
Pgina 32
Hack # 8. Compruebe Escuchar Servicios
Averiguar si los servicios innecesarios estn escuchando y bsqueda de posibles puertas traseras.
Una de las primeras cosas que debe hacer despus de una instalacin nueva del sistema operativo es ver qu servicios estn
corriente y remueva cualquier servicio que no sean necesarios en el proceso de inicio del sistema. Se puede usar un puerto
escner (como Nmap [Hack # 66] ) Y ejecutarlo contra el antrin, pero si uno no vino con el
instalacin del sistema operativo, es probable que tenga que conecte el equipo fresco (y posiblemente inseguro) a
la red para descargar uno.
Adems, Nmap puede ser engaado si el sistema est usando reglas de rewall. Con reglas de barrera, un servicio
puede ser completamente invisible para Nmap menos ciertos criterios (como la direccin IP de origen) tambin coinciden.
Cuando usted tiene acceso shell al servidor mismo, por lo general es ms eciente para encontrar puertos abiertos utilizando
programas que se instalaron con el sistema operativo. Una opcin es netstat , un programa que se
visualizar diversa informacin y estadsticas relacionados con la red.
Para obtener una lista de los puertos de escucha y sus procesos que poseen bajo Linux, ejecute este comando:
# netstat-luntp
Conexiones a Internet activa (slo servidores)
Proto Recv-Q Send-Q Direccin Local Direccin extranjera Estado Nombre del PID / Programa
tcp 0 0 0.0.0.0:22 0.0.0.0: * ESCUCHAR 1679/sshd
udp 0 0 0.0.0.0:68 0.0.0.0: * 1766/dhclient
Desde la salida, se puede ver que esta mquina es, probablemente, una estacin de trabajo, ya que slo tiene un DHCP
cliente que se ejecuta junto con un servidor SSH para acceso remoto. Los puertos en uso se muestran tras los dos puntos
en el
Direccin Local
columna (
22
para sshd y
68
para dhclient ). La ausencia de cualquier otro escucha
procesos signica que sta es probablemente una estacin de trabajo, no un servidor de red.
Por desgracia, la versin BSD de netstat no nos deja enumeramos los procesos y los ID de proceso (PID)
que el propietario del puerto de escucha. Sin embargo, la BSD
netstat
comando sigue siendo til para la inclusin de la
puertos de escucha en su sistema.
Para obtener una lista de los puertos de escucha en FreeBSD, ejecute este comando:
# netstat-a-n | egrep 'Proto | ESCUCHAR'
Proto Recv-Q Send-Q Direccin Local Direccin de Relaciones Exteriores(Estado)
tcp4 0 0 * 0.587 *. * ESCUCHAR
tcp4 0 0 * 0,25 *. * ESCUCHAR
tcp4 0 0 * 0,22 *. * ESCUCHAR
tcp4 0 0 * 0.993 *. * ESCUCHAR
tcp4 0 0 * 0.143 *. * ESCUCHAR
tcp4 0 0 * 0.53 *. * ESCUCHAR
Una vez ms, los puertos en uso se enumeran en la Direccin Local la columna. Muchos administradores de sistemas experimentados
han aprendido de memoria los nmeros de puerto comunes para los servicios populares y ser capaz de ver a simple vista que
este servidor se est ejecutando servicios sshd, SMTP, DNS, IMAP e IMAP + SSL. Si alguna vez tiene dudas
sobre los servicios que normalmente se ejecutan en un puerto dado, ya sea eliminan la
-N
cambiar de la
netstat
comando (que dice netstat utilizar nombres, pero puede tomar mucho ms tiempo para correr al buscar DNS
direcciones) o de forma manual
grep
el / etc / services archivo:
# 993 / etc / services-grep w
imaps 993/udp # Imap4 protocolo sobre TLS / SSL
imaps 993/tcp # Imap4 protocolo sobre TLS / SSL
El / etc / services archivo slo debe usarse como una gua. Si un proceso est escuchando en un puerto situado en el
archivo, no signica necesariamente que el servicio enumerado en / etc / services es lo que provee.
Observe tambin que, a diferencia de la produccin de
netstat
en Linux, con la versin BSD usted no consigue el
Pgina 33
PIDs de los propios demonios. Tambin puede notar que no hay puertos UDP se incluyen en DNS. Este
es porque sockets UDP no tienen un
ESCUCHAR
Estado en el mismo sentido que los sockets TCP hacen. Para
mostrar sockets UDP, debe agregar
udp4
con el argumento de
egrep
, Por lo que es
'Proto | ESCUCHAR | udp4'
. Sin embargo, debido a la forma de UDP funciona, no todos los sockets UDP sern necesariamente
asociada a un proceso de demonio.
En FreeBSD, hay otro comando que nos dar justo lo que queremos. La
sockstat
comando realiza slo un pequeo subconjunto de lo que
netstat
puede hacer y se limita a enumerar informacin sobre
Conectores Unix dominio y tomas Inet, pero es ideal para los propsitos de este hack.
Para obtener una lista de los puertos de escucha y de sus procesos de titulares con
sockstat
, Ejecute este comando:
# sockstat -4-L
USUARIO COMANDO PID FD PROTO DIRECCIN LOCAL Direccin en el extranjero
raz sendmail 1141 4 tcp4 *: 25 *: *
raz sendmail 1141 5 tcp4 *: 587 *: *
raz sshd 1138 3 tcp4 *: 22 *: *
raz inetd 1133 4 tcp4 *: 143 *: *
raz inetd 1133 5 tcp4 *: 993 *: *
llamado llamado 1127 20 tcp4 *: 53 *: *
llamado llamado 1127 21 udp4 *: 53 *: *
llamado llamado 1127 22 udp4 *: 1351 *: *
Una vez ms, se puede ver que SSHD, SMTP, DNS, IMAP e IMAP + SSL servicios se estn ejecutando, pero
Ahora usted tiene el proceso que posee el zcalo ms su PID. Ahora puede ver que los servicios IMAP
estn siendo generado a partir de
inetd
en vez de demonios independientes, y que
sendmail
y
llamado
son
la prestacin de los servicios SMTP y DNS.
Para la mayora de los dems sistemas operativos tipo Unix, puede utilizar el lsof utilidad
(
http://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/
). lsof es la abreviatura de "archivos abiertos" de la lista
y, como su nombre lo indica, le permite listar los archivos que estn abiertos en un sistema, adems de la
los procesos y los PID que tienen abiertas. Al ser las tomas y los archivos funcionan de la misma manera bajo Unix, lsof
tambin se puede utilizar para listar sockets abiertos. Esto se hace con la
-I
opcin de lnea de comandos.
Para obtener una lista de los puertos de escucha y los procesos que los poseen usando lsof , ejecute este comando:
# lsof-i-n | egrep 'COMANDO | ESCUCHAR'
COMANDO PID TIPO FD USUARIO DISPOSITIVO DE TAMAO / OFF nombre de nodo
llamado 1127 llamado 0xeb401dc0 20u IPv4 0T0 TCP *: dominio (ESCUCHAR)
inetd 1133 root 4u IPv4 0xeb401ba0 0T0 TCP *: imap (ESCUCHAR)
inetd 1133 root 5u IPv4 0xeb401980 0T0 TCP *: imaps (ESCUCHAR)
sshd 1138 root 3u IPv4 0xeb401760 0T0 TCP *: ssh (ESCUCHAR)
sendmail 1141 root 4u IPv4 0xeb41b7e0 0T0 TCP *: smtp (ESCUCHAR)
sendmail 1141 root 5u IPv4 0xeb438fa0 0T0 TCP *: presentacin (ESCUCHAR)
Una vez ms, usted puede cambiar el argumento de
egrep
para mostrar sockets UDP. Sin embargo, el uso de este tiempo
UDP
en lugar de
udp4
, Lo que hace que el argumento
'COMANDO | ESCUCHAR | UDP'
. Como se mencion anteriormente, no todos UDP
sockets necesariamente se asocian con un proceso demonio.
Pgina 34
Hack # 9. Prevenir Servicios de la unin a una interfaz
Mantener los servicios de escucha en un puerto en vez de utilizar cortafuegos para ellos.
A veces, es posible que desee limitar un servicio para escuchar en slo una interfaz especca. Por ejemplo,
Apache [Hack # 55] puede ser congurado para escuchar en una interfaz especca en lugar de todos los disponibles
interfaces. Usted puede hacer esto mediante el uso de la
Escuchar
en su archivo de conguracin y especicar la
Direccin IP de la interfaz:
Escuchar 192.168.0.23:80
Si utiliza
VirtualHost
entradas, puede especicar las interfaces que se unen a en una base por virtual-host:
<VirtualHost 192.168.0.23>
...
</ VirtualHost>
Puede ser que incluso tienen servicios que estn escuchando en un puerto TCP, pero no necesita serlo. Servidores de bases de datos
como MySQL se utilizan a menudo en combinacin con Apache y se jan con frecuencia a coexistir en el
mismo servidor cuando se usa de esta manera. Las conexiones que vienen de la misma mquina que MySQL es
instalado en el uso de un socket de dominio en el sistema de archivos para las comunicaciones. Por lo tanto, MySQL no hace
que escuchar en un socket TCP. Para evitar que se escucha, se puede utilizar el
- Skip-networking
opcin de lnea de comandos al iniciar MySQL o especicarlo en la seccin [mysqld] de su my.cnf archivo:
[Mysqld]
...
skip-networking
...
Otro programa que usted encontrar a menudo que escucha en un puerto es el servidor X11, que escucha en TCP
el puerto 6000 de forma predeterminada. Este puerto se utiliza tradicionalmente para permitir a clientes remotos conectarse a su X11
servidor para que puedan sacar sus ventanas y aceptar el teclado y el ratn de entrada; Sin embargo, con el advenimiento
de SSH y X11 reenvo, esto realmente no se necesita ms. Con el redireccionamiento X11 activada en ssh ,
cualquier cliente que necesite conectarse a su servidor X11 ser un tnel a travs de la conexin SSH y
pasar por alto el puerto TCP de escucha cuando se conecta a su servidor X11.
Para que su servidor X Windows para dejar de escuchar en este puerto, todo lo que necesita hacer es agregar
-Nolisten tcp
a
el comando que se utiliza para iniciar el servidor. Esto puede ser difcil, sin embargo, averiguar qu archivo
controla cmo se inicia el servidor puede ser una tarea desalentadora. Por lo general, usted puede encontrar lo que ests buscando
en / etc/X11 .
Si utilizas gdm , abierto gdm.conf y busque una lnea similar a esta:
command = / usr/X11R6/bin/X
A continuacin, slo tiene que aadir
-Nolisten tcp
al nal de la lnea.
Si est utilizando xdm , busque un archivo llamado Xservers y asegrese de que contiene una lnea similar a esta:
: 0 / tcp nolisten-usr/X11R6/bin/X locales
Alternativamente, si usted no est utilizando una pantalla gestionada y en su lugar se utiliza
startx
o similar
comando para iniciar el servidor X11, puede simplemente aadir
-Nolisten tcp
hasta el nal de su
startx
comando.
Para asegurarse de que se pasa al proceso del servidor X, iniciarlo despus de un juego extra de guiones:
$ startx --- tcp nolisten
Una vez que inicie X, el fuego de un terminal y ver lo que est escuchando mediante lsof o netstat [Hack # 8] . Usted
ya no debe ver nada enlazado al puerto 6000.
Pgina 35
Hack # 10. Restringir Servicios con espacio aislado Entornos
Mitigar el dao del sistema, manteniendo los compromisos de servicio contenida.
A veces, mantenerse al da con los ltimos parches simplemente no es suciente para evitar un robo. A menudo, un nuevo
explotar circular en los crculos privados de largo antes de que se public un aviso ocial, durante los cuales
los servidores corren en ataque inesperado. Con esto en mente, es prudente tomar adicional
medidas preventivas para contener los posibles efectos de un servicio comprometido. Una forma de hacer esto es
para ejecutar sus servicios en una caja de arena . Idealmente, esto minimiza los efectos de un compromiso de servicio en la
sistema global.
La mayora de los sistemas Unix y tipo Unix incluyen algn tipo de llamada de sistema u otro mecanismo para sandboxing
que ofrece varios niveles de aislamiento entre el host y el cajn de arena. Lo menos restrictivo y
ms fcil de congurar es una
chroot ()
medio ambiente, que est disponible en casi todos los Unix y Unix-like
sistemas. FreeBSD tambin incluye otro mecanismo llamado
crcel ()
, Que proporciona algunos adicional
restricciones ms all de los proporcionados por
chroot ()
.
TIP
Si desea congurar un entorno restringido, pero no se siente que se necesita el nivel de seguridad proporcionado por un sistema basado-call-
entorno de recinto de seguridad, consulte "Restringir Shell Environments" [Hack # 20] .
El uso de chroot ()
chroot ()
muy simplemente cambia el directorio raz de un proceso y de todos sus hijos. Si bien este es un
caracterstica de gran alcance, hay muchas advertencias a usarlo. Lo ms importante, no debe haber ninguna manera para
nada se ejecuta dentro de la caja de arena para cambiar su identicador de usuario efectivo (EUID) a 0, que es el UID de root.
Naturalmente, esto implica que usted no desea ejecutar algo como root dentro de la crcel.
Hay muchas maneras de salir de un
chroot ()
caja de arena, pero todos ellos se basan en la posibilidad de obtener la raz
privilegios en el entorno de espacio aislado. La posesin de UID 0 en el interior de la caja de arena es la de Aquiles
taln de
chroot ()
. Si un atacante puede obtener privilegios de root dentro de la caja de arena, todas las apuestas estn apagadas.
Mientras que el atacante no podr romper directamente fuera del entorno de espacio aislado, que puede ser capaz de
para ejecutar funciones en el interior del espacio de direcciones de los procesos de explotacin "que le permitir sacarlo.
Hay algunos servicios que apoyan
chroot ()
entornos llamando a la funcin dentro de la
programa en s, pero muchos servicios no lo hacen. Para ejecutar estos servicios dentro de un entorno de espacio aislado mediante
chroot ()
, Es necesario hacer uso de la
chroot
comando. La
chroot
comando llama simplemente
chroot ()
con el primer argumento de la lnea de comandos y los intentos de ejecutar el programa especicado en la segunda
argumento. Si el programa es un binario enlazado estticamente, todo lo que tienes que hacer es copiar el programa para
en algn lugar dentro del entorno de espacio aislado; Sin embargo, si el programa est vinculado dinmicamente,
tendr que copiar todos sus libreras de soporte para el medio ambiente tambin.
Vea cmo funciona esto mediante la creacin de esta en un
chroot ()
medio ambiente. En primer lugar tratar de ejecutar
chroot
sin
copiar cualquiera de las bibliotecas de bash necesita:
# mkdir-p / chroot_test / bin
# cp / bin / bash / chroot_test / bin /
# chroot / chroot_test / bin / bash
chroot: / bin / bash: No existe el chero o directorio
Ahora averiguar qu bibliotecas de bash necesidades mediante el uso de la
ldd
comando. Entonces copia las bibliotecas en su
chroot ()
medio ambiente y el intento de ejecutar
chroot
nuevo:
Pgina 36
# ldd / bin / bash
libtermcap.so.2 => / lib/libtermcap.so.2 (0x4001a000)
libdl.so.2 => / lib/libdl.so.2 (0x4001e000)
libc.so.6 => / lib/tls/libc.so.6 (0x42000000)
/ Lib/ld-linux.so.2 => / lib/ld-linux.so.2 (0x40000000)
# mkdir-p chroot_test / lib / tls && \
> (cd / lib; \
> cp libtermcap.so.2 libdl.so.2 ld-linux.so.2 / chroot_test / lib; \
> tls cd; cp libc.so.6 / chroot_test / lib / tls)
# chroot / chroot_test / bin / bash
bash-2.05b #
bash-2.05b # echo / *
/ Bin / lib
La creacin de un
chroot ()
medio ambiente involucra principalmente de ensayo y error para conseguir los permisos derecha y
conseguir todas las dependencias de la biblioteca en su lugar. Asegrese de considerar las implicaciones de tener otra
programas como mknod o montaje disponibles en el
chroot ()
medio ambiente. Si estn disponibles, el
atacante puede ser capaz de crear nodos de dispositivos para acceder a la memoria directa o volver a montar los sistemas de archivos, por lo tanto
a salir de la caja de arena y hacerse con el control total de todo el sistema.
Esta amenaza puede ser mitigado por poner el directorio en un sistema de archivos montado con las opciones que
prohibir el uso de archivos de dispositivo [Hack # 1] , Pero eso no siempre es conveniente. Es recomendable hacer como
muchos de los archivos y directorios en el
chroot ()
-Ed directorio posible propiedad del root y escritura
por root, con el n de hacer imposible que un proceso para modicar los archivos auxiliares (esto incluye
archivos, como bibliotecas y archivos de conguracin). En general, lo mejor es mantener los permisos lo ms restrictiva
como sea posible y para relajarse ellos slo cuando sea necesario (por ejemplo, si los permisos impiden que el
daemon funcione correctamente).
Los mejores candidatos para un
chroot ()
medio ambiente son los servicios que no necesitan privilegios de root en absoluto. Para
ejemplo, MySQL escucha las conexiones remotas en el puerto 3306 de forma predeterminada. Desde este puerto est por encima
1024, mysqld puede iniciarse sin privilegios de root y, por tanto, no supone el riesgo de ser utilizado para
tener acceso de root. Otros demonios que necesitan privilegios de root pueden incluir una opcin para dejar esto
privilegios despus de completar todas las operaciones para las que necesitan acceso root (por ejemplo, la unin a un puerto
por debajo de 1024), pero se debe tener cuidado para asegurar que los programas dejan caer sus privilegios correctamente. Si un
usos del programa
seteuid ()
ms bien que
setuid ()
para dejar sus privilegios, el atacante an puede explotar a
tener acceso de root. Asegrese de leer sobre los avisos de seguridad actuales para los programas que se ejecutarn nicamente con
privilegios de root.
Se podra pensar que simplemente no poner compiladores, una concha, o utilidades como mknod en el arenero
medio ambiente podra protegerlos en el caso de un compromiso de la raz dentro del entorno restringido.
En realidad, los atacantes pueden lograr la misma funcionalidad al cambiar su cdigo de llamar
del sistema ("/ bin / sh")
para llamar a cualquier otra funcin de biblioteca C o llamada al sistema que desean. Si puede
montar el sistema de archivos de la
chroot ()
-Ed programa va desde el uso de la bandera de slo lectura [Hack # 1] , puede
hacen que sea ms difcil para los atacantes para instalar su propio cdigo, pero esto todava no es bastante a prueba de balas.
A menos que el demonio tiene que ejecutar en el entorno puede cumplir los criterios expuestos anteriormente,
puede ser que desee ver en el uso de un mecanismo de caja de arena ms potente.
El uso de la crcel de FreeBSD ()
Uno de estos mecanismos est disponible bajo FreeBSD y se implementa a travs de la
crcel ()
llamada al sistema.
crcel ()
proporciona muchas ms restricciones en el aislamiento del entorno de recinto desde el sistema host
y ofrece caractersticas adicionales, tales como la asignacin de direcciones IP de las interfaces virtuales en el host
sistema. Gracias a esta funcionalidad, puede crear un servidor virtual completo o slo ejecutar un solo servicio dentro
Pgina 37
el entorno de espacio aislado.
Al igual que con
chroot ()
, El sistema proporciona una
crcel
comando que utiliza la
crcel ()
llamada al sistema. He aqu
la forma bsica de la
crcel
comando, donde
ipaddr
es la direccin IP de la mquina en la que la crcel
se est ejecutando:
crcel nuevo comando hostname ipaddr raz
El nombre de host puede ser diferente del nombre de la mquina principal y la direccin IP puede ser cualquier IP
de direcciones que el sistema est congurado para responder a. En realidad se puede dar la apariencia de que todos
los servicios en la crcel se estn ejecutando en un sistema separado utilizando un nombre de host diferente y congurar
y el uso de una direccin IP adicional.
Ahora, intenta ejecutar una shell dentro de una crcel:
# mkdir-p / jail_test / bin
# cp / stand / sh / jail_test / bin / sh
# crcel / jail_test jail_test 192.168.0.40 / bin / sh
# echo / *
/ Bin
Esta vez, no hay bibliotecas necesitan ser copiados, porque los binarios en / stand estn enlazados estticamente.
En el lado opuesto del espectro, se puede construir una crcel que puede funcionar como un casi completamente funcional
servidor virtual con su propia direccin IP. Los pasos para hacer esto en esencia, de la construccin de FreeBSD
fuente y especicando el directorio de la crcel como el destino de la instalacin. Usted puede hacer esto mediante la ejecucin del
siguientes comandos:
# mkdir / jail_test
# cd / usr / src
# make world DESTDIR = / jail_test
# cd etc && make distribucin DESTDIR = / jail_test
# mount_devfs devfs / jail_test / dev
# cd / jail_test && ln-s dev / kernel nula
Sin embargo, si usted est pensando en ejecutar un solo servicio desde dentro de la crcel, este es sin duda una exageracin.
(Tenga en cuenta que en el mundo real es probable que necesite para crear / dev / null y / dev / log nodos de dispositivos en su
entorno de recinto para la mayora de los demonios para que funcione correctamente.)
Para iniciar sus crceles automticamente en el arranque, se puede modicar / etc / rc.conf , que proporciona varias variables
para el control de la conguracin de una crcel dado:
jail_enable = "YES"
jail_list = "test"
ifcong_lnc0_alias0 = "255.255.255.255 mscara de red 192.168.0.41 inet"
jail_test_rootdir = "/ jail_test"
jail_test_hostname = "jail_test"
jail_test_ip = "192.168.0.41"
jail_test_exec_start = "/ bin / sh / etc / rc"
jail_test_exec_stop = "/ bin / sh / etc / rc.shutdown"
jail_test_devfs_enable = "YES"
jail_test_fdescfs_enable = "NO"
jail_test_procfs_enable = "NO"
jail_test_mount_enable = "NO"
jail_test_devfs_ruleset = "devfsrules_jail"
Ajuste
jail_enable
a
S
causar
/ Etc / rc.d / inicio crcel
para ejecutar en el arranque. Esto a su vez lee
el resto de la
jail_X
variables desde rc.conf , por iteracin sobre los valores para
jail_list
(Varias crceles
se pueden enumerar, separados por espacios) y en busca de sus correspondientes conjuntos de variables. Estos
Pgina 38
variables se utilizan para congurar el directorio raz, el nombre de host, la direccin IP, el inicio de cada individuo la crcel
y secuencias de cierre, y qu tipos de sistemas de archivos especiales se montan dentro de la crcel.
Para la crcel para ser accesible desde la red, tambin tendr que congurar una interfaz de red con
direccin IP de la crcel. En el ejemplo anterior, esto se hace con la
ifcong_lnc0_alias0
variable. Para
establecer los alias IP en una interfaz para su uso con una crcel, esto toma la forma de:
ifcong_ <iface> _Alias <alias nmero> = "inet <direccin> mscara de red 255.255.255.255"
As que, si quieres crear una crcel con la direccin 192.168.0.42 y utilizar la misma interfaz que el anterior,
que haba puesto algo como esto en tu rc.conf :
ifcong_lnc0_alias1 = "255.255.255.255 mscara de red 192.168.0.42 inet"
Una cosa que no es del todo evidente es que usted no est limitado a utilizar una direccin IP diferente para cada
la crcel. Puede especicar varias crceles con la misma direccin IP, siempre y cuando no se est ejecutando servicios
dentro de ellos que escuchen en el mismo puerto.
A estas alturas ya ha visto cmo las crceles de gran alcance puede ser. Si usted quiere crear servidores virtuales que se pueden
funcionan como sistemas FreeBSD enteras dentro de una crcel o simplemente para compartimentar los servicios crticos, que pueden
ofrecer otro nivel de seguridad en la proteccin de sus sistemas de intrusos.
Pgina 39
Hack # 11. Utilice proftpd con MySQL Fuente de autenticacin
Asegrese de que el sistema operativo de su sistema de base de datos est funcionando tan ecientemente como sea posible con estos ajustes.
proftpd es un poderoso demonio FTP con una sintaxis de conguracin muy similar a Apache. Cuenta con una gran cantidad
de opciones que no estn disponibles en la mayora de los demonios FTP, incluyendo ratios, hosting virtual, y un modular
diseo que permite a la gente a escribir sus propios mdulos.
Uno de estos mdulos es mod_sql , que permite proftpd para utilizar una base de datos SQL como motor
fuente de autenticacin. Actualmente, mod_sql soporta MySQL y PostgreSQL. Esta puede ser una buena manera
para ayudar a bloquear el acceso a su servidor, ya que los usuarios entrantes sern autenticarse en la base de datos (y
por lo tanto, no requieren una cuenta shell real en el servidor). En este hack, nos pondremos en contacto proftpd
autenticar contra una base de datos MySQL.
En primer lugar, descargar y generar la fuente de proftpd y mod_sql :
$ bzcat proftpd-1.2.6.tar.bz2 | tar xf -
/ Proftpd-1.2.6/contrib $ tar zvxf .. / ../mod_sql-4.08.tar.gz
/ Proftpd-1.2.6/contrib $ cd. .
. / Proftpd-1.2.6 $ / congure - with-mdulos = mod_sql: mod_sql_mysql \
- With-incluye = / usr / local / mysql / include / \
- With-bibliotecas = / usr / local / mysql / lib /
TIP
Sustituya la ruta a tu MySQL instalar, si no es en / usr local / mysql / / .
Ahora, crear el cdigo e instalarlo:
rob @ catlin :/ proftpd-1.2.6 $ make && sudo make install
A continuacin, cree una base de datos para proftpd utilizar (suponiendo que usted ya tiene MySQL en funcionamiento):
$ mysqladmin create proftpd
Entonces, permitir acceso de slo lectura a la misma desde proftpd :
$ mysql-e "subvencin seleccionar el proftpd. * a proftpd @ localhost \
identicado por "secreto"; "
Cree dos tablas en la base de datos, con este esquema:
CREATE TABLE users (
varchar identicador de usuario (30) NOT NULL DEFAULT'',
contrasea varchar (30) NOT NULL DEFAULT'',
UID int (11) NULL por defecto,
gid int (11) NULL por defecto,
varchar homedir (255) NULL por defecto,
shell varchar (255) NULL por defecto,
UID CLAVE nico (UID),
ID de usuario UNIQUE KEY (id de usuario)
) TYPE = MyISAM;
CREAR TABLA (grupos
nombregrupo varchar (30) NOT NULL DEFAULT'',
gid int (11) NOT NULL DEFAULT '0 ',
miembros VARCHAR (255) NULL por defecto
) TYPE = MyISAM;
Pgina 40
Una forma rpida de crear las tablas es salvar a este esquema a un archivo llamado proftpd.schema y ejecutar un
comando como
mysql proftpd <proftpd.schema
.
Ahora, usted necesita decirle proftpd utilizar esta base de datos para la autenticacin. Aada las siguientes lneas a su
/ Usr / local / etc / proftpd.conf archivo:
SQLConnectInfo proftpd proftpd secreto
SQLAuthTypes backend cripta
SQLMinUserGID 111
SQLMinUserUID 111
La
SQLConnectInfo
lnea toma la forma
contrasea de usuario de base de datos
. Tambin puede especicar una base de datos sobre
otro host (incluso en otro puerto) con algo como esto:
SQLConnectInfo proftpd @ dbhost: 5678 alguien somepassword
La
SQLAuthTypes
lnea le permite crear usuarios con contraseas almacenadas en el formato estndar de Unix cripta,
o de MySQL
PASSWORD ()
funcin. Ten en cuenta que si usted est utilizando mod_sql 's facilidades de registro, el
contrasea puede ser expuesto en texto plano, por lo que mantener los registros privados.
La
SQLAuthTypes
line como se especica no permitir contraseas en blanco; si usted necesita esa funcionalidad, tambin
incluir la
vaco
palabra clave. La
SQLMinUserGID
y
SQLMinUserUID
lneas especican el grupo mnimo
y el ID de usuario que proftpd permitirn al iniciar sesin. Es una buena idea hacer esto ms grande que
0
(Para prohibir
conexiones como root), pero debe ser lo ms bajo como sea necesario para permitir que los permisos adecuados en el sistema de archivos. En esto
sistema, tenemos un usuario y un grupo llamado www , tanto con el ID de usuario (UID) y el ID de grupo (GID)
ajustado a
111
. Como vamos a querer a los desarrolladores web para poder iniciar la sesin con estos permisos, tendremos que establecer
los valores mnimos a
111
.
Por ltimo, usted est listo para crear usuarios en la base de datos. La siguiente lnea crea el usuario jimbo , con
derechos de los usuarios efectivos como www / www , y l en los vertederos usr apache / htdocs / / local / directorio al iniciar la sesin:
mysql-e "insertar en los valores de los usuarios (" jimbo ", contrasea ('shhh'), '111 ', \
'111 ',' / Usr / local / apache / htdocs ',' / bin / bash '); "proftpd
La contrasea para jimbo se cifra con la de MySQL
PASSWORD ()
funcionar antes de ser almacenado. La
/ Bin / bash
la lnea se pasa a proftpd pasar proftpd 's
RequireValidShell
Directiva. No tiene que ver con
conceder acceso a una consola real para el usuario jimbo .
En este punto, usted debera ser capaz de disparar hasta proftpd e inicie sesin como usuario jimbo , con una contrasea de shhh .
Si usted est teniendo problemas para conectarse, intente ejecutar proftpd en primer plano con la depuracin en,
de esta manera:
# proftpd-n-d 5
Observe los mensajes a medida que intenta conectarse, y usted debera ser capaz de localizar el problema. En
mi experiencia, es casi siempre debido a un fallo para establecer algo correctamente en proftpd.conf , por lo general
con respecto a los permisos.
El mod_sql mdulo puede hacer mucho ms de lo que he mostrado aqu; se puede conectar a MySQL existente
bases de datos con nombres de tabla arbitrarias, registrar toda la actividad de la base de datos, modicar sus operaciones de bsqueda de los usuarios con un
arbitrario
DONDE
clusula, y mucho ms.
Vea tambin
El mod_sql pgina de inicio en
http://www.lastditcheffort.org/aah/proftpd/mod_sql/
El proftpd pgina de inicio en
http://www.proftpd.org
Pgina 41
Rob Flickenger
Pgina 42
Hack # 12. Prevenir los ataques Stack-Smashing
Aprenda a prevenir desbordamientos de bfer basado en pila.
En C y C + +, la memoria para las variables locales se asigna en un trozo de memoria llamada pila .
La informacin relativa al ujo de control de un programa tambin se mantiene en la pila. Si una matriz es
asigna en la pila y la matriz es invadida (es decir, ms valores se ven empujados a la matriz de la
espacio disponible lo permite), un atacante puede sobrescribir la informacin de ujo de control que tambin se almacena en
la pila. Este tipo de ataque se reere a menudo como un ataque pila-sensacional .
Ataques Stack-smashing son un problema grave, ya que pueden hacer que un servicio inocua
(Como un servidor web o un servidor FTP) ejecutar comandos arbitrarios. Varias tecnologas intentan
proteger los programas contra estos ataques. Algunos se implementan en el compilador, como IBM
Parches ProPolice para GCC (
http://www.trl.ibm.com/projects/security/ssp/
). Otros son dinmicos
soluciones en tiempo de ejecucin, tales como Libsafe. Mientras que recompilar la fuente llega al corazn de la memoria intermedia
ataque de desbordamiento, las soluciones en tiempo de ejecucin puede proteger programas cuando la fuente no est disponible o
recompilar simplemente no es factible.
Todas las soluciones basadas en el compilador funcionan en mucho la misma manera, aunque hay algunas diferencias
en las implementaciones. Trabajan mediante la colocacin de un canario (que suele ser un valor aleatorio) en la
apilar entre la informacin de ujo de control y las variables locales. El cdigo que normalmente es
generado por el compilador para volver de la funcin se modica para comprobar el valor del canario en
la pila; si no es lo que se supone que es, el programa se termina inmediatamente.
La idea detrs del uso de un canario es que un atacante intentar montar un ataque pila-sensacional voluntad
tener que sobrescribir el canario sobrescribir la informacin de ujo de control. La eleccin de un valor aleatorio para
el canario asegura que el atacante no puede saber lo que es y por lo tanto no puede incluirlo en los datos utilizados
a "aplastar" la pila.
Cuando un programa se distribuye en forma de cdigo fuente, los desarrolladores del programa no puede imponer el uso de
ProPolice, porque es una extensin no estndar para el compilador GCC (aunque las caractersticas ProPolice similares
se han aadido a 4.x GCC, esa versin de GCC que no es de uso comn). Uso de ProPolice es la
la responsabilidad de la persona que la compilacin del programa. ProPolice est disponible con algunos BSD y Linux
distribuciones de la caja. Usted puede comprobar para ver si su copia de GCC contiene ProPolice
funcionalidad mediante el uso de la
-Fstack protector
opcin de GCC. Si su GCC ya est parchado, el
compilacin debera proceder normalmente. De lo contrario, obtendr un error como este:
cc1: error: opcin de lnea de comando no reconocido "-fstack-protector"
Cuando ProPolice est habilitado y un desbordamiento se activa y se detecta en un programa, en lugar de
recibir una SIGSEGV, el programa recibir una SIGABRT y core dump. Adems, un mensaje
se registrarn informndole de la abundancia y de la funcin problemtica en el programa:
25 de mayo 00:17:22 zul vulnprog: desbordamiento de pila en la funcin Get_method_from_request
Para los sistemas Linux, la tecnologa Libsafe de Avaya Labs no se implementa como una extensin del compilador, pero
en lugar se aprovecha de una caracterstica de que el cargador dinmico que carga previamente una biblioteca dinmica con todos los
ejecutable. Usando Libsafe no requiere que el cdigo fuente de los programas que protege, y puede ser
desplegado en una base de todo el sistema.
Libsafe sustituye a la puesta en prctica de varias funciones estndar que son vulnerable a un buffer
desbordamientos, tales como
gets ()
,
strcpy ()
, Y
scanf ()
. Las implementaciones de recambio intentan
calcular el tamao mximo posible de un tampn estticamente asignada utilizado como un bfer de destino para
escritura, utilizando una funcin incorporada de GCC que devuelve la direccin del puntero de marco. Esa direccin es
Pgina 43
normalmente la primera pieza de informacin en la pila siguiente variables locales. Si se hace un intento de
escribir ms que el tamao estimado de la memoria intermedia, el programa se termina.
Por desgracia, hay varios problemas con el enfoque adoptado por Libsafe. En primer lugar, no puede
calcular con precisin el tamao de un tampn; lo mejor que puede hacer es limitar el tamao de la memoria intermedia a la
diferencia entre el inicio de la memoria intermedia y el puntero de marco. En segundo lugar, la proteccin de Libsafe no lo har
trabajar con los programas que se compilaron utilizando el
-Fomit-frame-pointer
bandera de GCC, una optimizacin
que hace que el compilador no poner el puntero en la pila. Aunque relativamente intil, este es un
optimizacin popular para los programadores para emplear. Por ltimo, Libsafe no funciona en los binarios SUID
sin vinculacin esttica o un truco similar. Sin embargo, s proporciona al menos cierta proteccin contra
ataques convencionales de pila-sensacional.
Las versiones ms recientes de Libsafe tambin ofrecen algo de proteccin contra los ataques de formato de cadena . La
proteccin de serie-formato tambin requiere el acceso al puntero de marco porque intenta ltrar
argumentos que no son punteros en cualquiera del montn o las variables locales en la pila.
Adems de las soluciones de espacio de usuario, se puede optar por parchear el kernel que use pilas no ejecutables y
detectar ataques de desbordamiento de bfer [Hack # 13] .
Pgina 44
Hack # 13. Bloquee su kernel con grsecurity
Endurecer su sistema contra ataques con el parche del kernel grsecurity.
Endurecimiento un sistema Unix puede ser un proceso difcil, que suele implicar la creacin de todos los servicios
que el sistema funcione de la manera ms segura posible, as como bloqueo el sistema para
evitar compromisos locales. Sin embargo, poner esfuerzo en asegurar los servicios que usted est funcionando
hace poco para el resto del sistema y para vulnerabilidades desconocidos. Afortunadamente, a pesar de que el
kernel estndar de Linux ofrece algunas caractersticas para asegurar de forma proactiva un sistema, hay parches
disponible que puede ayudar al administrador del sistema emprendedora hacerlo. Uno de estos parches es grsecurity
(
http://www.grsecurity.net
).
grsecurity comenz como un puerto del parche OpenWall (
http://www.openwall.com
) A la serie de 2.4.x
Los ncleos de Linux. Este parche caractersticas tales como pilas no ejecutables aadi algo de seguridad del sistema de archivos
mejoras, las restricciones de acceso a / proc , as como algunos lmites de recursos mejorados. Estos
caractersticas ayudado a proteger el sistema contra ataques de desbordamiento de bfer basado en pila, impidi
ataques del sistema de archivos que implican las condiciones de carrera en archivos creados en / tmp , los usuarios limitados a ver slo su
procesos propios, e incluso mejoran los lmites de recursos de Linux para realizar ms comprobaciones.
Desde su creacin, grsecurity ha crecido hasta incluir muchas caractersticas ms all de los proporcionados por el
OpenWall parche. grsecurity ahora incluye muchas protecciones adicionales de espacio de direcciones de memoria a
prevenir vulnerabilidades de desbordamiento de bfer de tener xito, as como una mayor
chroot ()
restricciones de la crcel,
aumento de la asignacin al azar de los procesos y los ID de propiedad intelectual, y el aumento de las caractersticas de auditora que permiten
el seguimiento de cada proceso ejecutado en un sistema. grsecurity aade tambin una lista de control de acceso sosticado
sistema que hace uso de las capacidades del sistema de Linux. Este sistema de ACL se puede utilizar para limitar la
operaciones privilegiadas que los procesos individuales son capaces de realizar sobre una base caso por caso.
TIP
El gradm utilidad se encarga de la conguracin de las ACL. Si ya ha grsecurity instalado en su mquina, no dude en pasar directamente
para "evitar que las aplicaciones con grsecurity" [Hack # 14] .
Corrigiendo el ncleo
Para compilar un ncleo con grsecurity, usted tendr que descargar el parche correspondiente a su
versin del kernel y aplicarlo a su ncleo con el parche de utilidad. Por ejemplo, si est ejecutando
Linux 2.6.14.6:
# cd / usr/src/linux-2.6.14.6
# zcatandrew/grsecurity-2.1.8-2.6.14.6-200601211647.patch.gz | patch-p1
Mientras que el comando se ejecuta, debera ver una lnea para cada archivo de cdigo fuente del ncleo que se est parcheado.
Despus de que el comando haya terminado, usted puede asegurarse de que el parche se aplica limpiamente mediante la bsqueda de cualquier
archivos que terminan en . rej . El parche de programa crea estos cuando no se puede aplicar el parche limpiamente en un archivo.
Una forma rpida de ver si hay alguno . rej archivos es utilizar el
encontrar
comando:
# encontrar. /-name \ *. rej
Si hay algn archivo rechazadas, sern listados en la pantalla. Si el parche se aplicar limpiamente a todos los archivos,
que debe ser devuelto a la lnea de comandos sin ninguna salida adicional.
Despus de aplicar el parche, usted puede congurar el kernel para permitir la caractersticas de grsecurity por
Pgina 45
funcionamiento
make cong
utilizar indicaciones de texto,
make menucong
para una interfaz basada en curses o
make xcong
utilizar una interfaz grca de usuario (uso basado en QT
gcong
de una basada en GTK). Si usted fue la ruta grca y usados
make xcong
, Expanda el rbol de opciones de seguridad y usted debera ver algo similar a la Figura 1-1 .
Figura 1-1. Nuevas secciones agregadas por el parche grsecurity
Ahora hay dos nuevos subrboles: PAX y Grsecurity. Si ejecut
make menucong
o
make cong
, La
opciones del ncleo relevantes tienen los mismos nombres que las opciones del men que se describen en este ejemplo.
Conguracin de las opciones del kernel
Para activar grsecurity y congurar las funciones que se habilitar en el kernel, expanda el Grsecurity
subrbol y haga clic en la casilla de vericacin Grsecurity. Usted debe ver el dilogo que se muestra en la Figura 1-2 .
Pgina 46
Figura 1-2. Habilitacin grsecurity
Despus de que hayas hecho esto, puede activar conjuntos predenidos de funciones bajo el subrbol Nivel de seguridad, o
ponerlo en Custom y pasar por los mens para seleccionar y elegir las funciones que desea habilitar.
Seguridad baja
Elegir baja es segura para cualquier sistema y no debera afectar al funcionamiento normal de cualquier software. Uso
este ajuste permitir vincular las restricciones en los directorios con el modo 1777. Esto evita que la raza
condiciones en / tmp de la explotacin, por slo siguientes enlaces simblicos a los archivos que son propiedad de la
proceso siguiendo el enlace. Del mismo modo, los usuarios no podrn escribir en FIFO que no son dueos de si
se encuentran dentro de un directorio con permisos de 1777.
Adems de las restricciones de enlace simblico y FIFO ms estrictas, el ajuste de baja aumenta la aleatoriedad de
proceso y IP IDs. Esto ayuda a evitar que los atacantes usando tcnicas de deteccin remotos
adivinar correctamente el sistema operativo de su mquina en marcha [Hack # 65] , y tambin hace que sea difcil
adivinar el ID de un programa determinado.
El nivel de seguridad de baja tambin obliga a los programas que utilizan
chroot ()
para cambiar su trabajo actual
directorio para / despus de la
chroot ()
llamar. De lo contrario, si un programa deja su directorio de trabajo fuera de la
chroot ()
medio ambiente, que podra ser utilizado para salir de la caja de arena. Elegir el nivel de seguridad bajo
Tambin evita que los usuarios que no sean root utilicen dmesg , una utilidad que se puede utilizar para ver reciente kernel
mensajes.
Pgina 47
Seguridad media
Elegir Medium permite todas las mismas caractersticas que el nivel de seguridad bajo, pero este nivel tambin
incluye caractersticas que hacen
chroot ()
Basados en entornos de espacio aislado ms seguro. La capacidad de
sistemas de archivos de montaje, llamada
chroot ()
, Escriba a
sysctl
las variables, o crear nodos de dispositivo dentro de un
chroot ()
-
entorno ed estn todos restringida, lo que elimina la mayor parte del riesgo que implica la ejecucin de un servicio en un
espacio aislado ambiente bajo Linux. Adems, el nivel medio aleatoriamente puertos de origen TCP y
registros fallaron
tenedor ()
llamadas, los cambios en la hora del sistema y fallos de segmentacin.
Habilitar el nivel de seguridad medio tambin restringe el acceso total a / proc para los que estn en la rueda
grupo. Esto oculta los procesos de cada usuario de otros usuarios y niega por escrito a / dev / kmem , / dev / mem ,
y / dev / puerto . Esto hace que sea ms difcil parchar rootkits basadas en el kernel en el kernel en ejecucin. La
Nivel medio tambin aleatoriamente diseos de espacio de direcciones de memoria del proceso, por lo que es ms difcil para un
atacante para explotar con xito los ataques de desbordamiento de bfer, y elimina la informacin sobre direcciones de proceso
diseos de espacio de / proc . Debido a estos / proc restricciones, usted tendr que ejecutar su identd daemon
(Si est ejecutando uno) como una cuenta que pertenece a la rueda de grupo. De acuerdo con el grsecurity
documentacin, ninguna de estas caractersticas debera afectar el funcionamiento de su software, a menos que sea muy
viejos o mal escrito.
Alta seguridad
Para habilitar casi todas las caractersticas de grsecurity, usted puede elegir el nivel de seguridad Alto. Adems de la
caractersticas proporcionadas por los niveles de seguridad ms bajos, este nivel implementa adicional / proc restricciones por
limitar el acceso a dispositivo y la informacin de la CPU a los usuarios que estn en la rueda de grupo. La alta seguridad
ms restringe el nivel de un recinto de seguridad ambientes rechazando
chmod
para establecer el bit SUID o SGID cuando
operando dentro de dicho entorno.
Adems, las aplicaciones que se ejecutan dentro de un entorno de este tipo no se le permitir insertar
mdulos de carga dinmica, realizar E / S en bruto, congurar dispositivos de red, reinicie el sistema, modicar inmutable
archivos o cambiar el tiempo del sistema. La eleccin de este nivel de seguridad tambin establece la pila del kernel
al azar, para evitar saturacin del bfer hazaas basadas en el kernel de tener xito. Adems, se esconde la
del kernel smbolos-lo que hace an ms difcil para un intruso para instalar cdigo de Troya en el funcionamiento
kernel-y los registros del sistema de archivos de montaje, volver a montar y desmontar.
El nivel de seguridad de alta tambin permite que el cdigo PaX de grsecurity, que permite a la memoria no ejecutable
pginas, entre otras cosas. La activacin de esta causa muchos exploits de desbordamiento de buffer a fallar, ya que cualquier cdigo
se inyecta en la pila a travs de un rebasamiento ser incapaz de ejecutar. Todava es posible explotar un
programa con las vulnerabilidades de desbordamiento de buffer, aunque esto se hace mucho ms difcil por grsecurity de
caractersticas aleatoria del diseo del espacio de direcciones. Sin embargo, algunos programas-tales como XFree86, el vino , y
Mquinas virtuales Java-esperan que las direcciones de memoria devueltos por
malloc ()
ser ejecutable.
Desde PaX rompe este comportamiento, lo que le har esos programas y otros que dependen de l para
fallar.
Por suerte, Pax se puede desactivar en funcin de cada programa con la paxctl utilidad
(
http://pax.grsecurity.net
). Por ejemplo, para desactivar la memoria no ejecutable para un programa dado,
puede ejecutar un comando similar a ste:
# paxctl-ps / usr / bin / java
Otros programas tambin hacen uso de las caractersticas del CCG especiales, tales como las funciones de trampoln, que permiten una
programador para denir una pequea funcin dentro de una funcin de manera que la funcin denida slo es visible a
la funcin que encierra. Desafortunadamente, GCC pone el cdigo de la funcin de trampoln en la pila, por lo que PaX
Pgina 48
romper todos los programas que dependen de este. Sin embargo, Pax puede proporcionar emulacin para trampoln
funciones, que se pueden activar en funcin de cada programa con
paxctl
mediante el uso de la
-E
cambiar.
Conguraciones de seguridad personalizadas
Si no te gustan los juegos de caractersticas que estn habilitadas con cualquiera de los niveles de seguridad predenidos,
slo puede establecer la opcin del kernel a medida y habilitar slo las funciones que necesita.
Despus de congurar un nivel de seguridad o habilit las opciones especcas que desea usar, basta con volver a compilar el
ncleo y los mdulos como hara normalmente:
# make clean && make bzImage
# make modules && make modules_install
A continuacin, instale su nuevo kernel y reiniciar con ella. Adems de las restricciones del ncleo ya en efecto,
Ahora usted puede utilizar gradm congurar ACLs para su sistema [Hack # 14] .
Como puede ver, grsecurity es una modicacin compleja pero tremendamente til del kernel Linux. Para
informacin ms detallada sobre la instalacin y conguracin de los parches, consulte la extensa
documentacin en
http://www.grsecurity.net/papers.php
.
Pgina 49
Hack # 14. Restringir aplicaciones con grsecurity
Utilice las capacidades de Linux y las ACL de grsecurity para restringir las aplicaciones en el sistema.
Ahora que ya ha instalado el parche grsecurity [Hack # 13] , Es probable que desee hacer uso de su
exibles basados en funciones los controles de acceso del sistema (RBAC) para restringir an ms las aplicaciones con privilegios de
su sistema, ms all de lo que las caractersticas de seguridad del ncleo de grsecurity proporcionan.
TIP
Si usted acaba de unirse a nosotros y no est familiarizado con grsecurity, lea "Lock Down Your Kernel con grsecurity" [Hack # 13] primero.
Para restringir aplicaciones especcas, usted tendr que hacer uso de la gradm utilidad, que puede ser
descargado desde el sitio grsecurity principal (
http://www.grsecurity.net
). Puede compilar e instalar
en la forma habitual: descomprimir la distribucin fuente, cambie al directorio que se crea y, a continuacin,
ejecutar
make && make install
. Este comando instala gradm en / sbin , crea el chero / etc / grsec directorio
que contiene una poltica predeterminada, y se instala la pgina de manual.
Como parte de la carrera
make install
, Se le solicitar que establezca una contrasea que se utilizar para gradm a
autenticarse con el kernel. Puede cambiar la contrasea ms tarde ejecutando
gradm
con el
-P
opcin:
# gradm-P
Conguracin de grsecurity contrasea RBAC
Contrasea:
Vuelva a escribir la contrasea:
Contrasea escribe en / etc / grsec / PW.
Usted tambin tendr que establecer una contrasea para el rol de administrador:
# gradm-P administrador
Conguracin de la contrasea de rol de administrador
Contrasea:
Vuelva a escribir la contrasea:
Contrasea escribe en / etc / grsec / PW.
A continuacin, utilice este comando para activar el sistema RBAC de grsecurity:
# / sbin / gradm-E
Una vez que haya terminado la conguracin de la poltica, es probable que desee aadir este comando al nal de
su sistema de arranque. Aadir al nal del archivo / etc / rc.local o un guin similar que se designa para
la personalizacin de su sistema de arranque.
La poltica por defecto instalado en / etc / grsec / poltica es bastante restrictiva, por lo que usted quiere crear una poltica
por los servicios y los binarios del sistema que desee utilizar. Por ejemplo, despus de que el sistema RBAC tiene
ha permitido,
ifcong
ya no ser capaz de cambiar las caractersticas de la interfaz, incluso cuando se ejecuta como
root:
# / sbin / ifcong eth0: 1 192.168.0.59 hasta
SIOCSIFADDR: Permiso denegado
SIOCSIFFLAGS: Permiso denegado
SIOCSIFFLAGS: Permiso denegado
La forma ms sencilla de congurar una poltica para un comando en particular es para especicar que desea utilizar
modo de aprendizaje de grsecurity, en lugar de especicar cada una manualmente. Si ha habilitado RBAC, usted
que tenga que desactivar temporalmente para su shell ejecutando
gradm-a admin
. A continuacin, ser capaz de acceder a
archivos dentro de / etc / grsec ; de lo contrario, el directorio estar oculta a usted.
Pgina 50 Aadir una entrada como esta a / etc / grsec / Poltica :
sujeto / sbin / ifcong l
/ h
/ Etc / grsec h
-CAP_ALL
Esto se trata de la poltica ms restrictiva posible, porque oculta el directorio raz del proceso de
y elimina cualquier privilegio que pueda necesitar. La
l
al lado del binario que se aplica la directiva dice que
utilizar el modo de aprendizaje.
Despus de terminar de editar la directiva, tendr que desactivar RBAC y luego volver a activarlo con el aprendizaje
modo:
# gradm-a admin
Contrasea:
# gradm-D
# gradm-L / etc / grsec / learning.logs-E
Ahora, trata de ejecutar el
ifcong
comando de nuevo:
# / sbin / ifcong eth0: 1 192.168.0.59 hasta
# / sbin / ifcong eth0: 1
eth0: 1 Link encap: Ethernet HWaddr 08:00:46:0 C: AA: DF
inet direccin: 192.168.0.59 BCAST: Mscara 192.168.0.255: 255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU: 1500 Mtrica: 1
Cuando el comando se ejecuta correctamente, grsecurity crear entradas en el registro de aprendizaje. A continuacin, puede utilizar
gradm
a
generar una ACL para el programa sobre la base de estos registros:
# gradm-a admin
Contrasea:
# gradm-L / etc / grsec / learning.logs-O stdout
A partir de la reduccin de objetos de aprendizaje completo para sujeto / sbin / ifcong...done.
# # # EL TEMA POR DEBAJO (S) se debe agregar a la funcin predeterminada # # #
sujeto / sbin / ifcong {
raz user_transition_allow
raz group_transition_allow
/ h
/ Sbin / ifcong rx
-CAP_ALL
+ CAP_NET_ADMIN
+ CAP_SYS_ADMIN
}
Ahora, usted puede sustituir la poltica de formacin para el / sbin / ifcong en / etc / grsec / poltica con ste, y
ifcong
debera funcionar. A continuacin, puede seguir este procedimiento para cada programa que requiere especial
permisos para funcionar. Slo asegrese de probar cualquier cosa que usted querr hacer con esos programas,
para asegurar el modo de aprendizaje de grsecurity que detectar que necesita para realizar una llamada de sistema en particular
o abrir un archivo especco.
Uso grsecurity para bloquear aplicaciones puede parecer tedioso trabajo al principio, pero en ltima instancia
crear un sistema que le da a cada proceso slo los permisos que necesita para hacer su trabajo, ni ms ni menos.
Cuando usted necesita para construir una plataforma de alta seguridad, grsecurity puede proporcionar un control preciso sobre namente
casi todo el sistema, posiblemente, puede hacer.
Pgina 51
Hack # 15. Llamadas de Restringir el sistema con systrace
Mantenga sus programas contra el desempeo de las tareas que no estaban destinados a hacer.
Una de las caractersticas ms interesantes de NetBSD y OpenBSD es systrace , un gestor de acceso de llamadas al sistema.
Con systrace , un administrador del sistema puede especicar qu programas pueden hacer que las llamadas al sistema, y
cmo se pueden hacer esas llamadas. El uso adecuado de systrace puede reducir en gran medida los riesgos inherentes en el funcionamiento
mal escritos o programas explotables. Systrace polticas pueden limitar a los usuarios de una manera completamente
independientes de los permisos de Unix. Usted puede incluso denir los errores que las llamadas al sistema de retorno cuando
se niega el acceso, para permitir que los programas no logran de una manera ms adecuada. El uso adecuado de systrace requiere un
comprensin prctica de las llamadas al sistema y qu programas funcionalidad debe tener para funcionar correctamente.
En primer lugar, qu son exactamente las llamadas al sistema? Una llamada al sistema es una funcin que te permite hablar con el
kernel del sistema operativo. Si desea asignar memoria, abra un puerto TCP / IP, o realizar la entrada / salida
en el disco, tendr que utilizar una llamada al sistema. Las llamadas al sistema estn documentados en la seccin 2 de este manual
pginas.
Unix tambin es compatible con una amplia variedad de llamadas a las bibliotecas de C. Estos son a menudo confundidas con las llamadas al sistema, pero son
en realidad slo estandarizada rutinas para las cosas que se podran escribir dentro de un programa. Por ejemplo,
podra fcilmente escribir una funcin para calcular races cuadradas en un programa, pero no se poda escribir una
funcionar para asignar memoria sin utilizar una llamada al sistema. Si ests en duda sobre si un determinado
funcin es una llamada al sistema o una funcin de biblioteca C, consulte el manual en lnea.
Usted puede encontrar una llamada al sistema de vez en cuando que no se documenta en el manual en lnea, tales como
romper ()
. Tendrs que cavar en otros recursos para identicar estas llamadas.
TIP
pausa () es una llamada al sistema muy antiguo utilizado en libc , pero no por los programadores, por lo que parece haber escapado de ser documentado en el
pginas de manual.
systrace niega todas las acciones que no estn permitidas expresamente y registra los rechazos utilizando syslog . Si un
programa que se ejecuta bajo systrace tiene un problema, usted puede averiguar qu llamada al sistema que el programa quiere
de usar y decidir si desea agregarlo a su poltica, vuelva a congurar el programa, o vivir con la
de error.
systrace tiene varias piezas importantes: polticas, las herramientas de generacin de polticas, la ejecucin de acceso
herramienta de gestin, y la interfaz de administrador de sistemas en tiempo real. Este truco se ofrece una breve visin general de las polticas;
"Creacin de polticas Systrace automticamente" [Hack # 16] muestra cmo utilizar las Systrace herramientas.
La
systrace (1)
pgina de manual incluye una descripcin completa de la sintaxis utilizada para descripciones de las polticas, pero
en general, les resulta ms fcil a ver algunos ejemplos de una poltica de trabajo y luego ir por la sintaxis en
detalle. Desde el nombre , el demonio de servidor de nombres, ha sido un tema de discusiones recientes de seguridad, vamos a
mirar a la poltica que OpenBSD prev llamado .
Antes de revisar la llamada poltica, vamos a revisar algunos hechos comnmente conocidos acerca de su sistema de acceso
requisitos. Las transferencias de zona y consultas grandes ocurren en 53/tcp puerto, mientras que los servicios bsicos de bsqueda son
proporcionado en 53/UDP puerto. OpenBSD
chroot
s llamado en / var / named por defecto y registra todo lo que
/ Var / log / messages .
Cada systrace archivo de poltica se encuentra en un archivo con el nombre despus de la ruta completa del programa, en sustitucin de las barras con
subraya. El archivo de poltica usr_sbin_named contiene unas pocas entradas bastantes que permitan el acceso ms all de
enlace al puerto 53 y escribir en el registro del sistema. El archivo comienza con:
Pgina 52
# Poltica para la llamada que utiliza el nombre de usuario y chroots a / var / named
# Esta poltica funciona para la conguracin predeterminada de llamada.
Poltica: / usr / sbin / named, Emulacin: nativo
La
Poltica
declaracin da la ruta completa del programa de esta poltica es para. No se puede engaar systrace por
dando el mismo nombre a un programa en otro lugar en el sistema. La
Emulacin
muestra de entrada que
Interfaz binaria de aplicacin (ABI) esta poltica es para. Recuerde, los sistemas BSD exponen ITB para un
variedad de sistemas operativos. systrace , tericamente, puede administrar el acceso de llamadas al sistema para cualquier ABI,
aunque slo binarios nativos y Linux estn soportadas por el momento.
Las lneas restantes denen una variedad de llamadas al sistema que el programa puede o no puede usar. La muestra
poltica para la llamada incluye 73 lneas de reglas de llamadas al sistema. El aspecto ms bsico de esta manera:
nativo-aceptar: permiso
Cuando / usr / sbin / named intenta utilizar la
accept ()
llamada al sistema para aceptar una conexin en un socket, bajo
la ABI nativa, est permitido. Otras reglas son mucho ms restrictivas. He aqu una regla para
bind ()
, El sistema
llaman que permite una solicitud del programa de un puerto TCP / IP para conectar a:
-bind orgenes: partido sockaddr "inet-*: 53" y luego permitir
sockaddr
es el nombre de un argumento tomado por el
accept ()
llamada al sistema. La
partido
palabra clave indica a
Systrace comparar la variable dada por la cadena
inet-*: 53
, De acuerdo con el estndar de la shell
de reconocimiento de patrones (comodines) las normas. As, si la variable
sockaddr
coincide con la cadena
inet-*: 53
, La
se acepta la conexin. Este programa se puede enlazar con el puerto 53, ms de los protocolos TCP y UDP. Si un
atacante haba un exploit para hacer llamada adjuntar un smbolo del sistema en un puerto de alta numerada, este
systrace poltica impedira que explotan de trabajo.
A primera vista, esto parece un error:
-chdir orgenes: nombre eq "/" entonces permiso
-chdir orgenes: nombre eq "/ namedb" y luego permitir
La
eq
palabra clave compara una cadena a otra y requiere una coincidencia exacta. Si el programa trata de ir
en el directorio raz o en el directorio / namedb , systrace lo permitir. Por qu querer
Para permitir que el nombre para acceder al directorio raz? La siguiente entrada explica por qu:
-chroot orgenes: nombre eq "/ var / named" y luego permitir
Podemos utilizar el nativo
chroot ()
llamada al sistema para cambiar nuestro directorio raz a / var / named , pero a ningn otro
directorio. En este punto, el / namedb directorio es en realidad / var / named / namedb . Tambin sabemos que
nombrado registros a syslog . Para ello, ser necesario el acceso a / dev / log :
nativa a conectar: eq sockaddr "/ dev / log" entonces permitir
Este programa se puede utilizar el nativo
connect ()
llamada al sistema para hablar con / dev / log y slo / dev / log . Que
dispositivo de entrega las conexiones fuera a otra parte.
Tambin veremos algunas entradas para las llamadas al sistema que no existen:
-fsread orgenes: nombre eq "/" entonces permiso
-fsread orgenes: nombre eq "/ dev / arandom" y luego permitir
-fsread orgenes: nombre eq "/ etc / group" y luego permitir
Systrace alias determinado sistema llama con funciones muy similares en grupos. Puede desactivar esta
funcionalidad con un modicador de lnea de comandos, y slo usar el sistema exacto pide que especique, pero en la mayora
casos estos alias son muy tiles y se contraen sus polticas considerablemente. Los dos alias son
fsread
y
fswrite
.
fsread
es un alias para
stat ()
,
lstat ()
,
readlink ()
, Y
access ()
, Bajo el nativo y
Linux ITB.
fswrite
es un alias para
unlink ()
,
mkdir ()
, Y
rmdir ()
, Tanto en la ITB nativas y Linux.
Pgina 53
Como
open ()
se puede utilizar para leer o escribir un archivo, ste tiene un alias por tanto
fsread
y
fswrite
, Dependiendo
de cmo se llama. As que el nombre puede leer ciertos etc / archivos, puede ver el contenido del directorio raz,
y se puede acceder al archivo de grupos.
systrace admite dos palabras clave opcionales al nal de una declaracin de poltica:
cdigoerror
y
log
. La
cdigoerror
es el error que se devuelve cuando el programa intenta acceder a esta llamada al sistema. Programas
se comportan de manera diferente dependiendo del error que reciben. llamado reaccionar de manera diferente a un
"Permiso denegado" error de lo que va a una "memoria insuciente" error. Usted puede obtener una lista completa de
cdigos de error de la
errno
pgina de manual. Utilice el nombre de error, no el nmero de error. Por ejemplo, aqu se
devolver un error para los archivos no existentes:
nombre del archivo sub "lename> <non-existent" entonces negar [ENOENT]
Si pones la palabra
log
al nal de la regla, se registrarn las llamadas al sistema con xito. Por ejemplo, si
que quera iniciar cada vez nombrado adjunto al puerto 53, que podra editar la declaracin de poltica de la
bind ()
llamar para que diga:
-bind orgenes: partido sockaddr "inet-*: 53" y luego permitir registro
Tambin puede optar por ltrar las reglas basadas en el ID de usuario e ID de grupo, como el ejemplo que aqu se muestra:
-setgid orgenes: gid eq "70" y luego permiten
Este breve resumen cubre la gran mayora de las reglas que usted ver. Para ms detalles sobre la
systrace gramtica, ley el systrace pgina de manual. Si usted quiere alguna ayuda con la creacin de sus polticas, que
Tambin puede utilizar systrace modo automtico 's [Hack # 16] .
TIP
El artculo original que este truco se basa en est disponible en lnea en
http://www.onlamp.com/pub/a/bsd/2003/01/30/Big_Scary_Daemons.html.
Michael Lucas
Pgina 54
Hack # 16. Crear directivas Systrace automticamente
Deje que el modo automtico de systrace hacer su trabajo para usted.
En el mundo ideal de un verdadero paranoico, administradores de sistemas leer el cdigo fuente de cada
aplicacin en su sistema y ser capaces de construir polticas de acceso de llamadas al sistema a mano, conando slo en
su comprensin ntima de todas las caractersticas de la aplicacin. La mayora de los administradores de sistemas no lo hacen
tener ese tipo de tiempo, sin embargo, y tendra mejores cosas que hacer con ese tiempo si lo hicieran.
Por suerte, systrace incluye una herramienta de generacin de polticas que va a generar una lista de polticas para todos los sistemas
llamar a que una aplicacin realiza. Usted puede utilizar esta directiva como punto de partida para reducir el acceso
usted permite a la aplicacin. Vamos a utilizar este mtodo para generar una poltica para inetd .
Utilice el
-Un
bandera para
systrace
, E incluir la ruta completa al programa que desea ejecutar:
# systrace-A / usr / sbin / inetd
Para pasar las banderas de inetd , aadirlos al nal de la lnea de comandos.
A continuacin, utilice el programa para el que se est creando una poltica. Este sistema tiene ident, durante el da, y el tiempo
servicios pblicos, programas de modo de ejecucin que requieren esos servicios. Arranca un cliente de IRC para desencadenar ident
peticiones, y telnet a los puertos 13 y 37 para obtener los servicios de tiempo. Una vez que usted ha puesto inetd travs de sus pasos,
apagarlo. inetd no tiene un programa de control, por lo que necesita para acabar con l mediante el identicador de proceso.
Comprobacin de la lista de procesos muestra dos procesos:
# ps-ax | grep inet
24421?? IXS 0:00.00 / usr / sbin / inetd
12929? Es 0:00.01 systrace-A / usr / sbin / inetd
No matar al systrace proceso (PID 12.929 en este ejemplo); ese proceso tiene todos los registros de la
llamadas al sistema que inetd ha hecho. Simplemente elimine el inetd proceso (PID 24421), y el systrace proceso
salir normalmente.
Ahora compruebe el directorio de inicio para un systrace. directorio, el cual contendr systrace primera pualada 's en una
inetd poltica. Recuerde, las polticas se colocan en archivos con nombres de la ruta completa al programa,
sustitucin de barras con caracteres de subrayado.
Aqu est la salida de
ls
:
# ls. systrace
usr_libexec_identd usr_sbin_inetd
systrace creado dos polticas, no una. Adems de la poltica prevista para / usr / sbin / inetd , hay
una para / usr / libexec / identd . Esto se debe a que inetd implementa servicios de tiempo internamente, pero es necesario
llamar a otro programa para dar servicio a otras solicitudes. Cuando inetd gener identd , systrace captur la
identd sistema llama as.
Al leer la pliza, usted puede mejorar su comprensin de lo que el programa hace realidad. Mire
cada sistema llama al programa utiliza, y ver si se puede restringir el acceso an ms. Usted probablemente querr
a buscar la manera de restringir an ms las polticas que se generan automticamente. Sin embargo, estos
polticas para hacer un buen punto de partida.
La aplicacin de una poltica de un programa es muy similar a la creacin de la systrace poltica misma. Slo tiene que ejecutar el programa como
un argumento para
systrace
, Usando el
-Un
opcin:
# systrace-a / usr / sbin / inetd
Pgina 55
Si el programa intente realizar las llamadas al sistema que no guran en la pliza, se producir un error. Esto puede causar que el
programa se comporte de manera impredecible. systrace registrar entradas fallidas en / var / log / messages .
Para editar una poltica, slo tiene que aadir el estado deseado al nal de la lista de reglas, y se recogi. Usted
podra hacer esto a mano, por supuesto, pero esa es la manera ms difcil. systrace incluye una herramienta para que puedas editar
polticas en tiempo real, como la llamada al sistema se hace. Esto es excelente para su uso en una explotacin de las redes
entorno del centro, donde la persona responsable de vigilar el monitor de red tambin puede ser
asignado para vigilar las llamadas al sistema y llevarlos a la atencin del personal apropiado. Usted
puede especicar qu programa desea controlar mediante el uso de
systrace
'S
-P
bandera. Esto se llama jacin
para el programa.
Por ejemplo, antes vimos dos procesos que contienen inetd . Uno de ellos era el real inetd proceso y la
otro era el systrace proceso gestin inetd . Adjuntar a la systrace proceso, no el programa en s
(Para utilizar el ejemplo anterior, esto sera PID 12929), y dar la ruta completa al administrado
programa como argumento:
# systrace-p 12929 / usr / sbin / inetd
Al principio no pasar nada. Cuando el programa intenta realizar una llamada no autorizado al sistema,
sin embargo, una interfaz grca de usuario aparecer. Usted tendr la opcin de permitir la llamada al sistema, niegan la llamada al sistema,
permiten siempre la llamada, o siempre negarlo. El programa se bloquear hasta que se tome una decisin, sin embargo,
as que decidir rpidamente.
Tenga en cuenta que estos cambios slo tendrn efecto siempre y cuando el proceso actual se est ejecutando. Si reinicia
el programa, usted tambin debe reiniciar el adjunto systrace monitor y todos los cambios que ha establecido previamente
en la pantalla se habr ido. Debe aadir esas reglas a la poltica si queremos que sean permanentes.
TIP
El artculo original que este truco se basa en est disponible en lnea en
http://www.onlamp.com/pub/a/bsd/2003/02/27/Big_Scary_Daemons.html.
Michael Lucas
Pgina 56
Hack # 17. Control de acceso mediante PAM Login
Aprovecha un control detallado de cundo y desde donde los usuarios pueden acceder a su sistema.
Autenticacin tradicional Unix no proporciona mucha granularidad en la limitacin de la capacidad de un usuario para iniciar sesin
Por ejemplo, cmo limitar los hosts que los usuarios pueden provenir de al iniciar sesin en sus servidores?
Su primer pensamiento podra ser la creacin de envoltorios TCP o reglas posiblemente rewall [Hack # 44] .
Pero lo que si desea permitir que algunos usuarios se conecten desde un host especco, pero no permitir que otras personas
accediendo de ella? O qu si desea evitar que algunos usuarios de la tala en en ciertas pocas del
das a causa de mantenimiento diario, pero permitir que otros (por ejemplo, administradores) para iniciar la sesin en cualquier momento que
desear? Para conseguir este trabajo con todos los servicios que pueda estar ejecutndose en el sistema, lo hara
tradicionalmente que parchear cada uno de ellos para apoyar esta nueva funcionalidad. Aqu es donde enchufable
mdulos de autenticacin (PAM) entra en escena.
PAM permite slo para este tipo de funcionalidad (y ms) sin necesidad de parchear la totalidad de su
servicios. PAM ha estado disponible desde hace bastante tiempo en Linux, FreeBSD y Solaris y ahora es un
componente estndar de las instalaciones tradicionales de autenticacin en estas plataformas. Muchos de los servicios que
tenga que utilizar algn tipo de autenticacin ahora soportan PAM.
Los mdulos estn congurados para servicios en una pila, con el procedimiento de proceso de autenticacin de arriba hacia
inferior como los controles de acceso se completan correctamente. Usted puede construir una pila a medida para cualquier servicio por
la creacin de un archivo en / etc / pam.d con el mismo nombre que el servicio. Si necesita an ms granularidad, que
puede incluir toda una pila de mdulos mediante el uso de la
pam_stack
mdulo. Esto le permite especicar
otro archivo externo que contiene una pila. Si un servicio no tiene su propio archivo de conguracin en
/ Etc / pam.d , se utilizar por defecto la pila especicada en / etc / pam.d / other .
Hay varios tipos de entradas disponibles al congurar un servicio para su uso con PAM. Estos tipos
permiten especicar si un mdulo proporciona autenticacin, control de acceso, cambio de contrasea
control o conguracin de la sesin y el desmontaje. En este momento, estamos interesados en slo uno de los tipos: la
tipo de cuenta. Este tipo de entrada permite especicar los mdulos que controlan el acceso a las cuentas que
se han autenticado.
Adems de los archivos de conguracin especcos del servicio, algunos mdulos se han extendido de conguracin
informacin que se puede especicar en los archivos en el / etc / security directorio. Para este truco, vamos a todo
utilizar dos de los mdulos ms tiles de este tipo:
pam_access
y
pam_time
.
Limitar el acceso de Origen
La
pam_access
mdulo le permite limitar que un usuario o grupo de usuarios pueden iniciar sesin desde. Para hacer
uso de ella, primero tendr que congurar el servicio con el que desea utilizar el mdulo. Usted puede hacer
esto editando el archivo de conguracin PAM del servicio en / etc / pam.d .
He aqu un ejemplo de lo que / etc / pam.d / login podra ser:
#% PAM-1.0
auth necesario pam_securetty.so
auth necesario servicio pam_stack.so = system-auth
auth necesario pam_nologin.so
cuenta necesario servicio pam_stack.so = system-auth
contrasea necesario servicio pam_stack.so = system-auth
sesin necesario servicio pam_stack.so = system-auth
sesin opcional pam_console.so
Observe el uso de la
pam_stack
mdulo; que incluye la pila de contenidos dentro del sistema de autenticacin de archivos.
Pgina 57
Vamos a ver lo que hay dentro de / etc / pam.d / system-auth :
#% PAM-1.0
# Este archivo se genera automticamente.
# Los cambios del usuario sern destruidos la prxima vez que se ejecute authcong.
auth necesario / Lib / security / $ ISA / pam_env.so
auth suciente / Lib / security / $ ISA / pam_unix.so likeauth nullok
auth necesario / Lib / security / $ ISA / pam_deny.so
cuenta necesario / Lib / security / $ ISA / pam_unix.so
contrasea necesario / Lib / security / $ ISA / pam_cracklib.so retry = 3 type =
contrasea suciente / Lib seguridad / $ ISA / pam_unix.so nullok use_authtok md5 sombra /
contrasea necesario / Lib / security / $ ISA / pam_deny.so
sesin necesario / Lib / security / $ ISA / pam_limits.so
sesin necesario / Lib / security / $ ISA / pam_unix.so
Para agregar el
pam_access
mdulo para el servicio de inicio de sesin, puede agregar otra entrada cuenta para el inicio de sesin
archivo de conguracin, lo que, por supuesto, simplemente activar el mdulo para el servicio de inicio de sesin. Alternativamente,
puede agregar el mdulo al sistema de autenticacin de archivos, lo que le permitira a la mayora de la PAM
servicios en el sistema.
Para agregar
pam_access
para el servicio de inicio de sesin (o cualquier otro servicio, para el caso), slo tiene que aadir una lnea como
esto a archivo de conguracin del servicio despus de cualquier anotaciones en cuenta preexistentes:
cuenta necesario pam_access.so
Ahora que ha habilitado la
pam_access
mdulo para nuestros servicios, puede editar
/ Etc / security / access.conf para controlar el comportamiento del mdulo. Cada entrada en el archivo se puede especicar
mltiples usuarios, grupos y nombres de host a los que se aplica la entrada, y especicar si es para permitir o
no permitir el acceso remoto o local. Cundo
pam_access
es invocada por una entrada en una conguracin de servicio
archivo, busca a travs de las lneas de access.conf y se detiene en la primera coincidencia que encuentre. Por lo tanto, si desea
crear entradas predeterminadas para caer de nuevo, tendr que poner las entradas ms especcas en primer lugar, con el general,
entradas siguientes ellos.
La forma general de una entrada en access.conf es:
permiso
: usuarios
: orgenes
donde
permiso
puede ser
+
o
-
. Esto denota si las subvenciones de reglas o deniega el acceso,
respectivamente.
La
usuarios
porcin le permite especicar una lista de usuarios o grupos, separados por espacios en blanco. Adems
a una simple enumeracin de los usuarios en esta parte de la entrada, puede utilizar el formulario
usuario @ antrin
, En donde
antrin
es el
nombre de host local de la mquina que se est conectado a. Esto le permite utilizar un nico archivo de conguracin
en varios equipos, pero al especicar las normas relativas a mquinas especcas.
La
orgenes
porcin se compara con el origen del intento de acceso. Nombres de los sistemas se pueden utilizar para
orgenes remotos, y la especial
LOCAL
palabra clave se puede utilizar para el acceso local. En lugar de explcitamente
los usuarios que especiquen, grupos u orgenes, tambin se puede utilizar el
TODO
y
EXCEPTO
palabras claves para realizar set
operaciones en ninguna de las listas.
He aqu un ejemplo simple de bloquear a los usuarios andrew (Eep! Ese soy yo!) desde un host que se llama
coloso
:
-: Andrew: coloso
Tenga en cuenta que si se especica un grupo que comparte su nombre con un usuario, el mdulo va a interpretar la regla como
Pgina 58
aplicar tanto para el usuario y el grupo.
Restringir el acceso por tiempo
Ahora que hemos cubierto cmo limitar que un usuario puede iniciar sesin desde y cmo congurar un mdulo PAM,
vamos a echar un vistazo a la forma de limitar lo que vez que un usuario puede iniciar sesin utilizando el
pam_time
mdulo. A
congurar este mdulo, necesitar editar / etc / security / time.conf . El formato de las entradas de este archivo es
un poco ms exible que el de access.conf , gracias a la disponibilidad de la NO (
!
), Y (
Y
), Y
O (
|
operadores).
La forma general para una inscripcin en time.conf es:
servicios ; dispositivos ; usuarios ; veces
La
servicios
porcin de la entrada especica qu se regular el servicio habilitado para PAM. Usted puede
por lo general obtener una lista completa de los servicios disponibles al ver los contenidos de su archivo / etc / pam.d directorio.
Por ejemplo, aqu son los contenidos de / etc / pam.d en un sistema Red Hat Linux:
$ ls -1 / etc / pam.d
authcong
chfn
chsh
alto
internet-druid
kbdrate
login
ordenado
otro
passwd
poweroff
ppp
reiniciar
redhat-cong-mouse
redhat-cong-network
redhat-cong-network-cmd
redhat-cong-network-druida
rhn_register
disposicin
smtp
sshd
do
sudo
system-auth
up2date
up2date-cong
up2date-nox
vlock
Para congurar
pam_time
para el uso de cualquiera de estos servicios, usted tendr que aadir una lnea como esta en el archivo en
/ Etc / pam.d correspondiente al servicio que desea regular:
cuenta necesario / Lib / security / $ ISA / pam_time.so
La
dispositivos
porcin especica el dispositivo terminal desde el que se accede al servicio. Para
los inicios de sesin de la consola, puede utilizar
! Ttyp *
, Que especica todos los dispositivos TTY excepcin de pseudo-TTY. Si
quiere que la entrada para afectar slo inicios de sesin remotos, el uso
ttyp *
. Puede restringir a todos los usuarios (consola, control remoto,
y X11) mediante el uso
tty *
.
Para el
usuarios
parte de la entrada, se puede especicar un solo usuario o una lista de usuarios, separados con
|
Pgina 59
personajes.
Por ltimo, la
veces
porcin se utiliza para especicar los tiempos en que se aplicar la regla. Una vez ms, usted puede
estipular un nico intervalo de tiempo o varios intervalos, separados con
|
personajes. Cada rango de tiempo es
especicado por una combinacin de uno o ms abreviaturas de dos caracteres denotan el da o das que
la regla se aplicar, seguido de una serie de horas para esos das.
Las abreviaturas de los das de la semana son
Mo
,
Tu
,
Nosotros
,
Th
,
P.
,
Sa
, Y
Su
. Para mayor comodidad, se puede
utilizar
Wk
para especicar los das de semana,
Wd
para especicar el n de semana, o
Al
para especicar todos los das de la semana. Si se utiliza
estas tres ltimas abreviaturas, tener en cuenta que repiten da se restarn de la serie de das
a la que se aplica la regla (por ejemplo,
WKSU
sera efectivamente slo
Sa
). El rango de horas es simplemente
especicado como dos veces 24 horas, menos los dos puntos, separados por un guin (por ejemplo,
0630-1345
es de 6:30 am a
13:45).
Si queras para no permitir el acceso al usuario andrew desde la consola local los nes de semana y durante
la semana despus de horas, podra usar una entrada como esta:
! system-auth; ttyp *; andrew; Wk1700-0800 | Wd0000-2400
O quizs usted desea limitar accesos remotos a travs de SSH durante una ventana de mantenimiento del sistema duradero
desde 19:00 Viernes a 7 pm Sbado, pero desea permitir que un administrador de sistemas para iniciar sesin:
sshd; ttyp *;! andrew; Fr1900-0700
Como puede ver, hay una gran exibilidad para la creacin de entradas, gracias a los operadores booleanos lgicos
que estn disponibles. Slo asegrese de que usted recuerde congurar el archivo de servicio en / etc / pam.d para su uso
con
pam_time
cuando crea entradas en / etc / security / time.conf .
Pgina 60
Hack # 18. Restringir a los usuarios a SCP y SFTP
Proporcionar servicios de transferencia de archivos restringidos para los usuarios sin tener que recurrir a FTP.
A veces, desea ofrecer servicios de transferencia de archivos a los usuarios sin tener que congurar un servidor FTP.
Esto deja la opcin de permitir a transferir archivos desde y hacia su servidor utilizando SCP o SFTP.
Sin embargo, debido a la forma de OpenSSH sshd implementa estos subsistemas, por lo general es imposible
hacer esto sin que tambin da al usuario el acceso shell al sistema. Cuando una sesin de SCP o SFTP es
iniciado, el daemon se ejecuta otro ejecutable para manejar la peticin utilizando el shell del usuario, que
signica que el usuario necesita un shell vlido.
Una forma de solucionar este problema es utilizar un shell personalizado que es capaz de ejecutar slo el SCP
y subsistemas SFTP. Uno de estos programas es rssh (
http://www.pizzashack.org/rssh/
), Que tiene la
benecio aadido de ser capaz de
chroot ()
, Lo que le permite limitar el acceso al sistema de archivos del servidor.
Conguracin rssh
Para congurar rssh , primero descargue el archivo comprimido desde el sitio web del programa y descomprimirlo. Entonces,
ejecutar la norma
. / Congure
y
hacer
:
$ tar xfz rssh-2.3.2.tar.gz
$ cd rssh-2.3.2
$ . / congure && make
Una vez rssh ha terminado de compilar, convertirse en root y ejecute
make install
. Ahora puede crear una cuenta
y establecer su caparazn para rssh . Intente acceder a ella a travs de SSH. Se dar cuenta de que la conexin se cierra antes de
usted es capaz de cerrar la sesin pulg Usted tambin debe ver esto antes de cerrar la conexin:
Esta cuenta est restringida por rssh.
Este usuario est bloqueada.
Si usted cree que esto es un error, por favor pngase en contacto con el administrador del sistema.
Usted debe obtener resultados similares si se intenta acceder a la cuenta con scp o sftp , porque rssh 's por defecto
conguracin se bloquea todo. Para activar SFTP y SCP, aada las siguientes lneas a su rssh.conf
archivo (el archivo debe estar ubicado en / usr / local / etc o en algn lugar similar):
allowsftp
allowscp
Ahora, intente acceder a la cuenta con
sftp
:
$ sftp rssh_test @ freebsd5-vm1
Conexin a freebsd5-vm1 ...
Contrasea:
sftp>
Conguracin de chroot ()
Este ha sido fcil hasta ahora. Ahora viene la parte difcil: la conguracin
chroot ()
. Aqu tienes dos opciones:
puede especicar un entorno comn para todos los usuarios que se han congurado para utilizar rssh , o puede
crear especca del usuario
chroot ()
entornos.
Para crear un entorno global, slo tiene que especicar el directorio en
chroot ()
mediante el uso de la
chrootpath
directiva de conguracin. Por ejemplo, para tener rssh
chroot ()
a / var / rssh_chroot , establecer un
ambiente adecuado all y aadir la siguiente lnea a su rssh.conf archivo:
Pgina 61
chrootpath = / var / rssh_chroot
Conguracin rssh utilizar
chroot ()
cuenta con una advertencia importante, sin embargo. Apoyo
chroot ()
requiere el uso de
un binario ayudante SUID para realizar la
chroot ()
llamar para que el usuario que haya iniciado sesin Esto se debe a
slo el usuario root puede emitir una
chroot ()
llamar. Este binario es extremadamente limitada; lo nico que hace es realizar la
chroot ()
y tomar medidas para garantizar que slo puede ser ejecutado por rssh . Sin embargo, es algo a tener
en cuenta si se tiene en cuenta este riesgo.
Para una especca del usuario
chroot ()
medio ambiente, se puede aadir una lnea como esta:
user = rssh_test: 077:00011 :/ var / rssh_chroot
El primer grupo de nmeros despus de que el nombre de usuario es la
umask
. El segundo conjunto de dgitos es en realidad un poco-
vector concretando los medios permitidos de acceso. De izquierda a derecha, estos son Rsync, rdist, CVS, SFTP,
y SCP. En el ejemplo anterior, slo SFTP y SCP son permitidos.
Finalmente, la ltima parte de la lnea especica el directorio para
chroot ()
a. Una cosa permitida por esta
sintaxis de conguracin que no es inmediatamente obvia es la capacidad de especicar conguraciones por usuario
sin un directorio de
chroot ()
a: simplemente omitir el directorio. As que, si lo que desea es permitir a un usuario
utilizar slo SCP pero no SFTP (por lo que no pueden navegar el sistema de archivos), puede agregar una lnea similar a esta
uno:
user = rssh_test: 077:00001
Ahora, todo lo que necesita hacer es congurar el entorno de recinto. Cree un bin directorio dentro de la raz
directorio de su caja de arena y copia / bin / sh en ella. A continuacin, copie todas las bibliotecas necesarias para que
sus lugares apropiados:
# cd / var / rssh_chroot
# mkdir bin bin && cp / bin / sh
# ldd bin / sh
bin / sh:
libedit.so.4 => / lib/libedit.so.4 (0x2808e000)
libncurses.so.5 => / lib/libncurses.so.5 (0x280a1000)
libc.so.5 => / lib/libc.so.5 (0x280e0000)
# mkdir lib
# cp / lib/libedit.so.4 / lib/libncurses.so.5 / lib lib/libc.so.5
Ahora, copie los scp y sftp binarios y todas sus bibliotecas necesarias para sus lugares adecuados. Aqu
es un ejemplo de este modo de scp ( sftp debera exigir que las mismas bibliotecas):
# ldd usr / bin / scp
usr / bin / scp:
libssh.so.2 => / usr/lib/libssh.so.2 (0x2807a000)
libcrypt.so.2 => / lib/libcrypt.so.2 (0x280a9000)
libcrypto.so.3 => / lib/libcrypto.so.3 (0x280c1000)
libz.so.2 => / lib/libz.so.2 (0x281b8000)
libc.so.5 => / lib/libc.so.5 (0x281c8000)
libgssapi.so.7 => / usr/lib/libgssapi.so.7 (0x282a2000)
libkrb5.so.7 => / usr/lib/libkrb5.so.7 (0x282b0000)
libasn1.so.7 => / usr/lib/libasn1.so.7 (0x282e8000)
libcom_err.so.2 => / usr/lib/libcom_err.so.2 (0x28309000)
libmd.so.2 => / lib/libmd.so.2 (0x2830b000)
libroken.so.7 => / usr/lib/libroken.so.7 (0x28315000)
# cp / lib/libcrypt.so.2 / lib/libcrypto.so.3 / lib/libz.so.2 \
/ Lib/libc.so.5 / lib lib/libmd.so.2
# mkdir-p usr / lib
# cp / usr/lib/libssh.so.2 / usr/lib/libgssapi.so.7 / usr/lib/libkrb5.so.7 \
/ Usr/lib/libasn1.so.7 / usr/lib/libcom_err.so.2 \
/ Usr/lib/libroken.so.7 usr / lib /
Pgina 62
A continuacin, copie rssh_chroot_helper al lugar correcto y copiar su enlazador dinmico (el programa que est
responsable de la emisin del
chroot ()
llamar):
# mkdir-p usr / local / libexec
# cp / usr / local / libexec / rssh_chroot_helper usr / local / libexec
# mkdir libexec && cp / libexec/ld-elf.so.1 libexec /
TIP
Este ejemplo es para FreeBSD. Para Linux, es probable que desee usar / lib/ld-linux.so.2 .
A continuacin, vuelva a crear / dev / null en su
chroot ()
medio ambiente:
# ls-la / dev / null
CRW-rw-rw-1 root wheel 2, 02 de abril 10 16:22 / dev / null
# mkdir dev && mknod dev / null c 2 2 && chmod a + w dev / null
Ahora cree un archivo de contraseas dummy:
# mkdir etc && cp / etc / passwd, etc
Edite el archivo de contraseas para eliminar todas las entradas correspondientes a otras cuentas, dejando slo las cuentas que
ser utilizados en la crcel.
Ahora, trata de conectar con
sftp
:
$ sftp rssh_test @ freebsd5-vm1
Conexin a freebsd5-vm1 ...
Contrasea:
sftp> ls / etc
/ Etc /.
/ Etc / ..
/ Etc / passwd
Todo lo que queda por hacer es crear un / dev / log y cambiar sus syslogd opciones de inicio para escuchar para acceder
mensajes en el / dev / log en su
chroot ()
medio ambiente. Uso de la
-Un
y especicando la opcin adicional
tomas de registro se suele hacerse cargo de esto:
# / sbin / syslogd-a / home / rssh_test / dev / log
rssh es una herramienta increblemente til que puede eliminar la necesidad de servicios heredados inseguros. Adems de
apoyar SCP y SFTP, soporta CVS, rdist y Rsync. Echa un vistazo a la
rssh (1)
y
rssh.conf (5
)
pginas de manual para ms informacin sobre la conguracin de los de arriba.
Pgina 63
Hack # 19. Utilice un solo uso de contraseas para la autenticacin
Use contraseas de una sola vez para acceder a los servidores de computadoras, posiblemente no conables y limitar
acceso a las cuentas.
En general, lo mejor es no usar las computadoras no son de conanza para acceder a un servidor. Las trampas son abundantes.
Sin embargo, puede mitigar algunos parte del riesgo mediante el uso de contraseas de un solo uso (OTP) para
la autenticacin. Un uso an ms interesante para ellos, sin embargo, es para limitar el acceso a las cuentas utilizadas para
la transferencia de archivos.
Es decir, si se desea proporcionar un archivo a alguien o permitir a alguien para cargar un archivo de una sola vez, puede
congurar una cuenta para usar las OTP. Una vez que la persona que ha dado la contrasea ha hecho lo suyo (y
desconectado), ya no tiene acceso a la cuenta. Esto funciona bien con rssh [Hack # 18] , Ya que
evita que el usuario tenga acceso al sistema fuera de un directorio especicado y de la generacin de
OTPs adicionales.
Con este n, FreeBSD ofrece contraseas de un solo en Todo (OPIE), que es a fondo
apoyado en todo el sistema. OpenBSD utiliza un sistema similar llamado S / Key .
OPIE En FreeBSD
La creacin de una cuenta para usar OPIE bajo FreeBSD es bastante simple. En primer lugar, ejecute
opiepasswd
para crear un
entrada en / etc / opiepasswd y para inicializar el generador de OTP:
$ opiepasswd-C
Adicin de andrew:
Use este mtodo slo desde la consola; NUNCA de distancia. Si est utilizando
telnet, xterm o un dial-in, escriba ^ C ahora o salida sin contrasea.
A continuacin, ejecute opiepasswd sin el parmetro-c.
El uso de MD5 para calcular las respuestas.
Escriba la nueva contrasea secreta:
Nuevamente nueva frase secreta pase:
ID de clave andrew OTP es 499 fr8266
HOVE TEE LANG ESPUMA ALEC LA
La 499 en la salida es la secuencia OTP, y fr8266 es la semilla de usar con l en la generacin de la Fiscala.
Una vez que la secuencia alcanza
0
, Tendr que ejecutar
opiepasswd
nuevamente para sembrar de nuevo el sistema.
La
-C
opcin le dice a aceptar la entrada de contrasea directamente. Ni que decir tiene, no debe ser la creacin de este
a lo largo de canales inseguros; si lo haces, podrs derrotar a los nes de la Fiscala. Ejecute esto desde la consola local
o slo sobre una conexin SSH!
A continuacin, intente iniciar sesin en el sistema de forma remota:
$ ssh-freebsd5 vm1
otp-md5 497 fr8266 ext
Contrasea:
La primera lnea de salida es los argumentos para abastecer a
opiekey
, Que se utiliza para generar la adecuada
OTP a utilizar.
otp-md5
especica el algoritmo de hash que se ha utilizado. Al igual que antes,
497
especica el
Secuencia OTP, y
fr8266
es la semilla.
Ahora, generar la contrasea:
$ 497 opiekey fr8266
Usando el algoritmo MD5 para calcular la respuesta.
Recordatorio: No utilice opiekey de telnet o de acceso telefnico en las sesiones.
Introduzca contrasea secreta:
Pgina 64
DUET SHAW TWIT SKY EM CITE
Para iniciar sesin, introduzca la frase que se ha generado. Una vez que haya iniciado sesin, puede ejecutar
opieinfo
y
ver que el nmero de secuencia se ha decrementado:
$ opieinfo
496 fr8266
Tambin es posible generar mltiples contraseas al mismo tiempo con
opiekey
:
$ opiekey-n 5 496 fr8266
Usando el algoritmo MD5 para calcular la respuesta.
Recordatorio: No utilice opiekey de telnet o de acceso telefnico en las sesiones.
Introduzca contrasea secreta:
492: EL MAL EN MEDIO AUN CANGREJO FRAU NULL
493: GEM SURF LARGO TOM NAN FOUL
494: PROPIA SEMILLA SOB AUK CARRIL ENORME
495: GAP QUE SEOR MENTIRAS RUTA BOMB
496: RON ABEL LIE GWYN BANDEJA ROAR
Es posible que desee hacer esto antes de viajar, para que puedas imprimir las contraseas y los llevan con
usted.
ADVERTENCIA
Asegrese de no incluir el nombre de host en la misma hoja de papel. Si lo hace y lo pierdes, cualquier persona que encuentre puede obtener fcilmente
el acceso a su sistema.
Si tienes un PDA, otra opcin es utilizar PilOTP
(
http://astro.uchicago.edu/home/web/valdes/pilot/pilOTP/
), Un generador de OTP para Palm OS
dispositivos, que es compatible con sistemas tanto OPIE y S / Key.
S / Key Bajo OpenBSD
Conguracin de S / Key bajo OpenBSD es similar a la creacin de OPIE. En primer lugar, el superusuario tiene que habilitarla
mediante la ejecucin
skeyinit-E
. Entonces, como un usuario normal, ejecutar
skeyinit
de nuevo. Se le pedir su
contrasea del sistema y luego te pida una contrasea para inicializar el S / Sistema Clave:
$ skeyinit
Recordatorio - Slo utilice este mtodo si est conectado directamente
o tiene un canal cifrado. Si usted est usando telnet,
pulsar return ahora y utilizar skeyinit-s.
Contrasea:
[Adicin de andrew con md5]
Escriba la nueva frase de contrasea secreta:
Una vez ms la frase de contrasea secreta:
ID andrew skey es otp-md5 100 open66823
Siguiente login password: DOLE WALE HAZ BALE CAPA AVID
Para iniciar la sesin, es necesario anexar
: Skey
a su nombre de usuario:
$ ssh andrew: skey @ hinchada
otp-md5 99 open66823
S / Key Password:
Entonces, en otro terminal, ejecutar
skey
y escriba la contrasea que ha introducido al ejecutar
skeyinit
:
$ skey-md5 99 open66823
Recordatorio - No utilice este programa mientras est conectado a travs de telnet.
Escriba la frase de contrasea secreta:
ALGUNOS TEAR SALT VENT BUDD GONG
Pgina 65
Aqu est la salida de
skeyinfo
despus de acceder al:
$ skeyinfo
98 open66823
Aunque no es una buena idea usar las computadoras no son de conanza para acceder a sus sistemas, se puede ver que una sola vez
contraseas pueden ayudar a mitigar los posibles efectos negativos. Adems, pueden tener otros usos, tales como
la combinacin de ellos con otros componentes para permitir a un usuario para acceder a un recurso protegido slo una limitada
nmero de veces. Con un poco de ingenio, se puede llegar a algunas otras aplicaciones, tambin.
Pgina 66
Hack # 20. Restringir Shell Entornos
Mantenga a sus usuarios de dispararse (y usted) en el pie.
A veces, un entorno de espacio aislado [Hack # 10] es demasiado para sus necesidades. Pero si usted desea congurar una
entorno restringido para un grupo de usuarios que les permite correr slo unos pocos comandos particulares,
usted tendr que duplicar todas las bibliotecas y los binarios de dichos comandos para cada usuario. Es
conchas donde restringidas son tiles. Muchas conchas incluyen una funcin de este tipo, que suele ser invocado por
ejecutando el shell con el
-R
cambiar. Aunque no es tan seguro como un espacio aislado a base de llamadas al sistema-
medio ambiente, una concha restringida puede funcionar bien si usted confa en sus usuarios que no deben ser malicioso (pero se preocupan
que algunos podran ser curioso en un grado poco saludable).
Algunas de las caractersticas comunes de los depsitos restringidos son las habilidades para prevenir un programa de cambio de
directorios, para permitir la ejecucin de comandos slo utilizando rutas absolutas, y prohibir
la ejecucin de comandos en otros subdirectorios. Adems de estas restricciones, la totalidad de la lnea de comandos
operadores de redireccin se desactivan. Con estas caractersticas, la restriccin de los comandos de un usuario puede ejecutar es
tan simple como escoger y elegir qu comandos deben estar disponibles y crear enlaces simblicos a
ellos dentro del directorio home del usuario. Si una secuencia de comandos debe ejecutarse, tambin puede
crear scripts de shell propiedad de otro usuario. Estos scripts se ejecutarn en un entorno sin restricciones
y no se pueden editar en el entorno restringido por el usuario.
Vamos a tratar de ejecutar un shell restringido y ver lo que sucede:
$ bash-r
bash: SHELL: variable de solo lectura
bash: RUTA: variable de solo lectura
bash-2.05b $ ls
bash: ls: No existe el chero o directorio
bash-2.05b $ / bin / ls
bash: / sbin / ls: restringido: no se puede especicar \ Q / "en los nombres de comandos
bash-2.05b $ exit
$ ln-s / bin / ls.
$ bash-r
bash-2.05b $ ls-la
total de 24
drwx ------ 2 andrew Andrs 4096 20 de octubre 08:01.
drwxr-xr-x 4 de raz raz 4096 20 de octubre 14:16 ..
-Rw ------- 1 andrew Andrs 18 de octubre 20 a 08:00. Bash_history
-Rw-r - r - 1 andrew Andrs 24 de octubre 20 14:16. Bash_logout
-Rw-r - r - 1 andrew Andrs 197 20 de octubre 07:59. Bash_prole
-Rw-r - r - 1 andrew Andrs 127 20 de octubre 07:57. Bashrc
lrwxrwxrwx 1 andrew Andrs 07 de octubre 20 8:01 ls -> / bin / ls
Restringido ksh es un poco diferente, ya que le permitir ejecutar scripts y binarios que estn en su
CAMINO
, Que se puede congurar antes de entrar en la shell:
$ rksh
$ ls-la
total de 24
drwx ------ 2 andrew Andrs 4096 20 de octubre 08:01.
drwxr-xr-x 4 de raz raz 4096 20 de octubre 14:16 ..
-Rw ------- 1 andrew Andrs 18 de octubre 20 a 08:00. Bash_history
-Rw-r - r - 1 andrew Andrs 24 de octubre 20 14:16. Bash_logout
-Rw-r - r - 1 andrew Andrs 197 20 de octubre 07:59. Bash_prole
-Rw-r - r - 1 andrew Andrs 127 20 de octubre 07:57. Bashrc
lrwxrwxrwx 1 andrew Andrs 07 de octubre 20 8:01 ls -> / bin / ls
$ ls cuales
/ bin / ls
$ exit
Pgina 67
Esto funcion porque / bin estaba en el
CAMINO
antes invocamos ksh . Ahora vamos a cambiar el
CAMINO
y correr
rksh nuevo:
$ export PATH =.
$ / bin / rksh
$ / bin / ls
/ Bin / rksh: / bin / ls: restringido
$ exit
$ ln-s / bin / ls.
$ ls-la
total de 24
drwx ------ 2 andrew Andrs 4096 20 de octubre 08:01.
drwxr-xr-x 4 de raz raz 4096 20 de octubre 14:16 ..
-Rw ------- 1 andrew Andrs 18 de octubre 20 a 08:00. Bash_history
-Rw-r - r - 1 andrew Andrs 24 de octubre 20 14:16. Bash_logout
-Rw-r - r - 1 andrew Andrs 197 20 de octubre 07:59. Bash_prole
-Rw-r - r - 1 andrew Andrs 127 20 de octubre 07:57. Bashrc
lrwxrwxrwx 1 andrew Andrs 07 de octubre 20 8:01 ls -> / bin / ls
Conchas restringidos son increblemente fciles de instalar y pueden proporcionar acceso restringido mnima. Podran
no ser capaz de mantener alejados a los atacantes decididos, pero sin duda hacen que el trabajo de un usuario hostil mucho ms
difcil.
Pgina 68
Hack # 21. Hacer cumplir los lmites de usuarios y recursos Grupo
Haga usuarios hambrientos de recursos seguros no hacer caer todo el sistema.
Ya sea por un uso malintencionado o un deslizamiento involuntario, que tiene un usuario que su sistema hacia abajo
a paso de tortuga lenta utilizando demasiada memoria o tiempo de CPU no es divertido en absoluto. Una forma popular de limitar
el uso de recursos es usar el
ulimit
comando. Este mtodo se basa en una cscara de limitar sus procesos hijos,
y es difcil de usar cuando se quiere dar diferentes niveles de uso de los diferentes usuarios y grupos.
Otra forma, ms exible de limitar el uso de recursos es con el mdulo PAM
pam_limits
.
pam_limits
est precongurado en la mayora de los sistemas que tienen PAM [Hack # 17] instalado. Todo lo que debe
hay que hacer es editar / etc / security / limits.conf para congurar los lmites especcos para usuarios y grupos.
El limits.conf archivo de conguracin consta de entradas de una sola lnea que describen un solo tipo de lmite para un
usuario o grupo de usuarios. El formato general para una entrada es:
dominio tipo recurso valor
La
dominio
porcin especica a quien se aplica el lmite. Puede especicar usuarios individuales aqu por su nombre,
y los grupos pueden especicarse como prejo el nombre del grupo con un
@
. Adems, puede utilizar el
carcter comodn
*
aplicar el lmite global a todos los usuarios, excepto para el root. La
tipo
porcin de la
entrada especica si se trata de un
suave
o
duro
lmite de recursos. El usuario puede aumentar los lmites blandos, mientras que
lmites duros se pueden cambiar por root.
Puede especicar varios tipos de recursos para la
recurso
parte de la entrada. Algunos de los ms
los tiles son
cpu
,
memlock
,
nproc
, Y
fsize
. Estos le permiten limitar el tiempo de CPU, el total de locked-in
memoria, el nmero de procesos, y tamao de archivo, respectivamente. Tiempo de CPU se expresa en minutos y tamaos
estn en kilobytes. Otro lmite es til
maxlogins
, Que le permite especicar el nmero mximo
de inicios de sesin simultneos que estn permitidos.
Una caracterstica interesante de
pam_limits
es que se puede trabajar en conjunto con
ulimit
para permitir al usuario para aumentar su
limitar desde el lmite suave al lmite duro impuesta.
Vamos a tratar de una prueba rpida para ver cmo funciona. En primer lugar, vamos a limitar el nmero de archivos abiertos para el invitado de usuario
mediante la adicin de estas entradas para limits.conf :
invitado suave nole 1000
invitado duro nole 2000
Ahora el husped cuenta tiene un lmite exible de 1.000 archivos al mismo tiempo abiertos y un lmite duro de 2000. Vamos a
probarlo:
# su - Invitado
$ ulimit-a
el tamao del ncleo de archivos (Bloques,-c) 0
El tamao de segmento de datos (Kbytes,-d) ilimitado
tamao de archivo (Bloques,-f) ilimitado
max bloqueado memoria (Kbytes,-l) ilimitado
El tamao mximo de memoria (Kbytes,-m) ilimitado
archivos abiertos (-N) 1,000
tamao de la tubera (512 bytes,-p) 8
tamao de la pila (Kbytes,-s) 8192
tiempo de CPU (Segundo,-t) ilimitado
los procesos de usuario max (-U) 1024
memoria virtual (Kbytes,-v) ilimitado
$ ulimit-n 2000
$ ulimit-n
2000
Pgina 69
$ ulimit-n 2001
-Bash: ulimit: archivos abiertos: no se puede modicar lmite: Operacin no permitida
Ah lo tienen. Adems de abrir archivos, puede crear lmites de recursos para cualquier nmero de otros
recursos y aplicarlos a usuarios especcos o grupos enteros. Como se puede ver,
pam_limits
es bastante
potente y til, ya que no se basa en la cscara para la ejecucin.
Pgina 70
Hack # 22. Automatizar las actualizaciones del sistema
Parche agujeros de seguridad en el momento oportuno para evitar intrusiones.
Actualizacin y parchear sus sistemas en tiempo y forma es una de las cosas ms importantes que puede
hacer para ayudar a protegerlos de la avalancha de las vulnerabilidades de seguridad descubiertas recientemente. Desafortunadamente,
esta tarea a menudo es empujado al borde del camino en favor de las cuestiones "ms urgentes", como el rendimiento
tuning, mantenimiento de hardware y software de depuracin. En algunos crculos, es visto como una prdida de tiempo
y los gastos generales que no contribuye a la funcin principal de un sistema. Junto con la gestin
demandas para maximizar la produccin, la tarea de mantener un sistema de up-to-fecha es empujado a menudo an ms
abajo en la lista de tareas pendientes.
La actualizacin de un sistema puede ser muy repetitivo y lento si usted no est usando secuencias de comandos para
automatizarlo. Afortunadamente, la mayora de las distribuciones de Linux hacen sus paquetes actualizados disponibles para
descargar desde un sitio en lnea estndar, y puede supervisar ese lugar para los cambios y
detectar automticamente y descargar las nuevas actualizaciones cuando estn disponibles. Para demostrar cmo
hacer esto en una distribucin basada en RPM, usaremos AutoRPM (
http://www.autorpm.org
).
AutoRPM es un potente script en Perl que le permite supervisar varios sitios FTP para los cambios. Lo har
descargar automticamente los paquetes nuevos o modicados y, o bien instalarlos automticamente o que le avise de manera
que puede hacerlo. Adems de monitorear los sitios FTP individuales, tambin puede supervisar un grupo de espejo
sitios, para asegurarse de que sigue recibiendo las actualizaciones si el servidor FTP est ocupado. AutoRPM supervisar ocupado
Servidores FTP y realizar un seguimiento de cuntas veces las conexiones a ellos se han intentado. El uso de este
informacin, que asigna puntuaciones internos para cada uno de los sitios FTP congurados dentro de un grupo dado, con la
resultado que el servidor en la piscina que est disponible con ms frecuencia se comprobar primero.
Para utilizar AutoRPM, descargue el ltimo paquete e instalarlo de esta manera:
# rpm-ivh autorpm-3.3.3-1.noarch.rpm
Aunque un tarball tambin est disponible, la instalacin es un poco ms complicado que el tpico
hacer; make install
,
por lo que se recomienda que usted se pega a la instalacin desde el paquete RPM.
Por defecto AutoRPM est congurada para monitorizar los paquetes actualizados para la distribucin de Red Hat Linux,
pero es probable que desee cambiar esta opcin para utilizar Fedora u otra distribucin basada en RPM. Para ello,
abrir el archivo de conguracin AutoRPM, / etc / autorpm.d / autorpm.conf , y encontrar la siguiente seccin:
# # # # # # # # # # # # # # # # # # # # # # # # Inicio de Red Hat Linux # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Esto determina automticamente la versin de Red Hat Linux
# Usted tiene ... puede comentar esto y denir usted mismo
# Si desea
Eval_Var ("RHVersion", "sed 's / \ (Red Hat Linux \) \? Release \ ([^] * \) (. *) / \ 2 /' / etc/redhat-
liberar ");
# SET_VAR ("RHVersion", "9.0");
# Busque las actualizaciones ociales de Red Hat
# (No se instalar automticamente nada menos que edite el archivo)
CONFIG_FILE ("/ etc / autorpm.d / redhat-updates.conf");
# # # # # # # # # # # # # # # # # # # # # # # # # # END Red Hat Linux # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Comente la
Eval_var
,
SET_VAR
, Y
CONFIG_FILE
lneas. En la siguiente seccin, elimine la
Eval_Var
y
CONFIG_FILE
lneas para que sea como ste:
# # # # # # # # # # # # # # # # # # # # # # # # Inicio de Fedora Linux # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Esto determina automticamente la versin de Fedora Linux
Eval_Var ("FedoraVersion", "rpm-q fedora-release | awk-F '' {'print $ 3'}");
Pgina 71
# Busque las actualizaciones ociales de Fedora
# (No se instalar automticamente nada menos que edite el archivo)
CONFIG_FILE ("/ etc / autorpm.d / fedora-updates.conf");
# # # # # # # # # # # # # # # # # # # # # # # # # # END Fedora Linux # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Despus de que hayas hecho esto, se puede aadir una entrada crontab / etc / autorpm.d / autorpm.cron para programar
AutoRPM para funcionar en un intervalo regular. Cuando se ejecuta, se descargar automticamente cualquier pendiente
actualizaciones.
Otra forma de realizar actualizaciones automticas es utilizar el rico programa. Por defecto, yum ambas descargas
e instala las actualizaciones, pero puede cambiar este comportamiento mediante la instalacin del downloadonly plug-in
(
http://linux.duke.edu/projects/yum/download/yum-utils/
), Causando am saltarse la instalacin
paso. A continuacin, puede utilizar el comando siguiente para descargar las actualizaciones que estn disponibles:
# am - downloadonly-y update
Ponga este comando en una entrada crontab para que se ejecute en un intervalo regular. Entonces, cuando usted ha
revisado las actualizaciones que ha descargado, puede utilizar el habitual
yum update
comandos para instalar
ellos.
Usted puede lograr resultados similares en los sistemas basados en Debian con
apt-get upgrade-d-y
. Este comando
descarga las actualizaciones pendientes a los paquetes que haya instalado. Cuando te hayas decidido a instalar
ellos, puede hacerlo mediante la ejecucin
apt-get upgrade
.
Como puede ver, hay muchas maneras que usted puede mantener un sistema actualizado con la ltima ja
paquetes. Decida lo que decida hacer, es importante estar al da con los parches del sistema operativo
debido a las revisiones de seguridad que contienen. Si usted se atrasa, usted es un blanco mucho ms fcil para un
atacante.
Pgina 72
Captulo 2. Ventanas de seguridad de host
Hacks 23 - 36
Este captulo muestra algunas maneras de mantener su sistema de Windows-actualizada y segura, con lo cual
la red un lugar ms seguro para trabajar (y divertirse). Aunque muchos pueden burlarse de la mencin de
De Windows y la seguridad en la misma frase, en realidad se puede hacer un sistema de Windows con bastante segura
sin demasiado esfuerzo.
Una de las principales razones de que Windows tiene una mala reputacin es el estado pobremente administrada en la que
Mquinas Windows parecen mantenerse. La reciente avalancha de ataques de gusanos y virus que han trado
por muchos una red muestra que esto es cierta. Mucho de esto se remonta a la "facilidad" de
administracin que Windows parece proporcionar al mantener con ecacia el administrador de Windows cabo
del bucle sobre el funcionamiento interno de su entorno (y de control de arrebatar de las manos).
En este captulo se intenta remediar ese problema hasta cierto punto al mostrar formas de ver exactamente lo que
el servidor est haciendo realmente. Si bien esto puede parecer viejo sombrero a un administrador de sistemas Unix, obtener detalles sobre
puertos abiertos y servicios en ejecucin a menudo es un concepto nuevo para el administrador promedio de Windows.
Adems, este captulo muestra cmo deshabilitar algunas "caractersticas" de Windows, como el reparto de todos sus
los archivos de forma automtica y truncar los archivos de registro. Usted tambin aprender cmo habilitar algunos de los de auditora y
registrar caractersticas de Windows, para darle la alerta temprana de posibles incidentes de seguridad (en lugar de
a la espera de la llamada telefnica de alguien enojado en el extremo equivocado de un ataque de denegacin de servicio
procedente de la red).
En este captulo tambin se explica cmo usar y administrar el Sistema de cifrado de archivos de Windows (EFS) para
el cifrado de archivos y carpetas, cmo congurar las actualizaciones automticas en una red de computadoras, y cmo
para comprobar si hay cuentas que tienen contraseas que nunca vencen.
Hack # 23. Compruebe servidores de parches aplicados
Asegrese de que sus servidores Windows tienen los ltimos parches instalados.
Mantener una red de sistemas remendados y hasta al da es bastante difcil en Unix, pero puede ser incluso ms
difcil con los sistemas Windows. La falta de capacidad integrado de scripting y acceso remoto robustos
hace que Windows no aptos para la automatizacin. Sin embargo, incluso antes de tratar de actualizar su
sistemas, lo que necesita saber que se han aplicado cambios a cada sistema; de lo contrario, es posible que
perder el tiempo y el esfuerzo de sistemas que no lo necesitan actualizar.
Claramente, este problema se hace ms difcil, ya que el nmero de sistemas que necesitan ser gestionados aumentos.
Usted puede evitar gran parte del trabajo adicional de los sistemas de actualizacin de forma manual mediante el uso de la HFNetChk herramienta,
que era originalmente un programa independiente de Shavlik Technologies. Ahora es una parte de Microsoft de
Baseline Security Analyzer (
http://www.microsoft.com/technet/security/tools/mbsa1/default.mspx
)
y est disponible a travs de su interfaz de lnea de comandos, mbsacli.exe .
No slo puede HFNetChk remotamente comprobar el estado de Windows Server 2003 y Windows
XP/2000/NT, pero tambin puede comprobar si las actualizaciones crticas para IIS, SQL Server, Exchange Server,
Media Player e Internet Explorer se han aplicado. A pesar de que slo se puede comprobar el estado de actualizacin de
un sistema (y no en realidad llevar el sistema de up-to-date), sigue siendo una herramienta de ahorro de tiempo inestimable.
HFNetChk funciona mediante la descarga de un archivo XML rmado y comprimido de Microsoft que contiene
informacin sobre todas las actualizaciones disponibles en la actualidad. Esta informacin incluye las sumas de comprobacin y versiones de
archivos incluidos en cada actualizacin, as como las claves del registro modicadas por cada actualizacin. Adicional
Pgina 73
la informacin de dependencia tambin se incluye.
Al escanear un sistema, HFNetChk primero escanea el Registro para las claves que estn asociados con la
ms juego de actualizaciones disponibles para la conguracin actual del sistema. Si alguno de estos Registro
teclas no estn presentes o no coinciden con lo que est contenido en el archivo XML, lo marca la actualizacin como no tener
sido instalado. Si la clave de registro para obtener una actualizacin est presente y que coincide con la informacin en el XML
archivo, HFNetChk luego intenta comprobar si los archivos especicados en la informacin de actualizacin son
presente en el sistema y si sus versiones y sumas de comprobacin partido.
Si alguna de las comprobaciones falla, HFNetChk banderas la actualizacin. Todos los cambios de pabelln se muestran entonces en un
informar, junto con una referencia al artculo de Microsoft Knowledge Base, con ms informacin sobre la
actualizacin especca.
Usando HFNetChk
Para instalar HFNetChk en su sistema, usted primero tiene que descargar e instalar el Microsoft Baseline
Analizador de Seguridad. Para ejecutar HFNetChk , abra un smbolo del sistema y cambie al directorio que fue
creado durante la (instalar C: \ Archivos de programa \ Microsoft Baseline Security Analyzer es el valor predeterminado).
Para comprobar el estado de actualizacin del sistema local, ejecute este comando:
C: \ Archivos de programa \ Microsoft Baseline Security Analyzer> mbsacli / hf
Microsoft Baseline Security Analyzer
Versin 1.2.1 (1.2.4013.0)
(C) Copyright 2002-2004 Microsoft Corporation. Todos los derechos reservados.
HFNetChk desarrollado para Microsoft Corporation por Shavlik Technologies, LLC.
(C) Copyright 2002-2004 Shavlik Technologies, LLC. www.shavlik.com
Utilice el modicador-v para ver los detalles de
Mensajes de parche no se encuentra, de advertencia y de nota
Escaneo BLACKBIRD
El intento de obtener CAB desde http://go.microsoft.com/fwlink/?LinkId=18922
XML cargado correctamente.
BLACKBIRD escanear Hecho
----------------------------
MIRLO (192.168.0.67)
----------------------------
* Windows XP SP2 PROFESIONAL
Nota MS05-009 887472
Parche No se ha encontrado MS06-021 916281
Parche No se ha encontrado MS06-022 918439
Parche No se ha encontrado MS06-025 911280
Parche No se ha encontrado MS06-032 917953
La primera columna indica por qu el cheque por una determinada actualizacin fall. La segunda columna muestra que
actualizacin fall el cheque, y la tercera columna enumera una Microsoft Knowledge Base
(
http://support.microsoft.com
) Nmero del artculo que se puede consultar para obtener ms informacin sobre el
Solucionado el problema por el que se actualizan en particular.
Si desea ms informacin acerca de por qu un cheque en particular fall, puede ejecutar el comando con la
-V
Switch (detallado). Aqu estn los resultados del comando anterior, esta vez con el interruptor de verbose:
C: \ Archivos de programa \ Microsoft Baseline Security Analyzer> mbsacli / hf-v
Microsoft Baseline Security Analyzer
Pgina 74
Versin 1.2.1 (1.2.4013.0)
(C) Copyright 2002-2004 Microsoft Corporation. Todos los derechos reservados.
HFNetChk desarrollado para Microsoft Corporation por Shavlik Technologies, LLC.
(C) Copyright 2002-2004 Shavlik Technologies, LLC. www.shavlik.com
Escaneo BLACKBIRD
El intento de obtener CAB desde http://go.microsoft.com/fwlink/?LinkId=18922
XML cargado correctamente.
BLACKBIRD escanear Hecho
----------------------------
MIRLO (192.168.0.67)
----------------------------
* Windows XP SP2 PROFESIONAL
Nota MS05-009 887472
Por favor rerase a 306.460 para una explicacin detallada.
Parche No se ha encontrado MS06-021 916281
Versin del archivo es menor de lo esperado.
[C: \ WINDOWS \ system32 \ browseui.dll, 6.0.2900.2861 <6.0.2900.2904]
Parche No se ha encontrado MS06-022 918439
Versin del archivo es menor de lo esperado.
[C: \ WINDOWS \ system32 \ jgdw400.dll, 82.0.0.0 <106.0.0.0]
Parche No se ha encontrado MS06-025 911280
Versin del archivo es menor de lo esperado.
[C: \ WINDOWS \ system32 \ rasmans.dll, 5.1.2600.2180 <5.1.2600.2908]
Parche No se ha encontrado MS06-032 917953
Versin del archivo es menor de lo esperado.
[C: \ WINDOWS \ system32 \ drivers \ tcpip.sys, 5.1.2600.2827 <
5.1.2600.2892]
Despus de aplicar las actualizaciones de la lista, debera ver algo como esto:
Escaneo BLACKBIRD
.............................
BLACKBIRD escanear Hecho
----------------------------
SAQUEO (192.168.0.67)
----------------------------
* Windows XP SP2 PROFESIONAL
Informacin
Todas las revisiones necesarias se han aplicado.
Necesita privilegios de administrador para escanear el sistema local. Del mismo modo, permite escanear un equipo remoto,
Necesitar privilegios de administrador en ese equipo. Hay varias maneras de escanear las mquinas remotas.
Para escanear un solo sistema remoto, puede especicar un nombre de NetBIOS con el
-H
interruptor o una direccin IP
con el
-I
cambiar.
Por ejemplo, para escanear la mquina SAQUEO desde otra mquina, utilice uno de estos dos
comandos:
mbsacli / hf-h SAQUEO
mbsacli / hf-i 192.168.0.65
Tambin puede escanear un puado de sistemas adicionales, mediante su inclusin en la lnea de comandos, con comas
separando cada nombre NetBIOS o la direccin IP.
Pgina 75
Tenga en cuenta que, adems de tener privilegios de administrador en la mquina remota, tambin debe garantizar
que no ha prohibido las acciones por defecto [Hack # 32] . Si las partes administrativas tienen
sido deshabilitado, HFNetChk no ser capaz de detectar los archivos adecuados en el sistema remoto y,
en consecuencia, no ser capaz de determinar si se aplic una actualizacin.
Si desea escanear un gran grupo de sistemas, usted tiene varias opciones. Uso de la
-Fh
opcin, puede
especicar un archivo que contenga hasta 256 nombres de host NetBIOS (uno en cada lnea) que se analizarn. Usted puede hacer
lo mismo con las direcciones IP, utilizando el
-FIP
opcin. Tambin puede especicar los rangos de direcciones IP
mediante el uso de la
-R
opcin.
Por ejemplo, podra ejecutar una orden como la de escanear sistemas con direcciones IP en el rango
192.168.1.23 a 192.168.1.172:
mbsacli / hf-r 192.168.1.123 - 192.168.1.172
Todas estas opciones son muy exibles, y se puede utilizar en cualquier combinacin para especicar qu
se analizarn los sistemas remotos.
Adems de especicar sistemas remotos por su nombre NetBIOS y la direccin IP, puede escanear los sistemas de
nombre de dominio mediante el uso de la
-D
opcin, o puede escanear todo el segmento de red local mediante el
-
n
opcin de lnea de comandos.
Al escanear sistemas desde una estacin de trabajo personal, la
-U
y
-P
opciones pueden resultar tiles. Estos
permiten especicar un nombre de usuario y contrasea que se utiliza para acceder a los sistemas remotos. Estos
interruptores son particularmente tiles si usted normalmente no inicia una sesin con la cuenta de Administrador. (La
cuenta que se especica con la
-U
opcin, por supuesto, necesita tener privilegios de administrador en
las mquinas remotas siendo escaneados.)
Adems, si est escaneando un gran nmero de sistemas, es posible que desee utilizar el
-T
opcin. Esto permite
especicar el nmero de subprocesos que utiliza el escner, y el aumento de este valor generalmente acelera
escaneo de hasta. Los valores vlidos son de
1
a
128
; el valor por defecto es
64
.
Si va a escanear ms de una mquina, una enorme cantidad de datos, simplemente se vierten a la
pantalla. Utilice el
-F
opcin para especicar un archivo para almacenar los resultados de la exploracin en el, y verlo en su tiempo libre
utilizando un editor de texto.
HFNetChk es una herramienta exible y se puede utilizar para vericar los estados de actualizacin de un gran nmero de
mquinas en un lapso muy corto de tiempo. Es especialmente til cuando un nuevo gusano ha aparecido en el
escena y lo que necesita saber si todos sus sistemas estn actualizados en sus parches.
Vea tambin
Preguntas ms frecuentes sobre el Microsoft Security Network Hotx Checker ( Hfnetchk.exe )
Herramienta: Knowledge Base el artculo 305385, en
http://support.microsoft.com/default.aspx?
scid = kb; EN-US;
Pgina 76
Hack # 24. Utilice Directiva de grupo para congurar las actualizaciones automticas
Utilice Directiva de grupo para simplicar la conguracin de Actualizaciones automticas en un Active Directory
medio ambiente.
Conguracin de Actualizaciones automticas es un montn de trabajo si tiene que hacerlo por separado en cada mquina en
su red. Afortunadamente, en un entorno de Active Directory, puede usar la directiva de grupo para simplicar
el trabajo.
En primer lugar, abrir un objeto existente de directiva de grupo (GPO), como la Directiva de dominio predeterminada o crear una nueva
GPO y vincularlo al dominio adecuado, la unidad organizativa (OU), o en el sitio. A continuacin, aadir el wuau.adm
plantilla para el GPO para que la conguracin de directiva de grupo para las actualizaciones automticas se aadirn a su
GPO. Esto se hace de la siguiente manera.
TIP
Estos pasos no son necesarios si usted tiene Windows Server 2003.
Comience por la expansin de Conguracin del equipo para mostrar las plantillas administrativas. A continuacin, haga clic en
Plantillas administrativas, seleccione Agregar / Quitar plantilla, haga clic en Agregar, seleccione wuau.adm de la lista de
plantillas en la carpeta% Windir% \ Inf carpeta, haga clic en Abrir y, a continuacin, haga clic en Cerrar.
Ahora, congure la conguracin de GPO para actualizaciones automticas mediante la expansin del ordenador
Conguracin ! Plantillas administrativas ! Componentes de Windows y seleccionando de Windows Update en
el panel de la izquierda, como se muestra en la Figura 2-1 .
Figura 2-1. Uso de la directiva de grupo para congurar las actualizaciones automticas
Vamos a profundizar en lo que los diversos ajustes en la Figura 2-1 signican. La primera opcin, "Conguracin automtica
Actualizaciones ", le permite realizar la conguracin bsica de las actualizaciones automticas de los equipos del dominio,
OU o sitio al que el GPO est vinculado. Las opciones aqu son las mismas que las opciones disponibles cuando
congurar la funcin manualmente mediante la utilidad Actualizaciones automticas del Panel de control (Windows
Pgina 77
2000) o de la utilidad del sistema (Windows Server 2003 y Windows XP). El siguiente ajuste, "Especicar intranet
Actualizacin de Microsoft ubicacin del servicio, "se aplica slo si usted planea usar Software Update Services (SUS)
implementar las actualizaciones.
La opcin "Reprogramar instalaciones programar actualizaciones automticas" determina el tiempo automtico
Las actualizaciones se esperar despus de reiniciar el equipo antes de instalar las actualizaciones que ya se han
descargado y estn ms all de la hora programada para la instalacin. El valor oscila entre
1
a
60
(minutos);
el valor predeterminado es
1
Si el ajuste no est congurado y
5
cuando est habilitada la poltica. La desactivacin de esta poltica
aplaza la instalacin de actualizaciones pendientes hasta el prximo da de instalacin programada y el tiempo.
Por ltimo, "No reiniciar automticamente para instalaciones de actualizaciones automticas programadas" determina si el
usuario ha iniciado la sesin ser registrada por la fuerza fuera con el n de completar el proceso de instalacin cuando un reinicio
se requiere. Al habilitar esta poltica signica que las mquinas no se pueden reiniciar la fuerza. Si bien esto puede
parece una buena idea (para que los usuarios no van a perder su trabajo), tiene un inconveniente: las actualizaciones automticas
no ser capaz de revisar el sitio web de Windows Update si hay nuevas actualizaciones hasta que se reinicie la mquina.
Al activar estas opciones de directiva anular cualquier conguracin de actualizaciones automticas que se hizo
localmente utilizando el Panel de control y le impedir realizar dichos cambios a nivel local, as como un
administrador. Sin embargo, el cambio de esta conguracin de directiva de nuevo a
No congurado
restaurar el manual
ajustes congurados previamente para actualizaciones automticas (aunque se requiere un reinicio). Y mientras
cambios hechos a estas polticas se aplican automticamente a los equipos cliente cada 90 minutos (ms un
desplazamiento de hasta 30 minutos al azar), se puede probar la conguracin inmediatamente forzando una actualizacin de la directiva
con el comando
secedit / refreshpolicy machine_policy
en Windows 2000 o
gpupdate / force
en
Windows Server 2003.
Algunas recomendaciones
Si desea congurar diferentes polticas de Actualizaciones automticas para diferentes usuarios o equipos,
tiene dos opciones: (1) crear varios GPO, vincular cada uno a una unidad organizativa diferente, y los usuarios de lugar y
ordenadores en dichas unidades en consecuencia; o (2) ltrar la conguracin de GPO para evitar su herencia por
determinados usuarios, equipos o grupos.
Tambin puede comprobar el registro de seguridad en el Visor de sucesos si quieres ver si la mquina tiene
sido reiniciado para instalar las actualizaciones programadas. Busque los siguientes identicadores de sucesos:
Identicador de sucesos 21
"Es necesario reiniciar: Para completar la instalacin de las actualizaciones siguientes, el equipo debe ser
reiniciado. Hasta que este sistema se haya reiniciado, Windows no puede buscar o descargar la nueva
actualizaciones ".
Identicador de sucesos 22
"Es necesario reiniciar: Para completar la instalacin de las actualizaciones siguientes, el equipo ser
reiniciado dentro de los cinco minutos. Hasta que este sistema se haya reiniciado, Windows no puede buscar
o descargar nuevas versiones ".
En profundidad
Hay otra poltica que controla cmo funciona Actualizaciones automticas, pero no es encontrado en Informtica
Conguracin. En lugar de ello, se encuentra en Conguracin de usuario ! Plantillas administrativas ! Ventanas
Componentes de Windows Update ! ! "Quitar el acceso a todas las caractersticas de Windows Update."
Pgina 78
Esta poltica evita que el usuario ha iniciado sesin actualmente se abra el sitio web de Windows Update en
Internet Explorer, con el n de descargar e instalar manualmente las actualizaciones en su mquina. Cuando el usuario
intentos de acceso a la URL
http://windowsupdate.microsoft.com
, Aparece una pgina de "Acceso denegado",
explicando que la poltica le impide usar el sitio. Al habilitar esta poltica tambin tiene el efecto
de la prevencin de las actualizaciones automticas de los usuarios que notican cuando hay nuevas actualizaciones estn listas para instalar. En otra
Es decir, hay un icono de noticacin aparecer en el rea de estado para informar al usuario que ha entrado en la existencia de actualizaciones
listo para instalar. Incluso los administradores locales de la mquina se ven afectados por esta poltica, ya que son de dominio
administradores.
As que, por qu querras usar esta poltica? A pesar de que los usuarios no pueden visitar o interactuar con
el sitio de Windows Update, no impide las actualizaciones automticas de funcionar si la funcin ha sido
congurado en el nivel de equipo mediante las polticas discutidas en la seccin anterior. Esto es porque
este ajuste es una directiva por usuario, no uno por equipo. En otras palabras, slo afecta a los usuarios; no lo hace
afectar a la conguracin realizada a nivel de mquina.
Al habilitar esta poltica podra ser una buena idea, ya que evita que los usuarios intenten descargar y
instalar las actualizaciones por su cuenta, incluso si no tienen privilegios administrativos.
TIP
Microsoft dice que esta poltica slo funciona en Windows XP y Windows Server 2003, pero en mi experiencia, tambin trabaja en
De Windows 2000.
Si bien esta poltica impide que los usuarios utilicen el sitio de Windows Update, todava deja los de Windows
Actualizar icono en el men Inicio, tentando a los usuarios explorar y ver lo que hace. Usted puede quitar este
icono en el men Inicio, permitiendo otra poltica: Conguracin de usuario ! Administrativo
Plantillas ! Inicio y barra de tareas ! "Inhabilitar y quitar vnculos a Windows Update."
Esto elimina toda tentacin para que los usuarios tratan de mantener sus mquinas en marcha hasta la fecha por s mismos.
Administradores haran bien en utilizar este tipo de polticas y para explorar las restricciones similares en la actividad del usuario
proporcionada por la directiva de grupo.
Mitch Tulloch
Pgina 79
Hack # 25. Lista de archivos abiertos y sus procesos de Ser propietario
Busque actividad sospechosa monitoreando accesos a cheros.
Suponga que usted est buscando en la lista de procesos en el administrador de tareas de un da despus de darse cuenta de alguna extraa
comportamiento en su estacin de trabajo, y te das cuenta de un proceso que no ha visto antes. Bueno, qu hacer
ahora? Si se ejecuta algo distinto de Windows, que podra tratar de determinar lo que el
proceso est haciendo mirando los archivos que tiene abiertos. Pero Windows no proporciona una herramienta para hacer esto.
Afortunadamente, existe una solucin de terceros. Sysinternals hace una excelente herramienta llamada Mango, que es
disponibles gratuitamente en
http://www.sysinternals.com/Utilities/Handle.html
. Mango es mucho como lsof
[Hack # 8] , Pero puede enumerar muchos otros tipos de recursos operativos, incluyendo temas, acontecimientos y
semforos. Tambin puede mostrar claves de registro abiertas y
IOCompletion
estructuras.
Correr
manejar
sin ningn tipo de lnea de comandos listas de argumentos de todo archivo abierto en el sistema. Usted
Tambin puede especicar un nombre de archivo, que se enumeran los procesos que actualmente tienen acceso a ella, escribiendo el siguiente:
C:> mango
nombre de archivo
O usted puede enumerar slo los archivos que se abren por un proceso, en este caso, Internet Explorer en particular:
C:> mango-p iexplore
Maneje v2.10
Copyright (C) 1997-2003 Mark Russinovich
Sysinternals - www.sysinternals.com
-------------------------------------------------- --------------------------
IEXPLORE.EXE PID: 688 SAQUEO \ andrew
98: Seccin \ BaseNamedObjects \ MTXCOMM_MEMORY_MAPPED_FILE
9c: Seccin \ BaseNamedObjects \ MtxWndList
12c: Seccin \ BaseNamedObjects \ __R_0000000000d4_SMem_ _
18c: Archivo C: \ Documents and Settings \ andrew \ Local Settings \ Temporary Internet
Files \ Content.IE5 \ index.dat
198: La Seccin \ BaseNamedObjects \ C: _Documents y Settings_andrew_Local
Settings_Temporary Internet Files_Content.IE5_index.dat_3194880
1a0: Archivo C: \ Documents and Settings \ andrew \ Cookies \ index.dat
1a8: Archivo C: \ Documents and Settings \ andrew \ Local Settings \ Historia \ History.IE5 \
index.dat
1ac: Seccin \ BaseNamedObjects \ C: _Documents y Settings_andrew_Local
Settings_History_History.IE5_index.dat_245760
1B8: Seccin \ BaseNamedObjects \ C: _Documents y
Settings_andrew_Cookies_index.dat_81920
228: La Seccin \ BaseNamedObjects \ UrlZonesSM_andrew
2a4: Seccin \ \ BaseNamedObjects SENS Informacin cach
540: Archivo C: \ Documents and Settings \ andrew \ Application
Data \ Microsoft \ SystemCerticates \ Mis
574: Archivo C: \ Documents and Settings \ All Users \ Desktop
5B4: Seccin \ BaseNamedObjects \ mmGlobalPnpInfo
5 cc: Archivo C: \ WINNT \ system32 \ mshtml.tlb
614: La Seccin \ BaseNamedObjects \ WDMAUD_Callbacks
640: Archivo C: \ WINNT \ system32 \ Macromed \ Flash \ Flash.ocx
648: Archivo C: \ WINNT \ system32 \ STDOLE2.TLB
6A4: Archivo \ DFS
6B4: Archivo C: \ Documents and Settings \ andrew \ Desktop
6C8: Archivo C: \ Documents and Settings \ andrew \ Conguracin local \
Archivos temporales de Internet \ Content.IE5 \ Q5USFST0 \ softwareDownloadIndex [1]. Htm
70c: Seccin \ BaseNamedObjects \ MSIMGSIZECacheMap
758: Archivo C: \ WINNT \ system32 \ iepeers.dll
Pgina 80
75c: Archivo C: \ Documents and Settings \ andrew \ Desktop
770: La Seccin \ BaseNamedObjects \ RotHintTable
Si usted desea encontrar el proceso de Internet Explorer que es propietaria de un recurso con un nombre parcial de
manejar
,
usted puede escribir lo siguiente:
C:> mango mango-p iexplore
Maneje v2.10
Copyright (C) 1997-2003 Mark Russinovich
Sysinternals - www.sysinternals.com
IEXPLORE.EXE PID: 1396 C: \ Documents and Settings \ andrew \ Local Settings \ Temporary
Internet Files \ Content.IE5 \ H1EZGFSH \ mango [1]. Htm
Adems, si desea incluir todos los tipos de recursos, puede utilizar el
-Un
opcin. Mango es todo un
herramienta de gran alcance, y usted puede mezclar cualquiera de sus opciones de lnea de comandos para reducir rpidamente su
buscar y encontrar exactamente lo que quieres.
Pgina 81
Hack # 26. Lista de Servicios en ejecucin y puertos abiertos
Compruebe que los servicios de acceso remoto de la forma en que Windows.
Unix hace que sea rpido y fcil de ver qu puertos en un sistema estn abiertos, pero cmo se puede hacer eso en
De Windows? Bueno, con FPort de Foundstone
(
http://www.foundstone.com/resources/proddesc/fport.htm
), Es tan rpido y fcil como ejecutar bueno
viejo
netstat
.
FPort tiene algunas opciones de lnea de comandos, que se reeren en su mayora a especicar cmo desea la salida
ordenados. Por ejemplo, si desea que la salida ordenada por nombre de la aplicacin, puede utilizar
/ A
; si lo quieres
ordenados por ID del proceso, puede utilizar
/ I
. Si bien puede no ser tan lleno de caractersticas que la versin Unix de
netstat [Hack # 8] , FPort denitivamente se hace el trabajo.
Para obtener una lista de todos los puertos que estn abiertos en su sistema, simplemente escriba
fport
. Si desea que la lista sea
ordenados por el nmero de puerto, utilice el
/ P
cambiar:
C:> fport / p
FPort v2.0 - Proceso de TCP / IP Port Mapper
Derechos de autor 2000 por Foundstone, Inc.
http://www.foundstone.com
Pid Proceso Puerto Proto Sendero
432 svchost -> 135 TCP C: \ WINNT \ system32 \ svchost.exe
8 Sistema -> 139 TCP
8 Sistema -> 445 TCP
672 MSTask -> 1025 TCP C: \ WINNT \ system32 \ MSTask.exe
8 Sistema -> 1028 TCP
8 Sistema -> 1031 TCP
1116 navapw32 -> 1035 TCP C: \ PROGRA1 \ NORTON1 \ Navapw32.exe
788 svchost -> 1551 TCP C: \ WINNT \ system32 \ svchost.exe
788 svchost -> 1553 TCP C: \ WINNT \ system32 \ svchost.exe
788 svchost -> 1558 TCP C: \ WINNT \ system32 \ svchost.exe
1328 svchost -> 1565 TCP C: \ WINNT \ System32 \ svchost.exe
8 Sistema -> 1860 TCP
1580 masilla -> 3134 TCP C: \ WINNT \ putty.exe
772 WinVNC -> 5800 TCP C: \ Archivos de programa \ TightVNC \ WinVNC.exe
772 WinVNC -> 5900 TCP C: \ Archivos de programa \ TightVNC \ WinVNC.exe
432 svchost -> 135 UDP C: \ WINNT \ system32 \ svchost.exe
8 Sistema -> 137 UDP
8 Sistema -> 138 UDP
8 Sistema -> 445 UDP
256 LSASS -> 500 UDP C: \ WINNT \ system32 \ lsass.exe
244 servicios -> 1027 UDP C: \ WINNT \ system32 \ services.exe
688 IEXPLORE -> 2204 UDP C: \ Archivos de programa \ Internet Explorer \ iexplore.exe
1396 IEXPLORE -> 3104 UDP C: \ Archivos de programa \ Internet Explorer \ iexplore.exe
256 LSASS -> 4500 UDP C: \ WINNT \ system32 \ lsass.exe
Tenga en cuenta que algunos de los procesos enumerados, tales como
navapw32
,
masilla
, Y
IEXPLORE
-No parecen ser
servicios. Estos se muestran en la salida porque FPort enumera todos los puertos abiertos, puertos abiertos no slo que son
escuchando.
Aunque
fport
no es tan potente como algunos de los comandos disponibles en otros sistemas operativos, es
sigue siendo una herramienta valiosa, rpido, y fcil de usar, y una gran adicin a Windows.
Pgina 82
Hack # 27. Habilitar la auditora
Registrar la actividad sospechosa de ayudar a las intrusiones al contado.
Windows incluye algunas caractersticas de auditora de gran alcance, pero, por desgracia, no siempre estn habilitadas.
El uso de estas capacidades, puede supervisar inicios de sesin fallidos, eventos de administracin de cuentas, los accesos a cheros,
el uso de privilegios, y ms. Tambin puede registrar cambios en las polticas de seguridad, as como los eventos del sistema.
Para habilitar la auditora en cualquiera de estas reas, busque y haga doble clic en el icono Herramientas administrativas en
el panel de control. Ahora encuentre y haga doble clic en el icono Directiva de seguridad local. Ampliar el local
Polticas nodo del rbol, y usted debera ver una pantalla como la que se muestra en la Figura 2-2 .
Figura 2-2. La conguracin de directiva de auditora en el applet Conguracin de seguridad local
Usted puede ir a travs de cada una de las polticas de auditora y vericar si se registran xitos o fracasos de cada
escriba. Para ello, haga doble clic en la directiva que desea modicar, que se encuentra en el panel derecho de la ventana.
Despus de hacer doble clic, debera ver un cuadro de dilogo similar a Figura 2-3 .
Figura 2-3. El dilogo "sucesos de inicio de auditora"
Dejando de auditora fuera es similar a no registrar nada en absoluto, por lo que debe habilitar la auditora para todos
Pgina 83
polticas. Una vez que haya habilitado la auditora de una poltica en particular, usted debe comenzar a ver los registros de la
de eventos se registran cuando se produce un evento de auditora en particular. Por ejemplo, una vez que se ha activado el inicio de sesin de eventos
auditora, usted debe comenzar a ver las entradas de los xitos y fracasos de inicio de sesin en la seguridad del sistema
registro de eventos.
Pgina 84
Hack # 28. Enumerar programas ejecutados automticamente
Tome el control de su sistema mediante la bsqueda de programas que Windows se inicia automticamente.
Uno de los muchos problemas que enfrentan los usuarios de Windows es ser capaz de realizar un seguimiento de todas las ventanas mtodos
utiliza para iniciar automticamente los programas en el arranque del sistema y cuando un usuario inicia sesin Por supuesto, todos los programas
en de un usuario de inicio de la carpeta se ponen en marcha de forma automtica cuando el usuario inicia sesin las claves del Registro
servicios del sistema de control, las tareas programadas, y de Internet Explorer add-ons son slo algunos de los otros
cosas que pueden causar un programa se inicie automticamente.
El ataque de spyware se ha convertido en importante ser capaz de averiguar exactamente lo que est siendo
puso en marcha de forma automtica en su sistema y lo que est haciendo que se pondr en marcha. Por lo menos, encontrar
por qu un programa se inicia de forma automtica puede ser una molestia menor. Muchos paquetes de software se instalan
complemento utilidades que se inician automticamente y deshabilitar estos es generalmente fcil de hacerlo. Sin embargo,
spyware puede ser mucho ms difcil de tratar, ya que a menudo utiliza Ubicaciones del Registro ms oscuros a
lanzarse.
Debido a que los paquetes de software espa a menudo lanzan a travs de ms de una va, pueden ser difciles de eliminar. Si
nota algo extrao en un lugar y quita, usted encontrar a menudo que hay una entrada enterrada
otro lugar en lo profundo de la Secretara sistema que sea deshace sus intentos de eliminar la
software o intentos de arranque el pedazo ilcito de software. Para eliminar por completo a ti mismo de la
spyware, es necesario eliminar todo rastro de ella en una sola toma.
Usted probablemente ha llegado la idea por ahora, pero la eliminacin total de un paquete de software espa puede ser difcil
porque todas estas diferentes vas estn enterrados profundamente dentro del Registro del sistema. Este problema es
agravado por el hecho de que los errores cometidos al editar el registro a menudo puede dejar un sistema, ya sea
parcial o totalmente inoperable. Por suerte, algunos programas pueden ayudar a rastrear todos los programas
que se ejecutan automticamente y le mostrar los lugares de registro que estn causando que sean
ejecutado.
Uno de estos programas es Autoruns (
http://www.sysinternals.net/Utilities/Autoruns.html
). No slo
Qu vamos a encontrar los programas, sino que tambin le permite desactivar fcilmente. Para instalar Autoruns,
descargar el . zip archivo desde el sitio Sysinternals y luego extraer su contenido a una adecuada
directorio (por ejemplo, C: \ Archivos de programa \ Autoruns ).
A continuacin, inicie autoruns.exe . Despus de aceptar el contrato de licencia, debera ver la ventana de muestra
en la Figura 2-4 .
Pgina 85
Figura 2-4. Autoruns exhiben ayudantes de Internet Explorer
Como puede ver, la interfaz Autoruns es bastante simple. Las chas en la parte superior de la ventana le permiten
ltrado por el mtodo de ejecucin automtica. La cha Todo, por supuesto, muestra todo de forma automtica
elementos ejecutados, mientras que la cha Inicio de sesin muestra los elementos que se ejecutan al iniciar la sesin gura 2-4
muestra el contenido de la pestaa de Internet Explorer, que muestra las cooperadoras complementos cargados por Internet
Explorador. La pestaa de Internet Explorer es especialmente til para la localizacin de las barras de herramientas del navegador y otros
piezas de software que pueden ser utilizados para monitorear su navegacin por la web.
Si usted siente que usted est mirando a un exceso de informacin, puede ignorar ningn artculo estndar que son
programas de Microsoft legtimos. Slo tienes que elegir Opciones ! Hide Microsoft Signed entradas a mostrar slo
programas de terceros. Asegrese de seleccionar Archivo ! Actualizar para actualizar la pantalla.
Si desea desactivar un elemento, simplemente desactive la casilla situada junto a ella. Autoruns har una copia de seguridad de la
informacin, por lo que puede volver a habilitar ms tarde si es necesario (simplemente vuelva a vericar la entrada). Adems, si usted es
no del todo seguro de lo que un programa es, puede hacer clic en el elemento y seleccione Entrada ! Google para lanzar su
navegador web con resultados de bsqueda para el artculo.
Pgina 86
Hack # 29. Asegure sus registros de sucesos
Mantener registros de su sistema de ser manipulado.
Windows tiene algunas caractersticas de registro de gran alcance. Desafortunadamente, si usted todava est ejecutando una de Windows ms antiguas
sistema, como una variedad de Windows 2000, por defecto los registros de sucesos no estn protegidos contra
acceso o modicacin no autorizada. Es posible que no se dan cuenta de que a pesar de que tiene que ver los registros
a travs del Visor de sucesos, son simplemente los archivos normales al igual que cualquier otro. Para asegurar ellos, todo lo que
que tenga que hacer ellos es localizar y aplicar las ACL adecuadas.
A menos que sus ubicaciones se han cambiado a travs del Registro, usted debera ser capaz de encontrar los registros en
el % SystemRoot% \ system32 \ cong directorio. Los tres archivos que se corresponden con el registro de aplicacin,
Registro de seguridad, y el registro del sistema son AppEvent.Evt , SecEvent.Evt y SysEvent.Evt , respectivamente.
Ahora bien, aplicar las ACL para limitar el acceso a las cuentas de administrador solamente. Usted puede hacer esto por la educacin de la
Dilogo de propiedades de los archivos y haciendo clic en la pestaa Seguridad. Despus de que hayas hecho esto, retire los usuarios
o grupos que no Administradores y SISTEMA desde el panel superior.
Pgina 87
Hack # 30. Cambiar el tamao de registro mximo de archivos
Cambiar las propiedades de su registro para que vean el cuadro completo.
Desde el punto de vista de seguridad, los registros son uno de los activos ms importantes que guran en el servidor. Despus
todos, sin registros, cmo va a saber si o cuando alguien ha tenido acceso a su mquina?
Por lo tanto, es imperativo que sus registros no perder el ritmo. Si usted est tratando de localizar la fuente de
un incidente, que tiene entradas de registro que falta no es mucho mejor que no tener ningn registro en absoluto.
Un problema comn es que el tamao mximo del registro es demasiado bajo; dependiendo de la versin de
Windows, el defecto puede ser tan miserable como 512 KB. Para cambiar esto, vaya a Herramientas administrativas
panel de control y abrir el Visor de sucesos. Usted debe ver la pantalla que se muestra en la Figura 2-5 .
Figura 2-5. El Visor de eventos de Windows
Haga clic en uno de los archivos de registro en el panel izquierdo de la ventana del Visor de sucesos y seleccione las Propiedades
elemento del men para abrir el cuadro de dilogo Propiedades de registro de seguridad, se muestra en la Figura 2-6 .
Pgina 88
Figura 2-6. Propiedades del registro de seguridad
Ahora, localice el cuadro de entrada de texto con la etiqueta de "tamao mximo del registro." Se puede escribir el nuevo mximo
Tamao directamente, o puede utilizar las echas situadas junto al cuadro de texto para cambiar el valor. Qu es el tamao
apropiada depende de la frecuencia con que desea revisar y archivar sus registros. Cualquier cosa por encima de 1 MB es
bueno. Sin embargo, tenga en cuenta que al tener los archivos de registro de gran tamao no se ralentizar intrnsecamente por la
mquina, que puede ralentizar el Visor de sucesos cuando usted est tratando de ver los registros.
Mientras est aqu, es posible que tambin desee cambiar el comportamiento para cuando el archivo de registro alcanza su
tamao mximo. Por defecto, se empezar a sobrescribir las entradas del registro que tengan una antigedad de siete das
entradas de registro nuevos. Se recomienda cambiar este valor a algo ms alto, digamos, 31 das.
Alternativamente, usted puede optar por no tener entradas sobrescriben automticamente en absoluto, en este caso usted
tenga que borrar el registro de forma manual.
Pgina 89
Hack # 31. Copia de seguridad y Borrar los registros de sucesos
Aqu hay un guin ingenioso que puede utilizar para realizar copias de seguridad y limpiar los registros de sucesos de los servidores.
Gestin de registros de eventos es una parte esencial del trabajo de un administrador del sistema. Estos registros son tiles para una
nmero de propsitos, incluyendo problemas en el sistema de solucin de problemas, la vericacin de que los servicios son
funcionando correctamente, y detectar posibles intentos de intrusin. Si bien se puede utilizar el Visor de sucesos
para guardar y borrar estos registros, sera til tener un script que copia de seguridad de su Windows
Registros de eventos y desactive la informacin contenida en ellos.
Este hack proporciona un script para hacer precisamente eso. Se puede ejecutar manualmente (haciendo doble clic sobre un escritorio
acceso directo) o de forma automtica en momentos diferentes (mediante la adicin de una tarea a la tareas programadas de la carpeta).
El Cdigo
Escriba el siguiente script en el Bloc de notas (asegrese de que tiene el ajuste de lnea desactivada), y guardarlo como
archivelogs.vbs :
Option Explicit
On Error Resume Next
NumThreshold Dim
StrMachine Dim
StrArchivePath Dim
StrMoniker Dim
Dim refWMI
ColEventLogs Dim
Dim refEventLog
Si WScript.Arguments.Count <2 Luego
WScript.Echo _
"Uso: archivelogs.vbs <machine> <archive_path> [umbral]"
WScript.Quit
End If
Si WScript.Arguments.Count = 2 Luego
numThreshold = 0
Ms
numThreshold = WScript.Arguments (2)
Si No IsNumeric (numThreshold) Entonces
WScript.Echo "El tercer parmetro debe ser un nmero!"
WScript.Quit
End If
Si numThreshold <0 O numThreshold> 100 A continuacin,
WScript.Echo "El tercer parmetro debe estar en el rango de 0 a 100"
WScript.Quit
End If
End If
strMachine = WScript.Arguments (0)
strArchivePath = WScript.Arguments (1)
strMoniker = "winmgmts: {(copia de seguridad, Seguridad)} \ \" & strMachine
Establecer refWMI = GetObject (strMoniker)
Si Err <> 0 Then
WScript.Echo "No se pudo conectar con el servicio WMI."
WScript.Quit
End If
Establecer colEventLogs = refWMI.InstancesOf ("Win32_NTEventLogFile")
Si Err <> 0 Then
Pgina 90
WScript.Echo "No se pudo recuperar objetos del registro de eventos"
WScript.Quit
End If
For Each refEventLog En colEventLogs
'Si shouldAct () devuelve un valor distinto de cero intento de copia de seguridad
Si shouldAct (refEventLog.FileSize, refEventLog.MaxFileSize) <> 0 Then
Si refEventLog.ClearEventLog (_
makeFileName (refEventLog.LogleName)) = 0 entonces
WScript.Echo refEventLog.LogleName & _
"Archivado con xito"
Ms
WScript.Echo refEventLog.LogleName & _
"No poda ser archivado"
End If
Ms
WScript.Echo refEventLog.LogleName & _
"No ha superado el nivel de copia de seguridad"
End If
Prximo
Establecer refEventLog = Nothing
Establecer colEventLogs = Nothing
Establecer refWMI = Nothing
Funcin shouldAct (numCurSize, numMaxSize)
Si (numCurSize / numMaxSize) * 100> numThreshold Entonces
shouldAct = 1
Ms
shouldAct = 0
End If
End Function
Funcin makeFileName (strLogname)
makeFileName = strArchivePath & "\" & _
strMachine & "-" & strLogname & "-" & _
Year (Now) y mes (ahora) & Day (Now) & ". Evt"
End Function
Funcionamiento del corte
Para ejecutar el script, utilice Cscript.exe , el motor de scripts de lnea de comandos de Windows Script Host (WSH).
El script usa la siguiente sintaxis de lnea de comandos:
archivelogs.vbs mquina archive_path [umbral]
donde
mquina
es el nombre del servidor y
archive_path
es la ruta a la que desea guardar el
de copia de seguridad.
umbral
es un parmetro opcional que comprueba el tamao (en MB) de los troncos: si los registros son
por encima del valor de umbral especicado, el script se los respalde; de lo contrario, se saltar ellos.
El siguiente ejemplo muestra cmo ejecutar la secuencia de comandos y proporciona una salida tpica cuando el guin es
ejecutado en un controlador de dominio (el directorio de archivo C: \ Archivos de Log primero se debe crear en el
mquina en la que se ejecuta la secuencia de comandos):
C:> cscript.exe archivelogs.vbs srv210 "C: Archivo \ Log"
Microsoft (R) Windows Script Host versin 5.6
Copyright (C) Microsoft Corporation 1996-2001. Todos los derechos reservados.
Seguridad archivado con xito
Sistema de archivado con xito
Servicio de directorio est archivada con xito
Servidor DNS archivado con xito
Servicio de replicacin de archivos archivados con xito
Pgina 91
Aplicacin archivada con xito
C:>
El resultado de ejecutar la secuencia de comandos es un conjunto de archivos en C: \ Archivos de registro del formulario srv210-Aplicacin-
20031217.evt , srv210-Security-20031217.evt , y as sucesivamente. Tenga en cuenta que cada archivo contenedor se denomina
de acuerdo con el servidor, registro de eventos, y la fecha actual.
Si usted planea usar la utilidad de copia de seguridad en lugar de copias de seguridad de los archivos de registro de eventos en Windows 2000
servidores, podra sorprenderle saber que formar parte del grupo Operadores de copia de seguridad no permitir
realizar copias de seguridad o restaurar estos archivos de registro de eventos; este derecho est disponible para slo local o de dominio
administradores!
De Rod Trent
Pgina 92
Hack # 32. Deshabilitar los recursos compartidos
Dejar de compartir todos sus archivos con el mundo.
De manera predeterminada, Windows permite compartir para cada disco lgico en el sistema (por ejemplo,
C $
para la C: conducir) en
adems de otro recurso llamado
ADMIN $
para el % SystemRoot% directorio (por ejemplo, C: \ WINNT ). Aunque
las acciones son accesibles slo para los administradores es aconsejable desactivar si es posible, ya que presentan un
agujero de seguridad potencial.
Para desactivar estas acciones, abra el registro ejecutando regedit.exe y luego encontrar el
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters
clave.
Si est utilizando Windows 2000 Workstation, aada una
AutoShareWks
Clave DWORD con el valor de
0
(Como
se muestra en la Figura 2-7 ), haga clic en Editar ! Nuevo ! Valor DWORD. En Windows 2000 Server, aada una
AutoShareServer
clave con un valor de
0
. Cuando haya terminado de editar el registro, reinicie Windows para
que el cambio surta efecto.
Figura 2-7. Adicin de una clave del Registro AutoShareWks
Despus de que Windows haya terminado de cargar, puede vericar que las acciones por defecto ya no existen ejecutando
net share
:
C:> net share
Nombre del recurso compartido Recurso Observacin
-------------------------------------------------- --------------------------
IPC $ IPC remota El comando se ha completado satisfactoriamente.
ADVERTENCIA
Antes de hacer esto, usted debe estar seguro de que la desactivacin de estas acciones no afectar negativamente a su entorno. La falta de estas acciones
puede causar algn tipo de software de gestin de sistemas, tales como HFNetChk [Hack # 23] o de System Management Server, para no trabajar. Es
porque este tipo de software depende del acceso remoto a los recursos compartidos administrativos predeterminados con el n de acceder al contenido de los sistemas de
discos.
Pgina 93 Pgina 94
Hack # 33. Cifrar la carpeta Temp
Mantenga los ojos curiosos de sus archivos temporales.
Muchas aplicaciones de Windows crean archivos intermedios mientras hacen su trabajo. Por lo general se almacenan
estos archivos en una carpeta temporal en el directorio conguracin del usuario actual. Estos archivos suelen ser
creado legible por todos, y no siempre se limpian cuando el programa se cierra. Cmo le gustara que
el procesador de textos dej una copia del ltimo documento que estaba trabajando para que cualquiera pueda venir a travs de
y leer? No es una idea bonita, verdad?
Una forma de evitar esta situacin es encriptar su carpeta de archivos temporales. Abra un explorador
ventana y vaya a la C: \ Documents and Settings \ Local Settings <username> carpeta, en la que debe
ver otra carpeta llamada temp . Esta es la carpeta que contiene los archivos temporales. Haga clic en la carpeta
y abrir su cuadro de dilogo Propiedades. Asegrese de seleccionar la pestaa General y haga clic en el botn etiquetado
Avanzado. Con ello se abre una avanzada de dilogo Atributos, como se muestra en la Figura 2-8 . Aqu se puede
elegir para cifrar la carpeta.
Figura 2-8. El de la carpeta Temp avanzada dilogo Atributos
Marque la casilla "Cifrar contenido para proteger datos" y haga clic en el botn Aceptar. Una vez que haya hecho eso,
haga clic en el botn Aplicar en el cuadro de dilogo Propiedades. Otra de dilogo (que se muestra en la Figura 2-9 ) Se abre, pidiendo
que si le gustara que el cifrado para aplicar de forma recursiva.
Figura 2-9. Conrmacin de la eleccin de cifrado y lo que es recursiva
Pgina 95
Para aplicar el cifrado de forma recursiva, elija los "Aplicar cambios a esta carpeta, subcarpetas y archivos"
opcin. Esto crea automticamente un par de clave pblica si usted nunca ha cifrado los archivos antes.
De lo contrario, Windows utilizar la clave pblica que gener para usted previamente.
Al descifrar, Windows asegura que las claves privadas se almacenan en la memoria del ncleo no paginado, por lo
que la clave de descifrado nunca se quedar en el archivo de paginacin. Si est utilizando una versin anterior de
De Windows, tenga cuidado. Windows 2000 utiliza el algoritmo DESX, que es casi intil. Sin embargo,
versiones de Windows XP SP1 apoyan en adelante ambos 3DES y AES de los ms fuertes.
Pgina 96
Hack # 34. Copia de seguridad de EFS
Copia de seguridad de las claves de recuperacin de EFS es esencial si usted quiere ser capaz de recuperar los documentos cifrados
despus de un desastre.
El sistema de cifrado de archivos (EFS) le permite cifrar archivos, de manera que las personas no autorizadas no puedan leer
ellos. Normalmente, esto es una buena cosa, ya que ayuda a proteger los datos almacenados en el disco duro de una mquina.
Sin embargo, este truco tiene que ver con lo que ocurre cuando algo va mal-por ejemplo, si un
la mquina del usuario se convierte en pan tostado, tomando su clave privada y el certicado EFS de Nunca Jams.
La clave para ser capaz de recuperar archivos cifrados cuando algo va mal es tener un designado
agente de recuperacin ya existentes. Entonces, si usted pierde su clave privada de EFS, el agente de recuperacin puede
descifrar los archivos cifrados en una emergencia. Cada vez que se cifra un archivo, EFS genera un nico
File Encryption Key (FEK) que utiliza para cifrar slo ese archivo. En otras palabras, cada archivo cifrado tiene
su propio FEK nico.
Adems, la FEK se cifra usando su propia clave pblica de EFS y incorporaron al
cabecera del archivo. Ms tarde, si desea leer el archivo cifrado, EFS utiliza automticamente las EFS
clave privada para descifrar la FEK para el archivo y luego utiliza la FEK para descifrar el archivo en s. La FEK es
por lo tanto utilizada tanto para cifrar y descifrar el archivo (un proceso conocido como cifrado simtrico ),
mientras que su par de claves pblica / privada de EFS se utiliza para cifrar y descifrar la FEK (conocido como
el cifrado asimtrico ). Esta combinacin de simtrica (o clave secreta) y el cifrado asimtrico
Cifrado (clave pblica) es la base de cmo funciona EFS.
Pero, qu pasa si usted pierde su clave privada de EFS? Esto puede ocurrir si el equipo tiene dos
unidades: una unidad del sistema ( C: ) y una unidad de datos ( D: ), donde se almacenan los archivos cifrados. Por defecto, su
Claves de EFS se almacenan en la unidad del sistema, por lo que si C: se corrompe, los archivos cifrados en D: se
inaccesible, verdad? Ah es donde el agente de recuperacin entra en juego cada vez que se cifra un archivo, el
FEK se cifra tanto con su propia clave pblica de EFS y la clave pblica de EFS de agente de recuperacin.
Esto signica que el agente de recuperacin siempre puede descifrar la FEK utilizando su clave privada de EFS y por lo tanto
descifrar el archivo cuando algo va mal y su propia clave privada se pierde o se daa.
Cules son estos agentes de recuperacin? Por defecto, en mquinas independientes de Windows 2000, el incorporado en locales
cuenta de administrador es designado como un agente de recuperacin, por lo que siempre puede iniciar sesin como administrador
y descifrar los archivos cifrados almacenados en la mquina. Usted puede agregar otros usuarios como agentes de recuperacin por
utilizando la consola Directiva de seguridad local, que se puede abrir con Inicio ! Ejecutar !
secpol.msc
. Entonces,
expanda Conguracin de seguridad ! Directivas de claves pblicas ! cifrados Agentes de recuperacin de datos, haga clic en ese
nodo y seleccione Agregar para iniciar el Asistente para agregar agente de recuperacin. Todas las cuentas de usuario que ya tienen
X.509v3 certicados en la mquina a continuacin, se pueden aadir como agentes de recuperacin.
TIP
En autnomas mquinas Windows Server 2003, la cuenta de administrador integrada no es un agente de recuperacin designado. De hecho,
no hay agentes de recuperacin predeterminadas en Windows Server 2003 en un entorno de grupo de trabajo. Debe designar una cuenta para este
papel.
En un entorno de dominio, las cosas son un poco diferentes. La cuenta de administrador integrada de dominio es
el agente de recuperacin predeterminado para todos los equipos del dominio, y puede especicar recuperacin adicional
agentes de la directiva de grupo. Abra el objeto de directiva de grupo para el dominio, unidad organizativa o sitio en el que el
cuenta del agente de recuperacin correspondiente reside, y vaya a Conguracin del equipo ! Ventanas
Ajustes ! Seguridad ! Directivas de claves pblicas ! cifrados Agentes de recuperacin de datos. Haga clic en
este nodo y seleccione Agregar para iniciar el mismo Asistente para agregar agente de recuperacin que antes, pero este tiempo de exploracin
Pgina 97
el directorio para localizar la cuenta que desea agregar.
Una vez que se actualiza la directiva de grupo, su nuevo agente de recuperacin ser capaz de descifrar los archivos cifrados por otro
usuarios, pero slo si los usuarios cifran el archivo despus fue designado el nuevo agente de recuperacin. Es
porque los archivos cifrados tienen previamente ninguna informacin acerca de este nuevo agente de recuperacin en sus cabeceras
y por lo tanto no puede ser descifrada sin embargo por el nuevo agente de recuperacin. Afortunadamente, si el usuario que cifr
el archivo, simplemente se abre y luego se cierra, esto por s solo es suciente para EFS para agregar el nuevo agente de recuperacin
a la cabecera del archivo cifrado.
La moraleja de la historia es que usted debe pensar antes de implementar EFS, y designar a la recuperacin
agentes antes de permitir a los usuarios iniciar la encriptacin de archivos. De lo contrario, puede que te encuentres el envo de
un correo electrnico poco comn a todo el mundo diciendo: "Por favor, abra y cierre todos los archivos que se han cifrado en su
mquinas "o algo similar.
Respaldo de datos cifrados y claves de EFS
Copia de seguridad de archivos que han sido cifrados con EFS es fcil: basta con utilizar la utilidad Copia de seguridad para
a ellos como cualquier otro archivo. Lo que es realmente importante es que tambin copia de seguridad del certicado EFS y
par de claves pblica / privada para cada usuario que almacena los datos en la mquina. Desde EFS se implementa en una
funcin de cada usuario, lo que tienes que realizar copias de seguridad de esta informacin para cada usuario individual.
Afortunadamente, ya que esta informacin se almacena en el perl de usuario para cada usuario, simplemente la copia de seguridad de usuario
perles tambin una copia de seguridad de EFS certicados y las claves de los usuarios. Ms especcamente, EFS de un usuario privado
clave se almacena en el \ Application Data \ Microsoft \ Crypto \ RSA subcarpeta dentro del perl de dicho usuario,
mientras EFS certicado de clave pblica del usuario y la clave pblica se almacenan en la \ Application
Data \ Microsoft \ SystemCerticates \ Mis Certicados \ Mi carpeta bajo las subcarpetas \ Certicados y
\ Keys .
Puede copia de seguridad de los certicados EFS de los usuarios y pares de claves, como parte de su programa de copias de seguridad regulares, y si
haya perles de usuario mviles congurados, puede hacerlo de forma centralizada desde el servidor de archivos donde tales
los perles se almacenan. Si usted no tiene los perles de itinerancia en prctica y los usuarios almacenar importante
documentos en sus propias mquinas, podra ser necesario que los usuarios realizar copias de seguridad de sus propios perles
a nivel local mediante el uso de Backup para realizar copias de seguridad de archivos en lugar de cinta. Desafortunadamente, esto protege contra el perl
slo la corrupcin, y no podra ayudar si un fallo de disco hace que el perl de copia de seguridad que se pierde tambin.
Una mejor alternativa es hacer que cada usuario exportar su certicado EFS y la clave privada a un disquete y
almacenar en un lugar seguro. De esa manera, si se bloquea el disco del sistema de un usuario, puede an descifrar informacin sobre
su unidad de datos mediante la importacin de su certicado EFS previamente exportado y la clave privada.
Los pasos para exportar el certicado EFS de un usuario y una clave privada son bastante sencillo y se puede hacer
fcilmente por cualquier usuario. Simplemente abra Internet Explorer, seleccione Herramientas ! Opciones de Internet, seleccione la
Ficha Contenido, haga clic en el botn Certicados, y seleccione la cha Personal, como se muestra en la Figura 2-10 .
Pgina 98
Figura 2-10. Exportar el certicado EFS y la clave privada de usuario jsmith
A continuacin, seleccione el certicado que desea exportar (el certicado correcto mostrar "de archivos de cifrado
Sistema "debajo de" Certicado nes previstos ", cerca de la parte inferior de la pgina de propiedades) y haga clic en
Exportar para iniciar el Asistente para exportacin de certicados. Elija la opcin de incluir la clave privada del usuario en
la exportacin (la clave pblica se incluye automticamente en el certicado), especique una contrasea para proteger
el archivo de exportacin, y elegir un nombre y un destino para el archivo de exportacin. El resultado de esta exportacin
proceso ser un intercambio de informacin personal ( . pfx ) archivo, ubicado en la carpeta de destino o los medios de comunicacin.
Como se mencion anteriormente, los usuarios suelen exportar sus claves EFS en un disquete, pero se puede quemar
en un CD o incluso guardarlos en un recurso compartido de red segura, si lo preere. Lo importante es,
donde quiera exportar esta informacin, mantenerla a salvo para que nadie excepto el usuario y de conanza
los administradores pueden acceder a l. Cualquier persona que pone sus manos en el archivo de exportacin y las grietas de la contrasea
puede usarla para descifrar los archivos cifrados que pueden acceder.
Si las claves de EFS de un usuario despus se corrompen y surge la necesidad de volver a instalar estas teclas, esto puede ser
hecho, ya sea repitiendo el proceso anterior (pero al hacer clic en Importar en lugar de las exportaciones en la Figura 2-10 )
o, ms simplemente, haciendo doble clic sobre el pfx. propio archivo para iniciar el Asistente para importacin de certicados. Este
asistente es lo sucientemente inteligente como para saber que el certicado EFS y la clave privada almacenada en el pfx. archivo
debe ser importado en el almacn de certicados personales del usuario.
Una opcin interesante a considerar al exportar el certicado EFS de un usuario y una clave privada es eliminar
la clave privada del usuario de su perl durante el proceso. Esta opcin tiene la etiqueta "Elimine el privado
clave si la exportacin es satisfactoria "y se encuentra en la penltima pgina del Asistente para exportacin de certicados.
Si elige esta opcin, usted ser capaz de cifrar archivos utilizando EFS, pero usted no ser capaz de
descifrarlos a menos que suministre la clave privada en algn medio-algo que podra ser una opcin
a considerar en un entorno de alta seguridad.
Restauracin de claves de EFS
Si la clave privada de EFS de un usuario se daa o se pierde y el usuario no ha realizado la copia de la llave a un disquete
como se describe en la seccin anterior, es hora de que el agente de recuperacin al paso pulg En un independiente
mquina, slo tiene que iniciar la sesin con la cuenta de administrador integrada, localice las carpetas cifradas
Pgina 99
el usuario puede acceder ya no est en el Explorador de Windows, haga clic en cada carpeta, seleccione Propiedades, haga clic en
Avanzadas y desactive la opcin "Cifrar contenido para proteger datos" casilla de vericacin de cada carpeta. Este descifra el
archivos dentro de las carpetas y permite al usuario volver a leerlos.
En un entorno de dominio, normalmente no se desea registrar en la mquina de un usuario como dominio
administrador y ver a un perl de usuario local que se est creando para su cuenta como resultado. En su lugar, simplemente
indicar al usuario que utilice la utilidad Copia de seguridad para realizar copias de seguridad para presentar los volmenes cifrados o carpetas en su
mquina. La copia de seguridad resultante ( . bkf ) los procesos de archivo de los archivos se hace copia de seguridad como un ujo de datos y conservas
su estado encriptado. A continuacin, que el usuario copie ella . bkf archivo en un recurso compartido de red en el que, como dominio
administrador, puede acceder al archivo de copia de seguridad, restaurar a otra carpeta, descifrar los archivos que necesita el usuario,
y copiar estos archivos en el recurso compartido en el que el usuario puede acceder a ellos.
Si bien esta es la solucin ms comn, hay otro enfoque que vale la pena considerar: unir el
usuario con sus claves de EFS de nuevo. Incluso si el usuario no ha exportado previamente las llaves a un disquete para
custodia, es probable que, en un entorno de dominio, que realice copias de seguridad de los perles de usuarios
(Suponiendo que los perles mviles estn habilitadas). Con slo restaurar el perl de un usuario de copia de seguridad se restaura
su certicado y las claves de EFS, lo que le permite leer sus archivos cifrados de nuevo. Entonces, dile cortsmente pero
rmemente para exportar de inmediato su certicado y las claves de un disquete, ya que no quiero tener que
pasar por esto otra vez!
Si EFS se utiliza para cifrar los archivos en un servidor de archivos donde varios usuarios almacenan sus archivos, este proceso
puede llegar a ser complicado si usted ha designado diferentes agentes de recuperacin para diferentes grupos de usuarios.
En particular, es posible que tenga que determinar qu agentes de recuperacin son designados para cualquier cifrado
archivos que los usuarios ya no pueden acceder. Para ello, puede utilizar el efsinfo utilidad de lnea de comandos incluida
en el Kit de recursos de Windows 2000 Server. Esta pequea utilidad le puede decir que en un principio
cifrada en un archivo y que los agentes de recuperacin designados para el archivo son. Slo tienes que escribir
efsinfo / r / u
nombre de archivo
, En donde
nombre de archivo
incluye la ruta de acceso al archivo cifrado. Una vez que usted sabe que cualquier agente de recuperacin
para el archivo, se puede proceder a descifrar como se muestra anteriormente.
Qu pasa si la persona que no puede acceder a sus archivos cifrados es su jefe y ella necesita el acceso a ella
archivos de inmediato? Exportar su propio certicado EFS y la clave privada a un disquete como un dominio
administrador u otro agente de recuperacin, caminar el disquete a la ocina de su jefe, inserte el disquete en
su mquina, importar el certicado y la clave privada y descifrar sus archivos. A continuacin, elimine el certicado
y la clave de su mquina. Cuando ella intenta cifrar un archivo nuevo, un nuevo certicado EFS y privada
automticamente se genera la clave. Sonre, porque has actuado como Superman, y le enve un
correo electrnico ms tarde pedir un aumento.
Pero lo que si se pierde su certicado EFS y la clave privada como administrador de dominio o agente de recuperacin
o daado?
Copia de seguridad de Recuperacin Agente Keys
Obviamente, es una buena idea para que los administradores y otros agentes de recuperacin tambin hacer copias de seguridad de
sus propios certicados EFS y claves privadas. De lo contrario, un punto de fallo existe en toda esta recuperacin
archivos cifrados de proceso y los usuarios podran perderse para siempre y no recuperable.
Si est trabajando en un entorno de grupo de trabajo, recordar que la cuenta de administrador local integrada es
el agente de recuperacin predeterminado en Windows 2000. Esto signica que tiene una copia de seguridad del certicado EFS y
clave privada de la cuenta de administrador, por lo que iniciar sesin en el equipo utilizando esta cuenta y el uso
Inicio ! Ejecutar !
secpol
para abrir Directiva de seguridad local como antes. Seleccione la recuperacin de los datos cifrados
Nodo Agentes en Directivas de clave pblica en el panel izquierdo, haga clic en el certicado EFS en el derecho
Pgina 100
panel y seleccione Todas las tareas ! Exportar para iniciar el Asistente para exportacin de certicados. Elija la opcin de exportar
la clave privada as, especique una contrasea para proteger el archivo de exportacin, y especique un nombre de archivo y
destino para exportar la informacin a-por lo general, algn tipo de medio extrable, como un disquete.
Mantener ese disquete seguro.
En un entorno de dominio, la cuenta integrada de administrador de dominio es el agente de recuperacin predeterminado y
el certicado EFS y la clave privada se encuentran en el primer controlador de dominio en el dominio (el
que cre el dominio al ejecutar
dcpromo
en l). Inicie sesin en esta mquina utilizando esa cuenta, utilice
Inicio ! Ejecutar !
dompol.msc
para abrir la Directiva de seguridad de dominio, seleccione cifrados Agentes de recuperacin de datos
en el panel izquierdo, haga clic en el certicado EFS en el panel de la derecha, de nuevo seleccione Todas las tareas ! Exportar a
iniciar el Asistente para exportacin de certicados, y proceda como antes. Si no se le da la opcin de exportar la
clave privada, no podra haber iniciado sesin en el controlador de dominio de la derecha, por lo que cambiar las mquinas y tratar
de nuevo.
Otro mtodo para exportar certicados y claves es utilizar el complemento Certicados en. Abrir un espacio en blanco
Consola MMC, agregue esto mientras complemento iniciado sesin como Administrador, expanda Certicados ! actual
Usuario ! Personal ! Certicados y encontrar el certicado que desea hacer copia de seguridad mirando bajo el
Columna Propsitos planteados, como se muestra en la Figura 2-11 . La potencia de este enfoque es que se puede tambin
utilizarla para realizar copias de seguridad y restaurar otros tipos de certicados y claves, incluyendo claves de EFS.
Figura 2-11. Usando el complemento Certicados en la copia de seguridad de una clave de agente de recuperacin
Ahora que ya ha realizado una copia de seguridad del certicado y las claves de EFS de su agente de recuperacin, ya est listo para lo peor
-A menos que su perro come el disquete!
Mitch Tulloch
Pgina 101
Hack # 35. Borre el archivo de paginacin al apagar
Evitar fugas de informacin en la limpieza de forma automtica el archivo de intercambio antes de apagarse.
Gestin de memoria virtual (VMM) es realmente una cosa maravillosa. Protege programas de un
s y les permite pensar que tienen ms memoria disponible que se encuentra fsicamente en el sistema. A
lograr esto, VMM usa lo que se llama un archivo de paginacin.
Ya que se corre ms y ms programas a lo largo del tiempo, usted comenzar a quedarse sin fsico
memoria. Dado que las cosas pueden empezar a ir mal cuando esto ocurre, el administrador de memoria buscar el
piezas utilizadas con menor frecuencia de la memoria de propiedad de los programas que no estn haciendo nada de forma activa en el
momento y escribir los trozos de memoria a cabo en el disco (es decir, la memoria virtual). Esto se conoce como
intercambio .
Sin embargo, no es un efecto secundario posiblemente mal de esta funcin: si un programa que contiene condencial
informacin en su espacio de memoria se est ejecutando, la memoria que contiene dicha informacin puede ser escrita
al disco. Esto est bien cuando el sistema operativo se est ejecutando y hay salvaguardias para prevenir la
archivo de paginacin de la lectura inicial, pero qu pasa cuando el sistema est apagado o arranque en un operativo diferente
sistema?
Aqu es donde este hack es muy til. Lo que vamos a hacer es decirle al sistema operativo para
sobrescribir el archivo de paginacin con ceros cuando se apaga. Tenga en cuenta que esto no funcionar si el
al tirar del cable del sistema o el sistema se apaga de forma incorrecta, ya que esto slo se sobrescribe
se har durante un apagado correcto.
Para habilitar esta caracterstica de Windows, debe editar el Registro del sistema. Abra el registro y encontrar el
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session administrativa Administrador \ Memoria
clave.
Ahora debera ver la pantalla que se muestra en la Figura 2-12 .
Figura 2-12. La clave del Registro de Gestin de la memoria
Pgina 102
Busque el
ClearPageFileAtShutdown
entrada en el panel derecho de la ventana y cambie su valor a
1
.
Ahora, reinicie Windows para que el cambio surta efecto, y el archivo de intercambio se borrar al apagar el equipo.
El nico efecto secundario de la habilitacin de esta es que Windows puede tardar ms en cerrar. Sin embargo, este es
depende en gran medida de su hardware (por ejemplo, un chipset controlador de disco, la velocidad de la unidad de disco, procesador
velocidad, etc), ya que eso es lo que va a gobernar el tiempo que tomar para sobrescribir el archivo de paginacin con
ceros.
Pgina 103
Hack # 36. Compruebe si hay contraseas que no caducan nunca
Aqu hay un script muy til que hace que sea fcil de encontrar cuentas de usuario con contraseas nonexpiring.
Las cuentas de usuario establecidos para que no caduque nunca se utilizan a veces para los empleados permanentes de una empresa, mientras que
empleados temporales se asignan cuentas que expiran despus de un perodo de tiempo especicado. Siempre ha querido
podran encontrar fcil y rpidamente qu cuentas de usuario han puesto sus contraseas para que no caduque nunca, a lo largo de
con las fechas en que se establecen los indicadores? Aqu es un script de ejemplo que realiza esto y ms.
Este script solicita el dominio deseado, comprueba todas las cuentas de usuario del dominio para ver si su
se han establecido contraseas que no caduque nunca, e informa la fecha en que se establecen los indicadores. A continuacin, escribe la salida en un
Valores separados por comas (CSV) archivo llamado PWDNeverExpired.csv , la creacin de este archivo en la misma
directorio donde se encuentra el propio script. Para cada contrasea que no se vence el guin
registros de un
S
. Si la contrasea expira, el script en lugar registra una
No
y la fecha de la contrasea
expirar.
El Cdigo
Para utilizar la secuencia de comandos, escrbalo en el Bloc de notas (con el ajuste de lnea desactivada) y guardarlo como
PWDNeverExpired.vbs :
'Establecer WshShell
Establecer WshShell = WScript.CreateObject ("WScript.Shell")
strVer = "Ver 1.0"
Establecer FileSystem = WScript.CreateObject ("Scripting.FileSystemObject")
Establecer objArchivo = FileSystem.CreateTextFile ("PWDNeverExpired.csv", true)
'Las variables de entorno de traccin para dominio / usuario
strDomain = WshShell.ExpandEnvironmentStrings ("% USERDOMAIN%")
strUserName = WshShell.ExpandEnvironmentStrings ("% username%")
Stros = WshShell.ExpandEnvironmentStrings ("% OS%")
strMessage = strMessage y "Hit Cancelar o introduzca un espacio en blanco para dejar de fumar"
strTitle = "Dominio se busca"
'Obtener el nombre de dominio de recursos, dominio predeterminado
UserDomain = InputBox (strMessage, strTitle, strDomain)
strMessage = ""
strTitle = ""
'StrMessage = "Por favor, introduzca el USUARIO Nombre de usuario ID" & vbCrLf y vbCrLf & _
"" Por defecto es: "& strUserName y vbCrLf y vbCrLf
'StrMessage = strMessage y "Hit Cancelar o introduzca un espacio en blanco para dejar de fumar"
'StrTitle = "USER ID de acceso"
'Obtener el nombre de dominio de recursos, por defecto de dominio a travs de caja de entrada
'ObjUserName = InputBox (strMessage, strTitle, strUserName)
'Mostrar slo un minuto!
strMessage = "Esto puede tardar unos segundos ..."
WshShell.Popup strMessage, 2, "Un momento por favor ..."
strMessage = ""
Establecer ObjDomain = GetObject ("WinNT :/ /" & UserDomain)
ObjDomain.Filter = Array ("Usuario")
For Each objUser En ObjDomain
'Intentar obligar al usuario
'Establecer objUser = GetObject ("WinNT :/ /" & UserDomain & "/" & objUser.Name, usuario)
Nombre de usuario Establezca = GetObject ("WinNT :/ /" & UserDomain & "/" & ObjUser.Name & _ ", el Usuario")
'Se ha ajustado contrasea para que caduque NUNCA?
Pgina 104
objPwdExpires = UserName.Get ("UserFlags")
Si (objPwdExpires And & H10000) <> 0 Then
objPwdExpiresTrue = "S"
strPwdExpires = "Establecer fecha:"
msgPwdExpires = "Establecer contrasea que no caduque nunca:"
Else objPwdExpiresTrue = "No"
strPwdExpires = "La contrasea caduca:"
msgPwdExpires = "Establecer contrasea que no caduque nunca:"
End If
oFile.WriteLine (UserName.fullname & "," & UserName.name & ","
& _ MsgPwdExpires y objPwdExpiresTrue & "," & strPwdExpires & _
objUser.PasswordExpirationDate)
'Wscript.Echo "Nombre completo:" & UserName.fullname y vbCrlf y
"Nombre de la cuenta:" & UserName.name y vbCrlf y
'MsgPwdExpires y objPwdExpiresTrue y vbCrlf y
'strPwdExpires y objUser.PasswordExpirationDate y vbCrlf
Nombre de usuario Establezca = Nothing
Prximo
Wscript.Echo "Hecho Cuentas Corrientes"
Funcionamiento del corte
Para ejecutar este truco, basta con crear un acceso directo a la secuencia de comandos y haga doble clic en el acceso directo. Figura 2-13
muestra un archivo de salida CSV de ejemplo para el guin, se ve en Excel.
Figura 2-13. Salida de ejemplo del funcionamiento PWDNeverExpired.vbs
Hans Schefske
Pgina 105
Captulo 3. Privacidad y anonimato
Se ha dicho antes, pero es ms cierto que nunca: Internet puede ser un lugar aterrador. Realizacin
transacciones bancarias, presentacin de impuestos, pago de facturas, y compra y venta de productos en lnea, todos ellos
cosas eran desconocidas en los primeros das de la Internet. Sin embargo, como las personas y las empresas tienen
cada vez ms conocedores en el mundo electrnico, tambin lo han hecho los ladrones que se aprovechan de ellos. Adems,
el mayor escrutinio de las identidades en lnea de la gente por los gobiernos, los empleadores y otros
organizaciones podran hacer pensar dos veces acerca de lo que usted dice que la prxima vez que se publique en un pblico
tabln de anuncios.
Debido a esto, es importante tomar precauciones para proteger su identidad y tomar el control de su
informacin en lnea. Este captulo le ofrece algunas maneras de hacer precisamente eso. En este captulo,
aprender a proteger su privacidad y permanecer en el anonimato, mientras que el uso de Internet. Usted tambin aprender
cmo cifrar los archivos y de correo electrnico mediante el cifrado fuerte. Por ltimo, usted aprender cmo protegerse
los ataques de phishing y cmo utilizar simplemente diferentes contraseas para cada sitio web que utilice sin
luchando por mantener un seguimiento de ellos.
Hack # 37. Evade Anlisis del trco
Utilice enrutamiento cebolla transparente para evadir el anlisis de trco y proteger su privacidad.
La privacidad es algo de valor mayora de la gente, o por lo menos creo que s, pero en nuestro mundo cada vez ms conectado es
llegando a ser absolutamente un bien escaso. Cada paquete de su computadora enva a la Internet es
en ltima instancia rastrear a usted (el Internet no funcionaba correctamente si no fuera), pero eso es slo la
punta del iceberg. Dado que todo el trco debe uir a travs de su proveedor de Internet, es posible para ellos para construir una
cuadro completo de ti desde los sitios web que visita.
Una forma de protegerse contra el anlisis de trco es utilizar The Onion Router, Tor (
http://tor.eff.org
).
Enrutamiento Cebolla
Enrutamiento cebolla es una tcnica para la comunicacin annima que implica la construccin de azar un Virtual
circuito a travs de varios routers para ofuscar la fuente de la conexin. Por lo tanto, alguien la supervisin de su
trco slo te ver comunica con el primer tramo en el circuito, y el destino nal ser
pensar que se est comunicando con el ltimo tramo en el circuito.
Antes de que se ha transmitido los datos, sin embargo, Tor negocia claves de cifrado con cada salto en el circuito a
proteger sus datos a lo largo del camino. A continuacin, cifra el paquete con la clave para el ltimo tramo en el circuito,
entonces el penltimo, y as sucesivamente hasta que el paquete se cifra con la clave para el primer salto en el circuito.
Este proceso crea un paquete encapsulado en mltiples capas de cifrado.
Esto es lo que hace que el propsito metfora cebolla para describir esta tcnica. A medida que pasa el paquete
a travs de cada salto del circuito, la capa ms externa cifrado se despega. Esto tambin tiene el lado agradable
efecto de cada tramo en el circuito no tener un panorama completo del circuito. Un salto individuo sabe
sobre slo el salto anterior y el siguiente salto.
Instalacin de Tor
Antes de compilar Tor, usted necesita tener Zlib y OpenSSL instalado en su sistema. (La mayora de los sistemas
debe tener Zlib y OpenSSL ya.) Tor tambin requiere libevent
(
http://monkey.org/provos/libevent/
), Que se puede instalar simplemente descargando el paquete de archivos,
Pgina 106
desempaquetar, y haciendo el estndar
. / Congure && make
y el funcionamiento
make install
como root. Una vez
esos requisitos son fuera del camino, puede instalar Tor.
Antes de hacer cualquier otra cosa, agregue un usuario y un grupo para ejecutar Tor como. A continuacin, ejecute
. / Congure
y especique el
usuario y el grupo que ha creado:
$ . / congure - with-tor-user = tor - with-tor-group = tor
A medida que el script se ejecuta, es posible que vea el siguiente error:
comprobar si tenemos opciones adicionales para vincular libevent ... congure: error: Encontrado
libevent asociarse en (sistema), pero no se ejecuta, incluso con-R. Quizs especicar otro
usando - with-libevent-dir?
Si usted encuentra, ejecute
. / Congure
de nuevo y decirle dnde encontrar libevent :
$ . / congure - with-tor-user = tor - with-tor-group = tor - with-libevent-dir = / usr / local
Una vez que la conguracin de la escritura termina, ejecute
hacer
, Hgase root, y ejecucin
make install
.
Usted ahora tiene que crear un directorio para Tor para almacenar sus datos pulg Por ejemplo:
# mkdir / var / run / tor && chown tor: tor / var / / tor ejecutar
Instalar Privoxy
Si va a usar Tor con un navegador web, tambin debe instalar Privoxy (
http://www.privoxy.org
).
La mayora de los navegadores web slo admiten SOCKS4 o SOCKS5, que utilizan direcciones IP para iniciar conexiones
a travs del proxy. Esto signica que tendr su navegador web para realizar bsquedas de nombre usando su
servidor DNS normal, que puede revelar sus actividades de navegacin web a otras personas. El uso de un proxy HTTP
como Privoxy para navegar las correcciones Web este problema, mediante el envo de las solicitudes de DNS y el trco
a travs de Tor.
Para instalar Privoxy, primero descomprimir el archivo tar y cambiar al directorio que crea. A continuacin, ejecute el
siguiente comando:
$ && autoconf autoheader
Puede pasar por alto la mayora de las advertencias que usted ver en la salida. Slo asegrese de que el
. / Congure el archivo existe despus
autoconf
termina de ejecutarse.
Ahora usted tendr que crear un usuario y un grupo para ejecutar Privoxy bajo (por ejemplo, Privoxy ). A continuacin, puede ejecutar
. / Congure
:
$ . / congure - with-user = Privoxy - with-grupo = privoxy
Una vez que la conguracin de la escritura ha terminado, run
hacer
, Hgase root, y ejecucin
make install
.
Conguracin de Privoxy para Tor
Ahora lo nico que se interpone entre usted y una instalacin de Tor de trabajo es la tarea de congurar Privoxy.
Para ello, agregue la siguiente lnea al principio del directorio / usr / local / etc / privoxy / cong le:
con visin de socks4a / localhost: 9050.
Esta lnea le dice a Privoxy para desviar todas las peticiones a un proxy SOCKS4a en 127.0.0.1:9050, que Tor tiene
Pgina 107
ha congurado para actuar como.
Privoxy se registren todas las peticiones por defecto, por lo que usted tambin desee deshabilitar el registro. Usted puede hacer esto mediante la
localizar y eliminar las siguientes lneas:
logle logle
jarle jarle
Ahora, comience Privoxy y Tor:
# / usr / local / sbin / Privoxy - usuario Privoxy Privoxy / usr / local / etc / privoxy / cong
10 de abril 00:26:10 Privoxy (-1208432960) Info: archivo de conguracin de carga
'/ Usr / local / etc / privoxy / cong':
14 de abril 00:26:10 Privoxy (-1208432960) Info: versin Privoxy 3.0.3
10 de abril 00:26:10 Privoxy (-1208432960) Info: Nombre del programa: / usr / local / sbin / Privoxy
10 de abril 00:26:10 Privoxy (-1208432960) Info: El escuchar en el puerto 8118 para conexiones locales
slo
# / usr / local / bin / tor locales - usuario tor - grupo tor - DataDirectory / var / / tor ejecutar
10 de abril 00:27:50.023 [notice] Tor v0.1.1.18-rc. Este es un software experimental. No confe
en l durante un anonimato fuerte.
10 de abril 00:27:50.024 [Aviso] del archivo de conguracin "/ usr / local / / tor / torrc etc" no est presente,
utilizando valores por defecto razonables.
10 de abril 00:27:50.027 [Aviso] iniciada versin libevent 1.1a utilizando el mtodo de epoll. Bueno.
10 de abril 00:27:50.027 [Aviso] connection_create_listener (): Calcetines de apertura oyente en
127.0.0.1:9050
10 de abril 00:27:56.626 [Aviso] Ahora tenemos la informacin del directorio suciente para construir circuitos.
10 de abril 00:28:01.463 [notice] Tor ha abierto con xito un circuito. Parece cliente
funcionalidad est trabajando.
Ahora puede congurar su navegador para poder usar Privoxy como proxy HTTP. Al hacer esto, especique
localhost como el nombre de host y el puerto 8118. A continuacin, puede probar su conguracin Tor visitando la prueba Tor
pgina (
http://serifos.eecs.harvard.edu/cgi-bin/ipaddr.pl?tor=1
). Si se conecta a la misma a travs de
Tor, debera ver algo similar a la Figura 3-1 .
Figura 3-1. Resultados de las pruebas de Tor
Tor puede ser utilizado para mucho ms que anonimizar la navegacin web, sin embargo. Puede SSH tnel
a travs de Tor [Hack # 38] y el uso de Tor con clientes de IRC, IM, y cualquier cosa que soporte SOCKS.
Sin embargo, tenga en cuenta que Tor no proporciona cifrado de extremo a extremo. Todo el trco no encriptado enviado
Pgina 108
a travs de Tor slo estarn protegidos hasta que sale de la red Tor.
Vea tambin
"SSH tnel a travs de Tor" [Hack # 38] , para obtener informacin sobre el uso de Tor para anonimizar SSH
conexiones
"Bloquear Tor" [Hack # 53] , para obtener informacin sobre el bloqueo de Tor para los usuarios de la red
Pgina 109
Hack # 38. SSH tnel a travs de Tor
Asegrese de que su privacidad cuando se accede a las cuentas shell remota.
"Anlisis Evade Trafc" [Hack # 37] muestra cmo congurar Tor y Privoxy, con un enfoque en el uso de Tor
para anonimizar trco de navegacin web. En este hack, vamos a ver el uso de Tor para anonimizar SSH
conexiones. Esto es til si usted tiene acceso a una consola a cualquier servidor expuesto a Internet pero no desea que el
operadores de servidores para poder crear un perl de ubicacin que podra estar viniendo.
Este truco hace uso de SSH de poco utilizada
ProxyCommand
opcin, que le permite especicar un programa para
conexiones proxy sin embargo. Cuando se utiliza esta opcin, SSH tnel todo el trco a travs de la
entrada estndar del programa y de salida. La opcin tiene la siguiente forma:
ProxyCommand <programa> <args>
Al especicar los argumentos, se puede hacer uso de la
% H
y
% P
macros. SSH ampliar estos para
ser el host y el puerto que se est conectando a la hora de ejecutar el comando. Una cosa buena acerca de
la aplicacin de proxy de esta manera es que es increblemente exible. Simplemente coloque en un programa que puede
conectarse a cualquier tipo de proxy que est interesado en utilizar.
Un programa simple que puede realizar esta tarea es connect.c (disponible en
https://savannah.gnu.org/maintenance/connect.c
), Que puede ser utilizado con de SSH
ProxyCommand
a
conexiones SSH directos a travs de un servidor proxy. Puedes descargarlo y compilarlo:
$ gcc-o conectar connect.c
Si eso produce cualquier error, compruebe los comentarios al principio de connect.c para las extremidades en conseguir que se
compilar. Una vez que hayas hecho esto, copiarlo en un lugar apropiado. Ahora, para usarlo con SSH para conectarse
a travs de Tor, ejecute un comando similar al siguiente:
$ ssh-o ProxyCommand = "/ home / admin / bin / connect-S
localhost
: 9050% h% p "\ 10.0.0.23
Reemplazar
localhost
con la direccin o nombre de host de su servidor Tor, si usted no est funcionando uno en su
mquina local. Tambin tenga en cuenta que el comando anterior ejemplo se utiliza una direccin IP, en lugar de una
nombre de host, para especicar el servidor al que conectarse. Esto evita que ssh desde la resolucin de la direccin IP mediante
su servidor de nombres antes de pasarla a la conexin del programa. Si se va a dejar que ssh no la de resolucin, que
podra revelar la ubicacin que se est conectando, ya que Tor no protegera la resolucin de nombres
trco.
As que, qu hacer si usted no conoce la direccin IP del host al que desea conectarse? Hay
una solucin fcil. Se incluye con la distribucin Tor es un programa que se llama tor-resolve . Su propsito es
resolver los nombres de host a direcciones IP al hacer consultas DNS a travs de la red Tor.
El programa tiene dos argumentos: el nombre de host para resolver y la conexin proxy SOCKS
informacin (es decir, la direccin y el puerto en el que el proxy Tor est escuchando). As que, si su proxy Tor es
se ejecutan localmente, tendr que utilizar algo como esto para resolver
www.google.com
:
$ tor-resolve www.google.com localhost: 9050
64.233.161.99
A continuacin, puede utilizar la direccin IP que devuelve
tor-resolve
cuando se ejecuta
ssh
.
Pgina 110
Vea tambin
"Anlisis Evade Trafc" [Hack # 37] , para obtener informacin sobre la conguracin de Tor y Privoxy
"Bloquear Tor" [Hack # 53] , para obtener informacin sobre el bloqueo de Tor para los usuarios de la red
Pgina 111
Hack # 39. Cifrar los archivos sin problemas
Utilizar TrueCrypt para proteger sus datos.
"Cifrar la carpeta TEMP" [Hack # 33] mostr cmo cifrar los archivos mediante la EFS de Windows, pero
tambin se reri a algunos problemas con la EFS, como la falta de apoyo a los mismos algoritmos a travs de todos
versiones de Windows en la que est disponible. Una otra gran advertencia es que las claves utilizadas por EFS son
conectado a su cuenta de usuario, por lo que te deja incapaz de acceder a los archivos en otro sistema a menos que
descifrarlos antes de trasladarse all.
Otra buena solucin para el cifrado de archivos sin problemas en Windows es TrueCrypt
(
http://www.truecrypt.org
). Con TrueCrypt, puede elegir entre crear un disco encriptado
volumen (un archivo contenedor) o para cifrar en realidad un dispositivo de disco completo (unidades de memoria USB son
especialmente bueno para esto). Adems, TrueCrypt compatible con una amplia variedad de cifrado y de hashing
algoritmos. Lo que es ms, que se ejecuta en Linux y es gratis.
Para congurar el TrueCrypt, descargar el zip. archivo desde la pgina de descargas del proyecto, descomprimir el archivo, y
iniciar el instalador: Setup.exe TrueCrypt . El instalador cuenta con todas las opciones que usted esperara.
Usted puede elegir si desea instalar para su propia cuenta o para todos los usuarios en el sistema, ya sea para
crear el men Inicio y los iconos del escritorio para ello, dnde instalarlo, y una variedad de otras opciones.
Despus de que lo hayas instalado, el lanzamiento de TrueCrypt aparecer la ventana mostrada en la Figura 3-2 .
Figura 3-2. La ventana principal de TrueCrypt
Esta ventana muestra los volmenes de TrueCrypt todos montados actualmente. Puesto que usted acaba de instalar, usted no lo har
tener ninguna, por lo que ahora es el momento de crear una. Haga clic en el botn Crear volumen para lanzar el volumen
Asistente de creacin. Usted debe ver la ventana que se muestra en la Figura 3-3 .
Pgina 112
Figura 3-3. Creacin de un volumen
La primera opcin se le presentar con es si se debe crear un volumen oculto -una de las ms fras
caractersticas TrueCrypt tiene para ofrecer. Un volumen oculto te permite crear un volumen de disco cifrado (el
volumen exterior) con una contrasea y ocultar otro volumen (con una contrasea diferente) dentro de la libre
el espacio del volumen exterior. Esto le permite revelar la clave del volumen exterior si ests obligado
para hacerlo, pero an as dejar el volumen oculto sin ser detectado. El nico inconveniente importante para hacer esto es que
el volumen exterior debe estar formateado con el sistema de archivos FAT. Sin embargo, el volumen oculto puede ser
formateado como FAT o NTFS.
Si opta por crear un volumen oculto, puede hacerlo dentro de un volumen con formato FAT que
que ya existe, o optar por crear un nuevo volumen exterior y el volumen oculto. Decida lo que decida,
usted todava estar pasando por el mismo proceso de creacin de volumen utilizado para volmenes estndar (Usted slo
hacerlo dos veces en el ltimo caso), as que vamos a cubrir la creacin de un volumen estndar de aqu.
Seleccione el botn "Crear un volumen TrueCrypt estndar" y haga clic en Siguiente. Ahora debe ver la
dilogo que se muestra en la Figura 3-4 .
Pgina 113
Figura 3-4. Seleccin del archivo de imagen o dispositivo para cifrar
Aqu es donde usted puede seleccionar la ubicacin del archivo contenedor en el que desea almacenar el cifrado
imagen de disco o particin que desea cifrar. Por ahora, probar un archivo contenedor. Introduzca un nombre para
el archivo contenedor, y haga clic en Siguiente.
Se le presentar con las opciones para el algoritmo que debe utilizar para el cifrado y hash que
algoritmo a utilizar para la generacin de la clave de cifrado. En este ejemplo, la Figura 3-5 muestra que AES ser
utiliza para el cifrado y RIPEMD-160 se utiliza para generar la clave.
Figura 3-5. Elegir un algoritmo de cifrado
Si quieres ver lo que el algoritmo de cifrado probablemente producir el ms alto rendimiento, haga clic en el
Botn de Benchmark. Despus de la ventana de la evaluacin comparativa aparece, haga clic en el botn de referencia para mostrar
la pantalla que se muestra en la Figura 3-6 .
Pgina 114
Figura 3-6. Puntos de referencia del algoritmo de cifrado
En el sistema que se utiliza aqu, que valdra la pena elegir Blowsh lugar de AES, Blowsh, porque
es signicativamente ms rpido en el descifrado. Una vez que ha elegido el tipo de algoritmos a utilizar, haga clic en Siguiente. Vas
a continuacin, ser capaz de especicar el tamao del volumen cifrado. Por supuesto, si usted est creando un oculto
volumen, usted no ser capaz de hacer que cualquier mayor que el volumen externo en el que se encuentra.
Despus de especicar el tamao, se le solicitar que establezca una contrasea. Entonces es el momento de formatear el volumen.
Elija NTFS o FAT y especicar el tamao del clster de usar, y luego haga clic en Formato. Despus
TrueCrypt termina de formatear el volumen, siga las indicaciones para salir del asistente.
Ahora puede volver a la ventana principal de TrueCrypt y seleccione el archivo contenedor de cifrado o la
dispositivo que haya cifrado. Una vez hecho esto, haga clic en el botn Mount. Se le pedir para su
contrasea. Si se acepta la contrasea, debera ver los detalles del volumen aparece en el nivel superior
panel de la ventana. Basta con hacer doble clic en la letra de la unidad para abrirla en el shell de Explorer.
Pgina 115
Hack # 40. Guardia contra el phishing
Protege a sus usuarios de los ataques de phishing mediante el despliegue SpoofGuard.
Las estafas por Internet que utilizan los sitios Web fraudulentos y correos electrnicos para obtener informacin sensible, conocido como
fraudes electrnicos , han llegado a ser absolutamente la epidemia en los ltimos aos. Y, con cada vez ms
tcnicas sosticadas como IDN spoong , se ha vuelto cada vez ms difcil para el nal medio
usuario para contar una pgina web falsa de su legtimo contraparte.
Para combatir el phishing, es necesario conocer los signos a tener en cuenta. Sin embargo, incluso con el mejor asesoramiento
sobre cmo detectar una estafa de phishing, si usted no tiene conocimientos bsicos de cmo la Web lo opera
puede ser difcil de recordar y detectar todas las seales de advertencia.
Una cosa que sin duda ayudara es tener un reloj de expertos sobre su hombro mientras usted est navegando
la Web, sin embargo, que es obviamente inviable. La segunda mejor opcin podra ser la de usar algo como
SpoofGuard (
http://crypto.stanford.edu/SpoofGuard/
).
SpoofGuard
SpoofGuard es una extensin para Internet Explorer producido por el Laboratorio de Seguridad en la Universidad de Stanford.
Permite a los usuarios detectar los sitios sospechosos fcilmente mostrando un indicador de la seal de trco sencilla (por ejemplo, verde
es seguro, el amarillo es sospechoso, y el rojo es peligroso) que muestra el nivel de seguridad del sitio actual.
Por ejemplo, la Figura 3-7 muestra el sitio PayPal legtima (ntese la luz verde en la barra de herramientas), mientras que
Figura 3-8 muestra un sitio de PayPal falsa.
Pgina 116
Figura 3-7. El verdadero sitio de PayPal
Pgina 117
Figura 3-8. Advertencia de SpoofGuard en un sitio de PayPal falsa
Aparte de la direccin URL, el sitio falso se ve muy convincente. Sin embargo, observe que la luz en el
barra de herramientas es ahora de color rojo y SpoofGuard ha aparecido amablemente una advertencia que explica por qu se cree que
este sitio es una estafa.
Instalacin SpoofGuard
Instalacin SpoofGuard es fcil. Slo tienes que ir a la pgina de descarga, donde tanto la versin por defecto y Luz
estn disponibles. La versin por defecto va a reportar la informacin al equipo de la Universidad de Stanford para ayudarles a
medir qu mtodos son los ms ecaces en la deteccin de sitios web falsicados. Si no quieres hacer esto,
descargar la versin Light, que no informa nada.
Una vez que haya descargado el instalador, ejecutarlo y reinicie Internet Explorer. Ahora debera ver una
barra de herramientas, como se muestra anteriormente. Si no lo hace, seleccione Ver ! Barras de herramientas ! WarnBar clase.
Usted puede comenzar a congurar SpoofGuard haciendo clic en el botn de la barra de opciones, lo que nos lleva a la
ventana que se muestra en la Figura 3-9 .
Pgina 118
Figura 3-9. Conguracin de las opciones SpoofGuard
SpoofGuard funciona mediante la realizacin de una serie de controles sobre la direccin y el contenido de la pgina Web que
estn viendo. Se puede congurar cada una de estas pruebas con un peso en la ventana de Opciones. Cuando uno de
las pruebas de resultados positivos, se aade su peso a la puntuacin total de la pgina. Si la calicacin de la pgina excede
El nivel de alerta total que haya congurado, SpoofGuard le avisar.
Cmo SpoofGuard Obras
Se realizan las primeras tres pruebas antes de que el navegador, incluso ha hecho que la solicitud de la pgina. Cundo
navegar a un sitio, SpoofGuard primero comprueba el dominio para ver si es similar a los dominios de la
historial del navegador. Lo hace mediante el clculo de las distancias entre el dominio del sitio que se est
navegaban hacia y de los dominios de los sitios en el historial del navegador.
La distancia es el nmero de cambios que se requieren para transformar una cadena en otra. Para
ejemplo, google.com y googIe.com podra parecer que ser el mismo en la barra de direcciones o en una web
pgina, dependiendo de qu fuente se est utilizando. La distancia entre estos dos nombres de dominio sera
Pgina 119
uno, por lo que el menor sea la distancia, ms similares que es el dominio del sitio legtimo.
A continuacin, SpoofGuard comprueba el URL para asegurarse de que no tiene un nombre de usuario sospechoso incrustado en l
(Por ejemplo, http://www.paypal.com @ 10.0.0.1 / ...), ya que estos trucos se utilizan a menudo para engaar a los usuarios para que
pensando que estn accediendo a un sitio web legtimo. Adems, SpoofGuard busca en la direccin
elementos comunes a los nombres de host, como www y usados comercialmente TLDs para asegurarse de que el dominio
de que el sitio no se oscurece. A continuacin, comprueba para asegurarse de que la direccin URL se reere a puertos de uso comn
nmeros (por ejemplo, el puerto 80 para HTTP y 443 para HTTPS).
La otra cosa que SpoofGuard cheques antes de cargar la pgina es el campo de referencia. Si este campo es
en blanco, ya sea que el usuario introduzca la URL manualmente o ella lo ha seguido desde una aplicacin externa
(Por ejemplo, un cliente de correo electrnico). SpoofGuard tambin comprueba si el remitente es un sitio conocido de correo electrnico basado en la web.
Si estos controles causan SpoofGuard para marcar el sitio como posiblemente seguro, usted puede elegir para ser
alert de que el sitio podra no ser seguro y da la opcin de impedir que ste se cargue.
Una vez que una pgina termine de cargar, SpoofGuard continuacin, realiza una serie de comprobaciones sobre el contenido de la pgina.
En primer lugar, busca campos de contrasea y, si la pgina no est asegurada con SSL, aparece un aviso en caso de descubrir
uno. A continuacin, se analizan todos los vnculos de la pgina, en busca de direcciones URL sospechosas de acuerdo con los mismos criterios
se utiliza para analizar la URL de la pgina antes de que se cargue. Por ltimo, SpoofGuard genera hashes para el
imgenes en la pgina actual y luego mira a travs de la cach del navegador y los compara con las imgenes
en los sitios visitados anteriormente. Si una imagen en la pgina actual coincide con uno en otro sitio, una bandera de advertencia
se eleva.
Adems de todos estos controles, puede congurar SpoofGuard para monitorear los nombres de usuario y
contraseas que se utilizan en ms de un sitio web. SpoofGuard supervisa las formas de los elementos que se ven
como nombres de usuario y contraseas y luego los combina para generar un hash. A continuacin, compara el hash
del nombre de usuario y contrasea en la pgina que ests visitando con valores generados anteriormente.
Mientras SpoofGuard es una herramienta muy poderosa, no es infalible. Asegrese de que se educa a sus usuarios
mirar a los sntomas de phishing. Con un poco de educacin y herramientas como SpoofGuard, puede ser que te quedes un
oportunidad.
Pgina 120
Hack # 41. Use la Web con pocas contraseas
Ayude a sus usuarios a mantenerse ms seguros, dndoles pocas contraseas para recordar.
A primera vista, este truco puede parecer contrario a la intuicin. No deberas estar usando contraseas seguras que
son nicos para cada cuenta? Bueno, s que debera, pero seamos sinceros: eso es difcil de hacer. Seguridad de TI
los profesionales deben tratar de practicar lo que predican, pero puede ser poco realista esperar que el promedio
usuario corporativo o casa para seguir este tipo de prcticas, sobre todo porque casi todo lo que parece requerir
registro de usuarios en estos das. Desafortunadamente, esto hace que la cuestin mucho ms problemtica, ya que si
el usuario utiliza la misma contrasea para varias cuentas en lnea, el descubrimiento de que la contrasea puede
poner en peligro todos ellos.
PwdHash
Una herramienta que ayuda a mejorar esta situacin es PwdHash (
http://crypto.stanford.edu/PwdHash/
),
del Laboratorio de Seguridad en la Universidad de Stanford. PwdHash es una extensin (disponible para Internet
Explorer, Firefox y Opera) que permite al usuario utilizar fcilmente contraseas seguras que son nicos para cada
sitio web con el que se registran.
PwdHash hace esto mediante la lectura de los campos de contrasea en un formulario web y dinmicamente su sustitucin por
una contrasea segura nica. Se genera la contrasea mediante la combinacin de la contrasea especicada por el usuario con
el nombre de dominio del sitio web y luego generar un hash de un solo sentido de la misma. Esto tambin alivia la
'se preocupa por la seguridad de sus navegadores de los usuarios almacena contraseas: ya no necesitan tener su
navegadores recordar sus contraseas, porque en sus mentes, cada uno de ellos slo tienen una contrasea.
Adems, el uso PwdHash puede ayudar a mitigar el resultado de los ataques de phishing [Hack # 40] . Si un usuario hace clic
en un enlace que pretende ser un sitio web legtimo y entra ignorantemente su contrasea, PwdHash se
reemplazarlo con su hash generado. A menos que los phishers en realidad lograron tomar el control de la
dominio del sitio legtimo, el dominio del phisher utiliza para calcular el hash ser diferente, por lo que el hash
ser demasiado.
Instalacin PwdHash es fcil: basta con ir a la pgina y haga clic en el instalador correspondiente al navegador
con el que desea utilizarlo. En funcin de los sistemas de seguridad de su navegador, es posible que deba permitir que
crypto.stanford.edu instalar extensiones. Una vez instalada la extensin, reinicia el navegador.
PwdHash se activa de forma selectiva para los campos de contrasea, ya sea anteponiendo la contrasea que introduzca con
@ @
o pulsando la tecla F2.
PwdHash remoto
Uno de los problemas que la aplicacin PwdHash localmente presenta es qu hacer cuando ests lejos de tu
ordenador. PwdHash remoto (
http://crypto.stanford.edu/PwdHash/RemotePwdHash/
), Se muestra en la gura
3-10 , resuelve este problema.
Pgina 121
Figura 3-10. PwdHash remoto
PwdHash remoto es una aplicacin basada en la web de algoritmo de hash de PwdHash. Se hace en
JavaScript y ejecutados dentro de su navegador, para que puedas estar seguro de que la contrasea que introduzca
no ser transmitida o almacenada en cualquier lugar. Introduzca el dominio del sitio web que desea tener acceso, a lo largo de
con la contrasea, y que va a generar el hash adecuada para usted.
Aunque PwdHash y su primo lejano son increblemente simples, son herramientas muy poderosas.
PwdHash exhibe una de las principales seas de identidad de una buena seguridad: facilidad de uso. Si te las polticas de seguridad
hacer que no se siguen en espritu (como muchas de las polticas de contrasea no lo son), no son buenos. Esta herramienta va un
largo camino hacia el mantenimiento de los administradores y usuarios nales felices.
Pgina 122
Hack # 42. Cifrar Su correo electrnico con Thunderbird
Utilice cifrado fuerte con Thunderbird de Mozilla para proteger su correo electrnico de electrnica
sgones.
Con el crecimiento de Internet, el correo electrnico se ha convertido en omnipresente. Usted tendra que buscar mucho para
encontrar a alguien que usa una computadora, pero no tiene una direccin de correo electrnico. Sin embargo, como con cualquier forma de
comunicacin interpersonal, cierta informacin compartida entre las partes podra ser de un sensible
naturaleza. Debido a esto, es una maravilla que la mayora de correo electrnico se enva como texto sin formato no cifrado.
Una forma de empezar fcilmente con el correo electrnico encriptado es usar Thunderbird de la Fundacin Mozilla
cliente de correo electrnico (
http://www.mozilla.com/thunderbird/
) Con la extensin Enigmail
(
http://enigmail.mozdev.org
). Esta extensin permite a Thunderbird para integrar el cifrado fuerte
casi a la perfeccin con potente cifrado de clave pblica basado en el estndar OpenPGP.
Conguracin de Thunderbird
Por supuesto, lo primero que tendr que hacer, si no lo ha hecho, es instalar y congurar Thunderbird
para acceder a su cuenta de correo electrnico. El siguiente paso es descargar GnuPG para Windows
(
http://www.gnupg.org/download/index.html
). Una vez que hayas hecho esto, inicie el instalador y siga
las indicaciones presentadas por el asistente de instalacin hasta que se haya completado la instalacin.
A continuacin, descargar la extensin Enigmail (
http://enigmail.mozdev.org/download.html
), Haga
clic y guardarlo.
ADVERTENCIA
Si utilizas Firefox y no optar por guardar la extensin, Firefox incorrectamente intentar instalarlo como Firefox
extensin.
Despus de que hayas hecho esto, empezar a Thunderbird, vaya al men Herramientas y haga clic en Extensiones. Usted debe
Ahora ver una ventana como la que se muestra en la Figura 3-11 .
Figura 3-11. La ventana de Thunderbird Extensiones
Haga clic en el botn Instalar para abrir un dilogo de seleccin de archivo. Busque el archivo que acaba de descargar y haga clic en
Abrir. Se le presentar un cuadro de dilogo como el que se muestra en la Figura 3-12 .
Pgina 123
Figura 3-12. Instalacin de la extensin Enigmail
Haga clic en Instalar ahora, y usted debera ver Enigmail aparece en la ventana de extensiones.
Para cargar la extensin, reiniciar Thunderbird. Ahora debera ver un nuevo men OpenPGP, como se muestra en
Figura 3-13 .
Pgina 124
Figura 3-13. Men OpenPGP del Enigmail
Ahora tiene que decirle Enigmail dnde encontrar la instalacin de GnuPG. Abra el men OpenPGP y
seleccione Preferencias. Ahora debera ver el cuadro de dilogo que se muestra en la Figura 3-14 .
Pgina 125
Figura 3-14. Contando Enigmail donde se encuentra gpg.exe
Haga clic en el botn Examinar situado junto al elemento "ruta ejecutable GnuPG", localice el gpg ejecutable (por ejemplo,
C: \ Archivos de programa \ GNU \ GnuPG \ gpg.exe ), y haga clic en Aceptar.
Proporcionar un par de claves pblica / privada
Ahora, usted tendr que proporcionar Enigmail con un par de claves pblica / privada . La clave pblica es lo que usan los dems
enviar correo electrnico cifrado a usted. Los datos cifrados con la clave pblica slo pueden ser descifrados con su
clave privada. As mismo, puede rmar un correo electrnico mediante el cifrado con su clave privada, de manera que otros puedan
descifrar slo con su clave pblica. Dado que slo conoce su clave privada, lo que asegura que el receptor
que el correo electrnico es realmente de usted.
Al utilizar Enigmail usted tiene la opcin de importar un par de claves existente o generar una nueva.
Importacin de un par de claves existente
Para importar un par de claves existente, abra el men OpenPGP y selecciona de administracin de claves para que aparezca la
ventana mostrada en la Figura 3-15 .
Pgina 126
Figura 3-15. La ventana de gestin de claves
Seleccione Archivo ! Importar claves desde archivo y busque sus archivos clave en el dilogo que aparece. Despus
importar la clave, debera ver que aparece en la ventana de gestin de claves.
Generar un nuevo par de claves
Si usted necesita para generar una nueva clave, ve al men OpenPGP y selecciona administracin de claves. En la clave
ventana de administracin, seleccione Generar ! nuevo par de claves. Despus de hacerlo, debera ver el cuadro de dilogo
se muestra en la Figura 3-16 .
Figura 3-16. Generar un nuevo par de claves
En este men, introducir una contrasea para proteger su clave privada e indicar cunto tiempo debe ser la clave
vlido antes de que caduque. Una vez que haya terminado la conguracin de su contrasea y la informacin de expiracin, haga clic en el
Botn "Generar clave". Despus de generar la clave, debera aparecer en la lista de las teclas que aparecen en el
Ventana de administracin de claves OpenPGP.
Envo y recepcin de correo electrnico encriptado
Ahora debera ver un men OpenPGP, como se muestra en la Figura 3-17 , Al crear mensajes.
Pgina 127
Figura 3-17. Redaccin de un mensaje cifrado en Thunderbird
Firmar mensajes haciendo clic OpenPGP ! Firmar mensaje y cifrar mensajes haciendo clic
OpenPGP ! Cifrar mensaje. Antes de enviar un mensaje cifrado a alguien, tendr que importar
la clave pblica de esa persona en su llavero. Usted puede hacer esto siguiendo el mismo mtodo para
importar su propio par de claves pblica y privada (es decir, al hacer clic en Archivo ! Importar claves desde archivo en la clave
ventana de gestin). Despus de que haya importado la clave pblica del destinatario, ser automticamente
utilizada para cifrar el mensaje al enviarlo.
Cuando se recibe correo cifrado, todo lo que tiene que hacer es hacer clic en el mensaje y Thunderbird
le pedir la contrasea de su clave privada. Despus de aceptar la contrasea, se mostrar el
mensaje no cifrado para usted.
Pgina 128
Hack # 43. Cifrar Su e-mail en Mac OS X
Utilice cifrado fuerte para proteger su correo electrnico cuando se utiliza un Mac.
"Cifrar su correo electrnico con Thunderbird" [Hack # 42] muestra cmo congurar GPG con Mozilla
Thunderbird con la extensin Enigmail. Mientras Thunderbird es multiplataforma y se ejecutar en
Mac OS X, que podra no ser su taza de t. Este truco muestra cmo congurar GPG con Apple
Mail.app , la aplicacin de correo predeterminada se incluye con Mac OS X.
Instalacin de GPG
La primera cosa a hacer es instalar una copia de GPG, un programa que utiliza el cifrado fuerte de clave pblica para
proteger sus datos. Basta con descargar Mac GPG de
http://macgpg.sourceforge.net
y abrir el disco
imagen. Usted debe ver la ventana que se muestra en la Figura 3-18 .
Figura 3-18. Ventana de instalacin de Mac GPG
Inicie la instalacin haciendo doble clic sobre el mpkg. archivo. Siga las instrucciones y asegrese de elegir
su volumen de arranque cuando se le presenta la opcin de elegir dnde instalar GnuPG.
Crear una clave GPG
Antes de instalar GPGMail, tendr que crear un par de claves pblica y privada, si usted no tiene uno
ya. La clave pblica es lo que otros usan para enviar correo electrnico cifrado a usted. Las claves pblicas pueden ser
desencriptado con la clave privada. As mismo, puede rmar un correo electrnico mediante el cifrado con su privado
clave, por lo que los dems pueden descifrar slo con su clave pblica. Dado que slo conoce su clave privada, esto
asegura al receptor de que el correo electrnico es realmente de usted.
Usted puede hacer esto mediante la ejecucin del siguiente comando desde la lnea de comandos, que se puede acceder por
abrir Terminal.app :
$ gpg - gen-key
Pgina 129
Luego, slo tienes que seguir las instrucciones. Las opciones por defecto deberan ser generalmente bien.
Como alternativa, puede crear una clave GPG mediante GPG Acceso a Llaveros, que est disponible desde el
Mac GPG sitio. Slo tienes que descargar y poner en marcha el paquete de aplicaciones. Se le presentar un cuadro de dilogo
como el que se muestra en la Figura 3-19 .
Figura 3-19. Crear una clave GPG
Al hacer clic en el botn Generar, Mac GPG le guiar a travs del resto del proceso.
Instalacin GPGMail
Ahora que tiene una clave, puede instalar GPGMail. Puedes descargarlo desde
http://www.sente.ch/software/GPGMail/
y abra el archivo de imagen de disco. A continuacin, haga doble clic en la instalacin de
Icono GPGMail. Esta AppleScript copiar el GPGMail.mailbundle archivo a las Biblioteca / Mail / Bundles
carpeta en el directorio de inicio y luego activar el plug-in de apoyo para Mail.app .
La prxima vez que inicie Mail.app , debera ver una nueva seccin llamada PGP en su panel de Preferencias,
como se muestra en la gura 3-20 .
Pgina 130
Figura 3-20. La ventana de Preferencias de PGP en Mail.app
Asegrese de que la clave que ha creado aparece en la lista desplegable. Para todo lo dems, el valor predeterminado
conguracin debera funcionar bien. Ahora, encontrar un amigo con un GPG o clave PGP cifrado para el intercambio de
un correo electrnico con, para que pueda probarlo.
Envo y recepcin de correo electrnico encriptado
Al componer mensajes, ahora vers dos casillas adicionales, uno para la rma del mensaje
y otra para la encriptacin de que, como se muestra en la gura 3-21 .
Figura 3-21. Redaccin de un mensaje cifrado en Mail.app
Pgina 131
Los cuadros de lista desplegable al lado de las casillas de vericacin deben seleccionar de forma automtica la tecla adecuada para usted.
Cuando se recibe correo cifrado, todo lo que tiene que hacer es hacer clic en el mensaje y Mail.app le pedir
por la contrasea de su clave privada. A continuacin se mostrar el mensaje no cifrado para usted.
Pgina 132
Captulo 4. Firewalling
En el diseo de una red, a menudo es deseable denir polticas que rigen cmo y dnde cierta
Se puede acceder a los servicios de red vitales. El rewall es una tecnologa clave que es fundamental en
hacer cumplir estas polticas y puede permitir que los administradores de red para delinear las relaciones de conanza entre
redes y hosts con un grano no de detalle.
Mediante el establecimiento de un servidor de seguridad, puede evitar el acceso no autorizado a los servicios a nivel de red antes de
un atacante se le da la oportunidad de tratar de explotarlos. Puede utilizar un servidor de seguridad no slo para limitar
lo que los ujos de informacin en una red, sino tambin para evitar la salida de informacin. Si lo hace, ayuda en la
prevenir la propagacin de gusanos y ayuda a detener importante informacin condencial salga de una
empresa. Adems, los registros del rewall pueden ser excelentes herramientas para ayudar a entender donde las amenazas
a la red se originan.
Una variedad de servidores de seguridad estn disponibles en la actualidad. Adems de las muchas aplicaciones de rewall que son
disponible, Linux, BSD y Windows todas incluyen algn tipo de apoyo de cortafuegos. Este captulo muestra
cmo congurar los servidores de seguridad con Linux, FreeBSD, OpenBSD y Windows, as como la forma de probar su
conjuntos de reglas de rewall. Tambin se ver cmo realizar el ltrado de direcciones MAC y cmo crear una puerta de enlace
que va a autenticar las mquinas basadas en las credenciales de inicio de sesin. Por ltimo, usted aprender algunos trucos adicionales
mantener ciertos tipos de trco de salida de la red.
Hack # 44. Cortafuegos con Netlter
Proteja su red con funciones de cortafuegos de gran alcance de Linux.
Linux siempre ha tenido la capacidad de ltrado de paquetes, y ha recorrido un largo camino desde los primeros das
tanto en trminos de potencia y exibilidad. La primera generacin de cdigo de ltrado de paquetes, llamado ipfw (por
"Firewall IP"), a condicin de capacidad de ltrado de base. Ya que era un tanto inexible e inecaz para
conguraciones complejas, ipfw rara vez se utilizan ahora. La segunda generacin de ltrado IP se llama IP
cadenas . Mejor en gran medida de ipfw y todava est en uso comn. La ltima generacin de ltrado,
llamado Netlter , es manipulado con la comando y se utilizarn exclusivamente con la 2.4.xy
iptables
serie posterior de los granos. Aunque Netlter es el componente del ncleo y iptables es el espacio de usuario
herramienta de conguracin, estos trminos se usan indistintamente.
Un concepto importante en Netlter es la cadena , que consiste en una lista de reglas que se aplican a
paquetes a medida que entran, salen o atraviesan el sistema. El kernel dene tres cadenas por defecto, pero nuevo
cadenas de reglas se pueden especicar y vinculados a las cadenas predenidas. La
ENTRADA
cadena se aplica a los paquetes
que son recibidas por y destinado para el sistema local, y el
SALIDA
cadena se aplica a los paquetes que estn
transmitida por el sistema local. Por ltimo, la
ADELANTE
cadena se aplica siempre que se dirigir un paquete
a partir de una interfaz de red a otro a travs del sistema. Se utiliza cada vez que el sistema est actuando como
un router o gateway, y se aplica a los paquetes que no son ni procedentes de ni destinado para el
sistema local.
La
iptables
comando realiza cambios en las cadenas y conjuntos de reglas Netlter. Uso
iptables
, Puede
crear nuevas cadenas, eliminar las cadenas, la lista de las reglas de una cadena, a ras cadenas (es decir, eliminar todas las reglas de una
cadena), y establecer la accin predeterminada para una cadena.
iptables
Tambin le permite insertar, aadir, eliminar y
reemplazar las reglas en una cadena.
Conguracin de la poltica de ltrado
Antes de empezar con algunas reglas de ejemplo, es importante establecer un comportamiento predeterminado para todo el
Pgina 133
cadenas. Para ello, utilice la
-P
(Que signica "poltica") de lnea de comandos:
# iptables-P ENTRADA DROP
# iptables-P FORWARD DROP
Esto asegura que slo aquellos paquetes cubiertos por normas posteriores que especique se hace ms all de
el servidor de seguridad. Despus de todo, con el relativamente pequeo nmero de servicios que la red es probable que
proporcionar, es mucho ms fcil de especicar explcitamente todos los tipos de trco que desea permitir lo que es
especique todo el trco que no es as.
TIP
Tenga en cuenta que no se especica una poltica predeterminada para la cadena OUTPUT. Esto se debe a que usted desea permitir que el trco salga de
el propio servidor de seguridad en una manera normal.
Con la poltica por defecto se establece en
DROP
, Deber especicar lo que realmente est permitido. Aqu es donde usted necesitar
averiguar qu servicios deben ser accesibles para el mundo exterior. Para el resto de ellas
ejemplos, se supone que
eth0
es la interfaz externa del servidor de seguridad y
eth1
es la interna. La
red muestra contendr un servidor web (192.168.1.20), un servidor de correo (192.168.1.21), y un DNS
servidor (192.168.1.18), una conguracin bastante mnimo para una autogestin presencia en Internet.
Comenzaremos especicar reglas momentneamente, pero en primer lugar, eliminamos ltrado desde la interfaz de bucle invertido:
# iptables-A INPUT-i lo-j ACCEPT
# iptables-A OUTPUT-o lo-j ACCEPT
Regla Ejemplos
Ahora, vamos a construir algunas reglas para permitir que este trco a travs de. En primer lugar, hacer una regla para permitir el trco de TCP
puerto 80-el puerto estndar para servidores web-para pasar al servidor web sin restricciones por el servidor de seguridad:
# iptables-A FORWARD-m Estado - Estado de Nueva-p tcp \
-D 192.168.1.20 - dport 80-j ACCEPT
Y ahora para el servidor de correo, que utiliza el puerto TCP 25 para SMTP:
# iptables-A FORWARD-m Estado - Estado de Nueva-p tcp \
-D 192.168.1.21 - dport 25-j ACCEPT
Tambin puede ser que desee permitir POP3 remoto, IMAP e IMAP + SSL Acceso:
POP3
# iptables-A FORWARD-m Estado - Estado de Nueva-p tcp \
-D 192.168.1.21 - dport 110-j ACCEPT
IMAP
# iptables-A FORWARD-m Estado - Estado de Nueva-p tcp \
-D 192.168.1.21 - dport 143-j ACCEPT
IMAP + SSL
# iptables-A FORWARD-m Estado - Estado de Nueva-p tcp \
-D 192.168.1.21 - dport 993-j ACCEPT
Pgina 134
Por ltimo, permitir el acceso DNS a travs del puerto 53:
# iptables-A FORWARD-m Estado - Estado de Nueva-p tcp \
-D 192.168.1.21 - dport 53-j ACCEPT
A diferencia de los otros servicios, DNS puede utilizar tanto TCP y UDP 53. Uso de una denegacin predeterminada marcas de poltica
es un poco ms difcil de utilizar UDP para DNS. Esto se debe a la poltica se basa en el uso de estado-
reglas de seguimiento, y puesto que UDP es un protocolo sin estado, no hay manera de seguirlo. En este caso, se puede
congurar el servidor DNS ya sea para utilizar slo TCP, o para utilizar un puerto de origen UDP 53 para cualquier respuesta
que enva a los clientes que estaban utilizando UDP para realizar consultas al servidor de nombres.
Si el servidor DNS est congurado para responder a los clientes que utilizan el puerto UDP 53, puede permitir este trco
a travs de las siguientes dos reglas:
# iptables-A FORWARD-p udp-d 192.168.1.18 - dport 53-j ACCEPT
# iptables-A FORWARD-p udp-s 192.168.1.18 - sport 53-j ACCEPT
La primera regla permite el trco destinado para el servidor DNS en su red, y la segunda regla permite
respuestas del servidor DNS para salir de la red.
Unas palabras sobre la Inspeccin de estado
Tal vez se pregunte cul es la
-M Estado
y
- Estado
argumentos estn a punto. Estas dos opciones permiten
nos permite utilizar el motor de paquetes de inspeccin de estado de Netlter. El uso de estas opciones le dice Netlter que desea
para permitir que slo las nuevas conexiones con los pares IP y puerto de destino que ha especicado. Cuando estos
reglas estn en su lugar, el paquete de activacin es aceptada y su informacin se introduce en una tabla de estado.
Ahora, se puede especicar que desea permitir todo el trco saliente que se asocia con estos
conexiones mediante la adicin de una regla como esta:
# iptables-A FORWARD estado-m - ESTABLECIDO estado,-j ACCEPT RELACIONADOS
Lo nico que queda ahora es para permitir el trco de las mquinas detrs del rewall para llegar a la parte exterior
mundo. Para ello, utilice una regla como la siguiente:
# iptables-A FORWARD-m Estado - Estado de Nueva-i eth1-j ACCEPT
Esta norma entra en cualquier conexin de salida de la red interna en la tabla de estado. Funciona
paquetes que coinciden con entrada en la interfaz interna del servidor de seguridad que estn creando nuevas conexiones.
Si usted fue congurando un servidor de seguridad que tena mltiples interfaces internas, se podra haber utilizado un booleano
NO
operador en la interfaz externa (por ejemplo,
-I! eth0
). Ahora, todo el trco que entra en el servidor de seguridad
a travs de la interfaz externa que corresponde a una conexin de salida ser aceptada por la
anterior regla, porque esta norma habr puesto la conexin correspondiente en la tabla de estado.
Pedidos Reglas
En estos ejemplos, el orden en que se introdujeron las normas en realidad no importa. Puesto que usted es
que funciona con un defecto
NEGAR
poltica, todas las reglas tienen un
ACEPTAR
objetivo. Sin embargo, si usted tena
destinos especicados del
DROP
o
RECHAZAR
como argumentos a la
-J
opcin, habra tenido que tomar un poco de
un cuidado especial para asegurarse de que el orden de esas normas se traducira en el efecto deseado. Recuerde que el
primera regla que coincide con un paquete siempre se activa en las cadenas de reglas se recorren, as que pide en regla puede
Pgina 135
a veces ser de importancia crtica.
Tambin debe tenerse en cuenta que el orden de reglas puede tener un impacto en el rendimiento en algunas circunstancias. Para
ejemplo, la regla se ha mostrado anteriormente que coincide ESTABLECIDO y RELACIONADOS estados deben especicarse
antes que cualquiera de las otras reglas, ya que la regla en particular ser equiparado con mucha ms frecuencia que cualquiera de los
reglas que coincidirn slo en las nuevas conexiones. Poner esa regla primera evitar que los paquetes que son
ya asociado a una conexin de tener que atravesar el resto de la cadena antes de encontrar una regla
partido.
Para completar la conguracin del servidor de seguridad, tendr que habilitar el reenvo de paquetes. Ejecute este comando:
# echo 1> / proc/sys/net/ipv4/ip_forward
Esto le dice al kernel para reenviar paquetes entre las interfaces siempre que sea apropiado. Para que esto se haga
automticamente durante el arranque, aada la siguiente lnea a / etc / sysctl.conf :
net.ipv4.ip_forward = 1
Si su sistema no soporta el / etc / sysctl.conf , usted puede poner el precedente
eco
comando en una de
su arranque rc scripts, tales como / etc / rc.local .
Otro parmetro kernel til es
rp_lter
, Que ayuda a prevenir la suplantacin de IP. La ejecucin del siguiente
comando habilita la vericacin de direccin de origen mediante la comprobacin de que la direccin IP para cualquier paquete dado cuenta
llegado a la interfaz de red se espera:
# echo 1> / proc/sys/net/ipv4/conf/default/rp_lter
Tambin puede habilitar la vericacin de la direccin fuente editando / etc / sysctl.conf en los sistemas que lo soportan,
o bien poner a los cambios en su rc.local . Para habilitar
rp_lter
en su sysctl.conf , aada el siguiente
line:
net.ipv4.conf.all.rp_lter = 1
Para guardar todas las reglas, o bien grabarlos en un script de shell o utilizar su de la distribucin de Linux en particular
manera de salvarlos. Haced esto en Red Hat ejecutando el siguiente comando:
# iptables / sbin / service ahorrar
Esto ahorra todas las reglas de ltrado activas actualmente a / etc / syscong / iptables . Para lograr el mismo efecto en virtud
Debian, editar / etc / default / iptables y conjunto
enable_iptables_initd = true
.
Despus de hacer esto, ejecute el siguiente comando:
# / etc / init.d / iptables save_active
Cuando la mquina se reinicia, tu iptables automticamente se restaurar la conguracin.
Pgina 136
Hack # 45. Firewall con ltrado de paquetes de OpenBSD
Utilizar las funciones de cortafuegos de OpenBSD para proteger su red.
Packetlter , comnmente conocido como PF , es el sistema de cortafuegos disponible en OpenBSD. Si bien es un
caracterstica relativamente nueva del sistema operativo, que ya ha superado IPFilter, el sistema se
reemplazado, en ambas caractersticas y exibilidad, e incluso se ha convertido en una parte de FreeBSD como de 5.3-RELEASE.
Acciones PF muchas caractersticas con Netlter de Linux, y mientras Netlter es ms fcilmente extensible con
mdulos, PF eclipsa en sus capacidades de normalizacin de trco y caractersticas de registro mejoradas.
OpenBSD tiene soporte PF fuera de la caja. Sin embargo, bajo FreeBSD, tendr que permitir, como mnimo, la
siguientes opciones de conguracin del kernel:
pf dispositivo
pog dispositivo
Si usted no tiene estas opciones habilitadas, aadirlos en y reconstruir y volver a instalar el kernel. Para obtener ms
informacin sobre cmo hacerlo, consulte la seccin "Compilacin e instalacin de un kernel personalizado" de la
Manual de FreeBSD.
Para comunicarse con la parte de kernel del PF, tendrs que utilizar la
pfctl
comando. A diferencia de la
iptables
comando que se utiliza con Netlter de Linux,
pfctl
No se utiliza para especicar las reglas individuales,
sino que utiliza su propia conguracin y reglas del lenguaje de especicacin. Para congurar realidad PF, que
debe editar / etc / pf.conf .
Conguracin de PF
Regla lenguaje de especicacin de PF es realmente muy poderoso, exible y fcil de usar. El pf.conf archivo es
dividido en siete secciones, cada una de las cuales contiene un determinado tipo de regla. No es necesario utilizar todos
de las secciones; si usted no necesita un tipo especco de regla, simplemente puede omitir esa seccin de la
presentar.
La primera seccin es para macros. En esta seccin, puede especicar variables para que contengan cualquiera de los valores individuales o
listas de valores para su uso en las siguientes secciones del archivo de conguracin. Al igual que una variable de entorno o de un
identicador de programacin de lenguaje, una macro debe empezar con una letra y puede contener dgitos y
subraya.
Estos son algunos ejemplos de macros:
Ext_if = "de0"
Int_if = "de1"
RFC1918 = "{192.168.0.0/16, 172.16.0.0/12, 10.0.0.0 / 8}"
Puede hacer referencia a una macro ms adelante con el prejo con el
$
carcter:
cada de bloques rpida sobre $ ext_if de cualquier a $ RFC1918
La segunda seccin le permite especicar las tablas de direcciones IP a usar en las reglas posteriores. Uso de tablas para
listas de direcciones IP es mucho ms rpido que usar una macro, especialmente para un gran nmero de direcciones IP,
ya que cuando se utiliza una macro en una regla, se expandir a varias reglas, cada una correspondiente en un
nico valor que gura en la macro. Utilizando una tabla aade slo una sola regla cuando se ampla.
Por lo tanto, en lugar de utilizar la macro del ejemplo anterior, se podra denir una tabla para mantener la
nonroutable RFC 1918 direcciones IP:
mesa <rfc1918> const {192.168.0.0/16, 172.16.0.0/12, 10.0.0.0 / 8}
La
const
palabra clave asegura que esta tabla no puede ser modicado una vez que se ha creado. Especicar tablas
Pgina 137
en una norma de la misma forma en que fueron creados:
cada de bloques rpida sobre $ ext_if de cualquier a <rfc1918>
Tambin puede cargar una lista de direcciones IP en una tabla utilizando el
expediente
palabra clave:
archivo de la tabla <spammers> "/ etc / spammers.table"
Si decide no utilizar el
const
palabra clave, puede agregar direcciones a una tabla mediante la ejecucin de un comando
como esta:
pfctl-t spammers-T aadir 10.1.1.1
Adems, puede eliminar una direccin mediante la ejecucin de un comando como este:
pfctl-t spammers-T eliminar 10.1.1.1
Para mostrar el contenido de una tabla, puede ejecutar el siguiente comando:
pfctl-t spammers-T espectculo
Adems de las direcciones IP, tambin puede especicar nombres de host. En este caso, todas las direcciones vlidas devueltos
por la resolucin se inserta en la tabla.
Opciones globales
La siguiente seccin del archivo de conguracin contiene opciones que afectan al comportamiento de los PF. Por
modicar las opciones, puede controlar los tiempos de espera de la sesin, los tiempos de espera de desfragmentacin, el estado de la tabla
transiciones, recopilacin estadstica, y otros comportamientos. Especique las opciones mediante el uso de la
conjunto
palabra clave. La
opciones disponibles son demasiado numerosos como para hablar de todos ellos en detalle signicativo; Sin embargo, lo haremos
discutir las ms pertinentes y tiles.
Una de las opciones ms importantes es
block-poltica
. Esta opcin especica el comportamiento predeterminado de la
bloque palabra clave y puede ser congurado para caer silenciosamente paquetes coincidentes mediante la especicacin de soltar .
Alternativamente, puede utilizar
retorno
para especicar que los paquetes que coincidan con una regla de bloqueo generarn un TCP
restablecer o un paquete ICMP inaccesible, dependiendo de si el paquete de activacin es TCP o UDP. Este
es similar a la
RECHAZAR
objetivo en Netlter de Linux.
Por ejemplo, para tener los paquetes de abandono PF en silencio por defecto, aadir una lnea como esta en / etc / pf.conf :
establecer cada de bloque de polticas
Adems de establecer la
block-poltica
, Puede obtener otras estadsticas, como el recuento de paquetes y bytes,
para una interfaz. Para habilitar esta para una interfaz, aada una lnea similar a esta en el chero de conguracin:
establecer de0 loginterface
Tenga en cuenta que usted puede recoger estas estadsticas en una sola interfaz a la vez. Si usted no desea
recoger las estadsticas, se puede sustituir el nombre de la interfaz con el
ninguno
palabra clave.
Para utilizar mejor los recursos en las redes ocupadas, tambin puede modicar los valores de tiempo de espera de sesin. Ajuste
el intervalo de tiempo de espera con un valor bajo puede ayudar a mejorar el rendimiento del rewall de alto trco
redes, pero a expensas de dejar caer las conexiones inactivas vlidos.
Para establecer el tiempo de espera de sesin (en segundos), poner una lnea similar a la siguiente en / etc / pf.conf :
intervalo establecido de tiempo de espera 20
Con este ajuste en su lugar, cualquier conexin TCP que est inactivo durante 20 segundos automticamente se restablecer.
PF tambin puede optimizar el rendimiento del hardware de gama baja mediante la regulacin de su uso de memoria con respecto a cmo
muchos estados se pueden almacenar en un momento dado o la cantidad de fragmentos pueden residir en la memoria para el fragmento
Pgina 138
reensamblaje. Por ejemplo, para establecer el nmero de estados a 20.000 y el nmero de entradas utilizadas por el
fragmento reassembler a 15,000, usted podra poner estas lneas en su pf.conf archivo:
lmite establecido arma 20000
lmite establecido frags 15000
Como alternativa, puede combinar estas entradas en una sola sentencia como esta:
lmite establecido {20000 establece, frags 15000}
Trco reglas de normalizacin
La siguiente seccin es para las reglas de normalizacin del trco. Reglas de este tipo aseguran que los paquetes que pasa
a travs del rewall responder a criterios de fragmentacin, identicadores IP, TTL mnimos, y otra
atributos de un datagrama TCP. Las reglas en esta seccin estn precedidos por el
matorral
palabra clave. En general,
slo poner
fregar todo
est muy bien. Sin embargo, si es necesario, puede llegar a ser muy detallado en la especicacin de lo que
quiero normalizado y cmo desea normalizar. Ya que se puede utilizar el ltrado-regla general de PF
sintaxis para determinar qu tipos de paquetes de una regla de matorral coincidir, puede normalizar los paquetes con un
gran control.
Una de las posibilidades ms interesantes es aleatorizar todos los ID de IP en los paquetes de salir de su
red para el mundo exterior. Al hacer esto, usted puede asegurarse de que los pasivos de explotacin-system-
mtodos de determinacin basados en IP IDs se rompern cuando se trata de averiguar el sistema operativo de un
sistema protegido por el rewall. Debido a que tales mtodos se basan en el anlisis de cmo el operativo del host
sistema incrementa el ID de la propiedad intelectual en sus paquetes de salida, y el servidor de seguridad se asegura de que los ID de propiedad intelectual en todo el
los paquetes que salen de la red son totalmente al azar, va a ser muy difcil de igualar contra una
patrn conocido para un sistema operativo.
Aleatorizacin ID IP tambin ayuda a evitar la enumeracin de las mquinas en una direccin de red traducida
(NAT) medio ambiente. Sin IDs IP aleatorias, alguien fuera de la red puede realizar una estadstica
anlisis de los ID de IP que estn siendo emitidos por la puerta de enlace NAT con el n de contar el nmero de mquinas en
la red privada.
Para habilitar la generacin de ID aleatorio en una interfaz, ponga una lnea como la siguiente en / etc / pf.conf :
frote sobre todo de0-id aleatorio
Tambin puede utilizar el
matorral
directiva para reensamblar paquetes fragmentados antes de remitirlos a la
sus destinos. Esto ayuda a evitar la fragmentacin de paquetes especialmente (como los paquetes que se superponen) de
evadir los sistemas de deteccin de intrusos que estn sentados detrs del rewall.
Para habilitar el reensamblaje de fragmentos en todas las interfaces, en pocas palabras la siguiente lnea en la conguracin
archivo:
fragmento matorrales vuelva a montar
Si desea limitar el reensamblaje de un solo interfaz, cambiar a algo as como:
fregar en el de0 todo vuelva a montar fragmento
Esto permitir el reensamblaje fragmento para la
de0
interfaz.
Reglas de Filtrado
Las siguientes dos secciones de la pf.conf archivo implican la puesta en cola de paquetes y traduccin de direcciones, pero ya que esta
truco se centra en el ltrado de paquetes, nos saltaremos esas. Esto nos lleva a la ltima seccin, que contiene la
reglas de ltrado de paquetes reales. En general, la sintaxis de una regla de ltrado puede ser denido por la siguiente:
Pgina 139
direccin de la accin [de registro] [rpida] en int [af] [protocolo proto] \
desde src_addr [src_port puerto] para dst_addr [dst_port puerto] \
[Tcp_ags] [Estado]
En PF, una regla puede tener slo dos acciones:
bloque
y
pasar
. Como se ha expuesto anteriormente, la poltica de bloques
afecta el comportamiento de la
bloque
accin. Sin embargo, se puede modicar el
bloque
El comportamiento de la accin de
reglas especcas especicando
bloque
junto con la accin, como en
cada de bloques
o
retorno del bloque
.
Adems, puede utilizar
bloque de retorno-icmp
, Que devolver un mensaje ICMP inaccesible por
predeterminado. Tambin puede especicar un tipo de ICMP, en cuyo caso ese tipo de mensaje ICMP ser
devuelto.
Para la mayora de los propsitos, usted querr empezar con una poltica de denegacin predeterminada; de esa manera, usted puede aadir ms tarde
reglas para permitir el trco especco que desea a travs del rewall.
Para congurar una poltica predeterminada para todas las interfaces niegue, ponga la siguiente lnea en / etc / pf.conf :
bloquear todo
Ahora usted puede agregar reglas para permitir el trco a travs del rewall. En primer lugar, mantener la interfaz de bucle invertido
sin ltrar utilizando esta regla:
pasar rpido sobre todo lo0
Observe el uso de la
rpido
palabra clave. Normalmente, PF continuar a travs de la lista de reglas, incluso si una regla tiene
ya permita un paquete para pasar, con el n de ver si una regla ms especca que aparece ms adelante en la
archivo de conguracin descartar el paquete. El uso de la
rpido
palabra clave modica este comportamiento, causando
PF para detener el proceso del paquete en esta regla si coincide con el paquete y para tomar la accin especicada.
Con un uso cuidadoso, esto puede mejorar en gran medida el rendimiento de un conjunto de reglas.
Para evitar que los servidores externos de suplantacin de direcciones internas, puede utilizar el
antispoof
palabra clave:
antispoof rpida por $ int_if inet
A continuacin, usted querr bloquear todos los paquetes que tienen una direccin IP RFC 1918 nonroutable entren o
dejando su interfaz externa. Dichos paquetes, a menos que explcitamente permitido ms tarde, seran capturados por su
poltica de denegacin predeterminada. Sin embargo, si se utiliza una regla para que coincida especcamente estos paquetes y utilizar el
rpido
de palabras clave, de la siguiente manera, puede aumentar el rendimiento:
cada de bloques rpida sobre $ ext_if de cualquier a <rfc1918>
Si desea permitir que el trco destinado a un servidor web especco (por ejemplo, 192.168.1.20) en la red, el uso
una regla como esta:
Aconteci en el da $ ext_if proto tcp de cualquier puerto a 192.168.1.20 80 \
modular las banderas del estado S / SA
Esto permitir que los paquetes destinados al puerto TCP 80 a 192.168.1.20 slo si se estn estableciendo nuevas
conexiones (es decir, si el
SYN
bandera est activa), y entrar en las conexiones dentro de la tabla de estado. La
modular
palabra clave asegura que un nmero de secuencia inicial de alta calidad (ISN) se genera para el
sesin, que es importante si el sistema operativo en uso en cualquiera de los extremos de la conexin utiliza una pobre
algoritmo para generar sus ISN.
Del mismo modo, si quieres pasar el trco hacia y desde un servidor de correo electrnico en particular (por ejemplo, la direccin IP
192.168.1.21), utilice esta regla:
Aconteci en el da $ ext_if proto tcp from any to 192.168.1.21 \
el puerto {smtp, pop3, imap2, imaps} modular banderas estatales S / SA
Observe que puede especicar mltiples puertos para una regla separndolas con comas y adjuntando
ellos entre llaves. Tambin puede utilizar los nombres de servicio, tal como se dene en / etc / services , en lugar de especicar
Pgina 140
nmeros de puerto de los servicios.
Para permitir el trco a un servidor DNS especco (por ejemplo, 192.168.1.18), agregar una regla como esta:
Aconteci en el da $ ext_if proto tcp de cualquier puerto a 192.168.1.18 53 \
modular las banderas del estado S / SA
Esto deja el rewall bloquea el trco DNS UDP. Para permitir que a travs de, agregar una regla como esta:
Aconteci en el da $ ext_if proto udp desde cualquier puerto a 192.168.1.18 53 \
mantener el estado
Tenga en cuenta que a pesar de que esta es una regla para paquetes UDP, usted ha utilizado todava el
estado
palabra clave. En este
caso, PF har un seguimiento de la conexin con el origen y la direccin IP de destino y los puertos pares.
Tambin, puesto que los datagramas UDP no contienen nmeros de secuencia, la
modular
palabra clave no es aplicable.
Uso
mantener el estado
en cambio especica la inspeccin de estado cuando no modulando ISN. Adems, desde
Datagramas UDP no contienen banderas, simplemente omitirlas.
Ahora usted querr permitir conexiones iniciadas dentro de la red para pasar a travs del rewall. Para ello
esto, es necesario agregar las siguientes reglas para permitir que el trco en la interfaz interna del servidor de seguridad:
Aconteci en el da $ int_if de $ int_if: red a cualquier
desmayar en $ int_if from any to $ int_if: red
desmayar en $ ext_if proto tcp todo modular banderas del estado S / SA
desmayar en $ ext_if proto {icmp, udp} todo mantener el estado
En los ltimos comunicados, el popular p0f herramienta OS ngerprinting pasivo se ha integrado en PF.
Esto permite a PF para determinar los sistemas operativos que se ejecutan en los hosts de envo de trco a travs de una o
sistema que ejecuta PF. En consecuencia, puede crear reglas de PF que son especcos del sistema operativo. Para
ejemplo, si desea bloquear el trco desde cualquier sistema que no ejecuta Linux, se puede usar algo
de esta manera:
bloquear en
pasar desde cualquier sistema operativo "Linux"
Pero ten en cuenta que las huellas digitales OS est lejos de ser perfecto. Es muy posible que alguien modique el
caractersticas de la pila TCP / IP para imitar otro sistema operativo [Hack # 65] .
Una vez que hayas terminado de editar pf.conf , puede activar PF ejecutando los siguientes comandos:
# pfctl-e
# pfctl-f / etc / pf.conf
La primera lnea permite a PF, y la segunda lnea carga su conguracin. Si desea realizar cambios en
su conguracin, basta con ejecutar
pfctl-f / etc / pf.conf
de nuevo. Para activar PF automticamente en el arranque bajo
OpenBSD, aada la siguiente lnea a / etc / rc.conf :
pf = SI
FreeBSD es ligeramente diferente. Usted en cambio tiene que aadir la siguiente lnea a / etc / rc.conf :
pf_enable = "YES"
La prxima vez que reinicie, PF debe estar habilitado.
Como puede ver, OpenBSD dispone de un sistema de cortafuegos muy potente y exible. Hay demasiados
caractersticas y posibilidades para discutir aqu. Para ms informacin, ver el excelente PF
documentacin disponible en lnea, o el pf.conf pgina de manual.
Pgina 141
Hack # 46. Proteja su equipo con el Firewall de Windows
Windows XP SP2 activa el Firewall de Windows por defecto, por lo que est protegido de forma automtica
de los ataques entrantes. Aqu est cmo congurar el Firewall de Windows para una mxima proteccin
y la exibilidad y utilizarlo para iniciar posibles ataques y enviar informacin acerca de los intrusos
su proveedor de Internet.
En el momento en que se conecte a Internet, ests en algn peligro de intrusin, especialmente si usted tiene un
conexin de banda ancha. PCs con conexiones de banda ancha son tentadores objetivos, ya que su alta velocidad
conexiones son trampolines ideales para atacar otras redes o sitios web.
Cada vez que ests conectado, el sistema se encuentra entre muchos siendo constantemente analizan en busca de debilidades
crackers (hackers maliciosos) y aspirantes (a menudo llamados script kiddies ) el envo de sondas automatizadas
en busca de ordenadores vulnerables. De hecho, este tipo de sondas son tan comunes e incesante, se puede pensar
de ellos como la radiacin de fondo de la Internet.
Una de las mejores maneras de protegerse contra estas sondas y los ataques dirigidos es utilizar un
rewall. El software de rewall se encuentra entre el usuario e Internet y acta como un guardin de las clases,
permitiendo slo el trco a travs de no malintencionada.
En este hack, veremos cmo sacar el mximo provecho de Firewall de Windows, el rewall integrado en XP
SP2, que est activada de forma predeterminada al instalar SP2.
TIP
Antes de SP2, el rewall se llamaba el Firewall de conexin a Internet (ICF). Era lo mismo que el Firewall de Windows, con
algunas diferencias notables en la forma en que se accede al servidor de seguridad y sus caractersticas.
El Firewall de Windows ofrece una seguridad bsica a Internet, deteniendo todo el trco entrante no solicitado y
conexiones a la PC y de la red, a menos que su PC u otro PC de la red hace que inicialmente la
solicitar para la conexin. Sin embargo, no va a bloquear las solicitudes de salida y las conexiones, por lo que puede
seguir utilizando el Internet como lo hara normalmente para navegar por la Web, consiguiendo correo electrnico, a travs de FTP, o
servicios similares.
El Firewall de Windows tiene un serio inconveniente: no lo proteger contra troyanos, como el
Troyano Back Orice. Troyanos dejan a otros usuarios tomar el control completo de su PC y sus recursos. Para
ejemplo, alguien podra utilizar su PC como una plataforma de lanzamiento para atacar sitios web, hacindolo aparecer como
si fueras el culpable, o podra copiar todos los archivos y averiguar informacin personal sobre usted,
tales como su nmero de tarjeta de crdito si los almacena en su PC. El Firewall de Windows no se detendr
Troyanos, ya que bloquea slo trco entrante y trabajo troyanos haciendo conexiones salientes
desde su PC.
TIP
Para detener troyanos, consiga un rewall de terceros, tales como FORCE BASE [Hack # 48] .
Al instalar XP SP2, que est protegido de forma automtica, ya que se convierte en el Firewall de Windows.
Sin embargo, es posible desactivar el servidor de seguridad. Para asegurarse de que est activada, haga clic en Centro de seguridad de
el panel de control. Cuando aparezca el Centro de seguridad, no debe haber una luz verde al lado del Firewall
botn y debe decir ON, como se muestra en la Figura 4-1 .
Pgina 142
Figura 4-1. Asegurarse de que el Firewall de Windows est activado
Si no es as, haga clic en el icono de Firewall de Windows en la parte inferior de la pantalla, haga clic en ON, y luego haga clic en
Aceptar.
Permitir que los programas para evitar el cortafuego
El Firewall de Windows ofrece proteccin contra amenazas entrantes, pero tambin puede causar problemas. La
variedad de software debe ser capaz de aceptar conexiones entrantes, y el rewall inicialmente
evitar que estos programas de trabajo. Los programas de mensajera instantnea y programas de FTP, por ejemplo,
ambos tienen que ser capaces de aceptar este tipo de conexiones, y los bloques de Firewall de Windows ellas.
Por lo general, aunque no siempre, la primera vez que se ejecuta uno de estos programas, obtendr la advertencia del
Firewall de Windows se muestra en la Figura 4-2 .
Pgina 143
Figura 4-2. Una advertencia del Firewall de Windows
La advertencia se mostrar el nombre del programa y el editor y le preguntar si desea mantener
bloquea el programa. Si desea que el Firewall de Windows para permitir que la funcin del programa, haga clic en Desbloquear.
Para mantener el bloqueo del programa, haga clic en Continuar bloqueo. La eleccin Posteriormente Pregnteme permite que el programa acepta
conexiones entrantes para slo esta vez; despus de salir, la prxima vez que se ejecuta el programa, se le
obtener la misma advertencia.
Eso est muy bien, pero el Firewall de Windows no siempre aparecer esta alerta. As, es posible encontrar
que algunos programas no funcionan con el servidor de seguridad, pero no obtendr una advertencia acerca de ellos. Una vez
darse cuenta de eso, se puede decir manualmente el Firewall de Windows para permitir que esos programas a travs de
agregarlos a su lista de excepciones.
Para ello, seleccione Panel de control ! Centro de seguridad ! Firewall de Windows. Luego haga clic en la cha Excepciones,
se muestra en la Figura 4-3 .
Pgina 144
Figura 4-3. La cha Excepciones de Firewall de Windows
TIP
Cuando se recibe una advertencia del Firewall de Windows y haga clic en Preguntar ms adelante, el programa permiti temporalmente se incluir en el
Ficha Excepciones, sin vericacin junto a l.
Para agregar un programa a la lista de excepciones, haga clic en Agregar programa para que aparezca la ventana mostrada en la Figura 4 -
4 .
Esta pestaa lista todos los programas para los que el servidor de seguridad que aceptar conexiones entrantes. Si un programa es
mencionados aqu, pero no tiene una marca junto a ella, signica que el rewall lo bloquear. Para decir que el cortafuegos
detener el bloqueo de las conexiones de entrada para el programa, seleccione la casilla junto a ella y haga clic en Aceptar.
Elegir un programa de la lista y haga clic en Aceptar y, a continuacin, haga clic de nuevo en Aceptar para aadirlo a su lista. Si el
programa que desea aadir no aparece en el cuadro de dilogo Agregar programa, haga clic en el botn Examinar para buscar
y luego agregarlo.
Puede haber algunos programas para los que desee otorgar acceso slo a ciertas personas y no
otros. Tal vez, por ejemplo, desea permitir que un programa de mensajera instantnea para trabajar slo con personas
en su propia red. Hay una manera de hacer eso.
En primer lugar, agregar el programa a la lista de excepciones. A continuacin, seleccione el programa y elija Editar ! Cambiar
mbito de aplicacin. Aparecer el cuadro de dilogo Cambiar mbito, como se muestra en la Figura 4-5 .
Seleccione la opcin "Mi red (subred)", haga clic en Aceptar y, a continuacin, haga clic en Aceptar de nuevo, y el servidor de seguridad permitir
slo conexiones entrantes procedentes de su red. Para permitir conexiones entrantes para el
programa para direcciones IP especcas solamente, seleccione "Lista personalizada", escriba las direcciones IP que desea
Pgina 145
permitir, y luego haga clic en Aceptar y de nuevo en Aceptar.
Figura 4-4. La eleccin de un programa para agregar a su lista de excepciones
Figura 4-5. Concesin de acceso a su red a personas especcas slo
El seguimiento de la actividad del rewall con un registro de Firewall de Windows
El Firewall de Windows puede hacer algo ms que a protegerse de los intrusos; tambin puede realizar un seguimiento de todos los
los intentos de intrusin para que usted sepa si su PC ha sido blanco de ataques y qu tipos de ataques del
Firewall de Windows se ha vuelto atrs. A continuacin, puede enviar esa informacin a su proveedor de Internet para que puedan seguir
por los intrusos.
En primer lugar, crear un registro de Firewall de Windows. Desde el Centro de seguridad, elija Windows
Firewall ! Avanzado y haga clic en el botn Conguracin en la seccin Registro de seguridad. El cuadro de dilogo
se muestra en la Figura 4-6 aparece.
Pgina 146
Figura 4-6. Creacin de un registro de Firewall de Windows
Elija si desea registrar paquetes perdidos, conexiones exitosas, o ambos. Un paquete descartado es un paquete
que el Firewall de Windows ha bloqueado. Una conexin con xito se reere a cualquier conexin que tenga
realizado a travs de Internet, como por ejemplo a un sitio web; esto no signica que un intruso se ha conectado correctamente al
su PC. Debido a esto, por lo general hay ninguna razn para que usted se conecte conexiones correctas. Si lo hace iniciar
ellos, su registro ser grande rpidamente, y ser ms difcil de rastrear slo es potencialmente
actividad peligrosa. Por lo tanto, la mejor opcin es registrar paquetes solamente se redujeron.
Una vez que haya hecho su eleccin, elija una ubicacin para el registro, establezca su tamao mximo, y haga clic en Aceptar. Yo
no dejes que mi registro se hacen ms grandes de 1 MB, pero dependiendo de lo mucho que se preocupa por el espacio en disco y cmo
la cantidad que va a utilizar el registro, es posible que desee el suyo para ser ms grande o ms pequeo.
El registro se crear en un W3C Log (Extended . log format) que usted puede examinar con el Bloc de notas o
otro editor de texto o mediante el uso de un programa de anlisis de registros, tales como los AWStats gratuitas
(
http://awstats.sourceforge.net
). Figura 4-7 muestra un registro generado por el Firewall de Windows,
examinados en el Bloc de notas.
Pgina 147
Figura 4-7. Un registro generado por el Firewall de Windows
Cada entrada del registro tiene un total de hasta 16 piezas de informacin asociadas a los eventos, pero los ms
columnas importantes para cada entrada son los primeros 8. (En un editor de texto, los nombres de las columnas no se alinean
en los datos, pero no se alinearn en un analizador de registros.)
Tabla 4-1 se describen las columnas ms importantes.
Tabla 4-1. Las columnas en el registro de Firewall de Windows
Nombre Descripcin
Fecha Fecha de ocurrencia, en formato ao-mes-da
Tiempo Tiempo de ocurrencia, en horas: minutos: segundos formato
Accin La operacin que se ha registrado por el servidor de seguridad, tales como DROP para dejar caer una conexin, OPEN para abrir
una conexin, o CLOSE para cerrar una conexin
Protocolo El protocolo utilizado, como TCP, UDP o ICMP
IP de origen (src-ip) La direccin IP del equipo que inici la conexin
IP de destino
(Dst-ip)
La direccin IP de la computadora a la que se intent la conexin
Puerto de origen (src-
puerto)
El nmero de puerto en el ordenador que enva desde el que se intent la conexin
Puerto de destino El puerto en el que el ordenador emisor estaba tratando de hacer una conexin
Pgina 148
(Dst-port)
tamao El tamao de paquete
tcpags Informacin sobre los indicadores de control de TCP en las cabeceras TCP
tcpsyn La secuencia de TCP de un paquete
tcpack El nmero de conrmacin TCP en el paquete
tcpwin El tamao de la ventana TCP del paquete
icmtype La informacin sobre los mensajes ICMP
icmcode La informacin sobre los mensajes ICMP
info La informacin sobre una entrada en el registro
La direccin IP de origen es el origen del ataque. Si se observa la misma direccin IP de origen continuamente
apareciendo, un intruso podra estar apuntando a usted. Tambin es posible que el intruso est enviando
sondas automatizadas a miles de ordenadores a travs de Internet y el PC no est bajo ataque directo. En
cualquiera de los casos, se puede enviar la informacin de registro a su ISP y pedirle que siga por rastrear
la fuente de los intentos de conexin. Ya sea hacia adelante todo el registro o cortar y pegar el correspondiente
secciones en un archivo nuevo.
Problemas con el correo electrnico y el Firewall de Windows
Dependiendo del programa de correo electrnico que utiliza y cmo llega la noticacin de nuevos mensajes, el de Windows
Firewall podra interferir con la manera de recuperar su correo electrnico. No le impedir obtener su
electrnico, pero puede desactivar la funcin de noticacin de su programa de correo electrnico.
El Firewall de Windows no va a interferir con la funcin de noticacin normal de Outlook Express,
debido a que la peticin inicial pidiendo noticacin de nuevo correo electrnico proviene de Outlook Express, que es
dentro del rewall. Cuando el servidor responde a la solicitud, el rewall reconoce que el servidor est
respondiendo a la peticin de Outlook Express, por lo que permite la comunicacin pase a travs.
Sin embargo, si utiliza Outlook y conectarse a un servidor de Microsoft Exchange mediante un procedimiento remoto
llame al (RPC) para enviar noticaciones por correo electrnico (que suele ser el caso con Exchange), se encontrar con
problemas. Debido a que la RPC inicialmente proviene del servidor, no desde Outlook, el servidor de seguridad no lo har
permite la noticacin a pasar a usted. En este caso, an puede recuperar su correo electrnico, pero usted tendr que
comprobar si hay nuevos mensajes de forma manual; usted no ser capaz de obtener las noticaciones automticas desde el servidor.
As pues, si usted encuentra que usted deja de recibir noticaciones de correo nuevo despus de instalar el Firewall de Windows, es
no es que los compaeros de trabajo, amigos, y los spammers estn haciendo caso omiso de repente usted; usted slo tendr que comprobar si hay
correo nuevo manualmente.
Hacking the Hack
La cha Excepciones de Firewall de Windows es especialmente til para cualquier persona que utiliza el intercambio de archivos en un hogar
o de la red corporativa, pero quiere apagarlo cuando en una conexin de red pblica, como un WiFi
hotspot. Al llegar a un punto de acceso, antes de conectar, vaya a la pestaa Excepciones, desactive la casilla junto
a Compartir impresoras y archivos, y haga clic en Aceptar. El intercambio de archivos se apagar. Luego, cuando vuelvas a
su red domstica o de negocio, volver a encenderla de nuevo.
Vea tambin
Para obtener ms informacin acerca de Firewall de Windows, consulte el artculo 875357 de Microsoft Knowledge Base
(
http://support.microsoft.com/kb/875357
)
Pgina 149
Preston Gralla
Pgina 150
Hack # 47. Cerrar puertos abiertos y protocolos de bloque
Usted no necesita un servidor de seguridad para proteger su PC; puede cerrar manualmente los puertos y bloque
ciertos protocolos.
Como se seala en "Proteja su equipo con el Firewall de Windows" [Hack # 46] , Los cortafuegos pueden proteger
su PC y su red de intrusos. Pero si usted no desea utilizar un servidor de seguridad y an as desea
proteccin, puede cerrar manualmente los puertos y protocolos de bloque.
Algunos de estos puertos y protocolos son ms peligrosos que otros. Por ejemplo, si dejas de abrir el
puerto de uso general por telnet (puerto 23), alguien podra utilizar ese servicio para tomar el control de su PC.
Otros puertos de riesgo incluyen los utilizados por el infame troyano Back Orice, que tambin puede dar
usuarios malintencionados de control completo de su PC. Back Orice utiliza una variedad de puertos, incluyendo 31.337
y 31338, entre otros. Para obtener una lista de los puertos utilizados por los troyanos, vaya a
http://www.sans.org/resources/idfaq/oddports.php
.
En este truco, usted necesita saber qu puertos quieres estar abiertos en su PC, tales como el puerto 80 para
navegar por Internet y servidores podrs cerrar todas las dems. Para obtener una lista completa de los puertos conocidos, vaya a
http://www.iana.org/assignments/port-numbers
.
Para cerrar puertos y protocolos de forma manual, haga clic en Mis sitios de red y seleccione Propiedades para
abrir la conexiones de red de la carpeta. Haga clic en la conexin para la que desea cerrar puertos
y seleccione Propiedades. Resalte Protocolo Internet (TCP / IP) lista y seleccione Propiedades. Por
Ficha General, haga clic en el botn Opciones avanzadas. Haga clic en la pestaa "Filtrado TCP / IP", resalte Opciones y
seleccione Propiedades. Aparecer el cuadro de dilogo TCP / IP Filtering. Para bloquear los puertos TCP, UDP e IP
protocolos, seleccione la opcin Slo Permiso para cada uno. Hacer esto efectivamente bloquear todos los puertos TCP,
Puertos UDP y protocolos IP.
Usted no desea bloquear todos los puertos, sin embargo, lo que hay que agregar los puertos que quieren dejar pasar. Para
ejemplo, que necesita para mantener el puerto 80 abierto si quiere navegar por la Web. Haga clic en Agregar para agregar los puertos o
protocolos que usted permita que se use, como se muestra en la Figura 4-8 . Mantenga la adicin de tantos puertos y protocolos
como usted quiere ser activado, y haga clic en Aceptar cuando haya terminado. Usted ser capaz de utilizar slo los puertos y
protocolos que se enumeran.
Figura 4-8. El bloqueo de los puertos TCP, UDP y protocolos IP
Pgina 151
Tenga en cuenta que las aplicaciones y servicios de Internet utilizan cientos de puertos TCP y UDP. Si, por
ejemplo, se habilita slo el acceso web, usted no ser capaz de utilizar otros recursos de Internet, como FTP,
correo electrnico, compartir archivos, escuchar el audio streaming, visualizacin de video streaming, etc. Por lo tanto, utilizar este hack
slo si quieres que tu PC para usar un nmero muy limitado de servicios y aplicaciones de Internet.
Preston Gralla
Pgina 152
Hack # 48. Vuelva a colocar el Firewall de Windows
Bloquea el trco entrante y saliente con FORCE CORE.
A partir de Windows XP SP2, Microsoft ha hecho un favor al mundo al permitir que el Firewall de Windows
[Hack # 46] de forma predeterminada. Sin embargo, el Firewall de Windows a menudo puede dar a los usuarios una falsa sensacin de seguridad,
especialmente en lo que las plagas de malware dirigidos sistemas Windows crecen. Mientras que el rewall de Windows XP
es muy bueno para proteger los sistemas de los ataques contra los servicios, se hace muy poco para evitar los keyloggers y
otras formas de malware de llamar a casa con su informacin privada importante.
Cuando el rewall de XP falla, FORCE BASE (
http://force.coresecurity.com
) De Core Security
sobresale. CORE FORCE incluye un puerto de Windows del ltro de paquetes de OpenBSD [Hack # 45] , adems de
un archivo y monitor de acceso al registro y una aplicacin binaria inspector de la integridad.
Instalacin FORCE BASE
Antes de instalar FUERZA CORE, salga de todas las aplicaciones que necesitan para mantener la conectividad de red en
Para funcionar correctamente, ya que el proceso de instalacin puede perturbar ellos. A continuacin, instale NCLEO
FUERZA descargando el instalador y lanzarlo. Aparte de la advertencia se seal anteriormente de
perder la conectividad de red, el proceso de instalacin es bastante normal; seleccionar dnde instalar el
empaquetar los archivos y los instala.
Como parte del proceso, CORE FORCE instala los controladores de cortafuegos personalizadas en su pila de red, por lo que un
dilogo como el que se muestra en la Figura 4-9 podra avisarle que se va a instalar el hardware y le preguntar si
quieren detener la instalacin. Esta es una advertencia de lo normal, por lo que slo puede hacer clic en Continuar. (Usted
que se le pida varias veces; si es as, basta con hacer clic en el botn Continuar de todos modos cada vez.)
Figura 4-9. Solicitud de instalacin de hardware de Windows XP
El asistente de conguracin
Despus de nalizada la instalacin, tendr que reiniciar el equipo. Una vez que el sistema haya terminado de
arrancar y que ha iniciado la sesin, se le presentar con el asistente de conguracin del CORE FORCE, se muestra en la
Figura 4-10 . Este asistente le ayuda a elegir el grado de restriccin que le gustara que el sistema sea y decirle que sobre
la red, los servidores DNS y otros servidores a los que accede con regularidad, de manera que pueda aplicar este
informacin a sus reglas de rewall.
Pgina 153
Figura 4-10. Asistente de conguracin del CORE FORCE
Despus de hacer clic en Siguiente, se le presentar con una opcin de que el nivel de seguridad de usar, Medio o Alto,
como se muestra en la gura 4-11 . Por el momento, siga adelante y seleccione Medio. Puede cambiar esta conguracin y hacer
ajustes adicionales en la poltica de su sistema en la herramienta de conguracin del CORE FORCE cuando del mago
terminado.
Figura 4-11. La eleccin de un nivel de seguridad
Durante el siguiente paso, el asistente le pedir que introduzca la informacin bsica de la red, como se muestra
en la gura 4-12 . Esta informacin incluye la Classless Inter-Domain Routing (CIDR) bloque de direcciones
su red local ocupa, la direccin de broadcast, y hasta dos servidores de nombres que utiliza.
Pgina 154
Figura 4-12. Introduccin de la informacin bsica de la red
El paso siguiente (se muestra en la Figura 4-13 ) Le pide informacin acerca de los servidores que se utilizan, como
los nombres de host de los servidores de correo entrante y saliente, el servidor de noticias y el servidor proxy web (si
los tiene), y el controlador de dominio.
Figura 4-13. Introduccin de la informacin del servidor
Artculos que requieren un puerto debe tener un defecto rellenado para usted, pero usted puede cambiar el puerto utilizado en caso
necesario. Por ejemplo, si utiliza IMAP o IMAP + SSL en lugar de POP3 para el correo entrante,
cambiar el puerto para el servidor de correo de entrada a cualquiera de los puertos 143 o 993, respectivamente.
Despus de haber introducido los datos de su servidor y hecho clic en Siguiente, el asistente de instalacin explora el sistema
para los programas para los cuales CORE FORCE ha precongurado perles. En su mayor parte, estos
Pgina 155
perles precongurados limitan sus aplicaciones correspondientes a la realizacin de sus propsitos bsicos solamente.
Por ejemplo, el cliente de correo electrnico debe ser capaz de conectarse a los servidores de correo entrante y saliente
solamente y, con la excepcin de guardar los archivos adjuntos, debe escribir los archivos slo a ciertos bien conocida
ubicaciones en el sistema. Si alguien intenta explotar su cliente de correo, este valor limita lo que el
intruso puede hacer.
Cuando el asistente de instalacin ha terminado de buscar los programas, se le presentar un cuadro de dilogo como el
que se muestra en la gura 4-14 .
Figura 4-14. Seleccin de perles de aplicaciones preconguradas
CORE FORCE aade una marca de vericacin junto a cualquier programa que localiza. Tambin podra ver que algunos
No se encontraron programas pero que sus rmas eran vlidas. No se alarme por esto. NCLEO
FUERZA mantiene una base de datos de hashes programa vlido para las aplicaciones para las que tiene
perles precongurados, y es posible que aparezca rmas como no vlidas, simplemente porque no cuenta con la
rmas para las versiones ms recientes de los programas que se actualizan con frecuencia (por ejemplo, Internet Explorer
y Firefox. Puede actualizar la base de datos del CORE FORCE para contener las rmas de lo que est actualmente en
su sistema de control de la "Actualizacin de las rmas no reconocidos ..." de la caja.
Una vez que haya terminado de seleccionar los perles que instalar, haga clic en Siguiente para importar todos los perles que
han seleccionado. Haga clic de nuevo en Siguiente y en Finalizar, y ya est. Interfaz de conguracin del CORE FORCE
debe aparecer, como se muestra en la gura 4-15 .
Pgina 156
Figura 4-15. Interfaz de conguracin del CORE FORCE
Conguracin manual
Conguracin del CORE FORCE consta de un nivel de seguridad por defecto para todo el sistema y la aplicacin-
niveles de seguridad especcos. A su vez, cada nivel de seguridad consiste en las polticas que se han asignado a la misma,
tales como "No se puede ejecutar desde temp", que denen las restricciones para ser colocado en el sistema o
aplicacin. Cosas que se pueden denir para cada poltica incluyen reglas de rewall, acceso del Registro
restricciones y limitaciones del sistema de archivos.
Al pasar por el asistente de conguracin, usted seleccion un nivel de seguridad que se utiliza para todo el sistema. Si
que desee ver qu polticas exactamente un nivel de seguridad ha, expanda el elemento Niveles de Seguridad en el rbol
vista a continuacin, expanda el nivel de seguridad que desea examinar. Figura 4-16 muestra las polticas
que comprende el nivel de seguridad en Medio.
Pgina 157
Figura 4-16. Visualizacin de las directivas para el nivel de seguridad medio
Mirar por encima de las polticas que el nivel de seguridad actual hace cumplir. Si decide que desea cambiar
el nivel de seguridad para todo el sistema, haga clic en el elemento del sistema en la vista de rbol y seleccione
Cambiar nivel de seguridad. Debera ver un cuadro de dilogo como la gura 4-17 . Utilice el control deslizante para cambiar el nivel.
Figura 4-17. Cambiar el nivel de seguridad
Si desea realizar la conguracin actual, ms o menos restrictivas, puede modicar la misma en cualquiera de los
Pgina 158
sistema o nivel de la aplicacin, seleccione el elemento Permisos en la vista de rbol. Por ejemplo, la Figura 4 -
18 muestra los permisos de rewall que se aplican a cualquier programa que no tenga su propia conguracin
denido.
Figura 4-18. La conguracin del rewall de sistema
Para agregar una regla de rewall, haga clic en el panel de visualizacin de las reglas de rewall y elija Nuevo para
insertar una regla que permite a cualquier paquete pase a travs del rewall. A continuacin, puede modicar la regla mediante el uso de
los reproductores ubicados a la derecha de la lista de reglas.
Una cosa que aadi Core Security al portar PF a Windows era una nueva accin de la regla: Ask.
La eleccin de esta accin muestra un cuadro de dilogo como la gura 4-19 , para avisarle de que una aplicacin intenta
para realizar una conexin. Desde el dilogo, se puede optar por permitir o denegar la conexin.
Pgina 159
Figura 4-19. Permitir o denegar una conexin
Esta caracterstica es especialmente til para la captura de software llamando a casa, pero tambin se puede utilizar para detectar un
las conexiones de red de creacin de programas explotados que normalmente no hara.
Como puede ver, CORE FORCE es un poderoso paquete de servidor de seguridad y el sistema de monitoreo. Se proporciona una
gran exibilidad en cuanto a que las operaciones del sistema se puede realizar un seguimiento y un lmite y es muy
congurable. Desafortunadamente, no hay suciente espacio aqu para cubrir todo lo que puedes hacer con l, as que
asegrese de echar un vistazo a un excelente archivo de ayuda del CORE FORCE.
Pgina 160
Hack # 49. Crear una puerta de enlace Jurada
Usar PF para mantener a los usuarios no autorizados fuera de la red.
Gateways cortafuegos se han utilizado tradicionalmente para bloquear el trco de los servicios o mquinas especcas.
En lugar de ver las direcciones IP y nmeros de puerto, una puerta de enlace autenticado permite regular
el trco hacia o desde las mquinas basadas en las credenciales de un usuario. Con una pasarela de autenticacin, los usuarios tienen que
iniciar sesin y autenticarse en la puerta de entrada con el n de obtener acceso a la red protegida.
Esto puede ser til en muchas situaciones, tales como la restriccin de acceso a Internet o restringir una inalmbrica
segmento a utilizar slo los usuarios autorizados.
Con el lanzamiento de OpenBSD 3.1, se puede implementar esta funcionalidad a travs de PF y el authpf shell.
Usando authpf tambin proporciona una pista de auditora ingresando los nombres de usuario y direcciones IP de origen, el tiempo de
que cada usuario se autentica con la puerta de entrada, y cuando los usuarios cierran la sesin en la red.
Para congurar la autenticacin con authpf , primero tendr que crear una cuenta en la puerta de entrada para cada
de usuario. Especique / usr / sbin / authpf como la cscara, y asegrese de agregar
authpf
como un shell vlido para / etc / shells .
Cuando un usuario se conecta a travs de SSH, authpf obtendrn el nombre del usuario y la direccin IP a travs de la
medio ambiente.
Despus de hacer esto, un archivo de plantilla que contiene reglas NAT y de ltro se lee, y el nombre de usuario e IP
direccin se aplican a l. Las normas resultantes se agregan a la conguracin en ejecucin. Cuando el
usuario cierra la sesin (es decir, tipos de
^ C
), Las normas que se han creado son descargados desde el conjunto de reglas actual.
Para plantillas de reglas especcas del usuario, authpf mira en / etc / authpf / users / $ USER / authpf.rules . Regla Global
plantillas se almacenan en / etc / Authpf / authpf.rules . Del mismo modo, las entradas de NAT se almacenan en authpf.nat , en
cualquiera de estos dos directorios. Cuando una plantilla especca de usuario est presente para el usuario que tiene slo
autenticado, la plantilla reemplaza completamente las reglas globales, en lugar de limitarse a aadir a ellos. Cundo
cargar las plantillas, authpf ampliar la
$ User_ip
macro con la direccin IP actual del usuario:
pasar rpido en proto wi0 {tcp, udp} desde $ user_ip a cualquier \
mantener indicadores del estado de S / SA
Esta regla particular pasar en todo el trco en la interfaz inalmbrica del recientemente autenticado
la direccin IP del usuario. Esto funciona especialmente bien con una poltica de denegacin predeterminada, donde slo el SSH inicial
conexin a la puerta de enlace y DNS se ha permitido desde la direccin IP de autenticacin.
Usted podra ser mucho ms restrictivo y permitir que slo en HTTP, DNS, y el trco relacionado email-a travs
la puerta de entrada:
pasar rpido sobre wi0 proto tcp desde $ user_ip a cualquier \
el puerto {smtp, www, https, pop3, pop3s, imap, imaps} \
mantener indicadores del estado de S / SA
pasar rpido sobre udp proto wi0 de $ user_ip a cualquier dominio portuario
Una vez creados los archivos de plantilla, a continuacin, debe proporcionar un punto de entrada en pf.conf para la
reglas que authpf crear para su evaluacin por PF. Estos puntos de entrada se agregan a su pf.conf con el
vario
ancla
palabras clave:
authpf nat-ancla
authpf rdr-ancla
authpf binat ancla
anclar authpf
Tenga en cuenta que cada punto de anclaje tiene que ser aadido a la seccin a la que se aplica; no se puede simplemente poner
todos al nal o al principio de su pf.conf archivo. Por lo tanto, la
nat-ancla
,
rdr-ancla
, Y
binat-
ancla
las inscripciones deben ir a la seccin de traduccin de direcciones de pf.conf , mientras que el
ancla
de entrada, que
Pgina 161
Pgina 161
slo se aplica a las reglas de ltrado, debe aadirse a la seccin de ltrado.
Cuando un usuario inicia una sesin en la puerta de entrada, que ahora debe presentarse con un mensaje como este:
Hola andrew, Usted se autentican de host "192.168.0.61"
El usuario tambin podr ver el contenido de / etc / authpf / authpf.message si existe y es legible.
Si examina / var / log / daemon , usted debe tambin ver los mensajes de registro similares a stos para cuando un usuario
los registros de entrada y salida:
03 de diciembre 22:36:31 zul authpf [15058]: permite 192.168.0.61, \
usuario andrew
03 de diciembre 22:47:21 zul authpf [15058]: eliminado 192.168.0.61, \
usuario andrew duracin 650 segundos
Tenga en cuenta que, dado que est presente en el archivo / etc / shells , cualquier usuario que tenga una cuenta local es capaz de cambiar su
Shell para Authpf . Si desea asegurarse de que un usuario particular no puede hacer esto, puede crear un archivo llamado
despus de que el usuario y ponerlo en el / authpf / / etc prohibido directorio. Se mostrarn los contenidos de este archivo
cuando el usuario inicia sesin en el gateway. Por el contrario, puede permitir explcitamente a los usuarios haciendo una lista de sus
nombres de usuario, una por lnea, en / etc / authpf / authpf.allow . Sin embargo, las prohibiciones que se han especicado en el
/ Etc / authpf / prohibido tienen prioridad sobre las entradas en authpf.allow .
Desde authpf confa en la sesin de SSH para determinar cuando las normas relativas a un usuario en particular son
descargados, se debe tener cuidado en la conguracin de su demonio de SSH para el tiempo de espera de conexiones.
Tiempos de espera deben suceder con bastante rapidez, a revocar el acceso tan pronto como sea posible una vez que la conexin tiene
ido rancio. Esto tambin ayuda a evitar que las conexiones a sistemas fuera de la puerta de entrada de ser mantenido abierto
por los que realizan ataques spoof ARP.
Puede congurar OpenSSH para protegerse contra esto aadiendo estas lneas a su sshd_cong :
ClientAliveInterval 15
ClientAliveCountMax 3
Esto asegurar que el demonio SSH enviar una solicitud para obtener una respuesta del cliente 15 segundos despus de que se tiene
recibido los datos del cliente. La
ClientAliveCountMax
opcin especica que esto puede suceder de tres
veces sin una respuesta antes de que el cliente se desconecta. As, despus de que un cliente se ha convertido en
no responde, se desconectar despus de 45 segundos. Estos paquetes de actividad se envan automticamente por
el software de cliente SSH y no requieren ninguna intervencin por parte del usuario.
authpf es poderoso en su exibilidad e integracin con PF, sistema de cortafuegos nativo de OpenBSD. Lo
es fcil de congurar y tiene muy poca sobrecarga en el rendimiento, ya que depende de SSH y el funcionamiento
sistema para hacer la autenticacin y gestin de sesiones.
Pgina 162
Hack # 50. Mantenga su red Autocontenida
Utilice ltrado de salida para mitigar los ataques y fugas de informacin provenientes de su red.
A estas alturas ya debe estar familiarizado con el concepto de cortafuegos que se aplica a bloquear el trco que viene
en su red. Pero ha considerado los benecios del trco de ltrado que deja la red?
Por ejemplo, qu pasara si alguien en peligro un host de la red y lo utiliz como un
plataforma para atacar otras redes? Qu pasa si un gusano de alguna manera lo hizo en su red y trat de
infectar ordenadores a travs de Internet? Por lo menos, usted probablemente recibir algunas llamadas telefnicas airadas
y los correos electrnicos.
Por suerte, el ltrado de su saliente conocido de otra manera como el trco de salida de ltrado -puede ayudar a contener
comportamiento tales malicioso. Filtrado de salida no slo puede proteger a otros de los ataques procedentes de
su red, pero tambin se puede utilizar para hacer cumplir las polticas de uso de la red y asegurar que la informacin
no se escapa fuera de la red a la Internet en general. En muchas situaciones, ltrado de salida es tan
importante como el ltrado de trco entrante.
La pauta general cuando la elaboracin de reglas de ltrado de salida es el mismo que en la construccin de cualquier
regla de ltrado de entrada: Los dispositivos deben ser autorizados a hacer slo lo que estaban destinados a hacer. Es decir, una
servidor de correo debe permitir servir y slo retransmitir correo, un servidor web debe ponerse al servicio de
slo el contenido web, el servidor DNS debe atender las solicitudes de DNS slo, y as sucesivamente. Al asegurarse de que este
la poltica se implementa, puede contener mejor las amenazas mencionadas anteriormente.
Tambin podra ser una buena idea para obligar a los usuarios a utilizar los servicios internos en lugar de los servicios de Internet
siempre que sea posible. Por ejemplo, si utiliza sus propios servidores DNS, los clientes no deberan ser capaces de
conectarse a los servidores DNS externos para resolver nombres de host. Si los clientes se les permite hacer esto, usted arriesga el
posibilidad de que se revelan los nombres de host de la intranet a terceros cuando intentan resolver interna
nombres de host a travs de un servidor DNS externo.
Esta restriccin se puede lograr en OpenBSD con una regla como la siguiente:
rdr en $ int_if inet proto {tcp, udp} desde $ int_if : red a cualquier puerto 53
-> $ DNS_SERVER puerto 53
Por supuesto, usted tendr que congurar
Int_if
a la interfaz hacia la red interna y establecer
DNS_SERVER
a
la direccin IP de su servidor DNS interno.
Si ests usando Netlter [Hack # 44] , Usted tendr que usar cuatro reglas para lograr el mismo objetivo:
# iptables-t nat-A PREROUTING-p tcp-i
$ Int_if
- Dport 53-j DNAT \
- To-destination
$ DNS_SERVER
: 53
# iptables-t nat-A PREROUTING-p udp-i
$ Int_if
- Dport 53-j DNAT \
- To-destination
$ DNS_SERVER
Pgina 163
: 53
# iptables-t nat-A POSTROUTING-p tcp-o
$ Ext_if
- Sport 53-j SNAT \
- A fuente
$ SNAT_IP
# iptables-t nat-A POSTROUTING-p udp-o
$ Ext_if
- Sport 53-j SNAT \
- A fuente
$ SNAT_IP
Las dos primeras reglas especican que la direccin de destino de cualquier paquete de entrada destinado a TCP o
Puerto UDP 53 debe ser reescrito para
DNS_SERVER
. Sin embargo, esto har que cualquier respuesta a la reescrita
paquete que se enviar a la acogida que inici la conexin. Si el servidor al que el host original
destinado a conectar no es
DNS_SERVER
, La respuesta de los
DNS_SERVER
se suprimen silenciosamente.
Las siguientes dos reglas solucionar este problema mediante la realizacin de la traduccin de direcciones de la direccin de origen del paquete
antes de que sea enviado. Eso enva
DNS_SERVER
La respuesta de vuelta al servidor que ejecuta Netlter s, y el antrin
luego se traduce la direccin de destino de vuelta al servidor que inici la conexin. Usted debe establecer
SNAT_IP a la direccin IP de la mquina en funcionamiento Netlter que es visible para DNS_SERVER.
Del mismo modo, si usted est funcionando un servidor de correo interno y querer controlar correo electrnico que sale de su
empresa, tendrs que evitar que sus usuarios enviar correos electrnicos a travs de los servidores de correo externos. En
OpenBSD, puede hacer esto mediante el uso de una regla similar para obligar a todo el trco SMTP se reenven a su propio
Servidor SMTP:
rdr en $ int_if proto tcp inet desde $ int_if : red a cualquier puerto 25 -> $ SMTP_host puerto 25
Para Netlter, el mismo resultado se puede lograr con estas dos reglas:
# iptables-t nat-A PREROUTING-p tcp-i
$ Int_if
- Dport 25-j DNAT \
- To-destination
$ SMTP_host
: 25
# iptables-t nat-A POSTROUTING-p tcp-i
$ Ext_if
- Sport 25-j SNAT \
- A fuente
$ SNAT_IP
Filtrado de salida tambin puede evitar la suplantacin de IP. Al ltrar en su interfaz externa en la frontera de
Pgina 164
su red, puede vericar que los paquetes que salen de la red tienen direcciones de origen que responden a su
espacio de direcciones. Al ltrar el resto del trco, puede asegurarse de que cualquier ataque de suplantacin de IP realiza desde
su red o no se colocan a travs de ella ser dado de baja antes de que los paquetes son capaces de salir.
Pgina 165
Hack # 51. Pon a prueba tu Firewall
Averige si su rewall realmente funciona de la manera que usted piensa que debera.
Esto signica que ha congurado un servidor de seguridad y ha hecho algunas pruebas superciales para asegurarse de que est funcionando, pero ha
prob el servidor de seguridad para asegurarse de que se est bloqueando todo lo que se supone que? Usted puede ser que no lo ha hecho
esto porque usted piensa que va a tomar mucho tiempo o es demasiado difcil. Afortunadamente, hay FTester
(
http://dev.inversepath.com/trac/ftester/
), Una herramienta gratuita para hacer extensas pruebas de rewall.
FTester consta de tres scripts de Perl. El PRUEBA.F script se usa para inyectar paquetes personalizados como se dene en
el archivo de conguracin ftest.conf . Si est probando cmo el rewall se comporta con el trco de ingreso, que
debe ejecutar este script en una mquina fuera de su red con cortafuegos. Si quieres poner a prueba su
el comportamiento del cortafuegos hacia el trco de salida, tendr que ejecutar ftest de una mquina dentro de su
red protegida de rewall.
Uno de los otros scripts, ftestd , escucha de los paquetes inyectados con ftest que vienen a travs de la
servidor de seguridad que se est probando. Debe ejecutar este script en una mquina dentro de la red interna si
que est probando el comportamiento entrada del rewall. Si est probando el comportamiento de la salida, tendr que ejecutarlo
en un equipo externo a la red. Ambos de estos scripts mantener un registro de lo que envan o reciben.
Despus de una prueba de funcionamiento, sus respectivos registros se pueden comparar utilizando el freport guin, para ver rpidamente qu
paquetes fueron capaces de obtener a travs del rewall.
Antes de poder utilizar FTester, tendr la
Net :: RawIP
,
Net :: PcapUtils
, Y
NetPacket
Perl
mdulos. Tambin tendr la
Net :: Pcap
mdulo, si no est ya instalado, ya que el
Net :: PcapUtils
mdulo depende de ello. Si tiene el mdulo CPAN de Perl disponible, puede instalar
estos mdulos con los siguientes comandos:
# perl-MCPAN-e "instalar Net :: RawIP"
# perl-MCPAN-e "instalar Net :: PcapUtils"
# perl-MCPAN-e "instalar NetPacket"
Una vez que estos mdulos estn disponibles en los sistemas que va a utilizar para llevar a cabo la prueba de rewall,
tendr que crear un archivo de conguracin para decirle ftest qu paquetes debe generar.
Esta es la forma general de un paquete TCP o UDP en ftest.conf , donde
addr fuente
y
puerto de origen
son
la direccin IP de origen y el puerto, y
dir dest
y
puerto dest
son la direccin IP y puerto de destino:
addr fuente : puerto de origen : dest addr : dest puerto : ags : proto : TOS
Los rangos de direcciones pueden especicarse en el
bajo - alto
formato o utilizando la notacin CIDR. Tambin puede
especicar rangos de puertos utilizando el
bajo - alto
formato. La
banderas
campo es donde se especica los ags TCP
que desea establecer para el paquete. Los valores vlidos para este campo son
S
para
SYN
,
La
para
ACK
,
P
para
PSH
,
U
para
URG
,
R
para
RST
, Y
F
para
FIN
. La
proto
campo especica el protocolo que debe utilizar (ya sea
TCP
o
UDP
), Y
tos
contiene el nmero para establecer el campo Tipo de Servicio (ToS) en la cabecera IP. A veces, los routers
utilizar el contenido de este campo para tomar decisiones sobre la priorizacin de trco. Usted puede obtener ms
informacin sobre el campo ToS mediante la lectura de la RFC 791 (
http://www.ietf.org/rfc/rfc0791.txt
), El cual
dene el Protocolo de Internet.
Puede denir los paquetes ICMP de una manera similar. Esta es la forma general de una:
fuente addr :: dest addr ::: ICMP: Tipo : cdigo
Como puede ver, la principal diferencia entre las dos formas es la omisin de los nmeros de puerto y banderas,
que ICMP no utiliza. En su lugar, utiliza los tipos y cdigos (por lo tanto la adicin de la
tipo
y
cdigo
Pgina 166
campos). Actualmente, hay ms de 40 tipos de ICMP. Los utilizados por la mesa de ping utilidad, se hacen eco (tipo 8) y
una respuesta de eco (tipo 0), o del tipo utilizado por el
traceroute
comando (tipo 30), que podra ser familiar para usted.
Cdigos ICMP son como subclasicaciones de tipos ICMP. No todos los tipos tienen cdigos ICMP ICMP
asociados con ellos, aunque hay aproximadamente el mismo nmero de cdigos ICMP como tipos. Usted puede
obtener ms informacin sobre los tipos y cdigos ICMP mediante la lectura de la Internet Assigned Numbers Authority
asignaciones para ellos en
http://www.iana.org/assignments/icmp-parameters
.
He aqu un ftest.conf que comprobar todos los puertos TCP privilegiados en una mquina con la direccin IP
10.1.1.1:
192.168.1.10:1025:10.1.1.1:1-1024: S: TCP: 0
Stop_signal = 192.168.1.10:1025:10.1.1.1:22: S: TCP: 0
Stop_signal
crea una carga para el paquete que le dir ftestd que la prueba ha terminado. Para una rpida
pruebas, puede utilizar el
-C
opcin y especique un paquete a enviar utilizando la sintaxis descrita anteriormente. Para
ejemplo, el comando siguiente se enva un paquete con la direccin IP de origen y el puerto de
192.168.1.10:1025 al puerto 22 en 10.1.1.1.1:
# . / ftest-c 192.168.1.10:1025:10.1.1.1:22: S: TCP: 0
Antes de iniciar ftest , usted debe comenzar ftestd :
# . / ftestd-i eth0
A continuacin, ejecute ftest :
# . / ftest-f ftest.conf
Este comando crea un archivo de registro denominado ftest.log contiene una entrada para cada paquete ftest enviado. Cundo
ftestd recibe la seal de parar, saldr. A continuacin, puede encontrar su registro de lo que los paquetes que recibi en
ftestd.log .
Ahora, puede copiar los registros a la misma mquina y ejecutar a travs de freport . Si ha utilizado un
archivo de conguracin como la mostrada anteriormente y fueron permitiendo SSH, SMPTP, y el trco HTTP,
podra obtener un informe similar a este:
# . / freport ftest.log ftestd.log
Paquetes autorizados:
-------------------
22 - 192.168.1.10:1025> 10.1.1.1:22 S TCP 0
25 - 192.168.1.10:1025> 10.1.1.1:25 S TCP 0
80 - 192.168.1.10:1025> 10.1.1.1:80 S TCP 0
Paquetes modicados (probablemente NAT):
--------------------------------
Paquetes ltrados o Eliminado:
----------------------------
1 - 192.168.1.10:1025> 10.1.1.1:1 S TCP 0
2 - 192.168.1.10:1025> 10.1.1.1:2 S TCP 0
3 - 192.168.1.10:1025> 10.1.1.1:3 S TCP 0
Si est utilizando un servidor de seguridad con estado y desea probar esta funcionalidad, tambin puede especicar los paquetes que
tener banderas que no sean
SYN
establecer. Por ejemplo, si el ejemplo anterior haba utilizado
ACK
o alguna otra bandera
en lugar de
SYN
, Hubiera dejado caer por el rewall porque slo los paquetes con la
SYN
pabelln conjunto
Pgina 167
se utilizan para iniciar las conexiones.
Es una buena idea ejecutar ftest cada vez que se realizan cambios en el rewall, o peridicamente slo para hacer
Asegrese de que su rewall funciona segn lo previsto. Mientras que los conjuntos de reglas complejas en su rewall puede a veces
hace que sea difcil predecir exactamente cmo se comportar, ftest se le dir con buena tinta exactamente
qu tipo de trco se permiten.
Pgina 168
Hack # 52. Filtro MAC con Netlter
Mantenga las mquinas no deseadas fuera de la red con la direccin MAC de lista blanca.
Media Access Control (MAC) ltrado de direcciones es un mtodo bien conocido para la proteccin inalmbrica
las redes. Este tipo de ltrado funciona en el principio de denegacin predeterminada: permite especicar los hosts que estn
se permite la conexin, mientras que deja los desconocidos atrs. direcciones MAC son nmeros nicos de 48 bits
que se han asignado a cada dispositivo Ethernet que jams se haya fabricado, incluyendo 802,11
dispositivos y se escriben normalmente como seis dgitos hexadecimales de 8 bits separados por dos puntos.
Adems del sistema de ltrado de paquetes IP nativo de Linux, Netlter contiene un ltro de direcciones MAC
funcionalidad. Mientras que muchos de los puntos de acceso inalmbricos en el mercado hoy en da ya son compatibles con esto, hay
son muchos los mayores que no lo hacen. Filtrado MAC tambin es importante si el punto de acceso es en realidad la
Mquina Linux en s, utilizando una tarjeta inalmbrica. Si usted tiene un rewall basado en Linux que ya fueron creadas, es una
modicacin trivial para que pueda ltrar a nivel de MAC. Filtrado de direcciones MAC con iptables es
al igual que el ltrado basado en IP y es tan fcil de hacer.
El siguiente ejemplo muestra cmo permitir una direccin MAC particular, si su poltica de rewall es
ajustado a
DROP
[Hack # 44] :
# iptables-A FORWARD-m Estado - Estado de Nueva \
-M mac - mac-source 00: DE: AD: BE: EF: 00-j ACCEPT
Este comando permite que cualquier trco enviado desde la interfaz de red con la direccin
00: DE: AD: BE: EF: 00
.
Utilizando reglas como esta, junto con una poltica de denegacin predeterminada le permite crear una lista blanca de la MAC
direcciones que desea permitir a travs de su puerta de entrada. Para crear una lista negra, se puede emplear un defecto
aceptar la poltica y cambiar la direccin de destino de regla coincidente MAC
NEGAR
.
Todo esto es bastante sencillo si ya conoce las direcciones MAC para la que desea crear
reglas, pero lo que si no lo hace? Si usted tiene acceso al sistema, puede encontrar la direccin MAC de un
mediante el uso de la interfaz
ifcong
comando:
$ ifcong eth0
eth0 Link encap: Ethernet HWaddr 00:0 C: 29: E2: 2B: C1
inet direccin: 192.168.0.41 BCAST: Mscara 192.168.0.255: 255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU: 1500 Mtrica: 1
RX packets: 132893 errors: 0 cado: 0 sobrecostos: 0 frame: 0
Paquetes TX: 17007 errores: 0 cado: 0 sobrecostos: 0 portador: 0
: 0 colisiones txqueuelen: 100
RX bytes: 46050011 (43.9 Mb) TX bytes: 1601488 (1.5 Mb)
Interrupcin: 10 Direccin base: 0x10e0
Aqu se puede ver que la direccin MAC de esta interfaz es
00:0 C: 29: E2: 2B: C1
. La salida de
ifcong
diere ligeramente en otros sistemas operativos, pero gran parte de la misma informacin se proporciona (esta salida es
desde un sistema Linux).
Bsqueda de la direccin MAC de un sistema remoto es un poco ms complicado y se puede hacer uso de la
arp
y
ping-
los comandos. Hacer ping al sistema remoto resuelve su direccin IP a una direccin MAC, que puede
entonces pueden buscar mediante el
arp
comando.
Por ejemplo, para buscar la direccin MAC que corresponde a la direccin IP 192.168.0.61, ejecute el
siguientes comandos:
$ ping-c 1 192.168.0.61
$ / sbin / arp 192.168.0.61 | awk '{print $ 3}'
O utilice esta muy pequeo y manejable script de shell:
Pgina 169
#! / Bin / sh
ping-c $ 1> / dev / null && / sbin / arp $ 1 | awk '{print $ 3}' \
| Grep-v Hwaddress
Al implementar el ltrado de direcciones MAC, tenga en cuenta que no es infalible. En muchos
circunstancias, es bastante trivial para cambiar la direccin MAC de una interfaz que utiliza simplemente
instrucciones al conductor para hacerlo. Tambin es posible enviar tramas de capa de enlace con forjado MAC
direcciones mediante el uso de sockets de capa de enlace primas. Por lo tanto, el ltrado de direcciones MAC slo debe considerarse una
adicional (en lugar de una primaria) mecanismo de proteccin de la red. Es ms como un signo de "Keep Out"
que un buen cerrojo!
Pgina 170
Hack # 53. Bloquear Tor
Mantenga sus usuarios evadan ltrado de salida, bloqueando el acceso a Tor.
Tor [Hack # 37] es una gran herramienta para proteger su privacidad cuando utilizan Internet, pero tambin puede
proporcionar una manera para que sus usuarios para eludir las medidas de seguridad que usted ha puesto en su lugar en su
red, como ltrado de salida [Hack # 50] o proxies. Por lo tanto, es posible que desee una manera de bloquear
sus usuarios lo usen.
Una manera simple de hacer esto es bloquear el acceso a los servidores de directorios de Tor. Cuando Tor se pone en marcha por primera
vez, se conecta a uno de estos servidores para obtener una lista de todos los posibles nodos a travs del cual pueden Tor
construir un circuito virtual. Lgicamente, si bloquea el acceso a todos estos servidores en la frontera, Tor
ser incapaz de descargar la lista de nodos y no ser capaz de funcionar.
Si nos jamos en src / or / cong.c en el rbol de fuentes Tor, vers una funcin llamada
add_default_trusted_dirservers ()
. Esta funcin contiene la lista de los servidores de directorio:
const char * dirservers [] = {
"Moria1 v1 18.244.0.188:9031"
"FFCB 46dB 1339 DA84 674C 70D7 CB58 6434 C437 0441",
"Moria2 v1 18.244.0.114:80"
"719B E45D E224 B607 C537 07D0 E214 3E2D 423E 74CF",
"Tor26 v1 86.59.21.38:80"
"847B 1F85 0344 D787 6491 A548 92F9 0493 4E4E B85D",
"Lefkada 140.247.60.64:80"
"38D4 F5FC F7B1 0232 28B8 95EA 56ED E7D5 CCDC AF32",
"Dizum 194.109.206.212:80"
"7EA6 EAD6 FD83 083C 538F 4403 8BBF A077 587D D755",
NULL
};
TIP
Esta lista de servidores puede cambiar, as que asegrese de comprobar las nuevas versiones de Tor para ver si se han aadido.
Todo lo que tienes que hacer es bloquearlos en el servidor de seguridad fronteriza. Por ejemplo, podra utilizar el siguiente
reglas de PF:
mesa <tor_dirservers> {18.244.0.188, 18.244.0.114, 86.59.21.38, 140.247.60.64,
194.109.206.212}
bloquear de cualquier a <tor_dirservers>
Sin embargo, todava ser posible que alguien que ya ha obtenido una copia de la lista de nodos Tor para
usar Tor. Para combatir esta situacin, se puede descargar la lista manualmente de uno de los directorios
servidores, y luego bloquear individualmente cada nodo Tor, as:
$ vnculos de cdigo http://18.244.0.114:80/ | egrep '^ router
moria2 enrutador 18.244.0.114 443 0 80
anselcomputers enrutador 24.170.55.120 9001 0 0
enrutador sic4gh 84.172.97.158 443 0 0
enrutador Sivusto9022 80.222.75.74 9001 0 9030
vader enrutador 149.9.0.21 9001 0 9030
Duglha enrutador 82.227.178.224 9001 0 9002
nycbug enrutador 64.90.179.108 443 0 80
enrutador BlueNeedle 12.222.100.156 6571 0 0
enrutador 1984jhb 84.58.246.2 43,567 0 0
enrutador Pastis 82.67.175.80 9001 0 9030
...
El primer punto despus de la
enrutador
la palabra clave es el apodo del router, el siguiente campo es su direccin IP, y
Pgina 171
los campos restantes son los puertos en los que ese router en particular est a la escucha para las conexiones de Tor.
He aqu un pequeo script en Perl rpida de transformar esto en una forma ms fcil de leer:
#! / Usr / bin / perl
mientras que (<>) {
si (/ ^ enrutador \ /) {
@ Router_stmt = split ();
for ($ i = 3; $ i <$ # router_stmt; $ i + +) {
if ($ router_stmt [$ i]! = 0) {
print "$ router_stmt [2]: $ router_stmt [$ i] \ n";
}
}
}
}
Esto es lo que la salida se ve como cuando se ejecuta el script:
$ vnculos de cdigo http://18.244.0.114:80/ | / src / tor_routers.pl
18.244.0.114:443
24.170.55.120:9001
84.172.97.158:443
80.222.75.74:9001
149.9.0.21:9001
82.227.178.224:9001
64.90.179.108:443
12.222.100.156:6571
84.58.246.2:43567
154.35.254.172:9001
...
Este script se puede modicar fcilmente para reglas de rewall de salida por cualquier servidor de seguridad que est utilizando, ya sea
Netlter [Hack # 44] , PF [Hack # 45] , O alguna otra cosa. Usted tambin querr actualizar las normas
peridicamente para incluir nuevos nodos que se han incorporado a la red Tor.
Pgina 172
Captulo 5. Cifrar y Proteccin de servicios
Hacks 54 - 61
Una red es tan fuerte como el ms dbil de host conectados a l. Por lo tanto, se deduce que un host est
tan fuerte como el ms dbil de que el servicio se est ejecutando. Despus de todo, la nica manera en un sistema de la
red (salvo las vulnerabilidades de la pila de red a nivel de kernel esotricos) es a travs de los servicios que
ofrece. Debido a esto, una gran parte de la seguridad de la red consiste en asegurar que sus servicios son
congurado de forma segura. Esto implica la conguracin de servicios para proporcionar slo la funcionalidad que se requiere
de ellos para llevar a cabo las tareas que deben realizar. Adems, debe dar a los servicios de acceso a
slo el mnimo de recursos del sistema necesarios.
Eso es slo parte de la solucin, sin embargo. Si un servicio de red funciona en texto claro, todo su trabajo
pasado bloquendolo, puede ser para nada. En la mayora de los casos, todo lo que un atacante tiene que hacer para tener acceso a tales
un servicio es utilizar un analizador de paquetes para capturar los datos de acceso de un usuario autenticarse con el servicio.
En este captulo se muestra cmo implementar IMAP, POP3, y servidores SMTP que estn protegidos con el cifrado,
con el n de evitar que sus usuarios de revelar accidentalmente sus credenciales de inicio de sesin y mantener sus datos
a salvo de miradas indiscretas. Usted tambin aprender cmo implementar de forma segura los servicios de DNS y MySQL. En
Adems, usted aprender cmo implementar Apache con soporte SSL y cmo mantener los scripts CGI de sus usuarios
acceso a los archivos que normalmente no podran acceder.
Hack # 54. IMAP y POP Encriptar con SSL
Mantenga su correo electrnico a salvo de miradas indiscretas al mismo tiempo proteger sus contraseas de POP e IMAP.
Tener su correo electrnico disponible en un servidor IMAP es muy valiosa cuando se necesita acceder a l desde
mltiples ubicaciones. A diferencia de POP, IMAP almacena todo el correo electrnico y las carpetas que se crean en el servidor,
por lo que puede acceder a todos sus mensajes de correo electrnico que sea el cliente decide utilizar. Usted puede incluso jar
un cliente de correo electrnico basado en la web para que pueda acceder a sus mensajes desde literalmente cualquier mquina con una
Conexin a Internet y un navegador web. Sin embargo, es casi seguro que cruzar no es de conanza
redes a lo largo del camino. Cmo proteger su correo electrnico y su contrasea de la cuenta de otros con
intenciones indeseables? Usted utiliza la codicacin, por supuesto!
Si ya tienes una cuenta de IMAP o POP daemon instalado que no tiene la capacidad de utilizar SSL
nativamente, puede usar stunnel [Hack # 100] para envolver el servicio en un tnel SSL. Si vas a empezar desde
cero, sin embargo, usted tiene el lujo de elegir un demonio que tiene soporte SSL compilado directamente
en el binario.
Un demonio que soporta SSL fuera de la caja es Dovecot (
http://www.dovecot.org
). Dovecot incluye
soporte para IMAP y POP3 y tiene la ventaja aadida de que fue diseado y escrito con
la seguridad en mente desde el principio. En la consecucin de ese objetivo, se hace uso de seguro best-of-breed
prcticas de codicacin, as como la separacin de privilegios y
chroot ()
-Ing. Adems, Palomar es muy
exible y soporta un nmero de mtodos de autenticacin, as como tanto mbox y el buzn MailDir
formatos.
Para compilar e instalar Dovecot, descargue el archivo tar comprimido y ejecute el siguiente
comandos:
$ tar xfz palomar-1.0.beta5.tar.gz
$ cd palomar-1.0.beta5
$ . / congure && make
Pgina 173
Esto construir Dovecot con instalaciones para apoyar los mecanismos de autenticacin ms utilizados. Si
desea utilizar LDAP o una base de datos SQL para la autenticacin, se puede construir una copia que apoya a los
mecanismos tambin. Carrera
. / Congure - help
para ver toda la gama de opciones.
Una vez que ha compilado Dovecot, convertirse en root y ejecute
make install
.
A continuacin, para crear los certicados con rma, ejecute el siguiente comando:
$ openssl req-new-x509-nodos de salida / etc / ssl / certs / dovecot.pem-keyout \
/ Dovecot.pem das / etc / ssl / private 3650
Alternativamente, usted puede rmar los certicados con su propia autoridad de certicacin (CA) [Hack # 69] .
Todo lo que queda por hacer ahora es crear un dovecot.conf archivo. Para ello, busque el palomar-example.conf archivo,
que debe estar ubicado en / usr / local / etc (o donde sea que le dijiste a congure para instalarlo), con copia a
dovecot.conf . La creacin de su propia conguracin personalizada es un proceso bastante fcil, porque el ejemplo
conguracin est repleta de comentarios y muestra los valores por defecto para cada conguracin
variable.
De particular inters es la
protocolos
variable. Por defecto esta variable se establece para apoyar sin cifrar
IMAP e IMAP + SSL:
protocolos = imaps imap
Sin embargo, si usted quiere apoyar a POP3 o POP3 + SSL, puede agregar
pop3
y / o
pop3s
a la lista de
valores. Si desea desactivar IMAP sin cifrar, retire el
imap
valor.
Si ha colocado su certicado SSL y la clave en una ubicacin distinta de la mencionada en el anterior
ejemplo, tendrs que decirle a Dovecot dnde encontrarlos. Para ello, modique el
ssl_cert_le
y
ssl_key_le
variables. Por ejemplo, para usar / usr / local / ssl / certs / myhostname.crt y
/ Usr / local / ssl / private / myhostname.key , realice los cambios siguientes:
ssl_cert_le = / usr / local / ssl / certs / myhostname.crt
ssl_key_le = / usr / local / ssl / private / myhostname.key
Ahora que usted ha hecho esto, tendrs que crear una cuenta de usuario llamada palomar para el imap-login
proceso que se ejecute en. Esto permite que el imap-login proceso, que es responsable del manejo de cliente
conexiones antes de que hayan sido autenticados, para operar con la menor cantidad de privilegios
posible.
Otra cosa a tener en cuenta es que, si usted est usando buzones mbox, tendrs que establecer el
mail_extra_groups
variable para el propietario del grupo del directorio de spool de correo. Por ejemplo, si el grupo
propietario de / var / mail es electrnico , utilice lo siguiente:
mail_extra_groups = electrnico
Al establecer esta permite Dovecot para crear bloqueos cuando se est accediendo a los archivos de cola de correo de un usuario.
Ahora que ha terminado de congurar Dovecot, puede iniciar el daemon ejecutando
/ Usr / local / sbin / dovecot . A continuacin, debera ver las entradas de registro como los siguientes:
10 de abril 19:27:29 freebsd5-vm1 palomar: Dovecot v1.0.beta5 puesta en marcha
10 de abril 19:27:29 freebsd5-vm1 palomar: Generacin de parmetros Dife-Hellman para el primer
tiempo. Esto puede tomar un tiempo ..
10 de abril 19:27:58 freebsd5-vm1 palomar: ssl-build-param: parmetros SSL regeneracin
terminado
Esa es la tarea nal para el servidor nal de las cosas. Todo lo que necesitas hacer ahora es congurar su correo electrnico
clientes se conecten a la versin segura del servicio que estaban usando. Por lo general, habr un uso
Pgina 174
Cifrado, Usar SSL, o alguna otra casilla de nombre similar en la conguracin de correo entrante para su
cliente. Simplemente marque la casilla y vuelva a conectar, y usted debe utilizar SSL. Asegrese de que el cliente confa en su
Certicado de la AC, sin embargo, o se le fastidiaba con (!) Pero importantes advertencias conanza molestos.
Pgina 175
Hack # 55. SMTP Habilitado-TLS utiliza con Sendmail
Proteja de correo electrnico de sus usuarios en trnsito de espas.
Si ha congurado POP cifrado y servicios IMAP [Hack # 54] , el correo entrante de sus usuarios es
protegidos de otros una vez que llegue a sus servidores, pero qu pasa con su correo electrnico de salida? Usted puede
proteger el correo electrnico saliente rpida y fcilmente por la conguracin de su servidor de correo para utilizar la capa de transporte
Seguridad de cifrado (TLS). Prcticamente todos los clientes de correo modernos soportan TLS; permitirle simplemente
marcando una casilla en las preferencias de su cuenta de correo electrnico.
Si utiliza Sendmail, usted puede comprobar para ver si se ha compilado con soporte TLS mediante la ejecucin de esta
comando:
$ sendmail-bt-d0.1
Esto muestra las opciones con las que su sendmail se compil binario. Si usted ve una lnea que dice
STARTTLS
, Todo lo que necesita hacer es proporcionar informacin de conguracin adicional para conseguir el apoyo TLS
de trabajo. Si no ve esta lnea, tendrs que volver a compilar sendmail .
Antes de volver a compilar sendmail , vaya al directorio que contiene sendmail cdigo fuente 's y aadir el
siguientes lneas al devtools/Site/site.cong.m4 archivo:
APPENDDEF (\ Qconf_sendmail_ENVDEF ', \ Q-DSTARTTLS')
APPENDDEF (\ Qconf_sendmail_LIBS ', \ Q-LSSL-lcrypto')
Si no existe este archivo, slo tiene que crearlo. El proceso de construccin incluir automticamente el archivo. La
primera lnea del ejemplo anterior compila soporte TLS en el sendmail binario, y la segunda lnea
vincula el binario con libssl.so y libcrypto.so .
Despus de aadir estas lneas, puede recompilar y reinstalar sendmail ejecutando este comando:
# . / Build-c &&. / Construir instalar
Tendr que crear un certicado / par de claves [Hack # 69] de usar con Sendmail y luego recongurar
Sendmail utilizar el certicado y la clave que ha creado. Usted puede hacer esto mediante la edicin del archivo de
que su sendmail.cf se genera el archivo, que suele ser / etc / mail / sendmail.mc . Una vez que haya localizado
el archivo, agregue una lnea similar a la siguiente, para que apunte a su certicado de entidad emisora de certicados, as
como el certicado y la clave que gener anteriormente:
dene (\ QconfCACERT_PATH ', \ Q / etc / mail / certs')
dene (\ QconfCACERT ', \ Q / etc / mail / certs / cacert.pem')
dene (\ QconfSERVER_CERT ', \ Q / etc / mail / certs / cert.pem')
dene (\ QconfSERVER_KEY ', \ Q / etc / mail / certs / key.pem')
dene (\ QconfCLIENT_CERT ', \ Q / etc / mail / certs / cert.pem')
dene (\ QconfCLIENT_KEY ', \ Q / etc / mail / certs / key.pem')
La primera lnea le dice a sendmail donde se encuentra la entidad de certicacin, y el segundo dice que
dnde encontrar el propio certicado de CA. Las siguientes dos lneas indican a sendmail que el certicado y la clave para
utilizar cuando acta como servidor (es decir, aceptar correo de un agente de usuario de correo o de otro servidor de correo).
Las dos ltimas lneas indican a sendmail que el certicado y la clave para utilizar cuando se est actuando como un cliente (es decir,
retransmitir correo a otro servidor de correo).
Por lo general, usted puede entonces reconstruir su sendmail.cf escribiendo
hacer sendmail.cf
mientras que dentro del chero / etc / mail
directorio. Ahora, matar a sendmail y vuelva a iniciarlo.
Una vez que haya reiniciado sendmail , puede comprobar si TLS est congurado correctamente conectndolo a la misma:
# telnet localhost smtp
Pgina 176
Tratando 127.0.0.1 ...
Connected to localhost.
Carcter de escape es '^]'.
220 mail.example.com ESMTP Sendmail 8.12.9/8.12.9; Dom, 11 de enero 2004 12:07:43 -0800
(PST) ehlo localhost
250-mail.example.com Hola IDENT: 6l4ZhaGP3Qczqknqm/KdTFGsrBe2SCYC @ localhost
[127.0.0.1], encantado de conocerte
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250 TAMAO
250-DSN
250-ETRN
250-AUTH DIGEST-MD5, CRAM-MD5
250-STARTTLS
250-DELIVERBY
250 AYUDA
SALIR
221 2.0.0 Conexin de cierre mail.example.com
Conexin cerrada por el host externo.
Cuando sendmail retransmisiones de correo a otro servidor de correo habilitado para TLS, se cifrar su correo. Ahora, todo
lo que necesitas hacer es congurar su cliente de correo para utilizar TLS cuando se conecta a su servidor de correo, y su
correo electrnico de los usuarios ser protegida todo el camino hasta el agente de transferencia de mensajes (MTA).
Si bien no hay suciente espacio en este hack para cubrir todos los MTA disponibles, casi todos apoyar algunas
variante de TLS. Si ejecuta Exim (
http://www.exim.org
) O Courier (
http://www.courier-
mta.org
), Usted puede conseguir apoyo TLS derecho fuera de la caja. Postx (
http://www.postx.org
) Tiene
TLS y est diseado para ser usado en conjuncin con Cyrus-SASL (leer el CMO de
http://postx.state-of-mind.de/patrick.koetter/smtpauth/
). Qmail [Hack # 56] tambin tiene un parche
que aade soporte TLS. Con el soporte de TLS en prcticamente todos los acuerdos comerciales multilaterales y clientes de correo electrnico, ya no es
ninguna buena razn para enviar correo electrnico "en claro".
Pgina 177
Hack # 56. SMTP Habilitado-TLS utiliza con Qmail
Proteja de correo electrnico de sus usuarios en trnsito de espas de la manera Qmail.
Si desea proteger el correo electrnico de sus usuarios con cifrado de alta seguridad, es posible que tener cuidado con el uso de un paquete
con un rcord de menos-que ilustre pista de seguridad, tales como Sendmail [Hack # 55] . Otra opcin es
utilizar Qmail (
http://cr.yp.to/qmail.html).
Conguracin de Qmail para apoyar TLS puede parecer desalentador al principio, porque no hay parche "ocial" para
hacerlo; todas las mejoras a Qmail son as. Este truco usa un parche que integra SMTP AUTH
y TLS, de modo que usted puede tambin requerir que los usuarios se autentican con el servidor SMTP antes de que
les permitir retransmitir correo a travs de l.
En primer lugar, descargue la revisin (
http://shupp.org/smtp-auth-tls/
), Cambie al directorio que contiene el
Qmail cdigo fuente, y aplicar el parche:
# cd / usr/local/src/netqmail-1.05/netqmail-1.05
# patch-p0 <.. / ../netqmail-1.05-tls-smtpauth-20060105.patch
A continuacin, comprobar para ver si el parche se aplica limpiamente:
# encontrar. -Name \ *. Rej
Una vez que haya vericado que el parche se aplica correctamente, deje de Qmail ejecutando el siguiente
comandos:
# svc-d / service / qmail-smtpd / service / qmail-smtpd / log
# svc-d / service / qmail-send / service / qmail-send / log
Ahora, ejecute
make check conguracin
volver a instalarlo. Si usted necesita para generar los certicados X.509, puede ejecutar
hacer
-F Makele-cert cert
. Este le pedir informacin para crear un par certicado / clave que se
ser utilizado para cifrar el trco entre el servidor Qmail y otros servidores SMTP, as como entre sta
y los clientes de correo de los usuarios.
Una vez que el certicado y la clave que se han generado, van a ser colocados en
/ Var / qmail / control / servercert.pem (con un enlace simblico a / var / qmail / control / clientcert.pem ). De
Por supuesto, usted podra saltar este paso y hacer un enlace simblico a esos lugares desde una llave / certicado
pareja que ya ha creado [Hack # 69] . Una vez que haya recibido sus certicados al cuadrado de distancia, ejecute
hacer tmprsadh
para generar los parmetros de intercambio de claves Dife-Hellman.
Ahora, usted est listo para reiniciar Qmail:
# svc-u / service / qmail-send / service / qmail-send / log
# svc-u / service / qmail-smtpd / service / qmail-smtpd / log
Si haces telnet al puerto 25 del servidor y emite un
EHLO
comando, ahora debera ver que el servidor
soporta STARTTLS y AUTH SMTP:
$ telnet mail.example.com 25
Tratando 192.168.0.2 ...
Conectado a mail.example.com.
Carcter de escape es '^]'.
220 mail.example.com ESMTP
EHLO
250-freebsd5-vm1.nnc
250-STARTTLS
250-PIPELINING
Pgina 178
250-8BITMIME
250-SIZE 0
250 AUTH PLAIN LOGIN, CRAM-MD5
Ya casi ha terminado. Todo lo que necesita es una manera de dejar Qmail comprueba las contraseas de los usuarios para que
autenticarlos. Esto se hace con el checkpassword programa (
http://cr.yp.to/checkpwd.html
). Si
est utilizando Qmail como servidor POP3, es probable que ya lo tiene instalado correctamente, por lo que hacen.
Si no lo hace, descargar y descomprimir el tarball fuente para checkpassword , cambie al directorio que
se extrajo (por ejemplo, checkpassword-0.90 ), y ejecutar
make check conguracin
como root.
Despus de su instalacin, usted necesita para hacer checkpassword SUID, por lo que puede vericar las contraseas de usuario:
# chmod 4711 / bin / checkpassword
Ahora ya est listo en el lado del servidor. Los usuarios pueden disfrutar de correo electrnico cifrado entre sus clientes y
su servidor. Adems, puede permitir a los usuarios enviar correo electrnico desde cualquier lugar, ya que
no tienen que restringir la retransmisin basndose en los nombres de host por ms tiempo.
Sin embargo, tenga en cuenta que el correo electrnico se cifrar slo entre los clientes, su servidor, as como cualquier
servidores de destino que soportan TLS. Si el servidor de un destinatario no admite TLS, el mensaje ser
enviado en el claro en algn momento. Para el cifrado real de extremo a extremo, se puede usar GnuPG [Hacks # 42 y
# 43].
Pgina 179
Hack # 57. Instalar Apache con SSL y suEXEC
Ayude a proteger sus aplicaciones web con mod_ssl y suEXEC.
La seguridad del servidor Web es un tema muy importante en estos das, sobre todo porque la gente siempre estn encontrando
nuevas y creativas maneras de poner la Web para usar. Si est utilizando cualquier tipo de aplicacin web que necesita
manejar la autenticacin o proporciona algn tipo de informacin restringida, usted debera considerar seriamente
la instalacin de un servidor web con capacidades SSL. Sin SSL, la informacin de autenticacin de sus usuarios
enviar al servidor web se enva por la red en el claro, y cualquier persona con un sniffer puede ver cualquier
informacin que los clientes pueden tener acceso. Si usted ya est usando Apache 2.x, puede reconstruir fcilmente a
agregar capacidades SSL. Si est utilizando Apache 1.x, puede hacer esto con
mod_ssl
(
http://www.modssl.org
).
Adems, si el servidor web sirve contenido dinmico para mltiples usuarios, es posible que desee activar
Funcionalidad suEXEC de Apache. suEXEC permite al servidor web ejecutar scripts del lado del servidor como el
usuario que los posee, y no como la cuenta con la que se ejecuta el servidor web. De lo contrario, cualquier
usuario podra crear un cdigo de secuencia de comandos y ejecuta como la cuenta bajo la que se ejecuta el servidor web. Este es un
Lo malo, sobre todo en un servidor web multiusuario. Si no revisar las secuencias de comandos que los usuarios escriben
antes de permitir que se ejecuten, podran muy bien escribir cdigo que les permite acceder a otros usuarios '
datos u otra informacin sensible, como las cuentas de base de datos y contraseas.
Apache 1.x
Para compilar Apache con
mod_ssl
, Descargar el archivo
mod_ssl
distribucin de cdigo fuente para la versin
de Apache que se va a utilizar.
TIP
Si no desea agregar mod_ssl a una estructura de directorios existente, tambin tendr que descargar y descomprimir el Apache
fuente.
Despus de que hayas hecho esto, descomprimir el
mod_ssl
distribucin y vaya al directorio que crea. Entonces,
ejecutar un comando como el siguiente:
$ . / congure \
- With-apache = ../apache_1.3.36 \
- With-ssl = SYSTEM \
- Prex = / usr / local / apache \
- Enable-module = ms \
- Enable-module = mmap_static \
- Enable-module = so \
- Enable-shared = ssl \
- Disable-rule = SSL_COMPAT \
- Server-uid = www \
- Server-gid = www \
- Enable-suexec \
- Suexec-llamante = www \
- Suexec-uidmin = 500 \
- Suexec-gidmin = 500
Esta parches tanto el rbol de cdigo fuente de Apache con extensiones que se ofrecen con
mod_ssl
y congura
Apache para el proceso de generacin.
Es probable que tenga que cambiar una serie de opciones para construir Apache. El directorio
especicado en la
- With-apache
interruptor debe apuntar al directorio que contiene el cdigo fuente de Apache
Pgina 180
cdigo para la versin que est construyendo. Adems, si desea utilizar una versin de OpenSSL que no tiene
todava instalado, especique la ubicacin de su rbol de construccin con el
- With-ssl
cambiar.
Si decide hacerlo, debe congurar y construir OpenSSL en el directorio especicado antes
intentar construir Apache y
mod_ssl
. La
- Server-uid
y
- Server-gid
interruptores especican el usuario
y el grupo bajo el que se ejecutar el servidor web. Defecto de Apache a la que nadie cuenta. Sin embargo,
muchos de los programas que se pueden congurar a abandonar sus privilegios tambin utilizan por defecto el que nadie cuenta; si
terminas aceptando estos valores predeterminados con cada programa, el que nadie cuenta puede llegar a ser bastante
privilegiado. Por lo tanto, se recomienda que cree una cuenta separada para cada programa que proporciona
esta opcin.
Las opciones restantes habilitar y congurar suEXEC de Apache. Para proporcionar la funcionalidad suEXEC,
Apache usa un programa SUID envoltorio para ejecutar scripts de los usuarios. Este programa envoltorio hace varios
vericaciones antes de permitir que un programa se ejecute. Una cosa que los controles de contenedor es el UID del
proceso que lo invoc. Si no es la cuenta que se especica con la
- Suexec-persona que llama
opcin,
ejecucin de secuencia de comandos del usuario se anular. Desde el servidor web llama al suEXEC, ajuste este
opcin para el mismo valor que
- Server-uid
.
Adems, dado que la mayora de las cuentas con privilegios y grupos en un sistema por lo general todos tienen un UID y GID
debajo de un cierto valor, el envoltorio suEXEC comprobar si el UID o GID del proceso
invocando que est por debajo de este umbral. Para que esto funcione, se debe especicar el valor adecuado para su
sistema. En este ejemplo, Apache y
mod_ssl
se estn construyendo en un sistema Red Hat, que comienza regularmente
las cuentas de usuario y grupos de UID y el GID 500. Adems de estos controles, suEXEC realiza una
multitud de otros controles, tales como asegurarse de que la secuencia de comandos se puede escribir slo por el propietario, que la
propietario no es root, y que el guin no es SUID o SGID.
Despus de la conguracin de la escritura termina, cambie al directorio que contiene el cdigo fuente de Apache y
ejecutar
hacer
y
make install
. Puede ejecutar
facilitar certicados
si usted desea generar un SSL
certicado para probar la instalacin. Tambin puede ejecutar
hacer que tipo de certicado = custom
para generar una
solicitud de rma de certicado que ser rmado por una Autoridad de Certicado comercial o en su propio CA
[Hack # 69] .
Despus de instalar Apache, puede iniciarla ejecutando este comando:
# / usr / local / apache / bin / apachectl startssl locales
Si quieres empezar a cabo para ello, sin SSL, ejecute lo siguiente:
# / usr / local / apache / bin / inicio apacectl locales
A continuacin, puede ejecutar este comando para vericar que el apoyo suEXEC est habilitada:
# grep suexec / usr / local / apache / logs / error_log locales
[Jue 01 de enero 2004 16:48:17] [aviso] mecanismo suEXEC habilitada (envoltorio:
/ Usr / local / apache / bin / suexec)
Ahora, agregue una
Directorio
entrada para permitir los scripts CGI para los directorios de usuario:
<Directory /home/*/public_html>
AllowOverride FileInfo AuthCong Lmite
Opciones MultiView ndices SymLinksIfOwnerMatch Incluye ExecCGI
<Limit GET POSTE OPCIONES PROPFIND>
Orden allow, deny
Dejar de todas
</ Limit>
<LimitExcept GET POSTE OPCIONES PROPFIND>
Pgina 181
Orden negar, permitir
Denegar de todos
</ LimitExcept>
</ Directory>
Adems, aade esta lnea para habilitar los scripts CGI fuera de las ScriptAlias directorios:
AddHandler cgi-script. Cgi
Despus de que hayas hecho esto, puede reiniciar Apache ejecutando este comando:
# / usr / apache / bin / reinicio local / apachectl
Ahora, probar suEXEC con un simple script que ejecuta el
identicacin
comando, que imprimir la informacin
sobre el usuario bajo el que se ejecuta el script:
#! / Bin / sh
echo-e "Content-Type: text / plain \ r \ n \ r \ n"
/ Usr / bin / id
Coloque este script en un directorio como / usr / local / apache / cgi-bin , nombre que suexec-test.cgi , y hacerlo
ejecutable. Ahora, introduzca la direccin URL de la secuencia de comandos (por ejemplo, http://webserver/cgi-bin/suexec-test.cgi ) en su
navegador web favorito. Debera ver algo como esto:
uid = 80 (www) gid = 80 (www) groups = 80 (www)
Como se puede ver, se est ejecutando bajo la misma UID que el servidor web.
Ahora, copia la secuencia de comandos en un usuario public_html del directorio:
$ mkdir public_html && chmod 711 / / public_html
$ cp / usr / local / apache / cgi-bin /-test.cgi suexec / public_html locales
Despus de que hayas hecho esto, escriba la direccin URL de la secuencia de comandos (por ejemplo, http://webserver/user/suexec-test.cgi ) en
su navegador web. Debera ver algo similar a esto:
uid = 500 (Andrew) gid = 500 grupos (Andrew) = 500 (Andrew)
Adems de manejar scripts en los directorios HTML privados de los usuarios, suEXEC puede ejecutar secuencias de comandos como
otro usuario en un host virtual. Sin embargo, para que esto, usted tendr que crear toda su virtual
directorios de acogida bajo el documento raz del servidor web (por ejemplo, / / apache / htdocs usr / local ). Cundo
Haciendo esto, usted puede congurar qu usuarios y grupos del script se ejecutar como mediante el uso de la
Usuario
y
Grupo
directivas de conguracin dentro de la
VirtualHost
declaracin:
<VirtualHost>
MiUsuario usuario
Migrupo Grupo
DocumentRoot / usr / local / apache / htdocs / proyecto
...
</ VirtualHost>
Apache 2.x
Conguracin de Apache 2.x no es muy diferente de la conguracin de Apache 1.x La principal diferencia es que SSL
funcionalidad ya est incluido y slo necesita ser activado. Las opciones que se utilizan para permitir suEXEC son
tambin ligeramente diferente:
$ . / congure \
- With-ssl = SYSTEM \
- Prex = / usr/local/apache2 \
Pgina 182
- Enable-module = ms \
Pgina 182
- Enable-module = mmap_static \
- Enable-module = so \
- Enable-ssl \
- Enable-suexec \
- With-suexec-llamante = daemon \
- With-suexec-uidmin = 500 \
- With-suexec-gidmin = 500
Una cosa que usted notar es ausente es la capacidad de especicar el usuario y de grupo en las que el
servidor ejecuta. Apache 2 por defecto el demonio de usuario y de grupo, que se puede cambiar ms tarde por
la modicacin de la
Usuario
y
Grupo
lneas en el archivo de conguracin, httpd.conf . Si utiliza el
- Prex
opcin
la forma en que se muestra en este ejemplo, httpd.conf estar en / usr/local/apache2/conf . Cuando se cambia
estas lneas usted tambin tendr que reconstruir el daemon y dile al congurar el script de nuevo usuario con el
-
con-suexec-persona que llama
opcin.
Despus de la conguracin de la escritura termina, construir e instalar el daemon ejecutando
hacer
y luego cambiando
a raz y en ejecucin
make install
. Una vez que haya terminado, usted tendr que editar el archivo de conguracin para
congurar SSL. Para ello, eliminando el comentario de la lnea que incluye las opciones de conguracin SSL especco:
# Include conf / / httpd-ssl.conf adicional
Ahora, usted necesita decirle a Apache dnde encontrar su certicado y clave editando el archivo especicado en el
Incluir
entrada. Por defecto, busca server.crt y server.key en el mismo directorio que el chero httpd.conf :
SSLCerticateFile / usr/local/apache2/conf/server.crt
SSLCerticateKeyFile / usr/local/apache2/conf/server.key
Una vez que tenga su certicado y clave congurada, iniciar Apache mediante el uso de
apachectl
:
# / inicio usr/local/apache2/bin/apachectl
La diferencia entre Apache 1.xy 2.x es que
apachectl
ya no distingue entre
SSL y no SSL conguraciones, por lo que el
startssl
argumento no es aceptado ya. Aparte de estos
diferencias, puede seguir los mismos pasos que se utilizan para Apache 1.x
Desafortunadamente, suEXEC es incompatible con
mod_perl
y
mod_php
, Ya que los mdulos se ejecutan dentro
el proceso de Apache en lugar de hacerlo en un programa separado. Dado que el proceso de Apache se ejecuta como un
usuario no root, no puede cambiar el UID en las que las secuencias de comandos se ejecutan. suEXEC trabaja teniendo
Apache llamar un envoltorio SUID especial (por ejemplo, / usr / local / apache / bin / suexec ) que slo puede ser invocado por
Procesos de Apache.
Si usted se preocupa de hacer la seguridad / rendimiento trade-off usando suEXEC pero todava necesita ejecutar Perl
scripts, pueden hacerlo a travs de la interfaz CGI estndar. Tambin puede ejecutar los programas de PHP a travs de la
Interfaz CGI, pero usted tendr que crear una
php
binario y especicarla como intrprete en todo el PHP
secuencias de comandos que desea ejecutar a travs de suEXEC. Alternativamente, puede ejecutar las secuencias de comandos a travs de
mod_perl
o
mod_php
situndolos fuera de los directorios donde suEXEC funcionar.
Pgina 183
Hack # 58. BIND Secure
Bloquee su conguracin BIND para ayudar a contener los posibles problemas de seguridad.
Debido a BIND del historial no tan ilustre en materia de seguridad, si desea utilizar l se puede
probablemente desee pasar un tiempo de endurecimiento de la conguracin. Una manera de hacer correr BIND un poco ms seguro
es correr dentro de un entorno de espacio aislado [Hack # 10] . Esto es fcil de hacer con las versiones recientes de
BIND, ya que soporta de forma nativa se ejecuta como un usuario sin privilegios dentro de un
chroot ()
la crcel. Todo lo que necesitas
a hacer es congurar el directorio que va a tener que
chroot ()
ay cambiar el comando que est utilizando
para empezar nombrado para reejar esto.
Para empezar, cree un usuario y un grupo para ejecutar nombrado como (por ejemplo, el nombre ). Para preparar el espacio aislado
medio ambiente, tendrs que crear la estructura de directorio adecuado. Puede crear los directorios
para un entorno de este tipo dentro de / named_chroot ejecutando los siguientes comandos:
# mkdir / named_chroot
# cd / named_chroot
# mkdir-p dev etc / namedb / esclavo var / run
A continuacin, tendr que copiar su named.conf archivo y namedb directorio para el entorno de espacio aislado:
# cp / etc / named.conf / named_chroot / etc
# cp-a / var / namedb / * / named_chroot / etc / namedb
Estos comandos suponen almacenar sus archivos de zona en / var / namedb .
Si est congurando BIND como un servidor DNS secundario, que tendr que hacer el
/ Named_chroot / etc / namedb / esclavo directorio de escritura para que el nombre puede actualizar los registros que contiene
cuando se realiza una transferencia de dominio del nodo DNS principal:
# chown-R con nombre: nombre / named_chroot / etc / namedb / esclavo
Adems, el nombre tendr que escribir su ID de proceso (PID) de archivo para / named_chroot / var / run , por lo que
tener que hacer este directorio escribible por el nombre de usuario, as:
# chown llamada: llamada / named_chroot / var / run
Ahora, cree los archivos de dispositivo que nombran tendrn que acceder despus de que ha llamado
chroot ()
:
# cd / named_chroot / dev
# ls-la / dev / null / dev / random
CRW-rw-rw- 1 root raz 1, 03 de enero 30 2003 / dev / null
CRW-r - r - 1 root raz 1, 08 de enero 30 2003 / dev / random
# mknod nula c 1 3
# mknod c aleatorio 1 8
# chmod 666 nula azar
Tambin tendr que copiar el archivo de zona horaria en / etc / localtime a / named_chroot / etc / localtime .
Adicionalmente, llamado generalmente utiliza / dev / log para comunicar sus mensajes de registro a syslogd . Desde este
no existe en el entorno de recinto de seguridad, tendr que decirle a syslogd para crear un socket que
la
chroot ()
-Ed
llamado
proceso puede escribir en. Usted puede hacer esto mediante la modicacin de su syslogd arranque
comando y aadiendo
-A / named_chroot / dev / log
a la misma. Por lo general, usted puede hacer esto mediante la modicacin de una
archivo existente en / etc .
Por ejemplo, en Fedora, edite / etc / syscong / syslogd y modicar el
SYSLOGD_OPTIONS
lnea para que diga:
Pgina 184
SYSLOGD_OPTIONS = "-m 0-a / named_chroot / dev / log"
O, si se est ejecutando FreeBSD, modicar el
syslogd_ags
lnea en / etc / rc.conf :
syslogd_ags = "-s-a / named_chroot / dev / log"
Despus de reiniciar syslogd , debera ver una toma de registro en / named_chroot / dev .
Ahora, para comenzar con nombre , todo lo que tiene que hacer es ejecutar el siguiente comando:
# nombre-u nombre-t / named_chroot
Otros trucos para aumentar la seguridad de su instalacin de BIND incluyen limitar las transferencias de zona a
tu esclavo servidores DNS y la alteracin de la respuesta a las consultas de la versin BIND. La restriccin de las transferencias de zona
asegura que los atacantes al azar no podrn solicitar una lista de todos los nombres de host para las zonas
organizada por sus servidores de nombres. Puede restringir las transferencias de zona a nivel mundial a determinados hosts poniendo
allow-transfer
seccin dentro del
Opciones
seccin en su named.conf .
Por ejemplo, si desea restringir las transferencias de todas las zonas alojadas en el servidor DNS de slo
192.168.1.20 y 192.168.1.21, puede utilizar una
allow-transfer
seccin de la siguiente manera:
allow-transfer {
192.168.1.20;
192.168.1.21;
};
Si no quiere limitar las transferencias de zona a nivel mundial y en su lugar quiere especicar los hosts permitidos en un
zona por zona, usted puede poner la
allow-transfer
la seccin interior de la
zona
seccin.
Antes de que un atacante intenta explotar una vulnerabilidad de BIND, ella a menudo buscar vulnerables
versiones de BIND conectndose a los servidores de nombres y la realizacin de una consulta de versiones. Desde que debiera
Nunca necesite realizar una consulta versin en su propio servidor de nombres, puede modicar la respuesta BIND
enva al solicitante. Para ello, agregue un
versin
declaracin a la
Opciones
seccin en su named.conf :
versin "v1.5 DNS superhappy";
TIP
Esta declaracin en realidad no proporciona seguridad adicional, pero si usted no quiere hacer publicidad de lo que el software y la versin que se est ejecutando a
todo el mundo, usted no tiene que hacerlo.
Adems, si usted est funcionando un servidor de nombres frente al pblico que se utiliza para servir a zonas, usted querr
deshabilitar la recursividad. De lo contrario, el servidor podra ser utilizado en una denegacin de servicio (DoS). Para desactivar
recursividad, tendrs que aadir un
recursividad
declaracin a la
Opciones
seccin de named.conf :
recursividad no;
Usted debe permitir la recursin slo en servidores donde se tiene un nivel razonable de conanza en los clientes
que puedan consultarlo, como un servidor de nombres interno de la red.
Vea tambin
La seccin "Proteccin de BIND" en la construccin de servidores seguros con Linux , por Michael D. Bauer
(O'Reilly)
Pgina 185
Hack # 59. Congurar un servidor DNS Minimal y protegido
Utilice Djbdns, una alternativa ms segura a BIND, para servir a sus registros DNS.
Durante muchos aos BIND ha sido el caballo de batalla de la Internet, que sirve registros DNS. Pero con esa
la historia trata de un largo historial de vulnerabilidades de seguridad. Mientras que la velocidad a la que las vulnerabilidades
se estn descubriendo ha disminuido en los ltimos aos (se ha vuelto "ms seguro"), es posible que desee errar
en el lado de la precaucin y el uso de un paquete de software diferente que no tiene una historia tan colorida.
Uno de estos paquetes es Djbdns (
http://cr.yp.to/djbdns.html
), Escrito por Daniel J. Bernstein, para el cual
no hay problemas de seguridad han dado a conocer hasta la fecha.
Una de las cosas que hace Djbdns tan seguro es su arquitectura. BIND utiliza un gran monoltica
programa para realizar todas las tareas relacionadas con el DNS. Por otro lado, Djbdns utiliza muchos especializada separada
programas para servir zonas de autoridad, hacer consultas recursivas, realizar transferencias de zona, y llevar a cabo
tala, entre otras cosas. Cada uno de estos subprogramas es ms pequeo y ms fcil de auditora para
vulnerabilidades.
Este truco se centra principalmente en la tinydns programa, que Djbdns utiliza para servir DNS autorizado
zonas.
Instalacin de daemontools
Antes de que usted puede conseguir Djbdns en funcionamiento, primero tendr que instalar daemontools
(
http://cr.yp.to/daemontools.html
), Otro paquete utilizado para gestionar los procesos del servidor en Unix
sistemas. Descargue el archivo tar de
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
y
crear un / paquete del directorio:
# mkdir / paquete
# chmod 1755 / paquete
A continuacin, cambie a / paquete y desempaquetar el archivo tar. Usted podra preguntarse por qu estamos usando este
/ Paquete de directorio. La razn es porque daemontools 's proceso de instalacin hace que los enlaces simblicos
desde los binarios compilados durante el proceso de construccin a otros lugares dentro del sistema de
sistemas de archivos. Por lo tanto, se necesita un buen lugar permanente para mantener el rbol de cdigo fuente; cualquier directorio que satisface
este requisito es suciente.
Una vez que el cdigo fuente se ha desempaquetado en / paquete , cambie el directorio a admin/daemontools-
0.76 y ejecutar el script de instalacin:
# admin/daemontools-0.76 cd
# paquete / install
Es posible que encuentre un error como este:
/ Usr / bin / ld: Error:. Denicin en la seccin TLS / lib/libc.so.6 desajustes TBSS no TLS
referencia en envdir.o
/ Lib/libc.so.6: no saba leer smbolos: Bad valor
collect2: ld devolvi el estado de salida 1
make: *** [envdir] Error 1
Manda copia a / de comandos. ...
cp: cannot stat \ Qcompile / svscan ': No existe el chero o directorio
Si lo hace, descargue el parche disponible en
http://www.qmailrocks.org/downloads/patches/daemontools-0.76.errno.patch
y aplicarlo:
# cd / package/admin/daemontools-0.76/src
Pgina 186
# patch <
<ruta parchear <archivo
Ahora, ejecute
paquete / install
de nuevo.
Si el sistema utiliza un proceso de inicio SysV (es decir, si un / etc / inittab y un archivo etc / / rc.d se utilizan directorio),
una entrada para daemontools ser aadido a / etc / ininttab . Esto har que daemontools para automticamente
empezar ahora y con cada inicio del sistema. De lo contrario, el proceso de instalacin aadir una lnea al / etc / rc.local para
iniciarlo en el arranque. En lugar de reiniciar al comenzar daemontools , localice esta lnea y ejecutarlo de forma manual:
# csh-cf '/ comando / svscanboot &'
Ahora es el momento de instalar Djbdns.
Instalacin Djbdns
Una vez que hayas instalado daemontools , descargar y desempaquetar el archivo tar Djbns (disponible en
http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
) Y cambie al directorio que se ha creado (por ejemplo, djbdns-
1,05 ). En los sistemas Linux, ejecute el siguiente antes de iniciar la construccin:
$ echo gcc-O2-include / usr / include / errno.h> conf-cc
Construir Djbdns simplemente ejecutando
hacer
. Despus de la compilacin nalice, run
make check conguracin
para instalarlo.
Usted tendr que crear dos cuentas de usuario bajo el que se ejecutar tinydns y su proceso de registro:
# adduser
_tinydns
# adduser
_dnslog
Ahora, congure tinydns para usar estas cuentas y contar daemontools para iniciarlo (reemplace
192.168.0.40
con
la direccin IP de su sistema):
# tinydns-conf
_tinydns _dnslog
/ etc / tinydns
192.168.0.40
# ln-s / etc / tinydns / servicio
Despus de unos segundos, daemontools comenzarn tinydns , y usted debe verlo y su proceso de registrador:
# ps-aux | egrep '
_tinydns
|
_dnslog
Pgina 187
'
_tinydns 49.485 0,0 0,2 1328 552 p1 I 12:53a.m. 0:00.12 / usr / local / bin / tinydns locales
_dnslog 49.486 0,0 0,2 1208 480 p1 I 12:53a.m. 0:00.07 multilog t. / Main
Ahora es el momento de aadir algunos registros DNS.
Agregar registros
La creacin de una zona autorizada con Djbdns es mucho menos complejo que hacerlo con BIND. De hecho,
es sorprendentemente fcil. En pocas palabras los registros DNS autorizados en un archivo de texto plano y luego compilar
en un formato de base de datos binarios que tinydns saben leer.
Ahora, usted tendr que crear algunos registros. Algunos programas para agregar registros se incluyen, pero usted
probablemente desee agregar registros NS y MX con la mano, ya que las herramientas incluidas cumplir un cierto DNS-
y el esquema de nomenclatura de correo del servidor que es posible que no desee utilizar.
En primer lugar, crear NS y registros SOA para el dominio y un registro para su servidor de nombres:
# cd / servicio / tinydns / root
# echo "
. Example.com: 192.168.0.40: ns1.example.com
"> Datos
# echo "
.0.168.192 In-addr.arpa:. 192.168.0.40: ns1.example.com
">> Datos
El primer carcter de cada entrada signica el tipo de registro. Un punto (
.
) Hace que tinydns para crear un NS
rcord para example.com sealando ns1.example.com , un registro para ns1.example.com y una SOA
grabar example.com . La segunda entrada de los delegados de la zona inversa para 192.168.0.0/24 al nombre
servidor. Despus de aadir estas entradas, ejecutar
hacer
para crear la base de datos que tinydns lee sus datos de,
data.cdb . Recuerda hacer esto despus de cada cambio que realice en los datos .
Ahora, echa un vistazo a los registros que se crearon:
# dig-t cualquier
example.com @ 192.168.0.40
; << >> << >> DiG 9.3.1-t cualquier example.com @ 192.168.0.40
; (1 servidor se encuentra)
;; Opciones globales: printcmd
;; Respuesta conseguida:
;; - >> << HEADER - opcode: QUERY, estado: NOERROR, id: 18791
;; banderas: qr aa rd; PREGUNTA: 1, RESPUESTA: 2, AUTORIDAD: 0, adicional: 1
;; PREGUNTA SECCIN:
; Example.com. IN CUALQUIER
;; RESPUESTA SECCIN:
example.com. 2560 IN SOA ns1.example.com. hostmaster.example.com.
1151133345 16384 2048 1048576 2560
example.com. 259200 IN NS ns1.example.com.
;; SECCIN ADICIONAL:
Pgina 188
ns1.example.com. 259200 IN La 192.168.0.40
;; Tiempo de consulta: 6 ms
;; SERVER: 192.168.0.40 # 53 (192.168.0.40)
;; CUNDO: sbado 24 de junio 2006 01:15:48
;; MSG SIZE rcvd: 110
Trate de aadir un registro MX. Esta vez, utilice el complemento mx programa de ayuda:
# . / add-mx
example.com 192.168.0.42
Esto crear la siguiente entrada en el archivo de datos:
@ Example.com: 192.168.0.42: a :: 86400
Esto se traduce en un registro A y una entrada de puntero MX para a.mx.example.com . Este es un ejemplo de la
Programas de ayuda la aplicacin de su propio esquema de nombres. Cambie la entrada para el siguiente aspecto a
crear una A y registro MX para mail.example.com lugar:
@ Example.com: 192.168.0.42: mail.example.com: 10:86400
Los programas de ayuda no son buenos para todo, pero son buenos para agregar hosts genricos. Para agregar un
host, utilice el apropiado nombre de add-host del programa:
# . / add-host
caligula.example.com 192.168.0.41
Esto crea una
=
entrada, lo que hace que tinydns para servir a un registro A para caligula.example.com y su
correspondiente registro PTR de DNS inversa:
= Caligula.example.com: 192.168.0.41:86400
Para agregar un adicional (pero no PTR) para un host, utilice la
add-alias
comando. Entradas creadas
con esta orden de arranque con un
+
:
# . / add-alias
www.example.com 192.168.0.41
# datos de gato
. Example.com: 192.168.0.40: ns1.example.com
.0.168.192 In-addr.arpa:. 192.168.0.40: ns1.example.com
@ Example.com: 192.168.0.42: mail.example.com: 10:86400
= Caligula.example.com: 192.168.0.41:86400
+ Www.example.com:192.168.0.41:86400
Los tipos de entradas aqu descritos deben satisfacer la mayora de las situaciones. Sin embargo, hay varios otros
tipos, incluyendo un tipo genrico que le permite especicar las entradas que generan cualquier tipo de registro DNS.
Para obtener ms informacin sobre estos programas, consulte
http://cr.yp.to/djbdns/tinydns-data.html
.
Pgina 189
Hack # 60. MySQL Secure
Tome algunas medidas bsicas para endurecer la instalacin de MySQL.
MySQL (
http://www.mysql.com
), Uno de los sistemas de bases de datos de cdigo abierto ms populares disponibles
hoy en da, se utiliza a menudo en combinacin con el servidor web Apache y el lenguaje de scripting PHP para
manejar contenido dinmico en la Web. Sin embargo, MySQL es una pieza compleja de software y, dada la
hecho de que a menudo tiene que interactuar tanto a nivel local como a distancia con una amplia gama de otros programas,
especial cuidado se debe tomar para asegurar tanto como sea posible.
Algunas medidas que puede tomar incluyen ejecutar MySQL en un
chroot ()
-Ed ambiente [Hack # 10] , Ejecutarlo
como un usuario no root, y deshabilitar la capacidad de MySQL para cargar datos de archivos locales. Por suerte, ninguno de ellos
son tan difcil de hacer, ya que podra parecer. Para empezar, vamos a ver cmo
chroot ()
MySQL.
En primer lugar, crear un usuario y un grupo para MySQL para funcionar como y descargar la distribucin fuente de MySQL.
Despus de que hayas hecho esto, descomprimir la fuente e ir al directorio que crea. Ejecute este comando
construir MySQL y establecer su estructura de directorios para
chroot ()
-Ing:
$ . / congure - prex = / mysql - with-mysqld-ldags =-all-static && make
Esto congura MySQL a instalar en / mysql y enlaza estticamente el mysqld binaria; esto hace
la creacin de la
chroot ()
ambiente mucho ms fcil, ya que no tendr que copiar cualquier adicional
bibliotecas para el medio ambiente.
Una vez nalizada la compilacin, convertirse en root y ejecutar estos comandos para instalar MySQL:
# make install DESTDIR = / mysql_chroot && ln-s / mysql_chroot / mysql / mysql
# scripts / mysql_install_db
El primer comando instala MySQL, pero en lugar de colocar los archivos en / mysql , que los coloca en
/ Mysql_chroot / mysql . Adems, crea un enlace simblico desde ese directorio a / mysql , lo que hace
administrar MySQL mucho ms fcil despus de la instalacin.
El segundo comando crea las bases de datos por defecto de MySQL. Si no hubiera creado el enlace simblico
antes de ejecutar este comando, el mysql_install_db guin habra fracasado, porque espera
hallazgo instalado MySQL bajo / mysql . Muchos otros scripts y programas esperan que el mismo, por lo que
crear el enlace simblico le har la vida ms fcil.
A continuacin, debe congurar los permisos de directorio correctas para que MySQL pueda funcionar
correctamente:
# chown-R root: mysql / mysql
# chown-R mysql / mysql / var
Ahora, intente ejecutar MySQL:
# / mysql / bin / mysqld_safe y
Iniciando el demonio mysqld con bases de datos desde / mysql / var
# ps-aux | grep mysql | grep-v grep
raz 10 137 0,6 0,5 4156 744 pts / 2 S 23:01 0:00 / bin / sh / mysql / bin /
mysqld_safe
mysql 10.150 7,0 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
mysql 10.151 0,0 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
mysql 10.152 0,0 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
mysql 10.153 0,0 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
mysql 10.154 0,0 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
mysql 10.155 0,3 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
Pgina 190
mysql 10.156 0,0 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
mysql 10.157 0,0 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
mysql 10.158 0,0 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
mysql 10.159 0,0 9,3 46.224 11.756 pts / 2 S 23:01 0:00 [mysqld]
# / mysql / bin / mysqladmin shutdown
040103 23:02:45 mysqld terminado
[1] + Done / Mysql / bin / mysqld_safe
Ahora que usted sabe MySQL est trabajando fuera de su
chroot ()
entorno, puede crear la
archivos y directorios adicionales que se necesitan para trabajar en el interior del
chroot ()
medio ambiente:
# mkdir / mysql_chroot / tmp / mysql_chroot / dev
# chmod 1777 / mysql_chroot / tmp
# ls-l / dev / null
CRW-rw-rw- 1 root raz 1, 03 de enero 30 2003 / dev / null
# mknod / mysql_chroot / dev / null c 1 3
Ahora, intente ejecutar
mysqld
en el
chroot ()
-Ed medio ambiente:
# / usr / sbin / chroot / mysql_chroot / mysql / libexec / mysqld-u 100
En este ejemplo, el UID del usuario que quiere
mysqld
para funcionar como se especica con la
-U
opcin. Este
debe corresponder con el UID del usuario creado anteriormente.
Para facilitar la administracin, es posible que desee modicar el mysqld_safe script de shell para
chroot ()
mysqld para
usted. Usted puede lograr esto mediante la bsqueda de las lneas en las que mysqld se llama y su modicacin para usar
el chroot programa.
Abrir / mysql / bin / mysqld_safe y localice el bloque de lneas que tiene este aspecto:
si la prueba-z "$ args"
entonces
$ NOHUP_NICENESS $ ledir / $ MYSQLD $ defecto \
- En basedir = $ MY_BASEDIR_VERSION \
- Datadir = $ DATADIR $ user_option \
- Pid-le = $ pid_le - skip-locking >> $ err_log 2> & 1
ms
eval "$ $ NOHUP_NICENESS ledir / $ MYSQLD $ por defecto \
- En basedir = $ MY_BASEDIR_VERSION \
- Datadir = $ DATADIR $ user_option \
- Pid-le = $ pid_le - skip-locking $ args >> $ err_log 2> & 1 "

Cambie a tener este aspecto:


si la prueba-z "$ args"
entonces
$ NOHUP_NICENESS / usr / sbin / chroot / mysql_chroot \
$ Ledir / $ MYSQLD $ por defecto \
- En basedir = $ MY_BASEDIR_VERSION \
- Datadir = $ DATADIR $ user_option \
- Pid-le = $ pid_le - skip-locking >> $ err_log 2> & 1
ms
eval "$ NOHUP_NICENESS / usr / sbin / chroot / mysql_chroot \
$ Ledir / $ MYSQLD $ por defecto \
- En basedir = $ MY_BASEDIR_VERSION \
- Datadir = $ DATADIR $ user_option \
- Pid-le = $ pid_le - skip-locking $ args >> $ err_log 2> & 1 "

Ahora, usted puede iniciar MySQL utilizando el mysqld_safe guin envoltorio, as:
Pgina 191
# / mysql / bin / mysqld_safe - user = 100
Es posible que tambin desee crear una separada my.conf archivo para las utilidades de MySQL y el servidor. Por ejemplo,
en / etc / my.cnf , puede especicar
socket = / mysql_chroot / tmp / mysql.sock
en la seccin [client] de modo
que usted no tiene que especicar el socket manualmente cada vez que se ejecuta un programa relacionado con el MySQL.
Tambin probablemente querr desactivar la capacidad de MySQL para cargar datos de archivos locales. Para ello, puede
aadir
set-variable = local-inle = 0
a la seccin [mysqld] de su / mysql_chroot / etc / my.cnf . Este
desactiva de MySQL
LOAD DATA LOCAL INFILE
comando. Alternativamente, se puede desactivar desde el
lnea de comandos mediante el
- Local-inle = 0
opcin.
Pgina 192
Hack # 61. Compartir archivos de forma segura en Unix
Utilice SFS para ayudar a proteger sus sistemas de cheros remotos.
Si est utilizando los sistemas Unix y compartir archivos en la red, es muy probable que el uso de la
Sistema de archivos de red (NFS). Sin embargo, NFS tiene muchos problemas de seguridad, no slo con el individuo
implementaciones, sino tambin en el diseo del protocolo en s. Por ejemplo, si un usuario puede suplantar una IP
la direccin y el montaje de un recurso compartido NFS que slo est destinado para un determinado equipo, ese usuario ser esencialmente
tener acceso root a todos los archivos en ese recurso compartido. Adems, NFS utiliza identicadores de archivos secretos que son
se utiliza con cada solicitud de archivo. Desde NFS no cifra su trco, es fcil para los atacantes adivinar estos
identicadores de archivo. Si adivinan correctamente, ganan efectivamente el acceso total de las races para el sistema de archivos remoto.
El sistema de auto-certicacin de archivos (SFS), disponible en
http://www.fs.net,
ja todos estos problemas por
empleando una losofa de diseo radicalmente diferente. NFS fue creado con la idea de que pueda
(Y debe) confa en la red. SFS ha sido diseado desde el principio con la idea de que no
red nunca se debe conar hasta que se pueda demostrar denitivamente su identidad.
Para lograr este nivel de seguridad, SFS hace uso de claves pblicas en los extremos tanto del cliente como de servidor.
Utiliza estas teclas para vericar la identidad de los servidores y clientes, y tambin proporciona control de acceso en
el lado del servidor. Un efecto secundario particularmente agradable de dicho cifrado fuerte es que SFS ofrece una gran
nivel ms no de grano de control de acceso de NFS. Con NFS, que se limitan a especicar que alberga
puede o no puede conectarse a un sistema de archivos exportado dado. Con el n de acceder a un servidor de SFS, el usuario debe
crear un par de claves y luego autorizar la clave de sesin en el servidor SFS y el registro de la clave
manualmente.
Edicio SFS puede tomar hasta un buen montn de espacio en disco. Antes de que lo haga, asegrese de que tiene al menos
550 MB de espacio disponible en el sistema de cheros en el que se le compilando SFS. Usted tambin tendr que
asegrese de que usted tiene la GNU precisin mltiple (GMP) biblioteca matemtica (
http://www.swox.com/gmp/
)
instalado.
Antes de empezar a construir SFS, tambin hay que crear un usuario y un grupo para los demonios del SFS. Por
De forma predeterminada, estos son a la vez llama SFS . Si desea utilizar un usuario o grupo diferente, puede hacer esto mediante la
pasar opciones al congurar guin.
Una vez que su sistema est listo, echa un vistazo a la versin ms reciente del cdigo de SFS (pulsa Intro en la
solicitud de contrasea):
$ cvs-d: pserver: sfscvs@cvs.fs.net :/ cvs sesin
Inicio de sesin en: pserver: sfscvs@cvs.fs.net: 2401/cvs
CVS password:
$ cvs-z5-d: pserver: sfscvs@cvs.fs.net :/ co-P SFS1 cvs
A continuacin, cambie a la SFS1 directorio y construir SFS ejecutando este comando:
$ sh. / setup &&. / congure && make
Una vez que el proceso haya terminado, la raz y el tipo convertido
make install
.
Si desea utilizar un usuario y grupo que no sea sfs , puede especicar estos con la
- With-sfsuser
y
-
-With-sfsgroup
Opciones:
$ . / congure - with-sfsuser =
nadie
Pgina 193
- With-sfsgroup =
nadie
Edicio SFS puede tomar un poco de tiempo, as que es posible que desee aprovechar la oportunidad para disfrutar de una taza de
caf, un tentempi, o tal vez incluso una comida completa, dependiendo de la velocidad de la mquina y de la cantidad de
memoria que tiene.
Despus SFS ha terminado de construir y que ha congurado, puedes probarlo conectndose a la SFS
servidor pblico del proyecto. Para ello, inicie el demonio cliente SFS, sfscd y cambie al directorio
bajo el cual se montar el servidor de SFS:
# sfscd
# cd / sfs / @ sfs.fs.net, uzwadtctbjb3dg596waiyru8cx5kb4an
# ls
Sfswww reddy FELICITACIONES cvs PI0
# ENHORABUENA gato
Ha congurado un cliente SFS trabajo.
#
sfscd crea automticamente el / sfs directorio y el directorio para el servidor de SFS.
TIP
SFS se basa en el sistema operativo portmap daemon NFS y montador; usted tendr que tener los que ejecutan antes de ejecutar la
cliente.
Para congurar un servidor de SFS, primero inicie sesin en su servidor y generar un par de claves pblica y privada:
# mkdir / etc / sfs
# sfskey gen-P / etc / sfs / sfs_host_key
sfskey le pedir que golpear en las claves para un poco de tiempo con el n de recopilar la entropa para el azar
generador de nmeros.
Ahora, usted tendr que crear un archivo de conguracin para sfssd , el demonio del servidor SFS. Cree un archivo en
/ etc / sfs llamados sfsrwsd_cong , que es donde usted congura el espacio de nombres del sistema de archivos que se SFS
exportar a otros hosts.
Si desea exportar el / home del sistema de archivos, crear un archivo de conguracin de la siguiente manera:
Exportacin / var / sfs / root /
Export / home / home
A continuacin, cree el directorio / var / sfs / root y var sfs / / / home directorios. Despus de eso, crear exportaciones NFS para que el
/ Casa de sistema de archivos puede ser montado bajo / var / sfs / root / home . Estos son luego re-exportado por sfssd . La
Exportaciones NFS necesitan para permitir el montaje slo desde localhost .
Esto es lo que / etc / exports parece que para la exportacin de / home :
/ Var / sfs / root localhost (rw)
/ Casa localhost (rw)
Esta exportaciones archivo es para Linux. Si est ejecutando el servidor de SFS en otro sistema operativo (como
Solaris o OpenBSD), consulte a su sistema operativo mountd pgina del manual de la forma correcta de aadir
estas acciones.
Ahora, iniciar el servidor NFS de su sistema operativo. Una vez que NFS se ha iniciado, puede empezar sfssd . Despus
Pgina 194
que intenta conectarse a la sfssd servidor, usted debe ver algunos mensajes como estos en sus registros:
10 de junio 10:14:47 coloso: sfssd: versin 0.8pre, pid 30880
10 de junio 10:14:47 coloso: rexd: versin 0.8pre, pid 30882
10 de junio 10:14:47 coloso: sfsrwsd: versin 0.8pre, pid 30884
10 de junio 10:14:47 coloso: rexd: serving@colossus.nnc, kkvt3kzmqry5gy4s3es97yu9gip2f967
10 de junio 10:14:47 coloso: rexd: desove / usr/local/lib/sfs-0.8pre/ptyd
10 de junio 10:14:47 coloso: sfsauthd: versin 0.8pre, pid 30883
10 de junio 10:14:47 coloso: sfssd: escuchar en el puerto TCP 4
10 de junio 10:14:47 coloso: sfsauthd: dbcache_refresh_delay = 0
10 de junio 10:14:47 coloso: sfsauthd: la desactivacin de servidor de autenticacin de cach de actualizacin ...
10 de junio 10:14:47 coloso rpc.mountd: autenticado peticin de montaje de
localhost: 956 por / var / sfs / root (/ var / sfs / root)
Jun 10 10:14:47 coloso: sfsauthd: porcin
@ Colossus.nnc, kkvt3kzmqry5gy4s3es97yu9gip2f967
10 de junio 10:14:47 coloso rpc.mountd: autenticado peticin de montaje de
localhost: 956 para / home (/ home)
10 de junio 10:14:47 coloso: sfsrwsd: porcin
/ Sfs / @ colossus.nnc, kkvt3kzmqry5gy4s3es97yu9gip2f967
La ltima entrada de registro muestra la ruta de acceso que los usuarios pueden utilizar para montar su sistema de cheros. Antes de montar cualquier
sistemas de archivos en el servidor, los usuarios tendrn que crear un par de claves y registrarlo en su servidor. Ellos
puede hacerlo accediendo a su servidor y ejecutar el
sfskey
comando:
$ registro sfskey
sfskey: / home / andrew / .sfs / random_seed: No existe el chero o directorio
sfskey: la creacin del directorio / home / andrew / .sfs
sfskey: la creacin del directorio / home / andrew / .sfs / authkeys
/ Var / sfs / sockets / agent.sock: No existe el chero o directorio
sfskey: no sfscd funcionamiento, lo que limita las fuentes de entropa
Crear nueva clave: andrew@colossus.nnc # 1 (Rabin)
Etiqueta de clave: andrew@colossus.nnc # 1
Enter passphrase:
Una vez ms:
sfskey necesita bits secretos con los que inicializar el generador de nmeros aleatorios.
Por favor, escriba algn texto aleatorio o imposible de adivinar hasta que escuche un pitido:
DONE
UNIX password:
colossus.nnc: Nueva clave de SRP: andrew@colossus.nnc / 1024
escribi clave: / home / andrew / .sfs / authkeys / andrew @ colossus.nnc # 1
Alternativamente, si usted ya tiene un par de claves existente en otro servidor, puede escribir
sfskey usuario @
otherserver
en su lugar. Este comando recupera la clave de la mquina remota y la registra con
el servidor en el que se registran actualmente en.
Ahora que usted se ha registrado una clave con el servidor, puede iniciar sesin en el servidor de SFS de otro
mquina. Esto tambin se hace con el sfskey programa:
$ sfskey sesin andrew@colossus.nnc
Frase de contrasea para andrew@colossus.nnc / 1024:
SFS Entrar como andrew@colossus.nnc
Ahora, trata de acceder al servidor remoto:
$ cd / sfs / @ colossus.nnc, fd82m36uwxj6m3q8tawp56ztgsvu7g77
$ ls
casa
Como puede ver, SFS es una herramienta poderosa para compartir archivos a travs de una red, e incluso a travs de Internet.
No slo proporcionan seguridad, sino que tambin proporciona un mtodo nico y universal para hacer referencia a un
host remoto y sus sistemas de archivos exportados. Usted puede incluso poner su directorio de inicio en un servidor de SFS,
Pgina 195
simplemente mediante la vinculacin de la ruta de acceso universal del sistema de archivos exportado / home .
Pgina 196
Captulo 6. Seguridad de Red
Al llegar a depender cada vez ms en redes interconectadas masivamente, la estabilidad y la seguridad de
estas redes se hace ms vital que nunca. El mundo de los negocios ha adoptado la informacin
la tecnologa para ayudar a agilizar los procesos, aumentar la productividad y reducir los costos. Como tal, es una empresa
infraestructura es a menudo un activo fundamental, y muchas empresas dejaran de funcionar si el desastre (si
fsica o digital) fueron a perturbar signicativamente sus operaciones de red. Al mismo tiempo, la
adopcin generalizada de Internet como un medio de comunicacin global tambin ha trado la computadora
las redes de la empresa y el mundo acadmico y en nuestras vidas personales. Eso ms grande de las redes
ahora se utiliza no slo para la informacin y el entretenimiento, sino tambin como un medio para mantenerse en contacto con
amigos, familiares y seres queridos.
Aunque este libro en su conjunto tiene la intencin de abordar la seguridad de la red, la informacin que contiene
se extiende en muchas otras reas. Despus de todo, una red es simplemente un medio para conectar las mquinas y
servicios para que puedan comunicarse. Este captulo, sin embargo, se ocupa principalmente de la seguridad y
la integridad de la propia red. En este captulo, usted aprender cmo detectar y prevenir determinados tipos de
ataques de suplantacin de identidad que se pueden utilizar para comprometer la integridad del ncleo de una red Ethernet TCP / IP en su
nivel ms bajo. Tambin ver cmo protegerse contra los ataques de fuerza bruta contra SSH, cmo llevar el control
de las vulnerabilidades, y la forma de buscar virus en servidores Unix.
Aunque no siempre es una amenaza a la seguridad directa, de reconocimiento de la red es a menudo un precursor de un
ataque. En este captulo, usted aprender cmo engaar a aquellos que estn tratando de reunir informacin sobre el
hosts de la red, as como maneras de detectar intrusos que estn monitoreando la red para
jugosos de informacin.
Hack # 62. Detectar ARP Spoong
Averige si hay un "hombre en el medio" hacerse pasar por el servidor.
Una de las mayores amenazas a una red de ordenadores es un sistema de pcaro que pretende ser un host de conanza.
Una vez que alguien ha suplantado con xito otro husped, que puede hacer una serie de cosas infames.
Por ejemplo, se puede interceptar y registrar el trco destinado para el real, o se encuentran a la espera de los clientes a
conectar y comenzar a enviar al host informacin condencial sin escrpulos.
Spoong un host tiene graves consecuencias sobre todo en las redes IP, ya que abre muchas otras
vas de ataque. Una tcnica para la suplantacin de un host en una red IP es el Protocolo de resolucin de direcciones
(ARP) suplantacin de identidad. ARP Spoong se limita slo a los segmentos y obras locales mediante la explotacin de la manera IP
direcciones se traducen a direcciones de hardware de Ethernet.
Cuando un datagrama IP se enva desde un host a otro en el mismo segmento fsico, la direccin IP del
el host de destino debe ser traducido a una direccin MAC. Esta es la direccin de hardware del
Tarjeta de Ethernet que est conectado fsicamente a la red. Para lograr esto, la Resolucin de la Direccin
Se utiliza Protocolo.
Cuando un host necesita conocer la direccin Ethernet de otro host, enva una trama de broadcast que se ve
de esta manera:
01:20:14.833350 arp who-has 192.168.0.66 192.168.0.62 diga
Esto se llama una peticin ARP . Dado que este es enviado a la direccin de difusin, todos los dispositivos Ethernet en el
segmento local debe ver a la solicitud. La mquina que coincide con la solicitud a continuacin, responde enviando
una respuesta ARP como la siguiente:
01:20:14.833421 arp respuesta 192.168.0.66 es-a 0:0: d1: 1f: 3f: f1
Pgina 197
Dado que la solicitud de ARP ya contiene la direccin MAC del remitente en el marco de Ethernet, el
receptor puede enviar esta respuesta sin hacer otra peticin ARP.
La mayor debilidad de ARP es que se trata de un protocolo sin estado . Esto signica que no hace un seguimiento respuestas
a las solicitudes que se envan, por lo aceptarn respuestas sin haber enviado una solicitud.
Alguien que quera recibir el trco destinado a otro host puede enviar respuestas ARP falsicados
coincidir cualquier direccin IP elegido para la direccin MAC de ese host. Las mquinas que reciben estos falseadas
Respuestas ARP no pueden distinguirlos de respuestas ARP legtimos y comenzar el envo de paquetes
a la direccin MAC del atacante.
Otro efecto secundario de ARP ser aptridas es que las tablas ARP de un sistema suelen utilizar slo los resultados de
la ltima respuesta. Para que alguien que siga suplantar una direccin IP, es necesario inundar el
acoger con respuestas ARP que sobrescribir respuestas ARP legtimos desde el host original. Este
particular, tipo de ataque se conoce comnmente como el envenenamiento de cach ARP .
Varias herramientas-tales como Ettercap (
http://ettercap.sourceforge.net
) Y Dsniff
(
http://www.monkey.org/dugsong/dsniff/
) Emplean tcnicas como este tanto a olfatear en conmutacin
redes y realizar ataques "man-in-the-middle". Esta tcnica puede, por supuesto, puede utilizar entre
dos hosts en un segmento de conmutacin, incluyendo la puerta de enlace predeterminada local. Para interceptar el trco
bidireccionalmente entre hosts A y B, el host atacante C ser antrin el veneno de una cach ARP, por lo que es
creo que la direccin IP del host del B coincide con la direccin MAC del host del C. C entonces envenenar la cach del B, para que sea
pensar la direccin IP de A corresponde a la direccin MAC de C.
Afortunadamente, existen mtodos para detectar slo este tipo de comportamiento, ya sea que est usando un compartido o
conmutada segmento de Ethernet. Un programa que puede ayudar a lograr esto es Arpwatch
(
ftp://ftp.ee.lbl.gov/arpwatch.tar.gz
), Que funciona mediante el control de una interfaz en promiscuo
y el modo de grabacin de emparejamientos de direcciones MAC / IP durante un perodo de tiempo. Cuando ve anmala
comportamiento, tales como un cambio en uno de los pares de direcciones MAC / IP que se ha aprendido, se enviar una alerta
a syslog . Esto puede ser muy ecaz en una red compartida utilizando un concentrador, desde una sola mquina puede
monitorear todo el trco ARP. Sin embargo, debido a la naturaleza de las respuestas unicast ARP, este programa no se
funcionar tan bien en una red conmutada.
Para lograr el mismo nivel de cobertura de deteccin en un entorno conmutado, Arpwatch debe ser
instalado en tantas mquinas como sea posible. Despus de todo, no se puede saber con certeza del 100% lo que antriones
un atacante decidir apuntar. Si tienes la suerte de tener uno, muchos switches de gama alta permiten
le permite designar un puerto de monitor que puede ver el trco en todos los dems puertos. Si usted tiene un interruptor de este tipo,
se puede instalar un servidor en ese puerto de monitoreo de la red, y slo tiene que ejecutar Arpwatch en l.
Despus de descargar Arpwatch, puede compilar e instalarlo de la forma habitual:
# . / congure && make && make install
Cuando se ejecuta Arpwatch en una mquina con mltiples interfaces, es probable que desee para especicar el
interfaz de la lnea de comandos mediante el
-I
opcin:
# arpwatch-i interfaz
Como Arpwatch comienza a aprender las combinaciones de direcciones MAC / IP de la red, ver las entradas del registro
similar a esto:
01 de noviembre 00:39:08 zul arpwatch: nueva estacin 192.168.0.65 doce y cincuenta: ba: 85:85: ca
Cuando un par de direcciones MAC / IP de cambios, debera ver algo como esto:
Pgina 198
01 de noviembre 01:03:23 zul arpwatch: se cambi la direccin ethernet 192.168.0.65 0: e0: 81:3: d8: 8e
(Doce y cincuenta: ba: 85:85: ca)
01 de noviembre 01:03:23 zul arpwatch: ip op 192.168.0.65 doce y cincuenta: ba: 85:85: ca (0: e0: 81:3: d8: 8e)
01 de noviembre 01:03:25 zul arpwatch: ip op 192.168.0.65 0: e0: 81:3: d8: 8e (doce y cincuenta: ba: 85:85: ca)
En este caso, la entrada inicial es de la primera respuesta ARP fraudulenta que se recibi, y el
posterior dos son de una condicin de carrera entre las respuestas fraudulentas y autnticos.
Para hacerlo ms fcil para hacer frente a mltiples Arpwatch instala en un entorno conmutado, puede enviar la
mensajes de registro a un centro de syslogd [Hack # 79] , La agregacin de todos los resultados en un solo lugar. Sin embargo,
debido a que sus mquinas pueden ser manipulados por los mismos ataques que Arpwatch est buscando, lo hara
una buena idea usar las entradas ARP estticas de la tabla [Hack # 63] en tu syslog del servidor, as como todos los antriones
corriendo Arpwatch.
Pgina 199
Hack # 63. Crear una tabla de ARP esttica
Utilice entradas de la tabla ARP estticas para combatir la suplantacin de identidad y otras actividades nefastas.
Como se discuti en "Detectar ARP Spoong" [Hack # 62] , un montn de cosas malas puede suceder si alguien
envenena con xito la tabla ARP de una mquina de la red. El hack anterior discuti la forma de
controlar este comportamiento, pero cmo evitar los efectos de alguien que intenta envenenar a una ARP
mesa?
Una forma de prevenir los efectos negativos de este comportamiento es la creacin de entradas de la tabla ARP estticas para todos los
dispositivos de su segmento de red local. Cuando se hace esto, el kernel ignore todas las respuestas ARP
para la direccin IP especca utilizada en la entrada y el uso de la direccin MAC especicada en lugar.
Puede crear entradas estticas con la
arp
comando, que permite manipular directamente el
entradas de la tabla ARP del ncleo. Para agregar un solo elemento de la tabla ARP esttica, ejecute este comando:
# arp-s
ipaddr macaddr
Por ejemplo, si usted sabe que la direccin MAC que corresponde a 192.168.0.65 es
Doce y cincuenta: et: 85:85: CA
, Puede agregar una entrada esttica ARP para de esta manera:
# arp-s 192.168.0.65 doce y cincuenta: ba: 85:85: ca
Durante ms de un par de entradas, esto puede ser un proceso que consume tiempo. Y para que sea plenamente ecaz,
debe aadir una entrada para cada dispositivo de la red en cada host que le permite crear ARP esttica
entradas de la tabla.
Por suerte, la mayora de las versiones del
arp
comando puede tomar un archivo como entrada y lo utilizan para crear ARP esttica
entradas de la tabla. Bajo Linux, esto se hace con la
-F
modicador de la lnea de comandos. As que, todo lo que necesita hacer es
generar un archivo que contiene la MAC y direcciones pares IP, que luego se puede copiar a todos los antriones
en su red.
Para hacer esto ms fcil, puede utilizar esta secuencia de comandos rpida y sucia Perl:
#! / Usr / bin / perl
#
# Gen_ethers.pl <desde ip> <Para ip>
#
my ($ Marcha_1, $ start_2, $ start_3, $ start_4) = split (/ \ /, $ ARGV [0], 4.);
my ($ end_1, $ end_2, $ end_3, $ end_4) = split (/ \ /, $ ARGV [1], 4.);
my $ ARP_CMD = "/ sbin / arp-n";
for (my $ oct_1 = $ Marcha_1; $ oct_1 <= $ end_1 && $ oct_1 <= 255; $ oct_1 + +) {
for (my $ oct_2 = $ start_2; $ oct_2 <= $ end_2 && $ oct_2 <= 255; $ oct_2 + +) {
for (my $ oct_3 = $ start_3; $ oct_3 <= $ end_3 && $ oct_3 <= 255; $ oct_3 + +) {
for (my $ oct_4 = $ start_4; $ oct_4 <= $ end_4 && $ oct_4 <255; $ oct_4 + +) {
del sistema ("ping-c 1-W 1 $ oct_1 $ oct_2 $ oct_3 $ oct_4> / dev / null 2> & 1...");
... mi $ ether_addr = \ Q $ ARP_CMD $ oct_1 $ oct_2 $ oct_3 $ oct_4 | egrep 'HWaddress |
(Incompleto) "| awk '{print \ $ 3}' \ Q;
chomp ($ ether_addr);
if (length ($ ether_addr) == 17) {
print ("$ ether_addr \ t $ $ oct_1 oct_2 $ oct_3 $ oct_4 \ n...");
}
}
}
Pgina 200
}
}
Este script tomar un rango de direcciones IP e intentar hacer ping a cada uno una vez. Esto har que cada uno
Direccin IP activa para aparecer en la tabla ARP de la mquina. Despus de hacer ping una direccin IP, el guin te
a continuacin, busque la direccin IP en la tabla ARP e imprimir el par de direcciones MAC / IP en un formato
adecuado para poner en un archivo para cargar con la
arp
comando. (Este guin fue escrito con Linux en
importa, pero debera funcionar en otros sistemas operativos tipo Unix tambin.)
Por ejemplo, si desea generar un archivo de todas las direcciones IP que van de 192.168.1.1 a
192.168.1.255 y almacenar los resultados en / etc / ethers , ejecute el script como el siguiente:
# . / gen_ethers 192.168.1.1 192.168.1.255> / etc / ethers
Cuando se ejecuta
arp
con el
-F
interruptor, utilizar automticamente el archivo / etc / ethers archivo para crear la esttica
entradas. Sin embargo, puede especicar cualquier archivo que preera. Por ejemplo, para utilizar / root / arp_entries lugar,
ejecutar esto:
# arp-f / root / arp_entries
Este script no es perfecto, pero puede ahorrar mucho tiempo al crear entradas estticas de la tabla ARP para la
hosts de la red. Una vez que haya generado el archivo con las combinaciones de direcciones MAC / IP, puede
copiarlo a los otros hosts y aadir una
arp
comando para los scripts de inicio del sistema, para cargar automticamente
ellos en el momento del arranque.
El principal inconveniente de este mtodo es que todos los dispositivos de la red deben estar encendido
cuando el script se ejecuta; de lo contrario, no aparecern en la lista. Adems, si las mquinas de su
cambio de red con frecuencia, usted tendr que regenerar y distribuir el archivo a menudo, lo que puede ser ms
problemas de lo que vale. Sin embargo, este mtodo puede proteger los dispositivos que nunca cambian su IP o MAC
direcciones de ataques de envenenamiento de ARP.
Pgina 201
Hack # 64. Protege contra ataques SSH de fuerza bruta
Frustrar los ataques automatizados contra tus servidores expuestos a Internet.
Si se va a administrar de forma remota un servidor a travs de Internet, es posible que note un gran nmero de inicio de sesin fallido
los intentos de vez en cuando. Estos a menudo tienen el signo revelador de que viene de una nica direccin IP para
una cuenta que no es para los inicios de sesin interactivos, pero se encuentra comnmente en sistemas Unix.
Por ejemplo:
24 de junio 22:15:52 oceana sshd [11632]: Error de contrasea para www desde 218.22.3.51 puerto 39766
ssh2
24 de junio 22:16:24 oceana sshd [11678]: contrasea Error de noticias de 218.22.3.51 puerto 40394
ssh2
24 de junio 22:16:33 oceana sshd [11687]: Error de contrasea para los juegos de 218.22.3.51 puerto 40563
ssh2
24 de junio 22:17:22 oceana sshd [11747]: contrasea Error de cvs desde 218.22.3.51 puerto 41462
ssh2
A menudo, estos son los ataques de fuerza bruta proveniente de computadoras comprometidas en pases extranjeros, que
por lo general hace que ponerse en contacto con los responsables del bloque de red o dominio y pedirles que poner un
detener a los ataques de un ejercicio de futilidad. En teora, debera estar a salvo de ellos, siempre y cuando su
los usuarios utilizan contraseas adecuadamente fuertes y los ataques no persisten por el tiempo suciente para probar una signicativa
nmero de contraseas posibles. Sin embargo, este tipo de ataques pueden hacer que sea ms difcil de detectar otros ataques
que podran representar un riesgo ms signicativo para sus sistemas. Debido a esto, usted querr poner n a
ellos rpidamente.
Cambio del puerto
Algunos mtodos para hacer esto son ms ecaces que otros. Por ejemplo, la cosa ms fcil de hacer
es decir al demonio SSH para escuchar en un puerto no estndar. Por ejemplo, para tener sshd que escuche en el puerto
2200 en lugar de 22, usted podra poner la siguiente lnea en su sshd_cong archivo (en sustitucin de la existente
Puerto
entrada):
Puerto 2200
Esto podra detener a un atacante que est slo en busca de demonios SSH en su puerto estndar, pero slo
requiere un escaneo de puertos para descubrir que se est ejecutando el servicio en un puerto no estndar. Adems, este
medida le costar a sus usuarios la comodidad de no tener que especicar el puerto al que conectarse cuando
login via SSH. No obstante, debe disminuir de manera signicativa el nmero de intentos de conexin fallidos
que se ve en sus registros.
Desactivacin de la autenticacin de contrasea
Otro mtodo consiste en deshabilitar la autenticacin de contrasea. Esto signica que los usuarios slo pueden con xito
conectar cuando se han congurado la autenticacin de clave pblica mediante la generacin de un par de claves pblica / privada
y la copia de la clave pblica al / .ssh / authorized_keys en el servidor. Agregar la siguiente lnea a su
sshd_cong deshabilita la autenticacin a travs de contraseas:
PasswordAuthentication no
Sin embargo, para ello ser necesario que los usuarios llevan sus claves privadas con ellos en los medios de comunicacin porttiles si
desear ser capaz de iniciar la sesin cuando se viaja.
Firewalling el Demonio SSH
Pgina 202
El siguiente mtodo es el rewall de su demonio SSH. Aqu hay tres enfoques que puede tomar.
Limitar las conexiones a su sshd
El enfoque ms restrictivo es permitir conexiones a su sshd slo de una lista especca de IP
direcciones (es decir, una lista blanca ).
Por ejemplo, podra usar algo similar a las siguientes reglas de PF:
mesa <ssh_allow> {10.0.0.47, 10.0.0.98, 10.0.0.27}
bloquear de cualquier a cualquier puerto 22
pasar de <ssh_allow> a cualquier puerto 22
Sin embargo, esto es obviamente una utilidad limitada si los usuarios deben ser capaces de conectarse a sus cuentas
cuando se viaja.
Anlisis de los registros y bloquear una IP
El siguiente enfoque es analizar los registros de intentos de conexin fallidos y automticamente bloquear una IP determinada
abordar una vez que se ha alcanzado un umbral. Si usted va esta ruta, asegrese de que la lista blanca las direcciones IP
que se conecta desde regularmente, para evitar ser inadvertidamente bloqueada si escribe incorrectamente la contrasea
demasiadas veces.
Paquetes SYN limitante de la velocidad
El ltimo mtodo consiste en limitar la velocidad de
SYN
paquetes que van al puerto en el que el demonio SSH est escuchando.
El efecto de esto debera ser apreciados por los usuarios legtimos, pero va a demorar un atacante que est haciendo
muchos repetidas conexiones, ya que permite slo un cierto nmero de conexiones sin retardo. Para
ejemplo, PF permite especicar una tasa por cualquier norma con estado. ste limita la velocidad de conexin al puerto 22
a tres por minuto:
pasar inet proto tcp de cualquier a cualquier puerto 22 \
mantener el estado (-conn-rate max-src 3/60)
Lo ms probable es que el atacante a renunciar, debido a la cantidad excesiva de tiempo que se
sera necesario para xito de fuerza bruta una cuenta.
Pgina 203
Hack # 65. Fool remoto Software de Deteccin del Sistema Operativo
Evadir los intentos de deteccin remota del sistema operativo disfrazando su pila TCP / IP.
Un mtodo para frustrar los intentos de deteccin del sistema operativo es la de modicar el comportamiento de su sistema de
Pila TCP / IP y hacer que emula el comportamiento de otro sistema operativo. Esto puede sonar
difcil, pero se puede hacer con bastante facilidad en Linux parcheando el kernel con cdigo disponible en la
Proyecto Personalidad IP (
http://ippersonality.sourceforge.net
). Este cdigo se extiende del kernel incorporado
en el sistema de cortafuegos, Netlter [Hack # 44] , as como su componente de espacio de usuario, el
iptables
comando.
TIP
Esto trabaja actualmente slo kernels 2.4.x. Sin embargo, esta versin del ncleo se encuentra todava en uso generalizado.
Para congurar la IP Personality, descargar el paquete que corresponde a su kernel. Si no puede encontrar el
correcta, visite la pgina de parches de SourceForge para el proyecto (
http://sourceforge.net/tracker/?
group_id = 7557 y atid = 307557
), Que por lo general tiene los parches ms recientes del kernel disponibles.
Para parchear el kernel, expandir la distribucin fuente Personalidad IP y vaya al directorio que contiene
las fuentes del ncleo. A continuacin, ejecute el
parche
comando:
# cd / usr / src / linux
# patch-p1 <\ .. / ippersonality-20020819-2.4.19/patches/ippersonality-20020819-linux-
2.4.19.diff
Si usted est usando un parche descargado de la pgina de parches, simplemente sustituir su
parche
comando. A
comprobar que la revisin se ha aplicado correctamente, ejecute este comando:
# encontrar. /-name \ *. rej
Si el parche se aplica correctamente, este comando no debe encontrar ningn archivo.
Ahora que el kernel est parcheado, tendr que congurar el ncleo para soporte de IP Personality. Como
mencionado en "Lock Down Your Kernel con grsecurity" [Hack # 13] , En ejecucin
make xcong
, M
ake
menucong
, O incluso
make cong
mientras usted est en el directorio del cdigo fuente del kernel le permitir
congurar el kernel. Independientemente del mtodo que elija, las opciones de men permanecern igual.
En primer lugar, asegrese de que "Preguntar por el desarrollo y / o cdigo incompleto / drivers" est activada en "Cdigo
opciones de nivel de madurez. "en" Opciones de Red, "encontrar y habilitar la opcin para Netlter
Conguracin.
La gura 6-1 muestra la lista mostrada por
make xcong
. Encuentre la opcin etiquetada Soporte IP Personality,
y, o bien seleccione
y
compilar estticamente en el kernel o seleccionar
m
para crear una carga dinmica
mdulo.
Despus de haber congurado el apoyo a IP Personality, guardar la conguracin. Ahora, compile el
ncleo y los mdulos e instalarlos ejecutando los siguientes comandos:
# make dep && make clean
# make bzImage && make modules
# arch/i386/boot/bzImage cp / boot / vmlinuz
# make modules_install
Reinicie con el nuevo kernel. Adems de parchear el kernel, tambin tendr que parchear el usuario-
Pgina 204
zona desprovista de Netlter, el
iptables
comando. Vaya al sitio web de Netlter
(
http://www.netlter.org
) Y descargue la versin especicada por el parche que viene con el IP
Paquete de personalidad. Por ejemplo, la
iptables
parche incluido en ippersonality-20020819-
2.4.19.tar.gz es para Netlter Versin 1.2.2.
Despus de descargar la versin correcta y desembalaje, usted tendr que arreglar con el parche
incluido en el paquete IP Personality. Entonces, construir e instalar de la forma habitual:
# tar xfj iptables-1.2.2.tar.bz2
# cd iptables-1.2.2
# patch-p1 <\ ../ippersonality-20020819-2.4.19/patches/ippersonality-20020427-iptables-
\ 1.2.2.diff
parches pers le / Makele
pers archivos de parches / example.conf
parches pers le / libipt_PERS.c
pers archivos de parches / pers.h
pers archivos de parches / pers.l
parches pers le / pers.y
pers archivos de parches / pers_asm.c
pers archivos de parches / perscc.c
# hacen KERNEL_DIR = / usr / src / linux && make install
Esto instalar el modicado
iptables
comando, sus libreras de soporte, y la pgina de manual bajo el
/ Usr / local jerarqua. Si usted desea cambiar los directorios de instalacin por defecto, se puede editar el
Makele y cambiar los valores de la
BINDIR
,
LIBDIR
,
MANDIR
, Y
INCDIR
macros. Asegrese de ajustar
KERNEL_DIR
al directorio que contiene las fuentes del kernel que construiste antes.
Figura 6-1. Habilitacin del soporte de IP Personality
Pgina 205
Si est utilizando Red Hat Linux, puede reemplazar el
iptables
comandos que se instala mediante el cambio
las macros a estos valores:
LIBDIR: = / lib
BINDIR: = / sbin
MANDIR: = / usr / share / man
INCDIR: = / usr / include
Adems de correr
make install
, Es posible que desee crear un directorio para el sistema operativo
archivos de conguracin de la personalidad. Estos archivos se encuentran en el / samples directorio dentro de la IP
Distribucin de la personalidad. Por ejemplo, podra crear un directorio llamado / etc / personalidades y copiar
all.
Antes de congurar la personalidad IP, intente ejecutar Nmap (
http://www.insecure.org/nmap/
) En contra de la
mquina para ver qu sistema operativo detecta:
# nmap-O coloso
A partir nmap 3.48 (http://www.insecure.org/nmap/) en 2003-12-12 18:36 MST
Puertos interesantes sobre coloso (192.168.0.64):
(Los puertos 1651 escaneados pero no se muestran a continuacin se encuentran en estado: cerrado)
PUERTO SERVICIO DEL ESTADO
22/tcp ssh abierto
25/tcp smtp abierto
111/tcp rpcbind abierta
139/TCP abierto netbios-ssn
505/tcp abierto buzn-lm
631/tcp ipp abierta
Tipo de dispositivo: propsito general
Reproduccin: Linux 2.4.X | 2.5.X
Detalles OS: Linux Kernel 2.4.0 - 02/05/20
Uptime 3,095 das (desde el 09 de diciembre mar 2003 16:19:55)
Nmap carrera terminada - 1 IP (1 husped up) explora en 7,375 segundos
Si su mquina tiene una direccin IP de 192.168.0.64 y desea que ngir que se est ejecutando Mac OS
9, puede ejecutar
iptables
comandos como los siguientes:
# iptables-t PREROUTING-d 192.168.0.64-j PERS A mangle-\
- Tweak dst - locales - conf / etc/personalities/macos9.conf
# iptables-t mangle-A OUTPUT-s 192.168.0.64-j PERS \
- Tweak src - locales - conf / etc/personalities/macos9.conf
Ahora, ejecutar Nmap nuevo:
# nmap-O coloso
A partir nmap 3.48 (http://www.insecure.org/nmap/) en 2003-12-12 18:47 MST
Puertos interesantes sobre coloso (192.168.0.64):
(Los puertos 1651 escaneados pero no se muestran a continuacin se encuentran en estado: cerrado)
PUERTO SERVICIO DEL ESTADO
22/tcp ssh abierto
25/tcp smtp abierto
111/tcp rpcbind abierta
139/TCP abierto netbios-ssn
505/tcp abierto buzn-lm
631/tcp ipp abierta
Tipo de dispositivo: propsito general
Duracin: Apple Mac OS 9.X
Detalles del sistema operativo: Apple Mac OS 9-9,1
Uptime 3,095 das (desde el 09 de diciembre mar 2003 16:19:55)
Nmap carrera terminada - 1 IP (1 husped up) explora en 5,274 segundos
Pgina 206
Usted puede, por supuesto, emular otros sistemas operativos que no se ofrecen con la Personalidad IP
paquete. Todo lo que necesitas es una copia del archivo de huellas dactilares del sistema operativo de Nmap, nmap-os-huellas dactilares .
A continuacin, puede construir su propio archivo de conguracin IP Personality para cualquier sistema operativo Nmap
conoce.
Pgina 207
Hack # 66. Mantenga un inventario de la red
Utilice Nmap para realizar un seguimiento de los dispositivos y servicios de la red.
Como introducida en "Fool remota del sistema operativo de software de deteccin" [Hack # 65] Nmap
(
http://www.insecure.org/nmap/
) Es una herramienta gratuita que puede ser utilizada para llevar a cabo diversos tipos de anlisis bajo
las redes. Normalmente, cuando la gente piensa de Nmap, asumen se utiliza para llevar a cabo algn tipo de
reconocimiento de redes nefasto en preparacin para un ataque. Pero al igual que con todas las herramientas de gran alcance, Nmap
puede ser utilizado para mucho ms que irrumpir en redes.
Por ejemplo, se le permite realizar sencilla conexin TCP exploraciones sin necesidad de privilegios de root:
$ nmap Rigel
A partir nmap 3.48 (http://www.insecure.org/nmap/) en 2003-12-15 17:42 MST
Puertos interesantes sobre Rigel (192.168.0.61):
(Los puertos 1595 escaneados pero no se muestran a continuacin se encuentran en estado: ltrada)
PUERTO SERVICIO DEL ESTADO
7/tcp abierto eco
9/tcp abierto descartar
13/tcp abierto durante el da
19/tcp abierto chargen
21/tcp abierto ftp
22/tcp abierto ssh
23/tcp abierto telnet
25/tcp abierto smtp
37/tcp abierto tiempo
79/tcp abierto dedo
111/tcp abierto rpcbind
512/tcp abierto ejecutivo
513/tcp abierto login
514/tcp abierto cscara
587/tcp abierto sumisin
4045/tcp abierto lockd
7100/tcp abierto font-servicio
32771/tcp abierta a veces-RPC5
32772/tcp abierta a veces-rpc7
32773/tcp abierta a veces-rpc9
32774/tcp abierta a veces-Rpc11
32775/tcp abierta a veces-rpc13
32776/tcp abierta a veces-rpc15
32777/tcp abierta a veces-rpc17
Nmap carrera terminada - 1 IP (1 husped up) escaneada en 75,992 segundos
Esto es tremendamente til para comprobar el estado de sus propias mquinas. Usted podra probablemente
supongo que este anlisis se realiz en una mquina Solaris, y uno que necesita tener algunos servicios
deshabilitado en eso.
Nmap tambin puede escanear rangos de direcciones IP, indicada con la especicacin de la gama o el uso de CIDR
notacin, de la siguiente manera:
$ nmap 192.168.0.1-254
$ nmap 192.168.0.0/24
Nmap puede proporcionar mucha ms informacin si lo ejecuta como root. Cuando se ejecuta como root, puede utilizar especial
paquetes para determinar el sistema operativo de la mquina remota mediante el uso de la
-O
bandera. Adems,
que puede hacer el escaneo TCP medio abiertas utilizando el
-SS
bandera. Al hacer un anlisis a medio abrir, Nmap enva una
paquete al host remoto y espera recibir el de ella; si recibe una , Se sabe que
SYN ACK ACK
Pgina 208
el puerto est abierto. Esto es diferente de un protocolo de enlace TCP de tres vas normales, donde el cliente enva una
SYN
paquete y luego enva una
ACK
de vuelta al servidor una vez que ha recibido el servidor inicial
ACK
.
Los atacantes suelen utilizar esta opcin para evitar que sus exploraciones registran en la mquina remota.
Prubelo usted mismo:
# nmap-sS-O Rigel
A partir nmap V. 3.00 (www.insecure.org/nmap/)
Puertos interesantes sobre rigel.nnc (192.168.0.61):
(Los puertos 1578 escaneados pero no se muestran a continuacin se encuentran en estado: ltrada)
Puerto Estado Servicio
7/tcp abierto eco
9/tcp abierto descartar
13/tcp abierto durante el da
19/tcp abierto chargen
21/tcp abierto ftp
22/tcp abierto ssh
23/tcp abierto telnet
25/tcp abierto smtp
37/tcp abierto tiempo
79/tcp abierto dedo
111/tcp abierto sunrpc
512/tcp abierto ejecutivo
513/tcp abierto login
514/tcp abierto cscara
587/tcp abierto sumisin
7100/tcp abierto font-servicio
32771/tcp abierta a veces-RPC5
32772/tcp abierta a veces-rpc7
32773/tcp abierta a veces-rpc9
32774/tcp abierta a veces-Rpc11
32775/tcp abierta a veces-rpc13
32776/tcp abierta a veces-rpc15
32777/tcp abierta a veces-rpc17
Conjetura del sistema operativo remoto: Solaris 9 Beta a travs de lanzamiento en SPARC
Uptime 44,051 das (desde sb 01 de noviembre 2003 16:41:50)
Nmap carrera terminada - 1 IP (1 husped up) escaneada en 166 segundos
Con deteccin de sistema operativo habilitado, Nmap ha conrmado que el sistema operativo es Solaris, pero ahora
tambin sabemos que es probable que sea la versin 9 se ejecuta en un procesador SPARC.
Una de las caractersticas de gran alcance que puede utilizar para ayudar a mantener un registro de su red es la salida XML de Nmap
capacidades, que se activan con el
-Ox
modicador de la lnea de comandos:
# nmap-sS-O-oX scandata.xml Rigel
Esto es especialmente til cuando se escanea un rango de direcciones IP o toda su red, ya que
puede poner toda la informacin obtenida de la exploracin en un nico archivo XML que puede ser analizada y
insertada en una base de datos. Esto es lo que una entrada XML para un puerto abierto se ve as:
<nmero protocol="tcp" portid="22">
<state state="open" />
<service name="ssh" method="table" conf="3" />
</ Port>
Esto es especialmente potente cuando se combina con la
Nmap :: Parser
Mdulo de Perl
(
http://npx.sourceforge.net
), Lo que le permite leer la salida XML de Nmap. Cuando se combina con
DBI de Perl para el acceso de base de datos, usted tiene los ingredientes de una herramienta que puede generar fcilmente una base de datos de
los dispositivos de red. Analizar un archivo XML Nmap es tan fcil como esto:
Pgina 209
utilizar Nmap :: Parser;
my $ np = new Nmap :: Parser;
my $ le_xml = "an_nmap_xml_le.xml"
$ Np-> ParseFile ($ le_xml);
Entonces, todo lo que necesita hacer es llamar a los mtodos de acceso del objeto parser para obtener los datos.
Nmap es una herramienta poderosa. Mediante el uso de sus capacidades de salida de XML, un poco de secuencias de comandos, y una base de datos,
puede crear una herramienta an ms poderosa que puede monitorear su red para los servicios no autorizados
y mquinas.
Pgina 210
Hack # 67. Anlisis de la red para vulnerabilidades
Utilice Nessus para escanear rpidamente y fcilmente su red para los servicios que son vulnerables a los ataques.
Como administrador de red, lo que necesita saber no slo qu hosts estn en la red y lo que
los servicios que se estn ejecutando, pero tambin si esos servicios son vulnerables a los exploits. Mientras que un escner de puertos
le puede mostrar lo que las mquinas y los puertos son accesibles en la red, un escner de seguridad tales como
Nessus (
http://www.nessus.org
) Le puede decir si esas mquinas son vulnerables a ataques conocidos.
A diferencia de un escner de puertos regular, un escner de seguridad de primera localiza los servicios de escucha y luego se conecta a
los servicios y los intentos de ejecutar exploits contra ellos. A continuacin, registra si las hazaas eran
exitosa y contina hasta el escaneado todos los servicios disponibles se han probado. El benecio clave es
que usted sabr de un vistazo cmo sus sistemas realizan contra exploits conocidos, y por lo tanto si se
realmente son vulnerables a un ataque.
Con el lanzamiento de la versin 3, Nessus se ha convertido en un proyecto de cdigo cerrado. Debido a esto, la corriente
liberan y las versiones futuras slo estn disponibles como paquetes, en lugar de como cdigo fuente. Sin embargo, el antiguo
Versin 2.8.8 est disponible en forma de cdigo fuente. Si desea utilizar Nessus 2.x, siga leyendo. De lo contrario, omita
a la "3.x Nessus Seccin ".
2.x Nessus
Si desea utilizar la versin 2.8.8, descargue el nessus-installer-2.2.8.sh script desde la Nessus
pgina de descarga ( http://www.nessus.org/download/index.php ) Y ejecutarlo. Se le preguntar dnde
desea instalar Nessus (el valor predeterminado es / usr / local ) y le pedir la contrasea de root. La secuencia de comandos
luego crear un shell SUID temporal que slo se puede acceder a travs de su cuenta de usuario. Esto podra
suena alarmante al principio, pero te dice el nombre de archivo para el depsito, para que pueda comprobar que s es
accesible slo para usted y asegurarse de que se elimina cuando se complete la instalacin.
Despus de nalizada la instalacin, tendr que crear un usuario de Nessus (no es el mismo que un Unix
cuenta). Desde Nessus usa un modelo cliente / servidor, tambin tendr que generar un certicado para que todos
comunicaciones se pueden cifrar.
Para crear un nuevo usuario de Nessus, ejecute
nessus-adduser
. Se le pedir un nombre y una contrasea. A
crear un certicado, puede ejecutar
nessus-mkcert
O, si usted tiene su propia autoridad de certicacin (CA)
[Hack # 69] , Usted puede utilizar eso para crear un certicado para Nessus a utilizar. Si usted hace uso de su propia CA,
tendrs que editar nessus.conf que le indiquen dnde buscar el certicado de la CA y el certicado y la clave
que ha generado.
El archivo de conguracin por lo general vive en / etc o / usr / local / etc . A decir Nessus la ubicacin de su
certicados, aada una lnea similar a la siguiente:
cert_le = / etc / ssl / nessus.key
key_le = / etc / ssl / nessus.crt
ca_le = / etc / ssl / ca.crt
Si ha generado un par certicado / clave y utilizado una contrasea, puede especicar esa contrasea aqu
as:
pem_password = micontrasea
Despus de que hayas hecho esto, se puede iniciar el demonio Nessus. Este es el nal del negocio de Nessus y es
lo que realmente lleva a cabo las exploraciones contra los antriones en la red.
Para iniciarlo, ejecute este comando:
Pgina 211
# / usr / local / sbin / nessusd-D
Ahora, usted puede iniciar el cliente de Nessus y conectar con el servidor. Varios clientes de Nessus estn disponibles,
incluyendo una interfaz de lnea de comandos, una aplicacin X11, y un cliente de Windows. Las cifras de esta
hackear mostrar la interfaz de X11.
Inicie el cliente simplemente escribiendo
nessus
. Usted debe ver una ventana como la que se muestra en la Figura 6-2 .
Figura 6-2. Conguracin del cliente 2.x Nessus
Llene la informacin para el usuario que ha creado y haga clic en el botn Iniciar sesin. Se le presentar
con un cuadro de dilogo que le permite vericar la informacin contenida en el certicado del servidor.
Para seleccionar qu tipos de vulnerabilidades que deben analizarse para, haga clic en la pestaa Plugins para mostrar la pantalla
se muestra en la Figura 6-3 .
Pgina 212
Figura 6-3. Seleccin de plug-in 2.x Nessus
En el panel superior, se puede activar o desactivar tipos de anlisis, y en el panel inferior, puede desactivar
comprobaciones de vulnerabilidad individuales que pertenecen a la categora seleccionada en el panel superior.
ADVERTENCIA
Scans enumerados en el panel inferior que tienen un icono de exclamacin al lado de ellos sern potencialmente bloquear el servidor contra el que estn
correr. Si desea habilitar todos los anlisis a excepcin de esto, usted puede hacer clic en el botn "Activar todos menos plugins peligrosos". Si usted es
corriendo Nessus en una mquina no crtica, es probable que pueda salir de estas exploraciones, pero ests advertido!
Usted probablemente querr desactivar varios tipos de anlisis, a menos que usted necesita escanear una mquina o grupo de
mquinas que ejecutan una amplia variedad de servicios; de lo contrario, se le pierde el tiempo con exploracin Nessus para
servicios que no se estn ejecutando. Por ejemplo, si desea escanear un sistema Solaris, es posible desactivar
CGI abuses, CISCO, Windows, uso compartido de archivos Peer-to-Peer, Puertas traseras, Firewalls, Windows Usuario
Gestin y Netware plug-ins.
Para activar Nessus para probar ms a fondo sus servicios, puede proporcionarle informacin de inicio de sesin para
Pgina 213
diversos servicios. De esta manera, en realidad se puede acceder a los servicios que se est probando y tener acceso slo
al igual que cualquier usuario normal. Se puede decir Nessus sobre las cuentas para su uso con la pestaa Preferencias, que se muestra en la Figura
6-4 .
Figura 6-4. Pestaa Prefs Nessus 2.x 's
Adems, usted puede decir Nessus para intentar inicios de sesin de fuerza bruta a los servicios que est analizado. Esto puede ser
una buena prueba no slo de los propios servicios, sino tambin de su sistema de deteccin de intrusiones (IDS)
[Hack # 106] y log-monitoreo de la infraestructura.
La pestaa "Escanear Opciones" le permite congurar cmo Nessus lleva a cabo sus anlisis de puertos. Puede dejar la mayor parte de
estos parmetros en sus valores por defecto, a menos que tambin est comprobando para ver si Nessus puede evadir
la deteccin por los antriones que est digitalizando. Por ejemplo, Nessus est congurado por defecto para realizar
plena conexin TCP exploraciones y hacer ping al host remoto que est escaneando. Puede cambiar este comportamiento
yendo a la pestaa "Opciones Scan", que permite "escaneos SYN" en lugar de "TCP conectar", y desactivar el
ping. Para especicar los hosts que desee escanear, utilice la cha "Seleccin de destino".
Despus de haber hecho su seleccin, intente escanear un host haciendo clic en "Start the scan" en la parte inferior de
Pgina 214
la ventana. Ahora debera ver una ventana similar a la Figura 6-5 . En este caso, Nessus est realizando una
escanear contra una mquina de Solaris.
Figura 6-5. Realizacin de un anlisis de vulnerabilidades en 2.x Nessus
La Figura 6-6 muestra los resultados de la exploracin.
Figura 6-6. Los resultados del anlisis de vulnerabilidad
Si ha escaneado varias subredes, puede seleccionar aquellos en el panel de subred. Cualquier ejrcitos que estn en el
Pgina 215
subred seleccionada aparecer en el panel Host. Del mismo modo, cuando se selecciona un host, la lista de abierto
puertos en que van a aparecer en el panel de puerto. Puede seleccionar estos para ver las advertencias, notas y posible
agujeros de seguridad que se han encontrado para el puerto seleccionado.
Usted puede ver la informacin que Nessus ofrece para estas haciendo clic en ellas en el panel de la Severidad.
No se deje demasiado alarmado por la mayora de los billetes y las advertencias de seguridad de Nessus; que estn diseados principalmente para permitir que
usted sabe cules son los servicios que est ejecutando y que le diga si esos servicios presentan un potencial
vulnerabilidades. Los agujeros de seguridad son mucho ms graves y deben ser investigados.
Para guardar el informe que est viendo, haga clic en el botn "Guardar informe". Nessus le permitir guardar
informes en una variedad de formatos. Si desea ver el informe en Nessus nuevo en una fecha posterior, utilice
Propio formato de informe de Nessus (NBE). Para ver los informes en este formato, haga clic en el botn "informe Load" en
la ventana del cliente Nessus principal. Adems, puede guardar los informes en XML, HTML, ASCII, e incluso
Formato LaTeX.
3.x Nessus
Como se mencion al principio de este hack, Nessus 3.0 y posteriores estn disponibles slo en forma de paquete
para Linux, FreeBSD, Solaris y Windows. Descargue el paquete correspondiente a su sistema y
instalarlo. Con el n de hacer esto, usted tendr que proporcionar alguna informacin personal. Tambin recibir un
cdigo de registro que se puede utilizar para descargar los ltimos complementos de Nessus.
Nessus instalar certicados como parte del proceso de instalacin, por lo que ya no es necesario para ejecutar
nessus-
mkcert
. Tambin puede optar por instalar sus propios certicados con el mismo mtodo utilizado para Nessus
2.x.
Una vez instalado el paquete, usted tendr que crear un usuario en el sistema Nessus (a menos que est
usando Windows) mediante la ejecucin de
nessus-adduser
, Que le pedir un nombre y una contrasea. Siguiente,
descargar los plug-ins. Carrera
nessus-fetch
, Especicando el cdigo de registro:
# nessus-fetch - registro
XXXX-XXXX-XXXX-XXXX-XXXX
Su cdigo de activacin se ha registrado correctamente - gracias.
Ahora ir a buscar el ms nuevo sistema del plugin desde plugins.nessus.org ...
Su instalacin de Nessus es ahora hasta a la fecha.
Si auto_update est ajustado a "s" en nessusd.conf, Nessus
actualizar los plugins por s mismo.
Como se menciona en la salida, poniendo
auto_update = s
en su nessusd.conf archivo instruye Nessus
actualizar automticamente sus plug-ins, pero ya debe estar congurado para actualizar sus plug-ins cada 24 horas.
Otra diferencia clave entre 2.x Nessus 3.x es que este ltimo no viene con un cliente GUI
(La excepcin a esto es el paquete de Windows). Para ello, tendrs que volver a la pgina de Nessus,
descargar el paquete NessusClient, e instalarlo.
Despus de haber instalado el paquete NessusClient, puede iniciarla simplemente escribiendo
NessusClient
.
A continuacin, abra el men Archivo y haga clic en Conectar. Usted debe ser presentado con un dilogo como el que se muestra
en la Figura 6-7 , Donde se puede elegir qu servidor se conecte y especicar su nombre de usuario y
contrasea.
Pgina 216
Figura 6-7. Inicio de una sesin con NessusClient
Una vez que haya conectado al servidor Nessus, puede congurar los ajustes globales que servirn de
base de todos los anlisis que lleve a cabo. Si desea limitar los puertos que son escaneados en cada host,
si se debe hacer TCP
connect ()
exploracin o
SYN
escaneado o cualquier otro motor de anlisis en general
parmetros, haga clic en el icono General en la cha Opciones, como se muestra en la Figura 6-8 .
Pgina 217
Figura 6-8. Conguracin de los parmetros generales
Activar o desactivar los plug-ins, haga clic en el icono de Plugins. Como se muestra en la Figura 6-9 , Nessus 3 organiza
los plug-ins en una vista de rbol clasicado, a diferencia de las versiones anteriores.
Pgina 218
Figura 6-9. Seleccin de los plug-ins
Puede desactivar categoras enteras de los plug-ins desmarcando ellos. Del mismo modo, se puede desactivar una
plug-in individuo mediante el uso de la casilla junto a l.
ADVERTENCIA
Al igual que en las versiones anteriores de Nessus, los plug-ins con un icono de exclamacin al lado de ellos son propensos a interrumpir el servicio en el dispositivo
que est escaneando.
Despus de que haya terminado de congurar los ajustes globales de Nessus, la forma ms fcil de comenzar a escanear su red
es utilizar el Asistente de digitalizacin, que es accesible en el men Archivo. Aqu es donde el nuevo Nessus
cliente se aleja mucho de la versin 2.x. NessusClient utiliza el concepto de tareas y alcances. Una tarea
es algo as como "Busque en la subred local" o "Escanear un solo host." Cuando se est realizando una tarea,
tiene un alcance que dene lo que los sistemas son analizados con el n de completar la tarea. El Asistente de Scan
le pregunta si desea crear una tarea y luego denir un mbito. Una vez que se ha hecho, se puede ejecutar el
escanear.
Despus de la exploracin haya terminado, ver la tarea y el alcance que el Asistente de Scan crea en la izquierda
panel de NessusClient. Aqu, usted tambin puede ver los informes de las exploraciones actuales y pasados, como se muestra en
Figura 6-10 , exactamente de la misma manera que en las versiones anteriores de Nessus.
Pgina 219
Figura 6-10. Viendo el informe s
Si desea realizar de nuevo la bsqueda, basta con abrir el men mbito y haga clic en Ejecutar. Tambin puede
modicar los ajustes de escaneo para un alcance individual seleccionndolo y luego cambiar la conguracin, al igual que
si se tratara de la conguracin global.
Mientras Nmap [Hack # 66] es probablemente el campen de reconocimiento de red, Nessus va ms
adems de demostrar si sus propios servicios son vulnerables a ataques conocidos. Por supuesto, nueva
hazaas supercie todo el tiempo, as que es importante mantener los plug-ins de Nessus hasta a la fecha. El uso de Nessus,
usted puede proteger sus propios servicios, tratando de irrumpir en ellas antes de que los chicos malos hacen.
Pgina 220
Hack # 68. Mantenga relojes de los servidores sincronizados
Hacer anlisis de registro ms fcil, manteniendo el tiempo en sus sistemas sincronizados.
La correlacin de los eventos que han ocurrido en varios servidores puede ser una tarea si hay discrepancias
entre los relojes de las mquinas. Mantener los relojes en sus sistemas sincronizados puede ahorrar valioso
momento en que el anlisis del router, rewall, y los registros de acogida despus de un compromiso, o al depurar todos los das
problemas de red. Por suerte, hacer esto no es difcil, con un poco de ayuda de Network Time Protocol
(NTP).
NTP es un protocolo peer-to-peer diseado para proporcionar una precisin por debajo y precisin entre el antrin
relojes. Para ponerlo en marcha, todo lo que necesita es la distribucin NTP (
http://www.ntp.org/downloads.html
),
que contiene un demonio para llevar a cabo la sincronizacin del reloj, adems de otras herramientas de apoyo. Aunque
NTP no est instalado en su sistema, por lo general viene con las diferentes distribuciones de Linux,
FreeBSD y OpenBSD como un paquete o de puerto opcional, por lo que hurgar medio de instalacin oa la
rbol si no est ya instalado puertos. Si no est disponible con el sistema operativo de eleccin, todava puede
descargar y compilarlo usted mismo.
Conguracin ntpd como cliente es un proceso bastante simple, pero primero tendr que averiguar si
tener un servidor de hora local, ya sea en la red o en el ISP. Si no lo hace, tendr que localizar a un
Servidor NTP que le permitir consultar de ella. Usted querr encontrar servidores que estn tan cerca geogrcamente
a usted como sea posible. No se preocupe, sin embargo; una lista de todos los servidores de tiempo de acceso pblico se encuentra disponible en
http://www.eecis.udel.edu/mills/ntp/servers.html
.
Un nuevo trmino que se encontrar en la bsqueda de un servidor es estrato (por ejemplo, el estrato 1 o estrato 2).
Esto se reere a la jerarqua del servidor dentro de la infraestructura de NTP pblico. Un servidor de estrato 1 se
por lo general tienen una fuente de tiempo de sincronizacin directa, tal como una seal GPS o reloj atmico que proporciona cambios a
el demonio que se ejecuta en ese equipo. Estrato 2 servidores obtienen su tiempo de sincronizacin del estrato 1 servidores.
El uso de estrato 2 servidores ayuda a reducir la carga en los servidores de estrato 1, y son lo sucientemente precisos para
los propsitos de este hack.
Con esto en mente, echemos un vistazo a algunos servidores NTP que podemos utilizar (utilizando ms de una es generalmente un
buena idea, en caso de una falla). Yo vivo en Colorado, as que despus de seguir el enlace a la lista de servidores de estrato 2
(
http://www.eecis.udel.edu/mills/ntp/clock2a.html
), Me encontr con dos entradas:
# EE.UU. CO ntp1.linuxmedialabs.com
Ubicacin: Linux Medios Labs LLC, Colorado Springs, CO
rea de servicio: EE.UU.
Sincronizacin: NTP secundaria (estrato 2), i686/Linux
Poltica de acceso: acceso abierto
Contacto: ntp@linuxmedialabs.com
Nota: ntp1 es un alias y la direccin IP puede cambiar, por favor, utilice DNS
# EE.UU. CO ntp1.tummy.com
Ubicacin: tummy.com, ltd, Fort Collins, CO.
rea de servicio: EE.UU.
Sincronizacin: NTP secundaria (estrato 2), i686/Linux
Poltica de acceso: acceso abierto.
Contacto: ntp@tummy.com
Nota: ntp1 es un alias y la direccin IP puede cambiar, por favor, utilice DNS.
Debido a que los dos estn listados como el acceso abierto, slo puedo aadir a mi / etc / ntp.conf :
servidor ntp1.linuxmedialabs.com
servidor ntp1.tummy.com
Como alternativa, puede simplicar la conguracin mediante el uso de
pool.ntp.org
, Que es un round-robin
Pgina 221
Esquema de DNS para resolver a varios servidores de tiempo. Usted encontrar estos servidores en las listas publicadas de
Servidores NTP, sino que tambin han optado por convertirse en una parte de la piscina. Por ejemplo:
0.pool.ntp.org servidor
1.pool.ntp.org servidor
2.pool.ntp.org servidor
Las siguientes zonas estn asociados a un grupo de servidores NTP que se encuentran dentro de una zona geogrca determinada
regin:
asia.pool.ntp.org
,
europe.pool.ntp.org
,
norte-america.pool.ntp.org
,
oceania.pool.ntp.org
,
y
sur-america.pool.ntp.org
. El uso de estos va a reducir el trco de Internet y la latencia.
Tambin hay zonas que se resuelven en los servidores NTP en pases especcos (por ejemplo,
us.pool.ntp.org
); usted puede
obtener una lista completa de ellos en
http://ntp.isc.org/bin/view/Servers/NTPPoolServers
.
Adems, ntpd puede corregir automticamente la frecuencia de reloj de deriva especca de su mquina. Lo
hace mediante el aprendizaje de la deriva media con el tiempo a medida que recibe mensajes de sincronizacin. Slo tiene que aadir una lnea como sta
a tu ntp.conf archivo para activar esta funcin:
driftle / etc / ntp.drift
Por supuesto, si usted est manteniendo todas sus ntpd cheros de conguracin en / etc / ntp , tendr que utilizar un
directorio similar a / etc / ntp / ntp.drift lugar.
Eso es todo. Slo tienes que aadir ntpd a sus scripts de inicio, ponerlo en marcha, y ya est listo para ir.
Pgina 222
Hack # 69. Crea tu propia Autoridad de Certicacin
Firme sus propios certicados para su uso en la seguridad de su red.
Los certicados SSL se lo suele considerar como siendo utilizado para las comunicaciones seguras a travs de HTTP
protocolo. Sin embargo, tambin son tiles para proporcionar tanto un medio para la autenticacin y un medio para
iniciar el intercambio de claves para una mirada de otros servicios que se desea la encriptacin, como el POP y
IMAP [Hack # 54] , SMTP [Hack # 55] , IPsec [Hack # 93] , Y, por supuesto, tneles SSL [Hack # 100] . A
hacer el mejor uso de SSL, tendr que gestionar adecuadamente sus propios certicados.
Si un cliente SSL tiene que vericar la autenticidad de un servidor SSL, el certicado utilizado por el servidor necesita
ser rmado por una autoridad de certicacin (CA) que ya es de conanza para el cliente. CAs conocidos (tales
como existen Thawte y VeriSign) para servir como autoritario, terceros de conanza para la autenticacin. Ellos
estn en el negocio de los certicados de rma SSL que se utilizan en los sitios que tratan con informacin delicada
(Como nmeros de cuenta o contraseas).
Si una autoridad de conanza ha rmado el certicado SSL de un sitio, es de suponer que es posible vericar la identidad
de un servidor de suministrar las credenciales de esa cert. Sin embargo, para que no sea el comercio electrnico nada
aplicaciones, un certicado con rma suele ser suciente para obtener todas las ventajas de seguridad
que proporciona SSL. Por supuesto, una autoridad que el cliente reconoce debe rmar incluso un certicado auto-rmado.
OpenSSL, una implementacin SSL gratuito, es perfectamente capaz de generar todo lo que necesita para funcionar
su propia autoridad de certicacin. El CA.pl utilidad hace el proceso muy simple.
TIP
En estos ejemplos, tendrs que escribir nada en negrita, y entrar contraseas siempre que sea apropiado (no se hacen eco de la
pantalla).
Creacin de la CA
Para establecer su nueva autoridad de certicacin, el primer cambio a la / misc directorio en donde sea
OpenSSL est instalado ( / System / Library / OpenSSL en Mac OS X, / usr / ssl o / usr / local / ssl en la mayora de Linux
sistemas). A continuacin, utilice los siguientes comandos:
$ . / CA.pl-Newca
Certicado CA nombre (o escriba a crear)
Hacer certicado de CA ...
Generacin de una clave privada RSA de 1024 bits
.......... + + + + + +
..................... + + + + + +
escritura de la llave privada a '. / demoCA / private / cakey.pem'
Ingrese frase PEM:
Vericacin - Introducir frase PEM:
-----
Vas a pedir que introduzca la informacin que se incorporar
en su solicitud de certicado.
Lo que est a punto de entrar en lo que se llama un nombre completo o DN.
Hay un buen nmero de campos pero puedes dejar un poco de espacio en blanco
Para algunos campos habr un valor predeterminado,
Si introduce '.', El campo se dejar en blanco.
-----
Nombre Pas (cdigo de 2 letras) []: EE.UU.
Estado o Provincia Nombre (nombre completo) []: Colorado
Nombre de la localidad (por ejemplo, ciudad) []: Denver
Nombre de la organizacin (por ejemplo, la empresa) []: Empresas brillaba por su ausencia
Pgina 223
Organizational Unit Name (por ejemplo, la seccin) []: Servicios informticos
Nombre comn (por ejemplo, el nombre de host completo) []: ca.nonexistantdomain.com
Direccin de correo electrnico []: certadmin@nonexistantdomain.com
Tenga en cuenta que no necesariamente tienen permisos de root, pero tendr permisos de escritura en la
directorio actual.
Felicitaciones! T eres el orgulloso propietario de su propia autoridad de certicacin. Mira a tu alrededor:
$ ls-l demoCA /
total de 16
-Rw-r - r - 1 andrew andrew 1399 03 de diciembre 19:52 cacert.pem
drwxr-xr-x 2 andrew andrew 68 03 de diciembre 19:49 certs
drwxr-xr-x 2 andrew andrew 68 03 de diciembre 19:49 crl
-Rw-r - r - 1 andrew andrew 0 03 de diciembre 19:49 index.txt
drwxr-xr-x 2 andrew andrew 68 03 de diciembre 19:49 newcerts
drwxr-xr-x 3 andrew andrew 102 03 de diciembre 19:49 privada
-Rw-r - r - 1 andrew andrew 3 03 de diciembre 19:49 serial
La clave pblica para la nueva CA est contenida en cacert.pem , y la clave privada se encuentra en
privado / cakey.pem . Ahora puede utilizar esta clave privada para rmar otros certicados SSL.
Por defecto, CA.pl crea claves que son buenas para un ao solamente. Para cambiar este comportamiento, modique CA.pl y
cambiar la lnea que dice:
$ DIAS = "365 das";
Alternativamente, se puede renunciar a CA.pl por completo y generar las claves pblicas y privadas de forma manual con
un comando como este:
$ cakey.pem fuera cakey.pem das openssl req-new-x509-keyout 3650
Esto crea un par de claves que es bueno para los prximos 10 aos (para cambiar ese perodo, utilice una diferente
argumento al
-da
cambiar). Adems, debe cambiar los permisos de la clave privada a 600,
para asegurarse de que est protegido de ser ledo por cualquier persona.
Certicados de rma
Hasta el momento, slo se ha creado la Autoridad de Certicacin. Para crear las claves que se pueden utilizar con realidad
sus servicios, lo que necesita para crear una solicitud de rma de certicado y una clave. Una vez ms, esto se puede hacer fcilmente
con CA.pl . En primer lugar, crear una solicitud de rma de certicado:
$ . / CA.pl-newreq-nodos
Generacin de una clave privada RSA de 1024 bits
... + + + + + +
............................................... + + + + + +
escritura de la llave privada a 'newreq.pem'
-----
Vas a pedir que introduzca la informacin que se incorporar
en su solicitud de certicado.
Lo que est a punto de entrar en lo que se llama un nombre completo o DN.
Hay un buen nmero de campos pero puedes dejar un poco de espacio en blanco
Para algunos campos habr un valor predeterminado,
Si introduce '.', El campo se dejar en blanco.
-----
Nombre Pas (cdigo de 2 letras) [AU]: EE.UU.
Estado o Provincia Nombre (nombre completo) [Some-Estado]: Colorado
Nombre de la localidad (por ejemplo, ciudad) []: Denver
Nombre de la organizacin (por ejemplo, la empresa) [Internet Widgits Pty Ltd]: Empresas brillaba por su ausencia
Organizational Unit Name (por ejemplo, la seccin) []: Servicios informticos
Nombre comn (por ejemplo, su nombre) []: mail.nonexistantdomain.com
Pgina 224
Direccin de correo electrnico []: postmaster@nonexistantdomain.com
Por favor, introduzca los siguientes atributos 'extra'
para ser enviado con la peticin del certicado
Otra Contrasea []:
Un nombre de la empresa opcional []: Empresas brillaba por su ausencia
Solicitud (y clave privada) est en newreq.pem
Si desea cifrar la clave privada, puede utilizar el
-Newreq
cambiar en lugar de
-newreq-nodos
.
Sin embargo, si cifra la clave privada, tendr que introducir la contrasea para que cada vez que el
se inicia el servicio que lo utiliza. Si usted decide no utilizar una clave privada encriptada, sea extremadamente cauto
con su clave privada, ya que cualquiera que pueda obtener una copia de la misma puede hacerse pasar por el servidor.
Ahora, a rmar en realidad la peticin y generar el certicado rmado, emita este comando:
$ . / CA.pl-sign
Uso de la conguracin de / System / Library / OpenSSL / openssl.cnf
Ingrese frase de acceso / demoCA / private / cakey.pem.:
Compruebe que la solicitud coincide con la rma
Firma ok
Detalles certicado:
Nmero de serie: 1 (0x1)
Validez
No antes de las: 03 de diciembre 2003 09:05:08 GMT
No despus de: 03 de diciembre 2004 09:05:08 GMT
Asunto:
countryName = EE.UU.
stateOrProvinceName = Colorado
localityName = Denver
organizationName = Enterprises brillaba por su ausencia
organizationalUnitName = Servicios de TI
commonName = Mail.nonexistantdomain.com
emailAddress = Postmaster@nonexistantdomain.com
Extensiones X509v3:
Restricciones X509v3 bsicos:
CA: FALSO
Netscape Comentario:
Certicado OpenSSL generada
X509v3 Asunto clave de identicacin:
94:0 F: E9: F5: 22:40:02 C: 71: D0: A7: 5C: 65:02:3 E: BC: D8: DB: 10: BD: 88
Autoridad X509v3 identicador de clave:
keyid: 7E: AF: 2D: A4: 39:37: F5: 36: AE: 71:2 E: 9:00 E: 49:23:70:61:28:5 F: 4A
DirName :/ C = EE.UU. / ST = Colorado / L = Denver / O = inexistente Empresas / OU = Servicios de TI /
CN = Administracin Certicado / emailAddress = certadmin@nonexistantdomain.com
de serie: 00
Certicado se certicar hasta 07 de diciembre 2004 09:05:08 GMT (365 das)
Firmar el certicado? [Y / n]: y
1 de 1 peticiones de certicados certicados, se comprometen? [Y / n]: y
Escriba base de datos con 1 nuevas entradas
Base de datos actualizada
Firmado certicado est en newcert.pem
Ahora usted puede congurar las claves de esta manera para cada servidor que necesita para proporcionar un cifrado SSL
servicio. Es ms fcil hacer esto si usted designe una sola estacin de trabajo para mantener la CA y todos los archivos
asociado con l. No se olvide de distribuir su certicado CA [Hack # 70] a los programas que tienen que conar en ella.
Pgina 225
Hack # 70. Distribuya su CA a Clientes
Asegrese de que todos sus clientes confan en su nueva autoridad de certicacin.
Una vez que haya creado una autoridad de certicacin (CA) [Hack # 69] , Cualquier programa que confa en la entidad emisora se
conar en todos los certicados rmados por la CA. Para establecer esta conanza, tiene que distribuir su
Certicado de CA para cada programa que tiene que conar en ella. Esto podra incluir programas de correo electrnico, la seguridad IP
(IPsec) instalaciones, o los navegadores web.
Debido a que SSL utiliza criptografa de clave pblica, no hay necesidad de mantener el certicado de un secreto. Usted puede
simplemente instalarlo en un servidor web y descargarlo a sus clientes sobre HTTP sin formato antiguo. Mientras que el
instrucciones para instalar un CERT CA son diferentes para cada programa, este hack le mostrar una rpida
una forma fcil de instalar la CA de los navegadores web.
Los navegadores aceptan dos posibles formatos para nuevos certs CA: pem y der . Puede generar un der de
su actual pem con un solo
openssl
comando:
$ openssl x509-in demoCA / DER Salida cacert.der-cacert.pem outform
A continuacin, agregue la lnea siguiente a la conf / mime.types archivo en su instalacin de Apache:
application/x-x509-ca-cert crt der pem
Reinicie Apache para que los cambios surtan efecto. Ahora debera ser capaz de colocar tanto el cacert.der y
demoCA / cacert.pem archivos en cualquier lugar en su servidor web y se han clientes instalar el nuevo CERT simplemente
al hacer clic en cualquiera de los enlaces.
Las primeras versiones de Netscape espera que el pem formato, pero las versiones recientes aceptan tampoco. Internet
Explorer es justo lo contrario (a principios de IE acept slo el der formato, pero las versiones recientes tome ambos).
Otros navegadores suelen aceptar cualquier formato.
Cuando la descarga de la nueva entidad emisora de certicados, su navegador le preguntar si desea continuar.
Acepte el certicado, y eso es todo lo que hay que hacer. Ahora, certicados SSL rmados por la entidad de certicacin sern
aceptado sin avisar al usuario.
Tenga en cuenta que las Autoridades de certicacin no son para tomarse a la ligera. Si acepta una nueva CA en su
navegador, es mejor conar en l completamente; un administrador de CA traviesa podra rmar todo tipo de certs
que nunca se debe conar, pero su explorador nunca se quejan (ya que declar que conar en la CA
al importar l). Tenga mucho cuidado con quien extiende su conanza al utilizar SSL habilitado
navegadores. Vale la pena mirar a su alrededor en la cach de CA que se incluye con el navegador para ver exactamente quin
de su conanza de forma predeterminada. Por ejemplo, saba usted que AOL / Time Warner tiene su propia CA? Qu tal
GTE? O Visa? Certicados de CA para todas estas entidades (y muchos otros) se entregan con Netscape 7.0 para Linux,
y son todas las autoridades de conanza para los sitios web, correo electrnico y aplicaciones add-ons de forma predeterminada. Mantenga este
en cuenta cuando se navega por los sitios habilitados para SSL: si alguna de las autoridades por defecto han rmado en lnea
el contenido, el navegador va a conar en l sin requerir la conrmacin del operador.
Si el valor de la seguridad de su navegador (y, por extensin, la seguridad de su equipo cliente), lo convierten en un
apuntar a revisar sus relaciones CA de conanza.
Rob Flickenger
Pgina 226
Hack # 71. Copia de seguridad y restauracin de una autoridad de certicacin con
Servicios de Certicate Server
Copia de seguridad de sus Autoridades Locales Certicado es esencial, ya que constituye la base para
criptografa de clave pblica para su organizacin.
Si usted est pensando en usar IPsec en un entorno empresarial para cifrar la red privada virtual
(VPN) de comunicaciones para sus usuarios remotos, o si usted est pensando en conseguir email
las comunicaciones de su empresa mediante el cifrado de mensajes y rmarlos digitalmente, lo ms probable es
que has pensado en implementar su propia entidad local, certicado mediante los Servicios de Certicate Server
componente de Windows 2000 y Windows Server 2003.
La ventaja de hacer esto utilizando los Servicios de certicados, en lugar de dejar que un tercero pblica
cuestin de organizacin y gestin de la entidad emisora, es que no cuesta nada; puede emitir, administrar, renovar y
revocar los certicados digitales para los usuarios en toda la empresa de forma gratuita. Sin embargo, el costo oculto de
este enfoque es que lo que necesita saber lo que ests haciendo. Qu pasa si algo sale mal con el
servidor que funciona como la raz de CA? Las copias de seguridad adecuadas son la clave, pero sabiendo cmo restaurar en
diferentes situaciones es an ms importante.
En el corazn de su sistema de certicacin es la CA raz , que autoriza y valida todos los digitales
certicados emitidos por la empresa. Una empresa pequea o mediana empresa suele tener una sola CA,
que funciona como la entidad emisora raz y expide certicados para todos los usuarios y sistemas de la red. La
gran empresa podra encontrar que esta solucin de un solo CA no escala lo sucientemente bien y en su lugar podra
optar por implementar una jerarqua de CA que, con una sola CA raz en la parte superior y uno o ms subordinados
CAs debajo.
En una jerarqua de CA, el trabajo de la CA raz es simple: para emitir certicados de CA subordinadas, que
luego emitir otros certicados directamente a los usuarios. En cualquier caso, la clave para la celebracin de toda la situacin
juntos es la raz de CA. Si se pierde o se daa, todos los certicados expedidos por la
jerarqua de ser vlida, porque no se pueden validar de nuevo a la raz. Por lo tanto, la proteccin de su raz
CA protege el corazn de todo el sistema de su red de comunicacin cifrada y
autenticacin basada en certicados.
Copia de seguridad de una CA
La forma ms sencilla de copia de seguridad de entidad emisora raz es la ms sencilla: basta con utilizar la utilidad de copia de seguridad
(Herramientas del sistema ! Accesorios) y seleccione la opcin de copia de seguridad del estado del sistema de la mquina. Este
realizar una copia de seguridad de todo el equipo que sea crtico para su restauracin, en caso de que ocurra un desastre y
el servidor de CA raz es tostadas. Entonces, si alguna vez tiene que reconstruir su servidor y restaurar el estado del sistema
informacin de la cinta, su nuevo servidor se convertir en la CA raz para su empresa, y todo el
los certicados que se han emitido con anterioridad por su vieja mquina seguir siendo vlida.
Para estar seguro, Microsoft generalmente recomienda que restaure su raz CA en una mquina con un
conguracin del hardware que es idntica a su vieja mquina. Pero la cuestin fundamental aqu es que el diseo del disco
debe ser similar a la distribucin de la edad de la mquina, sobre todo si ha guardado la base de datos de certicados y
archivos de registro en una ubicacin no estndar (por defecto, que se encuentran en el
% SystemRoot% \ system32 \ CertLog carpeta, pero puede cambiar esta ubicacin al instalar
Servicios de certicados).
Usted tambin tiene que asegurarse de que su nuevo servidor tiene el mismo nombre que el anterior de la mquina, como el nombre de un
CA no se puede cambiar una vez instalado Servicios de Certicate Server. Debido a que el nombre de la mquina es
Pgina 227
incluido dentro del propio certicado de la CA raz, cambiando su nombre hara que toda la certicacin-
proceso de validacin para fallar (por la misma razn, no se puede cambiar la pertenencia al dominio de una CA
tampoco).
Sin embargo, las copias de seguridad de estado del sistema son tiles slo para recuperarse de un fracaso completo de su servidor,
y otras cosas que podran ir mal con su entidad emisora raz, como la corrupcin de la base de datos del certicado o
archivos de registro de certicados, algunos problema desconocido que evita que los Servicios de certicados de inicio y
requiere que se vuelva a instalar este servicio, o la necesidad de mover su raz CA a una mquina diferente en su
red (algo que podra no haber considerado).
Para prepararse para la eventualidad de la recuperacin de una que an funciona, pero corrompido CA raz o mover la
raz de rol Entidad a otro servidor, es necesario realizar otro tipo de copia de seguridad, que realiza copias de seguridad slo
lo que es esencial para que la mquina funcione en ese papel. Afortunadamente, Microsoft ha hecho esto fcil por
proporcionando una Autoridad de Certicacin Asistente de copia de seguridad. Vamos a ver cmo funciona este asistente y lo que hace.
El Asistente para copia de seguridad de la Autoridad de Certicacin
El Asistente para la Autoridad de Certicacin de copia de seguridad facilita la copia de seguridad de datos clave que se encuentran en la raz de CA,
incluyendo el propio certicado del servidor digital (llamado certicado de CA ), su clave privada (utilizado para
la generacin de rmas digitales y descifrar la informacin cifrada), el registro de base de datos y asociado
archivos que contienen los certicados emitidos previamente por el servidor, y la cola de certicado pendiente
peticiones espera de ser procesados por la mquina. Esta informacin es suciente para restaurar la CA raz
si llega a ser corrupto y Servicios de Certicate deja de funcionar. Como pronto veremos, sin embargo, no hay
una pieza adicional de informacin que usted necesita para restaurar estos datos a una mquina diferente.
Para iniciar el Asistente para la Autoridad de Certicacin de copia de seguridad, abra la consola Entidad de certicacin en virtud de
Herramientas administrativas. Luego, haga clic derecho en el nodo que representa la entidad emisora raz (o el subordinado
CA que desea hacer copia de seguridad en un escenario empresarial distribuida) y seleccione Todas las tareas ! CA Backup para iniciar
el asistente. La pantalla principal del asistente ofrece varias opciones, como se muestra en la Figura 6-11 .
Figura 6-11. Copia de seguridad de los datos clave de CA
La primera vez que una copia de seguridad de CA se utiliza este mtodo, asegrese de seleccionar al menos la opcin de copia de seguridad
la clave privada y certicado de CA para su CA. Esto se asegurar de que, al menos, puede restaurar el CA
Pgina 228
en el caso de una emergencia. Sin embargo, si lo hace slo esto, usted todava tendr que volver a emitir los certicados de
los usuarios. Por lo tanto, adems de la copia de seguridad de la clave y el certicado CA privada, es una buena idea tambin
incluir en la copia de seguridad del registro de certicado emitido y pendiente de la cola de solicitudes de certicado para el servidor de
(La opcin "Certicado de base de datos y base de datos del certicado de registro"), que contiene informacin sobre todos los
certicados ya emitidos por la entidad emisora y los pedidos pendientes de los clientes. Cuando se elige esta
opcin en la pantalla del asistente de la Autoridad de Certicacin de copia de seguridad (que se muestra en la Figura 6-11 ), Usted tambin tiene la
opcin de realizar una copia de seguridad incremental de la CA, que hace una copia de seguridad nicamente de los cambios en
la base de datos de certicados realizados desde el ltimo respaldo completo.
Esto es ms complicado de lo que parece, as que echemos un vistazo ms profundo a los resultados del proceso de copia de seguridad. Si usted elige
slo la primera opcin, hacer una copia de seguridad de la clave privada y el certicado CA, y especique una carpeta como
C: \ certback como destino de la copia de seguridad, el resultado de la copia de seguridad ser un archivo denominado CA_Name.p12 ,
donde CA_NAME es el nombre que ha especicado para el CA al instalar Servicios de Certicate Server en el
mquina (el . p12 extensin de archivo signica que el archivo utiliza PKCS # 12 estndar de sintaxis de cifrado). Desde
usted est obligado a especicar una contrasea ms adelante en el asistente, el archivo de copia de seguridad es en s mismo asegurado por ser
protegido con contrasea. La mejor prctica es elegir una contrasea difcil compleja para proteger su
copia de seguridad, pero asegrese de que no se olvide la contrasea; de otro modo, usted no ser capaz de restaurar su
CA raz ms tarde.
Si usted elige la otra opcin, hacer una copia de seguridad del registro de certicado emitido y pendiente de solicitud de certicado
cola, una subcarpeta denominada base de datos se crear en su certback carpeta. Dentro de esta base de datos
carpeta, copias de los archivos de base de datos de certicados y los archivos de registro de base de datos de certicados de la entidad emisora sern
creado. Los archivos de registro son bsicamente archivos de transaccin que registran los cambios realizados y pendientes de la
base de datos.
Ahora, digamos que usted copia de seguridad de clave de todo-privada, el certicado CA, registro de certicados, y cola-en
Lunes, pero el jueves que ha procesado una gran cantidad de solicitudes de certicados de usuarios y ahora es necesario
Actualiza la copia de seguridad. Hay dos maneras de hacer esto. En primer lugar, puede simplemente copia de seguridad de todo lo nuevo
a una nueva carpeta (vaca), y luego descarta su viejo respaldos buenos y sencillos.
La otra forma (la forma recomendada por Microsoft) es hacer una copia de seguridad incremental de su
registro de certicado y cola. Ahora, si usted trata de guardar su copia de seguridad incremental en el certback carpeta,
obtendr un error que dice que usted puede hacer copias de seguridad nicamente en una carpeta vaca. En este caso, es posible que
a continuacin, crear una subcarpeta bajo certback -quizs una carpeta como certback \ 17Nov03 , lo que indica
la fecha en que realiz la copia de seguridad, y luego una copia de seguridad de esta carpeta en lugar de gradual certback .
El resultado ser la creacin de otra carpeta llamada Base de Datos , esta ubicada en
certback \ 17Nov03 \ Database . Dentro de esta carpeta, encontrar los registros de transacciones pero no hay base de datos. Entonces,
la semana siguiente, se puede realizar una copia de seguridad incremental a una nueva carpeta llamada certback \ 24Nov03 ,
y as sucesivamente.
Ahora, si alguna vez necesita restaurar la entidad emisora de la copia de seguridad, usted tendr que restaurar la copia de seguridad completa
en primer lugar, seguido de todos sus copias de seguridad incrementales, en orden. Eso es un montn de trabajo. Vea por qu es posible
quiere slo realizar una copia de seguridad completa cada vez que en su lugar?
Por cierto, si usted se est preguntando acerca de la opcin "Conguracin de la informacin" in-out en gris Figura 6 -
11 , esa opcin slo se utiliza para realizar copias de seguridad de una CA independiente (es decir, una entidad emisora instalada en un servidor independiente
en un entorno de grupo de trabajo). Si est trabajando en un entorno de Active Directory (que es ms
probable), la informacin de conguracin de la entidad emisora se almacena en Active Directory y por lo tanto no
necesitan ser respaldados por separado como este. Lo bueno en Windows Server 2003 es que esta opcin es
ni siquiera es visible en el asistente cuando se realiza el respaldo de una CA de empresa (es decir, una entidad emisora instalada en un
Pgina 229
controlador de dominio o servidor miembro en un entorno de Active Directory).
Restauracin de una CA en un servidor de trabajo
Si su entidad emisora raz se daa o los Servicios de certicados no arranca pero el servidor es de otra manera
trabajando muy bien, puede utilizar la copia de seguridad creada anteriormente para restaurar la clave privada de la CA raz,
base de datos de certicados y registros de transacciones a su estado de trabajo ms reciente. Simplemente comienza a la Certicacin
Consola Entidad de Herramientas administrativas, haga clic en el nodo raz CA, y seleccione Restaurar CA a
Abra la Autoridad de Certicacin de Asistente, que es bsicamente una imagen especular de la copia de seguridad de restauracin
Wizard.
Si los Servicios de certicados se est ejecutando, se detendr temporalmente para continuar con la restauracin. Seleccione qu
componentes que desea restaurar, busque el p12. archivo de copia de seguridad creado anteriormente y escriba su
contrasea para iniciar el proceso de restauracin. Una vez que la restauracin haya nalizado, los Servicios de certicados se reiniciar y
usted debe tener un trabajo CA de nuevo para su organizacin.
Y si an as no funciona? En ese caso, es posible que tenga una metabase corrupto. Informacin de Internet
Services (IIS) es un componente de apoyo para la parte de la matrcula CA web de Servicios de Certicate Server,
y si la metabase IIS se corrompe, el CA no ser capaz de procesar las solicitudes de inscripcin de CA.
La solucin, una vez que haya restaurado la CA, es restaurar la metabase tambin. Una vez que la metabase tiene
restaurado, usted debera ser capaz de cargar las pginas web de Servicios de Certicate Server y certicado de proceso
solicitudes de nuevo.
Si su raz CA sigue sin funcionar, su nica solucin podra ser la de reconstruir la mquina desde cero
y restauracin del estado del sistema de medios de backup en cinta. Esto suele ser un proceso que consume tiempo, pero si
el servidor se est ejecutando Windows Server 2003 que podra ser capaz de acelerarlo mediante el uso de la plataforma
nueva funcin de recuperacin automtica del sistema.
Restauracin de una CA en un servidor diferente
Mientras que las CA raz pretenden ltimas dcadas para las grandes organizaciones, las plataformas de hardware reales
se ejecutan en llegar a ser obsoletos con el tiempo se extiende mucho ms corto que el tiempo de vida previsto de la CA. Como
resultado, es posible encontrar algn da queriendo mover el papel de la CA raz de una vieja mquina a un
ms potente nueva. Una vez que se ha implementado una infraestructura de clave pblica (PKI) dentro de su
organizacin y comenz a emitir certicados a usuarios para la mensajera cifrada y segura
las comunicaciones, los usuarios se vuelven dependientes de la transparencia de todo el proceso de su propia
punto de vista. La ltima cosa que quiero hacer es construir un buen sistema, PKI funcional para la red
y tienen que romper todo abajo algn da y construir otro, y todo porque tienes que cambiar qu servidor
hospeda la funcin de entidad emisora raz.
Dejando a un lado el problema de la actualizacin del sistema operativo en s (quin sabe qu versin de
Ventanas que vamos a estar en ejecucin dentro de 10 aos?), Aqu vamos a discutir cmo hacer avanzar el papel de entidad emisora raz de
un servidor a otro, por lo general un proceso llamado "actualizacin" de su CA.
Primero, haga una copia de seguridad completa de la clave privada, el certicado CA, la base de datos de certicados y registros de transacciones
utilizando el mtodo basado en un asistente descrito anteriormente en este hack. El resultado del proceso de copia de seguridad es un
archivo protegido por contrasea llamada CA_Name.p12 que contiene el propio certicado de la CA raz y privada
clave, adems de una base de datos de la carpeta que contiene los archivos de bases de datos y registros de transacciones.
A continuacin, copia de seguridad de la siguiente clave del registro en su vieja raz CA:
HKLM \ SYSTEM \ CurrentControlSet \ Services \ CertSvc \ Conguration \ CA_NAME
Pgina 230
Esta clave contiene informacin crtica acerca de la forma en Servicios de Certicate Server est congurado en la mquina,
y usted necesitar esta tecla para mover su funcin de CA a una mquina diferente. Asegrese de que tambin hace una
nota de la ubicacin donde se encuentra la base de datos de certicados y los archivos de registro en el servidor. De manera predeterminada,
ambos se encuentran en el directorio% SystemRoot% \ system32 \ CertLog carpeta, pero es posible que los han colocado en una
unidad independiente para un mayor rendimiento al instalar Servicios de Certicate Server en su vieja mquina.
Despus, usted necesita para preparar su nuevo servidor para alojar el papel de la CA raz para su organizacin. Tome la
servidor fuera de la red y cambiarle el nombre con el mismo nombre que el anterior de CA raz. Este paso es esencial,
debido a que el nombre del servidor se incluye en todos los certicados emitidos por la CA. Para que previamente
emitido certicados para ser validados, la nueva entidad emisora raz debe tener el mismo nombre que el anterior. Mientras
Windows Server 2003 ahora es compatible con un proceso que le permite cambiar el nombre de sus dominios y dominio
controladores, obviamente es ms sencillo si se utiliza un servidor miembro para su entidad emisora raz, debido miembro
los servidores son ms fciles de cambiar el nombre de los controladores de dominio. Copie el CA_Name.p12 archivo y base de datos de carpetas
de su vieja mquina a una carpeta temporal en algn lugar de su nueva mquina, y tienen el Registro
clave exportada desde la vieja mquina listo para importar tambin.
Ahora, comenzar la instalacin de Servicios de Certicate Server en el equipo mediante Agregar / Quitar de Windows
Componentes (Panel de control ! Agregar / quitar programas). Cuando se le pida para especicar qu tipo de CA
desea instalar (empresa o autnomo, raz o subordinada), seleccione "Opciones avanzadas"
(Windows Server 2003 reemplaza a "Opciones avanzadas" con "Usar una conguracin personalizada para generar la clave
par y el certicado CA en cambio, "pero todo lo dems es similar) y haga clic en Siguiente para mostrar al pblico
y la pantalla Privado par de claves del Asistente para componentes de Windows, se muestra en la Figura 6-12 .
Figura 6-12. Importacin de informacin de la copia de seguridad de su vieja raz CA
Haga clic en el botn Importar, busque el CA_Name.p12 archivo de copia de seguridad en el servidor, y entrar en el
contrasea que especic cuando realiz la copia de seguridad de su antigua CA. Complete los pasos restantes del asistente,
asegurndose de especicar la misma ruta de acceso para la base de datos de certicados y los archivos que estaba utilizando el log
tu vieja CA. A continuacin, restaure la base de datos y los archivos de copia de seguridad de registro, como se explic anteriormente en este hack.
Finalmente, para restaurar la clave del registro que hizo copia de seguridad en la antigua CA de su nuevo CA.
Reiniciar los Servicios de Certicate Server, y ahora debera tener una raz CA de trabajo que se ejecuta en el hardware nuevo
Pgina 231
que le durar ... cinco aos? Tres aos? Quin sabe, las plataformas de hardware manera avanzan
en estos das! En cualquier caso, asegrese de probar su nueva raz CA a fondo en todos sus aspectos (por ejemplo,
las solicitudes de certicados de procesamiento, los certicados de validacin, y la renovacin y revocacin de certicados) antes
nalmente el desmantelamiento de su vieja raz CA.
El desmantelamiento del Antiguo CA
Si desea utilizar el servidor antiguo para algn otro propsito en la red (en oposicin a descartarlo
en el gran contenedor azul detrs de su edicio), usted todava tiene que hacer dos cosas. En primer lugar, usted tiene que quitar
Servicios de certicados de ella. Pero antes de hacer esto, es necesario eliminar el certicado de CA y privada
introducir a s mismos, porque usted no quiere que ellos dando vueltas en alguna vieja mquina en la red.
Para eliminar estos elementos criptogrcos, abra un smbolo del sistema y escriba
certutil-apagado
para detener
Servicios de Certicate Server en la mquina. A continuacin, escriba
certutil-key
para mostrar una lista de todos criptogrca
llaves instaladas en la mquina. Contenido dentro de esta lista debe ser una clave denominada por la propia CA
(
CA_NAME
), Que se puede eliminar del servidor escribiendo
certutil-delkey CA_NAME
(Encierre
CA_NAME
entre comillas si contiene espacios). Ahora usted puede utilizar Agregar / Quitar Programas en el Panel de control
desinstalar los Servicios de certicados, lo que le permite utilizar el equipo viejo para algn otro propsito en su
red.
Pero no se olvide de este segundo paso: cambiar el nombre de su servidor por lo que no entrar en conicto con la nueva raz CA en
su red!
Mitch Tulloch
Pgina 232
Hack # 72. Detectar Sniffers Ethernet de forma remota
Detectar posibles espas de la red sin tener que conar en las mquinas comprometidas.
Sniffers Ethernet son una de las herramientas ms poderosas de su arsenal de seguridad de red. Sin embargo, en el
manos equivocadas, pueden ser una de las mayores amenazas para la seguridad de su red. Una vez que el sistema tiene
sido comprometida, ya sea por una informacin privilegiada o un intruso malintencionado, el atacante ms probable es que se iniciar
oliendo la red local. Este reconocimiento de la red ayudar a la "espa" para encontrar a su prximo objetivo, o
simplemente para recoger trozos jugosos de informacin (como nombres de usuario y contraseas, correos electrnicos, u otros
datos sensibles).
Olfateando Medios Compartidos
No hace mucho tiempo, se pensaba comnmente que las redes de medio compartido slo Ethernet eran
vulnerables a ser olido. Estas redes utilizan un cubo central, que retransmite todos los
transmisin de paquetes a cada puerto en el hub. En esta conguracin, cada nodo en la red local
segmento recibe cada trama enviada por cualquier nodo de la red. Interfaz de red de cada nodo a continuacin, realiza
una comprobacin rpida para ver si es el nodo para el que est destinado el marco. Si no es el host de destino,
se descarta la trama. Si lo es, el marco se pasa a travs de la pila de protocolos del sistema operativo
y nalmente es procesada por una aplicacin.
Debido a esto, el trco de inhalacin de signicado para otros sistemas de la red era trivial. Dado que toda la
trco alcanz cada sistema, era necesario slo para desactivar la comprobacin que realiza el interfaz de red
otorgar un acceso al sistema de trco obliga a los dems. Esto se conoce generalmente como poner la red
interfaz en modo promiscuo , que por lo general slo se puede hacer por un usuario privilegiado.
Olfateando en entornos conmutados
Finalmente, las redes conmutadas por Ethernet comenzaron a reemplazar a las redes compartidas-medio. Por lo tanto, el principal
Se retir facilitador de snifng. A diferencia de hubs, switches Ethernet envan trco slo al dispositivo para
que se destina. Para ello, un conmutador Ethernet se entera que la direccin MAC del dispositivo de red
corresponde a lo que el puerto en el switch como el trco pasa a travs del interruptor. Cuando el interruptor ve una
Trama Ethernet con una cierta direccin MAC de destino, se ve hasta qu puerto en el interruptor
corresponde a la misma y enva la trama a slo ese puerto. Al hacer esto, el interruptor crea efectivamente
una conexin dedicada virtual desde la estacin emisora a la estacin receptora cada vez que una red Ethernet
trama se transmite en la red. Por lo tanto, slo la mquina que el marco fue pensado originalmente para
es capaz de verlo. Esto estara bien, pero ciertos aspectos de la especicacin Ethernet y TCP / IP puede
causar problemas.
Un problema es que los interruptores pueden memorizar slo un nmero limitado de direcciones MAC. La mxima
nmero a menudo ser varios rdenes de magnitud mayor que el nmero de puertos que el conmutador tiene,
que permite que los conmutadores se conectan entre s de forma jerrquica. Para hacer esto de manera eciente,
sin embargo, cada interruptor debe memorizar las direcciones MAC disponibles en los interruptores para las que es
conectado.
Por ejemplo, suponga que tiene un switch de 24 puertos (switch A) con 23 mquinas conectados a ella y la
Puerto 24 ocupado por otro interruptor. Este otro switch (conmutador B) cuenta con 48 puertos, con el 47 otro
puertos estn ocupados por las mquinas. En esta situacin, el interruptor A aprender las direcciones MAC de los 47
sistemas en el interruptor B y asociarlo con su puerto 24, y el interruptor B aprendern las direcciones MAC de
los 23 sistemas conectados directamente al interruptor A y lo asocian con su propio puerto 48.
Pgina 233
A pesar de que el interruptor de promedio puede memorizar hacia arriba de varios miles de direcciones MAC, es todava
posible desbordamiento de la tabla de direcciones MAC de un interruptor mediante la generacin de grandes cantidades de trco con falsa
Direcciones MAC. Esta tctica es deseable que un usuario malintencionado porque muchos interruptores volvern a
comportndose como hubs una vez que sus tablas de direcciones MAC se han llenado. Una vez que esto sucede, la red es
no es diferente de un segmento de medio compartido utilizando un concentrador. Un usuario malintencionado puede oler la red
con slo poner su interfaz de red en modo promiscuo.
Por suerte, este enfoque es bastante invasivo; con el n de que funcione, ser necesario que la red se inund
con trco falso, que es algo que se puede detectar de forma pasiva con una herramienta como Arpwatch
[Hack # 62] . Una avalancha de falsos MAC e IP direcciones pares causar Arpwatch al asimismo inundaciones
los registros del sistema. Mientras que es bueno acerca de cmo supervisar los registros, este ataque debe ser bastante fcil
de detectar. Como se mencion en "Detectar ARP Spoong" [Hack # 62] , Arpwatch tambin es capaz de detectar
Envenenamiento tabla ARP. Eso hace que sea una herramienta ecaz para la deteccin de los dos tipos ms comunes de ARP
ataques que suelen ser precursores de registro de datos: inundaciones ARP y el envenenamiento ARP dirigida.
Otra manera de controlar las redes de conmutacin es simplemente cambiar la direccin MAC de la tarjeta Ethernet
en el sistema que se va a utilizar para oler. En Linux y muchos otros Unix y Unix-like
Los sistemas operativos, esto se puede hacer con la
ifcong
comando:
# / sbin / ifcong eth1
eth1 Link encap: Ethernet HWaddr 00: E0: 81:03: D8: 8F
BROADCAST MULTICAST MTU: 1500 Mtrica: 1
RX packets: 0 Errores: 0 Eliminado: 0 sobrecostos: 0 frame: 0
Paquetes TX: 0 Errores: 0 Eliminado: 0 sobrecostos: 0 portador: 0
: 0 colisiones txqueuelen: 100
RX bytes: bytes 0 (0.0 b) TX: 0 (0.0 b)
Interrupcin: 11 Direccin base: 0x1c80
# / sbin / ifcong eth0 hw ter 00: DE: AD: BE: EF: 00
# / sbin / ifcong eth1
eth1 Link encap: Ethernet HWaddr 00: DE: AD: BE: EF: 00
BROADCAST MULTICAST MTU: 1500 Mtrica: 1
RX packets: 0 Errores: 0 Eliminado: 0 sobrecostos: 0 frame: 0
Paquetes TX: 0 Errores: 0 Eliminado: 0 sobrecostos: 0 portador: 0
: 0 colisiones txqueuelen: 100
RX bytes: bytes 0 (0.0 b) TX: 0 (0.0 b)
Interrupcin: 11 Direccin base: 0x1c80
El propsito de hacer esto es engaar el interruptor en reenviar el trco a dos nodos diferentes en el
segmento. Esto es a veces un trato xito o no acertar, ya que los diferentes interruptores se comportan de manera diferente cuando
hay direcciones MAC duplicadas en uso en la misma red. El conmutador puede reenviar el trco a
ambos puertos, distribuir el trco de forma impredecible entre ellos, dejar pasar el trco por completo, o subir
un error.
Todos estos mtodos se pueden detectar y se detuvo con interruptores que gestiona ms caros, que
permiten especicar qu direcciones MAC estn permitidos en cada puerto. Esta funcin es
a veces llamada la seguridad portuaria .
Sin embargo, incluso si los atacantes deciden no emplear estos mtodos, pueden todava recoger un poco de
informacin, con solo colocar la interfaz de red en modo promiscuo. Por ejemplo, transmitido
trco, como las peticiones DHCP y ARP todava ser enviado a todos los puertos del switch.
Instalacin SniffDet
Una herramienta que puede ayudar a detectar las interfaces promiscuos en conmutados y no conmutados redes es
SniffDet (
http://sniffdet.sourceforge.net
). Para una herramienta que realmente sirve a un propsito en particular,
Pgina 234
SniffDet es bastante verstil, y puede detectar rastreadores de varias maneras. La principal diferencia entre
SniffDet y una herramienta como Arpwatch es que SniffDet explora activamente sniffers. Es decir, si usted sospecha
que una mquina podra estar ejecutando un sniffer, puede simplemente ejecutar SniffDet y apunte a que la mquina para
determinar si su dispositivo de red est en modo promiscuo.
Para compilar e instalar SniffDet, primero tendr que obtener el libnet biblioteca inyeccin de paquetes
(
http://www.packetfactory.net/projects/libnet/
). Asegrese de descargar la ltima versin 1.0.x;
las versiones 1.1 de libnet son incompatibles con los programas escritos para las versiones 1.0.x.
Para compilar libnet , descomprimir la distribucin de fuentes y entrar en el directorio que crea. A continuacin, ejecute
este comando:
$ . / congure && make
Despus de que haya terminado de compilar, se convierten en la raz y tipo
make install
.
Edicio SniffDet es un asunto similar. Al igual que con libnet , tendr que descomprimir la distribucin de fuentes
y cambie al directorio que crea. Entonces, para construir e instalar, hacer lo mismo que usted hizo para
libnet . Usted tambin querr descargar dos parches: uno que corrige varios problemas de compilacin y una
que corrige un error que limita la funcionalidad de SniffDet (este ltimo ha sido presentado a los autores de
SniffDet pero no se ha integrado en una nueva versin en el momento de escribir estas lneas). Ambos parches pueden
ser obtenido a partir de
http://snort-wireless.org/other/patches/sniffdet-0.9
.
Antes de compilar SniffDet, aplicar los parches con comandos como los siguientes:
$ tar xfz sniffdet-0.9.tar.gz
$ cd sniffdet-0.9
$ patch-p1 <sniffdet-get_mac.patch
$ patch-p1 <sniffdet-compile_xes.patch
Pruebas con ARP Consultas
SniffDet tiene varios mtodos para determinar si una mquina de destino est ejecutando un sniffer. Sin embargo,
slo dos de los mtodos que emplea el ARP y DNS pruebas-trabajarn con repetible y
resultados predecibles.
La prueba se basa en cmo ARP ofertas pila de protocolos del sistema olfateando con consultas ARP, mientras que en
modo promiscuo. Para ejecutar esta prueba, SniffDet enva una consulta ARP para la mquina de destino. Este
solicitud tiene origen y destino direcciones MAC falsas sino que utiliza la direccin IP correcta de la mquina
que se comprueba. Si el equipo de destino est en modo promiscuo, el ARP consultar con el falso MAC
direccin se pasa a la pila de protocolos, y la mquina de destino enviar una respuesta. Si la mquina
no es en modo promiscuo, esta consulta ARP se descarta en silencio. Este mtodo es efectivo en
conmutados y no conmutados redes.
La prueba de ARP funciona debido a la forma en la que los adaptadores de red implementan direccionamiento multicast. IP
grupos multicast han asociado direcciones MAC. Con el n de recibir datos de multidifusin, una red
interfaz que se jar para no ltrar los datos que se envan a la direccin MAC que corresponde a la multidifusin
grupo al que pertenece, as como a la direccin de emisin y la direccin normal de la interfaz. Uno
efecto secundario interesante de la forma en que esto se lleva a cabo es que cuando una interfaz de red es en
modo promiscuo es capaz de responder a cualquier trama con el bit grupo creado en la direccin de destino, incluso
Si la direccin no corresponde a un grupo de multidifusin al que pertenece el host. Este mismo bit se
Tambin hacen que el marco que se emitir por el conmutador. Por lo tanto, uno slo tiene que enviar una solicitud de ARP con una
direccin de destino como
FF: 00:00:00:00:00
en lugar de la direccin de difusin normal,
Pgina 235
FF: FF: FF: FF: FF: FF
, Para detectar si la mquina est en modo promiscuo.
Una cosa interesante a observar es que los diferentes sistemas operativos responden a las direcciones MAC con
el bit de grupo congurado de diferentes maneras. Por ejemplo, Linux y muchos otros sistemas operativos tipo Unix
responder a la direccin mencionada anteriormente, cuando en modo promiscuo, pero los sistemas de ventanas se
no. Por otro lado, ambos sistemas Unix y Windows respondern cuando
FF: FF: FF: FF: FF: FE
es
utilizado como direccin de destino. Sin embargo, debido a un error en el cdigo de la direccin MAC de anlisis de SniffDet,
usted no ser capaz de utilizar
FF: FF: FF: FF: FF: FE
como direccin de destino a menos que aplique la anteriormente
parche mencionado.
Echemos un vistazo a un sniffdet exploracin contra sirius (192.168.0.2) del coloso (192.168.0.64), dos mquinas
que estn en la misma red conmutada.
Aqu estn los resultados de la ejecucin sniffdet contra sirius :
coloso # sniffdet-i eth0-t arp sirius
-------------------------------------------------- ----------
Sniffdet Reportar
Generado en: Wed Dec 31 03:49:28 2003
-------------------------------------------------- ----------
Resultados de los Exmenes para sirius objetivo
-------------------------------------------------- ----------
Prueba: Prueba de ARP (host individual)
Compruebe si el objetivo responde una peticin ARP falsos (con mal MAC)
Validacin: OK
Comienza el: Wed Dec 31 03:49:08 2003
Terminado el: Wed Dec 31 03:49:28 2003
Bytes enviados: 252
Bytes recibidos: 0
Los paquetes enviados: 6
Los paquetes recibidos: 0
-------------------------------------------------- ----------
Resultado: negativo
-------------------------------------------------- ----------
-------------------------------------------------- ----------
Nmero de pruebas vlidas: # 1
Nmero de pruebas con resultado positivo: # 0
-------------------------------------------------- ----------
Ahora empieza un sniffer en sirius y ejecutar la exploracin de nuevo:
sirius # tcpdump-i le0 arp
tcpdump: escucha en le0
06:58:00.458836 arp who-has sirius.nnc decirle colossus.nnc
06:58:00.458952 arp respuesta sirius.nnc es-en 8:0:20:81: a4: a3
06:58:00.466601 arp who-has sirius.nnc (ff: 0:0:0:0:0) dice colossus.nnc
06:58:00.466928 arp respuesta sirius.nnc es-en 8:0:20:81: a4: a3
Aqu estn los resultados de la exploracin:
-------------------------------------------------- ----------
Sniffdet Reportar
Generado en: Wed Dec 31 06:58:01 2003
-------------------------------------------------- ----------
Resultados de los Exmenes para sirius objetivo
-------------------------------------------------- ----------
Prueba: Prueba de ARP (host individual)
Compruebe si el objetivo responde una peticin ARP falsos (con mal MAC)
Validacin: OK
Comienza el: Wed Dec 31 06:58:00 2003
Terminado el: Wed Dec 31 06:58:01 2003
Bytes enviados: 84
Pgina 236
Bytes recibidos: 60
Los paquetes enviados: 2
Los paquetes recibidos: 1
-------------------------------------------------- ----------
Resultado: positivo
-------------------------------------------------- ----------
-------------------------------------------------- ----------
Nmero de pruebas vlidas: # 1
Nmero de pruebas con resultado positivo: # 1
-------------------------------------------------- ----------
La prueba de DNS tambin funciona muy bien, sobre todo en las redes medianas compartida como hubs o inalmbrica
Redes de rea local. Sin embargo, esto depende de la resolucin de nombres est habilitada en el sniffer. Al realizar DNS
pruebas, sniffdet enviarn paquetes falsos que contienen direcciones IP que no estn en uso en la red local
segmento. Si la resolucin de nombres est habilitada, el sniffer intentar hacer una bsqueda inversa con el n de
determinar el nombre de host que corresponde a las direcciones IP. Dado que estas direcciones no estn en uso,
sniffdet determinar que el equipo de destino est en modo promiscuo cuando ve las consultas DNS.
Una prueba de DNS se realiza como una prueba de ARP, pero utilizando
-T dns
en lugar de
-T arp
.
Pgina 237
Hack # 73. Ayuda Track atacantes
Contribuir registros del cortafuegos al DShield para construir una mejor imagen de los peligros en Internet.
El Internet puede ser un lugar peligroso, y teniendo en cuenta su gran tamao es una probabilidad de que en cualquier momento
numerosos ataques se llevan a cabo contra las redes y hosts a travs del globo. Pero lo que hace este
signicar para usted y su red? No sera bueno saber cul es el ms comnmente atacado
servicios son? Un proyecto que pretende recopilar esta informacin es DShield (
http://www.dshield.org
), Una
proyecto auspiciado por el Instituto SANS (
http://www.sans.org
) Que busca ser un IDS distribuidos para
Internet.
DShield cumple su misin al permitir que los usuarios de todo el mundo a presentar sus registros de cortafuegos para
ser procesados y correlacionados. Esto permite que el proyecto para determinar qu puertos son atacados ms
y donde los ataques se originan, y para informar a la comunidad de Internet en general de estos hechos. En
Adems, se puede saber si sus sistemas se han utilizado para atacar a otros sistemas que son
participar en el proyecto (aunque, con suerte, ya sabe si su sistema est siendo mal utilizada).
DShield incluye una interfaz web (
http://www.dshield.org/report.php
) Que se puede utilizar manualmente
cargar archivos de registro, a pesar de que slo es compatible con unos formatos: Linux ipchains e iptables , ZoneAlarm,
SonicWall, y Raptor. Si desea enviar sus registros de forma automtica, hay muchas ms opciones a
elegir (ver
http://www.dshield.org/howto.php
). Hay tambin muchos tipos diferentes de registros que
se pueden enviar por DShield hacer totalmente justicia a todos aqu, as que nos centraremos en la forma de presentar
Registros de un Linux iptables rewall.
En primer lugar, usted tendr que decidir si desea inscribirse en DShield. Aunque no es necesario registrarse
a presentar los registros, se anim. Una cosa adicional que permite el registro es la participacin en DShield de
Iniciativa remontada, a travs del cual DShield presenta informes a los ISP donde los ataques se originan. Por
registrarse y elegir participar en la remontada, se permite DShield utilizar sus registros de esta
propsito.
Para enviar los registros de un iptables rewall, descargar el cliente adecuado
(
http://www.dshield.org/clients/framework/iptables.tar.gz
). A continuacin, cree un usuario para ejecutar el cliente
bajo (por ejemplo, _dshield ). Al hacer esto, asegrese de crear un directorio vlido para el usuario; es
un buen lugar para poner el guin del envo del registro y los archivos de conguracin que acompaan.
Despus de crear la cuenta, descomprimir el archivo tar y copiar la secuencia de comandos en la sumisin del usuario bin
directorio (por ejemplo, _dshield / bin ):
# cd / tmp
# tar xvfz iptables.tar.gz && iptables cd
# iptables.pl_dshield cp / bin
A continuacin, copie el dshield.cnf y lst. archivos en / etc :
# dshield.cnf cp *. lst / etc
Edite el archivo de conguracin, dshield.cnf , cambiando el
desde
y
ID de usuario
lneas de la direccin de correo electrnico que
registrada al ID que recibi despus. Si no se ha registrado, puede dejar estos
solo. Tambin puede cambiar el
cc
y
bcc
lneas para enviar copias de s mismo las presentaciones. Si su
registros del cortafuegos se almacenan en un archivo que no sea / var / log / messages , tendr que cambiar la
log
lnea que
as.
Si utiliza / var / log / messages , tendr entradas de registro para otras cosas aparte de su rewall. Estos
otras entradas se ignoran a travs de la
line_lter
variable en el archivo de conguracin, que le permite especicar
Pgina 238
una expresin regular para que coincida con las lneas pertenecientes al rewall. Para la mayora de las situaciones, el valor predeterminado
debe estar bien. Si desea ltrar algunas de las lneas de juego, sistema con una expresin regular para
line_exclude
.
Para proteger la informacin que se salga de su red, tambin puede excluir las entradas de su origen o
direccin IP de destino y nmero de puerto. Para excluir direcciones IP de origen y destino, agregue
direcciones IP individuales o rangos CIDR en lneas separadas a DShield-source-exclude.lst y DShield-
apuntar-exclude.lst , respectivamente. El DShield-source-exclude.lst archivo ya excluye RFC 1918 privadas
Direcciones IP. Para excluir los puertos de origen y destino, agregue los puertos individuales o rangos (por ejemplo,
21-25
) A
DShield-source-port-exclude.lst y DShield-target-port-exclude.lst , respectivamente.
Adems, para evitar las vulnerabilidades de su red se revele a un tercero, se le
probablemente desee establecer el
Obfus
variable para
Y
. Esto har que el script de presentacin para sustituir 10 por
el primer octeto de la meta de las direcciones IP de los registros con el n de ocultar ellos. Sin embargo, esto se
evitar que los registros de ser utilizados en remontada.
Una vez que haya terminado de editar el chero de conguracin, aada una entrada al crontab del usuario DShield para funcionar
peridicamente (una vez al da funciona bien). Por ejemplo, esta entrada har que se ejecute cada da a las 11:59
PM:
23 59 *** cd / home / DShield / bin; \
. / Iptables.pl> / home / DShield / bin / iptables_debug.txt
Hay algunas otras opciones que se pueden congurar, pero este truco ha cubierto los ms importantes. La
dshield.cnf archivo est completamente comentado, as que es bastante fcil de averiguar qu hacer. Si desea comprobar para arriba
en las estadsticas que se han generado, vaya a
http://www.dshield.org/reports.php
.
Pgina 239
Hack # 74. Analizar en busca de virus en sus servidores Unix
Utilice ClamAV para identicar los archivos infectados en Unix.
Tradicionalmente, las preocupaciones de antivirus han sido una idea de ltimo momento en el mundo Unix. Despus de todo, de Unix
mquinas no tienen la historia de ser atacados por malware que Windows PC (o Mac, a un
en menor medida) han disfrutado. Sin embargo, con el uso generalizado de sistemas heterogneos, que hace
sentido para echar un vistazo a antivirus Unix se acerca a una nueva luz. Mientras que los servidores Unix puede que no
ellos mismos ser objetivo o afectados por virus, los atacantes pueden intentar utilizarlos para propagar el malware
a equipos de la red.
Un paquete de software que le permite escanear en busca de virus bajo Unix es ClamAV (
http://www.clamav.net
).
ClamAV es especialmente til en servidores Samba y en los servidores de correo electrnico, donde se puede analizar el correo
accesorios para cargas tiles de virus y bloquearlos antes de que golpeen la bandeja de entrada de un usuario. Y lo mejor de todo es que es gratis!
Instalacin de ClamAV
Para empezar a utilizar ClamAV, primero tendr que crear un usuario y grupo para ejecutar el programa bajo (por ejemplo,
_clamav ). A continuacin, descargue el archivo fuente, descomprimirlo, cambie al directorio que se crea, y correr
. / Congure
. Si desea utilizar ClamAV para escanear el correo electrnico, usted puede agregar el
- Enable-milter
opcin,
que se basa clamav-milter para que usted pueda atar con Sendmail.
Una vez que la conguracin de la escritura termina de ejecutar, ejecutar el habitual
hacer
comando y, a continuacin, en Ejecutar
make install
como root. A continuacin, tendrs que actualizar la base de rmas de virus de ClamAV editando
/ Usr / local / etc / freshclam.conf .
Busque las siguientes dos lneas:
# Comentario o eliminar la lnea de abajo.
Ejemplo
Simplemente comentar la
Ejemplo
lnea y ejecutar
freshclam
. La ltima lnea da salida debera ser similar a
la siguiente, lo que conrma que las rmas se han actualizado:
Base de datos actualizada (60.082 rmas) desde database.clamav.net (IP: 199.239.233.95)
Ahora, usted puede probar ClamAV ejecutando la versin autnoma de lnea de comandos escner clamscan . El ClamAV
rbol de cdigo fuente contiene algunos archivos que ClamAV reconocer como malware, por lo que tratar de escanearlo:
# clamscan-r-l scan.txt.
. / Preguntas: OK
. / Etc / Makele.am: OK
. / Etc / Makele.in: OK
. / Etc / clamd.conf: OK
. / Etc / freshclam.conf: OK
. / Etc / Makele: OK
. / FALLOS: OK
. / NOTICIAS: OK
. / TODO: Archivo vaco
./docs/man/sigtool.1: OK
./docs/man/clamscan.1: OK
./docs/man/clamdscan.1: OK
./docs/man/freshclam.1: OK
./docs/man/freshclam.conf.5.in: OK
./docs/man/clamd.conf.5: OK
...
. / Test / clam.cab: ClamAV-Test-File ENCONTRADO
. / Test / clam.exe: ClamAV-Test-File ENCONTRADO
. / Test / clam.rar: ClamAV-Test-File ENCONTRADO
Pgina 240
. / Test / clam.zip: ClamAV-Test-File ENCONTRADO
./test/clam.exe.bz2: ENCONTRADO ClamAV-Test-File
----------- SCAN RESUMEN -----------
Virus conocidos: 60082
Versin del motor: 0.88.2
Directorios escaneados: 45
Archivos escaneados: 757
Los archivos infectados: 5
Los datos escaneados: 13.19 MB
Tiempo: 33.362 seg (0 m 33 s)
Ahora, echa un vistazo a scan.txt :
# scan.txt gato
--------------------------------------
Ha iniciado el anlisis: Sun 25 de junio 2006 21:43:00
. / Test / clam.cab: ClamAV-Test-File ENCONTRADO
. / Test / clam.exe: ClamAV-Test-File ENCONTRADO
. / Test / clam.rar: ClamAV-Test-File ENCONTRADO
. / Test / clam.zip: ClamAV-Test-File ENCONTRADO
./test/clam.exe.bz2: ENCONTRADO ClamAV-Test-File
- Resumen -
Virus conocidos: 60082
Versin del motor: 0.88.2
Directorios escaneados: 45
Archivos escaneados: 757
Los archivos infectados: 5
Los datos escaneados: 13.19 MB
Tiempo: 33.362 seg (0 m 33 s)
Como se puede ver, tanto el clamscan produccin y el contenido de scan.txt muestran los mismos cinco infectados
archivos. Sin embargo, scan.txt slo muestra los archivos infectados y un resumen de la exploracin, mientras que el estado de
cada archivo escaneado se muestra en la clamscan salida.
Conguracin clamd
Para sacar el demonio de ClamAV ( clamd ) de trabajo, primero hay que quitar o comentar la
Ejemplo
lnea de / usr / local / etc / clamd.conf , tal como lo hizo con el freshclam.conf archivo. Entonces usted tendr que
decirle clamd para correr como el usuario que ha creado anteriormente, utilizando el
Usuario
opcin. Aada una lnea como esta:
_clamav Usuario
Hay muchas otras opciones de conguracin que puede cambiar aqu, y el archivo de conguracin es totalmente
documentado con comentarios para hacer la eleccin de las opciones correctas fcil. Una conguracin notable
opcin es
LogSyslog
, Lo que provoca clamd para registrar cualquier tipo de virus que se detectan a travs de syslog .
Para habilitar el registro a travs de syslog , simplemente busque la opcin y quite l. Por defecto, clamd utiliza el
local6 instalacin, pero puede cambiar esto con la
LogFacility
opcin. Echa un vistazo a la syslog
pgina de manual para encontrar otras syslog instalaciones que se pueden utilizar.
Una vez que haya terminado de editar el chero de conguracin, inicie clamd ; solo teclear
clamd
debera funcionar. Si
habilitado el registro a travs de syslog , debera ver algo como lo siguiente en sus registros:
25 de junio 22:29:12 clamd electrnico [15819]: Demonio iniciado.
25 de junio 22:29:12 clamd electrnico [15819]: clamd daemon 0.88.2 (OS: freebsd5.4, ARCH: i386, CPU:
i386)
25 de junio 22:29:12 clamd electrnico [15819]: Iniciar tamao de archivo limitado a 1.048.576 bytes.
Pgina 241
25 de junio 22:29:12 electrnico clamd [15819]: Lectura de las bases de datos desde / usr / local / share / clamav
25 de junio 22:29:16 clamd electrnico [15819]: Proteccin contra 60.082 virus.
25 de junio 22:29:16 electrnico clamd [15828]: archivo de socket Unix / tmp / clamd
25 de junio 22:29:16 electrnico clamd [15828]: Ajuste de conexin longitud de la cola de 15
25 de junio 22:29:16 electrnico clamd [15828]: Archivo: lmite de tamao de archivo Archivado establece en 10.485.760
bytes.
25 de junio 22:29:16 clamd electrnico [15828]: Archivo: lmite de nivel de recursividad establece en 8.
25 de junio 22:29:16 clamd electrnico [15828]: Archivo: Lmite de Archivos estableci en 1000.
25 de junio 22:29:16 clamd electrnico [15828]: Archivo: Relacin de compresin lmite establecido en 250.
25 de junio 22:29:16 clamd electrnico [15828]: Soporte Archivo habilitado.
25 de junio 22:29:16 clamd electrnico [15828]: Archivo: RAR apoyo desactivado.
25 de junio 22:29:16 clamd electrnico [15828]: apoyo Portable Executable habilitado.
25 de junio 22:29:16 clamd electrnico [15828]: Los archivos de correo soportan habilitado.
25 de junio 22:29:16 clamd electrnico [15828]: apoyo OLE2 habilitado.
25 de junio 22:29:16 clamd electrnico [15828]: compatibilidad con HTML habilitado.
25 de junio 22:29:16 clamd electrnico [15828]: Comprobacin del uno mismo cada 1800 segundos.
Ahora, intente ejecutar el mismo ciclo de AV con clamdscan :
# / usr / local / bin / clamdscan-l scan.txt.
/ Usr/home/andrew/clamav-0.88.2/./test/clam.cab: ClamAV-Test-File ENCONTRADO
/ Usr/home/andrew/clamav-0.88.2/./test/clam.exe: ClamAV-Test-File ENCONTRADO
/ Usr/home/andrew/clamav-0.88.2/./test/clam.zip: ENCONTRADO ClamAV-Test-File
/ Usr/home/andrew/clamav-0.88.2/./test/clam.exe.bz2: ClamAV-Test-File ENCONTRADO
----------- SCAN RESUMEN -----------
Los archivos infectados: 4
Tiempo: 32.749 seg (0 m 32 s)
Revise sus registros. Debera ver los mismos resultados reejados all:
25 de junio 22:29:31 freebsd5-vm1 clamd [15828]: / usr/home/andrew/clamav-0.88.2/./test/clam.cab:
ENCONTRADO ClamAV-Test-File
25 de junio 22:29:31 freebsd5-vm1 clamd [15828]: / usr/home/andrew/clamav-0.88.2/./test/clam.exe:
ENCONTRADO ClamAV-Test-File
25 de junio 22:29:31 freebsd5-vm1 clamd [15828]: / usr/home/andrew/clamav-0.88.2/./test/clam.zip:
ENCONTRADO ClamAV-Test-File
25 de junio 22:29:31 freebsd5-vm1 clamd [15828]: / usr/home/andrew/clamav-
0.88.2/./test/clam.exe.bz2: ENCONTRADO ClamAV-Test-File
Por ltimo, si usted quiere tener el uso Sendmail ClamAV para escanear el correo, tendrs que crear un directorio para
sostener los conectores Unix a travs del cual Sendmail, clamd y clamav-milter comunicaremos:
# mkdir / var / run / clamav
# _clamav chown: _clamav / var / run / clamav
A continuacin, agregue la siguiente lnea a / usr / local / etc / clamd.conf :
LocalSocket / var / run / clamav / clamd.sock
Usted tendr que indicar a sendmail que utilice clamav-milter para ltrar los mensajes a travs de l. Agregue lo siguiente al
Al nal de su sendmail.mc archivo:
INPUT_MAIL_FILTER (\ Qclmilter ', \ QS = local :/ var / run / clamav / clmilter.sock, F =, \
T = S: 4m; R: 4m ')
dene (\ QconfINPUT_MAIL_FILTERS ', \' Qclmilter)
Despus de que hayas hecho esto, reconstruir su sendmail.cf y empezar clamav-milter :
# / usr / local / sbin / clamav-milter-lo / var / run / clamav / clmilter.sock - externo
Ahora, reinicie Sendmail. Usted puede probar rpidamente su nueva Conguracin del anlisis de AV al tratar de enviar la prueba
archivos incluidos con la distribucin ClamAV como archivos adjuntos. Debera ver algo similar a esto
Pgina 242
en sus registros:
26 de junio 00:08:03 freebsd5-vm1 sm-mta [27946]: k5Q6831t027946: Milter agregar: Cabecera: X-Virus-
Escaneada: ClamAV versin 0.88.2, versin clamav-milter 0.88.2 en freebsd5-vm1.nnc
26 de junio 00:08:03 freebsd5-vm1 sm-mta [27946]: k5Q6831t027946: Milter agregar: Cabecera: X-Virus-
Estado: No escaneada
26 de junio 00:08:03 freebsd5-vm1 sm-mta [27946]: k5Q6831t027946: Milter: datos, rechazan = 451 4.3.2
Por favor, intntelo de nuevo ms tarde
El cliente enva el mensaje ser bloqueado y no podr hacerlo.
Estas son slo algunas de las posibilidades de uso de ClamAV. Por otro uso interesante echar un vistazo a
"Trco de Red Buscar virus" [Hack # 118] , que muestra cmo integrar ClamAV con Snort.
Pgina 243
Hack # 75. Track Vulnerabilidades
Mantenerse al tanto de las ltimas vulnerabilidades que afectan a su red.
Uno de los pasos clave hacia el mantenimiento de cualquier red segura es asegurarse de que todos los sistemas y dispositivos
vinculada a ste se parcheado contra las ltimas vulnerabilidades que se han descubierto. Despus de todo, si usted
pasar todo su tiempo poniendo en prctica una arquitectura de seguridad "caramba", pero estn en peligro debido
a las vulnerabilidades sin parches, que ha estado perdiendo el tiempo.
Hacer un seguimiento de todas las ltimas vulnerabilidades que afectan a sus sistemas y los parches y
soluciones para ellos puede ser muy lento, sobre todo en entornos altamente heterogneos.
Las vulnerabilidades ms devastadores pueden llegar a leer habitualmente los sitios de noticias de informtica, pero la mayora
rara vez se inform sobre. Es posible que el proveedor de un programa en el que se descubri un agujero de seguridad
Le noticaremos si usted tiene un contrato de soporte, pero dnde te dejar si usted no tiene tal
contrato, o si utiliza software de cdigo abierto? Este hack proporciona algunos recursos que pueden ser de ayuda
no slo para los proyectos de cdigo abierto, pero los productos comerciales tambin.
Listas de correo
Las listas de correo son algunos de los recursos ms fciles de usar disponibles. Muchos de los vendedores y los proyectos de cdigo abierto
avisos de seguridad informe y noticaciones de parche en BugTraq
(
http://www.securityfocus.com/archive/1/description
) Y la divulgacin completa
(
http://lists.grok.org.uk/full-disclosure-charter.html
listas de correo).
En BugTraq, los vendedores anuncian pblicamente vulnerabilidades que han sido reportados a ellos por la seguridad
investigadores o han sido descubiertos internamente. Las vulnerabilidades publicadas no suelen tener parches o
soluciones disponibles en el momento del anuncio, as, ya que los propios vendedores son a menudo
los revelar ellos.
Por otra parte, Full-Divulgacin menudo incluye vulnerabilidades publicadas por investigadores independientes
que no han sido capaces de obtener los vendedores a que cooperen con ellos en la jacin de los defectos que han encontrado.
Muchos proyectos de cdigo abierto tambin ofrecen listas de correo para anunciar los temas de seguridad. Compruebe el proyecto
pginas para sus paquetes favoritos de software de cdigo abierto para ver si tienen listas relacionadas con la seguridad, y
suscribirse a ellos.
Por ltimo, el equipo de Estados Unidos Computer Respuesta a Emergencias (CERT EE.UU.) ofrece varias de seguridad-
listas de correo relacionadas (
https://forms.us-cert.gov/maillists/
). Sin embargo, por lo general slo la ms amplia-
vulnerabilidades que llegan se publican all.
Feeds RSS
Adems de las listas de correo, muchos recursos que rastrean las vulnerabilidades ofrecen los canales RSS.
SecurityFocus ( http://www.securityfocus.com ), El sitio que aloja la lista BugTraq, tambin ofrece un canal de RSS
piensos (
http://www.securityfocus.com/rss/vulnerabilities.xml
) Que cuenta con anuncios seleccionados de
la lista y Secunia ofrece un canal RSS (
http://secunia.com/information_partner/anonymous/o.rss
)
que destila la informacin de varias fuentes en un formato coherente.
Otro gran recurso es el Open Source Vulnerability Database (
http://www.osvdb.org
), El cual
ofrece un canal RSS de las vulnerabilidades ms recientes aadidas a la base de datos
(
http://www.osvdb.org/backend/rss.php?n=10
). Sin embargo, ya que el OSVDB busca catlogo histrico
vulnerabilidades, as como las ms actuales, las vulnerabilidades que son varios aos con frecuencia
Pgina 244
aparecer en la alimentacin.
Si usted est interesado en las vulnerabilidades wireless-especcos de la red, puede suscribirse a la Wireless
Vulnerabilidades y el RSS de proyecto Exploits (
http://www.wirelessve.org/entries/rss2/
). A medida que el
nombre indica, este sitio pretende catalogar dispositivos-y vulnerabilidades especcas de aplicaciones inalmbricas
junto con las herramientas que se utilizan para explotarlos. Hay a menudo se superponen con otras bases de datos de vulnerabilidades,
pero el sitio tambin se centra en las vulnerabilidades que afectan a las distintas propios protocolos inalmbricos.
Cassandra
La suscripcin a todos los recursos disponibles puede parecer como beber de una manguera de bomberos de la informacin.
Una herramienta que puede ayudar a detener la inundacin es Cassandra (
https://cassandra.cerias.purdue.edu
), Desde
Proyecto CERIAS la Universidad de Purdue (
http://www.cerias.purdue.edu
).
La belleza de Cassandra es que controla la base de datos de Secunia, as como la National Vulnerability
Base de datos (
http://nvd.nist.gov
), Que tambin ofrece un feed RSS
(
http://nvd.nist.gov/download.cfm # RSS
), y da cuenta de lo nuevo vulnerabilidades se aadieron cada uno
da. Usted puede registrar una cuenta en Cassandra y la entrada de lo que los vendedores y los productos que est
interesado, y Cassandra le enviaremos un correo electrnico cuando se denuncian las vulnerabilidades pertinentes.
Resumen
Cualquier informacin de fuentes que usted decida usar, es de suma importancia que usted mantenga su
los sistemas y los dispositivos conectados a su red hasta al da y libre de vulnerabilidades conocidas.
De no hacerlo, slo hace que sea ms fcil para los atacantes comprometan su empresa. Despus de todo, si se
determinar un cierto paquete de software o dispositivo est en la red, lo nico que tienen que hacer es mirar a lo que
vulnerabilidades han sido publicados por ella y tratar de explotarlas.
Pgina 245
Captulo 7. Seguridad inalmbrica
Hacks 76 - 78
Las redes inalmbricas se han plagado de muchos problemas muy publicitados, ya que se hizo popular en
el nal de la dcada de 1990. Debido a estos problemas y los riesgos que plantean, algunas personas podran argumentar que
que no se deben utilizar en absoluto. Sin embargo, debido a su facilidad de uso y conveniencia, est claro que la conexin inalmbrica
redes estn aqu para quedarse, as que mejor haran todo lo posible para que sean lo ms seguros posible.
Debido a los muchos problemas que han aigido Wired Equivalent Privacy (WEP), cualquier persona que buscan
implementar una red inalmbrica segura debe darse cuenta de que no es una buena solucin. Y, mientras que el pre-
clave compartida (PSK) variedades de WiFi Protected Access (WPA) y WPA2 ofrecen mayor seguridad que
WEP, todava tiene sus problemas. Como veremos en este captulo, la mejor solucin es utilizar WPA o
WPA2 con 802.1x para la autenticacin de grano no para su red inalmbrica. Tambin ver
cmo liberar el potencial de su router inalmbrico o punto de acceso de los productos bsicos (AP) mediante la sustitucin de su
rmware con una distribucin compacta Linux.
Para los usuarios ms de mentalidad de la comunidad que quieran compartir sus redes inalmbricas, este captulo tambin se explica
el uso de los portales cautivos. Mediante el uso de un portal cautivo, puede proporcionar un acceso inalmbrico abierto a la cercana
usuarios, pero todava mantienen cierto control sobre quin puede acceder a su red.
Hack # 76. Convierta sus Routers inalmbricos Commodity en un
Sosticado Security Platform
Actualice su enrutador inalmbrico SOHO en un dispositivo de red sosticada con OpenWRT.
Como los fabricantes de dispositivos de red se han trasladado a reducir los costos y aumentar las ganancias, muchos han tratado de
utilizar las tecnologas de cdigo abierto donde pueden. Esto ha creado un grupo de piratear (en el buen
) los dispositivos de deteccin que pueden ser fcilmente modicados por ajustar sus componentes de cdigo abierto. Una de estas lneas
de los dispositivos es la lnea WRT54G de Linksys de routers inalmbricos de gama baja. Estos dispositivos han demostrado ser tan
popular entre la comunidad de cdigo abierto que se han creado muchas distribuciones de rmware alternativos
para ellos. De hecho, cuando Linksys recientemente hizo cambios a las ltimas revisiones del WRT54G que
impedido que se ejecute Linux, crearon un nuevo modelo para los amantes de las versiones anteriores, el
WRT54GL, que sigui utilizando Linux para su rmware.
Una de las distribuciones de rmware ms exibles disponibles es OpenWRT (
http://openwrt.org
). La
belleza de OpenWRT a diferencia de otros rmwares alternativos es que es un mnimo escueto
sistema con un gran conjunto de paquetes precompilados desde el que se puede escoger y elegir, la instalacin de
lo que sea apropiado a sus necesidades. Por ejemplo, puede utilizar simplemente OpenWRT para monitorear la red inalmbrica
el trco con las mismas herramientas que utilizara con un ordenador porttil basado en Linux. OpenWRT tambin es compatible con una signicativa
nmero de otros routers disponibles de Linksys y otros fabricantes que se han construido en una comn
plataforma de hardware.
TIP
Antes de comenzar la instalacin OpenWRT, asegrate de revisar la ms larga lista de modelos soportados
(Http://wiki.openwrt.org/TableOfHardware). Debido a que cuentan con el apoyo de tantos modelos, este hack cubre slo los ms
comn: el Linksys WRT54G. Modelos soportados deben tener enlaces a las notas de instalacin especcas para ellos.
Para el WRT54G, comience a descargar la imagen del rmware, OpenWRT-WRT54G-jffs2.bin , desde
http://downloads.openwrt.org/whiterussian/newest/bin
. A continuacin, inicie sesin en la web de su router
interfaz de administracin y vaya a la seccin de Administracin. Despus de que se carga, haga clic en el Firmware
Pgina 246
Actualiza enlace y se le presentar con una pgina que le permite subir una imagen de rmware
que el router se vuelva a grabar en s. Seleccione la imagen de rmware que ha descargado y haga clic en el
Botn Actualizar. Usted debe ver una pgina como la que se muestra en la Figura 7-1 .
Una vez que el router ha sido reashed la imagen OpenWRT con, usted debe ver una pgina que le permite saber
que la actualizacin se ha realizado correctamente. El router tambin se reiniciar automticamente una vez que la actualizacin tiene
completado. Despus de que se haya reiniciado, usted debe poder hacer telnet a la direccin IP que tena el router
congurado para utilizar antes de instalar OpenWRT, usando un comando como el siguiente:
$ telnet 192.168.0.4
Tratando 192.168.0.4 ...
Conectado a 192.168.0.4.
Carcter de escape es '^]'.
=== ============================ IMPORTANTES
Use 'passwd' para congurar su contrasea de inicio de sesin
esto desactivar telnet y habilitar SSH
------------------------------------------
BusyBox v1.00 (2006.03.27-00:00 0000) incorporado en la carcasa (cenizas)
Escriba 'help' para obtener una lista de comandos integrados.
_______ ________ __
| |... -----, -----, ----- |. | | |. ---- |. | _
| - | | _ |-__ | | | | | | | _ | | _ |
| _______ | | __ | _____ | __ | __ | | ________ | | __ | | ____ |
| __ | INALMBRICO LIBERTAD
WHITE RUSSIAN (RC5) -------------------------------
* 2 oz Vodka Mezclar el Vodka Kahlua y juntos
* 1 oz Kahlua sobre el hielo, y luego otar la crema o
* 1/2oz leche, crema en la parte superior.
-------------------------------------------------- -
root @ OpenWrt :/ #
Pgina 247
Figura 7-1. Actualizacin de rmware del WRT54G
Cuando se conecte, usted debe ver una bandera como la que se muestra en la salida anterior. La pancarta dice
dos cosas. Si se establece una contrasea para la cuenta de root, el demonio telnet se desactivar y la
Demonio SSH se habilitar, de modo que usted puede conectar a su router de forma segura. La bandera tambin le dice
cmo hacer que un ruso blanco, que es el nombre en clave de esta particular versin de rmware
(White Russian RC5).
Ahora, el tipo
reiniciar
para reiniciar el router y descomprimir el sistema de cheros JFFS2. Despus de que haya terminado de arrancar,
conectarse de nuevo. A continuacin, establezca una contrasea para la cuenta root ejecutando
passwd
, Y reinicie el router todava
de nuevo.
Ahora debera ser capaz de acceder a travs de SSH:
$ root@192.168.0.4 ssh
La autenticidad de acogida '192 .168.0.4 (192.168.0.4) 'no se puede establecer.
RSA huella digital es 26: ed: 7b: ae: 7f: 0d: aa: 63: e8: f4: c1: 6c: b3: 09:08 b: 10.
Est seguro de que desea continuar la conexin (s / no)? s
Advertencia: Permanentemente aadido '192 .168.0.4 '(RSA) a la lista de hosts conocidos.
root@192.168.0.4 's password:
sh: / usr/X11R6/bin/xauth: no encontrado
BusyBox v1.00 (2006.03.27-00:00 0000) incorporado en la carcasa (cenizas)
Escriba 'help' para obtener una lista de comandos integrados.
_______ ________ __
| |... -----, -----, ----- |. | | |. ---- |. | _
| - | | _ |-__ | | | | | | | _ | | _ |
| _______ | | __ | _____ | __ | __ | | ________ | | __ | | ____ |
| __ | INALMBRICO LIBERTAD
Pgina 248
WHITE RUSSIAN (RC5) -------------------------------
* 2 oz Vodka Mezclar el Vodka Kahlua y juntos
* 1 oz Kahlua sobre el hielo, y luego otar la crema o
* 1/2oz leche, crema en la parte superior.
-------------------------------------------------- -
root @ OpenWrt: #
Ahora usted tendr que congurar un servidor DNS para OpenWRT para utilizar cuando la resolucin de nombres DNS. Es posible que
creo que esto es tan sencillo como simplemente editando / etc / resolv.conf , pero este archivo se crea dinmicamente en
arrancar de acuerdo con el contenido de la NVRAM. Por lo tanto, usted tendr que ajustar el
lan_dns
NVRAM
variable. Usted tambin tendr que establecer la puerta de enlace predeterminada (
lan_gateway
):
# nvram set lan_dns = 192.168.0.2
# nvram set lan_gateway = 192.168.0.1
# nvram commit
# reboot
Ahora, volver a iniciar sesin y ejecutar
ipkg actualizacin
:
# actualizacin ipkg
Descarga de http://downloads.openwrt.org/whiterussian/packages/Packages
Lista actualizada de los paquetes disponibles en / usr / lib / ipkg / lists / WhiteRussian
Descarga de http://downloads.openwrt.org/whiterussian/packages/non-free/Packages
Lista actualizada de los paquetes disponibles en / usr / lib / ipkg / lists / non-free
Con xito terminado.
Contactos Este comando los repositorios de paquetes de OpenWRT y actualiza la lista de paquetes que son
disponible para la instalacin. Despus de que haya terminado la actualizacin, puede ejecutar
lista ipkg
para ver todo el
paquetes. Si desea ver las que estn realmente instalados, de ejecutar
ipkg list_installed
en su lugar. A
instalar un paquete, simplemente ejecute
ipkg install <nombre_paquete>
.
Fuera de la caja, la mayora de los parmetros inalmbricos deben transferencia desde el rmware estndar Linksys
para OpenWRT. Sin embargo, si usted est usando WPA-PSK o 802.1X en lugar de WEP (por favor, porque
WEP es terriblemente inseguro), usted tendr que instalar el nas paquete. Despus de que hayas hecho esto y reiniciado,
debera ver la nas funcionamiento binario:
# ps-aux | grep nas
431 root 480 S / Usr / sbin / nas-P / var / run / nas.lan.pid-l br0-H 34954-i eth2-A
-M 132-k XXXXXXXXXXXXXXX
Ahora debera ser capaz de conectarse a su router sin necesidad de recongurar cualquiera de sus clientes inalmbricos.
En el caso que se muestra en este ejemplo, WPA-PSK est siendo utilizado y el
X
s corresponden a la contrasea,
que ahora se establece a travs de la
wl0_wpa_psk
Variable NVRAM. Para obtener ms informacin sobre lo que la NVRAM
las variables que puede utilizar para congurar el router, miren
http://wiki.openwrt.org/OpenWrtDocs/Conguration .
Como hemos visto, hay muchos ms paquetes disponibles para OpenWRT. Por ejemplo, usted puede fcilmente
instalar tcpdump o Kismet travs ipkg . Las posibilidades son casi ilimitadas. Por slo dos ejemplos,
se puede congurar un servidor RADIUS para autenticar a los usuarios inalmbricos [Hack # 77] o gire el router
en un portal cautivo [Hack # 78] .
Pgina 249
Hack # 77. Utilice grano no de autenticacin para Wireless
Red
Utilice RADIUS y 802.1X para ofrecer autenticacin por usuario para sus redes 802.11.
Una de las grandes desventajas de la utilizacin de WPA-PSK o WEP (que no se debe utilizar) para controlar
el acceso a una red inalmbrica es que requieren todos los usuarios vlidos saber la clave de la red. No
slo hace que el cambio de la llave ms difcil, pero tambin te obliga a cambiarlo si alguna vez
tenga que denegar el acceso a un nico usuario. Introduzca 802.1X, un protocolo de autenticacin basada en el puerto originalmente
desarrollado para su uso en redes de rea local Ethernet para controlar el acceso a los puertos fsicos en un switch.
802.1X entr en juego con las redes LAN inalmbricas cuando se comenz a trabajar en el estndar 802.11i, que aade
signicativa para la seguridad cuenta con las redes basadas en 802.11. Sin embargo, los estndares IEEE menudo tardan mucho
tiempo de raticar (que estn diseados por el comit), por lo que la WiFi Alliance, un grupo del sector, adopt
algunas partes de la norma bajo el WiFi Protected Access (WPA) apodo. Una vez 802.11i era
raticado, la designacin de WPA2 se convirti utiliza para denotar el pleno cumplimiento de la norma. Por esta
razn, usted ver a menudo el uso combinado de 802.1X y 802.11 denominado WPA Enterprise o
WPA2 Enterprise.
Para hacer su trabajo, 802.1X utiliza un acceso remoto Dial-In User Service (RADIUS) para proporcionar
autenticacin, autorizacin y contabilidad. Otros componentes en una red controlada por 802.1X
incluir el autenticador y el suplicante. El autenticador es el dispositivo que proporciona el acceso a los
los recursos de la red (por ejemplo, un interruptor o AP). Cuando un dispositivo est conectado a la red, la
autenticador detecta y le pide que se identique. El solicitante es una pieza de software en el
dispositivo que responde de conexin. El autenticador acta como un intermediario entre el
se concede suplicante y el servidor de autenticacin hasta el acceso. Este proceso se rige por el
Protocolo de Autenticacin Extensible (EAP), que, como su nombre indica, permite 802.1X para apoyar
muchos mecanismos de autenticacin diferentes.
De los muchos mecanismos de autenticacin disponibles, dos son ampliamente compatibles con Windows, Mac OS X,
y Linux: EAP / TLS y EAP protegido (PEAP). EAP / TLS hace uso de su infraestructura de PKI y
el protocolo TLS para proporcionar autenticacin. Es decir, usted necesita tener una autoridad de certicacin establecido
y debe generar certicados / pares de claves para el servidor de autenticacin y todos sus clientes.
Muchos administradores de red pueden ver esto como una considerable cantidad de trabajo. Por otra parte,
PEAP requiere un par certicado / clave slo para el servidor. Este truco muestra cmo congurar 802.1X para utilizar
PEAP para la autenticacin.
Implementacin del servidor RADIUS
Lo primero que debe hacer es congurar un servidor RADIUS. Un servidor excelente (y gratuita) es FreeRADIUS
(
http://www.freeradius.org
). Comience por descargar el tarball FreeRADIUS desde el sitio de
pgina de descarga (
http://www.freeradius.org/getting.html
); luego descomprimirlo y el cambio en la
directorio que crea. Construir ejecutando
. / Congure && make
. Despus de que nalice, la raz y convertirse en
ejecutar
make install
.
Ahora, tendr que crear un usuario y un grupo para que se ejecute bajo (algo as como _radiusd ). Despus de que haya
hecho eso, edite el archivo de conguracin FreeRADIUS, radiusd.conf . Si no ha especicado un suplente
prejo de instalacin cuando se ejecuta congure , se debe estar en / / / etc / usr raddb locales .
Usted tendr que indicar que el usuario y el grupo que acaba de crear. Buscar
user = nadie
encontrar un buen
ubicacin en el archivo para hacer esto. A continuacin, aadir un par de lneas similares a las siguientes:
Pgina 250
user = _radiusd
grupo = _radiusd
Ahora, edite el eap.conf archivo en el mismo directorio y busque la siguiente lnea en el
eap
seccin:
default_eap_type = md5
Cmbiela a:
default_eap_type = peap
Si an no tiene una autoridad de certicacin, cree una ahora [Hack # 69] y generar una
certicado / par de claves para el servidor de autenticacin. Tambin debe distribuir su certicado de CA para
sus clientes [Hack # 70] para que puedan vericar que el servidor de autenticacin es legtimo cuando
conectarse a su red inalmbrica.
Una vez que hayas hecho esto, quite la
tls
seccin y congurar todas las variables de certicados para que apunte a
certicado de su servidor, la clave y archivos de certicados CA.
Tambin descomentar las siguientes lneas:
dh_le = $ {} raddbdir / certs / dh
random_le = $ {} raddbdir / certs / random
Ahora, elimine la
peap
seccin y descomentar la siguiente lnea:
# default_eap_type = mschapv2
Ya casi ha terminado de congurar el servidor RADIUS. Lo nico que queda es permitir que el autenticador
para acceder a ella. Para ello, la edicin de clients.conf y aadiendo una entrada similar a la siguiente:
cliente 192.168.0.5 {
secreto = authpass
shortname = OpenWRT-ap
}
donde
secreto
es una contrasea que el autenticador utilizar para acceder al servidor y
shortname
es un corto
nombre descriptivo para el dispositivo. Por supuesto, la contrasea que utiliza para
secreto
debe ser mucho ms largo,
uno de mayor calidad que el ejemplo que se muestra aqu.
Para agregar usuarios a un servidor RADIUS, edite el usuario de archivos y aadir entradas como estas:
andrew usuario Contrasea == "wlanpass"
Despus de que hayas hecho esto, es necesario cambiar el propietario de radiusd 's de registro y ejecutar directorios al usuario
que ha creado:
# chown _radiusd / usr / local / var / log / radio
# chown _radiusd / usr / local / var / run / radiusd
A continuacin, puede empezar a radiusd :
# / usr / local / sbin / radiusd
Conguracin del AP
Si su punto de acceso soporta 802.1X, debe haber una WPA Empresa, WPA2 Enterprise o 802.1X puesta en
la seccin de la interfaz de conguracin del dispositivo en el que usted le indique si desea utilizar WEP,
WPA-PSK, o ningn tipo de autenticacin. Una vez que lo cambie a utilizar 802.1X, tendr que indicar a su AP
la direccin IP de su servidor RADIUS y la contrasea para usar al hablar con l.
Pgina 251
Si ests usando OpenWRT [Hack # 76] , Que es un poco ms complicado e implica el establecimiento de NVRAM
variables. An as, no es muy difcil.
En primer lugar, acceda a su AP usando SSH e introduzca comandos similares a las siguientes:
# set nvram wl0_akm = "WPA WPA2"
# set nvram wl0_crypto = "aes + TKIP"
# set nvram wl0_radius_key = "
authpass
"
# nvram set wl0_radius_ipaddr =
192.168.0.43
# nvram get wl0_radius_port = 1812
# nvram commit
Al ejecutar los comandos anteriores, asegrese de sustituir la direccin IP de su servidor RADIUS
para el valor de
wl0_radius_ipaddr
. Adems, reemplace
authpass
con la contrasea que estableci cuando
congurar FreeRADIUS.
Estos comandos permiten su AP para apoyar WPA y WPA2. Sin embargo, si desea permitir slo
WPA, puede sustituir diferentes valores para
wl0_akm
y
wl0_crypto
:
# set nvram wl0_akm = "WPA"
# set nvram wl0_crypto = "TKIP"
Para WPA2, utilice los siguientes:
# set nvram wl0_akm = "WPA2"
# set nvram wl0_crypto = "aes"
Si usted no tiene la nas paquete est instalado, deber instalarlo ahora:
# ipkg install nas
Esta es la parte del software que va a hablar con los suplicantes y para el servidor de autenticacin.
Despus se ha asegurado de que la nas paquete est instalado y ha congurado las variables NVRAM, reinicie su
AP. Ahora debera ser capaz de acceder a la red inalmbrica mediante el establecimiento de su cliente para utilizar 802.1X con
PEAP y luego entrar en cualquiera de los nombres de usuario y contraseas que se ha entrado en el usuario de archivos.
Ahora, usted puede tener los benecios de una red inalmbrica bien protegido sin el aadido del
distribucin de claves para cada uno de sus usuarios.
Para implementaciones con un gran nmero de usuarios, el simple usuarios archivo de texto puede convertirse en inmanejable.
Afortunadamente, FreeRADIUS es exible en ser capaz de interactuar con muchos de autenticacin diferente
mecanismos, de las cuentas Unix con bases de datos SQL y servidores LDAP. Si usted necesita para interactuar con
cualquiera de esos tipos de sistemas, asegrese de revisar la documentacin de FreeRADIUS.
Pgina 252
Hack # 78. Implementacin de un portal cautivo
Utilice WiFiDog controlar libremente el acceso a su red inalmbrica.
Tener una red inalmbrica segura es importante no slo para la proteccin de su red
infraestructura, sino tambin para asegurar contra de ser responsables de los ataques a otras redes perpetrados a travs de
su propio por los usuarios inalmbricos maliciosos. Esto es fcil si usted est utilizando los mecanismos de autenticacin fuerte,
pero lo que si usted quiere compartir su red inalmbrica con los huspedes y vecinos?
Una forma de hacer esto es utilizar un portal cautivo , lo que le permite llevar un control de quin est usando su
red inalmbrica sin nada parecido a una clave WEP o la contrasea para autenticarse con l. En su lugar, los usuarios
que tratan de acceder a Internet a travs de su red son redirigidos a una pgina web donde se puede
registrarse en una cuenta que est vinculado a una direccin de correo electrnico. Una vez que se registran y reciben su
correos electrnicos de conrmacin, los usuarios pueden activar sus cuentas.
Un portal increblemente exible es WiFiDog (
http://widog.org
), Que consiste en un centro
servidor de autenticacin y un componente de puerta de enlace que se puede implementar en un AP corriendo OpenWRT
[Hack # 76] .
El servidor de autenticacin
Antes de empezar, asegrese de que ha establecido un PostgreSQL (
http://www.postgresql.org
) De base de datos
servidor. Esto no tiene por qu estar en la misma mquina que el servidor web, pero puede ser. Usted necesitar
PHP 5.x (
http://www.php.net
) Instalado en su servidor web tambin.
Despus de que has conocido a estas dos condiciones, puede instalar el servidor de autenticacin. Comience comprobando
el cdigo fuente desde el repositorio Subversion del proyecto:
$ svn checkout https://dev.widog.org/svn/trunk/widog-auth
Una vez que la caja haya terminado, cambie al directorio que cre y mover el contenido de la
widog directorio junto con el sql del directorio a un rea en su servidor web capaz de ejecutar PHP
scripts.
Despus de que hayas hecho esto, vaya a la direccin URL que corresponde a donde poner los archivos. Usted debe ver a un
pgina similar a la Figura 7-2 .
Pgina 253
Figura 7-2. El asistente de instalacin del servidor de autenticacin
Siga las instrucciones de la pgina para crear la base de datos PostgreSQL. Despus de crear la
base de datos y un usuario para acceder a ella, haga clic en Siguiente. A n de continuar, usted tendr que introducir la contrasea
que se encuentra en / tmp / dog_cookie.txt en su servidor web. Despus de la siguiente pgina se haya cargado, debera ver
algo similar a la Figura 7-3 .
Pgina 254
Figura 7-3. Estatuto de los paquetes de software de requisito previo
Instalar los requisitos previos con el error que aparecen junto a ellos, y actualiza la pgina. La desaparecida
requisitos previos deben ahora tener bien al lado de ellos.
TIP
Puede que tenga que reiniciar el servidor web para que los cambios surtan efecto.
El resto del proceso de instalacin es bastante sencillo. El asistente se asegurar de directorio
permisos son correctos, le permiten instalar automticamente los paquetes opcionales de software y congurar
acceso a la base de datos que ha creado. Adems, se le pedir que cree un administrador
cuenta.
Una vez que hayas completado todos los pasos del asistente de instalacin, se puede navegar a la autenticacin
La pgina principal del servidor, se muestra en la Figura 7-4 .
Pgina 255
Figura 7-4. La pgina principal del servidor de autenticacin
Aqu, usted puede iniciar sesin con su cuenta de administrador y congurar todos los aspectos de sus portales. Pero
en primer lugar, vamos a congurar el componente de puerta de enlace.
Instalacin de la puerta de enlace
Instalacin del componente de puerta de enlace es muy fcil, gracias a la disponibilidad de paquetes pre-compilados para
OpenWRT. Inicie sesin en su AP basado en OpenWRT, descargue el paquete de gateway WiFiDog
http://www.ilesansl.org/dist/widog/bin/openwrt/
, Y
ejecute los siguientes comandos:
# cd / tmp
# wget http://www.ilesansl.org/dist/widog/bin/openwrt/whiterussian-
rc3/widog_1.1.3_beta2-1_mipsel.ipk
A continuacin, instalarlo:
# ipkg install widog_1.1.3_beta2-1_mipsel.ipk
Este comando tambin descarga los paquetes que falten que WiFiDog depende. Asegrese de que usted tambin
tienen la libgcc paquete instalado:
# ipkg list_installed | grep gcc
Biblioteca de ayuda de GCC - libgcc - 3.4.4-8
Si usted no obtiene algn resultado del comando anterior, se puede instalar el libgcc paquete ejecutando
ipkg install libgcc
.
Ahora, edite / etc / widog.conf , siguiendo las instrucciones del archivo. Como mnimo, usted necesitar
decirle dnde encontrar el servidor de autenticacin que haya congurado. Usted puede hacer esto con un
AuthServer
declaracin, de este modo:
AuthServer {
Spek.nnc Hostname
Sendero /
}
Una vez que haya terminado de editar el chero de conguracin, reinicie el AP. Despus de que termine de arrancar,
Pgina 256
asociar un cliente inalmbrico con ella y tratar de navegar a un sitio web. Usted debe ser automticamente
redirigido a una pgina que se parece a la gura 7-5 , en la pgina de inicio de sesin del servidor de autenticacin.
Figura 7-5. La pgina de inicio de sesin
Si inicia sesin con tu cuenta de administrador, se le dar acceso a Internet y el resto de la
red. Tambin puede crear una cuenta de usuario normal hace clic en el botn Crear cuenta gratis. Si
decidimos hacer esto, usted ver una pgina como la Figura 7-6 .
Pgina 257
Figura 7-6. Creacin de una cuenta de usuario
Una vez que haya rellenado y enviado el formulario, se le dar acceso durante un corto perodo de tiempo, por lo que
usted puede consultar su correo electrnico para el mensaje de validacin. Al comprobar su correo electrnico, usted debe recibir
un mensaje que se parece a esto:
Hola,
Por favor, siga el siguiente enlace para validar tu cuenta.
http://spek.nnc/validate.php?
user_id = b1ffadf3826c1a6ad1fdb494f212a419 y token = 949baa02b3b3921bc4bd949c6f963400
Gracias,
El Equipo.
Ir a la URL en el correo electrnico y la cuenta se le dar acceso sin lmite de tiempo.
Casi todos los aspectos de WiFiDog es congurable. Asegrese de iniciar sesin en el servidor de autenticacin con
la cuenta de administrador y echar un vistazo a todas las opciones disponibles para usted. La interfaz de usuario es
amigable y fcil de usar.
Pgina 258
Captulo 8. Logging
Hacks 79 - 86
Mantener registros es un aspecto importante de mantener la seguridad de su red, ya que los registros pueden
ayudar en todo desde que le alerta de un ataque inminente a la depuracin de problemas de red. Despus
se ha producido un incidente, buenos registros pueden ayudar a rastrear cmo el atacante entr, jar la seguridad
agujero, y averiguar lo que se vieron afectados mquinas. Adems, los registros pueden ayudar con la localizacin del ataque
de nuevo a su fuente, para que pueda identicar o emprender acciones legales contra el intruso. En resumen, los archivos de registro se
vale su peso en oro (slo pretenden que los bits y bytes pesan mucho). Como tal, se les debe dar
al menos tanta proteccin como cualquier otra informacin que se almacena en sus servidores-incluso la patente
esquemas para su mquina de movimiento perpetuo.
Este captulo trata sobre todo con varias formas de congurar el registro remoto, ya sea que la creacin de un
Central sencilla syslogd para sus servidores para conectarse a, la conguracin de los equipos de Windows para registrar los eventos de
su syslog servidor o utilizando syslog-ng para recopilar registros desde sitios remotos a travs de un TCP cifrada
conexin. El uso de estos mtodos, puede asegurarse de que sus registros estn sentados de manera segura en un servidor dedicado
que se est ejecutando los servicios mnimos, para disminuir la posibilidad de que los registros se vern comprometidos.
Una vez que haya todos los registros recogidos en un lugar central, qu se puede hacer con ellos? En este captulo tambin
abarca formas de resumir sus registros en informes que son fciles de leer y entender, por lo que puede
detectar rpidamente la informacin ms pertinente. Si eso no es lo sucientemente rpido para usted, usted tambin aprender cmo
congurar alertas en tiempo real que le noticaremos tan pronto como se produce un evento crtico. En algunas circunstancias,
responder inmediatamente a un evento en lugar de esperar a que se termine en un informe que
leer los prximos maana-puede ahorrar horas de esfuerzo.
Por ltimo, ver cmo congurar un sistema de deteccin de intrusiones en el host (IDS) que se esfuerza al mximo por lo que
que usted no tenga que hacerlo; se har un seguimiento de sus registros, correlacionar eventos y responder a ellos de forma automtica.
Hack # 79. Ejecutar un servidor Syslog central
Mantener a salvo de los atacantes los registros almacenndolos de forma remota.
Cmo se puede averiguar cundo o si un intruso ha logrado entrar en uno de sus sistemas? Al marcar
sus registros, por supuesto. Pero lo que si el intruso modica los registros? En esta situacin, el registro centralizado
denitivamente salva el da. Despus de todo, si una mquina se ve comprometida, pero la evidencia de registro no se mantiene en esa
mquina, que va a ser mucho ms difcil para el atacante para cubrir sus huellas. Adems de
que proporciona un nivel adicional de proteccin, que es mucho ms fcil de controlar los registros de toda una red de
mquinas cuando estn todos en un mismo lugar.
Para congurar una central de syslog servidor rpidamente, tan slo comience su syslogd con el interruptor que hace que se escuche
para los mensajes de las mquinas remotas en un puerto UDP.
Bajo Linux, hacerlo especicando la
-R
opcin de lnea de comandos:
# / usr / sbin / syslogd-m 0-r
En FreeBSD, ejecute syslogd sin el
-S
opcin de lnea de comandos:
# / usr / sbin / syslogd
La
-S
opcin hace de FreeBSD syslogd que no escucha para las conexiones remotas. De FreeBSD syslogd tambin
le permite restringir los hosts de los que recibir los mensajes. Para establecer estas restricciones, utilice la
-
Pgina 259
un
opcin, que tiene las siguientes formas:
ipaddr / mscara [: servicio]
dominio [: servicio]
* dominio [: servicio]
La primera forma permite especicar una direccin IP o grupo de direcciones IP mediante el uso de la
mscara de red apropiado. La
servicio
opcin le permite especicar un puerto UDP de origen. Si nada es
especicados, por defecto el puerto 514, que es el valor predeterminado para el syslog servicio. Permiten que los prximos dos formas
restringir el acceso a un nombre de dominio especco, segn lo determinado por una bsqueda inversa de la direccin IP
del host que se conecta. La diferencia entre las segunda y tercera formas es el uso de la
*
comodn
carcter, que especica que todos los equipos que terminan en
dominio
puede conectarse.
Cambiando de tema, OpenBSD utiliza el
-U
opcin para escuchar conexiones remotas:
# / usr / sbin / syslogd-a / var / empty / dev / log-u
mientras que de Solaris syslogd usos
-T
:
# / usr / sbin / syslogd-T
Ahora, vamos a congurar los clientes. Si desea reenviar todo el trco de la tala de una mquina a su centro
iniciar antrin, en pocas palabras lo siguiente en su chero / etc / syslog.conf archivo:
*. * @ Loghost
Usted puede hacer esto la nica lnea en el archivo de conguracin, en la que se registrarn los mensajes de caso
slo al host remoto, o aadirlo a lo que ya est ah, en el que los registros de casos se almacenarn tanto
forma local y remota para su custodia.
Uno de los inconvenientes para el registro remoto es que el stock de syslogd para la mayora de sistemas operativos no proporciona
cualquier medida de autenticacin o de control de acceso con respecto a quin puede escribir en un host de registro central.
Los cortafuegos pueden proporcionar cierta proteccin, mantener alejados a todos, pero los que estn ms decididos a
minar su infraestructura de registro; Sin embargo, los intrusos que ya han tenido acceso a su
red local puede suplantar fcilmente sus conexiones de red y de derivacin cualquier regla de rewall que ha congurado.
Si usted ha determinado que esto es una preocupacin para la red, congurar el registro remoto mediante clave pblica
autenticacin y conexiones cifradas SSL [Hack # 84] .
Pgina 260
Hack # 80. Steer Syslog
Hacer el trabajo ms duro syslog, y pasar menos tiempo mirando a travs de los archivos de registro de gran tamao.
El valor predeterminado syslog instalacin en muchas distribuciones no hace un muy buen trabajo de ltrado de las clases de
informacin en archivos separados. Si usted ve una maraa de mensajes de Sendmail, sudo , BIND, y otra
servicios del sistema en / var / log / messages , probablemente debera revisar su / etc / syslog.conf archivo.
Syslog puede ltrar en una serie de instalaciones y prioridades, incluyendo
auth
,
auth-priv
,
cron
,
demonio
,
kern
,
lpr
,
correo
,
noticias
,
syslog
,
usuario
,
uucp
, Y
local0
a travs de
local7
. Adems, cada instalacin puede tener uno
de las ocho prioridades:
depurar
,
info
,
aviso
,
advertencia
,
errar
,
crit
,
alerta
, Y
emerg
.
Tenga en cuenta que la mayora de aplicaciones de decidir por s mismos lo que las instalaciones y la prioridad para iniciar la sesin en el (aunque el
mejores aplicaciones le permiten elegir), por lo que no pueden ser registrados como espera. He aqu una muestra de / etc / syslog.conf
que los intentos de mezclar todo lo que se registra en donde:
auth.warning / Var / log / auth
mail.err / Var / log / maillog
kern. * / Var / log / kernel
cron.crit / Var / log / cron
* Err;. Mail.none / Var / log / syslog
. * Informacin; auth.none; mail.none / Var / log / messages
# *. = Debug / Var / log / debug
local0.info / Var / log / cluster
local1.err / Var / log / spamerica
Todas las lneas en este ejemplo ingrese la prioridad especicada (o superior) al archivo correspondiente. El especial
prioridad
ninguno
dice syslog no molestar a registrar la instalacin especicada en absoluto. La
local0
a travs de
local7
instalaciones se suministran para funcionar con sus propios programas, sin embargo le parezca. Por ejemplo, la
/ Var / log / spamerica archivo se llena de local1.err (o ms) los mensajes que se generan por nuestro spam
trabajo de procesamiento. Es bueno tener esos mensajes se separan del registro de entrega de correo estndar (que es
en / var / log / maillog ).
El comentado
*. = Debug
lnea es til para depurar los servicios endemoniada. Le dice a syslog para
conectarse especcamente slo
depurar
mensajes de prioridad de cualquier instalacin, y por lo general no debe estar funcionando
(A menos que no te importe el surtido de sus discos con los registros de depuracin).
Otro mtodo consiste en registrar informacin de depuracin a un FIFO. De esta manera, los registros de depuracin no ocupan espacio, pero
desaparecern a menos que un proceso est mirando el FIFO. Para conectarse a una FIFO, primero debe crearla en el
sistema de archivos:
# mkfo-m 0664 / var / log / debug
Luego, quite la
depurar
line en syslog.conf y modicarlo para incluir un
|
, As:
*. = Debug | / Var / log / debug
Ahora, la informacin de depuracin ser constantemente conectado a la FIFO y se puede ver con un comando
como
menos-f / var / log / debug
.
Un FIFO tambin es til si usted quiere un proceso de ver constantemente todos los mensajes del sistema y tal vez
le noticar por correo electrnico acerca de los mensajes crticos. Trate de hacer una FIFO llamado / var / log / del monitor y
aadiendo una regla como esta a su syslog.conf :
*. * | / Var / log / monitor de
Pgina 261
Ahora, cada mensaje (en cada prioridad) se pasa al archivo / var / log / monitor FIFO, y cualquier proceso de
viendo que puede reaccionar en consecuencia, todo sin ocupar espacio en disco.
Si usted nota un montn de lneas como la siguiente en / var / log / messages , puede que se pregunte por qu
que estn ah:
29 de diciembre 18:33:35 catlin - MARCA -
29 de diciembre 18:53:35 catlin - MARCA -
29 de diciembre 19:13:35 catlin - MARCA -
29 de diciembre 19:33:35 catlin - MARCA -
29 de diciembre 19:53:35 catlin - MARCA -
29 de diciembre 20:13:35 catlin - MARCA -
29 de diciembre 20:33:35 catlin - MARCA -
29 de diciembre 20:53:35 catlin - MARCA -
29 de diciembre 21:13:35 catlin - MARCA -
stas son generadas por la funcionalidad de marca de syslog , como una manera de "tocar base" con el sistema,
de modo que usted puede (tericamente) decir si syslog ha muerto inesperadamente. En general, esto slo sirve para llenar
los archivos de registro, ya menos que usted est teniendo problemas con el syslog , es probable que no lo necesitan. Para activar
esta funcin, pase el
-M 0
cambiar a syslogd (despus primero matar a los que ejecutan syslogd procesos),
de esta manera:
# killall syslogd; / Usr / sbin / syslogd-m 0
Si todo esto de tocar el violn alrededor con instalaciones y prioridades que le llama la arcana jerga Unix, no ests
solo. Estos ejemplos se proporcionan con sistemas que incluyen el valor por defecto (y venerable) syslogd . Si
usted tiene la oportunidad de instalar un nuevo syslogd , es probable que desee ver en syslog-ng . Este
nueva implementacin de syslogd permite el ltrado mucho ms exible y ofrece una gran cantidad de nuevas caractersticas.
"Registros de agregado desde sitios remotos" [Hack # 84] echa un vistazo a algunos de lo que es posible con syslog-
ng .
Rob Flickenger
Pgina 262
Hack # 81. Integrar Windows en su infraestructura de Syslog
Lleve un registro de todos sus hosts de Windows la forma en Unix.
Controlar a todos los registros de eventos para todos los hosts de Windows puede ser bastante difcil, pero lo que es an ms
difcil si sus propensiones que predisponen a Unix. Despus de todo, los sistemas Unix mantener sus registros en la llanura-
archivos de texto que son fcilmente investigable con comandos comunes del shell. Este es un mundo aparte de la
registros binarios que Windows mantiene en su registro de eventos.
No sera agradable si usted podra tener sus mquinas Windows funcionar ms como mquinas Unix?
Afortunadamente, no eres el primero en pensar en eso. NTsyslog (
http://ntsyslog.sourceforge.net
) Es un
servicio de libre disposicin por escrito para Windows 2000 y XP que le permite acceder a una distancia syslogd .
Para Windows Server 2003, puede utilizar EventLog para Syslog
(
https://engineering.purdue.edu/ECN/Resources/Documents/UNIX/evtsys/
).
Usando NTsyslog
Para congurar NTsyslog, slo tiene que descargar y descomprimir el archivo ZIP disponible en
http://sourceforge.net/projects/ntsyslog/
Y ejecute el programa de instalacin (por ejemplo, SetupNTSyslog-
1.13.exe ).
Para comprobar que se ha instalado, abra el applet del panel de Herramientas de Administracin de Control y haga doble clic
el icono Servicios. A continuacin, desplcese vuelta y buscar el servicio NTsyslog. Debera ver algo
similar a la Figura 8-1 .
Figura 8-1. El applet del panel de control de Servicios con el servicio NTsyslog muestra
Por defecto, NTsyslog instala para ejecutarse bajo la cuenta del sistema local, que tiene acceso completo
a los recursos de la mquina local. Esto obviamente no es la conguracin ptima, ya que el NTsyslog
servicio necesita tener acceso al registro de sucesos y nada ms. Puede cambiar el valor por defecto haciendo doble clic
Pgina 263
la lnea NTsyslog en el applet del panel de control de Servicios, como se muestra en la Figura 8-1 , Que trae a colacin el
Dilogo Propiedades para el servicio.
Sin embargo, antes de hacer esto, es posible que desee crear una cuenta especcamente para el NTsyslog
servicio que slo tiene los privilegios necesarios para NTsyslog se ejecute correctamente. Para ello, vaya de nuevo a la
Herramientas administrativas ventana y haga doble clic en el icono Administracin de equipos. Despus de hacer clic en el
Usuarios y grupos locales icono, debera ver algo similar a la Figura 8-2 .
Figura 8-2. El applet de panel de control de administracin de equipos con la carpeta Usuarios se muestra
Haga clic en los usuarios de la carpeta y haga clic en Nuevo usuario para que aparezca un cuadro de dilogo donde se puede introducir el
informacin para el nuevo usuario. Escriba una informacin similar a la mostrada en la Figura 8-3 , Y asegrese de que
tienes que elegir una contrasea segura.
Figura 8-3. Creacin de un nuevo usuario para NTsyslog
Pgina 264
Ahora, usted necesita dar a su nuevo usuario los derechos que necesita para hacer su trabajo. Haga doble clic en la seguridad local
Poltica de icono en la ventana Herramientas administrativas. Elija la Directivas locales carpeta en el panel izquierdo de
la ventana Conguracin de seguridad local, y haga doble clic en la asignacin de derechos de carpeta en el
panel derecho de la ventana. Ahora debera ver algo similar a la Figura 8-4 .
Figura 8-4. Visualizacin de la conguracin de derechos de usuario asignaciones en el applet del panel de conguracin de seguridad local de control
El derecho de acceso al que ests buscando es "Administrar auditora y seguridad." Haga doble clic en el
Poltica de lista para que aparezca un cuadro de dilogo como el que se muestra en la Figura 8-5 .
Pgina 265
Figura 8-5. Ajustes del "Administrar registros de auditora y seguridad" derecho de usuario
Haga clic en el botn Agregar, seleccione el nombre del usuario de la lista y, a continuacin, haga clic en Aceptar.
Ahora tiene la cuenta y ha dado los derechos de acceso adecuados, por lo que vuelve a los Servicios
ventana y haga doble clic en el servicio NTsyslog para abrir su cuadro de dilogo Propiedades. Haga clic en la cha Iniciar sesin
para abrir el dilogo que se muestra en la Figura 8-6 .
Figura 8-6. La cha Inicio de sesin para el dilogo Propiedades del servicio NTsyslog
Haga clic en el botn de opcin "Esta cuenta" para activar el botn Examinar .... Ahora, haga clic en el botn Examinar ...
y localizar y seleccionar la cuenta que ha creado. Luego haga clic en el botn OK. Ahora debe ver la
nombre de la cuenta en el cuadro de texto a la derecha del botn de opcin "Esta cuenta". Introduzca la contrasea que
establecido para la cuenta y confrmela.
Despus de hacer clic en el botn Aplicar, un nuevo cuadro de dilogo conrmar que el en registro como un servicio tiene derecho
ha concedido a la cuenta. Haga clic en el botn Aceptar y, a continuacin, vaya a la cha General en las propiedades
dilogo. Para iniciar el servicio como el nuevo usuario que ha creado, haga clic en el botn Inicio. Si se produce un error
dilogo, tendr que cambiar la ACL para el ntsyslog.exe archivo y agregue Leer y ejecutar
permisos para la cuenta nueva.
Ahora, vamos a usar el programa de conguracin incluido para congurar los ajustes particulares a NTsyslog.
Usted puede usar esto para crear una primaria y secundaria syslogd para enviar mensajes a, as como para especicar
los tipos de eventos del registro de eventos para enviar y sus asignaciones a syslog instalaciones y niveles de gravedad. Usted puede
tambin iniciar y detener el servicio NTsyslog desde esta pantalla. Para utilizar el programa de conguracin, ejecute
NTSyslogCtrl.exe . Usted debe ver una ventana como la que se muestra en la Figura 8-7 .
Pgina 266
Figura 8-7. El programa de conguracin NTsyslog
Para iniciar el servicio, haga clic en el botn Inicio de servicio; para detener el servicio, haga clic en el botn Detener servicio.
Al hacer clic en el botn de Syslog Demonios abre el dilogo se muestra en la Figura 8-8 .
Figura 8-8. Especicacin de un servidor syslog principal y de respaldo
De nuevo, esto es bastante sencillo. Slo hay que poner en el husped que desea registrar a, y, si tiene una
secundaria syslog de acogida, puesto que, en el campo correspondiente.
La parte ms difcil de la conguracin es la creacin de las asignaciones de los tipos de entrada de registro de eventos para
el syslog instalaciones y niveles de gravedad, pero incluso esto es bastante fcil. En la lista desplegable (se muestra en la
Figura 8-7 ), se puede seleccionar entre la aplicacin, seguridad y sistema de registros de eventos. Para congurar
uno, simplemente seleccinela y haga clic en el botn de EventLog. Si selecciona el registro de seguridad y haga clic en el
Botn EventLog, debera ver algo similar a la Figura 8-9 .
Pgina 267
Figura 8-9. Entradas de asignacin de seguridad del registro de eventos en las instalaciones de registro del sistema y la gravedad
Para habilitar el reenvo de un tipo particular de evento, haga clic en la casilla junto a l. Usando el men
abajo listboxes, tambin puede congurar la instalacin y las asignaciones de severidad para cada tipo. Dado que este es
el registro de seguridad, probablemente debera elegir una de las / auth seguridad syslog instalaciones. Para la gravedad,
elegir algo que suena similar al tipo de registro de eventos. Por ejemplo, he seleccionado
(4) security/auth1
y
(6) la informacin
para el tipo de informacin para el registro de eventos de seguridad.
Alternativamente, usted puede seleccionar una instalacin y la gravedad que no se utilizan en cualquiera de los servidores Unix, y
haga que su syslogd registra todos los eventos de Windows en un archivo comn separada de los registros de Unix. O, si
est utilizando syslog-ng [Hack # 84] , puede utilizar cualquier instalacin que desea y ltrar su Windows
hosts por direccin IP.
Cuando haya terminado, trate de entrar y salir varias veces utilizando una contrasea incorrecta, para que pueda
ver que todo funciona.
Si es as, usted debe ver mensajes de error de inicio de sesin similar a esto:
29 de octubre 17:19:04 seguridad saqueo [fracaso] 529 NT AUTHORITY \ \ SYSTEM Falta de la conexin:
Motivo: nombre de usuario desconocido o contrasea incorrecta Nombre de usuario: andrew Dominio: SAQUEO Logon Tipo: 2
Proceso de inicio de sesin: User32 Paquete de autenticacin: Negotiate Nombre de estacin de trabajo: SAQUEO
El uso de EventLog para Syslog
Si est utilizando Windows 2003, NTsyslog podra parecer a trabajar, pero en realidad se va a enviar varias veces el
mismos mensajes de registro a su syslog servidor. Si ese es el caso, puede utilizar Eventlog de Syslog para rellenar
para NTsyslog. Conguracin de Registro de sucesos para Syslog implica la descarga de los ejecutables pre-compilados a partir de su
pgina del proyecto, extraerlos de su archivo ZIP, y luego copiar evtsys.dll y evtsys.exe a su
% Systemroot% \ system32 del directorio (por ejemplo, C: \ WINDOWS \ system32 ). A continuacin, abra un smbolo del sistema y
ejecute un comando similar al siguiente:
C:> WINDOWS \ system32 \ evtsys-i-h 192.168.0.43
Reemplace la direccin IP con la direccin IP de su syslog servidor. Mientras que usted tiene el smbolo del sistema
ventana abierta, a continuacin, puede iniciar el servicio ejecutando
evtsys net start
. A medida que comienza, usted debe ver
entradas similares a estos en su syslog server:
06 de mayo 20:01:37 192.168.0.204 Eventlog al servicio Syslog Comienza: Version 3.4.1
06 de mayo 20:01:43 192.168.0.204 Servicio de Control Manager: Administrador: El Registro de sucesos para
Servicio Syslog fue enviado satisfactoriamente un control iniciar.
Pgina 268
06 de mayo 20:01:43 192.168.0.204 Service Manager Control: N / A: El Registro de sucesos para Syslog servicio
entr en estado Activo.
Al igual que con NTsyslog, puede crear una cuenta que tenga acceso slo a los registros de eventos y tienen Eventlog
Syslog para correr con sus privilegios. Desafortunadamente, a diferencia NTsyslog, EventLog para Syslog no permitir que
para especicar qu instalaciones de registro y los niveles para su uso.
Ahora que usted tiene sus registros de Windows van a un host de registro de Unix, puede utilizar la riqueza de exibilidad
Herramientas de registro de monitoreo de Unix para vigilar a todos los sistemas Windows.
Pgina 269
Hack # 82. Resuma sus registros de forma automtica
Wade a travs de ese pajar de registros para encontrar la proverbial aguja.
Si usted est acumulando casi cada pieza de informacin que pueda de todos los servicios y hosts de su
red, sin duda te ests ahogando en un mar de informacin. Una manera de mantenerse al tanto de los problemas reales
afectando sus sistemas es resumiendo sus registros. Esto es fcil con el logwatch herramienta
(
http://www.logwatch.org
).
logwatch
analiza el sistema registra durante un perodo de tiempo determinado y genera automticamente informes,
y fcilmente se puede ejecutar desde cron para que usted puede enviar por correo electrnico los resultados. logwatch est disponible con la mayora
Distribuciones de Red Hat Linux. Tambin puede descargar los paquetes RPM desde el sitio web del proyecto si
estn usando otra distribucin de Linux basada en RPM.
Para compilar
logwatch
desde las fuentes, descargue el paquete de cdigo fuente. Dado que es un guin, no existe
Necesitar compilar nada. Por lo tanto, la instalacin es tan simple como copiar la logwatch script a un directorio.
Puede instalarlo ejecutando los siguientes comandos:
# tar xfz logwatch-5.0.tar.gz
# cd logwatch-5.0
# mkdir / etc / log.d
# cp-R conf guiones lib / etc / log.d
Tambin puede instalar la pgina de manual y, para mayor comodidad, cree un enlace desde el logwatch.pl
script / usr / sbin / logwatch :
# cp logwatch.8 / usr/share/man/man8
# (cd / usr / sbin
&& \
ln-s .. /.. / etc / log.d / scripts / logwatch.pl logwatch)
Al ejecutar el comando siguiente le dar una idea de los resmenes logwatch crea:
# logwatch - print | less
# # # # # # # # # # # # # # # # # # # LogWatch 4.3.1 (01/13/03) # # # # # # # # # # # # # # # # # # # #
Procesamiento Iniciado: sb 27 de diciembre 2003 21:12:26
Intervalo de fechas Procesado: ayer
Nivel de detalle de la salida: 0
Archivos de registro para Host: coloso
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
--------------------- SSHD Begin ------------------------
Los usuarios iniciar sesiones a travs sshd:
andrew conectado desde kryten.nnc (192.168.0.60) using password: 2 Hora (s)
---------------------- SSHD End -------------------------
# # # # # # # # # # # # # # # # # # # # # # Fin # LogWatch # # # # # # # # # # # # # # # # # # # # # # # #
Si usted tiene un / etc / cron.daily directorio, slo tiene que hacer un enlace simblico desde el logwatch.pl
script / etc / cron.daily / logwatch.pl , y el script se ejecutar todos los das. Como alternativa, puede crear una
entrada en crontab de root, en cuyo caso tambin se puede modicar el comportamiento de logwatch pasndolo
modicadores de la lnea de comandos. Por ejemplo, puede cambiar la direccin de correo electrnico que logwatch enva informes a
mediante el uso de la
- Mailto
opcin de lnea de comandos. Ellos son enviados a la cuenta local de root por defecto, lo que
Probablemente no es lo que quieres.
logwatch
soporta archivos de registro ms estndar sin necesidad de conguracin adicional, pero usted puede agregar fcilmente
Pgina 270
soporte para cualquier otro tipo de archivo de registro. Para ello, primero tiene que crear una conguracin de grupo de archivos de registro
para el nuevo tipo de archivo en / etc / log.d / conf / archivos de registro . Este archivo slo debe contener una entrada que seala
logwatch al archivo de registro para el servicio y otra entrada especicando un patrn de englobamiento por cualquier
archivado los archivos de registro para ese servicio.
Por ejemplo, si usted tiene un servicio llamado myservice , puede crear
/ Etc / log.d / conf / archivos de registro / myservice.conf con estos contenidos:
Logle = / var / log / myservice
Archivo = / var / log / myservice. *
Despus, usted necesita para crear un archivo de denicin de servicio. Esto debera ser llamado
/ Etc / log.d / conf / services / myservice.conf y debe contener la siguiente lnea:
Logle = myservice
Finalmente, puesto que logwatch es simplemente un marco para generar resmenes de archivos de registro, usted tambin tendr que
crear un script en / etc / log.d / scripts / servicios denominado myservice . Cuando logwatch se ejecuta, se tira todo
entradas de tiempo de los registros y pasar el resto de la entrada de registro a travs de la entrada estndar a la myservice
guin. Por lo tanto, usted debe escribir su guin para leer de la entrada estndar, analizar la pertinente
informacin e imprima en la salida estndar.
Este truco slo roza la supercie de cmo llegar logwatch ejecutando en el sistema. Hay una gran
cantidad de informacin en el HOWTO-Make-Filter, que se incluye con el logwatch distribucin.
Pgina 271
Hack # 83. Supervise los registros de forma automtica
Utilice el muestrario para alertarle de posibles problemas a medida que ocurren.
Resmenes de archivos de registro generados automticamente estn muy bien para estar al da de lo que ocurre con
sus sistemas y redes, pero si usted quiere saber acerca de eventos a medida que ocurren, usted tendr que buscar
en otro lugar. Una herramienta que puede ayudarle a mantenerse informado en tiempo real es muestra
(
http://swatch.sourceforge.net
), El "vigilante simple."
Swatch es un monitor de archivo de registro altamente congurable que se puede ver un archivo para disparadores denidos por el usuario y
alertas de despacho en una variedad de maneras. Consiste en un programa de Perl, un archivo de conguracin, y una biblioteca de
acciones a tomar cuando se ve un disparador en el archivo que est monitoreando.
Instalacin de muestra
Para instalar swatch , descargue el paquete, descomprimirlo, y entrar en el directorio que crea. A continuacin, ejecute
estos comandos:
# perl Makele.PL
# make && make install
Antes de muestras se basar, usted tendr que instalar el
Fecha :: Calc
,
Date :: Parse
, Y
Tiempo :: HiRes
Perl
Mdulos de CPAN. Si no estn ya instalados, funcionando
perl Makele.PL
producir la siguiente
mensaje de error:
Advertencia: prerrequisito Fecha :: Calc 0 no encontrado.
Advertencia: prerrequisito Date :: Parse 0 no encontrado.
Advertencia: Tiempo prerrequisito :: HiRes 1.12 no encontrado.
Escribir Makele para muestra
Si ya ha instalado los mdulos de CPAN de Perl, slo tiene que ejecutar los siguientes comandos:
# perl-MCPAN-e "Fecha instalar :: Calc"
# perl-MCPAN-e "Fecha instalar :: Parse"
# perl-MCPAN-e "Time :: HiRes"
Por defecto, muestra busca su conguracin en un archivo llamado . swatchrc en el hogar del usuario actual
directorio. Este archivo contiene expresiones regulares para vigilar en el archivo que se est supervisando con
muestra . Si desea utilizar un archivo de conguracin diferente, informe muestra mediante el uso de la
-C
de lnea de comandos
cambiar.
Por ejemplo, para usar / etc / muestra / messages.conf para monitorear / var / log / messages , invocar muestra de la siguiente manera:
# swatch-c / etc / muestra / messages.conf-t / var / log / messages
Sintaxis de conguracin
Aqu est el formato general para las entradas en el chero de conguracin:
observar durante / < regex > /
< action1 >
[ action2]
[ action3]
...
Como alternativa, puede ignorar los mensajes especcos de registro que coincidan con una expresin regular utilizando el
pasar por alto
palabra clave:
Pgina 272
ignorar / < regex > /
Tambin puede especicar varias expresiones regulares separndolos con la tubera (
|
) Carcter.
muestra es muy congurable en trminos de las acciones que puede tomar cuando una cadena coincide con un habitual
expresin. Algunas acciones tiles que se pueden especicar en su swatchrc. archivo son
eco
,
escribir
,
ejecutivo
,
correo
,
tubo
, Y
acelerador
.
La
eco
accin simplemente imprime la lnea correspondiente a la consola; adicionalmente, se puede especicar qu texto
el modo que va a utilizar. Por lo tanto, las lneas se pueden imprimir en la consola como negrita, subrayado, parpadeo, invertida, o
texto en color.
Por ejemplo, si desea imprimir una lnea coincidente en rojo, texto parpadeante, utilice la siguiente accin:
abrir y cerrar de eco, rojo
La
escribir
accin es similar a la
eco
accin, solo que no soporta los modos de texto. Se puede, sin embargo,
escriba la lnea correspondiente al TTY cualquier usuario especicado:
escribir de usuario : user2 : ...
La
ejecutivo
accin permite ejecutar cualquier comando:
ejecutivo < comando >
Puede utilizar el
$ 0
o
$ *
variables para pasar toda la lnea correspondiente al comando que se ejecuta,
o utilizar
$ 1
para pasar el primer campo de la lnea,
$ 2
para el segundo, y as sucesivamente. Por lo tanto, si usted desea pasar slo el
campos segundo y tercero de la lnea correspondiente al comando
mycommand
, Utilice una accin como esta:
ejecutivo " mycommand $ 2 $ 3 "
Adems de la
ejecutivo
accin, muestra puede ejecutar comandos externos con el
tubo
accin. El nico
diferencia es que en lugar de pasar argumentos al comando, muestra ejecutar el comando y
tubo de la lnea correspondiente a la misma. Para utilizar esta accin, slo hay que poner el
tubo
palabra clave seguida por el comando
que desea utilizar.
Por otra parte, para aumentar el rendimiento, puede utilizar el
keep_open
opcin para mantener el tubo a la
programa abierto hasta swatch sale o tiene que realizar una diferente
tubo
accin:
tubera mycommand , keep_open
La
correo
la accin es especialmente til si usted tiene un celular habilitado para correo electrnico o mensajes de texto con capacidad de
telfono o buscapersonas. Cuando se utiliza el
correo
accin, usted puede enumerar tantas direcciones de destinatarios que desee, en
Adems de especicar una lnea de asunto. swatch enviar la lnea que coincide con la expresin regular
estas direcciones con el objeto de congurar.
Esta es la forma general de la
correo
accin:
direcciones de correo electrnico = Direccin : Direccin 2 : ..., subject = mysubject
Cuando se utiliza el
correo
accin, asegrese de escapar de la
@
personajes de las direcciones de correo electrnico (es decir,
@
se convierte en
\ @
). Escapar de espacios en el asunto del correo electrnico tambin.
Un problema con la ejecucin de comandos o el envo de mensajes de correo electrnico cada vez que se produce una cadena especca en un registro
mensaje es que a veces el mismo mensaje de registro puede ser generada una y otra vez rpidamente.
Est claro que si esto llegara a suceder, usted no quiere quedar paginado o por correo electrnico 100 veces dentro de un 10 -
perodo minutos. Para aliviar este problema, muestra proporciona la
acelerador
accin. Esta accin le permite
suprimir un mensaje concreto o cualquier mensaje que coincida con una expresin regular para una
perodo de tiempo especicado.
Pgina 273
La forma general de la
acelerador
accin es:
acelerador h : m : s
La
acelerador
accin del acelerador basado en los contenidos del mensaje por defecto. Si usted desea
estrangular a las acciones basadas en la expresin regular que caus el partido, puede agregar
, Use = regex
a
Al nal de su
acelerador
comunicado.
Swatch es una herramienta increblemente til, pero puede tomar un poco de trabajo para crear un buen swatchrc. archivo. Lo mejor
manera de averiguar lo que debe buscar es examinar los archivos de registro para el comportamiento que desea supervisar
de cerca.
Pgina 274
Hack # 84. Registros agregadas de Sitios Remotos
Integrar los sistemas o redes remotas cierta proximidad y otros en su central de syslog
infraestructura.
El seguimiento de los registros de un sitio remoto o incluso un servidor con ubicacin a menudo puede ser pasado por alto cuando se enfrentan
con la tarea de monitoreo de la actividad de la red local. Usted puede utilizar el tradicional syslog
instalaciones para enviar informacin de registro desde la red o los sistemas de control remoto, pero desde el syslog
daemon utiliza UDP para enviar a sistemas remotos, esto no es una solucin ideal. UDP proporciona ningn
abilidad en sus comunicaciones, por lo que se arriesga a perder la informacin de registro. Adems, la tradicional
syslog daemon no tiene medios para cifrar el trco que se enva, por lo que los registros podran ser visible para
cualquier persona con acceso a las redes de intermediarios entre usted y sus hosts o redes remotas.
Compilacin de syslog-ng
Para solucionar estos problemas, usted tendr que mirar ms all del syslog daemon que viene con su
sistema operativo y encontrar un reemplazo. Una tal sustitucin syslog daemon es syslog-ng
(
http://www.balabit.com/products/syslog_ng/
). syslog-ng es no slo un reemplazo completamente funcional
para la tradicional syslog demonio, sino que tambin aade capacidades de ltrado de mensaje exibles, as como
soporte para el registro en sistemas remotos a travs de TCP (adems del apoyo para la tradicional UDP
protocolo). Con la adicin del soporte TCP, tambin se puede emplear stunnel o ssh para enviar de forma segura el
los registros a travs de redes no seguras.
Usted puede construir syslog-ng ejecutando comandos como los siguientes:
$ tar xfz syslog-ng-1.6.11.tar.gz
$ cd syslog-ng-1.6.11
$ . / congure
$ hacer
Si desea compilar el soporte envolturas TCP, agregue el
- Enable-tcp-wrapper
bandera al congure
guin. Despus de syslog-ng ha terminado de compilar, convertirse en root y ejecute
make install
. Esto instalar el
syslog-ng binario y pginas de manual. Para congurar el daemon, cree el usr / local / local / etc / syslog-ng directorio
y luego crear un syslog-ng.conf archivo para poner en l. Para empezar, puede utilizar uno de la conguracin de ejemplo
archivos en el doc del directorio del syslog-ng distribucin.
Conguracin de syslog-ng
Hay cinco tipos de entradas del archivo de conguracin de syslog-ng , cada uno de los cuales comienza con una especca
palabra clave:
Opciones
La
Opciones
entrada le permite modicar el comportamiento del demonio, como la frecuencia con que el demonio
sincronizar (escritura) a los registros en el disco, si el daemon crear directorios de forma automtica,
y el comportamiento de expansin nombre de host.
fuente
fuente
entradas dicen syslog-ng dnde recoger las entradas del registro. Las fuentes pueden incluir conectores Unix, TCP o
Sockets UDP, archivos o tuberas.
destino
destino
entradas le permiten especicar los posibles lugares para syslog-ng para enviar registros a. Usted puede
Pgina 275
especicar los archivos, tuberas, conectores Unix, TCP o sockets UDP, TTY, o programas.
ltro
Fuentes y destinos se combinan entonces con ltros, que permiten seleccionar syslog instalaciones y
iniciar niveles, usando el
ltro
palabra clave.
log
Por ltimo, todos estos son utilizados juntos en una
log
entrada para denir con precisin dnde est la informacin
conectado.
De este modo, puede especicar arbitrariamente cualquier fuente, seleccionar lo syslog instalaciones y los niveles que quieres de l,
y luego ruta a cualquier destino. Esto es lo que hace que syslog-ng un increblemente potente y exible
herramienta.
Traducir su syslog.conf
Para congurar syslog-ng en el extremo remoto para que pueda reemplazar syslogd en el sistema y enviar trco a un
remoto syslog-ng , primero tendr que traducir su syslog.conf al equivalente
fuente
,
destino
, Y
log
entradas.
Aqu est el syslog.conf para un sistema FreeBSD:
. * Errar; kern.debug; auth.notice; mail.crit / Dev / console
. * Aviso; kern.debug; lpr.info; mail.crit; news.err / var / log / messages
seguridad. * / Var / log / seguridad
auth.info; authpriv.info / Var / log / auth.log
mail.info / Var / log / maillog
lpr.info / Var / log / lpd-yerra
cron. * / Var / log / cron
*. Emerg *
En primer lugar, tendr que congurar un origen. En FreeBSD, / dev / log es un enlace a / var / run / log . La
siguiente
fuente
entrada dice syslog-ng para leer las entradas de este archivo:
src fuente {unix-dgram ("/ var / run / log"); interno (); };
Los usuarios de Linux especican
unix-stream
y / dev / log , as:
src fuente {unix-stream ("/ dev / log"); interno ()};
La
interno ()
entrada es para los mensajes generados por syslog-ng en s. Observe que puede incluir
mltiples fuentes en una
fuente
entrada. Siguiente, incluir
destino
entradas para cada uno de los archivos de registro reales:
consola de destino {archivo ("/ dev / console"); };
mensajes de destino {Archivo ("/ var / log / messages"); };
seguridad de destino {archivo ("/ var / log / seguridad"); };
authlog destino {archivo ("/ var / log / auth.log"); };
destino maillog {archivo ("/ var / log / maillog"); };
destino lpd-yerra {archivo ("/ var / log / lpd-yerra"); };
cron destino {archivo ("/ var / log / cron"); };
deslizamiento destino {archivo ("/ var / log / slip.log"); };
ppp destino {archivo ("/ var / log / Ppp.log"); };
allusers destino {usertty ("*"); };
Adems de estos destinos, tambin desea especicar uno para el registro remoto a otro syslog-
ng proceso. Esto se puede hacer con una lnea similar a esta:
loghost destino {tcp (puerto "192.168.0.2" (5140)); };
El nmero de puerto puede ser cualquier puerto TCP disponible.
Pgina 276
La denicin de los ltros es sencillo. Usted puede simplemente crear uno para cada syslog instalaciones y log
nivel, o puede crear de acuerdo a los utilizados en su syslog.conf . Si hace esto ltimo, se quiere
Slo tiene que especicar un ltro en cada declaracin de registro, pero todava tomar algo de trabajo para crear su
ltros.
Aqu hay algunos ejemplos
ltro
s para los syslog instalaciones:
f_auth ltro {instalacin (auth); };
f_authpriv ltro {instalacin (authpriv); };
f_console ltro {instalacin (consola); };
f_cron ltro {instalacin (cron); };
f_daemon ltro {instalacin (demonio); };
f_ftp ltro {instalacin (ftp); };
f_kern ltro {instalacin (Kern); };
f_lpr ltro {instalacin (lpr); };
f_mail ltro {instalacin (electrnico); };
f_news ltro {instalacin (noticias); };
f_security ltro {instalaciones (seguridad); };
f_user ltro {instalacin (usuario); };
f_uucp ltro {instalacin (uucp); };
y algunos ejemplos de los niveles de registro:
f_emerg ltro {nivel (emergentes); };
f_alert ltro {nivel (. alert. emergentes); };
f_crit ltro {nivel (. crit. emergentes); };
f_err ltro {nivel (. err. emergentes); };
f_warning ltro {nivel (. ADVERTENCIA. emergentes); };
f_notice ltro {nivel (. notice. emergentes); };
f_info ltro {nivel (. info. emergentes); };
f_debug ltro {nivel (. debug. emergentes); };
Ahora, usted puede combinar el
fuentes
con el buen
ltros
y
destinos
dentro de la
log
entradas:
. # * Errar; kern.debug; auth.notice; mail.crit / Dev / console
log {fuente (src); ltrado (f_err); destino (consola); };
log {fuente (src); ltrado (f_kern); ltrado (f_debug); destino (consola); };
log {fuente (src); ltrado (f_auth); ltrado (f_notice); destino (consola); };
log {fuente (src); ltrado (f_mail); ltrado (f_crit); destino (consola); };
. # * Aviso; kern.debug; lpr.info; mail.crit; news.err / Var / log / messages
log {fuente (src); ltrado (f_notice); destino (mensajes); };
log {fuente (src); ltrado (f_kern); ltrado (f_debug); destino (mensajes); };
log {fuente (src); ltro (f_lpr); ltro (f_info); destino (mensajes); };
log {fuente (src); ltrado (f_mail); ltrado (f_crit); destino (mensajes); };
log {fuente (src); ltro (f_news); ltrado (f_err); destino (mensajes); };
# Seguridad. * / Var / log / seguridad
log {fuente (src); ltrado (f_security); destino (seguridad); };
# Auth.info; authpriv.info / Var / log / auth.log
log {fuente (src); ltrado (f_auth); ltro (f_info); destino (authlog); };
log {fuente (src); ltro (f_authpriv); ltro (f_info); destino (authlog); };
# Mail.info / Var / log / maillog
log {fuente (src); ltrado (f_mail); ltro (f_info); destino (maillog); };
# Lpr.info / Var / log / lpd-yerra
log {fuente (src); ltro (f_lpr); ltro (f_info); destino (-lpd errs); };
# Cron. * / Var / log / cron
log {fuente (src); ltrado (f_cron); destino (cron); };
# *. Emerg *
Pgina 277
log {fuente (src); ltro (f_emerg); destino (allusers); };
Puede congurar el equipo que va a recibir los registros de la misma manera como si estuviera
la sustitucin de la actualmente utilizada syslogd .
Para congurar syslog-ng para recibir mensajes desde un host remoto, debe especicar un
fuente
entrada para
que la mquina:
r_src fuente {tcp (ip ("192.168.0.2") puerto (5140)); };
Alternativamente, se puede volcar todos los registros de la mquina remota (s) en los mismos destinos que
que utiliza para sus entradas de registro locales. Esto no es muy recomendable, ya que puede ser una pesadilla para
administrar, pero se puede hacer mediante la inclusin de varios controladores de cdigo en la
fuente
entrada que se utiliza para
sus registros locales:
fuente src {
unix-dgram ("/ var / run / log");
tcp (ip ("192.168.0.2") puerto (5140));
interno ();
};
Ahora, los registros obtenidos de los hosts remotos aparecern en cualquiera de los
destino
s que se combina con
este
fuente
.
Si desea todos los registros de hosts remotos para ir a un archivo separado llamado para cada host en / var / log ,
se puede usar un
destino
entrada como esta:
r_all destino {archivo ("/ var / log / $ HOST"); };
syslog-ng se ampliar el
$ HOST
macro con el nombre de host del sistema que enva registra y crear un archivo de
que lleva su nombre en / var / log . Esto dara lugar a un
log
entrada para usar en este caso:
log {source (r_src); destino (r_all); };
Sin embargo, un mtodo an mejor es volver a crear todas las remotas -syslog ng archivos de registro en el registro central de
servidor. Por ejemplo, una
destino
para el archivo de mensajes de una mquina remota se vera as:
fbsd_messages destino {le ("/ var / log / $ HOST / mensajes"); };
Ntese aqu que la
$ HOST
macro se utiliza en lugar de un nombre de directorio. Si est utilizando un
destino
entrada como sta, asegrese de crear el directorio de antemano, o utilice el
create_dirs ()
opcin:
Opciones {create_dirs (s); };
syslog-ng macros 's son una caracterstica de gran alcance. Por ejemplo, si desea separar los registros por el nombre de host y
da, se puede utilizar un
destino
de esta manera:
fbsd_messages destino {
(".. / var / log / $ HOST / $ YEAR $ MES $ DAY / messages") presentar;
};
Puede combinar la fuente remota con los destinos apropiados para los registros que vienen de la
red, tal como lo hizo al congurar syslog-ng para el registro local; slo tiene que especicar la fuente remota
con el destino y ltros adecuado.
Otra cosa aseada que puedes hacer con syslog-ng es logs por cobrar de un nmero de servidores remotos y luego
enviar todos aquellos a otro -syslog-ng daemon. Usted puede hacer esto mediante la combinacin de una fuente remota y
un destino remoto con un
log
entrada:
log {source (r_src); destino (servidor de registro); };
Desde syslog-ng est utilizando puertos TCP, se puede utilizar cualquier tnel cifrar te gusta para asegurar la
Pgina 278
trco entre los syslog-ng demonios. Usted puede utilizar el reenvo de puerto SSH [Hack # 96] o stunnel
[Hack # 100] para crear un canal cifrado entre cada uno de los servidores. Al limitar conexiones en
el puerto de escucha para incluir slo localhost (usando las reglas del cortafuegos, como en "Firewall con Netlter" [Hack
# 44] o "Firewall con ltrado de paquetes de OpenBSD" [Hack # 45] ), se puede eliminar la posibilidad de
falsas entradas de registro o ataques de denegacin de servicio.
Los registros del servidor proporcionan parte de la informacin ms importante que un administrador del sistema tiene que hacer su
trabajo. El uso de nuevas herramientas y el cifrado fuerte, usted puede mantener su registro de datos valiosos a salvo de indiscretas
ojos.
Pgina 279
Hack # 85. Registrar la actividad del usuario con la contabilidad de procesos
Mantenga un registro de auditora detallada de lo que se est haciendo en sus sistemas.
La contabilidad de procesos le permite mantener registros detallados de todos los comandos de un usuario ejecuta, incluyendo CPU
tiempo y la memoria utilizada. Desde un punto de vista de la seguridad, esto signica que el administrador del sistema puede recoger
informacin sobre lo que corri usuario que mandar y en qu momento. Esta informacin es til no slo
en la evaluacin de un robo o compromiso de root local, sino tambin para detectar comportamientos maliciosos intentado
los usuarios legtimos.
TIP
Recuerde que las intrusiones no siempre vienen desde el exterior.
Para activar la contabilidad de procesos, ejecute los siguientes comandos:
# mkdir / var / cuenta
# touch / var / account / pacct && chmod 660 / var / account / pacct
# / sbin / accton
/ Var / account / pacct
Alternativamente, si est ejecutando Red Hat o SuSE Linux y tenemos el paquete de contabilidad proceso
instalado, puede ejecutar un script de inicio para permitir la contabilidad de procesos. En Red Hat, intente lo siguiente:
# chkcong psacct en
# / sbin / service inicio psacct
En SuSE, utilice los siguientes comandos:
# chkcong ctas en
# / sbin / service inicio ctas
El paquete de contabilidad de procesos ofrece varios programas para hacer uso de los datos que estn siendo registrados. La
ac programa analiza el tiempo de conexin total de los usuarios en el sistema. Al ejecutarlo sin argumentos
imprime el nmero de horas registradas por el usuario actual:
[Andrew andrew @ coloso] $ ac
total 106.23
Si desea mostrar el tiempo de conexin para todos los usuarios que han iniciado sesin en el sistema, utilice el
-P
cambiar:
# AC-p
raz 0.07
Andrs 106.05
total 106.12
La
lastcomm
comando le permite buscar en los registros contables por nombre de usuario, nombre del comando, o terminal:
# lastcomm andrew
ls Andrs ?? 0.01 segundos lun 15 de diciembre 05:58
rpmq Andrs ?? 0.08 segundos lun 15 de diciembre 05:58
sh Andrs ?? 0.03 segundos lun 15 de diciembre 05:44
gunzip Andrs ?? 0.00 segundos lun 15 de diciembre 05:44
# lastcomm esta
esta F Andrs ?? 0.00 segundos lun 15 de diciembre 06:44
esta F raz stdout 0.01 segundos lun 15 de diciembre 05:20
esta F raz stdout 0.00 segundos lun 15 de diciembre 05:20
esta F Andrs ?? 0.00 segundos lun 15 de diciembre 05:19
Pgina 280
Para resumir la informacin contable, se puede utilizar el
sa
comando. Por defecto, se enumeran todas las
comandos que se encuentran en los registros contables y se imprime el nmero de veces que cada uno ha sido
ejecutado:
# sa
14 0.04re 0.03cp 0avio 1297k troff
7 0.03re 0.03cp 0avio 422k lastcomm
2 63.90re 0.01cp 0avio 983K info
14 34.02re 0.01cp 0avio 959K menos
14 0.03re 0.01cp 0avio 1132k cutre
44 0.02re 0.01cp 0avio 432k gunzip
Tambin puede utilizar el
-U
bandera de salida estadsticas por usuario:
# SA-u
raz 0.01 cpu 344k mem 0 io que
raz 0.00 cpu 1094k mem 0 io esta
raz 0.07 cpu 1434k mem 0 io rpmq
Andrs 0.02 cpu 342k mem 0 de id io
Andrs 0.00 cpu 526K mem 0 io esta
Andrs 0.01 cpu 526K mem 0 io esta
Andrs 0.03 cpu 378k mem 0 grep io
Andrs 0.01 cpu 354K mem 0 de id io
Andrs 0.01 cpu 526K mem 0 io esta
Andrs 0.00 cpu 340k mem 0 io hostname
Examine la salida de estos comandos de vez en cuando en busca de actividades sospechosas, tales como el aumento
en uso de la CPU o los comandos que se sabe que se utilizar para la travesura.
Pgina 281
Hack # 86. Centralmente supervise la postura de seguridad de su
Servidores
Utilice OSSEC HIDS para monitorear los registros y la integridad del sistema de archivos de los servidores y correlacionar
eventos.
Asegurar un servidor no termina con el bloqueo hacia abajo. Los servidores deben ser monitoreados constantemente. Mientras
sistemas de deteccin de intrusiones de red tienen un valor incalculable para alertarle sobre posibles ataques contra cualquier
nmero de sistemas de la red, deben realmente slo ser considerados como sistemas de alerta temprana.
En ltima instancia, tendr que supervisar cada uno de sus sistemas con mayor detalle. Esto implica mantener un
ojo en muchas piezas diferentes de informacin para cada sistema, ver multitudes de diferente registro
archivos en busca de evidencia de los ataques, y la inspeccin de los binarios importantes para los signos de manipulacin.
Aunque se puede usar una variedad de herramientas para registros agregados de mltiples sistemas [Hack # 79] ,
alerta automtica en ciertas cadenas [Hack # 83] , y compruebe que los archivos modicados [Hack N 122] y
rootkits [Hack # 124] , Estas herramientas carecen de integracin y, al nal, se convierten en slo ms cosas que necesitan
ser monitoreados.
Afortunadamente, una herramienta puede realizar todas estas tareas y ms: OSSEC HIDS (
http://www.ossec.net
).
Esto conduce a una especie de sinergia que no es alcanzable con los sistemas de seguimiento separadas sin
trabajo de integracin adicional. Por ejemplo, OSSEC puede correlacionar eventos a travs de los diferentes archivos de registro para
activar alertas especializadas. Tambin puede desplegar OSSEC en una arquitectura cliente / servidor y de fcil escalarlo
para supervisar los servidores adicionales a medida que se agregan a su infraestructura. Y OSSEC est disponible tanto para
Los sistemas Windows y Unix, lo que le permite controlar la integridad de todos sus sistemas con un
una sola herramienta.
Instalacin
Primeros pasos con OSSEC es fcil. Para instalarlo, descargue el archivo tar desde el sitio web OSSEC HIDS
y descomprimirlo. A continuacin, cambie al directorio que se ha creado (por ejemplo, ossec-hids-0.8 ) y ejecutar el
install.sh guin. Despus de estar preguntando qu idioma usar para la instalacin, ver un mensaje similar
esto:
1 - Qu tipo de instalacin desea (servidor, agente local o ayuda)?
Si desea instalar OSSEC en un solo equipo, seleccione
local
. Por supuesto, si usted desea congurar
un cliente OSSEC o un servidor, elija
agente
o
servidor
, Respectivamente.
Despus de elegir el tipo de instalacin a realizar, el script le preguntar dnde instalarlo y
dnde enviar alertas de correo electrnico. En este punto, usted puede elegir si desea instalar la integridad del sistema
comprobacin y componentes de deteccin de rootkits y si conviene que las respuestas activas. Esta caracterstica
le permite reaccionar a los eventos de forma automtica a medida que ocurren, por lo que puede prevenir las intrusiones de
tener xito.
Si decide hacer una instalacin local, todo lo que necesitas hacer es congurar OSSEC. Pero antes de que veamos
cmo hacer eso, vamos a ver cmo hacer una instalacin cliente / servidor.
En primer lugar, tendr que realizar una
servidor
instalacin en una mquina. A continuacin, tendr que realizar una
agente
instalar en uno o ms huspedes. Al seleccionar un
agente
instalar, obtendr este mensaje adicional:
3.1-Cul es la direccin IP del servidor OSSEC HIDS?:
Escriba la direccin IP de la mquina en la que ha realizado la
servidor
instalacin. El resto de la
indicaciones sern las mismas. El proceso que realiza escuchas de los agentes,
remoted-ossec
, Utiliza el puerto UDP 1514, por lo
Pgina 282
asegurarse de que las reglas del cortafuegos le permitir el trco de los agentes lleguen a l.
Agregar agentes
Despus de haber instalado un agente, vaya al sistema en el que haya instalado el servidor y agrega el agente:
# / var / ossec / bin / manage_agents
****************************************
* Administrador de Agent v0.8 OSSEC HIDS. *
* Las siguientes opciones estn disponibles: *
****************************************
(A) dd un agente (A).
Tecla (E) Xtract para un agente (E).
(L) ist ya se ha agregado agentes (L).
(R) emueva un agente (R).
(Q) uit.
Elija sus acciones: A, E, L, R o Q: un
- Adicin de un nuevo agente (use '\'' para volver al men principal).
Por favor, proporcione la siguiente:
* Un nombre para el nuevo agente: spek
* La direccin IP para el nuevo agente: 192.168.0.62
* Una identicacin para el nuevo agente [001]:
Informacin Agente:
ID: 001
Nombre: spek
Direccin IP: 192.168.0.62
? Conrme agregarlo (y / n): y
Alta.
A continuacin, tendrs que extraer la clave que se ha generado para el agente y la importacin en el propio agente,
de modo que pueda comunicarse con el servidor. Para ello, mediante la ejecucin de
manage_agents
nuevo y escribiendo
e
en el indicador:
...
Elija sus acciones: A, E, L, R o Q: e
Agentes disponibles:
ID: 001, Nombre: spek, IP: 192.168.0.62
Proporcione el ID del agente para extraer la clave (o '\'' para dejar de fumar): 1
Agente de informacin clave para '001 'es:
MDAxIHNwZWsgMTkyLjE2OC4wLjYyIDhhNzVmNGY1ZjBmNTIzNzI5NzAzMTRjMTFmNGVlOWZhZDEzY2QxZWY1ODQyZDEyMmFjYjM2
** Pulse ENTER para volver al men principal.
Ahora, vaya a la agente y haga lo siguiente:
# / var / ossec / bin / manage_agents
****************************************
* Administrador de Agent v0.8 OSSEC HIDS. *
* Las siguientes opciones estn disponibles: *
****************************************
Clave (I) mport para el servidor (I).
(Q) uit.
Elija sus acciones: I o Q: i
* Proporcionar la clave generada por el servidor.
* El mejor enfoque consiste en cortar y pegar.
*** OBS: No incluya espacios o nuevas lneas.
Pgina 283
Pegue aqu (o '\'' para dejar de fumar):
MDAxIHNwZWsgMTkyLjE2OC4wLjYyIDhhNzVmNGY1ZjBmNTIzNzI5NzAzMTRjMTFmNGVlOWZ
hZDEzY2QxZWY1ODQyZDEyMmFjYjM2YzVmY2JmYTg5OGM =
Informacin Agente:
ID: 001
Nombre: spek
Direccin IP: 192.168.0.62
? Conrme agregarlo (y / n): y
Alta.
** Pulse ENTER para volver al men principal.
A continuacin, iniciar el servidor:
# / var / ossec / bin / puesta en el control ossec
A partir OSSEC HIDS v0.8 (por Daniel B. Cid) ...
Iniciado ossec-maild ...
Iniciado ossec-execd ...
Iniciado ossec-analysisd ...
Iniciado ossec-logcollector ...
-Remoted ossec Iniciado ...
Iniciado ossec-syscheckd ...
Completado.
Por ltimo, iniciar los agentes:
# / var / ossec / bin / puesta en el control ossec
A partir OSSEC HIDS v0.8 (por Daniel B. Cid) ...
Iniciado ossec-execd ...
Iniciado ossec-AgentD ...
Iniciado ossec-logcollector ...
Iniciado ossec-syscheckd ...
Completado.
Por desgracia, el servidor no proporcionar ninguna indicacin de que el cliente puede o se ha conectado a l hasta
se genera una alerta, por lo que querr probarlo intentando generar una alerta. Por ejemplo, si
est ejecutando un demonio SSH en el sistema de agente, usted podra tratar de ssh para la cuenta root
(Con suerte, de haber conexiones como root deshabilitado, por lo que este ser inocuo). Si ha elegido la opcin predeterminada
ubicacin de instalacin para el servidor, usted debera ser capaz de encontrar las alertas en / var / ossec / logs / alertas .
Las alertas se organizan en directorios por ao y mes con archivos separados para cada da (por ejemplo,
2006/Jun/ossec-alerts-01.log ).
Compruebe el archivo de alertas adecuado, y usted debera ver algo similar a esto:
** Alerta 1149663466.1082:
2006 01 de junio 00:57:46 (spek) 192.168.0.62-> / var / log / messages
Regla: 401 (nivel 5) -> 'error de autenticacin del usuario.'
Src IP: (ninguno)
Usuario: (ninguno)
sshd (pam_unix) [7917]: error de autenticacin; logname = uid = 0 = 0 euid tty = ssh ruser =
rhost = kryten.nnc user = root
** Alerta 1149663468.1362:
2006 01 de junio 00:57:48 (spek) 192.168.0.62-> / var / log / secure
Regla: 1.516 (Nivel 5) -> 'autenticacin SSHD fall.'
Src IP: 192.168.0.60
Usuario: root
sshd [7917]: Error de contrasea para el usuario root desde 192.168.0.60 puerto 64206 ssh2
** Alerta 1149663480.1604: correo
2006 01 de junio 00:58:00 (spek) 192.168.0.62-> / var / log / messages
Pgina 284
Regla: 402 (nivel 10) -> 'El usuario se perdi la contrasea ms de una vez'
Src IP: (ninguno)
Usuario: (ninguno)
sshd (pam_unix) [7917]: 2 ms los errores de autenticacin; logname = uid = 0 = 0 euid tty = ssh ruser =
rhost = kryten.nnc user = root
Usted tambin debera recibir estas alertas a la direccin de correo electrnico especicada en el servidor durante la
proceso de instalacin.
La instalacin de un agente de Windows
La versin para Windows de OSSEC slo admite la instalacin del agente, que se puede congurar con slo
descargar el instalador y ejecutarla. Cuando se inicia, se le preguntar dnde instalar los archivos y
luego ejecutar el manage_agents programa. Aqu, usted puede importar la clave que ha generado para l
la misma manera que lo hizo para la versin Unix del agente. Despus de haber introducido la llave y sali del
programa de gestin de agente, el instalador le presentar el archivo de conguracin OSSEC
ossec.conf , que se almacena en el directorio en el que ha decidido instalar el agente.
Desafortunadamente, el instalador de Windows no est tan automatizado como el Unix instalar guin es, por lo que tendr que
escriba la direccin IP de su servidor OSSEC manualmente. Busque la lnea que tiene este aspecto:
<Server- abcd </ server-ip>
y reemplazar
abcd
con la direccin IP de su servidor. Despus de la instalacin se haya completado, vaya a la
Panel de control del applet Servicios, busque el servicio OSSEC HIDS, y arrancarlo. Mientras ests en ello, se le
probablemente querr tambin congurarlo para que se inicie automticamente al iniciar el sistema.
Ahora usted puede probarlo con un enfoque similar al previamente utilizado para poner a prueba el agente Unix.
Si usted tiene cuenta de inicio de sesin de auditora habilitadas para el sistema, se puede tratar de iniciar sesin en una cuenta con
una contrasea incorrecta, lo que debera crear algo como esto en el archivo de registro actual en su OSSEC
servidor:
** Alerta 1149742916,124085:
2006 02 de junio 23:01:56 (mirlo) 192.168.0.67-> WinEvtLog
Regla: 8.005 (Nivel 4) -> 'evento de fallo de la auditora de Windows. "
Src IP: (ninguno)
Usuario: sistema
WinEvtLog: Seguridad: AUDIT_FAILURE (680): Seguridad: SISTEMA: NT AUTHORITY: BLACKBIRD: Inicio de sesin
intento por: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 Cuenta de inicio de sesin: andrew Fuente
Estacin de trabajo: BLACKBIRD Cdigo de error: 0xC000006A
Conguracin
Archivo de conguracin por defecto de OSSEC est formateado en XML y ubicado en / var / ossec / etc / ossec.conf (en
Windows, este archivo estar en el directorio en el que ha decidido instalar OSSEC). Secciones de
particular inters para los servidores son los
<syscheck>
,
<localle>
,
<alerts>
, Y
<Global>
secciones. La
<syscheck>
seccin dene qu archivos y directorios OSSEC debe comprobar si hay signos de deterioro. La
<frecuencia>
etiqueta especica la frecuencia para realizar la comprobacin:
<frecuencia> 7200 </ frecuencia>
7200 segundos (cada dos horas) es el valor predeterminado. Si utilizas los servicios que estn muy agotador para el
subsistema de disco, puede que desee incrementar este valor, ya que los archivos de suma de control pueden ser bastante de E / S
intensiva.
Especicar los directorios que se consulte con el
<directories>
tag. El valor predeterminado es realizar todos los controles de
los archivos de cada uno de los directorios cerrados dentro de la etiqueta en una lista delimitada por comas. Esto signica que
Pgina 285
OSSEC comparar Suma de control MD5 de cada archivo a los valores anteriores, as como su tamao, propietario, grupo,
y los permisos. Los cheques de archivos de conguracin por defecto en los siguientes directorios:
<directorios check_all="yes"> / etc, / usr / bin, / usr / sbin </ directorios>
<directorios check_all="yes"> / bin, / sbin </ directorios>
Girar cheques individuales o fuera sustituyendo la
check_all
atributo con cualquier combinacin de
check_sum
,
check_size
,
check_owner
,
check_group
, O
check_perm
y estableciendo su valor a ya sea
s
o
no
. Si
desea ignorar un archivo o directorio en particular, encerrarlo entre
<omitir>
tags:
<omitir> / etc / mtab </ ignore>
Cambiando de tema,
<localle>
secciones se utilizan para especicar los archivos de registro para monitorear. Dentro de ellas, se puede utilizar
la
<location>
etiqueta para especicar la ruta completa al archivo de registro. Especicar el formato del archivo con la
<log_format>
tag. Los valores vlidos para el formato son
syslog
,
snort-completo
,
snort-rpido
,
calamar
, O
apache
.
Adems, los usuarios de Windows se encuentra el
iis
y
eventlog
formatos que consideren de especial inters,
porque permiten OSSEC para analizar su IIS y registros de eventos.
Cuando se dispara una alerta, OSSEC asocia un nivel de gravedad con l (de 1 a 16). Puede utilizar el
<alerts>
seccin para establecer el umbral en el que registre una alerta o generar un correo electrnico. Aqu estn los
valores predeterminados para estas opciones:
<alerts>
<log_alert_level> 1 </ log_alert_level>
<email_alert_level> 7 </ email_alert_level>
</ Alertas>
Por ltimo, utilice el
<globals>
seccin para denir diversas opciones que afectan OSSEC en su conjunto. Para
ejemplo, usted puede modicar la conguracin de correo electrnico que el script de instalacin congura para ti en esta seccin.
Aqu es tambin donde se puede utilizar el
<white_list>
etiqueta para especicar los hosts que nunca deben ser bloqueadas
con respuestas activas. Por ejemplo, para asegurarse de que 10.0.0.123 nunca se bloquea, agregue una lnea como sta
al
<globals>
seccin:
<white_list> 10.0.0.123 </ white_list>
Ahora, echemos un vistazo a cmo congurar respuestas activas.
Las respuestas activas
Respuestas activos pueden variar de bloqueo antriones a travs de servidores de seguridad para desactivar automticamente las cuentas de usuario.
Esta es una caracterstica de gran alcance, pero tenga especial cuidado al usarlo. Una respuesta activa que pueda causar a
inadvertidamente DOS s mismo o proporcionar un medio fcil para un atacante para hacerlo. Es por eso que OSSEC
proporciona una funcin de lista blanca, para asegurarse de que las reglas del cortafuegos aadidos dinmicamente no se bloquean conanza
antriones.
Respuestas activos en OSSEC funcionan mediante la vinculacin de un comando a un nivel de alerta y cualquier nmero de identicadores de regla.
La respuesta activa se dispara cuando se genera una alerta para una de las reglas que ha especicado y su
nivel cumple o excede el especicado.
Cuando la creacin de una respuesta activa, primero debe denir el comando para ejecutar y sus parmetros.
Dentro de un
<comando>
bloque, denir un nombre para el comando que se ejecutar cuando el comando es
asociada con una o ms reglas en un
<active-response>
bloque.
He aqu un ejemplo del archivo de conguracin por defecto de OSSEC. Los siguientes bloqueos de mandato fuera un usuario
cuenta que est asociada con una alerta:
<comando>
Pgina 286
<nombre> desactivar la cuenta </ name>
<ejecutable> disable-account.sh </ ejecutable>
usuario <expect> </ esperar>
<timeout_allowed> s </ timeout_allowed>
</ Command>
Ms tarde, puede hacer referencia a este
<comando>
bloquear en una
<active-response>
bloquear, as:
<active-response>
<comando> deshabilitar la cuenta </ command>
<location> locales </ location>
<nivel> 10 </ nivel>
<rules_id> 402 </ rules_id>
<timeout> 900 </ timeout>
</ Respuesta activa>
Esta respuesta har que las cuentas que desencadenan la
'El usuario se perdi la contrasea de ms de un
tiempo "
alertar mostrado anteriormente se bloquee durante 15 minutos. Una cosa a destacar en este ejemplo es la
<location>
tag. Esta etiqueta permite especicar el lugar donde quiere la respuesta que se active. Uso
local
har que la respuesta a ser activado en la mquina que gener la alerta, mientras que
anlisis
servidor
har que se active en el servidor. Alternativamente, puede utilizar
todo
o
agente denido
a
provocar la respuesta que se activar en todos los sistemas o un agente especco, respectivamente. En este ltimo
caso de que tambin tendr que utilizar el
<agent_id>
etiqueta para especicar el agente en el que para desencadenar la respuesta.
Cuando se desencadena una respuesta, una entrada aparecer en / var/ossec/active-response/ossec-hids-
responses.log . Por ejemplo, cuando se activa la respuesta se muestra ms arriba, algo similar a esto
aparecer:
Jue 02 de junio 04:01:31 MDT 2006 .. / active-response/bin/disable-account.sh aadir andrew
Como puede ver, la funcin de respuesta activa de OSSEC puede ser muy poderoso. Usted puede incluso escribir su propia
guiones de respuesta activa, que le da un nmero ilimitado de posibilidades literalmente en forma automtica
reaccionar a los ataques. Esto y muchas otras caractersticas de OSSEC puede ser replicado por la combinacin de otros
herramientas. Sin embargo, OSSEC les ofrece de manera integrada y le ahorra el tiempo dedicado a pegar
juntos con su lenguaje de script favorito de tiempo que puede pasar frente a real
problemas de seguridad.
Vea tambin
El Manual de Uso OSSEC HIDS (
http://www.ossec.net/en/manual.html
)
Pgina 287
Captulo 9. Seguimiento y Tendencias
Hacks 87 - 91
Si bien la importancia de los registros del sistema conable no puede ser sobrestimada, los registros slo cuentan parte de la historia de
lo que est sucediendo en su red. Cuando algo fuera de lo normal ocurre, el evento es debidamente
registran en el archivo correspondiente, donde se espera a un ser humano para darse cuenta y tomar la accin apropiada. Pero
registros son valiosos slo si alguien realmente los lee. Cuando los archivos de registro, simplemente se suman a la avalancha de
informacin que la mayora de los administradores de red deben vadear a travs de cada da, podran ser puestos a un lado
e ir sin leer durante das o semanas. Esta situacin se agrava cuando los archivos de registro estn obstruidos con
informacin irrelevante. Por ejemplo, una llamada de auxilio de un servidor de correo sobrecargado puede ser fcilmente
pierde si est rodeado de entradas inocuas sobre los intentos de spam que han fallado. Con demasiada frecuencia, los registros se utilizan como
un recurso para averiguar lo que pas cuando los sistemas fallan, y no como una gua de lo que est sucediendo
ahora.
Otro aspecto importante de las entradas de registro es que slo proporcionan un "control sobre el terreno" de su sistema en un
momento particular. Sin una historia de lo normal desempeo parece, puede ser difcil decir
la diferencia entre el trco normal de red, un (DoS) ataque de denegacin de servicio, y una visita
de los lectores de Slashdot. Mientras que usted puede construir fcilmente un informe de la cantidad de veces que el / var llena particin
arriba, cmo se puede realizar un seguimiento de lo que el uso normal se parece a lo largo del tiempo? Es la cola de correo obstruye debido a una
usuario desconsiderado, o es parte de un ataque de un adversario? O es simplemente una tendencia general que es la
como resultado de tratar de servir a muchos usuarios en demasiado pequeo de un disco?
Este captulo describe un nmero de mtodos para el seguimiento de la disponibilidad de servicios y recursos
con el tiempo. En lugar de tener que mirar los registros del sistema de forma manual, por lo general es mucho mejor tener la
sistemas que notiquen cuando hay un problema-y slo cuando hay un problema. En este captulo tambin
contiene una serie de sugerencias sobre cmo reconocer las tendencias en el trco de red de monitoreo
ujos y gracar los resultados en grcos. Claro, usted puede ser que sepa lo que su saliente de Internet promedio
el trco se parece, pero cunto de ese trco se compone de HTTP frente peticiones SMTP? Usted puede
sabe ms o menos la cantidad de trco de cada servidor en la red genera, pero lo que si usted quiere romper
el trco por protocolo? Los hacks en este captulo le mostrar cmo.
Hack # 87. Monitorear la disponibilidad
Utilice Nagios para mantener un control sobre su red.
Exploits remotos a menudo puede bloquear el servicio que se rompe en o causar su uso de CPU para
se disparan, por lo que es esencial controlar los servicios que se ejecutan en la red. Slo en busca de
un puerto abierto (usando una herramienta como Nmap [Hack # 66] ) No es suciente. La mquina puede ser capaz de
respondi a una solicitud de conexin TCP, pero el servicio puede ser incapaz de responder (o peor, podra tener
sido sustituido por un programa completamente diferente!). Una herramienta que puede ayudarle a vericar sus servicios a un
mirada es Nagios (
http://www.nagios.org
).
Nagios es una aplicacin de red de monitoreo que controla no slo los servicios que se ejecutan en los hosts
en la red, sino tambin los recursos en cada host, tales como el uso de CPU, espacio en disco, uso de memoria,
los procesos en ejecucin, archivos de registro, y mucho ms. En el advenimiento de un problema, se le puede noticar a travs del correo electrnico, un
buscapersonas, o cualquier otro mtodo que dena, y usted puede comprobar el estado de su red en un glace por
utilizando su interfaz web. Nagios tambin es fcilmente extensible a travs de su API plug-in.
Instalacin de Nagios
Pgina 288
Para instalar Nagios, descargue la distribucin de cdigo fuente de la pgina web de Nagios. Luego, descomprimir la fuente
distribucin y vaya al directorio que crea:
$ tar xfz nagios-1.1.tar.gz
$ nagios-1.1 cd
Crear un usuario y un grupo para Nagios para funcionar como (por ejemplo, nagios ), y ejecute el congure script:
$ . / congure
- With-nagios-user = nagios - with-nagios-grp = nagios
Esto instala en Nagios / / local / nagios usr . Como de costumbre, puede modicar este comportamiento a travs de la
- Prex
cambiar. Despus de la conguracin de la escritura termina, compilar Nagios ejecutando
hacer toda
. Entonces, hgase root
y correr
make install
para instalarlo. Opcionalmente, puede instalar scripts de inicializacin de Nagios ejecutando
hacer init a instalar
.
Si nos jamos en el usr / local / local / nagios directorio en este punto, ver cuatro directorios. La papelera
directorio contiene nagios , que es el ncleo del paquete. Esta aplicacin hace lo real
monitoreo. El sbin directorio contiene los scripts CGI que se utilizarn en la interfaz basada en web.
Dentro de la cuota de directorio, usted encontrar los archivos HTML y la documentacin. Por ltimo, la var directorio es
donde Nagios almacena su informacin una vez que se pone en marcha.
Antes de poder utilizar Nagios, tendr que ejecutar el siguiente comando:
$ make install-cong
Este comando crea un etc directorio poblado con una copia de muestra de cada archivo de conguracin
requerida por Nagios. Vamos a ver cmo congurar los archivos dentro de poco.
La instalacin de Nagios ha nalizado. Sin embargo, no es muy til en su estado actual, porque
carece de las aplicaciones de monitoreo reales. Estas aplicaciones, que comprueban si un particular,
servicio supervisado est funcionando correctamente, son llamados plug-ins . Nagios viene con un conjunto predeterminado de
plug-ins, pero deben ser descargados e instalados por separado.
Instalar plug-ins
Descargue la ltima versin de Nagios Plugins paquete y descomprimirlo. Usted tendr que ejecutar la prevista
congurar script para preparar el paquete para la compilacin en su sistema. Usted encontrar que los plug-ins
estn instalados de una manera similar al programa real de Nagios.
Para compilar los plug-ins, ejecute los siguientes comandos:
$ . / congure - prex = / usr / local / nagios \
- With-nagios-user = nagios - with-nagios-group = nagios
$ marcar
Usted puede obtener noticaciones acerca de que faltan programas o mdulos de Perl, mientras que el script se est ejecutando. Estos
son en su mayora muy bien, a menos que necesite especcamente las aplicaciones mencionadas para controlar un servicio.
Una vez nalizada la compilacin, la raz y ejecutar convertido
make install
para instalar los plug-ins. Los plug-ins
se instalar en el libexec directorio de su directorio base Nagios (por ejemplo, / usr / local / nagios / libexec ).
Hay algunas opciones que todos los plug-ins de Nagios debe implementar, lo que hace que sean adecuadas para su uso por
Nagios. Cada plug-in proporciona una
- Help
opcin que muestra informacin sobre el plug-in y la forma en que
funciona. Esta caracterstica es til cuando usted est tratando de monitorear un nuevo servicio mediante un plug-in que no tiene
Pgina 289
usado antes.
Por ejemplo, para aprender la
check_ssh
plug-in de trabajos, ejecute el siguiente comando:
$ / usr / local / nagios / libexec / check_ssh
check_ssh (nagios-plugins 1.4.3) 1.27
Copyright (c) 1999 Remi Paulmier <remi@sinfomic.fr>
Copyright (c) 2000-2004 Nagios Plugin Development Team
<nagiosplug-devel@lists.sourceforge.net>
Trate de conectarse a un servidor SSH en el servidor y el puerto especicado
Uso: check_ssh [-46] [-t <timeout>] [-r <remote version>] [-p <puerto>] <host>
Opciones:
-H, - help
Imprimir detallada pantalla de ayuda
-V, - version
Informacin de la versin
-H, - hostname = DIRECCIN
Nombre, direccin IP o socket Unix Antrin (debe ser una ruta absoluta)
-P, - port = INTEGER
Nmero de puerto (por defecto: 22)
-4, - Use-ipv4
Usar conexin IPv4
-6, - Use-ipv6
Usar conexin IPv6
-T, - timeout = INTEGER
Segundos antes de los tiempos de conexin hacia fuera (por defecto: 10)
-R, - versin remota = STRING
Advertir si la cadena no coincide con la versin del servidor esperado (por ejemplo: OpenSSH_3.9p1)
-V, - verbose
Mostrar detalles para la depuracin de lnea de comandos (Nagios puede truncar la salida)
Enviar email a nagios-users@lists.sourceforge.net si tiene preguntas
relacionadas con la utilizacin de este software. Para enviar parches o sugerir mejoras,
envelo a la nagiosplug-devel@lists.sourceforge.net
Ahora que tanto Nagios y los plug-ins instalados, ya est casi listo para empezar a servidores de monitoreo.
Sin embargo, Nagios ni siquiera comenzar antes de que est congurado correctamente.
Conguracin de Nagios
Conguracin de Nagios puede ser una tarea ardua, pero los archivos de conguracin de ejemplo proporcionar una buena partida
punto:
$ cd / usr / local / nagios / etc
$ ls -1
bigger.cfg-muestra
cgi.cfg-muestra
checkcommands.cfg-muestra
minimal.cfg-muestra
misccommands.cfg-muestra
nagios.cfg-muestra
resource.cfg-muestra
Como se trata de archivos de ejemplo, los autores de Nagios aadieron una . cfg-muestra sujo a cada archivo. En primer lugar, se le
necesitar copiar o cambiar el nombre de cada uno para terminar en . cfg , por lo que el software puede utilizar de manera adecuada.
TIP
Si usted no cambia las extensiones de archivo, Nagios no ser capaz de encontrar los archivos de conguracin.
Pgina 290
Usted puede cambiar el nombre de cada archivo de forma manual o utilizar el siguiente comando para cuidar de todos a la
una vez:
# for i in * cfg-muestra.; hacer $ mv i \ Qbasename $ i cfg-sample \ Q.cfg.; hecho;
Para obtener Nagios funcionando, debe modicar todos, pero algunos de los archivos de conguracin de ejemplo. En primer lugar, hay
el archivo de conguracin principal, nagios.cfg . Puede dejar casi todo como est aqu; el Nagios
proceso de instalacin se asegurar de que las rutas de archivos utilizados en el chero de conguracin sean correctos. Hay una
opcin, sin embargo, que es posible que desee cambiar:
check_external_commands
, Que se ja para
0
por
predeterminado. Si desea ejecutar comandos directamente a travs de la interfaz web, ponga esto en
1
. Dependiente
en el entorno de red, esto puede o no puede ser un riesgo de seguridad aceptable, ya que permite
esta opcin permite la ejecucin de scripts desde la interfaz web. Otras opciones que necesita para poner en
cgi.cfg congure que se permiten nombres de usuario para ejecutar comandos externos.
Conguracin de Nagios para supervisar los servidores no es tan difcil como parece. Para ayudarle, puede utilizar la
el modo detallado del binario Nagios ejecutando este comando:
# / usr / local / nagios / bin / nagios-v / usr / local / nagios / etc / nagios.cfg locales
Esto va a travs de los archivos de conguracin y los informes de errores. Iniciar la jacin de los errores uno por uno,
ejecutar el comando de nuevo para encontrar el siguiente error.
Adicin de hosts para monitorear
Usted primero necesita agregar su denicin del host y congurar algunas opciones para ese host. Puede aadir
muchos antriones como usted quiera, pero aqu vamos a seguir con uno por el bien de la simplicidad.
Estos son los contenidos de hosts.cfg :
# Plantilla genrica denicin de equipo
denir el sistema principal {
# El nombre de esta plantilla de acogida - que se hace referencia en otras deniciones de equipos,
# Utilizado para la plantilla de la recursividad / resolucin
nombre generic-host
# Noticaciones de host estn activados
notications_enabled 1
# Controlador de eventos Host est activada
event_handler_enabled 1
Deteccin # Flap est habilitado
ap_detection_enabled 1
Datos de rendimiento de proceso #
process_perf_data 1
# Mantener la informacin de estado en los reinicios del programa
retain_status_information 1
# Retener informacin no estado en los reinicios del programa
retain_nonstatus_information 1
# DONT REGISTRAR ESTA DEFINICIN - que no es un verdadero antrin,
# SOLO UNA PLANTILLA!
registrar 0
contact_groups FLCD-admins
}
# Host Denicin
denir el sistema principal {
# Nombre de la plantilla de host para utilizar
utilizar generic-host
nombre_de_equipo freelinuxcd.org
alias Libre de Project Server CD de Linux
Pgina 291
direccin www.freelinuxcd.org
check_command check-host-vivo
max_check_attempts 10
notication_interval 120
notication_period 24x7
notication_options D, U, R
}
Asegrese de quitar las lneas que comienzan con
#
al crear su hosts.cfg ; de lo contrario, recibir
errores.
La primera host denido no es un antrin real, sino una plantilla a partir de la cual se derivan otras deniciones de acogida.
Este mecanismo se utiliza en otros archivos de conguracin, as y hace que la conguracin basada en una
conjunto predenido de valores predeterminados de una brisa.
Con esta conguracin, estamos monitoreando solo host, www.freelinuxcd.org , para ver si est vivo. La
nombre_de_equipo
parmetro es importante porque otros archivos de conguracin se referirn a este servidor por este
nombrar.
Una vez que haya terminado de editar hosts.cfg , elimine la lnea que lo incluye en nagios.cfg :
# Cfg_le = / usr / local / nagios / etc / hosts.cfg
Creacin de grupos de hosts
Ahora que usted tiene una gran cantidad de supervisar, tiene que ser aadido a una
hostgroup
, De manera que la aplicacin
sabe que el contacto de grupo para enviar noticaciones a. Esto es lo hostgroups.cfg parece:
denir hostgroup {
hostgroup_name FLCD servidores
alias Los servidores gratuitos de Proyecto de CD de Linux
contact_groups-admins FLCD
miembros freelinuxcd.org
}
Esto dene un nuevo
hostgroup
y asocia el
FLCD-admins contact_group
con ella. Al igual que con hosts.cfg ,
tendrs que editar nagios.cfg y descomentar la siguiente lnea de incluir su hostgroups.cfg :
# Cfg_le = / usr / local / nagios / etc / hostgroups.cfg
Creacin de contactos y grupos de contactos
Ahora, tendr que denir el
FLCD-admins
grupo de contacto en contactgroups.cfg :
denir contactgroup {
contactgroup_name FLCD-admins
alias FreeLinuxCD.org Administradores
miembros oktay, verty
}
Aqu, la
FLCD-admins contact_group
se dene con dos miembros, oktay y verty . Esta conguracin
asegura que tanto los usuarios sern noticados cuando algo va mal con un servidor que
FLCD-admins
es
responsable de. El siguiente paso es congurar las preferencias de informacin de contacto y noticacin de estos
los usuarios.
Estas son las deniciones de esos dos miembros en contacts.cfg :
denir el contacto {
contact_name oktay
alias Oktay Altunergil
service_notication_period 24x7
host_notication_period 24x7
service_notication_options W, U, C, R
Pgina 292
host_notication_options D, U, R
service_notication_commands notique por correo electrnico, notique por epager
host_notication_commands acoger a noticar por correo electrnico, host-notify-por-epager
email oktay@freelinuxcd.org
buscapersonas dummypagenagios-admin@localhost.localdomain
}
denir el contacto {
contact_name verty
alias David 'Verty' Ky
service_notication_period 24x7
host_notication_period 24x7
service_notication_options W, U, C, R
host_notication_options D, U, R
service_notication_commands notique por correo electrnico, notique por epager
host_notication_commands Aloja a noticar por correo electrnico
email verty@cd.org
}
Adems de proporcionar informacin de contacto para un usuario en particular, la
contact_name
en el contacts.cfg archivo
tambin es utilizado por los scripts CGI (es decir, la interfaz web) para determinar si un usuario en particular es
permitido acceder a un recurso particular.
Conguracin de los servicios de monitor de
Ahora que sus antriones y los contactos estn congurados, usted puede comenzar a congurar la supervisin para el individuo
los servicios en el servidor.
Esto se hace en services.cfg (eliminar los comentarios que al crear el tuyo):
# Plantilla genrica denicin de servicio
dene service {
# El 'nombre' de esta plantilla de servicio, referencia en otras deniciones de servicio
nombre generic-service
# cheques de servicio activos estn habilitados
active_checks_enabled 1
# cheques servicio pasivo se habilitan / aceptadas
passive_checks_enabled 1
# cheques de servicio activas deben ser paralelizados
# (Deshabilitar esto puede dar lugar a importantes problemas de rendimiento)
parallelize_check 1
# Hay que obsesionarse con este servicio (si es necesario)
obsess_over_service 1
# Por defecto es no comprobar el servicio "frescura"
check_freshness 0
# Noticaciones de servicio se activan
notications_enabled 1
Controlador de eventos # servicio est habilitado
event_handler_enabled 1
Deteccin # Flap est habilitado
ap_detection_enabled 1
Datos de rendimiento de proceso #
process_perf_data 1
# Mantener la informacin de estado en los reinicios del programa
retain_status_information 1
# Retener informacin no estado en los reinicios del programa
retain_nonstatus_information 1
# DONT REGISTRAR ESTA DEFINICIN - que no es un verdadero servicio, SOLO UNA PLANTILLA!
registrar 0
}
Denicin # Servicio
dene service {
Pgina 293
# Nombre de la plantilla de servicio a utilizar
utilizar generic-service
nombre_de_equipofreelinuxcd.org
service_description HTTP
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups FLCD-admins
notication_interval 120
24x7 notication_period
notication_options w, u, c, r
check_command check_http
}
Denicin # Servicio
dene service {
# Nombre de la plantilla de servicio a utilizar
utilizar generic-service
nombre_de_equipofreelinuxcd.org
PING service_description
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups FLCD-admins
notication_interval 120
24x7 notication_period
notication_options c, r
check_command check_ping! 100.0,20%! 500.0,60%
}
Esta conguracin establece la supervisin de los dos servicios. La primera denicin de servicio, que ha sido llamado
HTTP
, Controla si el servidor web est en marcha y le avisa si hay un problema. El segundo
denicin monitorea las estadsticas de ping desde el servidor y le notica si el tiempo de respuesta o de paquetes
prdida llega a ser demasiado alta. Los comandos que se utilizan son
check_http
y
check_ping
, Que se instalaron en
la libexec directorio durante la instalacin de plug-in. Por favor, tmese su tiempo para familiarizarse con
todos los otros plug-ins disponibles y congurarlos de manera similar a las deniciones de ejemplo anteriores.
Denicin de perodos de tiempo
Ahora, tendr que denir los perodos de tiempo que usted ha estado utilizando en el
notication_period
directivas mediante la creacin de un timeperiods.cfg archivo. Los ejemplos anteriores utilizan un periodo de tiempo. Aqu hay una
denicin de lo que se puede poner en su timeperiods.cfg :
denir timeperiod {
timeperiod_name 24x7
alias 24x7
domingo 00:00-24:00
lunes 00:00-24:00
martes 00:00-24:00
mircoles 00:00-24:00
jueves 00:00-24:00
viernes 00:00-24:00
sbado 00:00-24:00
}
Ahora, todo lo que tiene que hacer es incluir cada uno de estos archivos dentro de su principal nagios.conf utilizando el
cfg_le
Directiva. La muestra nagios.cfg contiene una directiva para cargar todos los archivos de conguracin
Pgina 294
mencionados aqu, pero estn comentario por defecto. Busque las entradas y descomentar ellos.
Una vez que ests satisfecho con la conguracin, ejecute Nagios con el
-V
cambiar una vez ms para asegurarse de que
todo va bien. A continuacin, ejecutarlo como demonio mediante el
-D
cambiar:
# / usr / local / nagios / bin / nagios-d / usr / local / nagios / etc / nagios.cfg
Despus de que usted haya conseguido Nagios en funcionamiento, coloque el servidor web favorita de Nagios sbin directorio
(Contiene los scripts CGI) y reincielo. Eso es todo lo que hay que hacer. Dale Nagios un par de minutos para
generar algunos datos, y luego dirija su navegador a la mquina y mirar la advertencia servicio bastante
luces.
Pgina 295
Hack # 88. Tendencias grcas
Utilice RRDtool para generar fcilmente los grcos para casi cualquier cosa.
Usted podra estar familiarizado con el uso del ancho de gracar con herramientas como MRTG. A partir de una seguridad
punto de vista, el uso de ancho de banda de grcos es til porque puede ayudar a detectar comportamientos anmalos.
Tener un historial de uso tpico ancho de banda que ofrece una lnea de base a la actividad juez. Esto puede hacer ms
ms fcil determinar si alguien est realizando un ataque DoS en su sitio, o si la mquina en la
red est actuando como Warez depsito.
RRDtool (
http://people.ee.ethz.ch/oetiker/webtools/rrdtool/
) Proporciona una funcionalidad similar a
MRTG, pero es mucho ms exible. RRDtool es bsicamente una herramienta para el almacenamiento de datos en una de propsito general
base de datos que nunca crecer en tamao. RRD representa la base de datos de todos contra todos , que es un tipo especial de
base de datos que mantiene un nmero jo de entradas: la entrada ms antigua constantemente est siendo sustituida por la
nuevos datos. RRDtool tambin tiene la capacidad de generar grcos de los datos contenidos en esta base de datos.
El uso ms comn de RRDtool es hacer grcos bastante ancho de banda, lo que se hace fcilmente con
RRDtool y snmpget , una utilidad que realiza consultas a los dispositivos gestionados con SNMP. En primer lugar, usted tendr que crear
una base de datos de todos contra todos mediante la ejecucin de un comando similar a ste:
$ rrdtool crear zul.rrd - start N \ DS: de0_in: CONTADOR: 600: U: U \ DS: de0_out: CONTADOR: 600: U: U
\ RRA: PROMEDIO: 0.5:1:600 \ RRA: PROMEDIO: 0.5:6:700 \ RRA: PROMEDIO: 0.5:24:775
\ RRA: PROMEDIO: 0.5:288:797 \ RRA: MAX: 0.5:1:600 \ RRA: MAX: 0.5:6:700 \ RRA: MAX: 0.5:24:775
\ RRA: MAX: 0.5:288:797
Este comando crea una base de datos que contiene entradas para los dos contadores independientes:
de0_in
y
de0_out
.
Estas muestras almacenar entradas de estadsticas de la interfaz recogen cada cinco minutos de un daemon SNMP
en un router. Adems, la base de datos contiene varios campos para el mantenimiento automtico de funcionamiento
promedios.
Puede rellenar la base de datos mediante la ejecucin de un comando como este:
$ rrdtool actualizacin zul.rrd N: \ \ public zul Qsnmpget-Oqv
interfaces.ifTable.ifEntry.ifInOctets.4 \ Q: \ public zul \ Qsnmpget-Oqv
interfaces.ifTable.ifEntry.ifOutOctets.4 \ Q
Este comando consulta las estadsticas de entrada y salida para el de0 interfaz en un equipo denominado zul .
Para programarlo para que se ejecute cada cinco minutos, se puede hacer una entrada crontab similar al siguiente:
Actualizacin rrdtool 0-55/5 **** / home / andrew / rrdbs / zul.rrd N: \ public zul Qsnmpget-Oqv
interfaces.ifTable.ifEntry.ifInOctets.4 \ Q: \ public zul Qsnmpget-Oqv
interfaces.ifTable.ifEntry.ifOutOctets.4 \ Q
Sin embargo, puede utilizar cualquier mtodo que desea recopilar los datos. Para generar los grcos por hora de la
datos, puede ejecutar un comando como este:
$ grco rrdtool zul_de0-hourly.png-t "de ancho de banda por hora" - comienzan -3600 \
DEF: inoctets = zul.rrd: de0_in: AVERAGE \
DEF: outoctets = zul.rrd: de0_out: AVERAGE \
REA: inoctets # 00FF00: "de0 En" \
LNEA 1: outoctets # 0000FF: "de0 Out"
Este comando crea una imagen como la que se muestra en la Figura 9-1 .
Pgina 296
Figura 9-1. Un grco generado por RRDtool
La
-3600
en el comando le dice
rrdtool
que desea gracar los datos recogidos durante la ltima hora
(Hay 3.600 segundos en una hora). Del mismo modo, si desea crear un grco en el transcurso de un da,
utilizar
-86,400
.
Pero eso es slo el comienzo. Tras la recogida de mltiples fuentes de datos, puede combinarlos todos en un
nico grco que le da una gran cantidad de informacin de un vistazo. Figura 9-2 muestra la relacin
el uso de salida de varios servidores a la vez, con la media total para todos los servidores justo debajo de l.
Si bien esta cifra es en escala de grises, la grca actual utiliza un color diferente para cada servidor, por lo que es fcil
a saber de un vistazo lo que uno est acaparando todo el ancho de banda.
Figura 9-2. Mltiples servidores en un solo grco
Como puede ver, RRDtool es una herramienta exible. Todo lo que necesitas hacer es decir que la cantidad de datos que desea
almacenar y luego establecer algn mtodo para recopilar los datos en un intervalo regular. Entonces, usted puede fcilmente
generar un grco de los datos siempre que lo desee.
Pgina 297
Hack # 89. Consiga en Tiempo Real Estadsticas de la red
Ver quin est haciendo qu en la red a travs del tiempo con ntop.
Si usted est buscando para las estadsticas de la red en tiempo real, echa un vistazo a la excelente ntop herramienta
(
http://www.ntop.org
), Un analizador de protocolos con todas las funciones con una interfaz web, con SSL y
apoyo de grcas. ntop no es precisamente ligero (la cantidad exacta de recursos que se requieren depende de
el tamao de la red y el volumen de trco de la red), pero se le puede dar una muy buena imagen de la
quin habla a quin en su red.
ntop necesita para funcionar inicialmente como root, a tirar las interfaces en modo promiscuo y empezar a capturar
paquetes, pero luego la libera de sus privilegios a un usuario que se especique. Si decide ejecutar ntop por mucho tiempo
perodos de tiempo, es probable que sea ms feliz corriendo en una caja de monitoreo dedicado (con algunos otros
servicios que se ejecutan en l, por razones de seguridad y de rendimiento).
Aqu hay una referencia rpida sobre cmo conseguir ntop en marcha y funcionando. En primer lugar, crear un ntop de usuarios y grupos:
# groupadd ntop
# useradd-c "usuario ntop"-d / usr / local / etc / ntop-s / bin / true-g ntop ntop
Entonces, desempaquetar y construir ntop segn las instrucciones en docs / BUILD-NTOP.txt . Despus de ntop ha terminado
compilar, instalarlo ejecutando
make install
como root. Durante el proceso de instalacin, un directorio para
ntop para almacenar sus bases de datos en se crear. Si usted no ha utilizado el
- Prex
opcin cuando se ejecuta
congurar , este directorio debe ser / usr / local / var / ntop . Se cre como root durante la instalacin, por lo que
usted tendr que cambiar su dueo al usuario se le ejecuta ntop como para que ntop para poder
escribir en l.
ntop tambin copiar un certicado auto-rmado a / usr / local / etc / ntop / ntop-cert.pem locales como parte de la instalacin
proceso, por lo que se puede acceder de forma segura su interfaz web. Tenga en cuenta que la clave SSL por defecto no ser
Construido con el nombre de host correcto para su servidor, por lo que es probable que desee para generar su propia SSL
certicado y par de claves [Hack # 69] .
Ahora, usted necesita establecer una contrasea de administracin para ser utilizado al congurar ntop a travs de su web
interfaz:
# ntop-A-u ntop
Vie 05 de mayo 2006 22:03:27 NOTA: merge Interface activada por defecto
Vie 05 de mayo 2006 22:03:27 Iniciando bases de datos GDBM
inicio ntop - a la espera de la respuesta del usuario!
Por favor, introduzca la contrasea para el usuario admin:
Por favor, introduzca la contrasea de nuevo:
Vie 05 de mayo 2006 22:03:31 admin contrasea de usuario se ha congurado
Finalmente, ejecute ntop como demonio, e iniciar el servidor SSL en el puerto favorito (4242, por ejemplo):
# ntop-u ntop-W4242-d
Por defecto, ntop tambin dirige un servidor HTTP de serie en el puerto 3000. Usted debera considerar seriamente el bloqueo
por el acceso a estos puertos, ya sea en el servidor de seguridad o mediante el uso de la lnea de comandos iptables reglas [Hack
# 44] .
Deje ntop funcionar durante un rato, y luego conectarse a https://your.server.here:4242/ . Usted puede encontrar todo tipo
de detalles sobre lo que el trco se ha visto en la red, como se muestra en la Figura 9-3 .
Pgina 298
Figura 9-3. Visualizacin de las estadsticas de un host en la interfaz web del ntop
Mientras que las herramientas como tcpdump y Ethereal le dan los anlisis detallados e interactivos de trco de red, ntop
ofrece una gran cantidad de informacin estadstica en una interfaz web muy elegante y fcil de usar. Cundo
correctamente instalado y bloqueado, que probablemente se convierta en una herramienta favorita en su herramienta de anlisis de redes
pecho.
Rob Flickenger
Pgina 299
Hack # 90. Recopilar estadsticas con las reglas del cortafuegos
Haga su conjunto de reglas de rewall haga el trabajo por usted cuando se quiere recoger estadsticas.
Si quieres empezar a recopilar estadsticas sobre el trco de su red, pero temen la creacin de SNMP, no lo hace
tienen que preocuparse. Usted puede utilizar el cdigo del cortafuegos de su sistema operativo para recopilar estadsticas para usted.
Por ejemplo, si usted est usando Linux, puede utilizar
iptables
comandos similar a la siguiente para mantener
pista de ancho de banda consumido por una mquina especial que pasa el trco a travs del rewall:
# iptables-N kryten && iptables-A kryten-j ACCEPT
# iptables-N KRYTEN_IN && iptables-A KRYTEN_IN-j kryten
# iptables-N KRYTEN_OUT && iptables-A KRYTEN_OUT-j kryten
# iptables-A FORWARD-s 192.168.0.60
-J KRYTEN_OUT
# iptables-A FORWARD-d 192.168.0.60-j KRYTEN_IN
Este enfoque aprovecha los contadores de bytes y paquetes asociados con cada
iptables
gobernar para proporcionar
entrada y salida de las estadsticas de ancho de banda para el trco remitidas a travs del rewall. Funciona al primero
la denicin de una cadena llamado
Kryten
, Que lleva el nombre del host en el que se recogern las estadsticas.
Esta cadena contiene una regla de aceptar incondicional, y se utiliza para agregar rpidamente el total
ancho de banda que kryten consume.
Para calcular el ancho de banda descendente kryten est utilizando, otra cadena llamada se crea.
KRYTEN_IN
Del mismo modo, para calcular el ancho de banda de salida kryten est utilizando, una cadena llamada
KRYTEN_OUT
se crea.
Cada una de estas cadenas contiene una sola regla, que salta sin condiciones a la
Kryten
cadena. Este
permite que el ancho de banda de salida que se aade al ancho de banda de entrada de ser consumido. Por ltimo, las normas
se aaden a la
ADELANTE
cadena que dirigen cada paquete a la cadena correcta, dependiendo de si es
procedentes o con destino a Kryten .
Despus de la aplicacin de estas reglas, se puede ver el ancho de banda total (entrante y saliente) consumida por
Kryten ejecutando un comando como ste:
# iptables-vx-L kryten
Kryten Chain (2 referencias)
pkts bytes de destino prot opt in fuera fuente destino
442 46340 ACEPTAR todo - cualquier cualquier en cualquier lugar en cualquier lugar
Usted puede analizar fcilmente la
bytes
campo, y as generar grcos con RRDtool [Hack # 88] , por
usando un comando como el siguiente:
# iptables-vx-L kryten | egrep-v 'Chain | pkts "| awk' {print $ 2} '
Para obtener la cantidad de ancho de banda de entrada o de salida consumida, basta con sustituir
Kryten
con
KRYTEN_IN
o
KRYTEN_OUT
, Respectivamente. Por supuesto, usted no tiene que limitar sus criterios de recopilacin de estadsticas a poco
por equipo ancho de banda. Usted puede recoger estadsticas sobre cualquier cosa que se puede crear una
iptables
norma, entre determinados puertos, direcciones MAC, o casi cualquier otra cosa que pasa a travs de su
puerta de enlace.
Tambin puede hacer algo similar para los sistemas que utilizan Packetlter de OpenBSD [Hack # 45] . Para todos los
regla, PF realiza un seguimiento del nmero de veces que ha sido evaluado, cuntos paquetes han provocado la
regla, cuntos bytes se encontraban en esos paquetes, y cuntos estados se han creado (en el caso de stateful
reglas). El problema est en los datos. Usted puede ver las estadsticas de reglas mediante la ejecucin
pfctl-s de reglas
-Vv
, Pero los datos no estn en una forma fcilmente analizable:
@ 3 inet pase desde 192.168.0.60 a cualquier
Pgina 300
[Evaluaciones: 125 Los paquetes: 60 Bytes: 4976 Unidos: 0 ]
[Insertado: uid 0 pid 15815]
@ 4 inet pase de cualquier a 192.168.0.60
[Evaluaciones: 128 Los paquetes: 65 Bytes: 7748 Unidos: 0 ]
[Insertado: uid 0 pid 15815]
Sin embargo, puede agregar el
etiqueta
palabra clave al nal de cada regla, para que se lean como sigue:
pasar inet de 192.168.0.60 a cualquier etiqueta "KRYTEN_OUT"
pasar inet de cualquier a 192.168.0.60 etiqueta "KRYTEN_IN"
Entonces, usted puede obtener las estadsticas sobre las normas mediante la ejecucin
pfctl-s etiquetas
:
KRYTEN_OUT 175 77 6660 77 6660 0 0
KRYTEN_IN 176 93 1166 8 0 0 93 11 668
No slo son las estadsticas ms fcil de analizar, pero tambin te dan ms de ellos. Los nmeros de arriba, de izquierda a derecha
a derecha, representan el nmero de evaluaciones, los paquetes totales, el total de bytes, paquetes salientes, el total de
bytes salientes, los paquetes entrantes, y los bytes entrantes totales.
Al igual que con
iptables
, Puede obtener estadsticas sobre cualquier cosa por la que puede crear una regla.
Pgina 301
Hack # 91. Huela el ter de forma remota
Controle sus redes de forma remota con rpcapd.
Si alguna vez has tratado de controlar el trco de red de otro segmento utilizando un protocolo grca
analizador tales como etreo (
http://www.ethereal.com
), Usted sabe lo que puede llevar mucho tiempo. En primer lugar,
tienes que capturar los datos. Entonces usted tiene que conseguir que en la estacin de trabajo donde se est ejecutando el
analizador, y entonces usted tiene que cargar el archivo en el propio analizador. Esto crea un problema real
debido a que aumenta el tiempo entre la realizacin de un experimento y ver los resultados, lo que hace
diagnosticar y solucionar problemas de red tardan mucho ms tiempo de lo que debera.
Una herramienta que resuelve este problema es rpcapd , un programa incluido con WinPcap
(
http://winpcap.polito.it
). rpcapd es un demonio que monitoriza las interfaces de red en promiscuo
modo y enva los datos que recoge de nuevo a un sniffer que se ejecuta en una mquina remota. Puede ejecutar
rpcapd ya sea desde la lnea de comandos o como un servicio.
Para iniciar rpcapd , es probable que desee utilizar el
-N
bandera, que le dice al demonio para utilizar nula
la autenticacin. Usando esta opcin, usted ser capaz de controlar el ujo de datos que rpcapd produce
con cualquier programa que utiliza la interfaz de captura WinPcap. De lo contrario, tendr que agregar cdigo especial
con el programa que est utilizando para permitir que se autentique con rpcapd . Desde el
-N
opcin permite
cualquiera pueda conectarse al demonio, tambin querr utilizar el
-L
opcin, que le permite especicar un
Lista separada por comas de los ejrcitos que se pueden conectar.
Por lo tanto, para ejecutar rpcapd desde la lnea de comandos, utilice un comando similar al siguiente:
C: \ Archivos de programa \ WinPcap> rpcapd-l obsidiana-n
Presione CTRL + C para detener el servidor ...
Cuando se ejecuta como un servicio, rpcapd utiliza el rpcapd.ini archivo para la informacin de conguracin. Este archivo
reside en el mismo directorio que el ejecutable y es fcilmente creado mediante la ejecucin rpcapd con el
-S
cambiar, que instruye rpcapd para guardar su conguracin en el archivo que usted especique.
Para crear un archivo llamado rpcapd.ini , ejecute un comando similar al siguiente:
C: \ Archivos de programa \ WinPcap> rpcapd-l rpcapd.ini obsidiana-n-s
Presione CTRL + C para detener el servidor ...
Ahora, pulse Ctrl-C para ver lo que el archivo contiene:
C: \ Archivos de programa \ WinPcap> escriba rpcapd.ini
Archivo de ayuda # Conguracin.
# hosts que tienen permiso para conectarse a este servidor (modo pasivo)
# Formato: PassiveClient = <nombre o direccin
PassiveClient = obsidiana
# Hosts para que este servidor est tratando de conectarse a (modo activo)
# Formato: ActiveClient = <nombre o direccin, <nmero | predeterminada>
# Permiso NULL autenticacin: SI o NO
NullAuthPermit = SI
Para iniciar el servicio, puede utilizar el applet del panel de control de Servicios o utilice la
neto
comando desde
la lnea de comandos:
C: \ Archivos de programa \ WinPcap> rpcapd net start
Se ha iniciado el protocolo de captura de paquetes v.0 remoto (experimental)
Pgina 302
con xito.
Ahora, para conectarse al demonio, tendr que averiguar el nombre que utiliza WinPcap para referirse a la
dispositivo de red que desea supervisar. Para ello, puede utilizar cualquiera WinDump, un paquete de lnea de comandos
sniffer para Windows o Ethereal. WinDump est disponible en el mismo sitio web como WinPcap.
Para obtener el nombre del dispositivo con WinDump, simplemente brelo con el
-D
Bandera:
C: \ Archivos de programa \ WinPcap> windump-D
1. \ Device \ NPF_ {EE07A5AE-4D19-4118-97CE-3BF656CD718F} (NDIS 5.0 controlador)
Puede usar Ethereal para obtener el nombre del dispositivo de puesta en marcha de Ethereal, ir al men Captura,
y haciendo clic en Inicio. Despus de hacer eso, un cuadro de dilogo que contiene una lista de los adaptadores disponibles en el sistema
se abrir, como se muestra en la Figura 9-4 . Los nombres de los dispositivos de la lista son los que ms tarde especicar
cuando se conecta a rpcapd desde un sistema remoto.
Figura 9-4. De dilogo Opciones de captura de Ethereal
Cuando se conecta a una mquina remota con su sniffer favorito, basta con poner el nombre del dispositivo para la
interfaz que desea supervisar el prejo
rpcap
y el nombre de host, as:
rpcap :/ / saqueo / \ Device \ NPF_ {EE07A5AE-4D19-4118-97CE-3BF656CD718F}
La gura 9-5 muestra un ejemplo del uso de una fuente de captura remota con Ethereal.
Pgina 303
Figura 9-5. Utilizando una fuente de captura remota con Ethereal
Si ha congurado todo correctamente, debera ver el streaming de trco desde el extremo remoto en su
sniffer, como si se tratara de ser capturado de una interfaz local.
Pgina 304
Captulo 10. Tneles seguros
Redes informticas no son de conanza (como Internet y las redes inalmbricas pblicas) pueden ser muy hostiles
ambientes, pero pueden ser domesticados en algn grado. Este captulo se ocupa principalmente de cmo congurar
comunicaciones codicadas y seguras a travs de redes que no hacen completamente la conanza. Algunos de los hacks
centrar principalmente en proporcionar un mecanismo de transporte seguro y cifrado, mientras que otros discuten cmo
crear una red privada virtual (VPN). Como vers aqu, mediante el aprovechamiento de cifrado y algunos
trucos de encapsulacin se puede construir redes ms conables en la cima de una red insegura, incluso si
esta ltima est llena de sinvergenzas que tratan de espiar o manipular sus datos.
Al leer este captulo, usted aprender cmo congurar enlaces cifrados basados en IPsec en varios de operacin
sistemas, cmo crear interfaces de red virtuales que se pueden tunneled a travs de un cifrado
conexin, y cmo reenviar conexiones TCP a travs de un canal cifrado. Adems, aprender
cmo congurar una solucin VPN multiplataforma.
La belleza de la mayora de estos hacks es que despus de leerlos, usted puede mezclar y emparejar la capa de transporte
soluciones de cifrado con cualquier enfoque virtual orientada a la red que le conviene ms. En este
manera, se puede construir con seguridad grandes, poderosas redes privadas el aprovechamiento de la Internet pblica como
infraestructura. Usted puede utilizar estas tcnicas para cualquier cosa de conectar de forma segura con dos ocinas remotas
para la construccin de una red empresarial privada completamente derrotado en la parte superior de la Internet.
Hack # 92. Conguracin de IPsec En Linux
Asegure su trco en Linux con Openswan.
La manera ms popular de congurar conexiones IPsec en Linux es utilizando el Openswan
(
http://www.openswan.org
.) Paquete Openswan est formado por dos componentes: plutn y, opcionalmente,
Kernel de seguridad IP (KLIPS). Desde la versin 2.6, el kernel de Linux incluye soporte para IPsec, pero
KLIPS pueden utilizarse en lugar de algunas caractersticas adicionales. plutn es el demonio de espacio de usuario que controla
Negociacin de Internet Key Exchange (IKE).
Para comenzar, descargue la ltima fuente para las herramientas Openswan desde el sitio web del proyecto y
desempaquetar el rbol de cdigo fuente. A continuacin, cambie al directorio que se extrajo y construirlo:
$ tar xfz openswan-2.4.6rc3.tar.gz
$ cd openswan-2.4.6rc3
$ realizar programas
Despus de que termine la compilacin, convertirse en root y ejecute
make install
.
Si usted quiere probar el soporte de encriptacin oportunista de Openswan [Hack # 95] , En lugar de utilizar KLIPS
soporte IPsec nativa en el kernel. Para ello, descargue el parche apropiado desde el Openswan
descargar la pgina. Aplique el parche a las fuentes del ncleo con los siguientes comandos:
# cd / usr/src/kernels/linux-2.6.14.6
# zcat / tmp/openswan-2.4.6rc3.kernel-2.6-klips.patch.gz | patch-p1
Si ha congurado el cdigo fuente del ncleo antes de aplicar el parche, puede activar de forma rpida y sencilla
KLIPS ejecutando
make oldcong
. Estas son las opciones que necesitas tener:
Openswan IPsec (KLIPS26) (KLIPS) [N / m / y /?] (NEW) m
*
* Opciones Klips
*
Carga de seguridad encapsuladora - ESP ("VPN") (KLIPS_ESP) [Y / n /?] (NEW)
Pgina 305
Cabecera de Autenticacin - [? N / y /] AH (KLIPS_AH) (NEW) y
Algoritmo de autenticacin HMAC-MD5 (KLIPS_AUTH_HMAC_MD5) [Y / n /?] (NEW)
Algoritmo de autenticacin HMAC-SHA1 (KLIPS_AUTH_HMAC_SHA1) [Y / n /?] (NEW)
Interfaz algoritmo CryptoAPI (KLIPS_ENC_CRYPTOAPI) [N / y /?] (NEW)
Algoritmo de cifrado 3DES (KLIPS_ENC_3DES) [Y / n /?] (NEW)
Algoritmo de cifrado AES (KLIPS_ENC_AES) [Y / n /?] (NEW)
Compresin IP (KLIPS_IPCOMP) [Y / n /?] (NEW)
IPsec depuracin (KLIPS_DEBUG) [Y / n /?] (NEW)
Esta salida muestra KLIPS congurado para ser compilado como un mdulo; Sin embargo, puede vincular en el kernel
estticamente, si lo preere.
Si tu kernel parcheado para KLIPS, reconstruirlo y reiniciar con ella. La prxima vez que arranque, el ipsec
servicio se iniciar automticamente. Si decide utilizar una funcin de IPsec apoyo del ncleo, puede ir
adelante y comenzar ahora:
# / etc / init.d / inicio ipsec
ipsec_setup: Comenzando Openswan IPsec 2.4.6rc3 ...
ipsec_setup: insmod / lib/modules/2.6.16-1.2115_FC4/kernel/net/key/af_key.ko
ipsec_setup: insmod / lib/modules/2.6.16-1.2115_FC4/kernel/net/ipv4/ah4.ko
ipsec_setup: insmod / lib/modules/2.6.16-1.2115_FC4/kernel/net/ipv4/esp4.ko
ipsec_setup: insmod / lib/modules/2.6.16-1.2115_FC4/kernel/net/ipv4/ipcomp.ko
ipsec_setup: insmod / lib/modules/2.6.16-1.2115_FC4/kernel/net/ipv4/xfrm4_tunnel.ko
ipsec_setup: insmod / lib/modules/2.6.16-1.2115_FC4/kernel/crypto/des.ko
ipsec_setup: insmod / lib/modules/2.6.16-1.2115_FC4/kernel/crypto/aes.ko
Ahora, compruebe que la conguracin del sistema estn congurados correctamente para utilizar IPsec:
# / usr / local / sbin / ipsec vericar
Comprobar su sistema para ver si IPsec qued instalado e iniciado correctamente:
Comprobacin de la versin y el ipsec-path [Aceptar]
Linux Openswan U2.4.6rc3/K2.6.16-1.2115_FC4 (NetKey)
Comprobar la compatibilidad IPsec en el kernel [Aceptar]
NETKEY detecta, pruebas para discapacitados send_redirects ICMP [FAILED]
Por favor, desactivar / proc/sys/net/ipv4/conf / * / send_redirects
o NETKEY har que el envo de las redirecciones ICMP falsos!
NETKEY detecta, pruebas para discapacitados accept_redirects ICMP [FAILED]
Por favor, desactivar / proc/sys/net/ipv4/conf / * / accept_redirects
o NETKEY aceptar redirecciones ICMP falsos!
Comprobacin de clave privada RSA (/ etc / ipsec.secrets) [Aceptar]
Comprobacin de que Plutn se est ejecutando [Aceptar]
Dos o ms interfaces encontraron, comprobando el reenvo de IP [FAILED]
Comprobacin de comando 'ip' [Aceptar]
Comprobacin de comando 'iptables' [Aceptar]
Soporte de cifrado oportunista [Disabled]
Asegrese de investigar cualquier elemento que aparece como
FALLADO
. El ejemplo anterior muestra que usted necesitar
deshabilita el envo y la aceptacin de las redirecciones ICMP y activar el reenvo IP. Para deshabilitar las redirecciones ICMP,
ejecute los siguientes comandos:
# for f in / proc/sys/net/ipv4/conf / * / accept_redirects; hacer echo 0> $ f; hecho
# for f in / proc/sys/net/ipv4/conf / * / send_redirects; hacer echo 0> $ f; hecho
Para desactivar el reenvo IP, ejecute la siguiente:
# echo 1> / proc/sys/net/ipv4/ip_forward
Ahora, compruebe la conguracin de nuevo para asegurarse de que todo se muestra como
Bueno
:
Pgina 306
# / usr / local / sbin / ipsec vericar
Comprobar su sistema para ver si IPsec qued instalado e iniciado correctamente:
Comprobacin de la versin y el ipsec-path [Aceptar]
Linux Openswan U2.4.6rc3/K2.6.16-1.2115_FC4 (NetKey)
Comprobar la compatibilidad IPsec en el kernel [Aceptar]
NETKEY detecta, pruebas para discapacitados send_redirects ICMP [Aceptar]
NETKEY detecta, pruebas para discapacitados accept_redirects ICMP [Aceptar]
Comprobacin de clave privada RSA (/ etc / ipsec.secrets) [Aceptar]
Comprobacin de que Plutn se est ejecutando [Aceptar]
Dos o ms interfaces encontraron, comprobando el reenvo de IP [Aceptar]
Comprobacin de NAT y MASQUERADEing [N / A]
Comprobacin de comando 'ip' [Aceptar]
Comprobacin de comando 'iptables' [Aceptar]
Soporte de cifrado oportunista [Disabled]
Ahora, usted puede seguir adelante con la tarea de congurar Openswan. de Openswan se controla la conguracin
por dos archivos de conguracin: / etc / ipsec.conf y / etc / ipsec.secrets . El ipsec.conf archivo rompe una VPN
conexin en segmentos derecho e izquierdo. Esto es simplemente una divisin lgica. El segmento de la izquierda puede
ser la interna o la red externa; esto permite que el mismo archivo de conguracin que se utilizar para
ambos extremos de un tnel de red-a-red VPN.
Ahora, comience con una sencilla ipsec.conf para probar Openswan. Adicin de una entrada como esta crea una
tnel cifrado entre dos ejrcitos:
conn-host-to-host
izquierda = 192.168.0.64
leftid = @ colossus.nnc
# Leftnexthop =% defaultroute
derecha = 192.168.0.62
rightid = @ spek.nnc
# Rightnexthop =% defaultroute
auto = aadir
Esto funcionar si los hosts estn ambos en la misma red. Si no lo son, puede descomentar la
leftnexthop
y
rightnexthop
entradas. Para propsitos de autenticacin, esta conexin utiliza RSA
rmas, que se obtienen mediante la ejecucin
/ Usr / local / sbin / ipsec showhostkey
en ambos ejrcitos.
Inicie sesin en el host que ha especicado para
izquierda
, Ejecute el comando siguiente y, a continuacin, pega el resultado
en su archivo de conguracin:
# / usr / local / sbin / ipsec showhostkey - izquierda
# RSA 2192 bits de colossus.nnc Jue Jul 13 20:48:58 2006
leftrsasigkey = 0sAQNpOndA2SO5aQnEmxqlM5c3JerA9cMwGB0wPE9PshVFBgY44
Ml8Lw7usdMzZTMNaSeXu3 80 fK7aXWqBGVXWpIEw2EAFlGcbg1mrEoAVpLwbpM7ZmZPr6Cl0A
dFyTFxFK4k52y702h6xsdSoeTWabs2vkzPLDR8QqvlzIzPkDHE + MQG4q / F + fVUkn/TNeGL7ax
xfVkepqTHI1nwbNsLdPXdWGKL9c28ho8TTSgmVMgr9jVLYMNwWjN/BgKMF5J/glALr6kjy19u
NEpPFpcq9d0onjTMOts1xyfj0bst2 + + IMufX21ePuCRDkWuYsfcTMlo7o7Cu alW0AP4mZHz8Z
e8PzRm9h3oGrUMmwCoLWzMeruud
Ahora, la clave para pegar en el
derecho
acoger al ingresar en l y ejecutar el mismo comando, este
tiempo de reemplazar
- Izquierda
con
- A la derecha
.
Copie el archivo de conguracin para ambos antriones y reinicie el ipsec servicio en ambos sistemas:
# / / init.d / ipsec etc
ipsec_setup: Detener Openswan IPsec ...
ipsec_setup: Comenzando Openswan IPsec 2.4.6rc3 ...
ipsec_setup: insmod / lib/modules/2.6.16-1.2115_FC4/kernel/net/key/af_key.ko
ipsec_setup: insmod / lib/modules/2.6.16-1.2115_FC4/kernel/net/ipv4/xfrm4_tunnel.ko
A continuacin, cree la conexin IPsec, ejecute el comando siguiente en uno de los ejrcitos;
# / usr / local / sbin / auto ipsec locales - hasta host-to-host
Pgina 307
104 # "host-to-host" 6: STATE_MAIN_I1: iniciar
003 # "host-to-host" 6: recibida la carga til ID de proveedor [Openswan (esta versin) 2.4.6rc3
X.509-1.5.4 PLUTO_SENDS_VENDORID PLUTO_USES_KEYRR]
003 # "host-to-host" 6: recibida la carga til ID de proveedor [Dead Peer Detection]
003 # "host-to-host" 6: Mtodo de carga til recibida Vendor ID [RFC 3947] ajustado = 110
106 # "host-to-host" 6: STATE_MAIN_I2: envi MI2, esperando MR2
003 # "host-to-host" 6: NAT-Traversal: Resultado usando 3: no NAT detectado
108 # "host-to-host" 6: STATE_MAIN_I3: envi MI3, esperando MR3
004 "host-to-host" # 6: STATE_MAIN_I4: ISAKMP SA establecida {auth = OAKLEY_RSA_SIG
cipher = oakley_3des_cbc_192 prf = oakley_md5 grupo = modp1536}
117 # "host-to-host" 7: STATE_QUICK_I1: iniciar
004 # "host-to-host" 7: STATE_QUICK_I2: enviado QI2, IPsec SA establecida {ESP => 0x070009a9
<0xca6c0796 xfrm = AES_0-HMAC_SHA1 NATD = ninguno DPD = none}
Si quieres poner a prueba tu conexin, ping-uno de los antriones en el tnel de la otra:
$ ping-spek.nnc
(192.168.0.62) 56 (84) bytes PING spek.nnc de datos.
64 bytes de spek.nnc (192.168.0.62): icmp_seq = 0 ttl = 64 tiempo = 3,56 ms
64 bytes de spek.nnc (192.168.0.62): icmp_seq = 1 ttl = 64 time = 0.975 ms
64 bytes de spek.nnc (192.168.0.62): icmp_seq = 2 ttl = 64 tiempo = 1,73 ms
64 bytes de spek.nnc (192.168.0.62): icmp_seq = 3 ttl = 64 tiempo = 2,29 ms
...
Ahora, comience tcpdump en el otro host:
# / usr / sbin / tcpdump-n-i eth0
tcpdump: salida detallada suprimido, uso-v o-vv para decodicar protocolo completo
escucha en eth0, link-type EN10MB (Ethernet), el tamao de captura de 96 bytes
23:57:35.280722 IP 192.168.0.43> 192.168.0.62: ESP (spi = 0x070009a9, ss = 0x18)
23:57:35.280893 IP 192.168.0.43> 192.168.0.62: icmp 64: echo solicitud ss 19
23:57:35.280963 IP 192.168.0.62> 192.168.0.43: ESP (spi = 0xca6c0796, ss = 0x18)
23:57:36.267451 IP 192.168.0.43> 192.168.0.62: ESP (spi = 0x070009a9, ss = 0x19)
23:57:36.267451 IP 192.168.0.43> 192.168.0.62: icmp 64: echo solicitud ss 20
23:57:36.269713 IP 192.168.0.62> 192.168.0.43: ESP (spi = 0xca6c0796, ss = 0x19)
Observe los paquetes ESP en la salida. El contenido de estos paquetes estn cifrados utilizando de IPsec
Carga de seguridad encapsulada. No te preocupes por el eco ICMP (ping) los paquetes que se ve, sin embargo.
Se presentan porque la pila IPsec de ncleo utiliza la misma interfaz de cifrado y descifrado
paquetes, en lugar de utilizar una interfaz virtual para los paquetes descifrados. Si usted es capaz de oler el
paquetes procedentes de un tercer husped, usted ver solamente los ESP.
Felicitaciones! Todo el trco entre los dos ejrcitos ha congurado ahora ser encriptada sin problemas.
Sin embargo, Openswan tiene muchas conguraciones posibles, tales como red-a-red y host-to-
tneles de la red, as como el cifrado oportunista sin suras [Hack # 95] . Para obtener ms informacin,
echa un vistazo a la ipsec.conf pgina de manual (
hombre ipsec.conf
), As como los ejemplos en la
/ Etc / ipsec.d / Ejemplos de directorios y en el doc / ejemplos de archivos distribuidos con la fuente Openswan
cdigo.
Pgina 308
Hack # 93. Conguracin de IPsec En FreeBSD
Utilice soporte incorporado de IPsec de FreeBSD para asegurar su trco.
El uso de IPsec con IKE en FreeBSD necesita habilitar IPsec en el kernel y la instalacin de un espacio de usuario
programa, mapache , para manejar las negociaciones IKE.
Asegrese de que el ncleo ha sido compilado con las opciones siguientes:
Opciones IPSEC Seguridad IP #
Opciones IPSEC_ESP Seguridad # IP (cripto, denir w / IPSEC)
Opciones IPSEC_DEBUG # Debug para la seguridad IP
Si no es as, tendr que denirlos y luego reconstruir e instalar el kernel. Despus de que hayas hecho esto,
reiniciar el sistema para comprobar que funciona.
Puede instalar mapache utilizando la seccin de red de la coleccin de ports o descargndolo de
ftp://ftp.kame.net/pub/kame/misc/
. Instale mapache segn las instrucciones proporcionadas con el
distribucin.
En el cliente, primero debe congurar mapache modicando este ejemplo racoon.conf archivo para adaptarse
sus necesidades:
ruta include "/ usr / local / etc / racoon";
ruta pre_shared_key "/ usr / local / etc / racoon / psk.txt";
annimo remoto
{
exchange_mode agresivo, principal;
my_identier user_fqdn "user1@domain.com";
tiempo de vida de 1 hora;
initial_contact en;
propuesta {
3des encryption_algorithm;
sha1 hash_algorithm;
authentication_method pre_shared_key;
dh_group 2;
}
}
sainfo annimo
{
pfs_group 1;
tiempo de vida til 30 min;
3des encryption_algorithm;
hmac_sha1 authentication_algorithm;
desinado compression_algorithm;
}
En la conguracin del cortafuegos, asegrese que permite conexiones IKE a su mquina (puerto UDP 500).
Debe congurar mapache para iniciar en tiempo de arranque.
Conguracin del cliente
El directorio / usr / local / etc / racoon / psk.txt archivo contiene sus credenciales. Este chero debe ser legible por root
solamente. Si los permisos no se establecen correctamente, mapache no funcionar. Para un IPsec compartida secreta
conexin, el archivo contiene su identicacin (en este caso, su direccin de correo electrnico) y el secreto, en
este formato:
user1@domain.com supersecret
Pgina 309
Ahora, congure la poltica de seguridad, el uso de la setkey utilidad para aadir entradas a la Poltica de Seguridad kernel
Database (SPD). Crear un client.spd archivo para setkey para cargar, con entradas como la siguiente:
spdadd 192.168.0.104/32 0.0.0.0 / 0 any-P fuera ipsec \
esp/tunnel/192.168.0.104-192.168.0.1/require;
spdadd 0.0.0.0 / 0 192.168.0.104/32 cualquier-P en ipsec \
esp/tunnel/192.168.0.1-192.168.0.104/require;
Para esta conguracin, la estacin IP es 192.168.0.104 y la puerta de enlace es 192.168.0.1. La primera entrada se crea una
poltica de seguridad que enva todo el trco hacia el punto nal de VPN. La segunda entrada se crea una poltica de seguridad
que permite que todo el trco de vuelta desde el punto nal de VPN.
TIP
En esta conguracin, el cliente no es capaz de hablar con cualquier host en la subred local, a excepcin de la puerta de enlace de VPN. En una red inalmbrica
red en la que el cliente es un objetivo de primer orden para el ataque, esta es probablemente una buena cosa para su estacin de trabajo.
Cargue el SPD ejecutando el siguiente comando:
# setkey-f client.spd
La puerta de enlace racoon.conf es el mismo que el archivo para el lado del cliente. Esto permite que cualquier cliente se conecte.
El psk.txt archivo debe contener las identicaciones y los secretos compartidos de todos los clientes que se pueden conectar:
user1@domain.com supersecret
user2@domain.com evenmoresecret
user3@domain.com notsosecret
Conguracin de puerta de enlace
Una vez ms, asegrese de que psk.txt es legible por slo root. Comience mapache y asegrese de que no hay errores.
Por ltimo, establecer un gateway.spd archivo que crea un SPD para cada cliente. El siguiente ejemplo asume
sus clientes estn en 192.168.0.10 [4-6]:
spdadd 0.0.0.0 / 0 192.168.0.104/32 cualquier-P fuera ipsec \
esp/tunnel/192.168.0.1-192.168.0.104/require;
spdadd 192.168.0.104/32 0.0.0.0 / 0 any-P en ipsec \
esp/tunnel/192.168.0.104-192.168.0.1/require;
spdadd 0.0.0.0 / 0 192.168.0.105/32 cualquier-P en ipsec \
esp/tunnel/192.168.0.1-192.168.0.105/require;
spdadd 192.168.0.105/32 0.0.0.0 / 0 any-P out \
ipsec esp/tunnel/192.168.0.105-192.168.0.1/require;
spdadd 0.0.0.0 / 0 192.168.0.106/32 cualquier-P en ipsec \
esp/tunnel/192.168.0.1-192.168.0.106/require;
spdadd 192.168.0.106/32 0.0.0.0 / 0 any-P fuera ipsec \
esp/tunnel/192.168.0.106-192.168.0.1/require;
Cargue el SPD mediante la emisin de
setkey-f gateway.spd
. Verique las entradas SPD utilizando el
spddump
mando en
setkey . En este punto, usted debera ser capaz de hacer ping a un cliente de la puerta de enlace. Puede ser que tome un paquete o
dos para la negociacin VPN para completar, pero la conexin debe ser slida despus de eso. Si usted es
no puede hacer ping, examine su syslog salida de errores y advertencias.
Uso de certicados X.509
Puede utilizar certicados X.509 para realizar la autenticacin en lugar de una clave previamente compartida, pero si usted es
va a hacer esto, primero necesita congurar una entidad emisora de certicados (CA) [Hack # 69] . Despus de haber hecho
que, a modicar su racoon.conf archivo a tener este aspecto:
Pgina 310
path certicate "/ etc / ssl";
annimo remoto
{
exchange_mode principal;
tiempo de vida de 1 hora;
certicate_type x509 "cletus.crt" "cletus.key";
verify_cert en;
asn1dn my_identier;
peers_identier asn1dn;
propuesta {
3des encryption_algorithm;
sha1 hash_algorithm;
authentication_method rsasig;
dh_group 2;
}
}
sainfo annimo
{
pfs_group 1;
tiempo de vida til 30 min;
3des encryption_algorithm;
hmac_sha1 authentication_algorithm;
desinado compression_algorithm;
}
Con esta conguracin, racoon espera encontrar los certicados X.509 en / etc / ssl , por lo que una copia de su
certicado / par de claves ( cletus.crt y cletus.key ) a la ubicacin que decida utilizar. En el resto de sistemas,
modicar el archivo de conguracin en consecuencia, en sustitucin del certicado y los nombres de chero clave con el buen
los para cada sistema.
Copie el certicado de la CA en el directorio de certicados. Esto ser utilizado para vericar que su CA tiene
rmado los certicados en cada sistema. Si es as, estarn autorizadas a conectarse.
Se dar cuenta de que el certicado de CA no se especica en cualquier parte del archivo de conguracin. Esto es porque
racoon lo busca en un nombre de archivo el nombre de un hash de la misma. Para activar mapache para encontrar el certicado CA, ejecute un
comando similar al siguiente:
# ln-s CA.crt \ Qopenssl x509-noout-hash <CA.crt \ Q.0
TIP
El comando anterior supone que se ha copiado su certicado CA a / etc / ssl y la llam CA.crt .
Reinicie mapache ejecutando
/ Usr / local / etc / rc.d / reinicio mapache locales
. Ahora, usted puede comprobarlo haciendo que el
hosts ping entre s. A continuacin, ejecute
tcpdump
en uno de sus sistemas. Usted debe comenzar a ver ESP
paquetes:
# tcpdump-n
tcpdump: salida detallada suprimido, uso-v o-vv para decodicar protocolo completo
escuchando en lnc0, enlace de tipo EN10MB (Ethernet), el tamao de captura de 96 bytes
03:35:57.481254 IP 192.168.0.40> 192.168.0.41: ESP (spi = 0x05d628a3, ss = 0xd)
03:35:57.483451 IP 192.168.0.41> 192.168.0.40: ESP (spi = 0x0c53fadb, ss = 0xd)
03:35:58.490287 IP 192.168.0.40> 192.168.0.41: ESP (spi = 0x05d628a3, ss = 0xe)
03:35:58.491160 IP 192.168.0.41> 192.168.0.40: ESP (spi = 0x0c53fadb, ss = 0xe)
03:35:59.500509 IP 192.168.0.40> 192.168.0.41: ESP (spi = 0x05d628a3, ss = 0xf)
03:35:59.501289 IP 192.168.0.41> 192.168.0.40: ESP (spi = 0x0c53fadb, ss = 0xf)
Estos son los paquetes de ping en forma encriptada.
Pgina 311
Hack # 94. Conguracin de IPsec en OpenBSD
Utilizar IPsec el camino OpenBSD.
Conguracin de IPsec en OpenBSD es bastante fcil, ya que est compilado en el kernel que se incluye con cada
liberar y est activado por defecto. Todo lo que queda por hacer es crear el apropiado
/ Etc / isakmpd / isakmpd.conf y / etc / isakmpd / isakmpd.policy archivos y empezar a isakmpd (la clave IPsec-
demonio de administracin).
Esto puede sonar desalentador, pero la conguracin de documentacin y ejemplo sobresaliente de OpenBSD
archivos que sea ms fcil de lo que piensas.
Autenticacin de contrasea
En primer lugar, establecer una contrasea a utilizar para la conexin IPsec, tendrs que poner estas lneas en su
/ Etc / isakmpd / isakmpd.policy :
KeyNote-Version: 2
Autorizador: "POLTICA"
Los licenciatarios: "passphrase: squeamishossifrage"
Condiciones: app_domain == "directiva IPsec" &&
esp_present == "s" &&
esp_enc_alg == "aes" &&
esp_auth_alg == "HMAC-SHA" -> "true";
Ahora, edite el / etc / isakmpd / isakmpd.conf archivo para que contenga las siguientes lneas:
[General]
= Listen-on 10.1.0.11
Compartida SADB = Denido
Poltica-File = / Etc / isakmpd / isakmpd.policy
[Phase 1]
10.1.0.11 = ISAKMP-par-oeste
10.1.0.12 = ISAKMP-peer-este
De fbrica = ISAKMP-peer-este-agresiva
[Phase 2]
Conexiones = IPsec-oeste-este
[ISAKMP-peer-al este]
= Fase 1
Direccin local = 10.1.0.11
= Direccin 10.1.0.12
= Conguracin -Main-El modo por defecto
= Autenticacin squeamishossifrage
[ISAKMP-par-oeste]
= Fase 1
Direccin local = 10.1.0.12
= Direccin 10.1.0.11
= Conguracin -Main-El modo por defecto
= Autenticacin squeamishossifrage
[ISAKMP-peer-este-agresivo]
= Fase 1
Direccin local = 10.1.0.11
= Direccin 10.1.0.12
= Conguracin -Agresiva-El modo por defecto
= Autenticacin squeamishossifrage
Pgina 312
[ISAKMP-par-oeste-agresivo]
= Fase 1
Direccin local = 10.1.0.12
= Direccin 10.1.0.11
= Conguracin -Agresiva-El modo por defecto
= Autenticacin squeamishossifrage
[IPsec-este-oeste]
= Fase 2
ISAKMP-par = ISAKMP-par-oeste
= Conguracin -Quick-El modo por defecto
Local-ID = Host-este
Remote-ID = Host-oeste
[IPsec-este-oeste]
= Fase 2
ISAKMP-par = ISAKMP-peer-este
= Conguracin -Quick-El modo por defecto
Local-ID = Host-oeste
Remote-ID = Host-este
[Host-oeste]
ID-type = IPV4_ADDR
= Direccin 10.1.0.11
[Host-este]
ID-type = IPV4_ADDR
= Direccin 10.1.0.12
[-Principal del modo predeterminado]
EXCHANGE_TYPE = ID_PROT
Transforma = 3DES-SHA
[-Agresiva-El modo por defecto]
EXCHANGE_TYPE = AGRESIVO
Transforma = 3DES-SHA-RSA
[-Quick-mode defecto]
DOI = IPSEC
EXCHANGE_TYPE = QUICK_MODE
Suites = QM-ESP-AES-SHA-PFS-SUITE
El mismo archivo de conguracin se puede usar en ambos extremos del tnel, con slo unos pocos cambios.
En primer lugar, la conguracin del ejemplo anterior es para uso en una mquina con una direccin IP de 10.1.0.11.
Usted puede modicarlo para trabajar en el otro extremo (10.1.0.12) cambiando la direccin IP especicada en
Escuchar-en
:
= Listen-on 10.1.0.12
A continuacin, cambie el
Defecto
lnea a la siguiente:
De fbrica = ISAKMP-par-oeste-agresiva
Por ltimo, cambiar el
Conexiones
line:
Conexiones = IPsec-este-oeste
Despus de editar los archivos de conguracin, puede iniciar isakmpd ejecutando este comando:
# / sbin / isakmpd
A continuacin, utilice un host en su tnel de ping al otro host. Mientras hace esto, empezar tcpdump en uno de los
Pgina 313
sistemas. Usted debe ver a algunos paquetes ESP:
# tcpdump-n
tcpdump: escucha en pcn0, enlace de tipo EN10MB
21:19:38.920316 esp 10.1.0.11> 10.1.0.12 spi 0xB9C862E7 seq 1 len 132
21:19:38.921420 esp 10.1.0.12> 10.1.0.11 spi 0xBC4069F4 seq 1 len 132
21:19:39.926389 esp 10.1.0.11> 10.1.0.12 spi 0xB9C862E7 siguientes 2 len 132
21:19:39.927216 esp 10.1.0.12> 10.1.0.11 spi 0xBC4069F4 siguientes 2 len 132
21:19:40.940115 esp 10.1.0.11> 10.1.0.12 spi 0xB9C862E7 siguientes 3 len 132
21:19:40.940711 esp 10.1.0.12> 10.1.0.11 spi 0xBC4069F4 siguientes 3 len 132
Si desea ver el contenido del paquete descifrado, puede usar tcpdump para supervisar el ENC0 interfaz:
# tcpdump-n-i ENC0
tcpdump: ADVERTENCIA: ENC0: ninguna direccin IPv4 asignada
tcpdump: escucha en ENC0, enlace de tipo ENC
21:21:53.281316 (autntico, condencial): SPI 0xb9c862e7: 10.1.0.11> 10.1.0.12: icmp:
solicitud de eco (encap)
21:21:53.281480 (autntico, condencial): SPI 0xbc4069f4: 10.1.0.12> 10.1.0.11: icmp:
echo reply (encap)
21:21:54.240855 (autntico, condencial): SPI 0xb9c862e7: 10.1.0.11> 10.1.0.12: icmp:
solicitud de eco (encap)
21:21:54.241059 (autntico, condencial): SPI 0xbc4069f4: 10.1.0.12> 10.1.0.11: icmp:
echo reply (encap)
Autenticacin de certicados
La conguracin que se muestra en la seccin anterior permite que cualquiera pueda conectarse con la contrasea
squeamishossifrage , pero lo que si desea utilizar certicados X.509 para la autenticacin? Usted primero necesita
establecer una autoridad de certicacin (CA) [Hack # 69] , Si usted no tiene ya uno. Una vez que has hecho
eso, usted tendr que asegurarse de que cada uno de los certicados tiene un
subjectAltName
, Para que isakmpd puede
identicar lo que el certicado a utilizar para la conexin.
Si ests usando una versin de OpenBSD antes de 3.8, usted puede hacer esto fcilmente con la certpatch herramienta.
De lo contrario, tendr que regenerar los certicados para cada punto nal de su rma de certicado
peticiones.
Usando certpatch es fcil; usted indica el certicado de modicar, la direccin IP o el dominio completo
nombre (FQDN), y la clave de la CA requerida para rmar el certicado modicado. Si desea modicar una
certicado para incluir una direccin IP en el
subjectAltName
campo, el uso
certpatch
de esta manera:
$ certpatch-i 10.1.0.11-k ca.key 10.1.0.11.crt 10.1.0.11.crt
Lectura ssleay creado certicado 10.1.0.11.crt y modicarlo
Ingrese frase PEM:
Creacin de Firma: PKEY_TYPE = RSA: X509_sign: 128 OKAY
Escribir nuevo certicado para 10.1.0.11.crt
Si desea utilizar el nombre completo, ejecutar algo como esto:
$ certpatch-t fqdn-i hinchados-k ca.key puffy.crt puffy.crt
Lectura ssleay creado certicado asdf.crt y modicarlo
Ingrese frase PEM:
Creacin de Firma: PKEY_TYPE = RSA: X509_sign: 128 OKAY
Escribir nuevo certicado para puffy.crt
Para agregar el
subjectAltName
campo al rmar un certicado, aada
-EXTFILE / etc/ssl/x509v3.cnf -
extensiones x509v3_IPAddr
al
openssl
comando que se utiliza para rmar sus certicados. Si desea
utilizar un nombre de dominio completo en lugar de una direccin IP, reemplace
x509v3_IPAddr
con
x509v3_FQDN
. Si su CA reside en
un sistema no OpenBSD, tendr que copiar / etc/ssl/x509v3.cnf a l desde un sistema OpenBSD.
Pgina 314
Una vez que hayas terminado de aadir el
subjectAltName
campo, copia de su certicado de CA de / etc / isakmpd / ca .
A continuacin, copie los certicados a / etc / isakmpd / certs en su host correspondiente. Del mismo modo, tendr que
para copiar las llaves a / etc / isakmpd / private / local.key .
Despus de que haya recibido el certicado de negocio fuera del camino, es el momento para modicar su isakmpd.conf y
isakmpd.policy archivos. En primer lugar, eliminar todo el
Autenticar
lneas en el isakmpd.conf archivo. A continuacin, busque
la
Transformaciones
lnea en la
-Main-El modo por defecto
seccin y cambiarlo para leer
3DES-SHA-RSA_SIG
. Es
lo dice isakmpd para utilizar los certicados X.509 para la autenticacin.
A decir isakmpd para permitir que slo los sistemas que utilizan certicados rmados por el CA para conectar, usted
que tenga que modicar su isakmpd.policy y decirle que el nombre completo (DN) del certicado de CA:
$ openssl x509-sujeto-noout en ca / CA.crt
subject = / C = GB / ST = Berkshire / L = Newbury / O = Mi Company Ltd / CN = CA Root
Luego, vuelva a colocar la
Licenciatarios
lnea en su isakmpd.policy :
KeyNote-Version: 2
Comentario: Esta poltica acepta ESP SA de hosts con certs suscritos por nuestro CA
Autorizador: "POLTICA"
Los licenciatarios: "DN: / C = GB / ST = Berkshire / L = Newbury / O = Mi Company Ltd / CN = CA Root"
Condiciones: app_domain == "directiva IPsec" &&
esp_present == "s" &&
! esp_enc_alg = "null" -> "true";
Finalmente, para tener isakmpd iniciar con cada inicio del sistema, edite el / etc / rc.conf archivo (o crear uno
si no existe) y poner la siguiente lnea en l:
isakmpd_ags = ""
Eso debera bastar. Como siempre, verique sus registros del sistema si su tnel tiene problemas para conectarse.
Pgina 315
Hack # 95. Cifrar trco automticamente con Openswan
Utilice los registros DNS TXT Openswan y crear automticamente las conexiones cifradas entre
mquinas.
Una caracterstica particularmente fresco apoyado por Openswan [Hack # 92] es el cifrado oportunista con
otros hosts corriendo Openswan. Esto permite Openswan para cifrar el trco de forma transparente entre todos
antriones que tambin soportan encriptacin oportunista. Para que esto funcione, cada host debe tener una clave pblica
generada a utilizar con Openswan. Esta clave puede entonces ser almacenado en un DNS
TXT
registrar para ese host. Cundo
un host que est congurado para el cifrado oportunista quiere iniciar una conexin cifrada con otro
antrin, busca la clave pblica del host a travs de DNS y lo utiliza para iniciar la conexin.
ADVERTENCIA
Antes de empezar, si usted est utilizando un ncleo Linux 2.6.x, asegrese de que ha instalado Openswan con KLIPS [Hack # 92]
en lugar de apoyar IPsec nativa de Linux. El soporte nativo en el kernel no funciona correctamente con el cifrado oportunista.
Tendr que generar una clave para cada host con el que se desea utilizar esta funcin. Por lo general,
Openswan crea una clave para usted cuando lo instale. Usted puede comprobar si tiene uno ejecutando el
siguiente comando:
# / usr / local / sbin / ipsec showhostkey - izquierda
Si usted ve la siguiente salida, tendr que crear una:
showhostkey ipsec: ninguna tecla predeterminada en "/ etc / ipsec.secrets"
Usted puede hacer que al ejecutar este comando:
# / usr / local / sbin / ipsec newhostkey - salida - >> / etc / ipsec.secrets
Despus, usted necesita para generar un
TXT
registro para poner en su zona DNS, usando un comando como el
siguiente:
# / usr / local / sbin / ipsec showhostkey - txt @ colossus.nnc
; RSA 2192 bits de coloso Lun Jul 13 03:02:07 2004
IN TXT "X-IPsec-Server (10) = @ colossus.nnc" "
AQOR7rM7ZMBXu2ej/1vtzhNnMayZO1jwVHUyAIubTKpd /
PyTMogJBAdbb3I0xzGLaxadPGqPN2AQn76zLIsYFMJnoMbBTDY/2xK1X /
pWFRUUIHzJUqCBIijVWEMLNrIhdZbei1s5 /
MgYIPaX20UL + yAdxV4RUU3JJQhV7adVzQqEmdaNUnCjZOvZG6m4zv6dGROrVEZmJFP54v6WhckYf
qSkQu3zkctfFgzJ/rMTB6Y38yObyBg2HuWZMtWI "
"8VrTQqi7IGGHK + + wSoXer3iFD7JxRTzPOxLk6ihAJMibtKna3j7QP9ZHG0nm7NZ MWK /
L5M9VpK + + Rfe evUUMUTfAtSdlpus2BIeXGWcPfz6rw305H9 "
Aadir este disco a su zona (asegrese de agregar el nombre de host para el inicio de la grabacin) y vuelva a cargarlo
. Por defecto, est desactivado el soporte de encriptacin oportunista. Para habilitarlo, abierto / etc / ipsec.conf y
comente la siguiente lnea:
include / etc / ipsec.d / examples / no_oe.conf
Guarde el archivo y, a continuacin, reinicie el ipsec servicio ejecutando
/ Etc / init.d / ipsec
.
Compruebe que DNS funciona correctamente ejecutando el siguiente comando:
# / usr / local / sbin / ipsec vericar
Comprobar su sistema para ver si IPsec qued instalado e iniciado correctamente
Comprobacin de la versin y el ipsec-path [Aceptar]
Comprobar la compatibilidad KLIPS en el kernel [Aceptar]
Pgina 316
Comprobacin de clave privada RSA (/ etc / ipsec.secrets) [Aceptar]
Comprobacin de que Plutn se est ejecutando [Aceptar]
Cheques DNS.
Buscando TXT en un mapa a seguir: coloso [Aceptar]
La mquina tiene al menos una direccin que no es privado [Aceptar]
Ahora, slo tienes que reiniciar Openswan:
# / / init.d / ipsec etc
Ahora debera ser capaz de conectarse a cualquier otro host que admite el cifrado oportunista. Pero lo que
si otros antriones quieren conectar a ti? Para permitir esto, tendrs que crear un
TXT
registro para su
mquina en la zona DNS inversa:
# ipsec showhostkey - txt 192.168.0.64
; RSA 2192 bits de coloso Mar 13 de enero 2004 03:02:07
IN TXT "X-IPsec-Server (10) = 192.168.0.64" "
AQOR7rM7ZMBXu2ej/1vtzhNnMayZO1jwVHUyAIubTKpd /
PyTMogJBAdbb3I0xzGLaxadPGqPN2AQn76zLIsYFMJnoMbBTDY/2xK1X /
pWFRUUIHzJUqCBIijVWEMLNrIhdZbei1s5 /
MgYIPaX20UL + yAdxV4RUU3JJQhV7adVzQqEmdaNUnCjZOvZG6m4zv6dGROrVEZmJFP54v6WhckYf
qSkQu3zkctfFgzJ/rMTB6Y38yObyBg2HuWZMtWI "
"8VrTQqi7IGGHK + + wSoXer3iFD7JxRTzPOxLk6ihAJMibtKna3j7QP9ZHG0nm7NZ MWK /
L5M9VpK + + Rfe evUUMUTfAtSdlpus2BIeXGWcPfz6rw305H9 "
Aadir este registro a la zona inversa para su subred, y otras mquinas sern capaces de iniciar
conexiones con la mquina de cifrado. Con el cifrado oportunista en uso, todo el trco entre
los antriones sern cifrados automticamente, protegiendo todos los servicios de forma simultnea. Con buena pinta, no?
Pgina 317
Hack # 96. Adelante y cifrar el trco con SSH
Mantenga el trco de red a los puertos arbitrarios seguras con el reenvo de puerto SSH.
Adems de proporcionar acceso a una consola remota y la ejecucin de comandos, OpenSSH puede reenviar arbitraria
Puertos TCP al otro extremo de la conexin. Esto puede ser extremadamente til para la proteccin de correo electrnico, web,
o cualquier otro tipo de trco que usted necesita para mantener en privado (por lo menos, todo el camino hasta el otro extremo del tnel).
SSH lleva a cabo el reenvo de locales mediante la unin a un puerto local, la realizacin de cifrado, el envo de la
cifrado de datos para el extremo remoto de la SSH conexin, y luego descifrar y de enviarlo a la
host remoto y puerto especicado. Inicie un ssh tnel con el
-L
(Abreviatura de "local") Interruptor:
# ssh-f-N-L 110: mailhost: 110
usuario
@
mailhost
Naturalmente, sustituto
usuario
con su nombre de usuario y
mailhost
con el nombre de su servidor de correo o IP
Direccin. Tenga en cuenta que tendr que ser root para este ejemplo, ya que va a enlazar a una privilegiada
puerto (110, el puerto POP3). Tambin debe deshabilitar cualquier daemon POP3 se ejecuta localmente (busque en
/ Etc / inetd.conf ); de lo contrario, se pondr en el camino.
Ahora, para cifrar todo su trco POP3, congurar el cliente de correo para conectarse a localhost puerto 110. Se
estar feliz de hablar con mailhost como si estuviera conectado directamente, a excepcin de que toda la conversacin se
ser cifrada. Alternativamente, usted podra decirle a ssh para que escuche en un puerto por encima de 1024 y eliminar la necesidad de
ejecutarlo como root; Sin embargo, usted tendra que congurar su cliente de correo electrnico que utilice tambin este puerto, en lugar de
puerto 110.
-F
horquillas ssh a un segundo plano, y
-N
dice que no se ejecute en realidad un comando en el extremo remoto, pero
slo para hacer el envo. Una caracterstica interesante cuando se utiliza el
-N
interruptor es que todava se puede avanzar
un puerto, incluso si usted no tiene un shell de entrada vlida en el servidor remoto. Sin embargo, para que esto funcione
que necesitar para congurar la autenticacin de clave pblica con la cuenta de antemano.
Si el ssh del servidor lo admite, tambin puede probar el
-C
cambiar a activar la compresin. Esta lata
reducir signicativamente el tiempo que se tarda en descargar el correo electrnico. Para acelerar las conexiones an ms, trate de usar
el sistema de cifrado Blowsh, que es generalmente ms rpido que 3des (por defecto). Para utilizar el sistema de cifrado Blowsh, tipo
-C pez globo
.
Puede especicar hasta
-L
lneas como desee al establecer la conexin. Para tambin hacia adelante
trco de correo electrnico saliente, intente lo siguiente:
# ssh-f-N-L 110: mailhost: 110-L 25: mailhost: 25
usuario
@
mailhost
Ahora, congure su servidor de correo electrnico saliente a localhost , y el trco de correo electrnico se cifrar en cuanto a
mailhost . Generalmente, esto es til slo si el correo electrnico se dirige a un host interno o si no se puede conar
Pgina 318
su conexin de red local (como es el caso con la mayora de las redes inalmbricas). Obviamente, una vez que su
email deja mailhost , que se transmitir en el claro, a menos que se ha cifrado el mensaje con un
herramienta como PGP o GPG [Hack # 42] .
Si ya est conectado a un host remoto y necesita reenviar un puerto rpido, intente lo siguiente:
1. Pulse Intro.
2. Tipo
C
(No echo).
3. Usted debe estar en un
ssh>
rpidos; entrar en el
-L
lnea como lo hara desde la lnea de comandos.
Por ejemplo:
rob @ catlin: $
rob @ catlin: $ C
ssh> -L8000: localhost: 80
El reenvo de puertos.
Su shell actual entonces delantero portuario local de 8000 a catlin puerto 's 80, como si hubiera entrado en el
primer lugar.
Tambin puede permitir a otros clientes (a distancia) para conectar a su puerto reenviado, con el
-G
cambiar. Si
que ests conectado a una puerta de enlace remota que sirve como un traductor de direcciones de red para una red privada,
utilice un comando como este:
$ ssh-f-g-N-L8000: localhost: 80 10.42.4.6
Esto enva todas las conexiones desde un puerto de la pasarela 8000 al puerto host interno 10.42.4.6 's 80. Si el
puerta de entrada tiene una direccin de Internet en vivo, esto permite que cualquier persona de la red para conectar con el servidor web en
10.42.4.6 como si se estuviera ejecutando en el puerto 8000 de la puerta de enlace.
Un ltimo punto a destacar es que el antrin remitido no tiene por qu ser localhost ; puede ser cualquier
antrin que la mquina que se est conectando puede acceder directamente. Por ejemplo, para reenviar puerto local
5150 a un servidor web en cualquier sitio en una red interna, intente lo siguiente:
$ ssh-f-N-L5150: intranet.insider.nocat: 80 gateway.nocat.net
Suponiendo que usted est funcionando un dominio privado llamado . nocat , y que gateway.nocat.net tambin tiene un
conexin a la red privada, todo el trco en el puerto 5150 de la mquina remota ser complaciente
remitido a intranet.insider.nocat: 80 . La direccin intranet.insider.nocat no tiene que resolver en
DNS al host remoto; no se levant hasta que la conexin se realiza a gateway.nocat.net , y luego
que es la puerta de enlace que hace la consulta. Para navegar con seguridad que el sitio del host remoto, intente conectarse a
http://localhost:5150/ .
Rob Flickenger
Pgina 319
Hack # 97. Automatizar inicios de sesin con claves SSH Client
Utilice claves SSH en lugar de la autenticacin de contrasea para acelerar y automatizar los inicios de sesin.
Cuando usted es un administrador en ms de un par de mquinas, pudiendo navegar rpidamente a un intrprete de comandos en cualquier
servidor determinado es crtica. Tener que escribir
ssh my.server.com
(Seguido de una contrasea) no slo
tedioso, pero tambin rompe su concentracin. De repente tener que pasar de "Dnde est el problema?" Para
"Cmo llegar", y luego de nuevo a "Qu es todo esto, entonces?" Ha llevado a ms de un administrador para prematuros
la senilidad. Promueve el equivalente digital de "Por qu he venido a esta habitacin, de todas formas?"
En cualquier caso, ms esfuerzo gastado sesin en una mquina signica menos esfuerzo pas la resolucin de problemas.
Afortunadamente, las ltimas versiones de SSH ofrecen una alternativa segura a entrar sin n contraseas: public
intercambio de claves.
TIP
Los siguientes ejemplos asumen que est utilizando OpenSSH v3.4p1 o posterior.
Para utilizar claves pblicas con un servidor SSH, primero debe generar un par de claves pblica / privada:
$ ssh-keygen-t rsa
Tambin puede utilizar
-T dsa
para claves DSA, o
-T rsa1
si usted est utilizando el protocolo v1.
ADVERTENCIA
Qu vergenza si utiliza v1! Hay vulnerabilidades conocidas en v1 del protocolo SSH. Si est utilizando OpenSSH,
puede desactivar v1 modicando su sshd_cong y asegurarse de que la lnea de Protocolo slo muestra 2.
Si es posible, utilice las claves RSA; aunque poco frecuentes, hay algunos problemas con claves DSA.
Despus de introducir el comando, debera ver algo como esto:
Generar un par de claves RSA pblica / privada.
Introduzca archivo en el que guardar la clave (/ home / rob / .ssh / id_rsa):
Slo tiene que pulsar Enter. A continuacin, le pedir una contrasea; de nuevo, simplemente pulse Enter dos veces (pero sigue leyendo para
algunas salvedades). Esto es lo que los resultados deben ser:
Enter passphrase (vaco sin frase de contrasea):
Introduzca misma contrasea de nuevo:
Su identicacin se ha ahorrado en / home / rob / .ssh / id_rsa.
Su llave pblica se ha ahorrado en / home / rob / .ssh / id_rsa.pub.
La huella de la clave es:
a6: 5c: c3: eb: 18:94:0 b: 06: a1: a6: 29:58: FA: 80:0 a: bc rob @ localhost
Esto crea dos archivos: / .ssh / id_rsa y / .ssh / id_rsa.pub . Para utilizar este par de claves en el servidor, intente lo siguiente:
$ cat .ssh / id_rsa.pub |
ssh
servidor
\
"Mkdir. Ssh && chmod 0700. Ssh && cat> .ssh/authorized_keys2"
Por supuesto, sustituir el nombre de servidor para
servidor
. Ahora, slo tiene que ejecutar
ssh servidor
y que debe conectarse
de forma automtica, sin necesidad de contrasea. Y s, va a utilizar su clave pblica nueva y brillante para scp , tambin.
Pgina 320
Si esto no funciona para usted, verique sus permisos de archivo en tanto /. ssh / * y server :/. ssh / * . Su
clave privada ( id_rsa ) debe ser el modo 0600 (y estar presente slo en el equipo local).
Adems, el directorio de inicio en el servidor tendr que ser mejor modo 711or. Si es grupo-
escritura, alguien que pertenece al grupo que posee el directorio de inicio podra eliminar /. ssh , incluso
si /. ssh no se puede escribir por ese grupo. Esto puede no parecer obvio al principio, pero si es capaz de hacer eso,
puede crear su propio /. ssh y un authorized_keys2 archivo, que puede contener cualquier claves que quiere.
Por suerte, el demonio SSH coger este y negar la autenticacin de clave pblica hasta que los permisos
se ja.
Algunas personas consideran que el uso de claves pblicas de un riesgo potencial para la seguridad. Despus de todo, un intruso slo tiene que
robar una copia de su clave privada para obtener acceso a sus servidores. Si bien esto es cierto, lo mismo es
ciertamente el caso de las contraseas.
Pregntate a ti mismo, cuntas veces al da te introduce una contrasea para tener acceso a una consola a una mquina (o
scp
un archivo)? Con qu frecuencia es la misma contrasea en muchos (o todos) de esas mquinas? Alguna vez
utilizado que contrasea en una manera que podra ser cuestionable (en un sitio web, en una mquina de personal que no es
todo hasta al da, o posiblemente con un cliente SSH en una mquina que no controlas directamente)? Si cualquiera
de estas posibilidades suenan familiares, considera que el uso de una clave SSH en el mismo escenario hara
prcticamente imposible que un atacante obtener acceso no autorizado tarde (siempre que, por supuesto, que usted
mantener su seguro de clave privada).
Otra forma de equilibrar la facilidad de uso con la seguridad es el uso de una frase de paso en su llave, pero el uso de la SSH
agente para gestionar su clave para usted. Cuando se inicia el agente, se le pedir su frase de paso una vez
y almacenar en cach hasta de matar al agente. Algunas personas incluso van tan lejos como para almacenar sus claves SSH en
medios extrables (tales como llaveros USB) y tomar las llaves con ellos dondequiera que vayan. Sin embargo
usted elige utilizar claves SSH, es casi seguro que encontrar que son una alternativa muy til
contraseas tradicionales.
Rob Flickenger
Pgina 321
Hack # 98. Utilice un Squid Proxy a travs de SSH
Asegure su trco web de miradas indiscretas y mejorar el rendimiento en el proceso.
calamar (
http://www.squid-cache.org
) Se utiliza normalmente como un acelerador de HTTP. Es un grande, bien-
administrado, con todas las funciones de proxy HTTP cach que est encontrando su camino en muchas web comerciales
plataformas. Lo mejor de todo, el calamar es de cdigo abierto y de libre acceso. Ya que realiza todas su magia en un
nico puerto TCP, el calamar es un candidato ideal para su uso con un tnel SSH. Esto no slo ayudar a
asegurar su navegador web cuando el uso de redes inalmbricas, sino que incluso puede hacer que se ejecute ms rpido.
En primer lugar, elegir un servidor en el que alojar su squid cache. Tpicamente, esta ser una Linux o BSD
mquina en su red de cable local, aunque el calamar tambin se ejecuta en Windows, bajo Cygwin
(
http://www.cygwin.com
). Usted quiere tener una conexin rpida a su cach, por lo que la eleccin de un calamar cach
en el otro extremo de una conexin dial-up es probablemente una mala idea (a menos que te gusta la simulacin de lo que el
Internet fue como en 1995). En una red domstica, el servidor que utiliza para su squid cache suele ser el
misma mquina se utiliza como un rewall o un servidor DNS. Afortunadamente, el calamar no es muy exigente cuando se
soporta pocos usuarios simultneos, por lo que felizmente se puede compartir una caja que ejecuta otros servicios.
Lleno de calamar instrucciones de instalacin estn fuera del alcance de este hack, pero la conguracin no sea especialmente
difcil. Slo asegrese de revisar sus reglas de acceso y establecer una contrasea para la interfaz de administracin. Si
tiene problemas para conseguir que se ejecute, echa un vistazo a Jennifer Vesperman de "Instalacin y conguracin de Squid"
(
http://linux.oreillynet.com/pub/a/linux/2001/07/26/squid.html
).
Cuando el calamar est instalado y en funcionamiento, que se une al puerto TCP 3128 de manera predeterminada. Una vez que haya que correr,
usted debe probar de forma manual mediante el establecimiento de su proxy HTTP al servidor. Por ejemplo, suponga que su
servidor ejecuta proxy.example.com . En Mozilla, vaya a Preferencias ! Avanzado ! proxies, como se muestra en
Figura 10-1 .
Figura 10-1. Pruebas de calamar utilizando el campo Proxy HTTP en Mozilla
Entrar
proxy.example.com
como el host proxy HTTP y
3128
para el puerto. Haga clic en Aceptar, y tratar de cargar cualquier
la pgina web. Usted debe ver de inmediato la pgina solicitada. Si usted ve un error de acceso denegado,
Pgina 322
mirar por encima de la
http_access
lneas en su squid.conf , y reiniciar el calamar si es necesario.
Una vez que est satisfecho de que usted tiene un feliz calamar , necesita slo hacia delante de su conexin a la vuelta
SSH. Congure una escucha local en el puerto 3128, remitindole
proxy.example.com: 3128
de esta manera:
rob @ Calgula: $ ssh-L 3128: localhost: 3128 proxy.example.com-f-N
Esto congura un tnel SSH y horquillas en el fondo de forma automtica. A continuacin, cambiar el HTTP
host proxy en su navegador para
localhost
, Y volver a cargar la pgina. Siempre y cuando su tnel SSH est funcionando,
el trco de su web se cifrar todo el camino hasta proxy.example.com , donde se descifra y se enva
en Internet.
La mayor ventaja de esta tcnica (en comparacin con el uso de los SOCKS de proxy SSH 4 [Hack # 99] ) Es
que prcticamente todos los navegadores admiten el uso de proxies HTTP, mientras que no todos los navegadores soporta SOCKS
4. Adems, si usted est utilizando Mac OS X, soporte para proxies HTTP est integrado en el sistema operativo en s. Este medio
que cada solicitud debidamente redactada utilizar la conguracin del proxy transparente.
Tenga en cuenta que los proxies HTTP tienen las mismas dicultades con DNS como SOCKS 4 proxies, a n de mantener los
puntos en cuenta al utilizar el proxy. Normalmente, el calamar de proxy se utilizar a partir de una red local,
por lo que no se debe ejecutar en el tema esquizofrenia DNS. Pero el calamar puede funcionar tericamente en cualquier lugar
(Incluso detrs de un cortafuegos a distancia), as que asegrese de revisar las notas en DNS en "Utilizar SSH Como SOCKS
Proxy "[Hack # 99] .
Ejecucin de calamar tomas un poco ms de preparacin, pero puede a la vez seguro y acelerar el trco de su web
cuando vas inalmbrica. calamar apoyar el mayor nmero de usuarios inalmbricos simultneos como usted se preocupa de
lanzar en l, as que asegrese de congurarlo para todos sus usuarios inalmbricos regulares y mantener el trco de su web
privado.
Rob Flickenger
Pgina 323
Hack # 99. Utilice SSH Como SOCKS Proxy
Protege tu trco web mediante la funcionalidad bsica de VPN incorporado en SSH en s.
En la bsqueda de la manera perfecta para proteger sus redes inalmbricas, muchas personas pasan por alto uno de los
mayora de las caractersticas tiles de SSH: la
-D
cambiar. Este pequeo simple interruptor est enterrado cerca de la parte inferior de la
Pgina de manual de SSH. He aqu una cita directa de la pgina de manual:
-D puerto
Especica una "dinmica" de reenvo de puertos a nivel de aplicacin local. Esto funciona mediante la asignacin de una toma de
escuchar a puerto en el lado local, y cada vez que se realiza una conexin a este puerto, la conexin es
transmiti por el canal seguro, y el protocolo de aplicacin se utiliza para determinar dnde
conectarse de la mquina remota. En la actualidad el protocolo SOCKS 4 es compatible, y SSH actuar
como un servidor SOCKS 4. Slo root puede reenviar puertos privilegiados. Reenvos de puertos dinmicos tambin pueden ser
especicado en el archivo de conguracin.
Esta resulta ser una caracterstica increblemente til si tiene un software que es capaz de utilizar un SOCKS 4
proxy. Es efectivamente le da una encriptado servidor proxy instantneo a cualquier mquina a la que se puede
SSH, y lo hace sin necesidad de software adicional en cualquiera de su mquina o servidor remoto.
Al igual que con el reenvo de puertos SSH [Hack # 96] , La
-D
interruptor se une al puerto local especicado, encripta
cualquier trco a ese puerto, lo enva por el tnel, y la descifra en el otro lado. Por ejemplo, para establecer
un SOCKS 4 proxy desde el puerto local 8080 al remoto , escriba lo siguiente:
rob @ Calgula: $ ssh-D 8080
remoto
Eso es todo lo que hay que hacer. Ahora slo tiene que especicar
localhost: 8080
como SOCKS 4 proxy en su
aplicacin y todas las conexiones realizadas por esa aplicacin sern enviados por el tnel encriptado. Para
ejemplo, para congurar el proxy SOCKS en Mozilla, vaya a Preferencias ! Avanzado ! proxies, como se muestra en
Figura 10-2 .
Pgina 324
Figura 10-2. La conguracin del proxy en Mozilla
Seleccione "Conguracin manual del proxy" y escriba
localhost
como el antrin SOCKS. Introduzca el nmero de puerto
que ha aprobado a la
-D
cambiar, y asegurate de revisar el botn SOCKSv4.
Haga clic en Aceptar, y ya est terminado. Todo el trco que genera Mozilla est ahora codicado y aparece
que proceden de la mquina remota a la que ha iniciado sesin en con SSH. Cualquier persona que escucha a su
trco inalmbrico ahora ve un gran volumen de trco SSH encriptado, pero los datos reales es as
protegida.
Un punto importante es que SOCKS 4 no tiene soporte nativo para el trco de DNS. Esto tiene dos importantes
efectos secundarios a tener en cuenta cuando se utiliza para asegurar las transmisiones inalmbricas.
En primer lugar, las bsquedas de DNS estn siendo enviados en el claro. Esto signica que cualquiera que escuche en todava se puede ver la
nombres de los sitios que explora, a pesar de las URL reales y los datos estn oscurecidos. Esto no suele ser un
riesgo para la seguridad, pero es importante tener en cuenta.
En segundo lugar, usted todava est utilizando un servidor DNS local, pero el trco se origina en el extremo remoto de la
proxy. Esto puede tener interesantes (y no deseados) efectos secundarios cuando se intenta acceder privado
recursos de la red.
Para ilustrar los problemas sutiles que esto puede causar, considere una red corporativa tpica con una web
servidor llamado intranet.example.com . Este servidor web utiliza el 192.168.1.10 direccin privada, pero es
accesible desde Internet a travs del uso de un servidor de seguridad de reenvo. El servidor DNS para
intranet.example.com normalmente responde con direcciones IP diferentes, dependiendo de si la solicitud
viene, tal vez usando la funcionalidad vistas en BIND 9. Cuando viene de Internet,
normalmente acceder intranet.example.com con la direccin IP 208.201.239.36, que es en realidad la
Direccin IP de la parte externa del rewall corporativo.
Ahora, supongamos que usted est usando el proxy de SOCKS ejemplo slo se muestra, y la distancia es en realidad un
mquina, detrs del rewall corporativo. El servidor DNS local devuelve 208.201.239.36 como la IP
abordar para intranet.mybusiness.com (dado que est buscando el nombre desde fuera del rewall), pero
Pgina 325
la peticin HTTP en realidad proviene de distancia y trata de ir a 208.201.239.36. Esto es a menudo
prohibido por las reglas del cortafuegos, ya que los usuarios internos se supone que deben tener acceso a la intranet de su
direccin IP interna, 192.168.1.10. Cmo se puede solucionar este esquizofrenia DNS?
Un mtodo simple para evitar este problema es hacer uso de un local de hosts de archivos en su mquina. Aadir un
entrada como esta a / etc / hosts (o el equivalente en su sistema operativo):
192.168.1.10 intranet.example.com
De esta manera, usted puede enumerar cualquier nmero de hosts que son accesibles slo desde el interior de su
rewall corporativo. Cuando intenta examinar a uno de esos sitios desde su mquina local a travs de
remoto
(A travs del proxy SOCKS), el local de hosts archivo es consultado antes de DNS, por lo que la direccin IP privada
se utiliza. Dado que esta solicitud se hace realmente de
remoto
, Que encuentra su camino hacia el servidor interno sin
problemas. Del mismo modo, las respuestas llegan de vuelta en el proxy SOCKS en
remoto
, Estn encriptados y procesados
por encima de su tnel SSH, y aparecer en su navegador como si vinieran desde Internet.
SOCKS est previsto 5 apoyo a la prxima versin de SSH, que tambin har DNS tnel
resolucin posible. Esto es especialmente interesante para los usuarios de Mac OS X, ya que no hay apoyo en el sistema operativo para
SOCKS 5 proxy. Una vez SSH soporta SOCKS 5, todas las aplicaciones de OS X nativo ser automticamente
capaces de tomar ventaja de la encriptacin de proxies SOCKS SSH. Mientras tanto, slo tendremos que conformarnos
para proxies HTTP cifrados [Hack # 98] .
Rob Flickenger
Pgina 326
Hack # 100. Cifrar y Tnel de trco con SSL
Utilice stunnel aadir encriptacin SSL para cualquier servicio de red.
stunnel (
http://www.stunnel.org
) Es un programa potente y exible que, mediante SSL, puede cifrar
el trco hacia y desde cualquier puerto TCP de varias maneras diferentes. stunnel puede conexiones de tnel, al igual que
SSH puede, proporcionando un puerto local al que conectarse. Se cifra el trco enviado a este puerto, la remite al
un sistema remoto, descifra el trco y nalmente la enva a un puerto local en ese sistema. stunnel puede
tambin proporcionan soporte SSL transparente para inetd servicios compatibles.
Edicio Stunnel
Para instalar stunnel , simplemente ejecute
. / Congure
desde el directorio que se cre al desempaquetar el
chero de archivo que ha descargado. Desde stunnel requiere OpenSSL (
http://www.openssl.org
),
descargar e instalar la primera si no est ya instalado. Si usted desea compilar stunnel con
TCP wrappers apoyar o instalar OpenSSL en una ubicacin no estndar, es probable que desee hacer uso
de los
- With-tcp-wrappers
o
- With-ssl
opciones de lnea de comandos para congurar .
Por ejemplo, el siguiente comando congura stunnel para incluir el soporte de envoltura TCP, utilizando el
Instalacin de OpenSSL bajo / opt :
$ . / congure - with-tcp-wrappers - with-ssl = / opt / openssl
Despus de ejecutar el script, ejecute
hacer
compilar realidad stunnel. A continuacin se le pedir informacin
para crear un certicado auto-rmado. Este certicado auto-rmado tendr una vigencia de un ao solamente. Si este es
no lo que usted quiere, usted debe crear su propio certicado y entidad emisora de certicados [Hack # 69] .
Con las versiones 3.x anteriores de stunnel , era posible congurar todas las opciones de la lnea de comandos.
Las versiones ms recientes 4.x hacen uso de un archivo de conguracin, stunnel.conf . Un archivo de conguracin de ejemplo puede
por lo general se encuentran en / etc / stunnel / stunnel.conf muestras o / usr / local / etc / stunnel / stunnel.conf-muestra local .
Conguracin stunnel
Vamos a echar un vistazo a la forma bsica de un archivo de conguracin que se utiliza para reenviar un puerto local a un puerto remoto
con stunnel.
Aqu est el lado del cliente:
pid =
client = s
[<puerto <server]
accept = <forwarded <puerto
connect = <remote IP>: <server <puerto
Y aqu est el lado del servidor:
cert = / etc / stunnel / stunnel.pem
pid =
cliente = sin
[<puerto <forwarded]
accept = <server <puerto
connect = <forwarded <puerto
Usted puede utilizar el archivo de conguracin por defecto o elegir otro archivo. Si desea utilizar el valor por defecto
archivo de conguracin, usted puede comenzar a stunnel sin argumentos. De lo contrario, especique la conguracin
Pgina 327
presentar como primer argumento para stunnel .
Con el ajuste anterior, un programa ser capaz de conectarse a
<forwarded <puerto
en el lado del cliente. Entonces
stunnel cifrar el trco que recibe en este puerto y enviarlo a
<server <puerto
en el control remoto
sistema especicado por
<remote electrnico>
. En el sistema remoto, stunnel descifrar el trco que
recibe en este puerto y lo remitir al programa que est escuchando en el
<forwarded <puerto
en el control remoto
sistema.
Aqu est el formato para el equivalente de ssh comando reenvo de puertos:
ssh-f-N-L < puerto redirigido >: < direccin remota >: < puerto redirigido > \
< direccin remota >
Si desea especicar un archivo de ID del proceso, se puede establecer el
pid
variable para cualquier nombre de archivo que desee.
Al salir de la
pid
variable en el chero de conguracin sin darle un valor hace stunnel para no crear
un archivo PID. Sin embargo, si dejar de lado la
pid
variables completamente, stunnel tratar de crear ya sea
/ Var / run / stunnel.pid o / usr / local / var / run / stunnel.pid (es decir, $ prejo / var / run / stunnel.pid ), en funcin de
cmo lo congur en tiempo de compilacin.
Cifrado de Servicios
Adems de ofrecer el reenvo de puertos de estilo SSH, stunnel tambin se puede usar para aadir capacidades de SSL para
inetd servicios de estilo que no tienen funcionalidad SSL nativo, como el correo electrnico o cualquier otro servicio.
He aqu un inetd.conf de entrada para la herramienta de administracin Web de Samba (SWAT):
raz nowait.400 stream tcp swat / usr / local / samba / bin / swat swat
Para aadir soporte SSL para SWAT, primero tiene que crear un archivo de conguracin para stunnel a utilizar. Llmelo
swat.conf y ponerlo en / etc / stunnel :
cert = / etc / stunnel / swat.pem
Exec = / usr / local / samba / bin / swat
execargs = swat
Modique la entrada en inetd.conf para parecerse a esto:
corriente swat raz nowait.400 tcp / usr / sbin / stunnel stunnel \
/ Etc / stunnel / swat.conf
Ahora, usted puede acceder a SWAT de forma segura con su navegador web compatible con SSL favorito.
Alternativamente, usted puede acabar con inetd por completo y ha stunnel escuchar las conexiones de
clientes y luego generan el proceso de servicio a s mismo. Crear un archivo de conguracin con contenidos similares a
siguientes:
cert = / etc / stunnel / swat.pem
[SWAT]
accept = 901
Exec = / usr / local / samba / bin / swat
execargs = swat
A continuacin, inicie stunnel con la ruta al chero de conguracin:
# stunnel / etc / stunnel / swat.conf
Adems, se puede iniciar en el arranque al poner la orden anterior en el script de inicio (es decir,
/ Etc / rc.local ).
Pgina 328
stunnel es una herramienta de gran alcance: no slo puede reenviar conexiones a travs de un tnel encriptado, pero puede
tambin se puede utilizar para agregar capacidades SSL para servicios comunes. Esto es especialmente agradable cuando los clientes con
Soporte SSL para estos servicios ya existentes. En este caso, puede usar stunnel nicamente en el lado del servidor,
habilitar el cifrado para el servicio sin necesidad de que el cliente que instalar ningn software adicional.
Pgina 329
Hack # 101. Conexiones tnel dentro HTTP
Romper a travs de rewalls draconianas mediante httptunnel.
Si alguna vez has estado en la carretera y se encontrara en un lugar donde la nica conexin con el
mundo exterior es a travs de un rewall muy restrictivo, usted probablemente sabe que el dolor de tratar de hacer
aparte de enviar y recibir correo electrnico o navegar por la web bsico nada.
Aqu es donde httptunnel (
http://www.nocrew.org/software/httptunnel.html
) Viene al rescate.
httptunnel es un programa que le permite a las conexiones arbitrarias del tnel a travs del protocolo HTTP a un
host remoto. Esto es especialmente til en situaciones como la que se mencion anteriormente, cuando el acceso web es
permitidos, pero todos los dems servicios son negados.
Por supuesto, usted podra utilizar cualquier tipo de software de tnel y congurarlo para utilizar el puerto 80, pero donde
habr que dejar si el rewall es en realidad un Proxy? Esto es aproximadamente el mismo que una aplicacin-
capa de rewall y aceptar las peticiones HTTP vlidas. Afortunadamente, httptunnel puede hacer frente a estos como
as.
Para compilar httptunnel, descargue el archivo tar y ejecutar
. / Congure
y
hacer
:
$ tar xfz httptunnel-3.3.tar.gz
$ cd httptunnel-3.3
$ . / congure && make
Instlalo ejecutando
make install
, Que se instala todo bajo / usr / local . Si desea instalarlo
en otro lugar, puede utilizar el estndar
- Prex =
opcin al congure script.
El httptunnel programa cliente se llama htc , y el servidor es hts . Como stunnel [Hack # 100] , httptunnel
se puede utilizar para escuchar en un puerto TCP local para conexiones, reenviar el trco que recibe en este
puerto a un servidor remoto, y luego descifrar y reenviar el trco a otro puerto situado fuera del tnel.
Pruebe un tnel de una conexin SSH a travs de HTTP. En el servidor, ejecute un comando similar al siguiente:
# hts-F localhost: 22 80
Ahora, ejecute un comando similar al siguiente en el cliente:
# htc-F 2222 coloso: 80
En este caso, coloso es el servidor remoto y htc est escuchando en el puerto 2222. Usted puede utilizar el estndar
el puerto 22 si no est ejecutando un local de sshd . Si tiene curiosidad, puede comprobar que el htc est escuchando en
puerto 2222 mediante el uso de lsof :
# / usr / sbin / lsof-i | grep htc
htc 2323 raz 6u IPv4 0x02358a30 0T0 TCP *: 2222 (ESCUCHAR)
Ahora, trata de salir del tnel:
[Andrew andrew @ kryten] $ ssh-p 2222 localhost
andrew de @ localhost password:
[Andrew andrew @ coloso] $
Tambin puede hacer conexiones hacia adelante a otras mquinas distintas de aquella en la que se est ejecutando hts . Slo
reemplazar la
localhost
en el
hts
comando con el host remoto al que desee reenviar.
Por ejemplo, para reenviar la conexin al example.com lugar de coloso , ejecute este comando:
# hts-F example.com: 22 80
Pgina 330
Si tienes curiosidad por ver lo que una conexin SSH tnel a travs del protocolo HTTP se parece, que
puede tener una mirada en ella con un comprobador de paquetes. Aqu est la porcin inicial de la corriente de TCP que se enva a
la httptunnel servidor por el cliente:
POSTE / index.html? Crap = 1071364879 HTTP/1.1
Antrin: example.com: 80
Content-Length: 102400
Connection: close
SSH-2.0-OpenSSH_3.6.1p1 + CAN-2003 hasta 0693
Si el tnel tiene que ir a travs de un proxy web, no se necesita ninguna conguracin adicional, siempre y cuando el
proxy es transparente y no requiere autenticacin. Si el proxy no es transparente, puede
especicarlo con la
-P
cambiar. Adems, si usted necesita para autenticarse con el proxy, tendr que
para hacer uso de la
-Un
o
- Proxy-autorizacin
opciones, que permiten especicar un nombre de usuario y
contrasea con la que autenticar.
Aqu es cmo utilizar estas opciones:
# htc-P myproxy: 8000-A andrew: micontrasea-F 22 coloso: 80
Si el puerto que el proxy escucha es el puerto del servidor proxy de Internet estndar (8080), slo puede especicar el
proxy utilizando su direccin IP o nombre de host.
Pgina 331
Hack # 102. Tnel con VTun y SSH
Conecte dos redes utilizando VTun y una sola conexin SSH.
VTun es un servidor de tnel de espacio de usuario, lo que permite redes enteras a un tnel entre s utilizando el tun
controlador del ncleo tnel universal. Un tnel cifrado como VTun permite la itinerancia clientes inalmbricos
garantizar la totalidad de su trco IP con cifrado de alta seguridad. En la actualidad se ejecuta en Linux, BSD y Mac OS
X.
TIP
Los ejemplos en este hack asumen que est usando Linux.
El siguiente procedimiento permite a un host con una direccin IP privada (10.42.4.6) para que aparezca un nuevo tnel
interfaz con una real, vivo, enruta direccin IP (208.201.239.33), que funciona como se espera, como si el privado
red ni siquiera estaban all. Usted puede lograr esto al traer el tnel, dejando caer el valor por defecto
ruta, y luego la adicin de una nueva ruta predeterminada a travs del otro extremo del tnel.
Esto es el principio, la conguracin de red pretunneled:
root @ cliente: # ifcong eth2
eth2 Link encap: Ethernet HWaddr 00:02:2 D: 2A: 27: EA
inet addr: 10.42.3.2 BCAST: 10.42.3.63 Mscara: 255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU: 1500 Mtrica: 1
RX packets: 662 errors: 0 cado: 0 sobrecostos: 0 frame: 0
Paquetes de TX: 733 errores: 0 cado: 0 sobrecostos: 0 portador: 0
: 0 colisiones txqueuelen: 100
RX bytes: 105616 (103.1 Kb) TX bytes: 74259 (72.5 Kb)
Interrupcin: 3 Direccin base: 0x100
root @ cliente: # route
Tabla de enrutamiento IP del Kernel
Banderas Destino Puerta Genmask Metric Ref Uso de Iface
10.42.3.0 * 255.255.255.192 U 0 0 0 eth2
loopback * 255.0.0.0 U 0 0 0 lo
predeterminada 10.42.3.1 0.0.0.0 UG 0 0 0 eth2
Como puede ver, la red local es 10.42.3.0/26, la direccin IP es 10.42.3.2 y la puerta de enlace predeterminada
es 10.42.3.1. Este portal proporciona traduccin de direcciones de red (NAT) a Internet. Esto es lo que el
camino hacia yahoo.com aspecto:
root @ cliente: # traceroute-n yahoo.com
Ruta de seguimiento de yahoo.com (64.58.79.230), 30 hops max, 40 byte packets
1 10.42.3.1 2.848 ms 2.304 ms 2.915 ms
2 209.204.179.1 16.654 ms 16.052 ms 19.224 ms
3 208.201.224.194 20.112 ms 20.863 ms 18.238 ms
4 208.201.224.5 213.466 ms 338.259 ms 357.7 ms
5 206.24.221.217 20.743 ms 23.504 ms 24.192 ms
6 206.24.210.62 22.379 ms 30.948 ms 54.475 ms
7 206.24.226.104 94.263 ms 94.192 ms 91.825 ms
8 206.24.238.61 97.107 ms 91.005 ms 91.133 ms
9 206.24.238.26 95.443 ms 98.846 ms 100.055 ms
10 216.109.66.7 92.133 ms 97.419 ms 94,22 ms
11 216.33.98.19 99.491 ms 94.661 ms 100.002 ms
12 216.35.210.126 97.945 ms 93.608 ms 95.347 ms
13 64.58.77.41 98.607 ms 99.588 ms 97.816 ms
En este ejemplo, estamos conectando a un servidor de tnel en el Internet en 208.201.239.5. Cuenta con dos de repuesto
direcciones IP vivos (208.201.239.32 y 208.201.239.33) que se utilizarn para tunelizacin. Nos referiremos a la
mquina que el servidor y nuestra mquina local como cliente .
Pgina 332
Conguracin VTun
Ahora, vamos a entrar en el tnel en funcionamiento. En primer lugar, cargue el tun conductor en ambas mquinas:
# modprobe tun
TIP
Vale la pena sealar que el tun conductor veces fallar si las versiones de servidor y cliente del kernel no coinciden. Para obtener los mejores resultados, utilice un
ncleo reciente (y la misma versin) en ambas mquinas.
En el equipo servidor, guarde este archivo en / usr / local / etc / vtund.conf :
Opciones {
puerto 5000;
ifcong / sbin / ifcong;
ruta / sbin / route;
auth syslog;
}
default {
comprimir no;
Velocidad 0;
}
casa {
escriba tun;
proto tcp;
stat s;
KEEPALIVE s;
pasar shhh; # Contrasea es OBLIGATORIO.
up {
ifcong "%% 208.201.239.32 208.201.239.33 pointopoint";
programa / sbin / arp "-Ds 208.201.239.33%% de pub";
programa / sbin / arp "-Ds 208.201.239.33 pub eth0";
ruta "add-net 208.201.239.33 10.42.0.0/16 gw";
};
abajo {
programa / sbin / arp "-d 208.201.239.33-i%%";
programa / sbin / arp "-d 208.201.239.33-i eth0";
ruta "del-net 10.42.0.0/16 gw 208.201.239.33";
};
}
Inicie el vtund servidor, as:
root @ server: # vtund-s
Ahora, vas a necesitar un vtund.conf archivo para el lado del cliente. Prueba con esto, de nuevo en / usr / local / etc / vtund.conf :
Opciones {
puerto 5000;
ifcong / sbin / ifcong;
ruta / sbin / route;
}
default {
Pgina 333
comprimir no;
Velocidad 0;
}
casa {
escriba tun;
proto tcp;
KEEPALIVE s;
pasar shhh; # Contrasea es OBLIGATORIO.
up {
ifcong "%% 208.201.239.33 208.201.239.32 pointopoint arp";
ruta "add 208.201.239.5 gw 10.42.3.1";
ruta "del defecto";
ruta "add default gw 208.201.239.32";
};
abajo {
ruta "del defecto";
ruta "del 208.201.239.5 gw 10.42.3.1";
ruta "add default gw 10.42.3.1";
};
}
Pruebas VTun
Por ltimo, es el momento para poner a prueba VTun ejecutando este comando en el cliente:
root @ cliente: # servidor domstico vtund-p
Presto! No slo usted tiene un tnel entre el cliente y el servidor, pero tambin hay una nueva
ruta predeterminada a travs del otro extremo del tnel. Echa un vistazo a lo que sucede cuando se
traceroute
a
yahoo.com con el tnel en su lugar:
root @ cliente: # traceroute-n yahoo.com
Ruta de seguimiento de yahoo.com (64.58.79.230), 30 hops max, 40 byte packets
1 208.201.239.32 24.368 ms 28.019 ms 19.114 ms
2 208.201.239.1 21.677 ms 22.644 ms 23.489 ms
3 208.201.224.194 20,41 ms 22.997 ms 23.788 ms
4 208.201.224.5 26.496 ms 23.8 ms 25.752 ms
5 206.24.221.217 26.174 ms 28.077 ms 26.344 ms
6 206.24.210.62 26.484 ms 27.851 ms 25.015 ms
7 206.24.226.103 104,22 ms 114.278 ms 108.575 ms
8 206.24.238.57 99.978 ms 99.028 ms 100.976 ms
9 206.24.238.26 103.749 ms 101.416 ms 101,09 ms
10 216.109.66.132 102.426 ms 104.222 ms 98.675 ms
11 216.33.98.19 99.985 ms 99.618 ms 103.827 ms
12 216.35.210.126 104.075 ms 103.247 ms 106.398 ms
13 64.58.77.41 107.219 ms 106.285 ms 101.169 ms
Esto signica que cualquier proceso de servidor que se ejecutan en el cliente ahora estn totalmente disponibles a Internet, en la IP
abordar 208.201.239.33. Todo esto ha ocurrido sin hacer un solo cambio (por ejemplo, el reenvo de puertos)
en el gateway 10.42.3.1.
Esto es lo que la nueva interfaz de tnel se ve como en el cliente:
root @ cliente: # ifcong tun0
tun0 Link encap: Point-to-Point Protocol
inet addr: 208.201.239.33 PtP: Mscara 208.201.239.32: 255.255.255.255
UP POINTOPOINT RUNNING MULTICAST MTU: 1500 Mtrica: 1
RX packets: 39 errors: 0 cado: 0 sobrecostos: 0 frame: 0
Pgina 334 Paquetes TX: 39 errores: 0 cado: 0 sobrecostos: 0 portador: 0
: 0 colisiones txqueuelen: 10
Bytes RX: 2220 (2.1 Kb) TX bytes: 1560 (1.5 Kb)
Y aqu est la tabla de enrutamiento de actualizacin:
root @ cliente: # ruta
Tabla de enrutamiento IP del Kernel
Banderas Destino Puerta Genmask Metric Ref Uso de Iface
208.201.239.5 10.42.3.1 255.255.255.255 UGH 0 0 0 eth2
208.201.239.32 * 255.255.255.255 UH 0 0 0 tun0
10.42.3.0 * 255.255.255.192 U 0 0 0 eth2
10.42.4.0 * 255.255.255.192 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default 208.201.239.32 0.0.0.0 UG 0 0 0 tun0
TIP
Usted tendr que mantener una ruta de host a la direccin IP del servidor de tnel a travs de la antigua puerta de enlace predeterminada; de lo contrario, el trco del tnel no puede conseguir
cabo.
Para bajar el tnel, basta con matar al vtund proceso en el cliente. Esto restablece todos los ajustes de la red
de vuelta a sus estados originales.
Cifrar el Tnel
Este mtodo funciona bien si usted confa VTun utilizar el cifrado fuerte y de estar libre de control remoto
exploits. Personalmente, no creo que se puede ser demasiado paranoico cuando se trata de mquinas conectadas a la
Internet. Para utilizar VTun sobre SSH (y por lo tanto contar con la autenticacin fuerte y cifrado que
SSH proporciona), simplemente reenviar el puerto 5000 en el cliente para el mismo puerto en el servidor:
root @ cliente: # ssh-f-N-c pez globo-C-L5000: localhost: 5000 servidor
root @ cliente: # vtund-p localhost casa
root @ cliente: # traceroute-n yahoo.com
Ruta de seguimiento de yahoo.com (64.58.79.230), 30 hops max, 40 byte packets
1 208.201.239.32 24.715 ms 31.713 ms 29.519 ms
2 208.201.239.1 28.389 ms 36.247 ms 28.879 ms
3 208.201.224.194 48.777 ms 28.602 ms 44.024 ms
4 208.201.224.5 38.788 ms 35.608 ms 35,72 ms
5 206.24.221.217 37.729 ms 38.821 ms 43.489 ms
6 206.24.210.62 39.577 ms 43.784 ms 34.711 ms
7 206.24.226.103 110.761 ms 111.246 ms 117,15 ms
8 206.24.238.57 112.569 ms 113,2 ms 111.773 ms
9 206.24.238.26 111.466 ms 123.051 ms 118,58 ms
10 216.109.66.132 113,79 ms 119.143 ms 109.934 ms
11 216.33.98.19 111.948 ms 117.959 ms 122.269 ms
12 216.35.210.126 113.472 ms 111.129 ms 118.079 ms
13 64.58.77.41 110.923 ms 110.733 ms 115,22 ms
Para desalentar las conexiones a vtund en el puerto 5000 del servidor, agregar una regla Netlter para dejar las conexiones
del mundo exterior:
root @ server: # iptables-A INPUT-t lter-i eth0 \
-P tcp - dport 5000-j DROP
Esto permite que las conexiones locales a conseguir a travs de (ya que utilizan loopback) y por lo tanto requiere un SSH
tnel para el servidor antes de aceptar una conexin.
Como puede ver, VTun puede ser una herramienta muy til para tener alrededor. Adems de dar a IP en directo
las direcciones a las mquinas detrs de un dispositivo NAT, puede conectar de manera efectiva dos redes si puedes
Pgina 335
obtener una sola conexin SSH entre ellos (procedente de cualquier direccin).
Si tu cabeza es la natacin de esta conguracin VTun o te sientes perezoso y no quiere entender
qu hay que cambiar la hora de establecer su propio cliente vtund.conf archivo, echar un vistazo a la automtica
vtund.conf generador [Hack # 103] .
Rob Flickenger
Pgina 336
Hack # 103. Generar VTun Conguraciones automticamente
Generar un archivo vtund.conf sobre la marcha para que coincida con las condiciones cambiantes de la red.
Si acabas de llegar de "Tnel con VTun y SSH" [Hack # 102] , el siguiente script
generar automticamente un trabajo vtund.conf archivo para el lado del cliente.
Si usted no ha ledo el hack anterior (o si usted nunca ha usado VTun), volver y leerlo antes de
tratando de asimilar este pedacito de Perl. En esencia, se trata de tomar las conjeturas de cambiar
alrededor de la tabla de enrutamiento en el lado del cliente de auto-deteccin de la puerta de enlace predeterminada y la construccin
vtund.conf en consecuencia.
El Cdigo
Guarde este archivo como vtundconf , y ejecutar el script cada vez que use una nueva red inalmbrica para generar un
apropiada vtund.conf sobre la marcha:
#! / Usr / bin / perl-w
#
# Vtund envoltorio en la necesidad de un mejor nombre.
#
# (C) 2002 Schuyler Erle y Rob Flickenger
#
# # # # # # # # # # # # # # # # CONFIGURACIN
# Si TunnelName est en blanco, el reiniciador mire @ ARGV o $ 0.
#
# Cong es TunnelName, LocalIP, RemoteIP, TunnelHost, TunnelPort, Secret
#
my $ TunnelName = "";
my $ Cong = Q {
casa 208.201.239.33 208.201.239.32 208.201.239.5 5000 shhh
tunnel2 10.0.1.100 10.0.1.1 192.168.1.4 6001 foobar
};
# # # # # # # # # # # # # # # # Programa principal EMPIEZA AQU
utilizar POSIX 'tmpnam';
use IO :: File;
utilizar File :: Nombre base;
use strict;
# Dnde encontrar las cosas ...
#
$ ENV {PATH} = "/ bin :/ usr / bin :/ usr / local / bin :/ sbin :/ usr / sbin :/ usr / local / [RETURN] sbin";
my $ IP_Match = '((:. \ d {1,3} \) {3} \ d {1,3})'; # Coincidir xxx.xxx.xxx.xxx
my $ Ifcong = "ifcong-a";
my $ Netstat = "netstat-rn";
my $ Vtund = "/ bin / echo";
my $ debug = 1;
# Cargue la plantilla de la seccin de datos.
#
my $ template = join ("",);
# Abra un archivo temporal - adaptado de Perl Cookbook, primero Ed, sec.. 7.5.
#
my ($ archivo, $ name) = ("", "");
$ Name = tmpnam ()
hasta $ le = IO :: File-> new ($ name, O_RDWR | O_CREAT | O_EXCL);
END {unlink ($ name) o advertir "No se puede eliminar el nombre de archivo temporal $ \ n"; }
Pgina 337
# Si no se especica ningn TunnelName, utilice la primera cosa en la lnea de comandos,
# O si no hay uno, el nombre base del guin.
# Esto permite a los usuarios crear enlaces simblicos de diferentes nombres de los tneles con el mismo guin.
#
$ TunnelName | | = cambio (@ ARGV) | | basename ($ 0);
die "No se puede determinar la conguracin del tnel de usar \ n" menos $ TunnelName;
# Analizar cong.
#
my ($ LocalIP, $ RemoteIP, $ TunnelHost, $ TunnelPort, $ Secreto);
for (split (/ \ r * \ n + /, $ Cong)) {
my ($ conf, @ vars) = grep ($ _ ne "", divisin (/ \ s + /));
siguiente si no $ conf o $ conf = / ^ \ s * # / o; # Saltar lneas en blanco, comentarios
if ($ eq conf $ TunnelName) {
($ LocalIP, $ RemoteIP, $ TunnelHost, $ TunnelPort, $ Secreto) = @ vars;
ltima;
}
}
die "No se puede determinar la conguracin para TunnelName '$ TunnelName'! \ n"
menos $ RemoteIP y $ TunnelHost y $ TunnelPort;
# Busque la puerta de enlace predeterminada.
#
my ($ GatewayIP, $ dispositivo externo);
de (qx {$ Netstat}) {
# En Linux y BSD, la puerta de entrada es el siguiente paso en la lnea,
# Y la interfaz es el ltimo.
#
if (/ ^ (:?.? 0.0.0.0 | predeterminado) \ s + (\ S +) \ s + * (\ S +) \ s * $ / o) {
$ GatewayIP = $ 1;
$ Dispositivo externo = $ 2;
ltima;
}
}
die "No se puede determinar la puerta de enlace por defecto \ n" menos que $ y $ GatewayIP dispositivo externo;
# Calcula la LocalIP y LocalNetwork.
#
my ($ LocalNetwork);
my ($ iface de, $ dir, $ hasta, $ cadena, $ mask) = "";
sub compute_netmask {
($ Dir, $ mask) = @ _;
# Tenemos para enmascarar $ addr con $ mask porque linux / sbin / route
# Queja si la direccin de red no coincide con la mscara de red.
#
mi @ ip = split (/ \ /, $ dir.);
mi @ mask = split (/ \ /, $ mscara.);
$ Ip [$ _] = ($ ip [$ _] + 0) y ($ mscara [$ _] + 0) para (0 .. $ # ip);
$ Addr = join (, @ ip ".");
return $ addr;
}
de (qx {$ Ifcong}) {
ltima a menos que $ _ denida;
# Si conseguimos un nuevo dispositivo, esconder la anterior (si lo hubiera).
if (/ ^ ([^ \ s:] +) / o) {
if ($ iface de eq $ dispositivo externo y $ red y $ hasta) {
$ = $ LocalNetwork red;
Pgina 338
ltima;
}
$ Del iface = $ 1;
$ Hasta = 0;
}
# Obtiene la mscara de red para la interfaz actual.
if (/ addr: $ IP_Match * mscara:.? $ IP_Match / io) {
# Ifcong estilo Linux.
compute_netmask ($ 1, $ 2);
$ Red = "mscara de red $ $ addr mscara";
} Elsif (/ inet $ IP_Match. *? 0x mscara ([a-f0-9] {8}) / io) {
Ifcong # del estilo BSD.
($ Dir, $ mask) = ($ 1, $ 2);
$ Mask = join (".", Mapa (hex $ _ $ mask = / (..) / gs));
compute_netmask ($ dir, $ mask);
$ Red = "$ dir / $ mscara";
}
# No haga caso de interfaces que son dispositivos de bucle invertido o no han subido.
$ Iface de = "" si / \ bLOOPBACK \ b / o;
$ Hasta + + si / \ BUP \ b / o;
}
die "No se puede determinar la direccin IP local \ n" menos $ LocalIP y $ LocalNetwork;
Variables dependientes # Set OS.
#
my ($ GW, $ NET, $ PTP);
if ($ ^ eq O "linux") {
$ GW = "gw"; $ PTP = "pointopoint"; NET $ = "-net";
} Else {
$ GW = $ = $ PTP NET = "";
}
# Analizar la plantilla de conguracin.
#
$ Plantilla = s / (\ $ \ w +) / $ 1/gee;
# Escribir el archivo temporal y ejecutar vtund.
#
if ($ Depuracin) {
print $ template;
} Else {
print $ le $ template;
close $ archivo;
del sistema ("$ Vtund $ name");
}
__ Data_ _
Opciones {
puerto $ TunnelPort;
ifcong / sbin / ifcong;
ruta / sbin / route;
}
default {
comprimir no;
Velocidad 0;
}
# 'Mytunnel' realmente debera ser \ Qbasename $ 0 \ Q o algo as
# Para la seleccin cong automgicas
Pgina 339
$ TunnelName {
escriba tun;
proto tcp;
KEEPALIVE s;
pasar $ Secreto;
up {
ifcong "%% $ $ LocalIP PTP $ RemoteIP arp";
ruta "agregar $ TunnelHost $ GW $ GatewayIP";
ruta "eliminar por defecto";
ruta "add default GW $ $ RemoteIP";
ruta "agregar $ NET $ LocalNetwork $ GW $ GatewayIP";
};
abajo {
ifcong "%% abajo";
ruta "eliminar por defecto";
ruta "delete $ TunnelHost $ GW $ GatewayIP";
ruta "delete $ NET $ LocalNetwork";
ruta "add default GW $ $ GatewayIP";
};
}
Funcionamiento del corte
Para congurar la secuencia de comandos, eche un vistazo a la seccin de conguracin. La primera lnea de
$ Cong
contiene el
direcciones, puertos, y en secreto se utilizan en "Tnel con VTun y SSH" [Hack # 102] . La segunda lnea, simplemente
sirve como un ejemplo de cmo aadir ms.
Para ejecutar el script, o bien llamar como
vtundconf casa
o conjunto
$ TunnelName
para el nombre del tnel
le gustara que sea el predeterminado. Mejor an, crear enlaces simblicos al guin, as:
# ln-s vtundconf casa
# ln-s vtundconf tunnel2
A continuacin, puede generar la adecuada vtund.conf llamando directamente el enlace simblico:
# vtundconf home> / usr / local / etc / vtund.conf
Usted podra preguntarse por qu alguien querra ir a todos la molestia de hacer un vtund.conf generadora
script en el primer lugar. Una vez que obtenga los ajustes de la derecha, usted nunca tendr que cambiar, no?
Bueno, por lo general, eso es cierto. Pero consideremos el caso de un ordenador porttil Linux que utiliza muchas redes diferentes en
el transcurso del da (por ejemplo, una lnea DSL en casa, Ethernet en el trabajo, y tal vez una conexin inalmbrica en
el caf de la esquina). Correr vtundconf una vez en cada lugar le dar una conguracin de trabajo
al instante, incluso si su direccin IP y puerta de enlace son asignados por DHCP. Esto hace que sea fcil de poner y
en funcionamiento rpidamente con una direccin IP en vivo, enrutable, independientemente de la topologa de la red local.
Rob Flickenger
Pgina 340
Hack # 104. Cree una multiplataforma de VPN
Utilice OpenVPN para atar juntos fcilmente sus redes.
Creacin de una VPN puede ser muy difcil, especialmente cuando se trata de clientes que utilizan mltiples plataformas.
Muy a menudo, una sola aplicacin VPN no est disponible para todos ellos. Como administrador, puede
dejarse tratar de obtener diferentes implementaciones VPN para operar en todas las diferentes plataformas que le
la necesidad de apoyar, lo que puede convertirse en una pesadilla.
Por suerte, alguien ha intervenido para llenar el vaco en paquetes VPN multi-plataforma escribiendo OpenVPN
( http://openvpn.sourceforge.net ). OpenVPN es compatible con Linux, Solaris, OpenBSD, FreeBSD, NetBSD,
Mac OS X y Windows 2000/XP. Esto se logra mediante la aplicacin de la totalidad de la encriptacin, clave-
gestin, y la funcionalidad de conexin-setup en un demonio de espacio de usuario, dejando el tnel actual
parte del trabajo con el sistema operativo host.
Para lograr el efecto tnel, OpenVPN utiliza TUN o TAP virtual del sistema operativo host
dispositivo. Estos dispositivos exportan interfaces de red virtuales, los cuales son administrados por el openvpn
proceso para proporcionar una interfaz de punto a punto entre los antriones que participan en la VPN.
En lugar de ser enviados y recibidos por el dispositivo virtual, el trco se enva y se recibe de un espacio de usuario
programa. As, cuando los datos se envan a travs del dispositivo virtual, que se transmite a la openvpn programa, que
a continuacin, lo cifra y lo enva a la openvpn proceso que se ejecuta en el extremo remoto del enlace VPN. Cundo
los datos se reciben en el otro extremo, el openvpn proceso descifra y transmite al dispositivo virtual
en esa mquina. A continuacin, se procesa igual que un paquete se recibe en cualquier otra interfaz fsica.
OpenVPN utiliza SSL y se basa en la biblioteca OpenSSL (
http://www.openssl.org
) Para el cifrado,
funcionalidad de vericacin de autenticacin y certicado. Tneles creados con OpenVPN puede o
utilizar claves estticas pre-compartidas o aprovechar TLS modulacin dinmica y certicados digitales. Desde
OpenVPN utiliza OpenSSL, puede soportar cualquier sistema de cifrado que OpenSSL soporta. La principal
ventaja de esto es que OpenVPN ser capaz de soportar de forma transparente los nuevos sistemas de cifrado, ya que son
aadido a la distribucin de OpenSSL.
Instalar OpenVPN
Si est utilizando un sistema operativo basado en Windows o Mac OS X, todo lo que necesita hacer es descargar el
instalador, ejecutarlo, y congurar OpenVPN. En todas las dems plataformas, tendrs que compilar OpenVPN
usted mismo. Antes de compilar e instalar OpenVPN, asegrese de que tiene instalado OpenSSL.
Instalacin de la biblioteca de compresin LZO (
http://www.oberhumer.com/opensource/lzo/
) Tambin es generalmente
una buena idea. Uso de la compresin LZO puede hacer un uso ms eciente del ancho de banda, y
Incluso pueden mejorar enormemente el rendimiento en algunas circunstancias.
Para compilar e instalar OpenVPN, descargue el archivo tar y escriba algo similar a esto:
$ tar xfz openvpn-2.0.7.tar.gz
$ cd openvpn-2.0.7
$ . / congure && make
Si ha instalado las bibliotecas LZO y cheros de cabecera en algn lugar que no sea / usr / lib y / usr / include , que
probablemente tenga que utilizar la
- With-lzo-headers
y
- With-lzo-lib
congurar las opciones de script.
Por ejemplo, si ha instalado LZO bajo el directorio / usr / local jerarqua, tendr que ejecutar la
congurar script como el siguiente:
$ . / congure - with-lzo-headers = / usr / local / include \
Pgina 341
- With-lzo-lib = / usr / local / lib
Si la conguracin script no puede encontrar las libreras LZO y encabezados, se imprimir una advertencia que se ve
de esta manera:
Biblioteca y cabeceras LZO no encontraron.
LZO biblioteca disponible de http://www.oberhumer.com/opensource/lzo/
congure: error:. O pruebe / congure - disable-lzo
Si el guin no encontrar las bibliotecas LZO, debera ver una salida en su terminal que es similar a esto:
congurar: la comprobacin de los archivos de la biblioteca LZO y cabecera ...
comprobar la usabilidad lzo1x.h ... s
comprobar la presencia lzo1x.h ... s
la comprobacin de lzo1x.h ... s
la comprobacin de lzo1x_1_15_compress en llzo ... s
Ahora que est fuera del camino, puede instalar OpenVPN ejecutando el habitual
make install
. Si usted es
con Solaris, tambin tendr que instalar un controlador TUN / TAP. Los otros sistemas operativos basados en Unix
ya incluir uno, y los instaladores de Windows y Mac OS se instalar el controlador para usted. Usted puede
obtener el cdigo fuente para el controlador Solaris desde la pgina del proyecto en SourceForge
(
http://vtun.sourceforge.net/tun/
).
Pruebas OpenVPN
Una vez que tenga LZO, OpenSSL, el controlador TUN / TAP, y OpenVPN instalado, usted puede probar todo lo
mediante la creacin de una VPN rudimentaria (que no es tan privada) de la lnea de comandos.
En el equipo A ( kryten en este ejemplo), ejecute un comando similar a ste:
# openvpn - zul remoto - dev tun0 - ifcong 10.0.0.5 10.0.0.19
El comando que se tendr que ejecutar en la mquina B ( zul ) se parece mucho a la orden anterior, excepto
los argumentos a
- Ifcong
se intercambian:
# openvpn - remoto kryten - dev tun0 - ifcong 10.0.0.5 10.0.0.19
La primera direccin IP es el extremo local del tnel, y la segunda es el extremo remoto; es por eso que
necesitar cambiar las direcciones IP en el otro extremo. Al ejecutar estos comandos, debera ver una
advertencia acerca de no usar el cifrado, as como algunos mensajes de estado. Una vez que se inicia OpenVPN, ejecute
ifcong
para vericar que el dispositivo de tnel punto a punto se ha establecido:
[Andrew andrew @ kryten] $ / sbin / ifcong tun0
tun0: ags = 51 <UP,POINTOPOINT,RUNNING> mtu 1300
inet 10.0.0.19 -> 10.0.0.5 mscara de red 0xffffffff
Ahora, intente hacer ping a la mquina remota, utilizando su direccin IP de tnel:
[Andrew andrew @ kryten] $ ping-c 4 10.0.0.5
PING 10.0.0.5 (10.0.0.5): 56 bytes de datos
64 bytes de 10.0.0.5: icmp_seq = 0 ttl = 255 time = 0.864 ms
64 bytes de 10.0.0.5: icmp_seq = 1 ttl = 255 time = 1.012 ms
64 bytes de 10.0.0.5: icmp_seq = 2 ttl = 255 time = 0.776 ms
64 bytes de 10.0.0.5: icmp_seq = 3 ttl = 255 time = 0.825 ms
--- Estadsticas de ping 10.0.0.5 ---
4 paquetes transmitidos, 4 paquetes recibidos, 0% de prdida de paquetes
de ida y vuelta min / avg / max = 0.776/0.869/1.012 ms
Creacin de la conguracin
Pgina 342
Ahora que ha vericado que OpenVPN est funcionando correctamente, es el momento para crear una conguracin
eso es un poco ms til en el mundo real. En primer lugar, usted tendr que crear certicados SSL [Hack # 69]
para cada extremo de la conexin. Despus de que hayas hecho esto, tendrs que crear archivos de conguracin en
el servidor y los clientes. Para estos ejemplos, Zul ser la puerta de entrada a la red privada y
kryten ser el cliente externo.
El archivo de conguracin para zul se almacenar en / etc / openvpn / openvpn.conf . Estos son los contenidos:
puerto 5000
dev tun0
tls-server
dh / etc/ssl/dh1024.pem
ca / etc / ssl / CA.crt
cert / etc / ssl / zul.crt
clave / etc / ssl / private / zul.key
servidor de modo
ifcong 192.168.1.1 192.168.1.2
ifcong-pool 192.168.1.4 192.168.1.255
empujar "255.255.255.0 192.168.0.0 ruta"
255.255.255.0 192.168.1.0 ruta
ping-10
ping-restart 120
empujar "ping de 10"
empujar "ping-restart 60"
demonio
_openvpn usuario
_openvpn grupo
chroot / var / vaco
writepid / var / run / openvpn.pid
verbo 1
La
puerto
y
dev
opciones se utilizan para especicar los puertos para escuchar y qu TUN dispositivo para utilizar. La
tls-server
opcin activa el modo TLS y especica que desea designar este lado de la
conexin que el servidor durante el proceso de establecimiento de comunicacin TLS. La
dh
opcin especica el Dife-
Hellman para usar durante el intercambio de claves. Estos estn codicados en un pem. archivo y pueden ser
generada con la siguiente
openssl
comando:
# openssl dhparam Salida dh1024.pem 1024
Las siguientes opciones de conguracin se ocupan de los certicados SSL. La
California
opcin especica el
Certicado pblico entidad emisora de certicados, y la
cert
opcin especica el certicado pblico que se utilizar para
este lado de la conexin. Del mismo modo, la
clave
opcin especica la clave privada que corresponde a la
certicado pblico.
La siguiente opcin,
servidor
, Le dice a OpenVPN para actuar como un servidor UDP multicliente. Esto signica que el servidor
asignar dinmicamente una direccin IP para cualquier cliente VPN que conecta a l. El rango que el
servidor utiliza para asignar estas direcciones est congurado con el
ifcong-pool
opcin. Sin embargo, como usted todava est
realmente utilizando una interfaz TUN para enviar y recibir trco, tendr que especicar las direcciones para cada
nal de su interfaz TUN utilizando el
ifcong
opcin.
A continuacin, congure el enrutamiento entre la subred VPN y el resto de la red. Establezca la ruta en el servidor
con el
ruta
opcin, que tiene una direccin de red y mscara de red como sus argumentos. Establezca la ruta en
Pgina 343
el cliente a travs de la
empuje
comando, que le permite enviar informacin de conguracin a autenticado
clientes.
Para ayudar a asegurar que el tnel VPN no consigue baj de los servidores de seguridad que intervienen y que estn haciendo
ltrado activo, utilice el
ping-
opcin. Esto hace que OpenVPN hacer ping al host remoto cada n segundos
de modo que la entrada del tnel en la tabla de estado del servidor de seguridad no tiene tiempo de espera. Si el cliente o el servidor no
recibir un ping dentro de 60 o 120 segundos, respectivamente, la
ping-restart
opcin har que se
intentar reconectarse entre s.
Terminando, dgale a OpenVPN que tenedor en el fondo mediante el uso de la
demonio
opcin, la cada de sus privilegios
al _openvpn usuario y grupo con el
usuario
y
grupo
opciones, y dgale que
chroot ()
a / var / vaco
mediante el uso de la
chroot
opcin.
En kryten , el siguiente archivo de conguracin se utiliza:
puerto 5000
dev tun0
zul remoto
tls-cliente
ca / etc / ssl / CA.crt
cert / etc / ssl / kryten.crt
clave / etc / ssl / private / kryten.key
tirar
verbo 1
Las principales diferencias en este archivo de conguracin son que el
remoto
y
tls-cliente
opciones han sido
utilizado. Aparte de eso, Kryten 'claves pblicas y privadas s se utilizan en lugar de zul 's, y el
tirar
opcin es
utilizado para solicitar que el servidor empujar la informacin de conguracin adicional para el cliente. Para encender
compresin, aadir el
comp-lzo
opcin de los archivos de conguracin en ambos extremos de la VPN.
Ahora, la nica cosa que preocuparse es de cortafuegos. Usted querr permitir que el trco que viene a travs de su
tun0
dispositivo, as como el puerto UDP 5000.
Por ltimo, ya est listo para funcionar openvpn en ambos lados, con un comando como ste:
# openvpn - cong / etc / openvpn.conf
Usando OpenVPN y Windows
Conguracin de OpenVPN en Windows es an ms fcil. Basta con ejecutar el instalador de OpenVPN GUI
(
http://openvpn.se/download.html
), Y todo lo necesario se instalar en el sistema. Este
incluye OpenSSL, LZO, el controlador TUN / TAP, y la propia OpenVPN. Durante el proceso de instalacin, se le
se le pregunte acerca de lo que para instalar y acerca de si o no para ocultar el interfaz TUN / TAP para que
no aparecern en tu Conexiones de red carpeta, como se muestra en la Figura 10-3 .
Pgina 344
Figura 10-3. La eleccin de los componentes de instalacin con la GUI de OpenVPN
La aceptacin de los valores por defecto debera estar bien en la mayora de las situaciones. El Asistente para certicados se proporciona para que
los usuarios pueden generar solicitudes de certicado a que sus administradores de red crear certicados para
ellos.
Como parte del proceso de instalacin, los archivos con el ovpn. extensin se asocian con OpenVPN. Despus de la
instalacin se haya completado, vaya a la conguracin del directorio en el que instal OpenVPN (por ejemplo,
C: \ Archivos de programa \ OpenVPN \ cong si acept los valores predeterminados).
Ahora, cree un archivo con una ovpn. extensin y poner los valores de conguracin en el mismo. Usted tendr que poner
su certicado y los archivos clave en la conguracin de directorio. Ahora debera ser capaz de conectarse a
la VPN, haga clic en el icono de la bandeja del sistema OpenVPN GUI.
Usando OpenVPN con Mac OS X
Con la ayuda de Tunnelblick (
http://www.tunnelblick.net
), La instalacin de OpenVPN en Mac OS X es
tan fcil como lo es en Windows. Slo tienes que ir al sitio Tunnelblick y descargar la imagen de disco
apropiado para su versin de Mac OS (Panther o Tiger). Despus de que haya abierto la imagen de disco,
haga doble clic en el Tunnelblick-Complete.mpkg archivo de paquete. Una vez completada la instalacin, vaya a
su Aplicaciones carpeta, encontrar Tunnelblick y lanzarlo.
Tunnelblick A continuacin, le pedir que cree un archivo de conguracin y abrir una ventana en la que puede
pegar los ajustes. El archivo que se crea aqu se almacenar en / Library / openvpn . Despus de que haya
hecho esto, copiar su llave y certicados a / Library / openvpn .
Ya casi ha terminado ahora. Busque el icono que parece un tnel en la posicin ms a la derecha de la
barra de men, haga clic en l y, a continuacin, haga clic en Conectar. Con suerte, usted debe estar conectado a la VPN en
momentos.
TIP
Este truco debera empezar utilizando OpenVPN, pero tiene demasiadas opciones de conguracin para discutir aqu. Asegrese de buscar en
el sitio web de OpenVPN para ms informacin.
Pgina 345 Pgina 346
Hack # 105. Tnel PPP
Usar PPP y SSH para crear un tnel VPN seguro.
Hay tantas opciones para elegir la hora de crear una VPN o conexin de tnel que es la mente-
sobresaltada. Puede que no seas consciente de que todo el software que necesita para crear una red privada virtual, es decir, PPP y
SSH demonios-es, probablemente, ya instalados en sus mquinas Unix.
Si utiliz PPP en su da a conectarse a Internet mediante una conexin de acceso telefnico, es posible que
preguntndose cmo el mismo PPP puede operar a travs de SSH. Bueno, cuando se utiliza PPP en conjunto con un
modem, que estaba hablando con el mdem a travs de lo que el sistema operativo presenta como una interfaz TTY,
que es, en denitiva, un aparato terminal estndar. El demonio PPP en su nal envi su salida al TTY,
y el sistema operativo a continuacin, enva hacia fuera a travs del mdem; luego viaj a travs de la red telefnica
hasta que lleg al extremo remoto, donde pas lo mismo a la inversa.
Los terminales en los que se ejecutan los comandos de shell (por ejemplo, la consola o un xterm) utilizan pseudo-TTY
interfaces, que estn diseados para operar de manera similar a los telfonos de texto. Debido a esto, los demonios del PPP tambin puede
operar a travs de pseudo-TTY. As, puede reemplazar los telfonos de texto de serie con los pseudo-TTY, pero todava se necesita un
manera de conectar lo local pseudo-TTY a la distancia. Aqu es donde SSH entra en escena.
Puede crear la conexin real PPP en un comando rpido. Por ejemplo, si desea utilizar el
Direccin IP 10.1.1.20 para su extremo local de la conexin y 10.1.1.1 en el extremo remoto, ejecutar un
comando similar al siguiente:
# / usr / sbin / pppd updetach noauth silencio nodeate \
pty "/ usr / bin / ssh root @ coloso / usr / sbin / pppd nodetach notty noauth" \
ipparam 10.1.1.20:10.1.1.1
contrasea root @ del coloso:
direccin IP local 10.1.1.20
direccin IP remota 10.1.1.1
La primera lnea del comando inicia el pppd proceso en la mquina local y le dice a la mesa en el
fondo una vez que la conexin ha sido establecida (
updetach
). Tambin le indica al pppd que no hacer nada
de autenticacin (
noauth
), Debido a que el demonio SSH ya proporciona autenticacin muy fuerte, y
desactiva la compresin deate (
nodeate
).
La segunda lnea de la orden le dice a pppd para ejecutar un programa y comunicarse con l a travs de la
de la entrada estndar y la salida estndar del programa. Esto se utiliza para iniciar sesin en la mquina remota y ejecutar un
pppd proceso all. Finalmente, la ltima lnea especica las direcciones IP locales y remotas que se van a utilizar
para la conexin PPP.
Despus de que el comando se vuelve a la shell, usted debera ser capaz de ver una
ppp
interfaz en la salida de
ifcong
:
$ / sbin / ifcong ppp0
ppp0 Link encap: Point-to-Point Protocol
inet addr: 10.1.1.20 PtP: 10.1.1.1 Mscara: 255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1500 Mtrica: 1
RX packets: 58 errors: 0 cado: 0 sobrecostos: 0 frame: 0
Paquetes TX: 50 errores: 0 cado: 0 sobrecostos: 0 portador: 0
: 0 colisiones txqueuelen: 3
Bytes RX: 5372 (5.2 Kb) TX bytes: 6131 (5.9 Kb)
Ahora, intente hacer ping a la direccin IP del extremo remoto:
$ de ping 10.1.1.1
PING 10.1.1.1 (10.1.1.1) 56 (84) bytes of data.
64 bytes de 10.1.1.1: icmp_seq = 1 ttl = 64 tiempo = 4,56 ms
64 bytes de 10.1.1.1: icmp_seq = 2 ttl = 64 tiempo = 4,53 ms
Pgina 347
64 bytes de 10.1.1.1: icmp_seq = 3 ttl = 64 tiempo = 5,45 ms
64 bytes de 10.1.1.1: icmp_seq = 4 ttl = 64 tiempo = 4,51 ms
--- Estadsticas de ping 10.1.1.1 ---
4 paquetes transmitidos, 4 recibieron, prdida de paquetes del 0%, 3025ms tiempo
rtt min / avg / max / mdev = 4.511/4.765/5.451/0.399 ms
Y nalmente, la ltima prueba de fuego-en realidad utilizando el tnel para algo ms que
ping-
:
$ ssh 10.1.1.1
La autenticidad de acogida '10 .1.1.1 (10.1.1.1) 'no se puede establecer.
RSA huella digital es 56:36: db: 7a: 2:08 b: 05: b2: 4d: d4: d1: 24: e9: 4f: 35:49.
Est seguro de que desea continuar la conexin (s / no)? s
Advertencia: Permanentemente aadi '10 .1.1.1 '(RSA) a la lista de hosts conocidos.
andrew@10.1.1.1 's password:
[Andrew andrew @ coloso] $
Antes de decidirse a mantener esta conguracin, es posible que desee generar las claves de inicio de sesin para usar con ssh [Hack # 97] ,
de modo que usted no tiene que escribir la contrasea cada vez. Adems, es posible que desee crear un
usuario separada para iniciar la sesin en el equipo remoto y comenzar pppd . Sin embargo, el pppd tiene que ser
iniciado como root, por lo que tendrs que hacer uso de sudo [Hack # 6] . Adems, puede habilitar de SSH integrado
de compresin mediante la adicin de un
-C
al
ssh
comando. En algunas circunstancias, la compresin puede SSH
mejorar en gran medida la velocidad del enlace. Por ltimo, para derribar el tnel, basta con matar al ssh proceso que
pppd engendr.
A pesar de que es feo y podra no ser tan estable y lleno de caractersticas como las implementaciones reales de VPN, el
Combinacin PPP y SSH puede ayudarle a crear una red encriptada instantnea sin la necesidad de instalar
software adicional.
Vea tambin
La seccin de "Creacin de una VPN con PPP y SSH" en las redes privadas virtuales , Second Edition, por
Charlie Scott, Paul Wolfe, y Mike Erwin (O'Reilly)
Pgina 348
Captulo 11. Deteccin de intrusos en redes
Hacks 106 - 120
Un tipo de herramienta que ha venido a la vanguardia en seguridad de la red en los ltimos aos es la red
sistema de deteccin de intrusos (NIDS). Estos sistemas se pueden implementar en su red y vigilar la
trco hasta que detectan comportamientos sospechosos, cuando entran en accin y que le notique de lo que es
pasando. Son herramientas excelentes para usar en adicin a sus registros, ya que un IDS de red a menudo pueden detectar
un ataque antes de que alcance el objetivo deseado o tiene la oportunidad de terminar en sus registros.
Actualmente, existen dos tipos principales de NIDS. El primer tipo detecta intrusiones en la red de monitoreo
trco para patrones de bytes especcos que son similares a los ataques conocidos. Un NIDS que opera de esta manera
que se conoce como una basada en rmas sistema de deteccin de intrusos. El otro tipo de red de IDS es un
monitor de estadstica . Estos sistemas tambin supervisan el trco en la red, pero en lugar de buscar una
patrn o rma particular, mantener un historial estadstico de los paquetes que pasan a travs de la
red y el informe cuando ven un paquete que cae fuera del patrn de trco normal de la red.
NIDS que emplean este mtodo se conoce como basados en anomalas sistemas de deteccin de intrusos.
En este captulo, usted aprender cmo congurar Snort, un IDS basado en rmas. Usted tambin aprender cmo congurar
Snort con la espada, que aade capacidades de deteccin de anomala de Snort, que le da lo mejor de ambos
mundos. En este captulo tambin demuestra cmo congurar varias aplicaciones diferentes que pueden ayudarle a
para monitorear y administrar sus NIDS vez que lo tenga desplegado. Adems, usted aprender cmo aprovechar
Snort y ClamAV para escanear el trco de red en busca de virus y evitar que se propague.
Por ltimo, ver cmo congurar un sistema que parece vulnerable a los atacantes, pero en realidad es en silencio
espera y vigilancia de todo lo que ve. Estos sistemas se denominan honeypots . Los ltimos hacks se
le mostrar cmo obtener rpida y fcilmente un honeypot en funcionamiento, y cmo monitorear intrusos que
han sido engaados y atrapados por ella.
Hack # 106. Detectar intrusiones con Snort
Utilice uno de los ms poderosos (y gratuitas) sistemas de deteccin de intrusiones de red disponibles para mantener un
ojo en su red.
La supervisin de los registros se puede tomar slo en la medida en la deteccin de intrusiones. Si se estn generando los registros
por un servicio que se ha comprometido, la bienvenida a una de las peores pesadillas de la administracin de seguridad:
ya no se puede conar en sus registros. Aqu es donde los sistemas de deteccin de intrusiones de red entran en juego:
que le puede alertar a los intentos de intrusin, o incluso intrusiones en curso.
El campen indiscutible de cdigo abierto NIDS Snort es (
http://www.snort.org
). Algunos de los
caractersticas que hacen de Snort tan poderosos son su motor de reglas basadas en rmas y su fcil extensibilidad
a travs de plug-ins y preprocesadores. Estas caractersticas le permiten ampliar Snort en cualquier direccin que
necesitar. En consecuencia, usted no tiene que depender de alguien ms para ofrecerle reglas cuando un nuevo
explotar viene a su atencin: con un conocimiento bsico de TCP / IP, puede escribir sus propias reglas
rpida y fcilmente. Esta es probablemente caracterstica ms importante de Snort, ya que los nuevos ataques se inventan
y informado todo el tiempo. Adems, Snort tiene un mecanismo de presentacin de informes muy exible que le permite
para enviar alertas a un syslogd , archivos planos, o incluso una base de datos.
Instalacin de Snort
Para compilar e instalar una versin de vainilla sin formato de Snort, descargue la ltima versin y descomprimirlo. Carrera
la conguracin de la escritura y luego
hacer
:
Pgina 349
$ . / congure && make
Entonces convertirse en root y ejecute:
# make install
Tenga en cuenta que todas las cabeceras y bibliotecas para libpcap (
http://www.tcpdump.org
) Y PCRE
(
http://www.pcre.org
) Debe estar instalado antes de iniciar la construccin de Snort; de lo contrario, la compilacin se
fallar. Adems, es posible que tenga que hacer uso de la
- With-libpcap-incluye
,
- With-libpcre-
incluye
,
- With-libpcap-bibliotecas
, O
- With-libpcre-bibliotecas
congurar opciones de script para contar la
compilador donde pueda encontrar las libreras y cabeceras. Sin embargo, usted debe necesitar para hacer esto slo si
han instalado las bibliotecas y encabezados en una ubicacin no estndar (es decir, en algn lugar que no sea el / usr
o / usr / local jerarqua).
Por ejemplo, si ha instalado libpcap en el / opt jerarqua, utilizara la siguiente:
$ . / congure - with-libpcap-incluye = / opt / include \
- With-libpcap-libraries = / opt / lib
Snort es capaz de responder con exibilidad : la capacidad de responder a la acogida que ha dado lugar a uno de sus
normas. Para habilitar esta funcionalidad, usted tambin tendr que utilizar la
- Enable-exresp
opcin, que
requiere la libnet biblioteca inyeccin de paquetes (
http://www.packetfactory.net/projects/libnet/
). Despus
asegurar que este paquete est instalado en su sistema, puede utilizar la
- With-libnet-incluye
y
-
con-libnet-bibliotecas
switches para especicar su ubicacin.
Si desea incluir soporte para el envo de alertas a una base de datos, tendr que hacer uso de cualquiera de los
- With-mysql
,
- With-postgresql
, O
- With-oracle
opcin. Para ver la lista completa de congure guin
opciones, el tipo
. / Congure - help
.
Pruebas de Snort
Despus de instalar Snort, probarlo al usarlo en el modo sniffer. Usted debe ver de inmediato
algo de trco:
# snort-evi eth0
Ejecucin en modo de volcado de paquetes
La inicializacin de interfaz de red eth0
- == Inicializando Snort == -
Inicializando Plugins de salida!
Decodicacin de Ethernet en la interfaz eth0
- == Inicializacin completa == -
,, _ - *> Snort! <* -
o ") Version 2.4.4 (Build 28)
'''' Por Martin Roesch y El Equipo de Snort: http://www.snort.org/team.html
(C) Copyright 1998-2005 Sourcere Inc., et al.
NOTA: La salida por defecto de Snort ha cambiado en la versin 2.4.1!
El modo de registro por defecto es ahora PCAP, el uso de "K-ascii" para activar
el modo de registro predeterminado de edad.
05/06-14: 16:13.214265 0: C: 29: C3: C8: 3B -> 0: A: 95: F5: F1: tipo A5: 0x800 len: 0x92
192.168.0.43:22 -> 192.168.0.60:63126 TTL TCP: 64 TOS: 0x10 ID: 29515 IpLen: 20 DgmLen: 132 DF
AP *** *** Sec: 0x7FCD85CF Ack: 0xA75EBFF2 Win: 0x9E8 TcpLen: 32
Opciones TCP (3) => NOP NOP TS: 486412346 1797431762
Pgina 350
= + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = +
05/06-14: 16:13.252177 0: A: 95: F5: F1: A5 -> 0: C: 29: C3: C8: Tipo 3B: 0x800 len: 0x42
192.168.0.60:63126 -> 192.168.0.43:22 TTL TCP: 64 TOS: 0x10 ID: 38015 IpLen: 20 DgmLen: 52 DF
*** A **** Sec: 0xA75EBFF2 Ack: 0x7FCD861F Win: 0xFFFF TcpLen: 32
Opciones TCP (3) => NOP NOP TS: 1797431762 486412307
= + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = +
Conguracin de Snort
La distribucin de la fuente Snort proporciona algunos archivos de conguracin en el etc del directorio, pero no son
instalado al ejecutar
make install
. Puede crear un directorio para incluir estos en / etc o / usr / local / etc
y copiar los archivos pertinentes a la misma mediante la ejecucin de algo similar a esto:
# Mkdir / usr / local / etc / snort && cp etc / [^ Makele] * / usr / local / etc / snort
Usted probablemente querr copiar la normativa directorio para ese lugar tambin. Tenga en cuenta que, desde la Versin
2.4.0, las reglas no se distribuyen con la fuente, pero se pueden descargar desde
http://www.snort.org/rules/
. Los usuarios no registrados tienen acceso a los conjuntos de reglas que slo se actualizan con
cada nueva versin de versin principal (por ejemplo, 2.4.0, 2.5.0, etc), mientras que los usuarios registrados puedan recibir conjuntos de reglas que
el rastro de las normas actuales que se ofrecen a los suscriptores de pago en cinco das. Adems, puede descargar
reglas de la comunidad que son aportados por la comunidad de software libre para el equipo de Snort.
Ahora, tiene que editar el snort.conf archivo. Muestra de Snort snort.conf archivo enumera una serie de variables.
Algunos se denen con valores por defecto, y todos van acompaados de comentarios que hacen que esta seccin
bastante autoexplicativo. Cabe destacar, sin embargo, son estas dos variables:
var HOME_NET cualquier
var EXTERNAL_NET cualquier
HOME_NET
especica los espacios de direcciones IP deben ser consideradas local. El valor predeterminado es para que cualquier
Direccin IP se incluye como parte de la red domstica. Las redes pueden ser especicados usando notacin CIDR
(Es decir,
xxx . xxx . xxx . xxx / yy
). Tambin puede especicar varias subredes y direcciones IP encerrando
entre corchetes y separndolas con comas:
HOME_NET var [10.1.1.0/24, 192.168.1.0/24]
Para congurar automticamente
HOME_NET
a la direccin de red de una interfaz en particular, establezca la variable de
$ Eth0_ADDRESS
. En este caso particular,
$ Eth0_ADDRESS
establece que la direccin de red eth0 .
La
EXTERNAL_NET
variable permite especicar explcitamente las direcciones y las redes que no son parte de IP
de
HOME_NET
. A menos que un subconjunto de
HOME_NET
se considera hostil, slo puede mantener el valor por defecto,
que es
cualquier
.
El resto de las variables que tienen que ver con las direcciones IP o los intervalos de redes-
DNS_SERVERS
,
SMTP_SERVERS
,
HTTP_SERVERS
,
SQL_SERVERS
, Y
TELNET_SERVERS
-Se ponen a
$ HOME_NET
de forma predeterminada. Estas variables son
utilizados en el conjunto de reglas que viene con la distribucin de Snort y se puede utilizar para ajustar una regla de
comportamiento. Por ejemplo, las reglas que tienen que ver con las rmas de ataques relacionados con SMTP utilizan el
SMTP_SERVERS
variable para ltrar el trco que no est realmente relacionado con esas reglas. Ajuste con estas variables
conduce no slo a la alertas ms relevantes y menos falsos positivos, sino tambin para un mayor rendimiento.
Otra variable importante es
RULE_PATH
, Que se utiliza ms adelante en el archivo de conguracin para incluir
conjuntos de reglas. El archivo de conguracin de ejemplo establece que
.. / reglas
, Pero para ser compatible con el anterior
ejemplos que deberan cambiarlo a
. / rules
, Ya snort.conf y la normativa de directorio son tanto en
/ Usr / local / etc / snort .
La siguiente seccin del archivo de conguracin le permite congurar preprocesadores incorporadas de Snort. Estos
Pgina 351
hacer cualquier cosa de volver a ensamblar los paquetes fragmentados a decodicar el trco HTTP para detectar escaneo de puertos.
Para la mayora de las situaciones, la conguracin por defecto es suciente. Sin embargo, si usted necesita para modicar cualquiera de estos
conguracin, el archivo de conguracin est totalmente documentada con las opciones de cada preprocesador.
Si ha compilado el soporte de base de datos, es probable que desee para que el plug-in de salida de base de datos,
lo que har que Snort para almacenar cualquier alerta que se genera en su base de datos. Habilitar este plug-in por
poniendo lneas similares a estas en su archivo de conguracin:
base de datos de salida: log, mysql, user = snort password = snortpass dbname = SNORT \
host = dbserver
base de datos de salida: alert mysql, user = snort password = snortpass dbname = SNORT \
host = dbserver
La primera lnea congura Snort para enviar cualquier informacin generada por las reglas que especican el
log
accin
a la base de datos. Del mismo modo, la segunda lnea le dice a Snort para enviar cualquier informacin generada por las reglas que
especicar el
alerta
accin para la base de datos. Para obtener ms informacin sobre la diferencia entre la
log
y
alerta
acciones, consulte "Escribir de reglas propias de Snort" [Hack # 110] .
Si usted va a utilizar una base de datos con Snort, tendr que crear una nueva base de datos, y posiblemente un nuevo
cuenta de usuario de base de datos. El cdigo fuente de Snort esquemas directorio incluye scripts para crear las bases de datos
de los tipos soportados: create_mssql , create_mysql , create_oracle.sql y create_postgresql .
Si est utilizando MySQL, puede crear una base de datos y crear las tablas adecuadas mediante la ejecucin de un
comando como el siguiente:
# mysql SNORT-p <. / schemas / create_mysql
Esto le permite organizar fcilmente sus alertas y los registros y le permite tomar ventaja de la fcil de usar
Los sistemas que se pueden utilizar para controlar sus IDS, como BASE [Hack # 107] .
El resto de las ofertas de los archivos de conguracin en su mayora con la rma de reglas Snort utilizar cuando la vigilancia
trco de la red para las intrusiones. Estas reglas se clasican y se almacenan en archivos separados y se activan
mediante el uso de la
incluir
Directiva. Para propsitos de prueba (o en redes con trco ligero) el incumplimiento
conguracin es suciente, pero usted debe mirar por encima de las reglas y decidir qu regla categoras que
realmente necesita y cules no lo hacen.
Ahora que todo el trabajo duro y la conguracin de instalacin est fuera del camino, usted debe probar su
snort.conf archivo. Usted puede hacer esto mediante la ejecucin de algo similar a la siguiente orden:
# snort-T-c / usr / local / etc / snort / snort.conf locales
Snort se informen de los errores que encuentre y luego salir. Si no hay errores, ejecutar Snort con un
comando similar al siguiente:
# snort-Dd-c / usr / local / etc / snort / snort.conf locales
Dos de estas banderas,
-D
y
-C
, Fueron utilizados anteriormente (para contar Snort para decodicar datos de paquetes y utilizar el
especicada archivo de conguracin, respectivamente). La
-D
bandera le dice a Snort que imprimir algunos mensajes de inicio
y luego el tenedor en el fondo.
Algunas otras opciones son tiles
-U
y
-G
, Que dej caer Snort sus privilegios y se ejecuta bajo el usuario y
grupo que especique. Estos son especialmente tiles con el
-T
opcin, que har
chroot ()
Snort a la
directorio que especique.
Ahora usted debe comenzar a ver los registros que aparecen en / var / log / snort , si usted no est el registro en una base de datos. La
alertas archivo es un archivo de texto que contiene alertas legibles generados por Snort. Los snort.log archivos son
Pgina 352
tcpdump archivos de captura que contienen los paquetes que han activado las alertas.
Vea tambin
Captulo 11 "Simples tcnicas de deteccin de intrusiones", en La construccin de servidores seguros con Linux , por
Michael D. Bauer (O'Reilly)
Pgina 353
Hack # 107. Lleve un registro de alertas
Utilice BASE para dar sentido a sus registros de IDS.
Una vez que haya congurado Snort para registrar informacin en su base de datos [Hack # 106] , puede que le resulte difcil
hacer frente a todos los datos que se genera. Sitios muy concurridos y de alto perl pueden generar una gran cantidad de
Snort advertencias que con el tiempo se deben seguir para arriba encendido. Una manera de aliviar el problema es a
instalar el Anlisis Bsico y Security Engine (BASE).
BASE (
http://secureideas.sourceforge.net
) Es una interfaz basada en la web para Snort bases de datos de alerta. Lo
cuenta con la capacidad de bsqueda de alertas basadas en una variedad de criterios, como la rma de alerta, el tiempo de
direcciones de deteccin, de origen y destino y los puertos, as como los valores de la carga til o bandera. Base puede
mostrar los paquetes que han activado las alertas y puede decodicar su informacin de capa 3 y capa 4.
BASE tambin contiene caractersticas de gestin de alertas que permiten a las alertas de los grupos relacionados con una determinada
incidente, eliminar alertas reconocidos o falsos positivos, alertas de correo electrnico, o archivarlos en otro
base de datos. Tambin ofrece muchas estadsticas diferentes en las alertas en su base de datos basado en el tiempo, el
sensores que fueron generados por, rma y estadsticas relacionadas con paquetes tales como el protocolo, la direccin, o
puerto.
Para instalar BASE, usted primero necesita un servidor web y una instalacin de trabajo de PHP (por ejemplo, Apache y
mod_php
), As como una instalacin de Snort que se ha congurado para iniciar sesin a una base de datos (por ejemplo, MySQL).
Usted tambin necesitar un par de bibliotecas de cdigo PHP:
ADODB
(
http://adodb.sourceforge.net
) Para la base de datos
abstraccin y
PEAR :: Image_Graph
(
http://pear.veggerby.dk
) Para la representacin grca.
Despus de haber descargado
ADODB
, Descomprimirlo en un directorio adecuado. A continuacin, tendrs que instalar
Image_Graph
. Descargue la
Image_Graph
paquete y sus dependencias,
Image_Color
y
Image_Canvas
,
a continuacin, ejecute los siguientes comandos:
# pear install Image_Color-1.0.2.tgz
instalar ok: Image_Color 1.0.2
# pear install Image_Canvas-0.3.0.tgz
instalar ok: Image_Canvas 0.3.0
# pear install Image_Graph-0.7.2.tgz
Dependencias opcionales:
Se recomienda paquete \ QNumbers_Roman 'para utilizar algunas de las caractersticas.
Se recomienda el paquete \ QNumbers_Words 'para utilizar algunas de las caractersticas.
instalar ok: Image_Graph 0.7.2
A continuacin, BASE desembalaje y cambiar el nombre del directorio que se ha creado (por ejemplo, la base-1.2.4 ) a la base . Entonces, el cambio
al directorio y copiar el base_conf.php.dist archivo a base_conf.php . Ahora, edite el archivo a decirle BASE
dnde encontrar
ADODB
, As como la forma de conectarse a su base de datos de Snort.
Usted puede hacer esto al cambiar estas variables para valores similares que se adapten a su situacin:
".. / ..adodb" $ DBlib_path =;
$ DbType = "mysql";
$ Alert_dbname = "SNORT";
$ Alert_host = "localhost";
$ Alert_port = "";
$ Alert_user = "snort";
$ Alert_password = "snortpass";
Esta conguracin le dice BASE para buscar la
ADODB
cdigo en el adodb directorio de un nivel por encima de la
base de directorio. Adems, cuenta BASE para conectarse a una base de datos MySQL llamada SNORT que es
que se ejecuta en la mquina local, utilizando el usuario resoplido con la contrasea snortpass . Puesto que se est conectando
a un servidor MySQL en la mquina local, no hay necesidad de especicar un nmero de puerto. Si desea
Pgina 354
conectarse a una base de datos que se ejecuta en otro sistema, debe especicar
3389
, Que es el puerto por defecto
utilizada por MySQL.
Adems, puede congurar una base de datos de archivo para BASE utilizando variables que son similares a la
que se utilizan para congurar la base de datos de alerta. Tendr que establecer las siguientes variables para utilizar la base de
caractersticas de archivado:
$ Archive_dbname
$ Archive_host
$ Archive_port
$ Archive_user
$ Archive_password
Usted tambin necesitar establecer
$ archive_exists
a
1
.
Felicitaciones! Ha terminado curioseaba en archivos de conguracin por el momento. Ahora, un abierto
navegador web y vaya a la direccin URL que corresponde al directorio donde ha desempaquetado BASE. Usted
deben ser recibidos con la pgina de conguracin de la base de datos se muestra en la Figura 11-1 .
Figura 11-1. La pgina de conguracin de la base de datos BASE
Antes de poder utilizar BASE, debe decrselo a crear algunas tablas de la base para su propio uso. Para ello,
haga clic en el botn Crear BASE AG. Usted debe ver una pantalla que conrma que se crearon las tablas. En
Adems, usted puede tener BASE crear ndices para la tabla de eventos, si esto no se hizo antes. ndices
acelerar enormemente las consultas como su tabla de eventos crece, en detrimento de la utilizacin de un poco ms de disco
espacio.
Una vez que haya terminado con la pantalla de conguracin, haga clic en el vnculo Inicio para ir a la pgina principal BASE, se muestra en la
Figura 11-2 .
Pgina 355
Figura 11-2. La pgina BASE casa
BASE tiene una interfaz de usuario bastante intuitiva. La mesa principal ofrece un montn de enlaces a mostrar muchos
vistas tiles de la base de datos de un vistazo, como las listas de las direcciones o puertos de origen o destino de IP
asociado con las alertas en su base de datos.
Pgina 356
Hack # 108. Monitor de sus IDS en tiempo real
Pgina 356
Utilice la GUI avanzada Sguil para monitorear y analizar IDS eventos en tiempo y forma.
Una cosa que es fundamental el anlisis de eventos de IDS es la capacidad de correlacionar todos sus datos de auditora de
diversas fuentes, por lo que puede determinar la causa exacta de una alerta y qu acciones se deben tomar.
Esto podra implicar cualquier cosa, desde la simple consulta de una base de datos de alertas similares a la observacin del ujo TCP
conversaciones. Una herramienta para ayudar a facilitar esta correlacin es Sguil (
http://sguil.sourceforge.net
).
TIP
En caso de que usted se est preguntando, Sguil se pronuncia "sgweel" (para rimar con "chillido").
Sguil es una consola de anlisis grco escrito en Tcl / Tk que rene el poder de herramientas como
Ethereal (
http://www.ethereal.com
), Flujo TCP
(
http://www.circlemud.org/jelson/software/tcpow/
), Y el escaneo de puertos de Snort y ujo TCP
preprocesadores de decodicacin en una aplicacin unicada nica, donde se correlaciona todos los datos de cada uno de
estas fuentes. Sguil utiliza un modelo cliente / servidor y se compone de tres partes: un plug-in para el corral, un
servidor ( sguild ), y un cliente ( sguil.tk ). Los agentes instalados en cada uno de sus sensores NIDS informan
informacin al servidor Sguil. El servidor se encarga de la recogida y la correlacin de todos los datos de
los agentes de sensores y maneja la informacin y las solicitudes de autenticacin de los clientes GUI.
Antes de comenzar a utilizar Sguil, tendrs que descargar la distribucin desde Sguil web del proyecto
sitio y descomprimirlo. Esto crea un directorio que reeja el paquete y su nmero de versin (por ejemplo, sguil-
0.6.1 ).
La creacin de la base de datos
El primer paso en la creacin de Sguil est creando una base de datos MySQL para almacenar su informacin. Usted debe
Tambin crear un usuario que Sguil puede utilizar para acceder a la base de datos:
$ mysql-u root-p
Introduce el password:
Bienvenido al monitor de MySQL. Comandos terminan con; o \ g.
Su conexin MySQL id es 546 a la versin del servidor: 3.23.55
Escriba 'help'; o '\ h' para obtener ayuda. Tipo '\ c' para borrar el bfer.
mysql> CREATE Sguil base de datos;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON Sguil. * A Sguil IDENTIFICADO POR 'sguilpass' \
WITH GRANT OPTION;
Query OK, 0 las afectadas (0,06 seg)
mysql> FLUSH PRIVILEGES;
Query OK, 0 las afectadas (0,06 seg)
mysql>
Ahora, usted tendr que crear las tablas de base de datos de Sguil. Localice el create_sguildb.sql archivo (que debe estar en
el servidor / sql_scripts subdirectorio del directorio que se cre al desempaquetar el Sguil
distribucin) y suministrarlo a la
mysql
de comandos, as:
$ mysql-u root-p Sguil <create_sguildb.sql
Pgina 357
Conguracin del servidor
sguild requiere varios paquetes Tcl para ejecutar. El primero es TclX (
http://tclx.sourceforge.net
),
que es una biblioteca de extensiones de Tcl. El segundo es MySQLTcl (
http://www.xdobry.de/mysqltcl/
). Ambos
de ellos se puede instalar mediante la ejecucin
. / Congure && make
, Y luego convertirse en la raz y en funcionamiento
hacer
instalar
.
Puede comprobar que se han instalado los paquetes correctamente ejecutando los siguientes comandos:
$ tcl
tcl> paquete requiere TclX
8.3
tcl> paquete requiere MySQLTcl
3.02
tcl>
Si desea utilizar SSL para cifrar el trco entre la interfaz grca de usuario y el servidor, usted tambin tendr que
instalar tcltls (
http://sourceforge.net/projects/tls/
). Para comprobar que se ha instalado correctamente, ejecute
este comando:
$ tcl
tcl> paquete requiere tls
1.40
tcl>
Ahora, tendr que congurar sguild . En primer lugar, cree un directorio adecuado para la celebracin de su conguracin
archivos (por ejemplo, / etc / sguild ):
# mkdir / etc / sguild
A continuacin, copie sguild.users , sguild.conf , sguild.queries , sguild.access y autocat.conf al directorio
que ha creado:
# servidor de cd
# cp autocat.conf sguild.conf sguild.queries \
sguild.users sguild.access / etc / sguild
Esto supone que usted est en el directorio que se cre al desempaquetar el Sguil distribucin.
Usted tambin querr copiar el sguild script para un lugar ms permanente, como / usr / local / sbin o
algo similar.
Ahora, editar sguild.conf contarla cmo acceder a la base de datos que ha creado. Si ha utilizado la base de datos
comandos mostrados anteriormente para crear la base de datos y usuario para Sguil, establecer estas variables para el
siguientes valores:
establecer DBNAME Sguil
establecer DBPASS sguilpass
establecer localhost DBHOST
establecer dbPort 3389
establecer sguil DBUSER
Adems, sguild requiere el acceso a las reglas de Snort utilizados en cada sensor de manera que pueda correlacionar la
diferentes piezas de datos que recibe de los sensores. Se puede decir sguild dnde buscar estos por
el establecimiento de la
RULESDIR
variable. Por ejemplo, la siguiente lnea dice sguild buscar normas en
/ etc / snort / rules :
establecer RULESDIR / etc / snort / rules
Sin embargo, sguild necesita encontrar reglas para cada sensor que monitorea aqu, as que esto es slo la base
Pgina 358
directorio para las reglas. En la bsqueda de las reglas para un host especco, busca en el directorio correspondiente
al nombre del ordenador en el directorio que especique (por ejemplo, zul 's reglas estarn en / etc / snort / rules / zul ).
Para establecer donde sguild archivos los datos que recupera de los sensores, cambie el
LOCAL_LOG_DIR
variable para
algo como lo siguiente:
establecer LOCAL_LOG_DIR / var / log / snort / Archivo
Usted tambin necesitar instalar ujo TCP (
http://www.circlemud.org/jelson/software/tcpow/
) Y p0f
(
http://www.stearns.org/p0f/
) En el host en el que se decide ejecutar sguild . Una vez que hayas hecho esto,
establecer sus lugares para que sguild puede encontrar los programas utilizando el
Flujo TCP
y
P0F_PATH
variables:
establecer ujo TCP "/ usr / bin / ujo TCP"
establecer P0F_PATH "/ usr/sbin/p0f"
Si desea utilizar SSL para cifrar sguild trco 's (que debe), que ahora tendr que crear un
Certicado SSL / par de claves [Hack # 69] .Despus de que hayas hecho esto, moverlos a / etc / sguild / certs y hacer
asegurarse de que estn nombrados sguild.key y sguild.pem .
A continuacin, tendr que aadir los usuarios para acceder a sguild desde la GUI Sguil:
# sguild-adduser andrew
Por favor ingrese el passwd para andrew:
Vuelva a escribir passwd:
Usuario andrew 'agregado con xito
Usted puede probar el servidor en este momento mediante la conexin a la misma con el cliente GUI. Todo lo que necesitas hacer es
editar el sguil.conf archivo y cambiar el
ServerHost
variable para que apunte a la mquina en la que sguild es
instalado. Adems, si desea utilizar SSL, necesitar cambiar las siguientes variables a los valores
similares a estos:
establecer OPENSSL 1
establecer TLS_PATH / usr/lib/tls1.4/libtls1.4.so
Ahora, probar el cliente y el servidor mediante la ejecucin sguil.tk . Despus de un momento, usted debe ver a un inicio de sesin
ventana, como se muestra en la Figura 11-3 .
Figura 11-3. El cuadro de dilogo de inicio de sesin Sguil
Pgina 359
Introduzca la informacin que utiliz cuando cre el usuario y haga clic en Aceptar. A continuacin, debera ver el
dilogo que se muestra en la Figura 11-4 .
Figura 11-4. Sguil hay dilogo sensores disponibles
Puesto que usted no tendr ningn sensores para controlar an, haga clic en Salir.
Instalacin de un sensor
Conguracin de un sensor involucra la instalacin de una versin parcheada de Snort que usa versiones modicadas del
PortScan y TRANSMISIN 4 preprocesadores. Tambin tendr que parchear Barnyard para utilizar la salida especial de Sguil
plug-in. Script de agente sensor de Sguil entonces recopilar datos de Snort y Barnyard y lo remitir al
sguild .
Parches Snort
Para congurar un sensor Sguil, tendr que parchear el cdigo fuente de Snort. Usted puede encontrar los parches que
necesitar en el sensor/snort_mods/2_1 subdirectorio de la distribucin fuente Sguil. Ahora, cambie a la
directorio que contiene el cdigo fuente de Snort, vaya al src / preprocesadores subdirectorio, y el parche
spp_portscan.c y spp_stream4.c :
$ cd/snort-2.4.4/src/preprocessors
$ spp_portscan.c parche <\
/ Sguil-0.6.1/sensor/snort_mods/2_1/spp_portscan_sguil.patch
parches spp_portscan.c archivo
Trozo # 4 consigui en 1252 (offset 2 lneas).
Trozo # 6 logr en 1285 (offset 2 lneas).
Trozo # 8 sucedi en 1416 (offset 2 lneas).
$ spp_stream4.c parche <\
/ Sguil-0.6.1/sensor/snort_mods/2_1/spp_stream4_sguil.patch
parches spp_stream4.c archivo
Trozo # 1 tuvo xito en el 72 con fuzz 1 (offset 39 lneas).
Trozo # 3 logr en 197 (offset 47 lneas).
Trozo # 4 consigui a 254 con fuzz 2 (offset 32 lneas).
Trozo # 5 tuvo xito en 300 (offset -12 lneas).
Trozo # 6 tuvo xito en 421 (offset 46 lneas).
Trozo # 7 tuvo xito en 419 con fuzz 2 (offset -8 lneas).
Trozo # 8 tuvo xito en 1069 con fuzz 1 (offset 82 lneas).
Trozo # 9 logr en 1117 (offset 14 lneas).
Trozo # 10 tuvo xito en 3609 (offset 296 lneas).
Trozo # 11 tuvo xito en 3361 (offset 14 lneas).
Trozo # 12 tuvo xito en 4002 (offset 327 lneas).
Compilar Snort [Hack # 106] como lo hara normalmente. Despus de que hayas hecho esto, edite su snort.conf y
Pgina 360
permitir a los PortScan y TRANSMISIN 4 preprocesadores:
portscan preprocesador: $ HOME_NET 4 3 / var / log / snort / escaneos de puertos gw-ext0
preprocesador stream4: detect_scans, disable_evasion_alerts, keepstats db \
/ Var / log / snort / ssn_logs
La primera lnea permite al portscan preprocesador y le dice que para activar una alerta portscan si las conexiones a
cuatro puertos diferentes se reciben desde el mismo host dentro de un intervalo de tres segundos. A continuacin, se especica
que el portscan preprocesador mantendr sus registros en / var / log / snort / escaneo de puertos . El ltimo campo en la lnea
es el nombre del sensor. La segunda lnea permite al stream4 preprocesador, lo dirige a detectar stealth
escaneo de puertos, y le dice que no alertar sobre la superposicin de los datagramas TCP. Tambin cuenta la stream4
preprocesador para mantener sus registros en / var / log / snort / ssn_logs .
Usted tambin necesitar congurar Snort utilizar su formato de salida unicado, de modo que usted puede utilizar para Barnyard
manejar el registro de Snort de
alerta
y
log
eventos:
salida alert_unied: nombre de archivo snort.alert, limite 128
salida log_unied: nombre de archivo snort.log, limite 128
A continuacin, cree una entrada crontab para el log_packets.sh script que viene con Sguil. Este script inicia una
instancia de Snort nicamente al registro de paquetes. Esta lnea de crontab tendr el guin reiniciar el registro de Snort
ejemplo, cada hora:
00 0-23/1 *** / usr / bin reinicio local / / log_packets.sh
Edite las variables al principio de la secuencia de comandos, cambiando para adaptarse a sus necesidades. Estas variables indican
el guin donde encontrar el binario Snort (
SNORT_PATH
), Donde tener los paquetes de registro de Snort para (
LOG_DIR
),
qu interfaz de rastrear en (
INTERFAZ
), Y que las opciones de lnea de comandos para utilizar (
OPCIONES
).
Preste especial atencin a la
OPCIONES
variables, donde usted puede decir lo que Snort de usuario y de grupo para ejecutar como;
el valor por defecto no funcionar a menos que haya creado un sguil usuario y grupo. Adems, se puede especicar qu
trco a no iniciar estableciendo el
FILTRO
variable a una (es decir, BPF tcpdump -estilo) del ltro. Tambin debe
congurar el nombre del sensor mediante el establecimiento de la
HOSTNAME
variable.
Parches Barnyard
A continuacin, compilar e instalar Barnyard [Hack # 116] . Usted tendr que parchear, lo que se puede hacer mediante la ejecucin
estos comandos:
$ cd/barnyard-0.2.0
$ cp/sguil-0.6.1/sensor/barnyard_mods/congure.in.
$ . / autojunk.sh
$ cd src / salida-plugins /
$ cp/sguil-0.6.1/sensor/barnyard_mods/op_ *.
$ parche op_plugbase.c <op_plugbase.c.patch
Despus de que hayas hecho esto, ejecute el congure script con el
- Enable-tcl
opcin en adicin a cualquier otra
opciones que desee utilizar. A continuacin, ejecute
hacer
desde el directorio actual; cuando que completa, el cambio
en el directorio de nivel superior de la distribucin de cdigo fuente y ejecutar
make install
. Para congurar Barnyard a
utilizar el Sguil salida plug-in, aada esta lnea a su barnyard.conf archivo:
sguil salida
Ahora, usted puede comenzar a corral como lo hara normalmente.
Finalizacin
Por ltimo, tendr que congurar la escritura agente sensor de Sguil, sensor_agent.tcl , donde se puede encontrar en el
Pgina 361
sensor de directorio de la distribucin fuente. Antes de ejecutar la secuencia de comandos, tendr que modicar varias
variables en el archivo de conguracin, sensor_agent.conf , para adaptarse a su situacin. Por ejemplo:
establecer localhost SERVER_HOST
establecer SERVER_PORT 7736
establecer HOSTNAME gw-ext0
establecer LOGDIR / var / log / snort
Ahora que todo est congurado, cree un usuario para ejecutar sguild bajo y empezar as:
$ sguild-O / usr/lib/tls1.4/libtls1.4.so
Asegrese de que el argumento para
-O
apunta a la ubicacin de libtls en su sistema, o, si no est
usando SSL, omita el
-O / usr/lib/tls1.4/libtls1.4.so
porcin del comando.
Ahora, inicie el agente sensor mediante la ejecucin de un comando como el siguiente:
$ sensor_agent.tcl-O
-O / usr/lib/tls1.4/libtls1.4.so
Al igual que con el demonio, omita las opciones de lnea de comandos si no desea utilizar el cifrado SSL.
Sin embargo, se recomienda utilizarlo.
Conseguir Sguil correr no es trivial, pero vale la pena el esfuerzo. Una vez que est en su lugar, Sguil proporcionar
que con una muy buena visin de precisamente lo que est sucediendo en su red. Sguil presenta datos
de un grupo de fuentes simultneamente, dndole una buena vista de la gran imagen que a veces es
imposible ver cuando slo mirar los registros de NIDS.
Pgina 362
Hack # 109. Administrar una Red de Sensores
Utilice la interfaz web fcil de usar de SnortCenter para administrar sus sensores NIDS.
La gestin de un sensor IDS y hacer el seguimiento de las alertas que genera puede ser una tarea de enormes proporciones, y es
an ms difcil cuando ests tratando con mltiples sensores. Una manera de unicar todas sus IDS-
tareas de gestin en una sola aplicacin es utilizar SnortCenter
(
http://sourceforge.net/projects/snortcenter2/
), Un sistema de gestin de Snort.
SnortCenter se compone de una consola basada en la web y de sensores agentes que se ejecutan en cada mquina en su
Infraestructura NIDS. Te permite unicar todas tus gestiones y tareas de vigilancia en un solo programa,
que puede ayudarle a realizar su trabajo rpidamente. SnortCenter tiene su propio esquema de autenticacin de usuario,
y es compatible con la comunicacin encriptada entre la consola de administracin basada en web y la
agentes de sensor individuales. Esto le permite actualizar mltiples sensores con nuevas reglas de Snort o crear
nuevas reglas de su propia y los empujan a sus sensores de seguridad.
SnortCenter tambin le permite iniciar y detener los sensores de forma remota a travs de su interfaz de gestin.
Para ayudarle a supervisar las alertas de sus sensores, SnortCenter puede integrarse con BASE [Hack # 107] .
Para congurar SnortCenter, primero tendr que instalar la consola de administracin en el servidor web que tiene
tanto el soporte de PHP y el acceso a un servidor de base de datos MySQL donde SnortCenter puede almacenar su
base de datos de conguracin. Para instalar la consola de administracin, descargue la distribucin de su
Pgina del proyecto en SourceForge y descomprimirlo:
# tar xfz snortcenter-console-3-31-05.tar.gz
Esto crear un directorio que contiene los scripts de SnortCenter PHP, grcos y esquemas SQL. Ahora,
copie el contenido del directorio en una ubicacin adecuada dentro de la raz de documentos de su servidor web mediante
comandos como la siguiente:
# cp-R-release snortcenter / var / www / html
# mv snortcenter liberacin snortcenter
Instalacin de los requisitos previos
Para activar SnortCenter para comunicarse con su base de datos, tambin deber instalar
ADODB
(
http://adodb.sourceforge.net
), Un paquete de PHP que proporciona la base de datos funcionalidad abstraccin.
Una vez que haya descargado el
ADODB
cdigo, descomprimirlo en un lugar donde los scripts CGI pueden acceder a l.
A continuacin, instale rizo (
http://curl.haxx.se
). Descargue la distribucin de cdigo fuente y descomprimirlo. Carrera
. / Congure && make
, Y la raz y ejecutar a continuacin convertido
make install
. (Como alternativa, rizo podra ser
disponible con el sistema operativo: Red Hat tiene un rizo . RPM, y * BSD lo incluye en el rbol de ports)
Conguracin de la Consola
Despus de que est fuera del camino, tendr que editar de SnortCenter cong.php archivo (por ejemplo,
/ Var / www / html / snortcenter / cong.php ) y cambiar estas variables para valores similares que se adapten a su
situacin:
$ DBlib_path = "/ / adodb /....";
$ Curl_path = "/ usr / bin";
$ DbType = "mysql";
$ DB_dbname = "SNORTCENTER";
$ DB_HOST = "Localhost";
Pgina 363
$ DB_port = "";
$ DB_USER = "Snortcenter";
$ Contrasea_bd = "snortcenterpass";
$ Hidden_key_num = 1823701983719312;
Esta conguracin le dice SnortCenter a buscar la
ADODB
cdigo en el adodb directorio dos directorios
niveles por encima de la que contiene SnortCenter. Adems, se dice SnortCenter para conectarse a un MySQL
base de datos llamada SNORTCENTER que se est ejecutando en el equipo local como el usuario snortcenter con el
contrasea snortcenterpass .
Dado que se conecta a un servidor MySQL en la mquina local, no hay necesidad de especicar un puerto. Si
desea conectarse a una base de datos que se ejecuta en otro sistema, debe especicar
3389
, Que es el
puerto predeterminado utilizado por MySQL. Conjunto
$ Hidden_key_num
a un nmero aleatorio. Se utiliza para asegurarse de que slo
la consola puede hablar con sus agentes SnortCenter, y vice-versa.
Despus de que haya terminado de editar cong.php , usted tendr que crear la base de datos y el usuario que ha especicado y establecer
la contrasea correcta:
$ mysql-u root-p mysql
Introduce el password:
Bienvenido al monitor de MySQL. Comandos terminan con; o \ g.
Su conexin MySQL id es 72 a la versin del servidor: 4.1.16
Escriba 'help'; o '\ h' para obtener ayuda. Tipo '\ c' para borrar el bfer.
mysql> crear SNORTCENTER base de datos;
Query OK, 1 la afectada (0,01 seg)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE EN SNORTCENTER. * A \
snortcenter @ localhost SEALADAS POR snortcenterpass ';
Query OK, 0 las afectadas (0,00 seg)
mysql> FLUSH PRIVILEGES;
Query OK, 0 las afectadas (0,02 seg)
mysql> exit
Adis
A continuacin, crear las tablas de base de datos:
$ mysql-u root-p SNORTCENTER <snortcenter_db.mysql
Ahora, utilice su navegador web para cargar la URL correspondiente a donde se instal. La primera vez
Cargas SnortCenter, se conectar a la base de datos que ha especicado y crear la base de datos necesaria
tablas. Despus de cargar la pgina, debera ver algo similar a la Figura 11-5 .
Pgina 364
Figura 11-5. Creacin automtica de tablas de la base SnortCenter
La pgina debe refrescarse despus de unos minutos y usted debera ver la pgina de inicio de sesin se muestra en la Figura 11-6 .
Figura 11-6. La pgina de inicio de sesin SnortCenter
Introduzca el valor predeterminado de usuario / contrasea de administrador / cambio y luego haga clic en el botn Iniciar sesin. Usted debe ver una pgina
similar a la Figura 11-7 .
Pgina 365
Figura 11-7. La pgina principal SnortCenter inicial
Ahora que usted sabe que la consola de administracin se ha instalado correctamente, puede pasar a
la instalacin del agente. Pero primero, usted debe cambiar la contrasea para el administrador de cuenta. Elegir
Administrar ! Gestin de usuarios ! Ver usuarios para que aparezca la pgina del listado de usuarios se muestra en la Figura 11-8 .
Figura 11-8. Pgina del listado de usuarios del SnortCenter
Al hacer clic en el icono a la izquierda del nombre de usuario que debera llevar a una pgina similar a la Figura 11-9 , donde
puede editar el administrador de informacin de cuenta (incluyendo la contrasea).
Pgina 366
Figura 11-9. Cambiar la contrasea de la cuenta de administrador y la direccin de correo electrnico
Conguracin de un Agente
Ahora usted puede ir sobre la creacin de sus agentes de sensores (de verdad, lo digo en serio esta vez).
Agentes del sensor de SnortCenter estn escritos en Perl y requieren la
Net :: SSLeay
mdulo para comunicarse
con la consola de administracin a travs de un canal seguro. Si usted tiene mdulo CPAN de Perl instalado,
puede instalar
Net :: SSLeay
fcilmente ejecutando el siguiente comando:
# perl-MCPAN-e "instalar Net :: SSLeay"
Para instalar el cdigo del sensor, primero tendrs que descomprimirlo:
# tar xfz / tmp/snortcenter-agent-v1.0-RC1.tar.gz
Esto crear un directorio llamado sensor que contiene todo el cdigo de agente sensor. Copie ese directorio
a una ubicacin permanente adecuada. Por ejemplo:
# cp-R sensor / usr / local / snortcenter
Por ltimo, ejecutar secuencias de comandos de conguracin del agente de sensor:
# sh setup.sh
************************************************** **************************
Bienvenido al Agente Sensor SnortCenter script de conguracin, la versin 1.0 RC1 *
************************************************** **************************
Instalacin del sensor en / usr / local / snortcenter ...
************************************************** **************************
El Agente del sensor utiliza directorios distintos para los archivos de conguracin y archivos de registro.
A menos que quieras colocarlos en otro directorio, slo puede aceptar los valores predeterminados.
Directorio de archivos de conguracin [/ usr / local / snortcenter / conf]:
Pgina 367
Este script le pedir varias piezas de informacin, tales como la conguracin del agente de sensor
presentar y registrar los directorios, la ruta completa de la perl binario (por ejemplo, / usr / bin / perl ), y la ubicacin de su
esnifar binario y las reglas. Tambin le har preguntas acerca de su sistema operativo, qu puerto e IP
direccin que desea que el agente de sensor para escuchar en (el valor predeterminado es el puerto TCP 2525), y lo que las direcciones IP
se les permite conectarse al agente (por ejemplo, la direccin IP de la consola SnortCenter).
Se le pedir congurar un inicio de sesin y la contrasea que la consola de administracin utilizar para iniciar sesin en el
agente, y durante el proceso de instalacin se copiar un certicado auto-rmado a conf / sensor.pem para la
agente para utilizar cuando se comunica con la consola. Como alternativa, puede crear un certicado rmado
[Hack # 69] y el uso que. Una vez que el certicado est en su lugar, abierto conf / miniserv.conf y cambie la lnea
que dice
ssl = 0
decir
ssl = 1
.
Despus SnortCenter que ha llevado por toda la informacin que necesita, va a iniciar el agente de sensor en
la direccin del puerto y IP especicada en el archivo de conguracin. Ahora puede probar el agente sensor
acceder a ella con su navegador web (asegrese de usar https en lugar de http ).
Despus de introducir la informacin de acceso contenida en el script de conguracin, usted debe ver la consola directa
la pgina se muestra en la Figura 11-10 .
Figura 11-10. La pgina de la consola directa agente sensor
Incorporacin de un agente de la consola
Ahora, usted puede volver a la consola de administracin principal y aadir el sensor a la misma. Inicie sesin y seleccione Agregar
Sensor en el men Consola Sensor. Usted debe ver el dilogo que se muestra en la gura 11-11 .
Pgina 368
Figura 11-11. La adicin de un agente de sensor
Complete la informacin que utiliz cuando se ejecuta el script de conguracin y haga clic en el botn Guardar. Cuando el
pgina siguiente cargas, el sensor que acaba de agregar deberan aparecer en la lista de sensores. Usted puede empujar una bsica
conguracin al sensor, abra el men de administracin, seleccionando el elemento Importar / reglas de actualizacin y
la eleccin de actualizacin desde Internet.
Volver a la lista de sensores haciendo clic en Ver sensores en el men Sensor Consolas, y luego haga clic en el
Empuje hipervnculo para el sensor. Para iniciar Snort en ese sensor en particular, haga clic en el enlace Iniciar. Despus de Snort
ha comenzado en el sensor, lista de sensores de SnortCenter debe ser similar a la gura 11-12 .
Pgina 369
Figura 11-12. Lista de sensores de SnortCenter despus de comenzar un sensor
Ahora puede congurar su sensor mediante el uso de la conguracin del sensor y los mens de Recursos. Una vez que haya
creado una conguracin que est satisfecho con, puede empujar a su sensor (s), volviendo a la
lista de sensores y seleccionar Push.
Pgina 370
Hack # 110. ESCRIBE reglas de Snort
Personalizar Snort para sus propias necesidades de forma rpida y sencilla, aprovechando su motor de reglas exibles y
idioma.
Una de las mejores caractersticas de Snort [Hack # 106] es su motor de reglas y el lenguaje. Motor de reglas de Snort
ofrece una extensa lengua que le permite escribir sus propias reglas, que le permite ampliar a
satisfacer las necesidades de su red.
Una regla de Snort puede ser dividido en dos partes bsicas: el encabezado de la regla y las opciones para la regla. La regla
encabezado contiene la accin a realizar, el protocolo que se aplica la regla, y la fuente y
direcciones de destino y los puertos. Las opciones de las reglas le permiten crear un mensaje descriptivo para
asociarse con el Estado, as como revisar una variedad de otros paquetes atributos, haciendo uso de Snort de
amplia biblioteca de plug-ins.
Fundamentos de la regla
Esta es la forma general de una regla de Snort:
accin
proto
src_ip
src_port
direccin
dst_ip
dst_port ( opciones )
Cuando llega un paquete, sus direcciones IP y puertos de origen y destino se comparan con las reglas de
el conjunto de reglas. Si ninguna de las reglas es aplicable al paquete, sus opciones se comparan con el paquete.
Si todas estas comparaciones devuelven un partido, se toma la accin especicada.
Acciones
Snort proporciona varias acciones integradas que puede utilizar cuando la elaboracin de sus normas. Para simplemente ingrese el paquete
que coincide con una regla, utilice la
log
accin. La
alerta
accin genera una alerta utilizando el mtodo especicado
en el archivo de conguracin o en la lnea de comandos, adems de registrar el paquete.
Una caracterstica interesante es que se puede establecer reglas muy generales y luego crear excepciones por escrito
normas que utilizan el
pasar
accin. Esto funciona especialmente bien cuando se utiliza la normativa distribuidos con
Snort pero estn consiguiendo producirse falsos positivos para algunas de ellas. Si no es un riesgo de seguridad para ignorar
ellos, usted puede escribir simplemente
pasar
normas que excluyan a los paquetes en cuestin.
Los dos ltimos incorporado acciones de las reglas,
activar
y
dinmico
, Se utilizan conjuntamente para modicar dinmicamente
Conjunto de reglas de Snort en tiempo de ejecucin. Las reglas que utilizan la
dinmico
accin son como
log
reglas, excepto que ser
considerarse slo despus de que hayan sido activados por un
activar
gobernar. Para determinar qu
dinmico
reglas para
permitir que una vez que un
activar
regla ha sido activado, Snort impone el uso de la
activa
y
activated_by
descartar opciones. Adems,
dinmico
se requieren normas para especicar un
contar
opcin de modo que
Snort puede limitar el nmero de paquetes registrarn las reglas.
Por ejemplo, si desea iniciar los paquetes de grabacin despus de un exploit de un demonio SSH en 192.168.1.21
se ha dado cuenta, utilice un par de reglas similares a estos:
activar tcp cualquier cualquier -> 192.168.1.21 22 (contenido: "/ bin / sh"; activa: 1; \
msg: "Posible desbordamiento de bfer SSH"; )
tcp dinmica any any -> 192.168.1.21 22 (activated_by: 1; contar: 100 ;)
Estas dos reglas no son completamente infalibles, pero si alguien fuera a ejecutar un exploit con el cdigo de shell
Pgina 371
contra un demonio SSH, lo ms probable es enviar la cadena / bin / sh en el claro con el n de generar un
shell en el sistema que est siendo atacado.
Adems, puesto que SSH est cifrado, cadenas como que no seran enviadas al daemon en condiciones normales
circunstancias. Una vez activada la primera regla, se activar la segunda, que se registrarn 100
paquetes y luego se detiene. Esto es til, ya que puede ser capaz de capturar la descarga intruso o
la instalacin de un rootkit dentro de esos primeros paquetes, y el registro de ellos le ayudar a analizar el
sistema comprometido mucho ms rpidamente.
Tambin puede denir acciones de las reglas de encargo, adems de acciones integradas de Snort. Esto se hace con la
RuleType
palabra clave:
RedAlert RuleType
{
tipo de alerta
alert_syslog salida: LOG_AUTH LOG_ALERT
base de datos de salida: log, mysql, user = snort dbname = snort host = localhost
}
Esta accin de regla personalizada dice Snort que se comporta como el
alerta
descartar la accin, pero especica que el
alertas se deben enviar a la syslog daemon, mientras que los paquetes se registran en una base de datos. Cundo
que establezca una accin personalizada, puede utilizar cualquiera de los plug-ins de salida de Snort, tal como lo hara si usted fuera
congurarlos como su mtodo de produccin primaria.
Protocolos
Motor de deteccin de Snort es compatible con varios protocolos. La
proto
campo se utiliza para especicar el protocolo de
que se aplica la regla. Los valores vlidos para este campo son
ip
,
icmp
,
tcp
, Y
udp
.
Direcciones IP
Los siguientes campos en una regla de Snort se utilizan para especicar el origen y destino de las direcciones IP y los puertos de
el paquete, as como la direccin en la que el paquete est viajando. Snort puede aceptar una sola direccin IP
direccin o una lista de direcciones. Cuando se especica una lista de direcciones IP, debe separar cada uno con
una coma y luego encerrar la lista entre corchetes, por ejemplo:
[192.168.1.1,192.168.1.45,10.1.1.24]
Al hacer esto, tenga cuidado de no utilizar ningn espacio en blanco. Tambin puede especicar los rangos de direcciones IP
utilizando la notacin CIDR, o incluso incluir rangos CIDR dentro de las listas. Snort tambin le permite aplicar la
operador lgico (
!
) A una direccin IP o un rango CIDR para especicar que la regla debe coincidir con todos, pero
que la direccin o rango de direcciones.
Puertos
Al igual que con las direcciones IP, Snort puede aceptar puertos individuales, as como rangos. Para especicar un rango, utilice dos puntos
carcter para separar el lmite inferior del lmite superior. Por ejemplo, si desea especicar todos
puertos 1-1024, lo hacen de esta manera:
1:1024
Tambin se puede aplicar el operador NOT a un puerto, y se puede especicar un rango de puertos sin un lmite superior
o lmite inferior.
Por ejemplo, si usted desea examinar slo los puertos mayores que 1024, hacerlo de esta manera:
1024:
Del mismo modo, puede especicar los puertos a menos de 1.024 al hacer esto:
Pgina 372
: 1024
Si no se preocupan por la direccin IP o el puerto, slo tiene que especicar
cualquier
.
Cambiando de tema, el
direccin
campo se utiliza para decirle a Snort que son la direccin IP de origen y el puerto y
que son el destino. En versiones anteriores de Snort, puede utilizar cualquiera de los dos -> o <- para especicar el
direccin. Sin embargo, la
<-
operador ha sido eliminado, ya que se puede hacer ya sea un equivalente a la
otra con slo cambiar las direcciones IP y nmeros de puerto. Snort tiene otro operador direccin
adems de
->
, Sin embargo. Especicar
<>
como la direccin le dice a Snort que desea que la regla se aplique
bidireccionalmente. Esto es especialmente til cuando se utilizan
log
reglas o
dinmico
reglas, ya que le permite
iniciar ambos lados del ujo TCP en vez de slo uno.
Opciones
La siguiente parte de la norma incluye las opciones. Esta parte le permite especicar muchos otros atributos para comprobar
contra. Cada opcin se implementa a travs de un plug-in de Snort. Cuando una regla que especica una opcin es
desencadenado, Snort se ejecuta a travs de la opcin correspondiente plug-in para realizar la comprobacin en contra de la
paquete. Snort tiene ms de 40 plug-ins-demasiados para cubrir en detalle en este hack, pero vamos a ver un poco de
de los ms tiles.
Adicin de mensajes legibles
La opcin ms til es
msg
. Esta opcin le permite especicar un mensaje personalizado que se registra
en la alerta cuando se detecta un paquete coincidiendo esta regla. Sin ella, la mayora de las alertas no tendra mucho
sentido a primera vista. Esta opcin toma una cadena entre comillas como su argumento.
Por ejemplo, especica un mensaje lgico siempre Snort nota cualquier trco que se enva desde
192.168.1.35:
tcp alerta 192.168.1.35 cualquier -> any any (msg: "El trco de 192.168.1.35" ;)
Asegrese de no incluir las comillas escapado dentro de la cadena. Analizador de Snort es simple y no
apoyar escapar caracteres.
Inspeccin de contenido del paquete
Otra opcin til es
contenido
, Que le permite buscar un paquete para una secuencia de caracteres o
valores hexadecimales. Si usted est en busca de una cadena, slo puede ponerlo entre comillas; para especicar un caso-
bsqueda insensible, aadir
nocase;
hasta el nal de todas sus opciones. Si usted est buscando para una secuencia de
dgitos hexadecimales, debe encerrarlos en
|
personajes. Por ejemplo, esta regla se activar cuando
el dgito
0x90
es visto en la carga til de datos de un paquete:
tcp alerta a cualquier -> any any (msg: "Posible explotar"; contenido: "| 90 |" ;)
Este dgito es el equivalente hexadecimal de la instruccin NOP en la arquitectura x86 y es a menudo
visto en el cdigo de explotacin, ya que puede ser utilizado para hacer desbordamiento del bfer explota ms fcil para escribir.
La
offset
y
profundidad
opciones se pueden utilizar en conjuncin con la
contenido
opcin para limitar la bsqueda
parte de la carga til de datos a un rango especco de bytes. Por ejemplo, si desea limitar el contenido
partidos para obtener instrucciones NOP a entre bytes 40 y 75 de la parte de datos de un paquete, puede
modicar la regla previamente demostrado tener este aspecto:
tcp alerta a cualquier -> any any (msg: "Posible explotar"; contenido: "| 90 |"; \
offset: 40; profundidad: 75 ;)
Tambin puede igualar contra paquetes que no contengan la secuencia especicada por el prejo con un
!
.
Pgina 373
Otra cosa que usted puede ser que desee comprobar es el tamao de la carga til de datos de un paquete. Muchos cdigo shell
cargas tiles pueden ser grande en comparacin con la cantidad normal de datos transportados en un paquete enviado a una en particular
servicio. Usted puede comprobar el tamao de la carga til de datos de un paquete mediante el uso de la
DSIZE
opcin. Esta opcin toma
un nmero como argumento. Adems, se puede especicar un lmite superior mediante el uso de la
<
operador, o
puede elegir una cota inferior utilizando el
>
operador. Lmites superior e inferior se pueden expresar con
<>
.
Por ejemplo, la siguiente lnea modica la regla anterior para que coincida slo si el tamao de la carga til de datos es
mayor que 6000 bytes, adems de los otros criterios de Opciones:
tcp alerta a cualquier -> any any (msg: "Posible explotar"; contenido: "| 90 |"; \
offset: 40; profundidad: 75; DSIZE:> 6000 ;)
Coincidencia de indicadores TCP
Para comprobar los indicadores de TCP de un paquete, Snort ofrece la
banderas
opcin. Esta opcin es especialmente til
para detectar escaneos de puertos que emplean diferentes combinaciones de indicadores vlidos.
Por ejemplo, esta regla se detectar cuando el
SYN
y
FIN
banderas se establecen al mismo tiempo:
avisar a cualquier cualquier -> any any (banderas: SF, 12; msg: "Posible escaneo FIN SYN" ;)
Banderas vlidos son
S
para
SYN
,
F
para
FIN
,
R
para
RST
,
P
para
PSH
,
La
para
ACK
, Y
U
para
URG
. Adems, permite a Snort
comprobar los valores de los dos bits de la bandera reservados. Puede especicar estos mediante el uso de cualquiera de los dos
1
o
2
. Usted
Tambin puede comparar paquetes que no tienen indicadores establecidos mediante el uso de
0
. La
banderas
opcin aceptar varios
operadores. Puede anteponer o bien un
+
,
*
, O
!
a las banderas, para que coincida en todas las banderas, adems de cualesquiera otros,
cualquiera de las banderas, o slo si ninguna de las banderas estn situados, respectivamente.
Umbral
En la prctica, usted podra encontrar que algunas de sus normas son un poco ruidoso y activar alertas con demasiada frecuencia para ser
til. Una manera de conseguir esto es utilizar la funcin de umbral de Snort. Esta caracterstica le permite
especicar un nmero mnimo de veces que una regla debe ir acompaado de una direccin IP en particular antes de que
realmente genera una alerta, o limitar el nmero de alertas de una regla puede generar durante una arbitraria
intervalo de tiempo.
Usted puede utilizar umbrales de dos maneras diferentes.
Umbral de la rma ID
Se puede especicar un umbral para una regla por separado haciendo referencia a su identicacin. Declaraciones de umbral toman la
formulario y se suele poner en threshold.conf (ubicado en el mismo directorio que el
snort.conf ):
umbral gen_id <generator <ID , sig_id <rma <ID , \
escriba <limit | Umbral | both> , \
seguimiento <by_src | by_dest> , cuente <n> , segundo <m>
La
<generator <ID
es la porcin de Snort que genera la alerta que desea umbral. Esto se utiliza
para rastrear qu preprocesador una alerta vino. Dado que todas las alertas para las rmas son generados por Snort del
motor de la rma, esto siempre debe establecerse en
1
. La
<rma <ID
corresponde a la rma de identicacin.
Esto, por supuesto, signica que usted tendr que especicar los ID al escribir sus propias reglas. Esto se hace con
la
sid
opcin. Usted tambin querr para especicar la revisin de la regla con la
revolucin
opcin.
Por ejemplo, he aqu una regla que mirbamos antes, pero con
sid
y
revolucin
Opciones de creacin:
tcp alerta a cualquier -> any any (msg: "Posible explotar"; contenido: "| 90 |"; \
offset: 40; profundidad: 75; DSIZE:> 6000; sid: 1000001; rev: 1 ;)
Pgina 374
Tenga en cuenta que slo los ID de rma mayor que un milln se pueden utilizar para normas locales.
Al especicar los umbrales, se puede elegir entre tres tipos.
lmite
umbrales provocan una alerta para ser
generados hasta la rma se ha visto acompaado de un nmero determinado de veces (especicado con la
contar
opcin) durante el intervalo elegido (especicado con la
segundo
parmetro). La
umbral
se utiliza el tipo
para evitar que una alerta se generen menos que la rma se ha visto acompaado por lo menos
contar
veces
durante el intervalo de tiempo especicado. Especicar
ambos
como el tipo produce una mezcla de los dos
tcnicas: se har una alerta que se genera slo despus
contar
se ha alcanzado durante el
perodo de tiempo especicado. Para indicar si el umbral se aplicar al origen o destino
Direccin IP, el uso
by_src
o
by_dest
, Respectivamente.
Umbral con opciones de la regla
La otra manera de utilizar umbrales es incluir los parmetros de umbrales en la propia norma. Para
ejemplo, si alguien fuera a enviar realmente un montn de paquetes hacia sus IDS con el
SYN
y
FIN
Fije los indicadores, la regla demostrado previamente que se correspondera con ellos generara demasiadas alertas que
til. Por lo tanto, vamos a aadir un poco de umbral a la misma:
avisar a cualquier cualquier -> any any (banderas: SF, 12; msg: "Posible escaneo FIN SYN"; \
Umbral: escriba tanto, realizar un seguimiento by_dest, cuenta 100, segundo 60)
Ahora, la alerta se activar slo una vez por minuto para cada direccin IP que ve recibir al menos
100
SYN
/
FIN
paquetes durante ese perodo de tiempo.
Supresin
Si usted encuentra que una regla es todava demasiado ruidoso, puede desactivarlo ya sea en conjunto o para determinadas direcciones IP
utilizando la funcin de supresin de Snort. Declaraciones de supresin toman el siguiente formulario y suelen ser
tambin se mantiene en threshold.conf :
suprimir gen_id <ID <generator , sig_id <sid> , [pista < by_src | by_dest >, ip [/ mscara]]
Las identicaciones se especican igual que en un comunicado umbral; Sin embargo, la
pista
y
ip
parmetros pueden ser
omitido a suprimir completamente las alertas generadas por la rma. salos si desea limitar el
la supresin de una fuente especca o la direccin IP de destino (o rango de direcciones). Los rangos de IP
direcciones y redes se pueden introducir en formato CIDR.
Una de las mejores caractersticas de Snort es que proporciona muchos plug-ins que se pueden utilizar en el
Opciones
campo
de una regla. Las opciones que se mencionan a continuacin deben conseguir que fuera a un buen comienzo. Sin embargo, si desea escribir
reglas ms complejas, consulte la documentacin de regla excelente de Snort, el cual contiene una descripcin completa
y ejemplos para cada una de las opciones de reglas de Snort. Manual del usuario de Snort est disponible en
http://www.snort.org/docs/writing_rules/
.
Pgina 375
Hack # 111. Prevenir y Contener Intrusiones con Snort_inline
Instale Snort_inline en el cortafuegos para contener las intrusiones o detenerlos, ya que est pasando.
No sera agradable si sus NIDS no slo podran detectar intrusiones, sino tambin hacer algo al respecto?
Sera muy bueno si realmente poda dejar una intrusin que ocurre en el host que estaba siendo atacada,
pero la segunda mejor opcin sera la de bloquear el trco de red de propagacin del ataque. Una herramienta que puede
hacer esto para usted es Snort_inline , que se ha integrado en el rbol principal de Snort como fuente de Snort
2.3.0.
Snort_inline permite Snort para leer los datos de la cola de Netlter del kernel de Linux, que permite a Snort
efectivamente integrarse con el rewall. Esto permite no slo para detectar intrusiones, sino tambin a
decidir si dejar caer los paquetes o que transmita a otro host (utilizando libnet ). Esto, por supuesto,
requiere que el kernel se compile con soporte de cola IP esttica o como mdulo.
Usted puede ver si tiene el mdulo mediante la ejecucin de un comando como este:
$ ubicar ip_queue.ko
/ Lib/modules/2.6.16/kernel/net/ipv4/netlter/ip_queue.ko
En este caso, el resultado muestra que el mdulo est disponible. Si no es as, compruebe si el archivo
/ Proc / net / ip_queue existe. Si no puede encontrar el mdulo, pero existe ese archivo, que signica el apoyo de colas IP
est compilado en el kernel de forma esttica. El archivo no existe, tendr que habilitar la compatibilidad con cola de IP en
su ncleo y recompilar.
Snort_inline tambin requiere libipq , una biblioteca que cuenta con Netlter y es utilizado por las aplicaciones para
comunicarse con la cola de Netlter. Usted puede comprobar para ver si est instalado en el sistema mediante la ejecucin
este comando:
$ ubicar libipq
/ Usr / include / libipq.h
/ Lib / libipq.a
Si usted no ve una salida similar a esto, lo ms probable es que usted no tiene libipq instalado. Puede instalar
descargando el iptables fuente desde el sitio de distribucin de Netlter (
http://www.netlter.org
).
Para obtener instrucciones sobre la compilacin, consulte "Fool remota del sistema operativo de software de deteccin" [Hack
# 65] . Una vez nalizada la compilacin, ejecute
make install-devel
, Ya libipq no se instala por defecto.
Es posible que encuentre un error que se ve as:
Extensiones encontrados: IPv4: IPv4 DCCP: reciente IPv4: cadena IPv6: RECHAZAR
cc-O2-Wall-Wunused -I/usr/src/kernels/2.6.14/include-Iinclude / -
DIPTABLES_VERSION = \ "1.3.5 \"-fPIC-o extensiones / extensiones libipt_ah_sh.o-c / libipt_ah.c
En el archivo includo en / usr/src/kernels/2.6.14/include/linux/netlter_ipv4.h: 8,
desde / usr/src/kernels/2.6.14/include/linux/netlter_ipv4/ip_tables.h: 26,
de incluir / libiptc / libiptc.h: 6,
Desde Incluir / iptables.h: 5,
de extensiones / libipt_ah.c: 8:
/ Usr/src/kernels/2.6.14/include/linux/cong.h: 06:02: error: cabecera del kernel incluida # error
en el espacio de usuario; utilizar los encabezados de glibc en vez!
make: *** [extensiones / libipt_ah_sh.o] Error 1
Si lo hace, tendr que editar el cong.h archivo mencionado en el mensaje de error (por ejemplo,
/ Usr/src/kernels/2.6.14/include/linux/cong.h en este ejemplo) y comente la lnea que comienza
con
# Error
mediante la adicin de dos barras en el inicio de la lnea.
Adems del apoyo de colas IP y el libipq paquete, debes contar con la libnet biblioteca inyeccin de paquetes
(
http://www.packetfactory.net/projects/libnet/
). Basta con descargar la distribucin del cdigo fuente, desempaque
ella, ejecutar
. / Congure && make
, Y la raz y ejecutar a continuacin convertido
make install
.
Pgina 376
Ahora que todos los requisitos previos estn fuera del camino, se puede compilar Snort_inline . En primer lugar, la descarga y
descomprimir la distribucin de fuentes y cambie al directorio que se crea. A continuacin, ejecute este comando:
$ . / congure - enable-inline && make
Puede utilizar cualquiera de las opciones para congurar que usaras normalmente con Snort, ya que en su corazn
Snort_inline todava Snort.
No se alarme si su compilacin se interrumpe con el siguiente error:
gcc-DHAVE_CONFIG_H-I. -I. -I .. / ..-i .. / .. -I../../src -I../../src/sfutil -
I / usr / include / pcap -I../../src/output-plugins -I../../src/detection-plugins -
I.. /.. / Src / preprocesadores -I../../src/preprocessors/ow -I../../src/preprocessors/portscan
-I../../src/preprocessors/ow/int-snort -I../../src/preprocessors/HttpInspect/include -
I / usr / include-g-O2-Wall-DGIDS-D_BSD_SOURCE-D__BSD_SOURCE-D__FAVOR_BSD -
DHAVE_NET_ETHERNET_H-DLIBNET_LIL_ENDIAN-C spo_alert_fast.c
En el archivo includo en / usr/include/linux/netlter_ipv4/ip_queue.h: 10,
desde / usr / local / include / libipq.h: 37,
desde .. / / src / inline.h:.. 8,
desde .. / / src / snort.h:.. 36,
de spo_alert_fast.c: 51:
/ Usr / include / linux / if.h: 59: error: redenicin de ' struct ifmap '
/ Usr / include / linux / if.h: 77: error: redenicin de ' struct ifreq '
/ Usr / include / linux / if.h: 126: error: redenicin de ' struct ifconf '
spo_alert_fast.c: En la funcin ' AlertFastInit ' :
spo_alert_fast.c: 124: aviso: el puntero que apunta en el paso del argumento 1 de
' ParseAlertFastArgs ' diere en signo
make [3]: *** [spo_alert_fast.o] Error 1
make [3]: se sale del directorio \ Q/tmp/snort-2.4.4/src/output-plugins '
make [2]: *** [all-recursive] Error 1
make [2]: se sale del directorio \ Q/tmp/snort-2.4.4/src '
make [1]: *** [all-recursive] Error 1
make [1]: se sale del directorio \ Q/tmp/snort-2.4.4 '
make: *** [all] Error 2
Este error se produce por las cabeceras del ncleo en / usr / include / linux estar fuera de sincrona con los encabezados de
el ncleo para el que usted est construyendo Netlter. Para solucionar este problema, cree un enlace simblico desde el
/ Include / linux directorio en el rbol de fuentes del ncleo en / usr / include / linux :
# cd / usr / include
# mv linux linux.orig
# ln-s / usr/src/kernels/2.6.14/include/linux.
A continuacin, puede reiniciar la compilacin desde donde lo dej simplemente escribiendo
hacer
O, si usted es
paranoico, puede utilizar este comando para iniciar completamente sobre:
$ make clean && make
Despus de la compilacin ha nalizado, la raz y el tipo convertido
make install
.
Ahora puede congurar Snort_inline del mismo modo que congurar Snort regularmente [Hack # 106] .
Sin embargo, se recomienda que ejecute una instancia independiente de Snort si usted quiere alertar y uso
Snort_inline nicamente para el establecimiento de reglas de rewall.
Adems de modicar Snort para capturar los paquetes de Netlter en lugar de libpcap , la Snort_inline
parche aade tres tipos-nueva regla
soltar
,
sdrop
, Y
rechazar
-As como una nueva opcin de regla. La
soltar
regla
Tipo descarta el paquete que activa la regla sin noticar al host emisor, al igual que el
iptables DROP
objetivo, y los registros que ha hecho. La
sdrop
tipo de regla es similar, excepto que cae
El silencio de paquetes, sin entrada de registro para informarle. Uso de la
rechazar
bloques de tipo de norma, el infractor
Pgina 377
paquete pero notica al host emisor, ya sea con un TCP RST o un mensaje de puerto inalcanzable ICMP,
Pgina 377
dependiendo de si el paquete que activa la regla utiliza el protocolo TCP o UDP, respectivamente.
La nueva opcin de regla aadida por Snort_inline le permite reemplazar contenido arbitrario dentro de un paquete con
lo que sea que usted elija. La nica restriccin es que el ujo de bytes de repuesto debe tener la misma longitud
que el original. Esto se implementa con la
reemplazar
opcin regla, que se utiliza en conjuncin con
la
contenido
opcin de gobernar para seleccionar lo que se va a reemplazar.
Para ejecutar Snort_inline , iniciarlo como lo hara comenzar Snort. Si quieres usarlo en el modo en lnea, sin embargo,
utilizar su
-Q
modicador de la lnea de comandos, que le dice a Snort_inline utilizar colas de IP en lugar de libpcap para reunir
paquetes. En este caso, usted tambin tendr que congurar el kernel para enviar los paquetes a las colas de IP
antes de comenzar Snort_inline . Esto se hace con la
iptables
comando:
# iptables-F
# iptables-A INPUT-j COLA
# iptables-A OUTPUT-j COLA
# iptables-A FORWARD-j COLA
Esto empuja a todo el trco que va hacia adentro, afuera, ya travs de la mquina en una cola de IP desde la que
Snort_inline leern sus paquetes. A continuacin, puede empezar a
budo
(Pero no te olvides de utilizar el
-Q
opcin):
# snort-Qvc / etc / snort / snort_inline.conf
Si est utilizando una versin que no es de Snort.org, sustituto
snort_inline
para
budo
.
Si usted est administrando la mquina de forma remota, es probable que desee para comenzar
budo
antes de activar el
COLA
objetivos, ya que es
budo
que va a pasar realmente los paquetes de un lado a otro. De lo contrario, su
logins remotos sern dados de baja tan pronto como se pone el
iptables
reglas en el lugar. Para ser muy prudentes,
tener su
COLA
reglas de destino ignoran los paquetes procedentes de una determinada direccin IP o rango de direcciones.
Pgina 378
Hack # 112. Los atacantes Firewall automticamente con SnortSam
Utilice SnortSam para prevenir intrusiones poniendo reglas de rewall dinmico en lugar de detenerse en-
progresar ataques.
Una alternativa a la ejecucin de Snort en su cortafuegos y tener que activar las reglas de ltrado en la mquina
se est ejecutando en [Hack # 111] es tener Snort comunique las reglas de ltrado se deben poner en su lugar
cuando se detecta una intrusin en un cortafuegos externo. Para ello, puede utilizar SnortSam
(
http://www.snortsam.net
).
SnortSam est formado por dos componentes: un plug-in de Snort y un demonio. Utiliza plug-in de Snort
arquitectura y se extiende Snort con la capacidad de comunicarse con un servidor de seguridad remoto, que luego
se aplica de forma dinmica las reglas de ltrado para detener los ataques que estn en curso. A diferencia de Snort_inline , que es
altamente dependientes de Linux, SnortSam soporta una amplia variedad de servidores de seguridad, tales como Check Point de
FireWall-1, varios rewalls Cisco, NetScreen, Firebox, PF de OpenBSD, y de Linux ipchains y
iptables interfaces con Netlter.
Instalacin SnortSam
Para congurar SnortSam, primero descargue la distribucin de cdigo fuente y luego descomprimirlo. Despus de que hayas hecho esto,
entrar en el directorio que ha creado y ejecute este comando:
$ sh makesnortsam.sh
Esto construir la snortsam binario, que luego se puede copiar en un lugar adecuado de la ruta (por ejemplo,
/ Usr / bin o / usr / local / bin ).
Ahora, descargue el parche para Snort, que se puede llegar desde el mismo sitio que SnortSam. Despus de que haya
hecho eso, descomprimirlo:
$ xvfz tar snortsam-patch.tar.gz
patchsnort.sh
patchsnort.sh.asc
snortpatch8
snortpatch8.asc
snortpatch9
snortpatch9.asc
snortpatchb
snortpatchb.asc
A continuacin, ejecute
patchsnort.sh
y especicar el directorio en el que est manteniendo la fuente de Snort:
$ patchsnort.sh snort-2.4.4
Parches Snort versin 2.x. ..
parches spo_alert_fwsam.c archivo
parches spo_alert_fwsam.h archivo
parches twosh.c archivo
parches twosh.h archivo
rm: no se puede eliminar \ Qspo_alert_fwsam orig ':.?. No existe el chero o directorio
rm: no se puede eliminar \ Qtwosh orig ':.?. No existe el chero o directorio
parches plugbase.c archivo
Trozo # 1 tuvo xito en 114 con fuzz 2 (offset 4 lneas).
Trozo # 2 tuvo xito en 588 con fuzz 2 (offset 13 lneas).
parches plugin_enum.h archivo
Trozo # 1 tuvo xito en el 37 con fuzz 1.
Parches Makeles ...
Hecho
Pgina 379
Por ltimo, compilar Snort [Hack # 106] como lo hara normalmente, excepto ejecutar los siguientes comandos
antes de ejecutar
. / Congure
:
$ aclocal
$ autoheader
$ automake - add-missing
$ autoconf
Conguracin SnortSam
Antes de ejecutar SnortSam, debe crear un archivo de conguracin para l. Sintaxis de conguracin de SnortSam
es bastante fcil de usar, pero hay un buen nmero de opciones, por lo que slo un subconjunto de los disponibles ser
discutido aqu.
Una opcin til es
aceptar
, Que le permite decirle SnortSam lo Snort se permiten sensores para conectarse a
ella. Esta opcin puede tomar un rango CIDR formato electrnico, un nombre de host o una direccin IP nica. Usted puede
opcionalmente especicar una contrasea tambin. Si no se especica una contrasea, el especicado por el
defaultkey
se usa la opcin.
Por ejemplo, si desea permitir que todos los hosts de la red 192.168.1.0/24 con la contrasea
qwijybo , usted puede poner una lnea como la siguiente en el archivo de conguracin:
aceptar 192.168.1.0/24, qwijybo
Para especicar varios hosts o rangos de direcciones de red, puede utilizar mltiples
aceptar
entradas.
Otra opcin til es
dontblock
, Que le permite construir una lista blanca de hosts y redes
que SnortSam no bloquear en ningn caso. Esta opcin toma los nombres de host, IP nica
direcciones y rangos de direcciones CIDR; tambin puede utilizar mltiples dontblock entradas, del mismo modo que con
aceptar
.
Para mejorar el rendimiento de SnortSam, es posible que desee utilizar el
skipinterval
opcin, que le permite
decirle SnortSam cunto tiempo para saltar peticiones de bloqueo idnticos antes de reanudar normas aplicables para que
peticin. Esto asegura que SnortSam no est constantemente pidiendo el rewall para bloquear la misma ip
direccin y el puerto una y otra vez. La
skipinterval
opcin tiene un nico nmero como argumento,
especicando el nmero de segundos de espera.
Usted probablemente querr mantener control sobre lo que hace de SnortSam, ya que usted est permitiendo que se modique su
las reglas del rewall. Una forma es utilizar la
logle
opcin, que har que SnortSam para registrar eventos como
programa se inicia, el bloqueo y desbloqueo de las solicitudes, y cualquier error que se encontraron. Esta opcin
toma un nico argumento: el nombre del archivo al que los registros sern escritos. El archivo de registro que especique
se crear en / var / log .
Un par de otras opciones tiles son
demonio
y
bindip
. La
demonio
opcin simplemente le dice a SnortSam
tenedor en el fondo y se ejecute como un demonio; que no toma ningn argumento. La
bindip
opcin
le permite especicar qu direccin IP para escuchar, lo cual es til cuando la mquina que SnortSam
se est ejecutando en cuenta mltiples direcciones disponibles.
Por ejemplo, si desea SnortSam para escuchar en slo 192.168.1.15, utilice una lnea como esta:
bindip 192.168.1.15
Tambin puede cambiar el puerto que escucha en SnortSam (898 por defecto) con el
puerto
opcin.
Despus de que haya terminado con las opciones de SnortSam, tendrs que decirle qu tipo de servidor de seguridad para comunicarse
con y la forma de hacerlo. Por ejemplo, para utilizar SnortSam con un rewall de Check Point, puede especicar
Pgina 380
ya sea la
fwexec
o
fwsam
palabras clave. Uso
fwexec
cuando se quiere ejecutar SnortSam en el host que el
rewall est instalado, y el uso
fwsam
cuando se quiere comunicar con un servidor de seguridad remoto. La
fwexec
palabra clave toma la ruta completa al fw ejecutable como nico argumento, mientras que el
fwsam
palabra clave se utiliza el nombre de host o direccin IP del servidor de seguridad.
Adems, tendr que modicar el fwopsec.conf archivo en su servidor de seguridad para incluir la siguiente lnea:
puerto sam_server 1813
Para utilizar SnortSam con un rewall PIX, tendr que utilizar el
pix
palabra clave y especicar la direccin IP del
el servidor de seguridad, as como el telnet y permiten que las contraseas de modo:
pix 192.16.1.2 telnetpw enablepw
O, si su rewall est congurado para realizar la autenticacin de usuario, puede utilizar
usuario / contrasea
en lugar de la
contrasea telnet.
Si desea utilizar SnortSam con PF de OpenBSD o de Linux iptables , tendrs que utilizar la
pf
o
iptables
palabras clave. Para uso bsico, todo lo que necesita hacer es especicar la interfaz en la que bloquear
paquetes.
Para congurar el lado Snort de las cosas, tendr que aadir el
alert_fwsam
salida de plug-in para la salida
plug-ins que usted ya est usando. Este plug-in tiene un nombre de host y un puerto opcional para conectarse a,
junto con una contrasea. Si SnortSam est utilizando el puerto predeterminado, no es necesario especicar el puerto aqu:
alert_fwsam salida: rewall / micontrasea rewall2: 1025/mypassword
Observe que puede enumerar varias instancias de SnortSam para enviar solicitudes de bloque para separndolos
con espacios en blanco.
Debe modicar cualquier regla que desea activar una regla de rewall para utilizar la
fwsam
opcin de gobernar. Este
opcin toma como sus argumentos Qu bloquear, y el tiempo que el bloque debe estar vigente. Para bloquear el
de origen del paquete que caus la alerta, el uso
src
; para bloquear el destino, usar
dst
. Si desea
bloquear tanto, el uso
cualquiera de los dos
. Durante la duracin, se puede utilizar un nmero junto con un modicador que especica qu
unidad est en (es decir,
segundo
,
acta
,
horas
,
da
,
semana
,
mes
, O
ao
), O puede utilizar
0
para especicar una
periodo de tiempo indenido.
Por ejemplo, para bloquear la direccin de origen del paquete que desencaden una regla durante cinco minutos, usted podra
aadir esto a sus opciones de la regla:
fwsam: src, a 5 minutos;
Ahora que todo est congurado, inicie SnortSam ejecutando un comando similar al siguiente:
# snortsam / usr / local / etc / snortsam.conf
Por supuesto, tendr que sustituir la ruta completa al archivo de conguracin si no es
/ Usr / local / etc / snortsam.conf . En cuanto a Snort, acaba de empezar como lo hara normalmente.
Vea tambin
Para obtener ms informacin sobre el uso SnortSam con otros tipos de servidores de seguridad, asegrese de revisar la
README archivos incluidos con la distribucin de cdigo fuente
"Prevenir y Contener Intrusiones con Snort_inline" [Hack # 111] discute la instalacin de Snort_inline
en el cortafuegos
Pgina 381
Hack # 113. Detectar anmalo comportamiento
Detectar intrusiones y ataques mediante el control de su red para el trco anormal, independientemente de la
contenido real.
La mayora de los NIDS supervisar la red de rmas especcas de los ataques y activar alertas cuando uno est
visto en la red. Otro medio de deteccin de intrusiones es para generar una lnea de base estadstica de
el trco en la red y la bandera de todo el trco que no se ajusta a las normas estadsticas. Una intrusin
sistema de deteccin de este tipo es la estadstica de paquetes Anomaly Detection Engine (PALA).
PALA es en realidad una versin modicada de Snort que extiende su funcionalidad en el mbito de la
deteccin de intrusos basado en anomalas. El preprocesador ESPADA utiliza Snort para monitorear la red y
construye una tabla de probabilidad basado en el trco que se ve. A continuacin, utiliza esta tabla para generar una
puntuacin de anomala de entre 0 y 1 para cada paquete (0 es sin duda normal, y 1 es una anomala denitiva).
Instalacin de la ESPADA es fcil. Slo tienes que descargar la distribucin fuente pre-parcheada, que incluye el Snort
y el cdigo fuente de la ESPADA, descomprimirlo, y cambie al directorio que cre. Ahora compila y
instalar Snort [Hack # 106] como lo hara normalmente.
Una vez que hayas hecho esto, tendrs que congurar Snort utilizar la ESPADA. Usted tiene dos opciones aqu: usted
puede congurarlo para que utilice slo la funcionalidad pala o para utilizar la funcionalidad normal de Snort junto con la espada.
En el primer caso, se puede utilizar el spade.conf archivo ubicado en la distribucin fuente ESPADA como punto de partida
punto.
La mayor parte de los valores por defecto estn bien. Sin embargo, usted tendr que ajustar el
SPADEDIR
variable a un lugar donde
Snort ha de lectura y escritura:
SPADEDIR var / var / log / snort / pala
ESPADA mantendr diversos registros e informacin de puntos de control aqu, as que no pierda su
tabla de probabilidad siempre Snort se reinicia.
Tambin es importante que informe a la ESPADA lo que la red es su hogar red. Usted puede hacer esto mediante el uso de
una lnea similar a esta en su archivo de conguracin:
preprocesador de pala homenet: 192.168.1.0/24
Puede especicar mltiples redes separndolas con comas y adjuntando la lista en la plaza
corchetes.
Si desea ejecutar Snort con la espada y la funcionalidad tradicional de Snort, usted puede incluir su
spade.conf en su snort.conf con una lnea como esta:
incluir spade.conf
Ejecutar Snort tal como lo hizo antes. ESPADA enviar ahora su salida a cualquiera de las salidas plug-ins que
ha congurado cuando se detecta un comportamiento anmalo. Esto se activa cuando un determinado paquete
puntuacin de anomala est en el rango de .8 .9 (que depende del tipo de paquete). Cualquier alertas generadas por
PALA ser precedido de
Spade:
e incluir una descripcin de la conducta desviada del paquete
y su puntaje anomala.
Pgina 382
Hack # 114. Automticamente Reglas de actualizacin de Snort
Mantenga sus reglas de Snort hasta al da con Oinkmaster.
Si slo tiene un puado de sensores IDS, manteniendo sus reglas de Snort hasta a la fecha es bastante rpido y
proceso fcil. Sin embargo, como el nmero de sensores crece, puede llegar a ser ms difcil. Por suerte,
puede actualizar automticamente sus reglas de Snort con Oinkmaster
(
http://oinkmaster.sourceforge.net/news.shtml
).
Oinkmaster es un script en Perl que hace mucho ms que slo tiene que descargar nuevas rmas de Snort. Tambin se
modicar las rmas recin descargados segun la normativa que especique o selectivamente desactivar
ellos, lo cual es til cuando se ha modicado las reglas estndar de Snort para adaptarse a su entorno ms
de cerca o que han deshabilitado la regla de que se informa demasiados falsos positivos.
Para instalar Oinkmaster, basta con descargar la distribucin fuente y descomprimirlo. A continuacin, copie el
oinkmaster.pl archivo del directorio que cre a un lugar adecuado en el sistema. Adems,
tendrs que copiar el oinkmaster.conf archivo a / etc o / usr / local / etc . El oinkmaster.conf archivo
que viene con la distribucin de cdigo fuente est llena de comentarios explicando todas las opciones minutos que ustedes
puede congurar.
Oinkmaster es muy til para cuando se desea actualizar sus reglas, sino que tenga un conjunto de reglas que se
no quieren habilitado y que ya se coment en sus reglas de Snort actuales. Tener
Oinkmaster desactivar automticamente estas reglas, utilice el
disablesid
directiva con la regla de Snort IDs
(Separados por comas) que desea, si est desactivado se actualizan sus reglas.
Por ejemplo, si usted consigue un montn de datagramas ICMP inalcanzables en su red, es posible que tenga
decidido que usted no desea recibir alertas cuando Snort detecta este tipo de trco y coment
el siguiente regla en su icmp.rules archivo:
# Icmp alerta a cualquier -> any any (msg: "ICMP Destino Inalcanzable
(Comunicacin Administrativamente Prohibido) "; itype: 3; icode: 13; sid: 485;
ClassType: misc-actividad; rev: 2 ;)
Esta es slo una regla, por lo que es fcil de recordar para volver y hacer comentarios fuera de nuevo despus de la actualizacin
sus reglas, pero esto puede convertirse en una tarea titnica cuando se ha hecho lo mismo con varias docenas
otras reglas. Si utiliza Oinkmaster, poniendo la siguiente lnea en su oinkmaster.conf archivo desactivar
la regla anterior, una vez Oinkmaster ha actualizado sus normas por los ms recientes disponibles
Snort.org:
disablesid 485
Entonces, cuando usted desea actualizar sus normas, ejecute oinkmaster.pl y decirle que el lugar donde quiere la actualizacin
reglas que se colocarn:
# oinkmaster.pl-o / etc / snort / rules
/ Oinkmaster.pl-o / usr / local / etc / snort / rules
Carga / usr / local / etc / oinkmaster.conf
Descarga de archivos desde http://www.snort.org/pub-
bin/downloads.cgi/Download/comm_rules/Community-Rules-2.4.tar.gz ... hecho.
Archivo descargado correctamente, desembalaje ... hecho.
Descarga de archivos desde http://www.bleedingsnort.com/bleeding.rules.tar.gz ... hecho.
Archivo descargado correctamente, desembalaje ... hecho.
Conguracin de reglas estructuras ... hecho.
Reglas descargados Procesamiento ... 0 discapacitados, permiti 0, modicado 0, Total = 1912
Conguracin de reglas estructuras ... hecho.
Al comparar archivos nuevos a los viejos ... hecho.
Actualizacin de archivos de reglas locales ... hecho.
Pgina 383
[***] Los resultados de Oinkmaster comenzaron 20060511 20:21:18 [***]
[*] Reglas modicaciones: [*]
Ninguno.
[*] Modicaciones de lnea no la regla: [*]
Ninguno.
archivos [+] Aadido (considerar la actualizacin de su snort.conf incluirlos si es necesario): [+]
-> Sangrantes-attack_response.rules
-> Sangrantes-dos.rules
-> Sangrado-drop-BLOCK.rules
-> Sangrantes-drop.rules
-> Sangrantes-DShield-BLOCK.rules
-> Sangrantes-dshield.rules
-> Sangrantes-exploit.rules
-> Sangrantes-game.rules
-> Sangrantes-inappropriate.rules
-> Sangrantes-malware.rules
-> Sangrantes-p2p.rules
-> Sangrantes-policy.rules
-> Sangrantes-scan.rules
-> Bleeding-sid-msg.map
-> Sangrantes-virus.rules
-> Sangrantes-web.rules
-> Bleeding.conf
-> Bleeding.rules
-> Comunidad-bot.rules
-> Comunidad-dos.rules
-> Comunidad-exploit.rules
-> Comunidad-ftp.rules
-> Comunidad-game.rules
-> Comunidad-icmp.rules
-> Comunidad-imap.rules
-> Comunidad-inappropriate.rules
->-Client.rules comunidad-mail
-> Comunidad-misc.rules
-> Comunidad-nntp.rules
-> Comunidad-oracle.rules
-> Comunidad-sid-msg.map
-> Comunidad-sip.rules
-> Comunidad-smtp.rules
-> Comunidad-sql-injection.rules
-> Comunidad-virus.rules
-> Comunidad-web-attacks.rules
-> Comunidad-web-cgi.rules
-> Comunidad-web-client.rules
-> Comunidad-web-dos.rules
-> Comunidad-web-iis.rules
-> Comunidad-web-misc.rules
-> Comunidad-web-php.rules
Ahora usted ha actualizado las reglas de BleedingSnort.com, un sitio de comunidad utilizado para la difusin de
Snort rmas, y las reglas de la comunidad que mantiene Snort.org. Si usted tambin quiere tener
Oinkmaster actualizar automticamente Sourcere Reglas Certied VRT (ver
http://www.snort.org/rules/
),
puede agregar una lnea como esta a tu oinkmaster.conf archivo:
url = http://www.snort.org/pub-bin/oinkmaster.cgi/ \
5f6e64e16258a2f94dd7e7b0ef4e5c59cf4216a3/snortrules-snapshot-2.4.tar.gz
Vuelva a colocar la larga subcadena que se parece a un hash SHA1 con el cdigo que recibi al registrarse
para el acceso a las normas.
Pgina 384
Ahora, slo tiene que aadir una entrada crontab para ejecutar Oinkmaster regularmente y reiniciar Snort cuando est terminado
la actualizacin de las normas, y que siempre estar al da sobre los ms actuales rmas de Snort. Y, como una
Adems, usted no tendr que recordar que gobierna desactivar nunca ms.
Pgina 385
Hack # 115. Crear una red invisible de sensores distribuidos
Mantenga los sensores IDS salvo de los ataques, mientras que todava te da acceso a sus datos.
Sus sensores IDS son el sistema de alerta temprana que puede tanto alertan a un ataque y proporcionar necesaria
pruebas para la investigacin de un robo despus de que se haya producido. Usted debe tener un cuidado especial para proteger
ellos y los datos que recogen. Una forma de hacer esto es ejecutar sus sensores IDS en modo sigilo .
Para hacer esto, simplemente no congure una direccin IP para la interfaz de la que su software IDS
ser la recogida de datos:
# tcpdump-i eth1
tcpdump: bind: Red desconectada
# ifcong eth1 promisc hasta
# ifcong eth1
eth1 Link encap: Ethernet HWaddr 00: DE: AD: BE: EF: 00
UP BROADCAST PROMISC MULTICAST MTU: 1500 Mtrica: 1
RX packets: 0 Errores: 0 Eliminado: 0 sobrecostos: 0 frame: 0
Paquetes TX: 0 Errores: 0 Eliminado: 0 sobrecostos: 0 portador: 0
: 0 colisiones txqueuelen: 100
RX bytes: bytes 0 (0.0 b) TX: 0 (0.0 b)
Interrupcin: 11 Direccin base: 0x1c80
# / usr / sbin / tcpdump-i eth1
tcpdump: ADVERTENCIA: eth1: ninguna direccin IPv4 asignada
tcpdump: escucha en eth1
Despus de que usted ha puesto la interfaz, acaba de empezar sus IDS. Se ejecutar de forma normal, pero puesto que no hay manera de
acceder directamente a la mquina, que ser muy difcil de ataque.
Sin embargo, como cualquier atacantes potenciales, usted tambin ser capaz de acceder a la mquina remota.
Por lo tanto, si desea administrar el sensor a distancia, tendr que poner en una segunda red
interfaz. Por supuesto, si lo has hecho esto y lo conect a la misma red que el sensor IDS era
monitoreo, sera totalmente anule el propsito de ejecutar la otra interfaz sin una direccin IP. A
mantener el trco aislado, se debe crear una red independiente de la gestin de los sensores IDS. Adjuntar
esta red a uno que sea accesible de forma remota, ya continuacin en Firewall pesadamente.
Otro enfoque es para acceder a la caja usando un canal alternativo, tal como un puerto serie conectado a
otra mquina que tiene una conexin de red. Slo tiene que ejecutar una consola en el puerto serie, y tomar
cuidado para asegurar fuertemente la segunda mquina. Tambin puede conectar un mdem (recuerda eso?) A un
nmero privado de telfono o, mejor an, una extensin no cotizan en bolsa en el intercambio privado de sucursales de su ocina.
Dependiendo de su situacin, el simple uso de la consola para el acceso puede ser la ms simple y ms segura
mtodo.
Qu mtodo utilizar para el acceso remoto es una opcin que usted tendr que hacer pesando el valor de
aumento de la seguridad frente a la inconveniencia de saltar a travs de aros para acceder a la mquina.
Seguridad casi siempre implica un compromiso entre la comodidad y conanza.
Pgina 386
Hack # 116. Utilice Snort en entornos de alto rendimiento con
Corral
Disociar la etapa de salida de Snort para que pueda seguir el ritmo de los paquetes.
Por s mismo, Snort est muy bien para el seguimiento de las redes o redes pequeas con poca cantidad de trco, pero
no escala muy bien sin un poco de ayuda adicional. El problema no es con la deteccin de Snort
motor en s, sino ms bien se debe al hecho de que Snort es una aplicacin de un solo subproceso. Debido a
esto, siempre que un
alerta
o
log
evento se dispara, Snort debe primero enviar la alerta o iniciar la entrada en su ltima
destino antes de que pueda volver a mirar el ujo de datos entrantes.
Esto no es una cosa muy importante si usted est teniendo escritura Snort en un archivo, pero puede convertirse en un problema si
se registro en una base de datos porque Snort tendr que esperar un tiempo relativamente largo para la insercin de base de datos
para completar. Este problema, por supuesto, se agrava cuando va a tener registro de Snort a una distancia
servidor de base de datos.
Barnyard (
http://www.snort.org/dl/barnyard/
) Fue escrito para resolver este problema. Funcionalmente,
Barnyard es el equivalente de salida de plug-ins de Snort, todo en un solo programa, con un frontend para
la lectura en los archivos que Snort genera y luego enviarlos a la misma base de datos u otro destino
que normalmente se tiene registro de Snort. La nica desventaja de corral es su limitada base de datos
apoyo: Barnyard slo soporta MySQL y PostgreSQL, mientras que Snort soporta MySQL,
Salidas de PostgreSQL, Oracle y ODBC.
Instalacin
Despus de descargar Barnyard y desembalaje, cambie al directorio que cre y ejecutar su conguracin
script:
$ . / congure - enable-mysql
Esto permitir que el soporte de MySQL cuando Barnyard se compila. Si ha instalado el MySQL
bibliotecas y cheros en un lugar no estndar (es decir, en algn lugar que no sea el del / usr o / usr / local
jerarqua), es probable que tengas que aadir el
- With-mysql-incluye
y
- with-mysql-bibliotecas
opciones de lnea de comandos. Si utiliza Postgres, usted tendr que utilizar
- enable-postgres
. Del mismo modo, utilizar
-
-With-postgres-incluye
y
- With-postgres-bibliotecas
Para especicar dnde encabezados y de Postgres
bibliotecas se encuentran.
Despus de que haya terminado con la conguracin de la escritura, se puede compilar Barnyard ejecutando
hacer
. Cuando se
acaba de compilar, instalar al convertirse en la raz y en funcionamiento
make install
.
Conguracin de Snort
Antes de utilizar Barnyard, tendr que congurar Snort utilizar su formato de salida unicado. Este es un
formato binario que incluye tanto la informacin de alerta y los datos para el paquete que desencaden el
alerta, y es el nico tipo de entrada que va a entender corral.
Para congurar Snort utilizar el formato de salida unicado para ambos
alerta
y
log
eventos, agregue una lnea similar a la
de inmediato a su conguracin de Snort (por ejemplo, / etc / snort / snort.conf o / usr / local / etc / snort / snort.conf ):
salida alert_unied: nombre de archivo snort.alert, limite 128
salida log_unied: nombre de archivo snort.log, limite 128
Los nombres de archivo especicados aqu estn los nombres base de los archivos a los que Snort escribir su
alerta
y
Pgina 387
log
informacin del evento. Cuando se escribe un archivo, aadir la marca de tiempo Unix actual hasta el nal de
el nombre base. Estas lneas tambin especican que el tamao de estos archivos se limitar a 128 MB.
Conguracin de corral
Ahora, usted tendr que crear un archivo de conguracin para su uso con corral. Para ejecutar Barnyard en daemon
modo y tienen que automticamente tenedor a s mismo en el fondo, aada esta lnea a su chero de conguracin:
daemon de conguracin
Si usted va a ser el registro en una base de datos para su uso con BASE [Hack # 107] , Usted tambin querr aadir
dos lneas similares a estas:
hostname cong: coloso
Interfaz de conguracin: eth0
Estas dos lneas se debe establecer en el nombre de la mquina en la que se est ejecutando y el corral
interfaz desde la que Snort est leyendo paquetes.
Tenga en cuenta que corral puede procesar solamente un tipo de registro unicado a la vez. As que, si quieres que procese
ambos
alerta
y
log
eventos, tendrs que ejecutar una instancia de corral para cada tipo.
Todo lo que queda por congurar es donde Barnyard enviar los datos. Si desea utilizar la alerta rpida de Snort
el modo de generar una sola lnea de alertas abreviados, utilice el
alert_fast
plug-in de salida:
alert_fast salida: fast_alerts.log
O, si usted quiere Barnyard para generar volcados paquetes ASCII de los datos contenidos en los registros unicados,
usar una lnea como esta:
log_dump salida: ascii_dump.log
Para que la salida del corral a tu syslog daemon, puede utilizar el
alert_syslog
plug-in al igual que lo
hara en su snort.conf . Por ejemplo, si desea enviar datos al local de syslogd y utilizar el
auth
instalaciones y el
alerta
nivel de registro, utilice una lnea como esta:
alert_syslog salida: LOG_AUTH LOG_ALERT
O, si usted desea enviar a un remoto syslog daemon, utiliza una lnea similar a esta:
alert_syslog salida: hostname = loghost, LOG_AUTH LOG_ALERT
Usted tambin puede tener Barnyard crear archivos con formato Pcap partir de los datos en los registros unicados. Es
til para analizar los datos posteriormente en herramientas tales como etreo. Para ello, utilice la
log_pcap
plug-in:
log_pcap salida: alerts.pcap
Finalmente, tambin puede hacer que la salida del corral a una base de datos mediante el uso de la
alert_acid_db
plug-in para
tala
alerta
eventos y el
log_acid_db
plug-in para la captura de
log
eventos.
Por ejemplo, esta lnea sera enviar alertas al SNORT base de datos MySQL se ejecuta en dbserver utilizando el
nombre de usuario budo :
alert_acid_db salida: mysql, sensor_id 1, SNORT base de datos, dbserver servidor, \
resoplido de usuario, contrasea snortpw, detalle completo
La
sensor_id
es el BASE asignado al caso particular de Snort que est reuniendo los datos.
Usted puede encontrar lo ID del sensor de usar haciendo clic en los sensores de enlace en la pgina principal del BASE [Hack # 107] ,
que le mostrar una lista de los sensores que inician sesin en la actualidad a la base.
La
log_acid_db
plug-in es similar:
Pgina 388
log_acid_db salida: mysql, sensor_id 1, SNORT base de datos, dbserver servidor, \
resoplido de usuario, contrasea snortpw, detalle completo
Pruebas de corral
Puede comenzar Barnyard simplemente usando un comando similar a lo siguiente, si la conguracin de Snort
archivos se almacenan en / etc / snort Snort y se ajusta para mantener sus registros en / var / log / snort :
# corral-f snort.alert
A continuacin, debera ver los nuevos registros en la tabla de eventos de la base de datos.
Por supuesto, esto supone que utiliz
snort.alert
cuando se congura de Snort
alert_unied
plug-in. Si
los archivos de conguracin de Snort no se almacenan en / etc / snort , puede especicar la ubicacin de todos los archivos
Barnyard que necesita acceder mediante la ejecucin de un comando similar a ste:
# corral-c / usr / local / etc / snort / barnyard.conf-f snort.alert
Esto le dice a corral donde encontrar todos los archivos que necesita si se encuentran en / / / etc / snort locales usr , ya que se
buscar automticamente las sid-msg.map y gen-msg.map archivos en el mismo directorio que el corral
archivo de conguracin. Si utiliza un directorio distinto / var / log / snort para almacenar los registros de Snort, puede
especicarlo con la
-D
opcin y Barnyard buscar archivos de entrada all.
Felicitaciones. Con el correr del corral, debe ser capaz de manejar volmenes mucho ms grandes de trco
sin dejar caer las entradas del registro o que falte un solo paquete.
Pgina 389
Hack # 117. Detectar y prevenir intrusiones de aplicaciones web
Proteja su servidor web y el contenido dinmico de las intrusiones.
Sistemas de deteccin de intrusiones de red son muy adecuadas para la deteccin de intrusiones que utilizan comn
protocolos y servicios, tales como los utilizados por las aplicaciones web. Sin embargo, debido a la complejidad de
estas aplicaciones y la variedad de ataques que son vulnerables a, puede ser difcil de detectar y
evitar las intrusiones sin generar falsos positivos. Esto es especialmente cierto para la web
aplicaciones que utilizan SSL, ya que esto requiere que pasar por el aro para que el NIDS para
conseguir realmente el acceso al trco sin cifrar venir hacia y desde el servidor web.
Una manera de evitar estos problemas es integrar el sistema de deteccin de intrusin en el servidor web
en s. Esto es justo lo
mod_security
(
http://www.modsecurity.org
) Lo hace para el Apache populares
(
http://www.apache.org
) Del servidor web.
mod_security
, Como su nombre indica, es un mdulo para el servidor web Apache que est destinado a aumentar la
su seguridad, proporcionando instalaciones para solicitudes de ltrado y la realizacin de acciones arbitrarias basa en
reglas especicadas por el usuario. Adems,
mod_security
realiza varias comprobaciones de sanidad que normalizan la
peticiones que recibe el servidor web. Con las reglas de ltrado adecuadas,
mod_security
puede derrotar
recorrido de directorio, cross-site scripting, inyeccin SQL, y los ataques de desbordamiento de bfer.
Instalacin de mod_security
Para instalar
mod_security
, Descargar y descomprimir la distribucin fuente. Si desea instalarlo como un
DSO (es decir, un mdulo), puede hacerlo fcilmente con la apxs utilidad. En primer lugar, vaya al directorio
segn la versin de Apache que est utilizando: apache1 o apache2 . A continuacin, ejecute un comando
de esta manera:
# apxs-cia mod_security.c
Esto compila
mod_security
y congura Apache para cargarlo en el arranque. Si desea estticamente
compilar
mod_security
, Tendr que reconstruir Apache. Si est utilizando Apache 1.x, puede compilar
estticamente copiando mod_security.c al src / modules / extra de directorio en el rbol fuente de Apache.
Entonces, cuando se ejecuta Apache congure guin, utilizar estos de lnea de comandos:
- Activate-module = src / modules / extra / mod_security
- Enable-module = seguridad
Para Apache 2.x, copie mod_security.c del apache2 directorio al modules / proxy de directorio en el
Apache 2.x rbol de fuentes. A continuacin, utilice estos modicadores de lnea de comandos al ejecutar la conguracin script:
- Enable-security
- With-module = Proxy: mod_security.c
Activacin y conguracin de mod_security
Una vez que haya instalado
mod_security
, Tendrs que habilitarlo. Usted puede hacer esto poniendo la siguiente
lneas en su httpd.conf archivo:
<IfModule Mod_security.c>
En SecFilterEngine
</ IfModule>
Esto permite que las caractersticas de normalizacin de solicitud
mod_security
para todas las peticiones hechas a la web
servidor. Cundo
mod_security
est habilitado, intercepta todas las solicitudes que entra en el servidor web y
Pgina 390
realiza varias comprobaciones sobre ellos antes de pasar los pedidos a travs de los ltros denidos por el usuario y
nalmente, ya sea el mantenimiento o negarlos.
Durante estos chequeos,
mod_security
convierte varios tipos de secuencias de caracteres evasivas a
sus formas equivalentes ms comnmente utilizados. Por ejemplo, se transforma las secuencias de caracteres
/ /
y
/. /
a
/
, Y en Windows, convierte el
\
carcter a
/
. Tambin decodica cualquier URL-codicado
personajes.
Adems de estos controles, puede congurar
mod_security
para escanear la carga til de
POSTE
mtodo
peticiones y validar URL y codicacin Unicode dentro de solicitudes. Para habilitar estas funciones, aada
estas lneas a su archivo httpd.conf :
En SecFilterScanPOST
En SecFilterCheckURLEncoding
En SecFilterCheckUnicodeEncoding
URL codicacin permite a alguien hacer una solicitud para codicar caracteres utilizando valores hexadecimales,
que utilizar los nmeros del 0 al 9 y las letras A a F, con el prejo del
%
carcter. Cundo
Validacin codicacin URL est activada,
mod_security
simplemente se asegura de que todos los caracteres con codicacin URL
no violan el sistema de numeracin hexadecimal. Del mismo modo, al realizar la validacin Unicode,
mod_security
garantiza que la cadena visto por el servidor web en el cumplimiento de la solicitud es un Unicode vlida
cadena. Validacin Unicode es til si el servidor Web se ejecuta en un sistema operativo que soporta
Unicode o la aplicacin web que hace uso de ella.
Para evitar vulnerabilidades de desbordamiento de bfer, tambin puede limitar el rango de bytes que se permiten en la solicitud de
cadenas. Por ejemplo, para permitir que slo los caracteres imprimibles (y no los que pueden aparecer en explotar
cdigo shell), aada una lnea como esta a su httpd.conf archivo:
SecFilterForceByteRange 32 126
Crear ltros
Puede crear ltros denidos por el usuario, ya sea con la
SecFilter
o la
SecFilterSelective
palabra clave. Uso
SecFilter
para buscar slo la cadena de consulta, o el uso
SecFilterSelective
si usted desea ltrar las solicitudes
basado en el valor de una variable de servidor web interno. Estas dos palabras clave de ltrado pueden aceptar
expresiones regulares.
Echemos un vistazo a algunas reglas de ltrado pueden ayudar a prevenir algunos ataques comunes.
Esta regla ltra las peticiones que contienen la secuencia de caracteres
.. /
:
SecFilter "\. \. /"
A pesar de que el servidor web interpretar el
.. /
correctamente y no permitir el acceso si termina resolviendo
a algo que est fuera de su raz de documentos, que podra no ser el caso para los scripts o aplicaciones que
son en su servidor. Esta regla impide que tales solicitudes sean procesadas.
Cross-site scripting (XSS) son invocados mediante la insercin de cdigo HTML o JavaScript en una pgina existente
de modo que otros usuarios ejecutarlo. Estos ataques se pueden utilizar para leer la cookie de sesin de un usuario y ganar
el control total de la informacin de ese usuario. Usted puede prevenir estos ataques por tener
mod_security
ltrar
las peticiones que contienen JavaScript.
Para no permitir JavaScript en peticiones, utilice una regla como la siguiente:
SecFilter "<[[: space:]] * de la escritura"
Sin embargo, hay muchas otras maneras en que JavaScript puede ser insertado en una solicitud. Es ms seguro
Pgina 391
simplemente no permitir HTML, que se puede hacer mediante el uso de esta regla:
SecFilter "<. +>"
Ataques de inyeccin SQL son similares a los ataques XSS, excepto que en este caso los atacantes modicar variables que
se utilizan para las consultas SQL de una manera que les permite ejecutar comandos SQL de su eleccin.
Esta regla impide la inyeccin de SQL en una cookie llamada
sessionid
:
SecFilterSelective COOKIE_sessionid "^! (| [0-9] {1,9}) $"
Si un
sessionid
cookie es presente, la solicitud puede proceder slo si la cookie contiene de uno a nueve dgitos.
Esta regla requiere
HTTP_USER_AGENT
y
HTTP_HOST
encabezados en cada peticin:
SecFilterSelective "HTTP_USER_AGENT | HTTP_HOST" "^ $"
Usted puede buscar en mltiples variables separando cada variable de la lista con un
|
carcter.
Los atacantes a menudo investigan el uso de herramientas simples (incluso telnet) y no envan todos los encabezados, como lo hacen los navegadores.
Estas solicitudes pueden ser rechazadas, registrar y supervisar.
Esta regla se rechaza la subida de archivos:
SecFilterSelective "HTTP_CONTENT_TYPE" multipart / form-data
Esta es una sencilla pero efectiva proteccin, rechazando las peticiones en funcin del tipo de contenido utilizado para el archivo de
cargar.
Una vez ms, las solicitudes manuales con frecuencia no incluyen todos los encabezados HTTP. Esta regla se registra las solicitudes sin
Aceptar
cabecera, para que pueda examinarlos ms adelante:
SecFilterSelective "HTTP_ACCEPT" "^ $" log, pase
La
Keep-Alive
cabecera es otro buen candidato. Observe que, adems de la variable y bsqueda
cadena de esta norma contiene las palabras clave
log
y
pasar
, Que especican las acciones a tomar en caso de una solicitud
coincide con la regla. En este caso, las peticiones que coinciden se registrarn en el registro de errores de Apache, y luego
la solicitud ir aportarlo para su utilizacin por el servidor web. Si no se especica una accin para una
regla de ltrado, se utilizar la accin predeterminada.
Puede especicar la accin predeterminada de esta manera:
SecFilterDefaultAction "negar, registro, estado: 500"
Si establece esto como la accin predeterminada, el servidor web va a negar todas las peticiones que coinciden con las reglas de ltrado y
que no especican una accin personalizada. Estas solicitudes sern registrados y luego redirige a un HTTP 500
pgina de estado, la cual informar al cliente de que se ha producido un error interno del servidor. Otras acciones posibles
incluir
permitir
, Que es similar a
pasar
pero se detiene otros ltros sean juzgados;
redirigir
, Que
redirige al cliente a una URL arbitraria;
ejecutivo
, Que ejecuta un binario o script externo; y
cadena
,
que le permite de manera efectiva y reglas juntos.
Adems del ltrado,
mod_security
proporciona amplias funciones de auditora, que le permite mantener los registros
de todas las solicitudes enviadas al servidor. Para activar el registro de auditora, aada una lnea similar a la de inmediato a su
httpd.conf :
En SecAuditEngine
Registros SecAuditLog / audit_log
Tenga en cuenta, sin embargo, que esta opcin puede generar un buen montn de datos muy rpidamente. Para iniciar la sesin slo
peticiones que activan una regla de ltrado, ajuste el
SecAuditEngine
variable para
RelevantOnly
. Si lo preere,
puede establecer esta variable en
DynamicOrRelevant
, Que registrar las solicitudes de contenido dinmico, as como
peticiones que activan una regla de ltrado.
Pgina 392
Al igual que con la mayora de otras directivas de conguracin de Apache, puede incluir
mod_security
conguracin
directivas dentro de un
<Location>
etiqueta para especicar conguraciones individuales para los scripts o directorios especcos
jerarquas.
Para ms ejemplos de utilidad
mod_security
reglas, asegrese de buscar en modsecurity-reglas-current.tar.gz ,
que est disponible en la
mod_security
descargar la pgina e incluye una extensa lista de reglas que
pueden ser incluidos en su conguracin de Apache mediante el
Incluir
Directiva.
mod_security
es una herramienta de gran alcance para la proteccin de sus aplicaciones web, pero no debe tomar el lugar
de hecho la validacin de entrada en su aplicacin u otras prcticas de codicacin segura. Si es posible, lo mejor es
utilizar una herramienta como
mod_security
adems de emplear tales mtodos.
Vea tambin
"La introduccin de mod_security":
http://www.onlamp.com/pub/a/apache/2003/11/26/mod_security.html
Mod_security Manual de referencia v1.7.4:
http://www.modsecurity.org/documentation/modsecurity-
apache/1.9.3/modsecurity-manual.pdf
Pgina 393
Hack # 118. Analiza el trco de red en busca de virus
Utilice Snort y ClamAV para detectar virus, ya que cruzar la red.
Mucha atencin en los ltimos aos se le ha dado al correo electrnico archivos adjuntos como una va para que los virus y gusanos para
inltrarse en una red. La Melissa y te amo virus son ejemplos infames. Puede congurar fcilmente
un sistema para analizar el correo electrnico de sus usuarios de estas cosas [Hack # 74] , pero hay muchos ms vectores para
la propagacin de virus, tales como pginas web, IRC, transferencias de archivos IM ... realmente no hay lmite. As que, cmo
escanear en busca de virus y evitar que se propaguen a travs de esos servicios?
Una forma es modicar Snort utilizando el til ClamAV [Hack # 74] parche, que integra los dos
paquetes. El parche aade un clamav preprocesador de Snort que monitoriza el trco de red y utiliza el
Motor de ClamAV para escanear en busca de virus. Cuando ClamAV coincide con una denicin de virus, genera un Snort
de alerta. An mejor, puede utilizar esta funcionalidad con Snort_inline [Hack # 111] a caer en realidad el
el trco que contiene la carga til viral antes de que pueda propagarse.
Parches Snort
Para comenzar, descargue el parche de ClamAV (
http://www.bleedingsnort.com/cgi-
bin / ViewCVS.cgi / snort-clamav /? root = Snort-Clamav
) Que es adecuado para la versin de Snort que eres
utilizando. A continuacin, cambie al directorio en el que ha descomprimido el cdigo fuente de Snort y aplicar la
parche:
$ cd snort-2.4.3
$ patch-p1 <.. / snort-2.4.3-clamonly.diff
$ encontrar. -Name \ *. Rej
A continuacin, hay que regenerar todos los archivos utilizados por el sistema de construccin. Hacerlo ejecutando el siguiente
comando:
$ libtoolize-f && aclocal-I ./m4 && autoheader && autoconf automake &&
Observe que hay algunas opciones ms para la conguracin de la escritura ahora:
$ . / congure - help | grep-i almeja
- Enable-clamav Habilitar el preprocesador clamav
- With-clamav-incluye = DIR clamav include
- With-clamav-defdir = DIR directorio virusdenitions clamav
Ejecutar congure con los tres de estas opciones, adems de otras que desee utilizar. Si usted tiene
instalado ClamAV en su ubicacin predeterminada, usted querr usar / usr / local / include y
/ Usr / local / share / clamav para la
- With-clamav-incluye
y
- With-clamav-defdir
opciones,
respectivamente. Despus de la conguracin de la escritura ha terminado, el tipo
hacer
para empezar a compilar.
Conguracin del preprocesador
Una vez que la construccin ha terminado, instalar Snort como normal. Habilitar el clamav preprocesador editando su
Snort archivo de conguracin y la adicin de un
clamav preprocesador
Directiva.
ADVERTENCIA
Asegrese de habilitar el clamav preprocesador despus permitiendo la stream4_reassemble preprocesador en el archivo de conguracin;
de lo contrario, el clamav preprocesador podra perderse algunas cargas virales que se repitan durante varios datagramas IP o arriban fuera de orden. Tambin ser
Asegrese de ponerlo antes de la Directiva que permite a la http_inspect preprocesador.
Pgina 394
El clamav preprocesador tiene varias opciones que se pueden utilizar para especicar qu puertos para buscar viral
trco, la direccin de un ujo TCP para escanear, qu hacer en el modo en lnea si se encuentra un virus, y una
algunas otras cosas varias. Para especicar las opciones, poner dos puntos despus del nombre de preprocesador (por ejemplo,
clamav:
) Y una lista de las opciones separadas por comas. Los ejemplos que se muestran aqu son completos
preprocesador
directivas. Al editar el archivo de conguracin, usted debe combinar todas las opciones
que desea utilizar en un
clamav preprocesador
line.
Puertos para escanear
Por defecto, ClamAV analiza slo los puertos 21, 25, 80, 81, 110, 119, 139, 143, y 445 para cargas virales. A
agregar puertos, utilice el
puertos
opcin seguida por una lista delimitada por espacios de los puertos para incluir. Tambin puede
excluir a un puerto que no sea analizada mediante el uso de la
!
operador. Esto es especialmente til cuando se est utilizando
la
todo
palabra clave, que especica todos los puertos para la exploracin.
Por ejemplo, es posible que desee escanear todos los puertos, a excepcin de algunos que suelen llevar el trco cifrado:
clamav preprocesador: ! puertos todos los 22 443 993 995
Direccin para escanear
Para ujos TCP, se puede optar por analizar el trco que va al cliente, en el servidor o en cualquier direccin. Por
De forma predeterminada ClamAV escanea ambas direcciones, pero si desea escanear slo el trco que va a los clientes, para disminuir
la carga en los IDS, puede utilizar el
toclientonly
opcin:
clamav preprocesador: toclientonly
Por otra parte, si usted siente que los virus que se envan a los servidores es un problema ms grande, puede utilizar el
toserveronly
opcin.
El bloqueo de la propagacin
La determinacin de que los virus estn sueltos en la red es muy diferente de ser capaz de forma proactiva
bloquearlas. Al usar Snort en modo en lnea con el clamav preprocesador, es posible
detendr automticamente una carga til viral a partir de llegar a su destino. La nica cosa en cuestin es la que
mtodo a utilizar. Si desea Snort caiga silenciosamente todos los paquetes en los que se detecta una carga viral, el uso
la
accin-drop
opcin. Si desea realizar un restablecimiento de TCP en lugar, utilice la
accin-reset
opcin:
clamav preprocesador: accin-reset
Miscelnea
Si la ubicacin de las deniciones de virus (especicado al ejecutar congure con
- With-clamav-defdir
)
ha cambiado desde que se ha compilado Snort, puede utilizar el
dbdir
opcin para especicar la nueva ubicacin. La
preprocesador tambin le permite especicar con qu frecuencia para volver a cargar las deniciones de virus con el
dbreload-
tiempo
opcin. El valor predeterminado es 600 segundos, pero es probable que desee cambiarlo por un perodo de tiempo ms largo
(por ejemplo, 86.400 segundos si actualiza sus deniciones de virus una vez al da).
La siguiente directiva especica / opt / clamav / accin como el directorio de leer las deniciones de virus desde y
indica que deben ser recargadas una vez al da:
clamav preprocesador: dbdir / opt / clamav / accin, en tiempo dbreload 86400
Para aumentar la abilidad del preprocesador, puede utilizar el
-descriptor-modo de archivo
opcin, lo que provoca
a escribir las cargas tiles de paquetes a un archivo antes de escanearlos. De lo contrario, los coloca en la memoria cuando
haciendo el escaneo. Cuando esta opcin est activada, las cargas tiles se escriben en / tmp por defecto. Si
que desee cambiar esto, use el
descriptor-temp-dir
opcin. La siguiente directiva dice Almeja AV para
escribir las cargas tiles a / var / tmp / clamav antes de escanearlos para el contenido viral:
Pgina 395
clamav preprocesador:-descriptor-modo de archivo, descriptor-temp-dir / var / tmp / clamav
Tenga en cuenta, sin embargo, que la
-descriptor-modo de archivo
opcin puede reducir el rendimiento de manera signicativa,
ya que el preprocesador est constantemente escribiendo en el disco. Para aliviar este problema, utilice un basado en memoria
sistema de archivos. Por ejemplo, en Linux se puede crear un sistema de archivos de 256 MB que est respaldado por la memoria en
/ Var / tmp / clamav ejecutando el siguiente comando:
# mount-t tmpfs tmpfs tamao de / var / tmp / clamav-o = 256M
Por supuesto, usted debe asegurarse de que tiene un montn de memoria RAM para hacer esto.
Del mismo modo, bajo FreeBSD, puede agregar las siguientes lneas a / etc / rc.conf para causar / tmp utilizar el
Administrador de memoria virtual (VMM) para el almacenamiento en lugar de un disco:
tmpmfs = "YES"
tmpsize = "256m"
Despus de que hayas hecho esto, reinicie para que el cambio surta efecto.
Ponerlo a prueba
Una vez que hayas congurado el preprocesador, inicie Snort como lo hara normalmente. Si usted no ha utilizado el
-Q
opcin de lnea de comandos, lo que suprime la produccin, debera ver algunas lneas similares a estas, lo que signica
que el clamav preprocesador se carg correctamente:
ClamAV cong:
Puertos: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
Las deniciones de virus dir: '/ usr / local / share / clamav'
Virus DB tiempo de recarga: '86400 '
Analizar slo el trco hacia el cliente
Descriptor del archivo modo de escaneo: Habilitado, utilizando cl_scandesc
Directorio de TempFiles (modo de descriptor de archivo): '/ tmp'
Como una prueba rpida, puede utilizar Netcat ( ) En otro sistema para que se
http://www.vulnwatch.org/netcat/
enviar a uno de los archivos de prueba ClamAV a un sistema que es visible para el sensor IDS. Hacerlo mediante la ejecucin
algo como esto en el servidor:
$ nc-l 65535 <clam.cab
Por supuesto, asegrese de usar un puerto que en realidad ests monitoreo en busca de virus. A continuacin, utilice Netcat en el
sistema cliente para conectarse a l. Una vez que el sistema cliente se conecta y se enva el archivo de prueba, debera ver
Snort generar una alerta similar a esto:
06/24-00: 30:45.562228 [**] [125:1:1] (spp_clamav) Virus encontrados: ClamAV-Test-File [**]
{TCP} 192.168.0.62:65535 -> 192.168.0.40:65129
Ahora que ha funcionando, puede implementar el clamav preprocesador travs de toda su Snort
sensores. Si lo hace, le dar una mano a mano sobre cualquier tipo de virus que podran estar propagando a travs de su
red y le dar tiempo para actuar antes de que los brotes se ponen demasiado en serio.
Pgina 396
Hack # 119. Simular una red de Hosts Vulnerables
Utilice honeyd para engaar los posibles atacantes a cazar fantasmas.
Como dice el refrn, usted atraer ms moscas con miel que con vinagre. (Nunca he entendido que
diciendo; que quiere atraer a las moscas, de todos modos) A? honeypot se utiliza para atraer a las "moscas" de Internet:
script kiddies y aspirantes de hackers que no tienen nada mejor que hacer con su tiempo que buscar
hosts vulnerables y tratan de atacarlos. Un honeypot hace esto, hacindose pasar por un servidor que ejecuta
servicios vulnerables, mientras que, de hecho, la recogida de informacin sobre los atacantes que se creen de manera
inteligente.
Si desea simular una o mil hosts de red vulnerables, honeyd
(
http://www.honeyd.org
) Hace el trabajo tan simple como editar un archivo de conguracin y funcionamiento de un
daemon. El honeyd daemon puede simular miles de hosts simultneamente y le permite congurar
qu sistema operativo aparecer cada husped como cuando se escanea con herramientas de deteccin del sistema operativo
como Nmap [Hack # 66] .
Cada sistema que Honeyd aparecern simula ser un nodo en pleno funcionamiento en la red. Adems de
la simple creacin de hosts que responden a los pings y las trazas de ruta, honeyd tambin le permite congurar lo
servicios de cada host parece estar en ejecucin. Usted puede utilizar secuencias de comandos simples para emular un servicio determinado
o tienen honeyd actuar como un proxy y transmitir las peticiones a otro host para su mantenimiento.
Honeyd Compilacin
Como un demonio que cuenta con amplias posibilidades de imitar otros demonios, honeyd tiene varios
requisitos que necesitar para instalar antes de construir el propio demonio:
libevent (
http://www.monkey.org/provos/libevent/
)
libdnet (
http://libdnet.sourceforge.net
)
libpcap (
http://www.tcpdump.org
)
PCRE (
http://www.pcre.org
)
Readline (
http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
)
Zlib (
http://www.zlib.net
)
Python (
http://www.python.org
)
libpcap , PCRE, Readline, Zlib y Python deben estar disponibles con la mayora de versiones de Linux y BSD. Usted
puede instalar fcilmente cualquiera de estos requisitos mediante la descarga y desembalaje de ellos, corriendo
. / Congure
&& Make
, Y luego ejecutar
make install
como root.
Despus de haber instalado las bibliotecas, instale honeyd la misma manera. A continuacin, copie la emulacin de servicios
guiones de la distribucin de cdigo fuente a un lugar ms permanente (por ejemplo,
/ Usr / local / share / Honeyd / scripts ). Slo unos cuantos scripts vienen con honeyd s mismo, pero el servicio adicional
guiones de emulacin estn disponibles en honeyd pgina contribuciones 's (
http://www.honeyd.org/contrib.php
).
Conguracin honeyd
Una vez que hayas instalado honeyd , tendrs que crear un archivo de conguracin que dene los tipos de
sistemas operativos y servicios honeyd emular y las direcciones IP a las que honeyd se
responder. En primer lugar, crear algunas plantillas del sistema operativo:
Pgina 397
# # # ordenadores Windows
crear ventanas en la web
La personalidad j ventanas-web "Microsoft Windows Millennium Edition (Me), Windows 2000
Professional o Advanced Server o Windows XP "
SET DEFAULT ventanas web reinicio accin tcp
SET DEFAULT ventanas web reinicio accin udp
set ventanas web icmp accin por defecto abierto
aadir ventanas en la web del puerto tcp 80 "perl scripts/win2k/iisemulator-0.95
/ Iisemul8.pl "
aadir ventanas en la web el puerto TCP 139 abierto
aadir ventanas en la web del puerto tcp 137 abierto
aadir ventanas en la web del puerto tcp 5900 "scripts/win2k/vnc.sh sh"
aadir ventanas en la web el puerto UDP 137 abierto
aadir ventanas en la web de puerto udp 135 abierto
crear ventanas-xchng
La personalidad j ventanas xchng "Microsoft Windows Millennium Edition (Me), Windows 2000
Professional o Advanced Server o Windows XP "
set ventanas xchng default reinicio accin tcp
set ventanas xchng default reinicio accin udp
set ventanas xchng accin icmp defecto abierto
agregar ventanas xchng puerto tcp 25 "sh scripts/win2k/exchange-smtp.sh"
aadir ventanas xchng puerto tcp 110 "scripts/win2k/exchange-pop3.sh sh"
aadir ventanas xchng puerto tcp 119 "scripts/win2k/exchange-nntp.sh sh"
aadir ventanas xchng puerto tcp 143 "scripts/win2k/exchange-imap.sh sh"
aadir ventanas xchng puerto tcp 5900 "scripts/win2k/vnc.sh sh"
agregar ventanas xchng puerto TCP 139 abierto
agregar ventanas xchng puerto TCP 137 abierto
agregar ventanas xchng puerto UDP 137 abierto
agregar ventanas xchng puerto UDP 135 abierto
# # # Solaris
crear sol-mail
set sol-mail personalidad "Sun Solaris 9"
set sol-mail reinicio accin tcp defecto
set sol-mail reinicio accin UDP predeterminado
set sol-mail accin icmp defecto abierto
agregar sol-mail puerto tcp 110 "scripts/pop3.sh sh"
agregar sol-mail puerto tcp 25 "guiones sh / smtp.pl"
agregar sol-mail puerto TCP 22 abierto
agregar sol-mail puerto TCP 143 abierto
agregar sol-mail puerto TCP 993 abierto
Entonces ellos se unen a las direcciones IP que desea utilizar:
obligar 192.168.0.210 ventanas en la web
obligar 192.168.0.211 ventanas xchng
bind 192.168.0.212 sol-mail
Guarde este archivo de conguracin en un buen lugar (por ejemplo, / usr / local / share / honeyd / honeyd.conf ).
En lugar de congurar los alias IP en su tarjeta de red para cada direccin IP que aparece en su archivo de conguracin,
puede utilizar arpd (
http://www.honeyd.org/tools.php
) Para responder a las direcciones IP. Puede instalar arpd
mediante la ejecucin
. / Congure && make
y luego
make install
como root. Sin embargo, si usted est usando un reciente
versin de GCC, que se puede encontrar el siguiente error:
arpd.c: En la funcin 'arpd_lookup':
arpd.c: 285: error: error de sintaxis antes de constante de cadena
arpd.c: 294: error: error de sintaxis antes de constante de cadena
arpd.c: 297: error: error de sintaxis antes de constante de cadena
arpd.c: En la funcin 'arpd_recv_cb':
arpd.c: 426: error: error de sintaxis antes de constante de cadena
make: *** [arpd.o] Error 1
Pgina 398
Esto se debe a que, a partir de la versin 3.4 del compilador, que ya no es posible concatenar
__FUNCTION__
con otras cadenas. Para solucionar este problema, consulte http://seclists.org/lists/honeypots/2005/Jul-
Sep/0035.html
un parche para arpd.c .
Honeyd Correr
Despus de haber instalado arpd y honeyd , usted puede comenzar a:
# arpd 192.168.0.210-192.168.0.212
# cd / usr / local / share / honeyd
# honeyd-p nmap.prints-x xprobe2.conf-a nmap.assoc -0 pf.os-f honeyd.conf
honeyd [5861]: se inici con-p nmap.prints-x xprobe2.conf-a nmap.assoc -0 pf.os-f
honeyd.conf
honeyd [5861]: escucha en eth0: (arp o ip proto 47 o (ip)) y no src ter
00:0 c: 29: e2: 2b: c1
Honeyd comenzando como proceso en segundo plano
La versin ms reciente de honeyd ahora incluye un servidor web incorporado, que permite ver la corriente
estado de su red trampa, as como su conguracin, como se muestra en la gura 11-13 .
Figura 11-13. La interfaz web de honeyd
La interfaz web permite ver TCP y UDP activa junto con el ancho de banda
las estadsticas de su red trampa. Adems, puede ver la conguracin de los diferentes hosts virtuales le
han congurado. Si no desea utilizar la interfaz web, puede usar el
- Disable-servidor web
opcin al iniciar honeyd .
Honeyd Testing
Ahora, intente ejecutar Nmap en las direcciones IP que honeyd est manejando:
Pgina 399
# nmap-sS-sU-O 192.168.0.210-212
A partir nmap 3.70 (http://www.insecure.org/nmap/) en 2006-05-06 15:45 MDT
Puertos interesantes en 192.168.0.210:
(Los puertos 3132 escaneados pero no se muestran a continuacin se encuentran en estado: cerrado)
PUERTO ESTADO SERVICIO
80/tcp abierto http
135/udp abierto | MSRPC ltrada
137/tcp abierta netbios-ns
137/UDP abiertos | ltrados netbios-ns
139/TCP abierta netbios-ssn
5900/tcp abierto vnc
Direccin MAC: 08:00:46:0 C: AA: DF (Sony)
Tipo de dispositivo: propsito general
Duracin: Microsoft Windows 95/98/ME | NT/2K/XP
Detalles del sistema operativo: Microsoft Windows Millennium Edition (Me), Windows 2000 Professional o
Advanced Server o Windows XP
Puertos interesantes en 192.168.0.211:
(Los puertos 3129 escaneados pero no se muestran a continuacin se encuentran en estado: cerrado)
PUERTO ESTADO SERVICIO
25/tcp abierto smtp
110/TCP abierta pop3
119/tcp abierta nntp
135/udp abierto | MSRPC ltrada
137/tcp abierta netbios-ns
137/UDP abiertos | ltrados netbios-ns
139/TCP abierta netbios-ssn
143/tcp abierta imap
5900/tcp abierto vnc
Direccin MAC: 08:00:46:0 C: AA: DF (Sony)
Tipo de dispositivo: propsito general
Duracin: Microsoft Windows 95/98/ME | NT/2K/XP
Detalles del sistema operativo: Microsoft Windows Millennium Edition (Me), Windows 2000 Professional o
Advanced Server o Windows XP
Puertos interesantes en 192.168.0.212:
(Los puertos 3133 escaneados pero no se muestran a continuacin se encuentran en estado: cerrado)
PUERTO SERVICIO DEL ESTADO
22/tcp ssh abierto
25/tcp smtp abierto
110/TCP pop3 abierta
143/tcp imap abierta
993/tcp imaps abiertas
Direccin MAC: 08:00:46:0 C: AA: DF (Sony)
Tipo de dispositivo: propsito general
Reproduccin: Sun Solaris 9
Detalles OS: Sun Solaris 9
Uptime 0,080 das (desde sb 06 de mayo 2006 13:50:40)
Por supuesto que puede ver que honeyd engaa Nmap. Se dar cuenta de que la direccin MAC inform para cada
de acogida es la misma que la interfaz de red del host en el que honeyd est siendo ejecutado, sin embargo, que es una
claro indicativo de que algo raro est pasando. Esto se puede solucionar mediante la asignacin de una direccin MAC de
cada una de las plantillas de acogida en el chero de conguracin:
crear sol-mail
set sol-mail personalidad "Sun Solaris 9"
set sol-mail ethernet "08:00:20:23:45: EE"
set sol-mail reinicio accin tcp defecto
set sol-mail reinicio accin UDP predeterminado
set sol-mail accin icmp defecto abierto
agregar sol-mail puerto tcp 110 "scripts/pop3.sh sh"
agregar sol-mail puerto tcp 25 "guiones sh / smtp.pl"
Pgina 400
agregar sol-mail puerto TCP 22 abierto
agregar sol-mail puerto TCP 143 abierto
agregar sol-mail puerto TCP 993 abierto
Ahora, ejecutar Nmap nuevo:
# nmap-sS-sU-O 192.168.0.212
A partir nmap 3.70 (http://www.insecure.org/nmap/) en 2006-05-06 15:52 MDT
Puertos interesantes en 192.168.0.212:
(Los puertos 3133 escaneados pero no se muestran a continuacin se encuentran en estado: cerrado)
PUERTO SERVICIO DEL ESTADO
22/tcp ssh abierto
25/tcp smtp abierto
110/TCP pop3 abierta
143/tcp imap abierta
993/tcp imaps abiertas
Direccin MAC: 08:00:20: F9: 6A: F3 (SUN Microsystems)
Tipo de dispositivo: propsito general
Reproduccin: Sun Solaris 9
Detalles OS: Sun Solaris 9
Uptime 0,023 das (desde sb 06 de mayo 2006 15:18:57)
Nmap carrera terminada - 1 IP (1 husped up) explora en 7,394 segundos
Una cosa a tener en cuenta es que si especica una direccin MAC para una plantilla de host, no es necesario tener
arpd responder peticiones ARP para la direccin IP asociada a ella. honeyd se encargar de esto para usted.
Todo se ha aparecido a ser realista hasta el momento, pero lo que sucede cuando se intenta acceder a una de las
servicios que son supuestamente ejecutando? Intente conectarse al puerto 25 del servidor de correo de Windows falso:
$ telnet 192.168.0.211 25
Tratando 192.168.0.11 ...
Conectado a 192.168.0.11.
Carcter de escape es '^]'.
220 bps-pc9.local.mynet Microsoft ESMTP MAIL Service, Version: 5.0.2195.5329 listo en
Lun 12 de enero 2004 12:55:04 MST
EHLO kryten
250 bps-pc9.local.mynet Hola [kryten]
250-TURN
250-ATRN
250 TAMAO
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250-X-EXPS GSSAPI NTLM LOGIN
250-X-EXPS = LOGIN
250-AUTH NTLM GSSAPI LOGIN
250-AUTH = LOGIN
250-X-LINK2STATE
250-XEXCH50}
250 OK
Bastante efectiva a primera vista, no es as? Si desea especicar algunos servicios reales para los atacantes para jugar
con, usted puede utilizar el
apoderado
palabra clave para reenviar cualquier puerto a un puerto de otra mquina. Por ejemplo,
la siguiente lnea reenviar peticiones SSH desde nuestro imaginario host Linux a la mquina en
192.168.0.100:
Pgina 401
aadir linux puerto tcp 22 de proxy 192.168.0.100:22
La funcin de proxy funciona especialmente bien cuando se utiliza honeypots creados a partir de los sistemas en toda regla. Este
le permite crear un puado de mquinas honeypot dedicados y luego congurar honeyd para actuar como un
frontend para ellos. El resultado nal es que parecen tener los sistemas ms vulnerables de lo que realmente
tiene, y puede supervisar las actividades de cualquier intruso con ms detalle en el entorno de usuario ms rica.
Adems de la ejecucin de los scripts de emulacin de servicios, honeyd puede limitar el ancho de banda de entrada o salida,
o incluso ralentizar el acceso a un servicio en particular. Esto puede ser usado para atar los recursos de los spammers, por
mantener abierto un rel electrnico aparentemente abierta. Las posibilidades que ofrece honeyd slo estn limitadas por
la imaginacin y el tiempo que estn dispuestos a gastar la construccin de su red de mosca-catching virtual.
Pgina 402
Hack # 120. Record Honeypot Actividad
Lleve un registro de todo lo que sucede en su trampa.
Una vez que el atacante ha cado presa de su trampa y tuvo acceso a ella, es importante que usted
monitorear toda la actividad en esa mquina. Mediante el seguimiento de cada pedacito de la actividad en su honeypot, que
no slo se puede aprender de las intenciones de su husped sin invitacin, pero a menudo tambin aprender sobre las nuevas tcnicas de
comprometer un sistema que el intruso intenta obtener el acceso. Adems, si usted no est interesado en
lo que los atacantes estn tratando de hacer, por qu correr un honeypot en absoluto?
Uno de los mtodos ms ecaces para el seguimiento de cada paquete y pulsacin de tecla es utilizar un ncleo basado-
el seguimiento de herramienta. De esta manera, usted puede controlar casi todo lo que los atacantes hacen en su trampa,
incluso si utilizan el cifrado para proteger sus datos o conexiones de red. Un paquete de gran alcance para
la monitorizacin de un honeypot a nivel del kernel es Sebek (
http://www.honeynet.org/tools/sebek/
).
Sebek es un mdulo cargable del ncleo de Linux, Solaris, BSD, y los sistemas operativos de Windows que
intercepta sistema de llave llama en el kernel y los monitores de informacin interesante. A continuacin,
transmite los datos a un servidor de escucha, que oculta la presencia de las transmisiones desde el sistema local.
Instalacin del cliente de Linux
Para construir los mdulos de kernel en Linux, primero asegrese de que la acumulacin de directorio dentro de sus mdulos
directory seala en el cdigo fuente del kernel para el que desee para compilar los mdulos:
$ ls-lad / lib/modules/2.6.16/build
lrwxrwxrwx 1 root root 47 10 de abril 22:55 / lib/modules/2.6.16/build ->
../../../usr/src/linux-2.6.16
A continuacin, ejecute el habitual
. / Congure
comando. Alternativamente, usted puede construir Sebek para otra versin de
el kernel agregando el
- With-kernel-dir
cambiar y especicar un directorio que contiene el kernel
cdigo fuente:
$ . / congure - with-kernel-dir = / usr/src/linux-2.6.11
Tenga en cuenta, sin embargo, que si se especica una versin alternativa del kernel, usted necesita tener el kernel
fuente en la ubicacin especicada congurado e instalado. Ejecute los siguientes comandos desde el interior de la
directorio que contiene el cdigo fuente del kernel para hacer esto:
$ make oldcong
$ hacer preparar
Ahora que todo eso est fuera del camino, a un funcionamiento
. / Congure
y luego
hacer
. Esto ltimo generar un archivo tar
que contiene los mdulos del kernel y un script de instalacin. Copie este archivo a tu honeypot para completar
la instalacin.
Esto es lo que hay dentro:
$ tar tfz sebek-lin26-3.1.2b-bin.tar.gz
sebek-lin26-3.1.2b-bin /
sebek-lin26-3.1.2b-bin/parameters.sh
sebek-lin26-3.1.2b-bin/sbk_install.sh
sebek-lin26-3.1.2b-bin/README
sebek-lin26-3.1.2b-bin/sbk.ko
Antes de instalar los mdulos por su honeypot, tendrs que editar el sbk_install.sh guin y
modicar tres variables que indican sebek.ko dnde enviar la informacin que se recoge:
Pgina 403
DESTINATION_MAC
,
DESTINATION_IP
, Y
DESTINATION_PORT
. Estos deben estar ajustados para que apunte a la Sebek
servidor que se va a construir en un momento. Si el servidor est en una subred diferente, establezca
DESTINATION_MAC
a
la direccin MAC del router.
Adems, puede congurar opcionalmente el puerto de origen que utiliza Sebek estableciendo
SOURCE_PORT
.
Asegrese de utilizar el mismo
DESTINATION_PORT
para todos los honeypots que usted va a estar en funcionamiento. Usted tambin
deber congurar
INTERFAZ
a la interfaz que se debe utilizar para enviar datos a
DESTINATION_IP
.
Establezca el
MAGIC_VAL
variable para el mismo valor en todas sus honeypots. Esta variable, en conjuncin con
DESTINATION_PORT
, Se esconde el trco de otras honeypots se est operando.
Si quieres Sebek para recoger slo las pulsaciones de teclado de tu honeypot, se puede establecer el
KEYSTROKE_ONLY
variable para
1
. La
SOCKET_TRACKING
y
WRITE_TRACKING
variables que tambin controlan lo que los registros de Sebek. Si
el primero se ajusta a
1
, Sebek recopilar informacin sobre el uso del socket. Si este ltimo est habilitado, Sebek
har un seguimiento de todas las operaciones de escritura. Esto puede ser un buen montn de actividad, por lo que es recomendable dejar
esta variable en su conguracin por defecto:
- Deshabilitado
.
Una vez que est satisfecho con la conguracin, congurar el
PRUEBAS
variable para
0
. Esto har que Sebek a
se oculta una vez que se carga en el kernel.
Ahora, ejecute el script de instalacin en su equipo trampa:
# . / sbk_install.sh
Instalacin de Sebek:
358887816.o instalado correctamente
El 358887816.o archivo contiene los contenidos de sebek.ko . El nuevo nombre de archivo se genera al azar en
en tiempo de compilacin con el n de ocultar su presencia de los intrusos, que podran tratar de detectar su presencia por
el examen de la memoria del kernel directamente. Alternativamente, se puede establecer el
MODULE_NAME
variable en
sbk_install.sh a un nombre de su eleccin. Una vez Sebek est instalado, asegrese de extraer el archivo y
archivos de instalacin. La presencia de estos archivos en un sistema es un indicio bastante claro que se trata de un
honeypot y podra alertar a los intrusos.
Conguracin del servidor
Hay dos maneras de recolectar los datos desde un sistema que ejecuta Sebek. La ms sencilla es ejecutar el Sebek
servidor, que olfatear para la informacin y extraer automticamente por usted. Si preere
recopilar los datos manualmente, puede utilizar un sniffer y posteriormente utilizar la utilidad de extraccin de datos de Sebek para tirar de la
informacin de su paquete de vertederos.
Para instalar el servidor, descargue la distribucin de cdigo fuente desde la pgina del proyecto, descomprimirlo, y entra en la
directorio que se cre. A continuacin, ejecute este comando:
$ . / congure && make
Despus de la compilacin ha nalizado, la raz y ejecutar convertido
make install
. Esto instalar sbk_extract ,
sbk_ks_log.pl , y sbk_upload.pl . Para extraer la informacin enviada desde un honeypot, utilice sbk_extract . Usted
se puede ejecutar en modo sniffer utilizando el
-I
y
-P
opciones para especicar qu interfaz para escuchar en y
qu destino puerto a buscar, respectivamente.
Si desea procesar los paquetes que ya han sido capturadas mediante una herramienta de captura de paquetes, utilice el
-F
opcin para especicar la ubicacin del archivo de la descarga de paquetes. sbk_extract tambin le da la opcin de correr en un
chroot ()
la crcel: basta con utilizar el
-C
opcin y especicar un directorio para
chroot ()
a. Se recomienda que
lo hace en la recogida de datos en la naturaleza debido a la posibilidad (por remota que sea) que un
Pgina 404
intruso podra explotar una vulnerabilidad desconocida en sbk_extract por el envo de datos especialmente diseados.
Una vez que haya extrado los datos, puede utilizar sbk_ks_log.pl para mostrar las pulsaciones de teclado del atacante. Es
tambin es posible monitorear las pulsaciones de teclado en tiempo real, canalizando el resultado de sbk_extract en
sbk_ks_log.pl :
# . / sbk_extract-c / var / empty-i eth0-p 65000 |. / sbk_ks_log.pl
eth0 monitoreo: poner en 65000 UDP puerto dst
192.168.0.43 2006/05/04 05:12:48 rcord 362 recibi 1 perdi 0 (0.00 por ciento)
[2006-05-04 01:38:48 Host: UID 192.168.0.43: 0 PID: 9958 FD: 0 INO: 4 COM: bash] # cat
/ Etc / shadow
192.168.0.43 2006/05/04 05:13:50 rcord 539 recibi 177 perdi 0 (0.00 por ciento)
Instalacin del cliente de Windows
Instalacin del cliente Sebek en Windows es mucho ms sencillo, especialmente cuando se utiliza el
binarios precompilados (
http://www.savidtech.com/sebek/latest/
), Que le guiar a travs de la
proceso de instalacin a travs de los asistentes. Despus de que hayas descargado y desempaquetado el . zip archivo, ejecute el
incluido Setup.exe programa, que instala Sebek.sys . Por defecto, el asistente instalar en
C: \ Windows \ system32 \ drivers , pero el asistente le permite cambiar esta ubicacin.
Una vez Sebek.sys se ha instalado, puede congurarlo mediante el lanzamiento de conguracin Wizard.exe . Aqu,
puede especicar todos los parmetros que se especicaron en sbk_install.sh (ver "Instalacin del Linux
Cliente "). En el primer paso de este proceso, se tendr que indicar el asistente en el que instal Sebek.sys .
A continuacin, haga clic en el botn Siguiente para que aparezca el cuadro de dilogo se muestra en la Figura 11-14 .
Figura 11-14. Conguracin de la direccin MAC, la direccin IP y el puerto del servidor Sebek
Los campos en la gura 11-14 se corresponden con la
DESTINATION_MAC
,
DESTINATION_IP
, Y
DESTINATION_PORT
variables en sbk_install.sh . En el siguiente paso, tendr que introducir un valor mgico. La conguracin
asistente incluye cuidadosamente la capacidad de generar aleatoriamente este nmero para usted; simplemente haga clic en el
Botn de valor aleatorio, como se muestra en la gura 11-15 .
Pgina 405
Figura 11-15. Generar un valor mgico al azar
Despus de que hayas hecho esto, haga clic en Siguiente y seleccione el adaptador de red que se utiliza para enviar datos a su
Servidor Sebek.
Hasta ahora, todo el proceso de conguracin ha correspondido ms o menos con las variables utilizadas en la creacin de
Sebek en Linux. La nica diferencia es la siguiente pantalla, se muestra en la Figura 11-16 .
Figura 11-16. Elegir el nombre del programa de conguracin
Qu pasa si usted desea volver a congurar Sebek en algn momento? Puede ejecutar el asistente de conguracin de nuevo, pero
cul es para detener intrusos usarla para desactivar Sebek despus de que han comprometido el sistema? Este
pantalla le ayuda a hacer que sea mucho ms difcil para alguien que haga que al permitir slo programas con una
cierto nombre para alterar la conguracin de Sebek. De forma predeterminada, este nombre es de los primeros 12 caracteres del
Pgina 406
Nombre del archivo que utiliz para iniciar la instancia actual del asistente de conguracin (por ejemplo, conguracin , si
que no ha cambiado el nombre). En este punto, lo mejor es utilizar un generador de contraseas aleatorias para generar un
nombre de archivo. A continuacin, cambiar el nombre de conguracin Wizard.exe al nombre generado aleatoriamente y gurdelo en un
lugar seguro (es decir, no en un sistema que ejecuta Sebek).
Despus de que hayas hecho esto, haga clic en Siguiente, y ya est terminado. Despus de reiniciar el sistema, que comenzar
el envo de datos al servidor Sebek.
Sebek tambin tiene una interfaz web opcional llamado lucioperca, que permite analizar la recogida
datos fcilmente. Adems de los golpes de teclado registrados, la interfaz web puede extraer los archivos que han sido
cargado en el honeypot. Leucomas es parte de la distribucin de CD-ROM Honeywall Roo, un endurecido
Distribucin de Linux basada en Fedora Core 3 diseado con la recopilacin de datos y anlisis de red trampa en mente.
Ms informacin al respecto se puede encontrar en
http://www.honeynet.org/tools/cdrom/
.
Pgina 407
Captulo 12. Respuesta de recuperacin y
Recuperacin y respuesta a incidentes es un tema muy amplio, y hay muchas opiniones sobre los mtodos apropiados a
utilizan y las acciones a tomar una vez que una intrusin ha sido descubierto. Al igual que el debate contina en cuanto vi
frente a emacs , Linux vs Windows y BSD en comparacin de todo lo dems, hay mucho debate en la
informtica forense se agolpan en el "cierre limpio" contra argumento "tirar del enchufe". Libros enteros
se han escrito sobre la recuperacin de y respuesta a incidentes. Hay muchas cosas a tener en cuenta
Cuando lo haga, y los procedimientos que debe utilizar son lejos de estar bien denido.
Con esto en mente, este captulo no pretende ser una gua sobre lo que debe hacer cuando se descubri por primera vez un
incidente, pero s le mostrar cmo realizar tareas que puede decidir llevar a cabo en caso de
una intrusin xito. Al leer este captulo, usted aprender cmo crear correctamente un sistema de archivos
la imagen que se utilizar para la investigacin forense de un incidente, los mtodos para vericar que los archivos del sistema
no se han manipulado, y algunas ideas sobre la manera de realizar un seguimiento rpido por el propietario de una direccin IP.
Hack # 121. Imagen sistemas de cheros montados
Haga una copia bit a bit del disco de su sistema para el anlisis forense.
Antes de formatear y reinstalar el sistema operativo en una mquina recientemente comprometida, debe
tomar el tiempo para hacer duplicados de todos los datos almacenados en el sistema. Tener una copia exacta de la
contenido del sistema no slo es invaluable para la investigacin de un robo, pero tambin podran ser necesarias
para la consecucin de las acciones legales futuras. Antes de comenzar, usted debe asegurarse de que su md5sum , dd ,
y fdisk binarios no se vean comprometidos.
Pero espera un segundo. Una vez que usted comienza a preguntarse acerca de la integridad de su sistema, dnde
parar? Procesos ocultos podran estar en ejecucin, a la espera para el usuario root para iniciar sesin en la consola y listo
para eliminar todas las pruebas del robo. Del mismo modo, podra haber scripts instalados para funcionar al apagar el equipo para
limpiar las entradas de registro y eliminar los archivos incriminatorios.
Una vez que haya determinado que es probable que una mquina ha sido comprometida, es posible que desee
simplemente apague la mquina (s, slo apguelo!) y arrancar desde los medios de comunicacin alternativos, como un
Knoppix CD de arranque (
http://www.knoppix.org
) U otra unidad de disco duro que tiene una copia buena conocida del
sistema operativo. De esa manera, usted puede estar absolutamente seguro de que usted est comenzando el sistema a partir de una conocida
estado, eliminando la posibilidad de procesos ocultos que podran manchar sus datos antes de poder copiarlo.
La desventaja de este procedimiento es que se va a destruir cualquier evidencia de los programas en ejecucin o los datos almacenados
en un disco RAM. Sin embargo, es muy probable que el intruso ha instalado otras puertas traseras que se
sobrevivir a un reinicio, y estos cambios con toda seguridad, se guardan en el disco.
Para hacer una copia bit a bit del disco, utilice el
dd
comando. Pero en primer lugar, generar una suma de comprobacin para la
disco, de modo que usted pueda comprobar su copia en contra del contenido del disco, para asegurarse de que es de hecho una exacta
copia.
Para generar una suma de comprobacin para la particin que desea a la imagen (en este ejemplo, la segunda particin del
el primer disco IDE en un sistema Linux), ejecute este comando:
# md5sum / dev/hda2> / tmp/hda2.md5
Es aconsejable utilizar otros tipos de hashes, as, como SHA1 o rmd160, si usted tiene rdenes a
generarlos. Generalmente, usted puede hacer esto con la
sha1sum
y
rmd160
los comandos.
Ahora que est fuera del camino, es el momento de hacer una imagen del disco:
Pgina 408
# dd if = / dev / hda of = / tmp / hda.img
Tenga en cuenta que necesitar suciente espacio en / tmp para mantener una copia de la totalidad de / dev / hda disco duro. Este
signica que / tmp no debe ser un disco RAM y no debe ser almacenada en / dev / hda . Escriba a otro
disco duro por completo.
Por qu quieres a la imagen de todo el disco? Si la imagen slo una particin, no es una copia exacta de
lo que est en el disco. Un atacante podra almacenar informacin fuera de la particin, y esta informacin
no se va a copiar si slo tom imgenes de la particin misma. En cualquier caso, siempre se puede reconstruir una
imagen de la particin, siempre y cuando usted tiene una imagen de todo el disco.
Para crear imgenes de particiones separadas, sin embargo, usted necesitar un poco ms de informacin. Carrera
fdisk
para obtener el
compensaciones y tamaos de cada particin en
sectores
. Para obtener el
sectores
compensaciones para la particin, ejecute este
comando:
# fdisk-l-u / dev / hda
Disco / dev / hda: 4294 MB, 4294967296 bytes
255 cabezas, 63 sectores / pista, 522 cilindros, un total de 8.388.608 sectores
Unidades = sectores de 1 * 512 = 512 bytes
Boot Device Comienzo Final Bloques Sistema de Identicacin
/ Dev/hda1 * 63 208844 104391 83 Linux
/ Dev/hda2 208845 7341704 3566430 83 Linux
/ Dev/hda3 7341705 8385929 522112 + 82 Linux swap
Asegrese de guardar esta informacin para futuras consultas.
Ahora, cree un archivo de imagen para la segunda particin:
# Dd if = hda.img de hda2.img = bs = 512 skip = 208845 count = $ [7.341.704-208845]
7132859 0 registros en
7132859 0 registros fuera
Tenga en cuenta que el
contar
parmetro que hace un poco de matemtica shell para usted: el tamao de la particin es la ubicacin de
el ltimo bloque (7341704) menos la ubicacin del primer bloque (208.845). Asegrese de que el
bs
parmetro
coincide con el tamao de bloque reportado por
fdisk
(Por lo general 512, pero lo mejor es comprobar que cuando se ejecuta
fdisk
).
Por ltimo, generar una suma de comprobacin del archivo de imagen y luego compararla con la original que
creado:
# md5sum hda2.img> / tmp/hda2.img.md5 && diferencias / tmp/hda2.md5 / tmp/hda2.img.md5
La suma de comprobacin para la imagen coincide con el de la particin real exactamente, por lo que usted sabe que tiene una buena
copia. Ahora, puede reconstruir la mquina original y mirar a travs de los contenidos de la copia en su
el ocio.
Pgina 409
Hack # 122. Vericar integridad de archivos y Buscar Compromised Archivos
Utilice Tripwire para que le avise a los archivos comprometidos o comprobar la integridad del archivo en caso de un
compromiso.
Una herramienta que puede ayudarle a detectar intrusiones en un host y tambin determinar lo que ocurri despus de los hechos es
Tripwire (
http://sourceforge.net/projects/tripwire
). Tripwire es parte de una clase de herramientas conocido como
presentar comprobadores de integridad , capaces de detectar la presencia de importantes archivos modicados en su sistema. Este
es deseable porque los intrusos que han tenido acceso a un sistema a menudo instalan lo que se conoce como
rootkit [Hack # 124] , en un intento por tanto cubrir sus pistas y mantener el acceso al sistema.
Un rootkit generalmente logra estas metas mediante la modicacin de los servicios pblicos clave del sistema operativo, como ps , ls ,
y otros programas que podran dar lejos la presencia de un programa de puerta trasera. Esto signica por lo general que
el rootkit parches que estos programas no informan de que un determinado proceso est activo o que ciertos archivos
existir en el sistema. Los atacantes tambin podran modicar el programa del sistema de control MD5 (por ejemplo, md5 o
md5sum ) que informe sumas de comprobacin correctas para todos los binarios que se han reemplazado. Dado que el uso de MD5
sumas de comprobacin suele ser una de las principales formas de vericar si un archivo ha sido modicado, debe ser
claro que otra medida es muy necesaria.
Aqu es donde Tripwire viene muy bien. Se almacena una instantnea de sus archivos en un estado conocido, por lo que puede
comparar peridicamente los archivos contra la instantnea para descubrir discrepancias. Con esta instantnea,
Tripwire puede controlar los cambios en el tamao de un archivo, el nmero de inodo, permisos, u otros atributos, tales como la
el contenido del archivo. Para colmo de males, Tripwire encripta y rma sus propios archivos, por lo que puede detectar si ha sido
comprometida en s.
Tripwire es impulsado por dos componentes principales: una poltica y una base de datos . Las listas de todos los archivos de poltica y
directorios que Tripwire debera instantneas, junto con las reglas para la identicacin de violacines (es decir, inesperado
cambios). Por ejemplo, una poltica simple podra tratar cualquier cambio en / root , / sbin , / bin y / lib como
violacines. La base de datos Tripwire contiene la instantnea propio, creado mediante la evaluacin de la poltica contra la
sus sistemas de cheros. Una vez nalizada la instalacin, puede comparar los sistemas de cheros en contra de la instantnea en cualquier
tiempo, y Tripwire reportarn cualquier discrepancia.
Junto con la poltica y la base de datos, Tripwire tiene valores de conguracin almacenados en un archivo que controla
aspectos globales de su comportamiento. Por ejemplo, la conguracin especica las ubicaciones de la base de datos,
archivo de poltica y cable trampa ejecutable.
Tripwire utiliza dos claves de cifrado para proteger sus archivos. La llave del sitio protege el archivo de polticas y la
archivo de conguracin y la clave local protege la base de datos y los informes generados. Varias mquinas
con la misma poltica y la conguracin pueden compartir una clave de sitio, pero cada mquina deber tener su propio local,
clave para su base de datos e informes.
Una advertencia con Tripwire es que su mtodo orientado a lotes de comprobacin de integridad da un intruso
ventana de oportunidad para modicar un archivo despus de que ha sido legtimamente modicado y antes de la siguiente
comprobacin de integridad se ha ejecutado. Banderas Tripwire el archivo modicado, pero probablemente va a esperar que (porque
usted sabe que el archivo ha sido modicado) y despedir a la bandera como una indicacin de un cambio legtimo al
presentar. Por esta razn, lo mejor es actualizar la instantnea Tripwire tan a menudo como sea posible. En su defecto, se
deben tener en cuenta la hora exacta que modique cualquier archivo que se est supervisando, para que pueda compararlo
con la fecha de modicacin que informa de Tripwire.
La construccin e instalacin de Tripwire
Tripwire est disponible con las ltimas versiones de Fedora y como puerto de FreeBSD. Si no est
Pgina 410
ejecutar cualquiera de ellos, tendrs que compilarlo desde el cdigo fuente. Para compilar Tripwire, descargue el
paquete fuente y descomprimirlo. A continuacin, comprobar si tiene un enlace simblico desde / usr / bin / gmake a
/ Usr / bin / make . Si usted no tiene ese vnculo, cree uno.
TIP
Los sistemas operativos fuera del mundo de Linux no siempre vienen con GNU make, as que Tripwire se ve explcitamente gmake, pero
esto se llama simplemente hacen en la mayora de los sistemas Linux.
Otra cosa a comprobar es un conjunto completo de los subdirectorios de / usr / share / man . Tripwire deber colocar
pginas de manual en man4 , man5 y man8 . En sistemas donde estos estn ausentes, el instalador crear archivos
el nombre de los directorios, en lugar de la creacin de directorios y colocando los archivos correspondientes en
ellos. Por ejemplo, el programa de instalacin crear un archivo llamado / usr/man/man4 en lugar de un directorio de la
mismo nombre que contiene las pginas del manual apropiadas.
Cambiar el directorio de trabajo al directorio raz de la fuente de Tripwire (por ejemplo, ./tripwire-2.3.1-2 ), y
leer el README y INSTALL archivos. Ambos son breves pero importantes.
Finalmente, cambie a la del rbol de cdigo fuente src directorio (por ejemplo, ./tripwire-2.3.1-2/src ) y hacer cualquier necesario
cambios en las deniciones de las variables en src / Makele . Asegrese de vericar que el adecuado
SYSPRE
denicin est comentada ( SYSPRE = i686-pc-linux , SYSPRE = sparc-linux , Etc).
Ahora, usted est listo para compilar. Aunque todava en la parte de Tripwire src directorio, ingrese el siguiente comando:
$ make release
Despus de la compilacin ha nalizado, ejecute los siguientes comandos:
$ cd ..
$ cp. / install / install.cfg.
$ cp. / intall / install.sh
Abrir install.cfg en tu editor de texto favorito para ajustar las variables de conguracin. Mientras que el valor por defecto
caminos son probablemente muy bien, usted debe por lo menos examinar la seccin Opciones de correo, que es donde
en un inicio se dice Tripwire cmo encaminar sus registros. Tenga en cuenta que puede cambiar esta conguracin ms tarde.
Si establece
TWMAILMETHOD = SENDMAIL
y especicar un valor para
TWMAILPROGRAM
, Tripwire utilizar el
mailer local especicado ( sendmail por defecto) para entregar sus informes a un usuario o grupo local. Si en lugar
establece
TWMAILMETHOD = SMTP
y especicar valores para
TWSMTPHOST
y
TWSMTPPORT
, Tripwire le enviar por correo su
informes a una direccin de correo externa a travs del servidor SMTP y el puerto.
Una vez que haya terminado de editar install.cfg , es el momento de instalar Tripwire. Aunque todava en el directorio raz del
la distribucin de fuentes de Tripwire, ingrese el siguiente comando:
# sh. / install.sh
Se le pedir para el sitio y las contraseas locales: la contrasea del sitio protege la conguracin de Tripwire
y los archivos de poltica, mientras que el local de contraseas protege las bases de datos y los informes de Tripwire. Esto permite que el
el uso de una nica poltica en varios hosts, de centralizar el control de las polticas de Tripwire pero distribuir
responsabilidad de la gestin de bases de datos y generacin de informes.
Si no piensa utilizar Tripwire en varios hosts con polticas compartidas, no hay nada malo
con la conguracin del sitio y contraseas locales Tripwire en un sistema dado a la misma cadena. En cualquier caso,
elegir una contrasea fuerte que contiene una combinacin de letras maysculas y minsculas,
Pgina 411
puntuacion (que puede incluir espacios en blanco), y los nmeros.
Conguracin de Tripwire
Instalacin de Tripwire (ya sea a travs de paquete binario o acumulacin de origen) crea un archivo de conguracin por defecto:
/ Etc / tripwire / tw.cfg . No se puede editar este archivo porque es un binario encriptado, pero para su comodidad,
una versin en texto claro de ello, twcfg.txt , tambin debe residir en / etc / tripwire . Si no lo hace, puede crear la
versin de texto con el siguiente comando:
# twadmin - print-CFGFILE
> / Etc / tripwire / twcfg.txt
Puede editar este archivo para realizar cambios en la conguracin que utiliz al instalar Tripwire, y usted puede
cambiar la ubicacin donde Tripwire buscar su base de datos mediante el establecimiento de la
DBFILE
variable. Uno
uso interesante de esta variable es establecer en un directorio en el / mnt jerarqua de directorios. Entonces, despus de
la base de datos se ha creado se puede copiar en un CD-ROM y vuelva a montar all cuando lo necesite
para realizar comprobaciones de integridad.
Despus de que haya terminado de editar el archivo de conguracin, cifrarlo de nuevo mediante la ejecucin de este comando:
# twadmin - create-CFGFILE - site-keyle
. / Twcfg.txt site.key
Tambin debe eliminar la twcfg.txt archivo.
A continuacin, puede inicializar la base de datos de Tripwire ejecutando este comando:
# cable trampa - init
Dado que este utiliza el archivo de directiva predeterminada que Tripwire instalado, es probable que vea los errores relacionados con
archivos y directorios que no se encontraron. Estos errores son fatales, y la base de datos terminarn
inicializacin. Si desea deshacerse de estos errores, puede modicar la directiva y eliminar los archivos que
fueron reportados como desaparecidos.
En primer lugar, tendr que descifrar el archivo de poltica en un formato de texto plano editable:
# twadmin - print-polle> twpol.txt
Luego, comente los archivos que fueron reportadas como desaparecidas. Usted tambin debe mirar a travs del archivo y
determinar si los archivos que desea catalogar estn ausentes. Por ejemplo, es probable que
querer supervisar todos los archivos SUID en el sistema [Hack # 2] . Language-archivo de poltica de Tripwire puede permitir
para construcciones mucho ms complejas que la simple enumeracin de un archivo por lnea; leer la
twpolicy (4)
pgina de manual
para obtener ms informacin si desea utilizar algunas de estas caractersticas.
Despus de que haya actualizado su poltica, tambin deber actualizar la base de datos de Tripwire:
# cable trampa - twpol.txt update-policy
Da a Da Uso
Para llevar a cabo los controles en contra de su base de datos, ejecute este comando:
# cable trampa - cheque
Pgina 412
Esto imprime un informe a la pantalla y deja una copia del mismo en / var / lib / tripwire / report . Si desea
Tripwire al correo electrnico de forma automtica el informe a los destinatarios congurados, aada
- Email-informe
hasta el nal
del comando. Puede ver los informes mediante la ejecucin
twprint
:
# twprint - print-informe - twrle \
/ Var/lib/tripwire/report/colossus-20040102-205528.twr
Por ltimo, para conciliar los cambios que los informes Tripwire con su base de datos, se puede ejecutar un comando similar
a este:
# cable trampa - update - twrle
\
/ Var/lib/tripwire/report/colossus-20040102-205528.twr
Usted puede y debe programar Tripwire para ejecutar sus controles la mayor regularidad posible. Adems de mantener
su base de datos en un lugar seguro, como por ejemplo en un CD-ROM, tendr que hacer copias de seguridad de su
conguracin, la poltica y llaves. De lo contrario, usted no ser capaz de realizar una comprobacin de integridad en el
caso de que alguien (malintencionado o no) los elimina.
Vea tambin
twpolicy (4)
La seccin "Uso de Tripwire" en Linux Server Security , segunda edicin, por Michael D. Bauer
(O'Reilly)
Pgina 413
Hack # 123. Save comprometidos
Verique el sistema operativo gestiona los archivos con el sistema de gestin de paquetes de su sistema.
Por lo tanto, usted ha tenido un compromiso y hay que averiguar qu archivos (si existe) el intruso modica, pero
no ha instalado Tripwire? Bueno, no todo est perdido si su distribucin utiliza una gestin de paquetes
sistema.
Aunque no es tan poderoso como Tripwire, los sistemas de gestin de paquetes pueden ser tiles para encontrar a lo que
grado un sistema ha sido comprometido. Por lo general, mantienen rmas MD5 de todos los archivos de la
paquete ha instalado. Usted puede utilizar esta funcionalidad para comprobar los paquetes en un sistema en contra de su
base de datos de la rma.
El uso de RPM
Para vericar un solo paquete en un sistema que utiliza RPM, ejecute este comando:
# rpm-V
paquete
Si el intruso modica ningn binario, es probable que el
ps
comando era uno de ellos. Utilice estos
comandos para comprobar su rma:
# que ps
/ Bin / ps
# rpm-V \ Qrpm-qf / bin / ps \ Q
S.5 .... T / Bin / ps
Aqu, la
S
,
5
, Y
T
nos muestran que el tamao del archivo, la suma de comprobacin, y la hora de modicacin ha cambiado desde
se instal-no es bueno en absoluto. Tenga en cuenta que slo los archivos que no coinciden con la informacin contenida en
la base de datos del paquete se traducir en la salida.
Para vericar todos los paquetes en el sistema, utilice el habitual
rpm
opcin que especica todos los paquetes,
-Un
:
# rpm-Va
S.5 .... T / Bin / ps
S.5 .... T c / etc / pam.d / system-auth
S.5 .... T c / etc / security / access.conf
S.5 .... T c / etc / pam.d / login
S.5 .... T c / etc / rc.d / rc.local
S.5 .... T c / etc / syscong / pcmcia
....... T c / etc / libuser.conf
S.5 .... T c / etc / ldap.conf
....... T c / etc / mail / sendmail.cf
S.5 .... T c / etc/syscong/rhn/up2date-uuid
....... T c / etc / yp.conf
S.5 .... T / Usr/bin/md5sum
....... T c / etc/krb5.conf
Hay otras opciones que puede utilizar para limitar aquello que se obtiene en cada archivo. Algunos de los ms tiles
cules son
-Nouser
,
-Nogroup
,
-Nomtime
, Y
-NOMODE
, Que puede eliminar una gran cantidad de la produccin que resulta
de los archivos de conguracin que hayas modicado.
Tenga en cuenta que es probable que desee para redirigir la salida a un archivo, a menos que reducir lo que obtiene
vericado mediante el uso de las opciones de lnea de comandos. Correr
rpm-Va
sin ninguna opcin puede resultar en un buen
gran cantidad de salida de los archivos de conguracin modicados y tal.
Pgina 414
Todo esto est muy bien, pero no tiene en cuenta la posibilidad de que un intruso ha comprometido sistema de llave
binarios y podran haber puesto en peligro la base de datos RPM tambin. Si este es el caso, an puede utilizar
RPM, pero usted tendr que obtener el archivo se instala el paquete desde el n de vericar la instalacin
archivos en su contra.
El peor escenario es que el rpm binario en s se ha visto comprometida. Puede ser difcil estar
determinado de este ser que haya arrancado desde medios alternativos, como se menciona en "Imagen sistemas de cheros montados"
[Hack # 121] . Si este es el caso, debe localizar un seguro rpm binario a utilizar para la vericacin de los paquetes .
En primer lugar, encontrar el nombre del paquete que posee el archivo:
# rpm-qf
nombre de archivo
A continuacin, busque el paquete en su medio de distribucin, o descargarlo de Internet. Despus de hacer
as, comprobar los archivos instalados en contra de lo que est en el paquete usando este comando:
# rpm-Vp
archivo de paquete

S-ar putea să vă placă și