jump to navigation

Aumentar la swap en GNU/Linux 14 noviembre, 2009

Posted by Fredy Ruiz Ondre in Utilitarios.
add a comment

En algunas ocasiones es necesario que nuestro GNU/Linux tenga mas swap, ya sea porque tiene mas aplicaciones o lo que fuese, entonces lo que podemos hacer es aumentar el tamaño de la swap, antes de empezar comprobamos cuanto de swap tenemos con el siguiente comando:

# grep SwapTotal /proc/meminfo
SwapTotal:     2096440 kB

Ahora empezemos a asiganrle mas swap, para ello creamos un archivo con el comnado dd, dicho archivo actuara como swap, claro seria recomendable tener una particion, pero bueno asumimos que ya no tenemos mas particiones.

# dd if=/dev/zero of=/mnt/swap_extra bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2,1 GB) copied, 25,3026 seconds, 84,9 MB/s

Donde:

  • count -> define el tamaño del fichero
  • bs -> define el tamaño del bloque

Hemos creado un archivo de 2GB dentro del directorio /mnt, ahora modificamos los permisos

# chmod 600 /mnt/swap_extra

Formateamos el fichero swap_extra para que actue como swap

# mkswap /mnt/swap_extra
Configurando espacio de intercambio versión 1, tamaño = 2147479 kB

Ahora solo nos queda activarlo

# swapon /mnt/swap_extra

SI quisiremoas desactivarlo simplemente ejecutamos

# swapoff /mnt/swap_extra

Ahora debemos editar el fstab para que cuando la maquina se inicie carge la swap adicional, para ello agregamos  al final del archivo lo siguiente:

/mnt/swap_extra         none                    swap    sw              0 0

Con esto ya tenemos 2GB mas de swap … y lo verificamos con el comando siguiente

# grep SwapTotal /proc/meminfo
SwapTotal:     4193584 kB

Anuncios

Sincronizacion de archivos con unison 10 noviembre, 2009

Posted by Fredy Ruiz Ondre in Utilitarios.
add a comment

Unison es buena herramienta que nos permite mantener sincronizados los archivos y directorios, esto tanto en GNU/Linux y Windows … evidentemente nosotros lo usaremos en nuestro GNU/Linux en este caso lo configuraremos en CentOS 5.

Instalamos la herramienta, para ello instalamos desde los repositorios de rpmforge

# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# yum -y install unison

Ahora solo queda defirnir las rutas de los directorios que queremos mantener sincronizados, ya sea localmente o con otro servidor, a modo de ejemplo mantendre sincronizado el directorio /var/ mi servidor con otro cuya ip es 172.16.0.3, entonces edito el archivo default.prf.

# cd /root/
# vim .unison/default.prf

auto = true
batch = true
# directorio de origen
root = /var
# directorio de equipo de destino
root = ssh://172.16.0.3//var
# directorios a sincronizar
path = prueba

El directorio prueba se encuentra dentro de /var/ guardamos los cambios y ejecutamos unison, nos pedira password para acceder al otro servidore, pero podemos configurar siguiendo estos pasos de tal manera que accedamos al otro servidor directamente.

# unison

Nota: Se debe tener instalado el unison en ambos servidores

Virtual Hosting con Apache2 4 noviembre, 2009

Posted by Fredy Ruiz Ondre in Apache2.
add a comment

Esta es una configuracion de un servidor web con Apache2 que maneja multiples dominios en el mismo servidor, esto es conocido como virtual hosting basado en nombres. Esta configuracion esta hecha en SLES 10 SP2

Instalamos el servidor Apache2 y creamos los directorios donde estaran ambos sitios web.

# yast -i apache2
# mkdir /srv/www/web1
# mkdir /srv/www/web2

Despues de crearar ambos directorios y los respectivos html, empezamos a configurar el apache,  para ello editamos el archivo listen.conf

# vim /etc/apache2/listen.conf


NameVirtualHost *:80

Ahora nos ubicamos en el directorio /etc/apache2/vhosts.d/ y editamos las .conf para ambos sitios web.

# cd /etc/apache2/vhosts.d/
# cp vhost.template web1.conf
# cp vhost.template web2.conf

La configuracion minima por cada pagina debe ser la siguiente:

# vim web1.conf

<VirtualHost *:80>
ServerAdmin fruiz@grupopalomino.com.pe
ServerName http://www.grupopalomino.com.pe
DocumentRoot /srv/www/web1
ErrorLog /var/log/apache2/www.dominio1.com-error_log
CustomLog /var/log/apache2/www.dominio1.com-access_log combined
<Directory “/srv/www/web1”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Del mismo modo la pagina web2  …

Listo ahora iniciamos el servicio apache

# rcapache2 start

Tareas programadas en GNU/Linux 3 noviembre, 2009

Posted by Fredy Ruiz Ondre in Comandos GNU/linux.
add a comment

Me ha pasado que a veces olvido la sintaxis, talves sea porque no la uso muy seguido por eso decidi poner esta mini-guia, no es mi idea explicar todo a cerca del cron de GNU/Linux, solo pondre algo basico que me permita recordarlo.

Opciones del crontab:

  • l: lista las tareas programadas por el usuario
  • e: permite editar el fichero crontab del actual usuario
  • r: el actual fichero crontab sera elimnado
  • u: especifica el nombre del usuario para el cual se ejecutar la tarea

Si queremos programar una tarea ejecutamos ‘crontab -e’, estando logeados como root

# crontab -e

Listo, una ves ejecutado el comando editamos nuestra tarea programada, de acuerdo a la siguiente sintaxis:

*   *   *   *   *   lo_que_queremos_ejecutar
|   |   |   |   |
|   |   |   |   |__Dia de la semana (0-6, Sun-Sat) Domingo=0=7, Lunes=1, ..
|   |   |   |
|   |   |   |__Mes (1-12, Jan-Dec) Enero=1, Febrero=2 ..
|   |   |
|   |   |__Dia del mes (1-31)
|   |
|   |__Hora (0-23)
|
|__Minuto (0-59)

Tener presente donde van el dia de la semana tambien se puede poner ‘Sun’ en lugar de ‘0’ y asi sucesivamente. Tambien donde van los meses, puede ir ‘Jan’ en lugar de ‘1’ y asi …..

La barra (/) permite especificar intervalos en los rangos. Por ejemplo, si hablamos de horas, 6-10/2 significa que el comando se ejecutará a las 6, 8 y 10 horas. Si hablamos de minutos, */3 significa cada 3 minutos.

Los ejemplos serian de las siguientes maneras:

0  6-10/2   *   *   *  lo_que_queremos_ejecutar
*/3   *   *   *   *   lo_que_queremos_ejecutar

Si quisieramos que algo se ejecute a las 20 y tambien a las 23 horas seria de la sisguiente manera:

00   20,23   *   *   *   lo_que_queremos_ejecutar

    Bueno con esto basta para recordar ….

    HotSpot con chillispot y Freeradius 2 noviembre, 2009

    Posted by Fredy Ruiz Ondre in Wi-Fi.
    6 comments

    Un hotspot es una zona de cobertura de Wi-Fi, es decir esta ubicado en un punto normalmente un lugar publico donde irradia la señal y  la gente puede salir a internet conectandose inalambricamente a la central de manera gratuita o previo pago.

    En esta ocasion vamos a configurar un hotspot usando chillispot instalandolo sobre CentOS 5, la autenticasion sera a traves del un servidor Radius, nosotros usaremos freeradius, todo esto vamos a instalarlo en un mismo servidor.

    red_wifi_1

    Instalaremos las herramientas necesarias

    # yum install freeradius openssl php httpd mod_ssl

    Descargamos el paquete chillispot

    # wget http://www.chillispot.info/download/chillispot-1.1.0.i386.rpm
    # rpm -Uvh chillispot-1.1.0.i386.rpm

    Una ves que instalemos lo necesario vamos a configurarlo, empezamos a configurar el chillispot editando el archivo chilli.conf

    [root@ns ~]# vim /etc/chilli.conf


    net 172.16.0.0/24
    dns1 200.48.225.130
    domain http://www.dominio.com
    radiuslisten 127.0.0.1
    radiusserver1 127.0.0.1
    radiusauthport 1812
    radiussecret contraseña1
    radiusnasid nas01
    dhcpif eth1
    uamserver https://172.16.0.1/cgi-bin/hotspotlogin.cgi
    uamhomepage https://172.16.0.1/spot
    uamsecret contraseña2
    uamallowed 172.16.0.1

    Siguiendo con la configuracion del chilli

    # cp /usr/share/doc/chillispot-1.1.0/hotspotlogin.cgi /var/www/cgi-bin/
    # chown apache.apache /var/www/cgi-bin/hotspotlogin.cgi
    # chmod 700 /var/www/cgi-bin/hotspotlogin.cgi

    Ahora instalamos el soporte TUN/TAP necesario para el funcionamiento de chilli. Esta interface virtual creada tun0 se comunicará con la interface eth1 para autenticar los usuarios, para ello editamos  el archivo modprobe.conf agregando lo siguiente:

    # vim /etc/modprobe.conf

    alias char-major-10-200 tun

    # modprobe tun

    En la documentacion del chilli /usr/share/doc/chillispot-1.1.0/ hay un script para el firewall, bueno yo lo modifique ya que yo uso un proxy con Squid, quedando de la siguiente manera:

    #!/bin/sh
    IPT=”/sbin/iptables”
    EXTIF=”eth0″ # Interfaz externa
    INTIF=”eth1″ # Interfaz interna

    $IPT -F
    $IPT -F -t nat
    $IPT -F -t mangle

    $IPT -P INPUT DROP
    $IPT -P FORWARD ACCEPT
    $IPT -P OUTPUT ACCEPT

    $IPT -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

    $IPT -A INPUT -i $EXTIF -p tcp -m tcp –dport 22 –syn -j ACCEPT
    $IPT -A INPUT -i $EXTIF -j REJECT

    $IPT -A INPUT -i $INTIF -j DROP

    $IPT -A INPUT -p tcp -m tcp –dport 80 –syn -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp –dport 443 –syn -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp –dport 3128 –syn -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp –dport 22 –syn -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp –dport 3990 –syn -j ACCEPT

    # Redireccionar al squid
    $IPT -t nat -A PREROUTING -i tun0 -p tcp –dport 80 -j REDIRECT –to-port 3128

    $IPT -A INPUT -p icmp –icmp-type echo-request -j ACCEPT
    $IPT -A INPUT -i lo -j ACCEPT
    $IPT -A FORWARD -i $INTIF -j DROP
    $IPT -A FORWARD -o $INTIF -j DROP

    $IPT -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

    Obviamente esre script es algo basico, pero este post no trata de iptables asi que lo dejamos tal cual, ahora activamos el forwarding

    # vim /etc/sysctl.conf

    net.ipv4.ip_forward = 1

    Hecho esto nos dedicamos al servidor radius, para ello nos ubicamos en el directorio raddb

    # cd /etc/raddb/
    # vim clients.conf

    client 127.0.0.1 {
    secret          = contraseña1
    shortname       = localhost
    nastype     = other
    }

    Editamos las cuentas de usuarios

    # vim users

    fruiz   Auth-Type := Local, User-Password == “clave”

    Antes de iniciar los servicios debemos tener en cuenta la dirección IP de la interfaz eth1 el cual  debe ser 0.0.0.0 pero debe estar activa

    # ifconfig eth1 0.0.0.0 up

    # /etc/init.d/chilli start
    # /etc/init.d/radiusd start
    # /etc/init.d/httpd start

    red_wifi_2

    En la consola podemos ejecutar lo siguiente para ver si la autenticacion al servidor radius esta bien configurada

    # radtest fruiz clave localhost 1645 contraseña1

    Sending Access-Request of id 65 to 127.0.0.1 port 1812
    User-Name = “fruiz”
    User-Password = “clave”
    NAS-IP-Address = 255.255.255.255
    NAS-Port = 1645
    rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=65, length=71
    Service-Type = Framed-User
    Framed-Protocol = PPP
    Framed-IP-Address = 172.16.0.170
    Framed-IP-Netmask = 255.255.252.0
    Framed-Routing = Broadcast-Listen
    Filter-Id = “std.ppp”
    Framed-MTU = 1500
    Framed-Compression = Van-Jacobson-TCP-IP

    Ahora como ultimo paso, nos ubicamos en el directorio /var/www/html y editamos una pagina que sera la de bienvenida, y ahi ubicamos un link que apunte al chilli para poder realizar la autenticacion

    # cd /var/www/html/
    # mkdir spot/
    # cd spot/
    # vim index.html

    Aqui editamos nuestra pagina de bienvenida en donde debe haber un link que apunte a http://172.16.0.1:3990/prelogin, pondre parte de mi humilde html donde enlaza para la autenticacion

    <a href=”http://172.16.0.1:3990/prelogin”>Click aqui para acceder</a>

    Luego de realizar nuestra pagina de bienvenida, guardamos los cambios y empezamos a probar, para esto desde una maquina cliente accedemos a la red, el chilli nos debería asignar un IP de manera automática y cuando abramos un navegador nos debe mostrar nuestra pagina de bienvenida, en dicha pagina le demos clic en “Click aqui para acceder” deberá mostrarnos la siguiente ventana para poder autenticarnos.

    chillispot

    Interfaz Web para Voicemail – Asterisk 1 noviembre, 2009

    Posted by Fredy Ruiz Ondre in Asterisk.
    1 comment so far

    Esta es una pequeña configuracion de como instalar una interfaz web para ver los mensajes de voz que son enviados por nuestra central Asterisk, esta interfaz es un cgi que viene dentro de las fuentes de Asterisk.

    Antes vamos a instalar algunas dependencias necesarias.

    # yum -y install php httpd perl-DBI

    Hecho esto, ahora nos ubicamos en el directorio donde estan las fuentes del asterisk que hemos instalado.

    # cd /usr/src/
    # cd asterisk-1.4.22/
    # make webvmail
    # cd /var/www/cgi-bin/
    # chmod 755 vmail.cgi

    En el archivo vmail.cgi ingresamos nuestro contexto por defecto, en mi caso Internal, con esto cuando ingresemos a la web no sera necesario que pongamos voicemail@context en el login.

    # vi vmail.cgi

    $context=”Internal”;

    Configuremos el httpd para poder acceder al webvmail, en el archivo cgi.conf ingresamos la linea siguiente.

    # vi /etc/httpd/conf.d/cgi.conf

    AddHandler cgi-script .cgi

    #service httpd restart

    Ahora imaginemos que nuestro archivo voicemail.conf este configurado de la siguiente manera.

    [Internal]
    101 => 5678,Fredy Ruiz,user@dominio.com

    Entonces, accedemos a http://ip_asterisk/cgi-bin/vmail.cgi y nos logearemos con nuestros datos.

    login

    buzon

    Con esto ya podemos ver nuestros mensajes de voz via una interfaz web.