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

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.

 

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