miércoles, 7 de septiembre de 2011

Distributed Denial-of-Service (DDoS)

Distributed Denial-of-Service, or more commonly known in its abbreviated form – DDoS – is an organized attempt to render a computer resource obsolete and unavailable to its intended users – temporarily or indefinitely. Specifically, a DDoS attack consists of the concerted efforts of a person or an organization to prevent an Internet website or service from functioning efficiently, or even at all. When a DDoS attack is successful, enterprises with core revenue-generating functions residing over the Internet will suffer great losses in the forms of: short-term financial losses, long-term reputational losses, or even permanent business disability.
DDoS attacks can be classified into two broad categories – Bandwidth Depletion Attacks or Resource Depletion Attacks.

Bandwidth Depletion Attacks are characterized by which a victim network is flooded with large volume of bogus packets that overwhelms the network’s bandwidth capacity. The aim is to consume network bandwidth of the targeted network to such an extent that it starts to drop packets. An inevitable result would lead to legitimate traffic being dropped as well, thus denying valid users access to that particular service.

Resource Depletion Attacks involves the attackers sending packets that misuses network protocol communications, or via sending malformed packets that tie up network and/or system resources so that none are left for legitimate users. The aim is to occupy and jam up the limited resources so that it is unable to handle any other requests.

Bandwidth Depletion Attacks

DDoS bandwidth depletion attacks can be classified into two different levels; Flood Attacks or Amplification Attacks. A flood attack is characterized by the use of zombies to send large volumes of traffic to a compromised victim system in order to congest its bandwidth. An amplification attack is similar in that it limits the victim system’s bandwidth via amplified malicious traffic; characterized by the use of zombies to send messages, but to a broadcast IP address instead, causing systems in the subnet reached by the broadcast IP address to send messages to victim systems.

Flood Attacks
During a DDoS flood attack, the zombies flood the victim system with IP traffic and prevent legitimate traffic from accessing the victim network. The large volumes of packets are sent by the zombies to flood the victim system with IP traffic, thus slowing it down significantly, which results in bandwidth saturation or even a system crash. Common types of flood attacks include Agent-Handler attacks and IRC-based attacks. Agents are compromised via the handlers by the attacker, using automated routines to exploit vulnerabilities in programs that accept remote connections running on the targeted remote hosts. Each handler can control up to a thousand agents.

User Datagram Protocol (UDP) Flood Attacks
Due to its status as a connectionless protocol, when data packets are sent via UDP, no handshakes are required between sender and receiver, resulting in a mandatory processing of all received packets. This can lead to bandwidth saturation when a large number of UDP packets are sent to a victim system where legitimate service requests are prevented access to the victim system.

During a DDoS UDP Flood attack, UDP packets may be sent randomly or target specified ports on the victim system. Victim systems will try to process any data packets received to determine which applications have requested data. If no applications are run on the targeted port, the victim system will send out an ICMP packet to the sending system indicating a “destination port unreachable” message.

In some cases, attackers may spoof source IP addresses in order to hide the identity of the secondary victims and ensure that return packets from the victim system will not be directed back to the zombies, but to another computer instead with the spoofed address. Sometimes, UDP flood attacks may also affect the bandwidth connections surrounding the victim system and this may cause systems connected near to the victim system to experience connectivity issues. However, this is dependent on network architecture and line-speed.

Internet Control Message Protocol (ICMP) Flood Attacks
DDoS ICMP flood attacks are characterized by zombie attackers sending large volumes of ICMP_ECHO_REPLY (or “ping”) packets to the victim system. ICMP packets are specifically designed to assist users in locating network equipment or determine the number of hops or round-trip-time to get from a source to its destination. During an ICMP attack, these malicious packets will demand a reply from victim systems and this will lead to bandwidth saturation of victim network connections.

Resource Depletion Attacks

DDoS Resource Depletion Attacks are characterized by attackers sending packets that target network protocol communications, which congests network resources and prevents access by legitimate users.

Protocol Exploit Attacks
Transfer Control Protocol (TCP) Synchronize (SYN) Attacks. The TCP process typically includes a full handshake between a sender and a receiver before data packets are sent. The initiating system sends a SYN request and the receiving system will reciprocate by returning an ACK (acknowledgement) along with its own SYN request. The sending system will then send back its own ACK to authorize communication between the two systems. If the receiving system is sent a SYN packet but does not receive an ACK, the receiver will resend a new SYN packet after some time. The processor and memory resources at the receiving system will be reserved for this TCP SYN request until a timeout occurs. Also known as resource starvation attacks, a DDoS TCP SYN attack will capitalize on the TCP function where zombies will send bogus TCP SYN requests to a victim server, which effectively saturates the server processor resources and prevents it from processing legitimate requests. It particularly exploits the three-way handshake between the sending system and the receiving system by sending large volumes of TCP SYN packets to the victim system with spoofed source IP addresses. Eventually, when large volumes of TCP SYN attack requests are sent and repeated, the victim system will run out of memory and processor resources, thus unable to process any legitimate user requests.

PUSH + ACK Attacks
The PUSH + ACK attack is similar to a TCP SYN attack in depleting processor and memory resources of victim systems. A PUSH is a one-bit flag tagged within a TCP header. During the TCP process, packets that are sent to a destination are buffered within the TCP stack. Packets will then be proceeded to be sent to the receiving system after the stack is filled. However, by setting the PUSH bit to one, the sender can request the receiving system to unload the contents of the buffer before the buffer becomes full. TCP then stores incoming data in large blocks for passage on to the receiving system in order to minimize the processing overhead. When this process is repeated with multiple agents, the receiving system will not be able to handle the large volumes of incoming packets and will result in a crash.

Malformed Packet Attacks
A malformed packet attack is characterized by zombies sending incorrectly formed IP packets to a victim system to crash it. There are typically two different levels of malformed packet attacks. During IP address attacks, the packet contains the same source and destination IP addresses. This confuses the victim operating system and causes it to crash. During IP packet options attacks, a malformed packet randomizes optional fields within an IP packet and sets all quality of service bits to one, so victim systems will be compelled to utilize additional processing time to analyze traffic. When this attack is repeated using multiple agents, this will lead to a shutdown of the processing ability in victim systems.

CC Attacks
CC Attack is one type of DDoS attack which uses proxy servers to flood victim servers by sending seemingly legitimate requests (usually using HTTP GET). Named after the tool, CC (ChallengeCollapsar), attackers creatively use proxy mechanisms to exploit the numerous and widely available free proxy servers to launch DDoS attacks. The fact that many of these free proxy servers support annonymous mode makes tracking difficult.

Botnet Attacks
A Botnet is a number of Internet computers that have, without their owners’ awareness, been taken over by Command-and-Control(C&C) servers. A spread of malware gives the attackers chances to own a botnet. The main problem with botnets is that they are hidden and may stay undetected unless one is looking for a specific activity. Botnets are associated with different types like IRC, HTTP or P2P for different communication ways between the Bots and C&C Servers.





Pronto se pondrá los pasos para un ataque de denegación de servicio, solo para tener la idea del como hacerlo 3 o 4 VMs "atacando" un target, a nivel masivo es hacer eso mas grande...

domingo, 10 de julio de 2011

Poniendo en marcha Snort 2.9 + BASE + Mysql sobre CentOS 5.6

Snort® is an open source network intrusion prevention and detection system (IDS/IPS) developed by Sourcefire. Combining the benefits of signature, protocol, and anomaly-based inspection, Snort is the most widely deployed IDS/IPS technology worldwide.
www.snort.org
1.- Instalamos los paquetes necesarios:
#yum install -y mysql mysql-bench mysql-devel mysql-server php-mysql php-pear php-gd
gcc-c++ gcc gd glib-devel rsyslog mod_ssl httpd pcre-devel flex bison

2.- Adicionalmente Descargar los siguientes paquetes que son necesarios
para el funcionamiento de snort de los siguientes URLs
libpcap-1.1.1.tar.gz --> http://www.tcpdump.org
libdnet-1.12.tgz --> http://code.google.com/p/libdnet/
daq-0.5.tar.gz --> http://www.snort.org/snort-downloads
barnyard2-1.9.tar.gz --> http://www.securixlive.com/barnyard2/download.php
snort-2.9.0.5.tar.gz --> http://www.snort.org/snort-downloads?
snortrules-snapshot-2905.tar.gz --> http://www.snort.org/snort-rules

Por un tema de orden ubicaremos todos los paquetes en la ruta:
/opt/download


3.- Desinstalar la version de libpcap que por default se encuentra instalada.
#yum list all | fgrep libpcap
#yum remove libpcap

Antes de instalar libpcap, hacer lo siguiente:
rm -rf /usr/local/include/pcap*
rm -rf /usr/local/lib/libpcap*

la razón de esto es que se encuentra instalada una version inferior a la que necesitaremos.


4.- Compilar e instalar en el siguiente orden:
# cd /opt/download

# tar -xzvf libpcap-1.1.1.tar.gz
# cd libpcap-1.1.1
# ./configure —prefix=/usr
# make && make install

# tar -xzvf libdnet-1.12.tgz
# cd libdnet-1.12
# ./configure
# make && make install

# tar -xzvf daq-0.5.tar.gz
# cd daq-0.5
# ./configure
# make && make install

# tar -xzvf barnyard2-1.9.tar.gz
# cd barnyard2-1.9
# ./configure
# make && make install


5.- Instalación de librerias pear que seran necesarias:
Toca primero actualizar la version de pear, ahi pongo 3 formas de hacer esto:
# pear -V (version de pear y php)
# pear upgrade --force http://pear.php.net/get/PEAR-1.9.4
# pear channel-update pear.php.net
# pear upgrade PEAR

Instalando las librerias:
# pear install --alldeps Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman


6.-compilar e instalar snort:
# cd /opt/download
# tar -xzvf snort-2.9.0.5.tar.gz
# cd snort-2.9.0.5
# ./configure --with-mysql --enable-dynamicplugin --enable-zlib
# make && make install

# groupadd snort
# useradd -g snort snort -s /sbin/nologin
# mkdir -p /etc/snort/rules
# mkdir /var/log/snort


7.- Creación del user y BD snort en mysql:
# service mysqld start
# mysqladmin -u root password 'p@55w0rd' (seteamos la contraseña de admin)

# mysql -u root -p

creamos el usuario snort, la BD snort y damos permisos necesarios:

CREATE USER 'snort'@'localhost' IDENTIFIED BY 'p@55w0rd';
CREATE DATABASE snort;
GRANT ALL PRIVILEGES ON snort.* to 'snort'@'localhost';

Luego :
# mysql -u root -p < /opt/download/snort-2.9.0.5/schemas/create_mysql snort

# service mysqld restart
# chkconfig mysqld on

8.- Copiamos los archivos de configuracion y las reglas de Snort:
# cp /opt/download/snort-2.9.0.5/etc/* /etc/snort
# cp /opt/download/snortrules-snapshot-2905.tar.gz /etc/snort
# cd /etc/snort/
# tar -xzvf snortrules-snapshot-2905.tar.gz

# rm -f snortrules-snapshot-2905.tar.gz

NOTA: las rules se bajan directamente de http://www.snort.org/snort-rules , se debe ser un usuario registrado para poder descargarlo; si se quiere las ultimas versiones de las reglas de snort se debe estar suscrito, esto ultimo implica un pago.

9.- Personalizando el archivo de configuración de Snort
# cd /etc/snort
# cp snort.conf snort.conf.ORG (como buena practica backup de archivo que se va a modificar)
# rm -f snort.conf
# vi snort.conf
El contenido de este archivo debe quedar como sigue, esto es una configuracion básica
################################################################
# Declaramos la red que vamos a monitorear
var HOME_NET 192.168.1.0/24

# Indicando la ruta de las reglas
var RULE_PATH /etc/snort/rules
# Base de datos para guardar la deteccion de trafico
output database: log, mysql, user=snort password=4v4nt1c4 dbname=snort host=localhost
################################################################

10.- Instalación de BASE (Basic Analysis and Security Engine), consola web de monitoreo del IDS
Primero se debe instalar adodb, se puede descargar de http://sourceforge.net/projects/adodb files/
# cd /opt/download
# unzip adodb511.zip# cp -R adodb5 /var/www/
# mv adodb5 adodb

Ahora toca compilar e instalar base; descargar de http://sourceforge.net/projects/secureideas/files/
# cd /opt/download
# cp base-1.4.5.tar.gz /var/www/html/
# cd /var/www/html
# tar -xzvf base-1.4.5.tar.gz
# mv base-1.4.5 base

11.- Personalizando el archivo base_conf.php
# cd /var/www/html/base
# cp base_conf.php.dist base_conf.php.dist.ORG
# mv base_conf.php.dist base_conf.php
# vi base_conf.php
###########################################################
$BASE_Language = 'english';
$BASE_urlpath = '/base';
$DBlib_path = '/var/www/adodb';

$DBtype = 'mysql';
$alert_dbname = 'snort';
$alert_host = 'localhost';
$alert_port = '';
$alert_user = 'snort';
$alert_password = 'p@55w0rd';
$colored_alerts = 1;
###########################################################
Grabar los cambios y reiniciar el servicio http
# service httpd restart

Continuará estamos trabajando...

lunes, 15 de febrero de 2010

Instalación de DeltaCopy para sistemas de backup



Deltacopy es una herramienta opens source, que realiza backups incrementales. Esto quiere decir en buen cristiano, que solo la primera vez hace el backup de toda la data, las veces siguiente solo copiara lo modificado nada mas, con esto ahorramos consumo de ancho de banda. Algunas de las caracteristicas de este programita las dejo aqui:

- Incremental backup - Copies part of the file that is actually modified
- Task scheduler - Profiles in DeltaCopy can run based on a schedule
- Email notification - Administrators can receive email confirmation on successful as well as failed transfers
- One-click restore - Backed up files can be easily restored.
- Windows friendly environment - No need to manually modify configuration files or play around with command line options.

1.- Se baja el instalador de la siguiente dirección:

http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

2.- Lo que viene es para el server, luego de la instalacion se elige la opción Register Windows Service


3. Marcar con un check la opción Use Local Service Account

4. Enceder el servicio dándole al botón Start Sever

DeltaCopy Service

5. Elegir la pestaña Virtual Directories y dar doble click en y setearle nombre al nuevo directorio virtual.

6. Luego ubicar mediante el botón de Browse el directorio físico en el cual se almacenara toda la data

7. Marcar la opción de Use Authentication y setear un User y Password (Opcional)

8. Para el client, instalar el mismo software solo que al termino de la instalación darle al botón Close, luego ir a Start à All Programs à DeltaCopy à DeltaCopy Client

9. Doble click en y Setear los valores adecuados

· En Profile Name: Se puede poner el nombre que uno desee por orden se va a poner el nombre del usuario de la pc. (en este caso se le puso el nombre de Prueba)

· En Server IP/Host Name: el nombre del servidor o su correspondiente numero de IP

· En Virtual Directory Name: Aquí si es importante colocar el mismo nombre que se puso al momento de crear el directorio virtual ( Ver paso 5 ) en este caso lleva el nombre de ANewName

10. Al darle a Test Connection debe mostrar , y luego le damos a Add profile

11. Le damos al botón Add Folder y ubicamos el directorio físico que deseamos sea Backapeado

12. Nos vamos a la pestaña Authentication y ponemos los mismos valores que seteamos en el servidor en el punto 7 (sino se marco nada en el punto 7 aquí no deberá ponerse nada tampoco)

13. Ir al botón Modify Schedule, se abrirá una ventana similar a la que esta debajo, luego fijar una hora y fecha programada para la tarea (sugiero todos los días 6pm)




sábado, 28 de noviembre de 2009

Una historia de exito y un ejemplo a seguir

TIPS PARA CERTIFICARSE:

=====================


Tip numero uno.

Crean que si pueden. Sin esto es imposible pasar cualquier examen. Recuerdo cuando estaba estudiando para el CCNA mis compañeros de trabajo decian que no podria. Eso fue en el 2002. El dia de hoy cuento con 17 certificaciones de Cisco (incluyendo dos CCIEs).

Tip numero dos.

No es necesario un curso para aprobar el examen. Un curso te ayuda a que el proceso sea mas rapido, pero un buen libro (o varios buenos libros dependiendo de la certificacion) son mas que suficientes.

Tip numero tres.

Busquen alguna motivacion. Para muchos (me puedo incluir) la motivacion numero uno es el dinero, el saber cuanto te pagaran si logras el CCNA, el CCNP (o cualquier certificacion a nivel profesional) y el CCIE. Pero ademas de dinero hay otros tipos de motivaciones, como lo es el reconocimiento o la superacion personal.

Tip numero cuatro.

Practicar, practicar y practicar. No hay magia, no es solo leer, es tambien practicar!

Tip numero cinco.

Sean constantes. Hay quienes dicen que no se pueden certificar porque no tienen tiempo para estudiar. Si se proponen el tener el habito de estudiar al menos 1 hora diaria, y realmente todos los dias lo hacen, tarde que temprano estaran listos para el examen.

Si quieren leer mi historia detras de mis 17 certificaciones, aqui se las dejo (copiado de mi blog):

Yo me gradué de ISE en el ITESM Campus Monterrey en Diciembre de 1995. Mi primer trabajo fue en Hewlett Packard como ingeniero de soporte. En aquel entonces HP vendía redes, y estaban promocionando muy fuerte la tecnología 100VG any LAN, que estaba compitiendo con el estándar FastEhternet. Para los que sepan y los que no sepan que es 100VG any LAN se darán cuenta que no gano HP, y gano el estándar FastEthernet. Lo que son las cosas, el día de hoy HP es Partner de Cisco, jejejeje, y claro que la tecnología 100VG any LAN esta mas obsoleta que Token Ring.

Salí de HP en 1997 y me fui al ITESM Campus Monterrey al departamento de Telecomunicaciones y Redes. Ahí fue mi “primer contacto” con Cisco. El Director de Telecomunicaciones estaba casado con Cisco (de hecho el día de hoy trabaja para Cisco), y todo el equipo de redes que teníamos ahí era Cisco. Ahí fue la primera vez que escuche acerca de las certificaciones, ahí fue la primera vez que escuche las palabras CCNA y CCIE.

Mi jefe nos comento que un certificado CCIE podía hacer mucho dinero, así que 3 compañeros y yo decidimos ir por el CCIE, éramos jóvenes ignorantes, pero eso sí, con mucho valor. No nos imaginábamos que era un CCIE. Sabíamos que teníamos que presentar 2 exámenes, uno escrito y uno practico. Así que compramos cada uno el libro en Amazon de preparación para el CCIE (mi primer compra en Amazon fue ese libro). Claro que ni teníamos la experiencia ni los conocimientos, y nos dimos por vencidos después de un semestre. Aquí les puedo dar un consejo que viví, sigan el camino de las piedritas, primero el CCNA, después el CCNP y finalmente el CCIE de R&S (si deciden irse por el track de R&S). Al día de hoy, de los 4, solo yo conseguí el ser CCIE, al menos hasta el día de hoy.

En 1999 salí del ITESM y me fui a Avantel (ya no existe, ya que Axtel los compro). Avantel era Partner Silver de Cisco por lo que contaba con varios certificados, incluidos 4 CCIEs. Había varios CCNAs, así que me “decidí” a sacar el CCNA. Otra vez me metí en Amazon.com y compre el libro de Sybex para el CCNA. Lo empecé a leer, y lo tenía en mi cubículo. Llegaban mis compañeros y me decían que jamás lo sacaría porque era un examen muy difícil, así que poco a poco me fui dando por vencido, hasta que el libro solo era un adorno en mi cubículo. Cuando me di por vencido ya había leído el libro completo, practicado en simuladores (no existía Dynamips en aquel entonces), pero simplemente me dio miedo el examen porque me creí lo que todo el mundo me decía. El 11 de Septiembre del 2001 paso lo de los ataques terroristas en NY, la economía estadounidense se fue para abajo, y unos meses después la de México también. El ISP realizo un recorte masivo y entre ellos me fui yo (por si se preguntaban, los certificados en Cisco no fueron tocados).

Empecé mi propio negocio, el cual no fue por mucho un éxito, y después de unos 6 meses empecé a buscar trabajo. Claro que quería un trabajo en redes así que aplicaba a los pocos trabajos que pudiera aplicar, en todos me pedían como mínimo el CCNA. Era muy frustrante el tener la experiencia, y ver que recién graduados que habían tomado la academia en la Universidad y presentado su examen eran elegidos aun sin experiencia en el área. Así que me decidí a presentar el examen.

No estaba trabajando en aquel entonces, por lo que me dedique al 100% a eso, además no tenía mucho dinero para poder presentar el examen varias veces. Fueron exactamente 30 días, y desde que me levantaba hasta que me dormía, era estudiar el CCNA. Al menos 16 horas diarias por 30 días. Fui a presentar, lo pase a la primera, la verdad es que no llegue a los 900 puntos, saque menos, pero lo suficiente para pasar. Estaba SUPER emocionado, era el rey del mundo, lo había logrado y a la primera. Eso fue el día 22 de Julio del 2002.

Ya como era el rey del mundo, volví a buscar trabajo, claro, esperaba al menos ganar lo que ganaba cuando me corrieron del ISP (Avantel). O decepción, ¡no me ofrecían mucho! (eso de mucho es relativo). Lo que quería ganar era lo que le ofrecían a los CCNPs, y créanme, en aquel entonces no tenía dinero ni siquiera para comprar los libros del CCNP, mucho menos para pagar 4 exámenes de 150 dólares cada uno. Entonces hice algo que me había prometido no hacer jamás, regrese a Avantel (ellos me llamaron, al menos eso me queda de consuelo), y lo hice no porque me ofrecieran lo mismo que cuando trabajaba antes, sino porque eran los que más me ofrecían y lo veía como un paso necesario para poder obtener el CCNP e irme de ahí. Mi primer día de trabajo (el 15 de marzo del 2004), metí la tarjeta de crédito (aun no me pagaban) para comprar los 4 libros de Cisco Press para el CCNP. Mi primer examen del CCNP lo aprobé el día 16 de Abril del 2004, el último el 2 de Julio del 2004. Tengo que decir que Avantel me contrato para un proyecto especial, pero, desgraciadamente para ellos, Telmex no nos había entregado la ultima milla de ningún circuito, por lo que en todo el día podía estar estudiando. Así que hablando estrictamente, me la pase estudiando por 4 meses aproximadamente todo el día, enfocado al CCNP. Los 4 exámenes los pase a la primera, aunque uno de ellos saque la calificación mínima para aprobarlo. En aquel entonces, me volví a sentir el rey del mundo, Dios mío, ¡que no les pase lo mismo!, se deben de sentir orgullosos de este tipo de logros, pero definitivamente no más que eso. El CCIE lo veía como algo imposible, porque todo mundo que ese era el examen, y en aquel entonces ¡había menos de 50 certificados en México! (Al día de hoy hay 90 y creciendo).

Seguí con el CCDA, CCDP y empecé el CCSP. Fue entonces que conocí a un CCIE, y claro que me esperaba que fuera una eminencia, que todo lo que yo no sabía lo sabría el, que no había persona más sabia (en el mundo de las redes), y ¡Dios mío! En varios temas yo sabía más que el, fue cuando me di cuenta que el CCIE era posible, que no era tan difícil como todo mundo decía, no era cierto que existía una gran diferencia entre el CCNP y el CCIE. Así que volví a invertir, y dicho sea de paso, el material para estudiar para el CCIE no es nada barato. Un buen Workbook no te cuesta menos de 500 dlls (yo compre uno de 1,000 y uno de 500 USD), y el Workbook cuando te llega y son tristes hojas engargoladas sientes que te han timado, jejejejjejeje. Pero la verdad es que si lo necesitas. También compre un curso pre-grabado por 1000 USD que créanme que viendo ese curso, 1000 dlls es un precio muy barato. No tenía equipos ni laboratorio, por lo que rentaba equipo en línea. Estando en Avantel, el día 25 de mayo del 2005, pase mi examen escrito. Al mes siguiente deje Avantel y me fui con otro Partner, Migesa, un Partner Silver de Cisco en aquel entonces, ahora es Gold. ¿Por qué me fui de Avantel? Muy sencillo, ellos me pagarían los laboratorios y el examen, por cierto también me pagaron un BootCamp de 4,000 dlls en Dallas con el famoso 4 veces CCIE Scott Morris.

El camino al CCIE no es fácil, no, no estoy diciendo que sea un examen difícil o imposible de pasar, difícil porque le tienes que dedicar mucho tiempo. Todos los sábados y domingos desde que pase el escrito hasta Octubre del 2005 era estar configurando equipos practicando, practicando, practicando. No iba a fiestas, no iba a bodas, no tenia vida social. Un mes antes de mi examen el 25 de Noviembre del 2005 en mi trabajo me dieron oportunidad de no ir a trabajar para seguir estudiando ¿Por qué hizo eso Migesa? Porque le convenía tener otro CCIE, era la única manera de obtener la certificación Gold. Así que ya había hecho todo el workbook completo y me fui a presentar a RTP (Carolina del Norte). No pase. Me sentí una basura, después de todo el apoyo de mi empresa, no pase. No sabía cómo me iba a presentar en el trabajo y decir que no había pasado, me sentía un cucaracho, o peor que eso. Llegue, y me sorprendió los ánimos que me dieron para volverlo a intentar. Así que, sin descansar un fin de semana, seguí estudiando lo sábados y domingos, dos semanas antes de mi segundo intento, me volvieron a dar la oportunidad de estudiar sin ir a trabajar. Fui a mi segundo intento a RTP otra vez, esta vez sí pase. 11 de abril del 2006. Me sentí muy contento, pero esta vez, no me sentía el rey del mundo, simplemente orgulloso de que finalmente me había convertido en el CCIE #16048, y todavía me siento orgulloso, pero ni de chiste me siento el rey del mundo.

Después de eso termine el CCSP, y me incline por la seguridad. Empecé a estudiar para el examen escrito del CCIE de Seguridad, lo pase a la primera. Fui a RTP por tercera vez, esta vez para presentar el CCIE de Seguridad, y también lo pase a la primera. Eso fue el día 19 de Julio del 2007. Queda de más decir que otra vez tuve que sacrificar mi vida social, y queda de más decir que mi esposa al principio no estaba muy de acuerdo en volver a presentar otro CCIE, pero finalmente me apoyo con todo.

En resumen, les recomiendo:

Paso a paso, no esperen el tener el CCIE en poco tiempo, piensen primero en el CCNA, después en el CCNP (o CCVP, o CCSP o CCIP, dependiendo del track que les llame la atención) y ya después el CCIE.

Disfruten el proceso. Si no les gustan las redes, la preparación será un verdadero calvario.

No les crean a los que les dicen que no pueden. Al contrario, recuerden como se los dicen para que cuando lo logren vallan con ellos y ustedes puedan decirle que si pudieron.

Tengan algo que los motive, claro, el sueldo que pueden esperar es muy alto y es muy buen motivante (hoy gano más de 5 veces de lo que ganaba cuando era CCNA), pero también busquen algo más que los motive.

No se les suba a la cabeza. El tener una certificación no debe de hacerlos sentir el rey del mundo, siempre habrá alguien más que sepa más que ustedes.

Busquen un Partner Silver o Gold. A ellos les interesa tener gente certificada y casi todos estarán dispuestos a pagarles las certificaciones. Claro, para entrar, al menos deben de tener el CCNA (y yo les recomendaría el tener al menos un examen pasado del CCNP o CCSP o CCVP.

No se den por vencidos, el reprobar un examen les pasa a todos, hay que saber levantarse de esos fracasos.

Monetariamente hablando el ser certificado Cisco te da muchas ventajas, y siempre los que van a pagar mejor son los que “a fuerzas” necesitan certificados, es decir, los Partners. No me importa que digan que grandes empresas como Cemex, TVAzteca, Televisa o cual sea pagan bien, un Partner siempre pagara mejor a un certificado que las empresas más grandes de México.

Si son casados o tienen novio(a), créanme, necesitan de el apoyo de su pareja.

Como me hubiera gustado que alguien me hubiera dicho esto recién que me gradué. O incluso antes de graduarme.

Aunque trate de explicar todo mi proceso, tal vez alguno de mis 2 o 3 lectores que tengo en este Blog tienen alguna duda de algún detalle que se me paso poner aquí. Si es así no duden en dejar comentarios y/o preguntas. Prometo contestarlos todos, y si alguno vale la pena en hacer otro Post porque la respuesta sea muy larga, con mucho gusto lo hare.

Como termine el post anterior, si yo pude, ¿Por qué ustedes no?

raulvelazquez.blogspot.com

Raul Velazquez.

viernes, 27 de noviembre de 2009

Instalacion de Asterisk 1.6.1.6 sobre Centos 5.4

1.- El primer paso es descargar los módulos necesarios: dahdil, libpri, asterisk y asterisk addons desde los repositorios públicos de Digium y guardarlos en nuestro sistema, yo escogí /usr/src, asi:
---------------------
# cd /usr/src/
---------------------

Astrerisk en sip
-----------------------------------------------------------------------------------------------------------------------------
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.1.9.tar.gz
-----------------------------------------------------------------------------------------------------------------------------

Drivers para tarjetas (E1, FXS/FXO, etc )
-------------------------------------------------------------------------------------------------------------------------------------------------------
# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.2.0.2+2.2.0.tar.gz
-------------------------------------------------------------------------------------------------------------------------------------------------------

Para la línea primaria (línea telefónica)
-------------------------------------------------------------------------------------------------------------------------------------
# wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.10.2.tar.gz
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.6.1-current.tar.gz
-------------------------------------------------------------------------------------------------------------------------------------

2.- Ahora debemos averiguar la versión exacta de nuestro kernel con el comando:
-----------------
# uname -a
-----------------

Deberíamos ver algo como:
linux asterisk.jorge.com 2.6.18-164.6.1.el5

3.- Luego deberíamos verificar si tenemos instaladas las fuentes del kernel, para ello utilizamos el comando:
---------------------------------
# rpm -q kernel-devel
---------------------------------

Deberiamos ver algo como esto:
[root@asterisk src]# rpm -qa grep kernel-devel
kernel-devel-2.6.18-164.6.1.el5

4.- Ahora si, debemos ejecutar los siguientes comandos para verificar si tenemos intalados los paquetes:
-------------------------------------------
# rpm -q bison
# rpm -q bison-devel
# rpm -q ncurses
# rpm -q ncurses-devel
# rpm -q zlib
# rpm -q zlib-devel
# rpm -q openssl
# rpm -q openssl-devel
# rpm -q gnutls-devel
# rpm -q gcc
# rpm -q gcc-c++
# rpm -q make
# rpm kernel-devel
-------------------------------------------

Si alguno de estos paquetes faltase lo instalamos con :
------------------------------------------------------
# yum install nombre-del-paquete
------------------------------------------------------

por ejemplo:

[root@asterisk ~]# rpm -q gnutls-devel
package gnutls-devel is not installed

[root@asterisk ~]# yum install gnutls-devel

5.- Listo, ahora sí, nos posicionamos en la carpeta donde bajamos los paquetes (en mi caso /usr/src/), los desempaquetamos y descomprimimos, así:
-------------------------------------------------------------------
# tar zxfv asterisk-1.6.1.9.tar.gz
# tar zxfv dahdi-linux-complete-2.2.0.2+2.2.0.tar.gz
# tar zxfv libpri-1.4.10.2.tar.gz
# tar zxfv asterisk-addons-1.6.1-current.tar.gz
-------------------------------------------------------------------

Luego ingresamos a la carpeta libpri
-----------------------
# cd libpri-1.4.0
-----------------------

y ejecutamos:
------------------
# make clean
# make
# make install
------------------

Estando en /usr/src luego ingresamos a la carpetacd dahdi-linux-complete-2.2.0.2+2.2.0/tools
ejecutar
------------------
# ./configure
subir dahdi-linux-complete-2.2.0.2+2.2.0
# make
# make install
# make config
# make samples
------------------

Estando en /usr/src luego ingresamos a la carpetacd asterisk-1.6.1.9
--------------------
# ./configure
# make
# make install
# make samples
# make config
--------------------

6.- Listo !! si todo salio bien deberiamos poder cargar asterisk con:
--------------------------------
# asterisk -vvvvvvvvcg
--------------------------------
luego en :
*CLI> stop now
nuevamente
# asterisk –vvvvv
luego:
# asterisk –r

Finalmente :
-----------------------------------
# service asterisk stop
# service asterisk start
-----------------------------------

Instalando Xen sobre CentOS 5.3:

Xen es una máquina virtual de código abierto desarrollada por la Universidad de Cambridge.

La meta del diseño es poder ejecutar instancias de sistemas operativos con todas sus características, de forma completamente funcional en un equipo sencillo. Xen proporciona aislamiento seguro, control de recursos, garantías de calidad de servicio y migración de máquinas virtuales en caliente. Los sistemas operativos pueden ser modificados explícitamente para correr Xen (aunque manteniendo la compatibilidad con aplicaciones de usuario). Esto permite a Xen alcanzar virtualización de alto rendimiento sin un soporte especial de hardware. Intel ha realizado diversas contribuciones a Xen que han permitido añadir soporte para sus extensiones de arquitectura VT-X Vanderpool.


Desde mi punto de vista Xen es una gran opción para la virtualización, lo he usado en entornos de producción y se ha comportado a la altura, yo lo sugeriría en entornos donde se va a instalar diversos sistemas operativos sobre la maquina vitual es decir, linux, windows, unix, etc. Si lo que se necesita es un entorno virtual donde habra solo maquinas *NIX yo sugiero usar OpenVZ facil de usar y de gran performance, tiene una penalización baja comparada con Xen.

1.- Crear el directorio vm en la raíz:
----------------
# mkdir /vm
----------------

2.- Apagar SELinux
---------------------------------
# setup
-> firewall configuration
-> Disabled -> Disabled
---------------------------------

3.- Instalar el Xen, su Kernel modificado y el Gestionador de Maquinas virtuales
--------------------------------------------------------
# yum install xen kernel-xen virt-manager
--------------------------------------------------------

4.- Ingresar en el gestor del boot y hacer que el kernel de xen botee por default:
--------------------------------
# vi /boot/grub/menu.lst
--------------------------------

###############################################################
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.1.13.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-92.1.13.el5
module /vmlinuz-2.6.18-92.1.13.el5xen ro root=/dev/VolGroup00/LogVol00
module /initrd-2.6.18-92.1.13.el5xen.img
...
###############################################################

5.- Luego
------------
# reboot
------------

6.- Verificamos el kernel en el cual estamos trabajando
----------------
# uname -r
----------------

debe aparecer algo similar a:
2.6.18-164.el5xen

7.- Ahora si todo ha ido bien podemos empezar usando el comando xm
------------
# xm list
------------

Para checkear que el Xen ha arrancado. Debe mostrar Domain-0(dom0)

[root@server1 ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 964 1 r----- 134.1

A partir de aqui hay varias posibles formas de trabajar con VM
===================================================

a.- Bajamos una imagen de un centos desde internet y la utilizamos directamente, con esto evitamos el tener que instalarlo

1ro Descargarlo:
----------------------------------------------------------------------------------------------------------------------
http://stacklet.com/downloads/images/lister/CentOS/5.3/x86
#wget http://stacklet.com/sites/default/files/centos/centos.5-3.x86.20090423.img.tar.bz2
----------------------------------------------------------------------------------------------------------------------

El password de root en todas estas maquinas virtuales descargadas es : password

2do Entrar al directorio donde descargo y descomprimirlo:
--------------------------------------------------------------
#tar xvfj centos.5-3.x86.20090423.img.tar.bz2
--------------------------------------------------------------
Esto descomprimira la imagen y el archivo de configuración también

3ero Mover la imagen al directorio vm que se creo previamente
---------------------------------------
#cp centos.5-3.x86.img /vm/
---------------------------------------
4to Luego renombrarlo y dar permiso de ejecucion
-----------------------------------------------
#cd /vm/
#mv centos.5-3.x86.img cloto.img
#chmod +x cloto.img
-----------------------------------------------

5to Copiar el archivo de configuración dentro del directorio xen, para nuestro caso la maquina virtual se llama cloto
--------------------------------------------------------
#cp centos.5-3.x86.xen3.cfg /etc/xen/cloto
--------------------------------------------------------

6to Editar el archivo de configuración recien copiado:
---------------------
vi /etc/xen/cloto
---------------------

###############################################################
kernel = "/boot/vmlinuz-2.6.18-164.el5xen"
memory = 300
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,keymap=es" ]
name = "cloto"
vif = [ '' ]
disk = ['file:/vm/cloto.img,sda1,w']
###############################################################

7mo Crear el dominio (domU)
-----------------------
#xm create cloto
#xm list
-----------------------
Debe mostrar algo similar a esto:

[root@oceano xen]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 736 2 r----- 32.2
cloto 1 255 1 r----- 9.9
8vo Ingresamos a la maquina virtual recien creada:
----------------------
#xm console 1
----------------------
se pone el numero del ID o el nombre de la VM

Para la imagen q descargamos se usa
user: root
password: password

9no A la maquina virtual agregarle network device (de forma grafica)
verificar que exista conectividad

10mo Instalarle vim ya que no lo tiene por defecto
#yum install vim


Algunos comandos importantes para la gestion:
========================================
#xm create
#xm shutdown - Stop a virtual machine.
#xm destroy - Stop a virtual machine immediately without shutting it down. It's as if you switch off the power button.
#xm list - List all running systems.
#xm console - Log in on a virtual machine.


Clonacion:
=========

Crea una imagen de cloto con el nombre de cronos:
#virt-clone --original cloto --name cronos --file /vm/cronos.img

Clonacion si la maquina tiene 2 discos:
#virt-clone --original cloto --name cronos --file /vm/cronos.img --file /vm/cronos-disco2.img


b.- Una segunda forma de instalar la maquina virtual es usando el virt-install, es la forma sugerida en la gran mayoria de HowTo pero la verdad a mi me dio un error que no logre superar, igual voy a intentarlo nuevamente luego.

1ro Ejecutamos
-------------------
# virt-install
-------------------

2do Llenamos los datos solicitados para la maquina virtual que estamos creando:

What is the name of your virtual machine? <-- cloto
How much RAM should be allocated (in megabytes)? <-- 256
What would you like to use as the disk (file path)? <-- /vm/cloto.img
How large would you like the disk (/vm/vm01.img) to be (in gigabytes)? <-- 4
Would you like to enable graphics support? (yes or no) <-- no
What is the install location? <-- http://mirrors.kernel.org/centos/5.3/os/i386/

3ro Procedemos con la instalacion normal de un centos

###############################################################
NOTA: cabe mencionar que bajo esta forma ha brindado el error en el paquete

chkconfig

No lo he logrado solucionar =( puede ser simplemente las versiones del centos
###############################################################


c.- Una 3ra forma seria una vez q tenemos instalado xen kernel-xen

1ro Usamos la linea con el comando dd, que nos permite crear una imagen con el nombre que deseemos
# dd if=/dev/zero of=/srv/xen/cloto.img oflag=direct bs=1M seek=2047 count=1

2do Luego se descarga :
initrd.img y
vmlinuz

de aqui http://mirror.centos.org/centos/5/os/i386/images/xen/

3ro Se crea el fichero de configuracion en /etc/xen/cloto

kernel = "/boot/vmlinuz-xen-install"
ramdisk = "/boot/initrd-xen-install"
extra = "text ks=http://localserver/minimal-ks.cfg" <-- Archivo kickstart
name = "cloto"
memory = "256"
disk = [ 'tap:aio:/vm/mailserver.img,xvda,w', ]
vif = [ 'bridge=xenbr0', ] <-- verificar q corresponda (es la tarjeta de red verificar con ifconfig)
vcpus=1
on_reboot = 'destroy'
on_crash = 'destroy'

###############################################################
Para nuestro ejemplo:
vmlinuz-xen-install --> vmlinuz
initrd-xen-install --> initrd.img
###############################################################

4to contenido del archivo minimal-ks.cfg

###############################################################
install
url --url http://mirror.centos.org/centos/5/os/i386
lang es_PE
network --device eth0 --bootproto dhcp
# Bogus password, change to something sensible!
rootpw C3nt05i386
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Europe/Amsterdam
bootloader --location=mbr --driveorder=xvda --append="console=xvc0"
reboot
# Partitioning
clearpart --all --initlabel --drives=xvda
part /boot --fstype ext3 --size=100 --ondisk=xvda
part pv.2 --size=0 --grow --ondisk=xvda
volgroup VolGroup00 --pesize=32768 pv.2
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=256 --grow --maxsize=512
%packages
@core
###############################################################


tambien se puede usar este otro o sino combinar y personalizar

###############################################################
#platform=x86, AMD64 o Intel EM64T
# System authorization information
auth --useshadow --enablemd5
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Use graphical install
graphical
# Text Mode
#text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --enable
# System keyboard
keyboard es
# System language
lang es_PE
# Installation logging level
logging --level=info
# Use network installation
url --url=http://161.132.7.61/centos/
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
#Root password
#rootpw --iscrypted $1$tYYdP8B.$fKnMPXRSKXkiotdlxJTLz0
rootpw C3nt05i386
# SELinux configuration
selinux --disabled
# System timezone
timezone America/Lima
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig --defaultdesktop=GNOME --depth=24 --resolution=800x600

%packages
@base
@spanish-support
@printing
@editors
###############################################################

5to Crear las maquinas virtuales, cuando se crea los archivos kickstart que son los archivos de arriba se logra una instalacion desatendida.
---------------------------
# xm create cronos
# xm console cronos
---------------------------

6to Luego deberia modificarse el archivo de configuracion post-instalacion
debe kedar asi + / -

###############################################################
name = "cloto"
memory = "256"
disk = [ 'tap:aio:/vm/cloto.img,xvda,w', ]
vif = [ 'bridge=xenbr0', ] <-- Verificar q coincida
bootloader="/usr/bin/pygrub"
vcpus=1
on_reboot = 'restart'
on_crash = 'restart'
###############################################################

7mo Iniciando dominios automáticamente

Si usted desea iniciar un dominio automáticamente cuando el sistema (dom0) sea iniciado,
mueva la configuración del dominio a el directorio /etc/xen/auto. Por ejemplo:

# mv /etc/xen/cronos /etc/xen/auto


Información adicional de Xen y lo que me ayudo a hacer este pequeño Howto:
===============================================================

http://tx.downloads.xensource.com/downloads/docs/user/#SECTION03200000000000000000
http://www.howtoforge.com/centos_5.0_xen
http://www.xen.org/support/documentation.html
http://www.vivaolinux.com.br/artigo/Instalando-Xen-3.3.0-no-Debian-Lenny-Linux?pagina=6
http://wiki.centos.org/es/HowTos/Xen/InstallingCentOSDomU#head-7f3137b9b998c75feb8173562ff083bee3dc47ba

Distributed Denial-of-Service (DDoS)

Distributed Denial-of-Service, or more commonly known in its abbreviated form – DDoS – is an organized attempt to render a computer resource...