Translate - ترجم - Traduire - 翻訳する

Mostrando entradas con la etiqueta Linovaxion. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linovaxion. Mostrar todas las entradas

sábado, 29 de septiembre de 2012

0 Crear Maquina Virtual con ZeroShell 2.0 RC1 usando KVM en Ubuntu 12.04

INTRODUCCIÓN

Buenas tardes, días o noches, he estado probando ZeroShell desde hace ya como 6 meses, aunque la verdad no he tenido tiempo para levantar todos los servicios que este trae, así que antes que nada, ¿Que es ZeroShell?, en su pagina, podemos encontrar lo siguiente:

ZeroShell es una distribución Linux para servidores y dispositivos integrados destinados a proporcionar los servicios de red principal de una LAN requiere. Está disponible en forma de Live CD o de imagen de Compact Flash y se puede configurar y administrar utilizando el navegador web. Las principales características de esta distribución de Linux para aplicaciones de red se enumeran a continuación.
Como es una lista bastante grande en la cual encontraran no solo que hace cada servicio, sino un tuto de como hacerlo funcionar, pueden verla en su pagina oficial http://www.zeroshell.net/.
Bien ahora yo lo uso, o mejor dicho he estado estudiando sobre el RADIUS, y el Portal Cautivo, así como el Firewall y como maneja IPTABLES, aunque lo mas maravilloso es como esta hecho, es decir el autor ha creado una maravilla de sistema operativo, ademas de ser super liviano tiene todas las características que puede desear un sistema administrador de conexiones, usuarios, validación de usuarios, trafico, e incluso puedes controlar por así decirlo el consumo de cada usuario =D. Bueno el caso es que ZeroShell solo venia con un unico sabor (LiveCD) y después de un tiempo ya venia como imagen para IDE, SATA, etc.
Ahora lo interesante, como es una imagen muy liviana, y ademas venia en LiveCD e IMG DISK, los cuales probé e hice virtuales en KVM, primero trabajaba como LiveCD ya que este te permite salvar tus perfiles, ya sea en una USB u otro medio de almacenamiento, esto gracias a su interfaz web la cual de dejaba exportar el archivo DB (DataBase). Sin embargo es algo tedioso estar montando un usb, o enviándolo vía SSH, así que me vi a la tarea de poder instalarlo en un disco de 2GB cuando mucho, así que opte por la imagen de disco, e hice una maquina virtual separando espacio en disco y copie la imagen de forma binaria(gunzip -c ZeroShell-1.0.beta1-CompactFlash512.1.img.gz >> /dev/hdx), esto funciona perfectamente, sin embargo aquí viene el problema, hay una nueva versión de ZeroShell, y eso de actualizar la anterior es algo que honestamente no recomiendo, si puedes exporta tu base de datos o busca como sacar tus configuraciones, así tendrás un sistema limpio y con todas tus configuraciones. La maravilla de la nueva versión es que ya viene lista para KVM, sin embargo aquí viene otro problema, este .tar nos proporciona el raw (zeroshell.img) y el descriptor de la imagen (zeroshell.xml) que bonito que bonito, Oh oh OH... el descriptor viene con unas configuraciones diferentes a como creamos el Host de Maquinas virtuales, es decir como tenemos preparada la maquina anfitrión para generar maquinas virtuales (ademas parece que no es la misma configuración dependiendo de el KVM + Ubuntu/Debian/CentOS, etc).

Solución

Buena lo manera de solucionar esto es comenzar desde cero, si usamos virsh para crear/manipular nuestras maquinas virtuales, entonces simplemente modificamos el archivo descriptor que anteriormente como es mi caso copie a "/etc/libvirt/qemu/", al igual que moví la imagen de disco virtual a la respectiva carpeta de imágenes "/var/lib/libvirt/images/", ahora bien, lo mas importante, o lo que creo que debemos considerar es!!!, primero checa que los archivos que descargamos tengan los permisos necesarios para cada carpeta, ya que puede que mientras traslademos, copiemos a usb, etc, incluso el usuario que los usa o mueve pueden alterar los permisos de dichos archivos, así que MUCHO OJO!!!.
Ahora simplemente modificamos el xml a nuestro antojo, como podrán ver, si tenemos otras maquinas virtuales notaran que el que creo esa imagen y descriptor de maquina tienen configuraciones muy diferentes, desde que programa usa para usar la emulación o virtualización, usa (AQUI PONDRE CONFIG), ademas de que en el dispositivo de red que declararon maneja puenteo y no es network, etc, ahora bien aquí viene lo divertido.  Modificamos el documento colocando los valores predeterminados, es decir ZeroShell es tan noble y tiene todos los drivers para dispositivos "virtio", "cirrus", etc, así que podemos dejar algunos de estos dispositivos para el arranque, ahora bien debemos tomar en cuenta donde esta nuestra imagen y la ruta en la que dice que se encuentra, modificamos la ruta si no este en la misma ruta, o no tienen el mismo nombre, después de hacer las modificaciones necesarios podemos levantar este dominio desde virsh con el comando:
$virsh
#define /ruta/nombrearchivo.xml
Si no tenemos errores en el archivo, este nos deberá crear dominio llamado ZeroShell o el nombre que nosotros le demos, ahora solo encendemos esta maquina(#start ZeroShell). Si todo esta correcto simplemente arrancara y podremos verla desde un visor de escritorios remotos o podremos ver que esta activa con el comando #list --all.
Y listo tendremos nuestra maquina virtualizada en KVM, sin problemas, ahora solo hay que configurar y cambiar la ip el password de Admin etc.
Espero esto les sirva ya que si somos nuevos es muy difícil saber que esta ocurriendo con KVM cuando no trabajamos con virt-manager ( aunque en mi opinión VIRSH es la mejor herramienta para la manipulación del host y sus guest.).

NOTAS

  • Unos cuantos datos, tratemos de usar el usuario con mas privilegios, ademas de tener a punta nuestro host de maquinas virtuales, y de ser necesario usar root para no tener problemas de permisos.
  • Si con virsh no logramos montar esta maquina virtual, podemos usar virt-install con los comandos genéricos para una maquina en Linux con kernel < 2.6.X, ahora bien simplemente le decimos que agarre un CD booteable, o un iso de cualquier otra distro (esto es nomas por requisito ya que después lo expulsaremos virtualmente y deberá bootear desde el disco duro), y obviamente le ponemos la ruta de donde se localiza nuestra imagen de disco.
  • Por ultimo también podemos usar virt-manager para crearla por si todo lo demás nos retorna un error; como es un asistonto, simplemente seguimos los pasos, y usamos la imagen de disco de ZeroShell la cual ya debemos tener en el directorio de imágenes. Este quizás nos de un error pero sera al tratar de acceder a la consola de la imagen la cual cambiara automáticamente gracias a virt-viewer que ya viene integrado al virt-manager, solo cancelamos la ventana que este en foco en ese momento y en la lista de maquinas virtuales veremos nuestra maquina lista para ser usada (obviamente como en el dato anterior, si abrimos el visor de escritorios veremos la imagen que usamos para crear esta maquina, solo hay que configurar que el boot sea por el disco duro y expulsamos el iso, en el siguiente arranque configurara la maquina para los dispositivos virtuales que le configuramos y listo.


Voalá a jugar con ZeroShell.

viernes, 24 de agosto de 2012

0 Un Wiki en 5 min con MediaWiki

Introducción

Buenas buenaaaaas!!!... hoy les traigo una instalación muy sencilla, pero antes que nada que es un Wiki?....
según la wikipedia un wiki es:

Un wiki o una wiki (del hawaiano wiki, 'rápido')1 es un sitio web cuyas páginas pueden ser editadas por múltiples voluntarios a través del navegador web. Los usuarios pueden crear, modificar o borrar un mismo texto que comparten. Los textos o «páginas wiki» tienen títulos únicos. Si se escribe el título de una «página wiki» en algún lugar del wiki entre dobles corchetes ([[...]]), esta palabra se convierte en un «enlace web» a la página wiki.
En una página sobre «alpinismo», por ejemplo, puede haber una palabra como «piolet» o «brújula» que esté marcada como palabra perteneciente a un título de página wiki. La mayor parte de las implementaciones de wikis indican en el URL de la página el propio título de la página wiki (en Wikipedia ocurre así: http://es.wikipedia.org/wiki/Alpinismo), facilitando el uso y comprensibilidad del link fuera del propio sitio web. Además, esto permite formar en muchas ocasiones una coherencia terminológica, generando una ordenación natural del contenido.
La aplicación de mayor peso y a la que le debe su mayor fama hasta el momento ha sido la creación de enciclopedias colectivas, género al que pertenece la Wikipedia. Existen muchas otras aplicaciones más cercanas a la coordinación de informaciones y acciones, o la puesta en común de conocimientos o textos dentro de grupos.
La mayor parte de los wikis actuales conservan un historial de cambios que permite recuperar fácilmente cualquier estado anterior y ver qué usuario hizo cada cambio, lo cual facilita enormemente el mantenimiento conjunto y el control de usuarios nocivos. Habitualmente, sin necesidad de una revisión previa, se actualiza el contenido que muestra la página wiki editada.

Instalación 

 Así o mas claro!!... bueno la instalación hoy en día es muy sencilla, en el caso de Debian Squeeze simplemente introducimos :
                          $ apt-get install mediawiki
Esto nos instalara todas las dependencias necesarias, claro hay una forma de hacerla a un poco mas completa y a mano, es decir instalar todas las dependencias a manita (php, apache, mysql etc), lo cual hoy en día creo que es innecesario, claro hay unas distribuciones en las cuales hacer una instalación de algún programa o paquete, requiere mas que un comando, en esos casos debemos hacer un backport (mostrare un poco mas de esto en post posteriores con un CCTV llamado Zoneminder). Así de fácil, como ven les tomara mas tiempo leer este post que instalar el programa.

Configuración

Con eso el programa ya esta instalado pero aun no es posible accesible desde una ruta en internet, o en este caso desde un navegador, para eso introducimos lo siguiente:
                       $ ln -s /var/lib/mediawiki /var/www
Con esto creamos una liga simbólica la cual en este caso decimos que a mediawiki tendremos acceso si tecleamos var/www, ojo, si ya tenemos otros servicios que usen apache tendremos varias ligas hacia var/www esto no debe afectar, si esto pasa debemos verificar todas las aplicaciones las cuales tengan ligas desde var/www. Ahora solo debemos mover la carpeta mediawiki a var/www que es donde se localizan nuestras paginas web. 
                       $ mv /var/www/mediawiki /var/www/wiki
Como indica el comando movemos la carpeta mediawiki a la misma carpeta donde están nuestras paginas web, como pueden ver es un poco ambiguo, o por así decirlo recursivo, sin embargo es necesario, ahora en /var/www/wiki podemos poner el nombre que queramos simplemente cambiamos wiki por miwiki etc =D.

Ahora intentamos acceder desde el navegador a nuestro Wiki con http://127.0.0.1/miwiki y seguimos las instrucciones que nos den ahí.

Con esto ya tenemos listo un wiki para lo que necesitemos =D


Notas:

  1. En mi caso tuve unos problemas con permisos ya que al hacer esas ligas se movieron algunos de las ya establecidas, simplemente hay que verificar los permisos para esa carpeta, cambiarlos a 764 esos uso yo en lo particular creo que son los que requiero en mi Wiki (chmod 764 /ruta)
  2. Yo ya tenia configurado mi mysql así que en el proceso de instalación quizás les aparezca una ventana gráfica (en terminal) que les dirá crear nuevo usuario root, este lo requerirán en la configuración del wiki así que NUNCA lo pierdan, deben otorgarla en la configuración de la base de datos del Wiki
  3. Este tutorial lo podrán encontrar en  http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_GNU/Linux ahí encontraran incluso como instalarlo a manita como gente grande =D.

8 Squid3 en Ubuntu/Debian como Proxy transparente

Introducción

Squid3 es una herramienta de filtrado de contenido(Proxy), la cual puede leer las cabeceras de ciertos protocolos dentro de las tramas de una conexión. Antes de llevar acabo esta instalación, debemos cerciorarnos de donde sera instalado, eso es HARDWARE ya que squid3 esta diseñado para trabajar con dos tarjetas de red (ethX, ethX:0), en el caso de no tenerlas, debemos hacer una subinterface de la tarjeta que se tenga en ese momento (lo inverso a suma de puertos [Bonding]). 

Instalación

Debemos asegurarnos de haber hecho una actualización de nuestras maquinas (Linux) con el siguiente comando:
                           
                   $ sudo apt-get update && upgrade
Ahora ya que el sistema tiene la lista de repositorios mas recientes, instalamos “Squid3” (ojo es la nueva versión de Squid, a diferencia de Squid2.9Estable este incluye mas opciones y herramientas para administración del mismo) con el siguiente comando:

                   $ sudo apt-get install squid3
Esto instalara squid3 en nuestras maquinas, ahora lo importante se encuentra en /etc/squid3/ la cual es la carpeta donde se encuentra un archivo de configuración (“squid.conf”), del cual haremos un respaldo en donde queramos, recomiendo el escritorio para rápido acceso ya que incluye todo un manual completo de uso. Ahora después de hecho el respaldo, eliminamos el fichero o modificamos para aquellos temerosos que no viven al limite =D. 

Configuración

Ahora creamos un nuevo archivo de configuración o modificamos el squid.conf y agregamos las lineas que hagan falta obviamente cambiando mis IP por las suyas, lo llenamos con lo siguiente:
        
##Declaracion de Reglas del Squid
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 22               # SSH
acl Safe_ports port 80               # http
acl Safe_ports port 21               # ftp
acl Safe_ports port 443 563 1863 # https
acl Safe_ports port 70               # gopher
acl Safe_ports port 210              # wais
acl Safe_ports port 1025-6553    # unregistered ports
acl Safe_ports port 280              # http-mgmt
acl Safe_ports port 488              # gss-http
acl Safe_ports port 591              # filemaker
acl Safe_ports port 777              # multiling http
acl CONNECT method CONNECT

##Aqui se aplican/ejecutan los parametros definidos en las reglas
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
always_direct allow all         #Esta linea es una caracteristica nueva de squid3
acl hora time MTWHF 10:00-22:00 # horario en el que permite el acceso a internet
acl redLan src 192.168.1.0/27 # acceso de red
acl paginas dstdomain .youtube.com .facebook.com #se definen paginas o listas
#Empezamos con las politicas de acceso
http_access deny !hora   #negamos la hora es decir decimos que nadie se puede conectar en un horario diferente al definido
http_access deny paginas  #El proxy puede bloquear paginas por dominio o ip, aqui se dice que bloqueara lo definido en "paginas"
http_access allow redLan #Aqui definimos que nuestra lan tendra acceso a internet
http_access allow localhost #nos permite que el usuario local pueda trabajar localmente acceso a internet ssh etc
http_access deny all #squid trae unas variables definidas, all es una de ellas y se entiende que lo que no declaramos sera bloqueado.

##Definicion de paginas que no queremos guardar cache
##  ejemplo:
##     hierarchy_stoplist cgi-bin ? hotmail gmail yahoo escuela.factor.com.mx
hierarchy_stoplist cgi-bin ?

##Configuracion estandar para la cache
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:                1440    20%     10080
refresh_pattern ^gopher:     1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0  0%      0
refresh_pattern .            0       20%     4320

##Configuraciones para que sea Transparente, Tenga dominio, las paginas
##de error esten en español, acepte el puerto 3130 y se configura la cache
http_port 3128 transparent #aqui se indica que el proxy sera trasparente y estara escuchando en el puerto 3128
#icp_port 3130
visible_hostname VM_Proxy #el nombre de nuestro proxy
cache_dir ufs /var/spool/squid3 10240 16 256   #Esto nos dice que constara de 10GB en 16 directorios con 256 subdirectorios   
error_directory /usr/share/squid3/errors/Spanish #Esto indica que idioma queremos usar en las paginas de bloqueo u error

  Como podemos ver en el se encuentran declarados puertos, paginas e incluso como debe estar configurado el cache, ahora para que esta configuración tenga efecto debemos reiniciar el servicio para eso tenemos de 3 sopas:

                $ sudo squid3 -k reconfigure
                $ sudo /etc/init.d/squid3 restart
                $ sudo service squid3 restart
Esto reiniciara el servicio, pero como la configuración para el squid3 es TRANSPARENTE debemos modificar unas cosas en el IPTABLES de Linux, el cual nos permitirá además de dar acceso, controlar las interfaces de entrada, salida e incluso podríamos dejar que el squid3 solo bloquee lo que el IPTABLES filtre (es decir solo sera cache, si queremos el IPTABLES puede ser un Firewall y ademas permitir acceso solo a lo que querramos). Para eso se utilizara el siguiente script, el cual consiste en solo direccionar (NO BLOQUEAR) los puertos de Http hacia el squid3, solo los protocolos reconocidos por el squid3 que se encuentran declarados en el “squid.conf”. El script nos queda de esta manera (ojo se recomienda usar el script con una configuración de IPTABLES básica es decir que no tenga configuraciones anteriores ya que el script reiniciara algunas tablas a tablas básicas para que el script funcione adecuadamente):

#!/bin/sh

# Squid server IP
SQUID_SERVER="172.16.0.12" #ip de la interfaz donde escuchara nuestro proxy

# Interface connected to Internet
INTERNET="eth0"

# Address connected to LAN
LOCAL="192.168.1.0/27" #como declaramos en squid.conf es el rango de ips a escuchar

# Squid port
SQUID_PORT="3128" #el puerto en que escucha el proxy (para redirigir el trafico a el)

Limpiamos firewall anterior
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

# Se cargan modulos de IPTABLES para NAT e "IP conntrack support"
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# For win xp ftp client
#modprobe ip_nat_ftp

# Habilitamos forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Configuramos una politica de filtrado por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

# Permitimos el acceso ilimitado al loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Permitimos UDP, DNS y Passive FTP
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s $LOCAL -m state --state ESTABLISHED,RELATED -j ACCEPT

# Esta es la mas importante ya que prepara este systema como router para la LAN
iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE
iptables -A FORWARD -s $LOCAL -j ACCEPT

# Permitimos que la LAN tenga acceso ilimitado
iptables -A INPUT -s $LOCAL -j ACCEPT
iptables -A OUTPUT -s $LOCAL -j ACCEPT

# Redireccionamos (DNAT) las peticiones del puerto 80 de la LAN al squid por el puerto 3128 ($SQUID_PORT) aka transparent proxy
iptables -t nat -A PREROUTING -s $LOCAL -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
#OJOOOO!!!! el squid3 NO repito NO hace cache de HTTPS (443) en las notas dire por que
#iptables -t nat -A PREROUTING -s $LOCAL -p tcp --dport 443 -j DNAT --to $SQUID_SERVER:$SQUID_PORT

# si son del mismo proxy
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT
#iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 443 -j REDIRECT --to-port $SQUID_PORT

#abrimos los demas puertos desde internet a la lan
iptables -A INPUT -i $INTERNET -j ACCEPT
iptables -A OUTPUT -o $INTERNET  -j ACCEPT

# DROP lo demas y lo agregamos al LOG
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP


Ahora guardamos el script con el nombre que queramos, y lo ejecutamos con el siguiente comando:

                   $ sudo sh squid3script.sh
Con esto ya se puede usar el squid3 como proxy transparente, es decir simplemente lo ponemos antes de nuestros routers, y dejamos que el trafico pase por ellos, en pocas palabras este sera el gateway de nuestra lan.


       Notas:
           Se debe considerar que por una interfaz entrara el trafico, así que esta
                   NO debe tener gatway, o puerta de enlace predeterminada a internet.
                   La otra interfaz debe estar configurada para permitir el acceso a internet
                   y evitar conexiones provenientes de ella (considerando que no existan IDPS
                   u otro método de verificación y protección).
                   Se debe tener cuidado al agregar mas reglas a la tabla IPTABLE, ya que NO
                   sobreescribe las anteriores. (después posteare una configuración para por así decirlo
                   mejorar el rendimiento de nuestro Proxy ya que genera un Firewall básico.
                   Squid3 no maneja HTTPS el protocolo no esta soportado en la compilacion,
                   sin embargo se puede agregar la bandera al momento de la compilacion para que 
                   use SSL y otras cosillas por ahí con las cuales por cuestiones legales no podemos usar
                   en la institución donde logre esto. Ahora si es posible encontrar estos paquetes en la red.
                   Tener sumo cuidado en el formato en el squid.conf ya que si no se lleva el
                   orden adecuado, este mostrara errores.

martes, 17 de julio de 2012

0 Problemas con el blog

Buenos días, tardes o noches, hoy paso para corregir algunos problemas que puedan existir con el blog ya que veo en ciertos dispositivos y laptops la pagina carga con problemas y sin estilos, por mas que agrego las etiquetas HTML, estos no son reconocidos, así que regrese a una vista básica del blog, y en futuros días debería estar ya listo, ademas de poner nuevas entradas como ZoneMinder en Linux, con todos los problemas que pudiésemos tener, ya que como dije en la entrada anterior, uno se harta de los tutos o guías en Internet donde todo te sale bien en un ambiente controlado, o de laboratorio, y después no nos resulta o tenemos errores en el cual el autor no tiene solución o muchas veces nunca responde. Bueno regresando al tema, hoy solo pasare a arreglar el post anterior y debería estar ya mas que legible, lamento los problemas que pudieron tener al internar leerlo, y les pido una disculpa por eso.

hasta pronto =D.
 

Just Linovaxion Copyright © 2013 - |- Template created by O Pregador - |- Powered by Blogger Templates