Configuracion de Servicios de Red

En este enlace podras encontrar varios archivos para configurar tu red

Cisco y Algo mas...

2 Articulos de cisco y uno de como manejar el estres recuerda que mucho trabajo sin descanso no es bueno

Fuego de Dios

El Motor que nos impulsa a hacer grandes cosas en nuestras vidas y cambiar una sociedad.

CRS-3 Lo Nuevo de Cisco

...A la Espera de Zettabyte

Para mayor informacion

No te olvides de contactarnos.

miércoles, 30 de julio de 2014

IPTABLES (comandos y ejemplos)

Como les había prometido en el post anterior sobre montarle algunos ejemplos para que pudieran realizarlos en sus computadoras, para que no llevarme una semana decidí probar unos cuantos comando en mi trabajo y hacer una especie de resumen de lo que les puede servir, ya sea para una computadora personal o configurar el firewall de una gran red. revisando el firewall de mi trabajo y con la ayuda de algunos documentos que logre encontrar y probar, desarrolle este post. 

para comenzar con un ejemplo básico para proteger tu equipo personal (un consejo, si no manejas muy bien esta herramienta, antes de estos he escrito 2 post muy interesante para aprender algunos comando que vamos a utilizar aquí, no voy a entrar en explicaciones porque seria redundar en los artículos anteriores,  recuerde que esta herramienta es sensible a mayúsculas y minúsculas): 

El primer paso es crear un script esto lo pueden conseguir en el primer post sobre IPTABLES nos dirijamos a esta archivos y lo editamos como nos aparece a continuación: 

#reglas básicas 
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT 
iptables -P FORWARD ACCEPT 
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT 

#ahora si empezamos a filtra los paquetes 
#permitimos conexiones de localhost
iptables -A INPUT -i lo -j ACCEPT 

# a nuestra ip le dejamos todo 
iptables -A INPUT -s 192.15.15.156 -j ACCEPT

#a un amigo le dejamos que consulte base de bados en mysql
iptables -A INPUT -s 192.168.2.5 -p tcp --dport 3306 -j ACCEPT 

#un acceso a FTP 
iptables -A INPUT -s 192.168.4.5 -p tcp --dport 2021 -j ACCEPT 

#servidor web abierto 
iptables -A INPUT -p tcp --dport 80 -j ACCEPT 

#y el resto lo cerramos 
iptables -A INPUT -p tcp --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 2021 -j DROP
iptables -A INPUT -p tcp --dport 22 -j DROP 
iptables -A INPUT -p tcp --dport 10000 DROP 

 Vamos con un ejemplo un poco mas complejo, y seria un la configuración de un firewall de una red que necesita salida a Internet, y para lo cual utilizaremos el NAT.

Comienza el script 
#aplicamos reglas básicas
iptables -P INPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

##empezamos a filtrar
##nota: eth0 esta la interfaz conectada al router y la eth1 a la LAN
#dejamos las conexiones locales
iptables -A INPUT -i lo -j ACCEPT

#al firewall tenemos acceso desde la LAN
iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

#ahora hacemos enmascaramiento de la red local
#y activamos el BIT DE FORWARDING (importante)
iptables -t nat -A POSROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

#con esta linea podemos hacer forward de paquetes en el firewall
#(es decir que otras maquinas puedan salir a travez del firewall)
echo > 1 /proc/sys/net/ipv4/ip_forward

##y ahora cerramos los accesos indeseados del exterior
#nota: 0.0.0.0/0 significa cualquier red
#cerramos el rango de puerto bien conocido
iptables -A INPUT -s 0.0.0.0/0 -p tcp dport 1:1024 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp dport 1:1024 -j DROP

#cerramos un puerto de gestion: webmin
iptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 10000 -j DROP

fin del script

Nota importante sobre el script anterior, en la linea en la que aparece echo > 1 /proc/sys/net/ipv4/ip_forward lo podemos hacer de la siguiente manera:
nos dirijamos al archivo /etc/sysctl.conf y en la linea en la que aparece
net.ipv4.ip_forward=0    lo vamos a remplazar por un 1
net.ipv4.ip_forward=1





IPTABLES (desde otra perspectiva)

Indagando mas sobre seguridad en redes y sobre configuración de IPTABLES, encontré un curso muy interesante que quisiera compartir con ustedes, pero de forma mas clara y resumida, ya que es algo extenso y por este medio solo colocare los puntos mas importantes y combinados con otros documentos que he conseguido que me han parecido muy interesante sobre esta herramienta, no creo que sea el mejor post sobre el tema pero voy a tratar de no ser tan teórico sino que también colocar algunos ejemplos para poder asimilar mejor los conocimientos, pero como todo, sino tenemos una buena base teórica se nos puede realizar un tanto engorroso la configuración, y sin mas preámbulos, realmente que es IPTABLES: 

Es la herramienta que nos permite configurar las reglas del sistema de filtrado de paquetes del kernel de Linux, desde su versión 2.4 (en 2.2 era ipchains). Con esta herramienta, podremos crearnos un firewall adaptado a nuestras necesidades. esta construido sobre Netfilter que es un framework disponible en el núcleo Linux que permite interceptar y manipular paquetes de red. Dicho framework permite realizar el manejo de paquetes en diferentes estados del procesamiento. 

En resumidas cuentas que puedo hacer con esta herramienta: 

1. IPTABLES permite definir reglas acerca de que hacer con los paquetes de red.
2. Las reglas se agrupan en cadenas.
3. Cada cadena es una lista ordenada de reglas.
4. Las cadenas se agrupan en tablas
5. Cada tabla esta asociada con un tipo diferente de paquete.

El total del sistema de filtrado de paquetes del kernel se divide en tres tablas, cada una con varias chains a las que puede pertenecer un paquete, de la siguiente manera.

Filter, el filtrado de paquetes, contienen las siguientes cadenas predefinidas: 

INPUT: Paquetes recibidos para nuestro sistema 
FORWARD: Paquetes enrutados a través de nuestro sistema 
OUTPUT: Paquetes generados en nuestro sistema y que son enviados

NAT, reenvío de paquetes, contiene las siguientes cadenas predefinidas: 

PREROUTING: los paquetes entrante pasan a través de esta cadena, antes de que se consulte la tabla de enrutamiento local (DNAT - Destination-NAT). 
POSTROUTING: los paquetes salientes pasan por esta cadena, después de haber tomado la decisión de ruteo. (SNAT - Source-NAT)
OUTPUT: permite hacer un DNAT limitado en paquetes generado localmente. 

Mangle, diseñada para efectos avanzados, permite la alteración de paquetes y tramas, contiene las siguientes cadenas predefinidas:

PREROUTING: todos los paquetes que logran entrar a esta sistema, antes de que el ruteo decida si el paquete debe ser enviado o si tiene destino local. 
INPUT: todos los paquetes destinados para este sistema
FORWARD: todos los paquetes que pasan por este sistema. 
OUTPUT: todos los paquetes creados en el sistema
POSTROUTING: todos los paquetes que abandonan este sistema. 

Lo que dejo a continuación son algunas reglas básicas. 

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT 

En la primeras 2 lineas tenemos que todo los que sea entrada (INPUT) y re-direccionamiento (FORWARD) quedan bloqueados (DROP) y mediante la 2 ultimas lineas aceptamos (ACCEPT) el enrutamiento. 

Cada regla especifica que paquetes la cumplan y un destino que indica que hacer con el paquete si esté cumple esta regla. su sintaxis la podemos plasmar de la siguiente manera: 

iptables -t [tabla] -o[operación] [cadena] [coincidencia] -j[ACCIÓN]

operación 

A (add) agregar la regla al final
I (insert) agregar regla al principio 
R (replace) reemplazar una regla 
D (delete) borrar una regla
F (flush) borrar todas las reglas de una sola cadena 
L (list) muestra las reglas de una cadena 

coincidencia 

-p [protocolo]: puede ser tcp, udp, icmp, all. o alguno de los indicados en /etc/protocols .
-s [ip/mascara]: dirección de origen o grupo de host.
-d [ip/mascara]: dirección de destino o grupo de host. 
-i [interfaz]: interfaz donde se recibe el paquete (solo INPUT, FORWARD y PREROUTING)
-o [interfaz]: interfaz de salida (solo OUTPUT, FORWARD y POSTROUTING)
--sport: puerto de origen de la transacción (solo para protocolo tcp o udp)
--dport: puerto de destina de la transacción (solo para protocolos tcp o udp)

ACCIÓN 

ACCEPT: acepta la transacción 
DROOP: rechaza la transacción
REJECT: rechaza la transacción y notifica al emisor
QUEUE: encola el paquete, para ser alterado por la biblioteca libipq
RETURN: el paquete deja de circular por la cadena 
LOG: crea una bitácora de los paquetes (ejemplo verificar que paquetes están siendo rechazados)
DNAT: permite modificar la dirección y el puerto de destino. 
SNAT: permite modificar la dirección y el puerto de origen. 
MASQUERADE: forma especial y restringida de SNAT. 

martes, 29 de julio de 2014

IPTABLES



Como ya les he mencionado en los post anteriores soy un amante de la seguridad informática y es un tema que me llama mucho la atención y uno de los temas base para la seguridad en redes es sobre IPTABLES, y esto no es otra cosa sino la parte del kernel Linux (un módulo) que se ocupa de filtrar paquetes. Esto dicho de otra forma, significa que IPTABLES es la parte del kernel cuyo trabajo es saber qué información/datos/paquete quieres que entre a tu ordenador, y cuáles no, sera el encargado de filtrar información a una red, es la base de todos los firewall, y como hemos descrito anteriormente el firewall es un dispositivo perimetral que se encarga de proteger mi red, y mediante IPTABLES le das las ordenes. 

Para trabajar con IPTABLES es necesario tener permisos administrativos, por lo que acá usaré sudo (pero si entras como root, no hay necesidad).

Ahora para que sea de una forma mas fácil de entender para todos los que no manejan redes y dispositivos de seguridad vamos a colocar un ejemplo en el cual podrá experimentar desde tu computador personal. (ojo no nos hacemos responsables por pruebas que no son satisfactorias... jajajaja)

Para que nuestro ordenador sea realmente seguro, tenemos que solo permitir lo que nosotros queramos. Vean su ordenador como si fuera su propia casa, en su casa ustedes por defecto NO dejan que nadie entre, solo pueden entrar determinadas personas específicas que ustedes hayan aprobado antes no? Con los firewall`s sucede igual, por defecto nadie puede entrar a nuestro ordenador, solo podrán entrar quienes nosotros deseemos.


Para lograr esto que explico, aquí los pasos:

1. Abran una terminal, en ella pongan lo siguiente y presionen [Enter]:
sudo iptables -P INPUT DROP


Esto bastará para que nadie, absolutamente nadie pueda entrar a su ordenador… y, este “nadie” los incluye a ustedes mismos :D Explicación de la línea anterior: Con ella indicamos a IPTABLES  que la política por defecto (-P) para todo lo que desee entrar a nuestro ordenador (INPUT) es obviarlo, no hacerle caso (DROP)

Nadie es bastante general, absoluto de hecho, ni ustedes mismos podrán navegar por Internet ni nada, es por eso que debemos en esa terminal poner lo siguiente y presionar [Enter]:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

La primera línea lo que dice es que el propio ordenador (-i lo … por cierto, lo = localhost) puede hacer lo que le plazca. Algo obvio, que puede parecer hasta absurdo… pero créanme, es tan importante como el aire jajajaja

La segunda línea la explicaré usando el ejemplo/comparación/metáfora que usé antes, me refiero a comparar al ordenador con la casa :) Por ejemplo, supongamos que vivimos con más personas en nuestra casa (madre, padre, hermanos, novia, etc). Si alguna de estas personas sale de casa, ¿es obvio/lógico que dejaremos que entre una vez regrese no?

Precisamente eso es lo que hace esa segunda línea. Todas las conexiones que nosotros iniciemos (que salgan desde nuestro ordenador), cuando por esa conexión quiera entrar algún dato, IPTABLES dejará que ese dato entre. Poniendo un ejemplo más para explicarlo, si usando nuestro navegador intentamos navegar por internet, sin estas 2 reglas no podremos, pues sí… el navegador se conectará a Internet  pero cuando intente bajar datos (.html, .gif, etc) hacia nuestro ordenador para mostrárnoslo, no podrá pues IPTABLES le negará la entrada de paquetes (datos), mientras que con estas reglas, como nosotros iniciamos la conexión desde dentro (desde nuestro ordenador) y esa misma conexión es la que intenta entrar datos, sí se le permitirá el acceso.

Con esto listo, ya tenemos declarado que nadie puede acceder a ningún servicio de nuestro ordenador, nadie excepto el propio ordenador (127.0.0.1) y además, excepto conexiones que se inicien en el propio ordenador.

Ahora, explicaré un detalle más de forma rápida, pues la 2da parte de este tutorial explicará y abarcará más sobre esto jeje, no quiero adelantar mucho :D

Sucede que por ejemplo, tienen un sitio web publicado en su ordenador, y desean que ese sitio web todos lo puedan ver, como antes declaramos que todo por defecto es NO permitido, excepto no se indique lo contrario, nadie podrá ver nuestro sitio web. Ahora haremos que cualquiera pueda ver el o los sitios webs que tengamos en nuestro ordenador, para ello ponemos:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Esto es muy simple de explicar :D

Con esa línea estamos declarando que acepte o permita (-j ACCEPT) todo tráfico al puerto 80 (–dport 80) que sea TCP (-p tcp), y que además sea tráfico entrante (-A INPUT). Puse puerto 80, porque ese es el puerto del host web, o sea … cuando un navegador intenta abrir un sitio de X ordenador, siempre mira por defecto en ese puerto.

jueves, 10 de julio de 2014

Recuperar contraseña de Cisco ASA 5540



Este tema me genero una perdida de tiempo que no tenia previsto, debido a una que me entregaron un ASA ya configurado y tuve que investigar como realizar un recovery password a este equipo, y todos los post que conseguí eran en ingles, y quisiera dejarles un articulo resumido en español de la información que es fidedigna, ya que la probé en mi propio equipo. a continuación les dejo esa información: 
Procedimiento de recuperación de contraseña 


Para recuperar las contraseñas de la ASA, realice los siguientes pasos:

Paso 1 Conecte al puerto de consola ASA, en mi caso estoy utilizando debian, y la herramienta de minicom previamente configurado, mas adelante les comentare sobre como configurar este herramienta, si manejas windows, puedes utilizar PUTTY.

Paso 2 Apague el ASA, y luego encenderlo.

Paso 3 Después del inicio, pulse la tecla Escape cuando se le pide que ingrese el modo ROMmon.

Paso 4 Para actualizar el valor del registro de configuración, escriba el siguiente comando:

rommon #1> confreg 0x41
Update Config Register (0x41) in NVRAM...
Paso 5 Para configurar el ASA para que ignore la configuración de inicio, ingrese el siguiente comando:

rommon #1> confreg
El ASA muestra el valor actual del registro de configuración, y le pregunta si desea cambiarlo:

Current Configuration Register: 0x00000041
Configuration Summary: 
  boot default image from Flash
  ignore system configuration
Do you wish to change this configuration? y/n [n]: y

(¿Quiere cambiar esta configuración?)


Paso 6 Grabe el valor actual del registro de configuración, para que pueda restaurar más tarde.

Paso 7 En el indicador, escriba S para cambiar el valor.

El ASA le pide nuevos valores.

Paso 8 Acepte los valores predeterminados de todos los ajustes. En el indicador, escriba Y.

Paso 9 Vuelva a cargar el ASA introduciendo el siguiente comando:

rommon #2> boot
Launching BootLoader...
Boot configuration file contains 1 entry.
Loading disk0:/asa800-226-k8.bin... Booting...Loading...

El ASA carga la configuración predeterminada en lugar de la configuración de inicio, ya configurada.

Paso 10 El acceso al modo EXEC privilegiado escribiendo el siguiente comando:

hostname> enable

Paso 11 Cuando se le solicite la contraseña, pulse enter.

La contraseña está en blanco.

Paso 12 Carga de la configuración de inicio introduciendo el siguiente comando:

hostname# copy startup-config running-config

Paso 13 Acceder al modo de configuración global introduciendo el siguiente comando:

hostname# configure terminal

Paso 14 Cambiar las contraseñas, según proceda, en la configuración predeterminada mediante la introducción de los siguientes comandos

hostname(config)# password password
hostname(config)# enable password password
hostname(config)# username name password password

Paso 15 Cargue la configuración por defecto introduciendo el siguiente comando:

hostname(config)# no config-register 

El valor del registro de configuración por defecto es 0x1.

Paso 16 Guarde la nueva contraseña para la configuración de inicio introduciendo el siguiente comando:

hostname(config)# copy running-config startup-config

miércoles, 9 de julio de 2014

Firewall

Siguiendo el tema de seguridad en redes, y es algo que realmente me apasiona y desearía seguir profundizando en este tema, en este y en las próximas publicaciones estaré hablando sobre el firewall y como realizar las configuraciones pertinentes con IPTABLES, pero entes de ondar mas en el tema quisiera hablarles un poco mas acerca de que es un firewall y las diferentes configuraciones en las que yo lo pueda encontrar en una empresa. 


Un firewall es un dispositivo que filtra el tráfico entre redes, como mínimo dos. El firewall puede ser un dispositivo físico o un software sobre un sistema operativo. En general debemos verlo como una caja con DOS o mas interfaces de red en la que se establecen una reglas de filtrado con las que se decide si una conexión determinada puede establecerse o no. Incluso puede ir más allá y realizar modificaciones sobre las comunicaciones, como el NAT.

Esa sería la definición genérica, hoy en dia un firewall es un hardware especifico con un sistema operativo o una IOS que filtra el tráfico TCP/UDP/ICMP/../IP y decide si un paquete pasa, se modifica, se convierte o se descarta. Para que un firewall entre redes funcione como tal debe tener al menos dos tarjetas de red. Esta sería la tipología clásica de un firewall:

Figura 1: esquema de firewall típico entre red local e internet
Esquema típico de firewall para proteger una red local conectada a internet a través de un router. El firewall debe colocarse entre el router (con un único cable) y la red local (conectado al switch o al hub de la LAN).

Dependiendo de las necesidades de cada red, puede ponerse uno o más firewalls para establecer distintos perímetros de seguridad en torno a un sistema. Es frecuente también que se necesite exponer algún servidor a internet (como es el caso de un servidor web, un servidor de correo, etc..), y en esos casos obviamente en principio se debe aceptar cualquier conexión a ellos. Lo que se recomienda en esa situación es situar ese servidor en lugar aparte de la red, el que denominamos DMZ o zona desmilitarizada. El firewall tiene entonces tres entradas:



Figura 2: esquema de firewall entre red local e internet con zona DMZ para servidores expuestos 

En la zona desmilitarizada se pueden poner tantos servidores como se necesiten. Con esta arquitectura, permitimos que el servidor sea accesible desde internet de tal forma que si es atacado y se gana acceso a él, la red local sigue protegida por el firewall. Esta estructura de DMZ puede hacerse también con un doble firewall (aunque como se ve se puede usar un único dispositivo con al menos tres interfaces de red). Sería un esquema como este:

Figura 3: esquema de firewall entre red local e internet con zona DMZ para servidores expuestos creado con doble firewall(perímetro)


Los firewalls se pueden usar en cualquier red. Es habitual tenerlos como protección de internet en las empresas, aunque ahí también suelen tener una doble función: controlar los accesos externos hacia dentro y también los internos hacia el exterior; esto último se hace con el firewall o frecuentemente con un proxy (que también utilizan reglas, aunque de más alto nivel).


También, en empresas de hosting con muchos servidores alojados lo normal es encontrarnos uno o más firewalls ya sea filtrando toda la instalación o parte de ella:


Figura 4: esquema de firewall entre redes, en la que solo se filtra y no se hace NAT

Sea el tipo de firewall que sea, generalmente no tendrá mas que un conjunto de reglas en las que se examina el origen y destino de los paquetes del protocolo tcp/ip. En cuanto a protocolos es probable que sean capaces de filtrar muchos tipos de ellos, no solo los tcp, también los udp, los icmp, los gre y otros protocolos vinculados a vpns. Este podría ser (en pseudo-lenguaje) un el conjunto de reglas de un firewall del primer gráfico:

Politica por defecto ACEPTAR.


Todo lo que venga de la red local al firewall ACEPTAR

Todo lo que venga de la ip de mi casa al puerto tcp 22 ACEPTAR

Todo lo que venga de la ip de casa del jefe al puerto tcp 1723 ACEPTAR
Todo lo que venga de hora.rediris.es al puerto udo 123 ACEPTAR
Todo lo que venga de la red local y vaya al exterior ENMASCARAR
Todo lo que venga del exterior al puerto tcp 1 al 1024 DENEGAR
Todo lo que venga del exterior al puerto tcp 3389 DENEGAR
Todo lo que venga del exterior al puerto udp 1 al 1024 DENEGAR


En definitiva lo que se hace es: 


- Habilita el acceso a puertos de administración a determinadas IPs privilegiadas

- Enmascara el trafico de la red local hacia el exterior (NAT, una petición de un pc de la LAN sale al exterior con la ip pública), para poder salir a internet

- Deniega el acceso desde el exterior a puertos de administración y a todo lo que este entre 1 y 1024.
Hay dos maneras de implementar un firewall:


1) Política por defecto ACEPTAR: en principio todo lo que entra y sale por el firewall se acepta y solo se denegará lo que se diga explícitamente.

2) Política por defecto DENEGAR: todo esta denegado, y solo se permitirá pasar por el firewall aquellos que se permita explícitamente.

Como es obvio imaginar, la primera política facilita mucho la gestión del firewall, ya que simplemente nos tenemos que preocupar de proteger aquellos puertos o direcciones que sabemos que nos interesa; el resto no importa tanto y se deja pasar. Por ejemplo, si queremos proteger una máquina linux, podemos hacer un netstat -ln (o netstat -an, o netstat -puta | grep LISTEN), saber que puertos están abiertos, poner reglas para proteger esos puertos y ya está. ¿Para qué vamos a proteger un puerto que realmente nunca se va a abrir?


El único problema que podemos tener es que no controlemos que es lo que esta abierto, o que en un momento dado se instale un software nuevo que abra un puerto determinado, o que no sepamos que determinados paquetes ICMP son peligrosos. Si la política por defecto es ACEPTAR y no se protege explícitamente, nos la estamos jugando un poco.

En cambio, si la política por defecto es DENEGAR, a no ser que lo permitamos explícitamente, el firewall se convierte en un auténtico MURO infranqueable. El problema es que es mucho más difícil preparar un firewall así, y hay que tener muy claro como funciona el sistema (sea iptables o el que sea) y que es lo que se tiene que abrir sin caer en la tentación de empezar a meter reglas super-permisivas. 


Esta configuración de firewall es la recomendada, aunque no es aconsejable usarla si no se domina mínimamente el sistema. Uno de los objetos principales de este documento es mostrar la forma de crear este tipo de firewalls.


IMPORTANTE


El orden en el que se ponen las reglas de firewall es determinante. Normalmente cuando hay que decidir que se hace con un paquete se va comparando con cada regla del firewall hasta que se encuentra una que le afecta (match), y se hace lo que dicte esta regla (aceptar o denegar); después de eso NO SE MIRARÁN MÁS REGLAS para ese paquete. ¿Cuál es el peligro? Si ponemos reglas muy permisivas entre las primeras del firewall, puede que las siguientes no se apliquen y no sirvan de nada.



martes, 8 de julio de 2014

Seguridad en Redes


En este post quisiera hablar de algo que me gusta mucho sobre las redes y es un tema muy importante para aquellos que deseen profundizar en el mundo de las redes, y aquellos que les gustan las telecomunicaciones, y es sobre el tema de la seguridad a nivel de redes, verificar cuales son los ataques a los que esta expuesta mi red y como solucionarlos o prevenirlos en el mejor de los casos. 

Un Ataque de Fuerza Bruta se caracteriza por una tentativa continuada de obtener acceso a un servicio del sistema (sshsmtphttp, etc.), intentando diversas combinaciones de nombre del usuario y su contraseña. Para llevar a cabo este ataque, el delantero puede usar un software que gestiona diversas combinaciones de caracteres o basarse en una lista de palabras (diccionario).
En ambos casos, un ataque de este género es un ávido consumidor de recursos y potencialmente bastante peligroso, especialmente si los usuarios del sistema no tienen un mínimo de cuidado al elegir sus contraseñas.
Otro género de Ataque de Fuerza Bruta es un Ataque de Negación de Servicio (DoS) o Ataque Distribuido de Negaciones de Servicio (DDoS), en donde el servidor es bombardeado con solicitudes a un determinado servicio en tal número que no las puede gestionar, consumiendo todos los recursos del sistema, o haciéndolo inestable.
Afortunadamente, esos ataques pueden ser detectados a tiempo, posibilitando una acción preventiva, como por ejemplo, ignorar o bloquear la dirección IP de origen del ataque.
Fail2Ban es una aplicación que analiza continuamente los ficheros log y bloquea las direcciones Internet de donde se hayan originado varias tentativas fallidas de acceso con contraseña inválida.
Fail2Ban es extremadamente eficaz en la prevención de ataques de fuerza bruta y ataques de negación de servicio (DoS).

Instalación

root@server:~# aptitude install fail2ban whois

Configuración

La configuración que resulta de la instalación de fail2ban activa el puerto ssh. Sin embargo, es posible monitorizar y proteger otros puertos.
La documentación de fail2ban aconseja que toda la configuración se realice en archivos con la extensión .local. Estos pueden ser creados copiando el archivo de la configuración original, con la extensión .conf:
root@server:~# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Toda la configuración será efectuada, a partir de este momento, en el archivo /etc/fail2ban/jail.local.
En una primera etapa, definimos cuáles son las direcciones que no estarán sujetas a restricciones (la dirección local y la red local), por cuánto tiempo estarán bloqueadas las direcciones de donde provengan las amenazas (1800 segundos (30 minutos)) y después de cuántas tentativas (3 tentativas permitidas). Esta configuración debe realizarse en el archivo /etc/fail2ban/jail.local:
/etc/fail2ban/jail.local
# [...]
DEFAULT]
[
"ignoreip" can be an IP address, a CIDR mask or a DNS host i
# gnoreip = 127.0.0.1 192.168.1.0/24 bantime = 1800
maxretry = 3
# [...]
También se define la dirección e-mail que recibirá las alertas:
/etc/fail2ban/jail.local
# [...]
#
estination email address used solely for the interpolations in #
# Djail.{conf,local} configuration files. destemail = root@localhost
# [...]
Luego, debe configurarse la acción a realizar cuando se detecta un posible ataque. En este caso, la dirección IP del atacante es bloqueada y u e-mail es enviado al administrador del sistema.
/etc/fail2ban/jail.local
# [...]
#
CTIONS #
# A
Default banning action (e.g. iptables, iptables-new, #
#
iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overriden globally or per
ultiport # [...] # Choose defa
# section within jail.local file banaction = iptables- mult action. To change, just override value of 'action' with the
ction_mwl, etc) in jail.local # globally (section [DEFAULT]) or per specific section action =
# interpolation to the chosen action shortcut (e.g. action_mw, a%(action_mwl)s
# [...]
Por último, se definen los parámetros del servicio que se pretende proteger. Para esto, se edita la sección JAILS del archivo /etc/fail2ban/jail.local:
/etc/fail2ban/jail.local
# [...]
#
AILS #
# J # [...]
led =
[ssh] ena b true
= ssh filter
port = sshd
/var/log/auth.log maxretry
logpath == 3
]
# [.. .
Ahora debe reiniciarse el servicio fail2ban:
root@server:~# /etc/init.d/fail2ban restart

Verificación

Durante cada (re)inicio del servicio fail2ban se envía un e-mail de notificación al administrador del sistema:
Subject: [Fail2Ban] ssh: started
Date: Wed, 15 May 2013 16:10:03 +0000
From: Fail2Ban <fail2ban@home.lan>
sh has been starte
To: root@localhost Hi, The jail sd successfully. Regards,
Fail2Ban
En de que sea necesaria una acción defensiva, el administrador también será notificado:
Subject: [Fail2Ban] ssh: banned 219.148.120.238
Date: Wed, 15 May 2013 17:15:59 +0000
root@localhost Hi, The IP 219.1
From: Fail2Ban <fail2ban@home.lan> To :48.120.238 has just been banned by Fail2Ban after
about 219.148.120.238:
3 attempts against ssh. Here are more information % [whois.apnic.net node-7]
http://www.apnic.net/db/dbcopyright.html inetnum: 219.148.0.0
% Whois data copyright terms - 219.148.159.255 netname: CHINANET-HE descr: CHINANET hebei province network
32 country: CN admin-c
descr: China Telecom descr: No.31,jingrong street descr: Beijing 100 0: CH93-AP tech-c: BR3-AP status: ALLOCATED NON-PORTABLE changed: ipadmin@north.cn.net 20060526
..] Lines containing IP:219.1
mnt-by: MAINT-CHINANET mnt-lower: MAINT-CHINANET-HE mnt-routes: MAINT-CHINANET-HE source: APNIC # [ .48.120.238 in /var/log/auth.log
: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=219.148.120.238 user=root May 15 17:07:26 server sshd[27043
May 15 17:07:25 server sshd[27043 ]]: Failed password for root from 219.148.120.238 port 59879 ssh2
ation failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=219.148.120.238 user=root May 15 17:07:31 server sshd[27046]: Failed password for root from
May 15 17:07:29 server sshd[27046]: pam_unix(sshd:auth): authenti c 219.148.120.238 port 60898 ssh2 May 15 17:07:34 server sshd[27048]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=219.148.120.238 user=root
May 15 17:07:36 server sshd[27048]: Failed password for root from 219.148.120.238 port 33737 ssh2 Regards,
Fail2Ban


Bonding

 Bonding

      Ethernet Bonding, gobernada por la norma IEEE 802.3ad con el título link aggregation es un término de la disciplina de las redes informáticas que describe el acoplamiento de dos o más canales de Ethernet en paralelo para producir un solo canal de mayor velocidad y/o aumentar la disponibilidad y la redundancia de ese canal.

Instalación

root@server~# aptitude install ifenslave

Configuración

Para crear la interfaz bond0 se debe cargar y configurar el módulo del kernel bonding. Este módulo se carga automáticamente después de la configuración; por ahora se debe cargar de forma manual:
root@server:~# modprobe bonding
Compruebe lo que se carga en realidad:
root@server:~# lsmod | grep bonding
bonding                65204  0
El siguiente paso es la parametrización de la nueva interfaz de red y eliminar (o comentar) toda referencia a las interfaces físicas utilizadas por él, que se realiza en el fichero /etc/network/interfaces:
/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
# allow-hotplug eth0
# iface eth0 inet dhcp

# Static IP address
# auto eth0
# iface eth0 inet static
#        address 192.168.1.100
#        netmask 255.255.255.0
#        network 192.168.1.0
#        broadcast 192.168.1.255
#        gateway 192.168.1.1

# Interface bonding
# Static IP address
auto bond0
iface bond0 inet static
        bond-slaves eth0 eth1
        bond-mode balance-rr
        bond-miimon 100
        bond-primary eth0 eth1

        address 192.168.1.100
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
El parámetro de modo de enlace bond-mode balance-rr indica que la interfaz funcionará en modo de balance-rr, en el que los datos se transmiten alternativamente por diferentes interfaces físicas que componen la nueva interfaz bond0.
Por último, reinicie los servicios de red:
root@server:~# /etc/init.d/networking restart

Verificación

El comando ifconfig le permite comprobar el estado de las interfaces de red:
root@server:~# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:30:1b:b0:6e:84
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::230:1bff:feb0:6e84/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:23339499 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11308048 errors:0 dropped:0 overruns:5 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:182934407 (174.4 MiB)  TX bytes:1008040228 (961.3 MiB)

eth0      Link encap:Ethernet  HWaddr 00:30:1b:b0:6e:84
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:12004063 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5654023 errors:0 dropped:0 overruns:5 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:597782690 (570.0 MiB)  TX bytes:519229722 (495.1 MiB)
          Interrupt:18 Base address:0xa000

eth1      Link encap:Ethernet  HWaddr 00:30:1b:b0:6e:84
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:11335436 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5654025 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3880119013 (3.6 GiB)  TX bytes:488810506 (466.1 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:193243 errors:0 dropped:0 overruns:0 frame:0
          TX packets:193243 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:31609190 (30.1 MiB)  TX bytes:31609190 (30.1 MiB)
La interfaz bond0 se asigna una dirección de Internet y las 3 interfaces (bond0eth0 y eth1) tienen la misma dirección física (“HWaddr 00:30:1 b: b0: 6e: 84”), para ser “visto” por el resto de la red como una sola.