miércoles, 3 de octubre de 2012

Firewall

La siguiente entrada abordará el tema de seguridad perimetral con firewalls. Los firewalls también 
conocidos como cortafuegos pueden ser dispositivos físicos o software que cumple funciones 
 
de filtrado de paquetes en un computador (firewall personal) o en una red (firewall de red)
 

Contenido:

Actividad 1: Firewall común en un enrutador cisco.
Actividad 2: Firewall común en un enrutador cisco, con una LAN y zona DMZ con servicios.
Actividad 3: Firewall común en un servidor Linux/BSD/Solaris, con zona LAN y DMZ.


Actividad: 1

Establecer dos zonas una llamada la LAN y la otra INTERNET y crear reglas de acceso en el firewall que permitan el paso de tráfico desde INTERNET hacia la LAN solo para 3 protocolos y 5 puertos, por ejemplo: FTP, HTTP, SMTP. El resto de los puertos y servicios deben estar denegados. Generalmente la comunicación desde la LAN es transparente así que el enrutador debe permitir la salida de paquetes desde la LAN.

Simularemos este entorno. (Cisco Packet Tracer)

Añadir leyenda



Letra Verde no es de la Configuracion. ↓↓ Config de Firewall en Router Cisco ↓↓
Firewall#sh run
Building configuration...
Current configuration : 1369 bytes
!
version 12.2
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption

!
hostname Firewall
!
ip dhcp excluded-address 192.168.10.1    Excluimos las IPs del Gateway y servidor 
ip dhcp excluded-address 192.168.10.4
!
ip dhcp pool andreydhcp                 DHCP Para nuestra Lan desde el Router Cisco
 network 192.168.10.0 255.255.255.0
 default-router 192.168.10.1
!
!
interface FastEthernet0/0                Interfaz Publica
 ip address 200.10.10.2 255.255.255.252    IP Publica
 ip nat outside                            Aplicamos ip nat Outside <salida>
 duplex auto
 speed auto
!
interface FastEthernet1/0              Intefaz de Entrada hacia nuestra Lan
 ip address 192.168.10.1 255.255.255.0       IP Local 
 ip access-group 100 out               Aplicamos la lista de acceso 100 de Salida
 ip nat inside                                Aplicamos Nat de Entrada
 duplex auto
 speed auto
!
ip nat pool SalidaLan 200.10.10.2 200.10.10.1 netmask 255.255.255.252  Pool de direcciones Publicas de salida o ISP
ip nat inside source list 1 pool SalidaLan overload    Nat de entrada aplicamos lista de acceso estandar  1 pool con nombre SalidaLan
ip nat inside source static 192.168.10.4 200.10.10.1  Nat de entrada de fuente estatica hacia el servidor que tenemos en nuestra LAN
ip classless
ip route 0.0.0.0 0.0.0.0 200.10.10.1   Ruta por defecto con proximo salto.
!
access-list 1 permit 192.168.10.0 0.0.0.255   Lista de acceso estandar a nuestra LAN
access-list 100 permit icmp any any                ACL permite protocolo icmp
access-list 100 permit tcp any any eq www      ACL permite protocolo tcp cualquier hosts solo para web o puerto 80
access-list 100 permit tcp any any eq telnet    ACL permite protocolo tcp cualquier hosts solo para telnet o puerto 23
access-list 100 permit udp any any eq tftp    ACL permite protocolo udp cualquier hosts solo para tftp o puerto 69
access-list 100 deny tcp any any neq smtp     ACL deniega protocolo tcp cualquier hosts excepto para smtp o puerto 25
access-list 100 deny udp any any neq domain   ACL deniega protocolo udp cualquier hosts excepto para domain <dns> o puerto 53
!
line con 0
line vty 0 4
 login
!
end



 Actividad 2 : Router
Definir 3 zonas en el firewall INTERNET, LAN y DMZ. Se asumirá que existen 2 servicios de red en la DMZ y 1 servicio privados en la LAN. Se deben establecer reglas de acceso que le permita a
los usuarios de la LAN salir a INTERNET sin problemas, pero el tráfico que proviene de INTERNET debe ser filtrado adecuadamente para que solo los servicios en la DMZ sean accesibles.



Simularemos este entorno. (Cisco Packet Tracer)



Letra Verde no es de la Configuracion. ↓↓ Config de Firewall en Router Cisco ↓↓ 


Firewall#sh run
Building configuration...
Current configuration : 1240 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Firewall
!
interface FastEthernet0/0                Interfaz Lan
 ip address 192.168.10.1 255.255.255.0
 ip access-group 100 in                  Aplicas ACL dinámica in (entrada) 
 ip nat inside                                 Aplicas NAT entrada
 duplex auto
 speed auto
!
interface FastEthernet0/1               Interfaz Publica      
 ip address 180.18.18.1 255.255.255.252
 ip nat outside                               Aplicas Nat de Salida
 duplex auto
 speed auto
!
interface Ethernet0/0/0                   Interfaz servidor Publico
 ip address 192.168.20.1 255.255.255.0
 ip access-group 101 in                 Aplicas ACL dinamica 101 in (entrada)
 ip access-group 102 out              Aplicas ACL dinamica 102 out (salida)
 ip nat inside                                Aplicas Nat entrada
 duplex auto
 speed auto
!
interface Vlan1
 no ip address
 shutdown
!
ip nat pool salida 180.18.18.1 180.18.18.1 netmask 255.255.255.252  Nat Pool llamada salida de IP Publicas  (este caso solo 1)
ip nat inside source list 2 pool salida overload   Nat entrada fuente ACL estandar 2 con la pool llamada salida overload(sobrecargar)
ip nat inside source static 192.168.20.2 180.18.18.1 Nat entrada fuente estática de que dirección y con que dirección (local-publica)
ip classless
ip route 0.0.0.0 0.0.0.0 180.18.18.2  Ruta por Defecto
!
access-list 2 permit 192.168.10.0 0.0.0.255   ACL estatica <numero estaticas 1-99> permitir a ip con mascara.
access-list 100 permit tcp 192.168.10.0 0.0.0.255 any eq www  ACL dinámica 100 permitir de red(192.168.10.0) tcp todo solo para puerto www o 80
access-list 100 permit udp 192.168.10.0 0.0.0.255 any eq domain  ACL dinámica 100 permitir udp de la red todo solo para dns(domain) o puerto 53 
access-list 101 permit tcp any any gt 1024  ACL dinámica 101 permitir tcp todo todo gt(los paquete coincidan con un puerto mayor)  al 1024
access-list 101 permit udp any any gt 1024   ACL dinámica 101 permitir udp todo todo  gt(los paquete coincidan con un puerto mayor)  al 1024
access-list 102 permit tcp any any eq www   ACL dinámica 101 permitir tcp todo todo solo para puerto www o puerto 80
access-list 102 permit udp any any eq domain ACL dinámica 101 permitir udp todo todo solo para puerto domain o puerto 53
!
line con 0
line vty 0 4
 login
!
end


 Actividad 3 : Servidor
Definir 3 zonas en el firewall INTERNET, LAN y DMZ. Se asumirá que existe 1 servicio de red en la DMZ y 1 servicio privados en la LAN. Se deben establecer reglas de acceso que le permita a
los usuarios de la LAN salir a INTERNET sin problemas, pero el tráfico que proviene de INTERNET debe ser filtrado adecuadamente para que solo los servicios en la DMZ sean accesibles.


Estrategia:
Intente primero configurar las interfaces de red y aplicar el NAT básico para que garantice que los
paquetes pasan de un lado al otro de las interfaces sin problemas.
Una vez verifique que puede conectarse de un lado al otro, cree reglas de filtrado básicas entre
dos interfaces (no intente con las 3 interfaces al tiempo), primero garantice que puede diferenciar y
filtrar el tráfico entre 2 interfaces antes de intentar configurar las 3 tarjetas.

→ La política de diseño de este Firewall es DROP BY DEFAULT, en este modo el firewall no dejará pasar nada a través de sus interfaces que no este explicita mente permitido.




Este es una Servidor en Debian, Y para implementar el Firewall solo basta con crear un Archivo con un nombre, este caso lo llamaremos firewall, para aplicarlo o ejecutarlo damos el comando ./firewall
Ahora veremos el archivo de configuración con su descripción de la acción o regla de firewall.


nano: /etc/firewall

##Limpiar toda la configuracion del iptables 

iptables -X
iptables -F
iptables -Z

#Se deniega todo y despues se daran los permisos

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Permitir las reglas del nat
iptables -t nat -P PREROUTING  ACCEPT
iptables -t nat -P POSTROUTING  ACCEPT


#permita dar ping al local host
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#permitir la red de servidor DMZ
iptables -A INPUT -s 192.168.22.2 -j ACCEPT
iptables -A OUTPUT -d 192.168.22.2 -j ACCEPT

#PERMITIMOS LOS SERVICIOS COMO: ftp, ssh, dns.

#Permite la conexión con ssh
iptables -A FORWARD -i eth0 -p tcp --sport 22 -o eth1 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --sport 1024:65535 -o eth0 --dport 22 -j ACCEPT


#Permite la conexión de www
iptables -A FORWARD -i eth0 -p tcp --sport 80 -o eth1 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --sport 1024:65535 -o eth0 --dport 80 -j ACCEPT


#Permite la conexión del DNS por tcp
iptables -A FORWARD -i eth0 -p tcp --sport 53 -o eth1 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --sport 1024:65535 -o eth0 --dport 53 -j ACCEPT


#Permite la conexión del DNS por udp
iptables -A FORWARD -i eth0 -p udp --sport 53 -o eth1 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth1 -p udp --sport 1024:65535 -o eth0 --dport 53 -j ACCEPT


#Regla para el nat
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.22.0/24 -j MASQUERADE

#Activar el reenviador
echo 1 > /proc/sys/net/ipv4/ip_forward


#Prerouting para entrada a nuestro servidor 
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.22.2:80
iptables -t nat -A PREROUTING -s 192.168.50.50 -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.22.2:80


iptables -A INPUT -s 192.168.50.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.50.0/24 -j ACCEPT

#Reenviamos y aceptamos los paquetes del puerto 80
iptables -A FORWARD -i eth0 -p tcp --dport 80 -o eth1 --sport 1024:65535 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 1024:65535 -o eth0 --sport 80 -j ACCEPT




Con esto estara  listo un buen Firewall en un servidor linux.









Instalacion de Elastix


"Elastix implementa gran parte de su funcionalidad sobre cuatro programas de software muy importantes como son AsteriskHylafaxOpenfire y Postfix. Estos brindan las funciones de PBXFax,Mensajería Instantánea y Correo electrónico respectivamente. Elastix corre sobre CentOS como sistema operativo y actualmente su versión mas estable es Elastix 2.2" by wikipedia

En este Blog instalaremos Elastix 2.3.0 en una maquina Virtual, accediendo a este por web desde una maquina real.


Si utilizamos Virtualbox le recomiendo que cuando cree la maquina Linux con distribución CentOS redhat le cambiamos la red de Nat por Adaptador puente. La ram puede ser según ser igual o mayor de 365mb y el almacenamiento puede ser de 8gb para la practica. 



Comenzamos.
Al iniciar nos presentara esta pantalla donde le daremos Enter





Esperamos que cargue y lea sus archivos.



Escogemos el idioma.





Opciones para la diseño de el almacenamiento del disco duro del elastix.




Nos muestra como quedo el diseño y distribución del espacio del disco duro.




Configuramos la Tarjeta de Red activando con la tecla espacio el soporte IPV4, también se puede el soporte IPV6 pero en este caso no lo utilizaremos.





 La configuración IPV6 si queremos Dinámica dhcp o estática, según sea nuestra topologia de red.




Buscamos la Zona Horaria de nuestro País.





Contraseña de root o admin para cuando vamos a acceder a elastix.




Esperamos las dependencias.



Esperamos la instalación.






Sigue su instalación esperamos.




Esta finalizando se puede decir que el 1er paso de 2 de instalación y automáticamente muestra que la maquina se reiniciara




Cuando reinicia la maquina empieza a comprobar que todo este funcionando bien.




Pedirá password para MYSQL, que es un paquete muy importante para elastix.




Nos pide repetirla para confirmar que sea la misma.




Y seguirá comprobando que todo marche bien. Vemos que todo es OK. Aunque hay un servicio que nos presentara fallo pero es por defecto no se asusten.




 Ahora  termina y nos tendremos que logiar con Root y la contraseña que previamente le configuramos al principio de la instalación.




Ya que la maquina de Elastix no presentara interfaz gráfica sino que sera como cualquier terminal linux (centos). Y ese sera su estado normal y podemos probar que si esta corriendo el servicio.
Ahora necesitamos saber la IP de nuestro servidor para poder acceder por la web, Ejecutamos ifconfig para mirar.




Ahora desde un Navegador web <chrome> de cualquier una maquina que este dentro de la misma red del servidor que instalamos, escribimos la IP que tiene el servidor de Elastix.




Aquí nos logiaremos con el administrador: admin  y la contraseña es la que configuramos en el servidor.



Listo todo ha salido muy bien y ahora podremos configurar nuestro servidor VOIP Elastix.































Instalar IIS + PHP + MYSQL + APP + Servidor DNS en Windows Server 2008 R2

Instalar IIS + PHP + MYSQL + APP + Servidor DNS en Windows Server 2008 R2 Voy a instalar estos servicios y paquetes, con el fin de aprender a instalarlos y a que cuando escriba en nuestro navegador el dominio en este caso trabajare con el dominio de mi compañero andreycaro.com, automáticamente abra la aplicación que instalare que sera joomla. Implementaremos la web platform installer que nos ahorra tiempo y no hace mas fácil la instalación de los servicios y paquetes que necesitamos. La descargamos de la Pagina Oficial de Microsoft. Buscamos y agregamos los paquetes que necesitamos. IIS recomendado, php, mysql 5.1, joomla 1.6
Una vez seleccionados los paquetes damos clic en install y esperamos a que instalen.
Una vez instalados vamos a configurar y a probar que todo funcione como quiero. probamos el IIS entrando al navegador y digitamos : 127.0.0.1
Para el DNS en este caso NO utilizaremos el de windows server, sino que descargaremos el SIMPLE DNS PLUS de la pagina oficial.. ir a link de descarga. Descargamos e instalamos y vamos a crear nuestro dominio en la pestaña Records
Zone Name: Digitamos nuestro nombre de dominio que queremos, en este caso yo coloque andreycaro.com Web Server IP: Direccion ip de nuestra maquina que sera el mismo servidor.
Ahora lo que quiero lograr es que mi dominio escrito en el navegador me lleve a la aplicacion joomla. Entonces Clic Inicio > Herramientas administrativas > Administrador de internet information services (ISS)
Damos clic en el nombre de nuestro equipo y en sites damos clic derecho y agregamos sitio web
Llenaremos los con los datos correspondientes: Site Name: Nombre del sitio web Physical Path: Ruta donde se encuentra nuestra aplicacion, en este caso joomla. Type: http ip Address: ip nuestro equipo Port: 80 Host Name: Nombre del dominio
Vamos a la configuración de tarjeta de red y solo modificamos el dnsy por supuesto colocamos la ip de nuestro servidor que es la misma ip que nuestro equipo.
Ahora por ultimo vamos al navegador y tecleamos nuestro dominio (andreycaro.com) y veremos los resultados de las previas configuraciones y hemos conseguido el propósito: Al escribir nuestro dominio en el navegador deberá abrirse la aplicación.