Nace trucolinux.com

junio 2, 2008 at 2:09 am (Hardware, linux, Redes, Servidores, Tips)

De www.viernes.org

Aunque en realidad queramos decir TrucoGNU/Linux, hemos llamado a esta web “trucolinux.com“. Con la ayuda de TuXed y algún truquillo enviado por amiguetes comenzamos a llenar de trucos sencillos, rápidos y efectivos para admins y usuarios de GNU/Linux.

Irán apareciendo tanto esos truquillos que nos ahorran horas de trabajo y nos hacen la vida más sencilla como algún breve artículo que nos dé la dosis de conocimiento necesaria para poner en marcha una mejora en nuestros sistemas.

Todo ello bajo una licencia Coloriuris para que nuestro trabajo pueda ser reutilizado por vosotros con toda seguridad jurídica.

No dejéis de visitarla y de colaborar.

Permalink 1 comentario

Servidor Radio Shoutcast Automatizado

mayo 17, 2008 at 11:25 am (linux, Radio, Servidores, Tips, Unix)

A muchos seguro que les haría gracia montar su propio servidor de radio pero no saben como.

Llevo unos días pensando la manera de automatizar un servidor de radios para ser

fácil de administrar, básicamente es descargar y darle al instalador el se encarga de todo.

El paquete está compuesto por los siguientes paquetes:

  • crea_radio ( Sirve para crear las radios como su nombre indica)
  • radioup (inicia la radio)
  • killradio ( para la radio )
  • autodj (Lee una lista de reproducción , y emite directamente desde el server )
  • killautodj ( para la emisión desde el servidor)

El paquete lo podeis descargar de aqui.

Instalación del servidor

Una vez tengáis el archivo radios-1.0.tar.gz

lo descomprimís

# tar -xvfz radios-1.0.tar.gz

# cd radios/

# sh install.sh (Como root)

Manejo de las aplicaciones

Todas las aplicaciones funcionan igual

Creacion del servidor :

Crearemos una radio que usara el puerto 8003

# crea_radio 8003

Password: la_password // aqui definimos la contraseña para emitir y administrar el servidor

Users Max : 200 // numero máximo de usuarios

Una vez creada pasamos a iniciarla

# radioup 8003

ahora podemos ver que esta iniciado el servidor conectando a la ip puerto http://xxx.xxx.xxx.xxx:8003

donde xxx.xxx.xxx.xxx es la ip

Como Emitir?

Muchos se preguntaran como emito , tenemos 2 maneras usando el autodj o emitiendo desde casa con nuestro reproductor.

Por autodj:

Si tenemos an directorio con mp3 en el servidor podemos crear una lista de reproducción de la siguiente forma.

# find /ruta/a/mp3 -iname “*.mp3” >/opt/radios/8003/playlist.lst

Este comando busca todos los archivos de un directorio que contengan la extensión mp3y los añade a la lista de reproducción.

Ahora es el momento de iniciar el autodj

# autodj 8003

Desde este momento nuestros servidor pasara a ejecutar los mp3 del directorio.

Emitir desde Winamp

podeis usar este manual

Matar al DJ

#killautodj 8003 //Para el autodj

#killradio 8003 //Para autodj y la radio

Colocar el stream en la web

Puedes usar el script.

#crea_web 8003 //Genera una web para reproducir la radio

Este comando nos va a pedir varios datos

IP/DOMINIO: http://www.tuxed.es //El dominio o ip del servidor
Color Fondo: white //color del fondo de la pagina tiene que ir en ingles o hexadecimal
URL Imagen: http://www.tuxed.es/logo.png //url hacia la imagen que se mostrara
Donde esta el directorio de apache: /var/www/html //ruta donde esta alojada la web

Desde este momento tendremos una radio con un reproductor en flash ( dewplayer )

y podremos escuchar la radio entrando en http://www.tudominio.com/8003

Espero que haya gustado.

Permalink 11 comentarios

Cómo añadir módulos a php5 sin recompilar

mayo 15, 2008 at 11:36 am (linux, Servidores, Tips)

Una manera simple y sin complicaciones para instalar módulos de php5 sin recompilar php

Con este pequeño Tip podrás añadir varios módulos sin complicarte la vida.

Primero de todo debes obtener las fuentes de php5-dev

puedes conseguir en php.net o a través de tu gestor de paquetes en debian

# apt-get source php5-dev

una vez descargadas las fuentes las descomprimimos y nos colocamos en ext/

dentro del tar descomprimido en mi caso php-5.2.0/ext

bcmath fdf mbstring pcre reflection sysvsem
bz2 filter mcrypt pdo session sysvshm
calendar ftp mhash pdo_dblib shmop tidy
com_dotnet gd mime_magic pdo_firebird simplexml tokenizer
ctype gettext ming pdo_mysql skeleton wddx
curl gmp msql pdo_oci snmp xml

Estos son algunos de los módulos disponibles.

Entramos al directorio del modulo que nos interese por ejemplo oci8 para dar soporte para Oracle

Entramos en el directorio del modulo.

# cd oci8

Ejecutamos el comando phpize

Compilamos el modulo

# ./configure && make

Copiamos el archivo compilado a la carpeta de librerías de php5 en mi caso (usr/lib/php5/20060613+lfs)

#cp .libs/oci8.so usr/lib/php5/20060613+lfs/

NOTA: El directorio .lib es oculto por lo que debes poner un “.” antes

Le Cambiarmos los permisos

#chmod 644 usr/lib/php5/20060613+lfs/oci8.so

Editamos php.ini para cargar la nueva extensión añadida.

# vi /etc/php.ini

. . .

extension_dir = “usr/lib/php5/20060613+lfs”

extension=oci8

. . .

Reiniciamos el servidor web

/etc/init.d/apache2 restart

Con esto tendremos el módulo de mssql para php5

Ahora simplemente cambias por el modulo que necesites.

Permalink 2 comentarios

Servicios de Hosting Con IP Dinamica

mayo 14, 2008 at 3:43 am (1, linux, Redes, Servidores, Unix) ()

Holas después de un largo tiempo sin publicar nada , aquí os dejo un pequeño manual para montar hosting casero usando ip dinamica y los servicios de 1and1.

Primero de Todo debemos crear un dominio dinamico en algun servicio como no-ip.com

para el caso de no-ip nos registramos en la web y añadimos un nuevo host

Una vez añadido el host debemos configurarlo en nuestro servidor o router para ello instalaremos el cliente

de no-ip que se encuentra en los repositorios de debian.

para ello ejecutaremos

# aptitude install no-ip

Una vez instalado ejecutamos

# no-ip -C

Please enter the login/email string for no-ip.com: tu_cuenta@domain.com
Please enter the password for user tu_password
Please enter an update interval:[30] //Dejalo en Default dale 30//
Do you wish to run something at successful update?[N] (y/N) //Presiona N//
Ejectando el  servio  si se reinicia la maquina.

# update-rc.d -f no-ip defaults
Adding system startup for /etc/init.d/no-ip ...
   /etc/rc0.d/K20no-ip -> ../init.d/no-ip
   /etc/rc1.d/K20no-ip -> ../init.d/no-ip
   /etc/rc6.d/K20no-ip -> ../init.d/no-ip
   /etc/rc2.d/S20no-ip -> ../init.d/no-ip
   /etc/rc3.d/S20no-ip -> ../init.d/no-ip
   /etc/rc4.d/S20no-ip -> ../init.d/no-ip
   /etc/rc5.d/S20no-ip -> ../init.d/no-ip

Preparando toda la paqueteria.

Software necesario para nuestro Servidor:
  • php
  • mysql ( en los repos como mysql-client )
  • mysql-server
  • httpd (o apache2 en debian)
  • perl
  • bash ( La shell de linux este ya lo tenemos )

Modulos de Perl:

  • POSIX
  • Socket
  • DBI
  • DBD::mysql
  • File::Basename
  • MIME::Base64
  • Sys::Syslog

Estos modulos puede que ya los tengas instalados en tu servidor si no puedes instalarlo desde cpan así:

# cpan

cpan> install Sys::Syslog

…..

cpan > bye

Paqueteria para Servicios web

  • mod_ssl # Modulo SSL para apache, lo usaremos para crear paginas seguras
  • openssl # Generar Certificados SSL
  • php-imap # para que el webmail funcione
  • php-mysql # para que phpMyAdmin funcione
  • net-snmp # para obtener información con mrtg

Paqueteria para Servicios de Correo:

  • postfix # servidor de correo
  • postgrey # listas grises
  • dovecot # Servidor POP3/IMAP
  • vsftpd #Servidor FTP
  • bind #Servidor DNS
  • amavisd-new # Controlar anti-spam/virus
  • spamassassin # Anti-spam para el correo
  • clamd # Anti-virus para el correo
  • mrtg # Gráficos de red

Instalando Todo

Para Debian:
# apt-get install apache2 php5 mysql-server apache-ssl openssl postfix postgrey dovecot-common vsftpd spamassassin clamav amavisd-new bind mrtg

Para CentOS: # yum install httpd php mysql-server mod_ssl openssl postfix postgrey dovecot vsftpd spamassassin clamd amavisd-new bind mrtg
Instalando Panel Control Usuarios

Una vez instaladas todas las dependencias es el momento de instalar un Panel para administrar todo.

Para ello descargamos la versión estable de Ravencore.

# wget http://garr.dl.sourceforge.net/sourceforge/ravencore/ravencore-0.3.3.tar.gz

# tar zxvf ravencore-0.3.3.tar.gz
# cd ravencore-0.3.3
# make build
# make install

Con esto ya tenemos el Panel Instalado y listo para funcionar.

# /etc/init.d/ravencore start

Iniciado el servicio , asignamos una password al usuario admin

# /usr/local/ravencore/sbin/run_cmd passwd

Ahora ya podemos logearnos al panel conectándonos a la ip de la maquina al puerto 8000 

http://x.x.x.x:8000
Click en la imagen para ver capturas

Una vez logeado podremos crear servicios web desde el panel.

Configuración DNS Proveedor.

En el caso de 1and1 iremos ha

http://admin.1and1.es/

Dominios

Seleccionamos nuestro Dominio . Pestaña DNS / Modificar Configuración DNS

Configuración general

DNS Nombre canónico
Marcamos Nombre canonico
Configuración CNAME

Alias * tu_dominio.no-ip.org
[X]Conozco y acepto que toda configuración DNS, direcciones de e-mail y configuraciones para el reenvío actuales se desactivarán.

Remplazar tu_dominio.no-ip.org por dominio Virtual creado en no-ip.com

Creación  de  VirtualHosts dinamicos

De esta forma con un solo virtualhost cubriremos todos los dominios.

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

# Configuracion para virtualhost dinamicos:
#

UseCanonicalName Off
<VirtualHost *:80>
ServerName %1

VirtualDocumentRoot /users/%0/httpdocs

#VirtualScriptAlias /users/%0/cgi-bin
#ScriptAlias /cgi-bin/ /var/www/default/cgi-bin
<Directory /var/www/%0/httpsdocs>
AllowOverride All
Options FollowSymLinks
Order allow,deny
Allow from all
php_admin_value safe_mode 0
php_admin_value open_basedir /users/%0/httpdocs
php_admin_value sendmail_from webmaster-%0@%2+
#Include ./conf.d/php.conf
DirectoryIndex index.php index.php4 index.php3 index.cgi index.pl index.html index.htm index.shtml index.phtml
</Directory>
#
# rewrite
#
Rewritelog /var/log/httpd/rewrite_log
RewritelogLevel 0
RewriteEngine on
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{REQUEST_URI} !^/\_(MYADMIN|MYSQL|ERROR)
#RewriteCond %{REQUEST_URI} !^/\_(CORREO|MAIL|MYADMIN|MYSQL|ADMINCORREO|ERROR|SERVERGFX|STATS|GESTION)
#RewriteCond %{REQUEST_URI} !^/awstats
RewriteCond %{HTTP_HOST} ^www
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^(.+) /users/%1/httpdocs/$1
#
# Logs:
#
LogFormat “%V %{X-Forwarded-For}i %{%d-%m-%Y@%I:%M:%S(%Z)}t \”%r\” %s %b” vcommon
CustomLog /var/log/httpd/vcommon-access.log vcommon
</VirtualHost>

Nota:Remplazar /users/ por la ruta marcada en la instalación del panel.

Descargar Configuración


Cada vez que añadimos un virtual host tendremos de añadirlo en 1and1 y modificar el CNAME.

Espero que les haya gustado si teneis alguna duda comentario.


Permalink 10 comentarios

[ TIP ] Cambiando Zona Horaria en linux

marzo 1, 2008 at 4:39 pm (linux, Servidores, Tips)

# rm   /etc/localtime

# ln   -s   /usr/share/zoneinfo/Europe/Madrid     /etc/localtime

# hwclock   – -systohc

Permalink Dejar un comentario

Rosseta Stone For Unix

marzo 1, 2008 at 8:39 am (FreeBSD, linux, OOSS, Servidores, Tips, Unix)

Rosseta stone for Unix es una web , que nos muestra una tabla de equivalencias de comandos y dispositivos entre los diferentes sistemas unix.

wt47c84e9bea63b-excerpt.jpg

    Click en la imagen para ver la web

      Permalink 1 comentario

      Instalando Nginx con soporte php (Gentoo)

      febrero 16, 2008 at 2:38 am (linux, Servidores, Tips, Unix, www)

      Instalación de nginx

      Para tener instaladon nginx en gento , lo haremos desde el portage

      # emerge nginx

      Arrancamos nginx:

      # /usr/local/sbin/nginx

      y comprobamos que funciona introduciendo en el navegador nuestra URL:

      http://midominio.com/

      Lo único que nos queda para tener nginx funcionando es crear un script que arranque el servidor web cuando arranque el VPS:

      # kill `cat /usr/local/nginx/logs/nginx.pid`
      # vi /etc/init.d/nginx
      # chmod +x /etc/init.d/nginx
      # /usr/sbin/update-rc.d -f nginx defaults

      Siendo /etc/init.d/nginx:

      #! /bin/sh
      
      ### BEGIN INIT INFO
      # Provides:          nginx
      # Required-Start:    $all
      # Required-Stop:     $all
      # Default-Start:     2 3 4 5
      # Default-Stop:      0 1 6
      # Short-Description: starts the nginx web server
      # Description:       starts nginx using start-stop-daemon
      ### END INIT INFO
      
      PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
      DAEMON=/usr/local/sbin/nginx
      NAME=nginx
      DESC=nginx
      
      test -x $DAEMON || exit 0
      
      # Include nginx defaults if available
      if [ -f /etc/default/nginx ] ; then
              . /etc/default/nginx
      fi
      
      set -e
      
      case "$1" in
        start)
              echo -n "Starting $DESC: "
              start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/nginx.pid \
                      --exec $DAEMON -- $DAEMON_OPTS
              echo "$NAME."
              ;;
        stop)
              echo -n "Stopping $DESC: "
              start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/nginx.pid \
                      --exec $DAEMON
              echo "$NAME."
              ;;
        restart|force-reload)
              echo -n "Restarting $DESC: "
              start-stop-daemon --stop --quiet --pidfile \
                      /usr/local/nginx/logs/nginx.pid --exec $DAEMON
              sleep 1
              start-stop-daemon --start --quiet --pidfile \
                      /usr/local/nginx/logs/nginx.pid --exec $DAEMON -- $DAEMON_OPTS
              echo "$NAME."
              ;;
        reload)
            echo -n "Reloading $DESC configuration: "
            start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/nginx.pid \
                --exec $DAEMON
            echo "$NAME."
            ;;
        *)
              N=/etc/init.d/$NAME
              echo "Usage: $N {start|stop|restart|force-reload}" >&2
              exit 1
              ;;
      esac
      
      exit 0

      Configuración del virtual host de nginx que servirá PHP

      Supongamos que el virtual host de nginx en el que funcionará el blog basado en WordPress es blog.midominio.com. En este caso, en el fichero de configuración de nginx, que será /usr/local/nginx/conf/nginx.conf, tendremos que añadir, de momento:

          server {
              listen       80;
              server_name  blog.midominio.com;
      
              access_log /var/log/nginx/blog.midominio.com/access.log;
              error_log  /var/log/nginx/blog.midominio.com/error.log;
      
              location / {
                  root   /var/www/blog.midominio.com;
                  index  index.html;
              }
      
              # redirect server error pages to the static page /50x.html
              #
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }

      El directorio para los logs, /var/log/nginx/blog.midominio.com, y el directorio para las páginas, /var/www/blog.midominio.com, pueden ser otros. En cualquier caso, los deberemos crear a mano. Después de cualquier cambio en el fichero de configuración de nginx es necesario un restart:

      # /etc/init.d/nginx restart

      Llegados a este punto, podemos crear un index.html en /var/www/blog.midominio.com y ver que carga correctamente en el navegador:

      http://blog.midominio.com/

      Instalación de PHP

      La instalación de PHP es realmente sencilla:

      # emerge install php5-cli php5-cgi php5-mysql
      $ php -v
      PHP 5.2.0-8+gentoo (cli) (built: Dec 29 2007 14:49:25)
      Copyright (c) 1997-2006 The PHP Group
      Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies

      Instalación de FastCGI

      La implementación de FastCGI que vamos a utilizar es la que viene con lighttpd. Lo que haremos será compilar lighttpd, pero no instalarlo. Copiaremos a mano el proceso spawn-fcgi:

      wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.gz
      gunzip lighttpd-1.4.18.tar.gz
      tar xvf lighttpd-1.4.18.tar
      cd lighttpd-1.4.18/
      ./configure
      make
      sudo cp src/spawn-fcgi /usr/bin/spawn-fcgi

      Ahora que ya tenemos FastCGI, crearemos un script para lanzarlo, al que llamaremos /usr/bin/php-fastcgi, y cuyo contenido será:

      #!/bin/sh
      /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -f /usr/bin/php5-cgi

      Crearemos también el script de arranque y parada para cuando rearranquemos el servidor. Le llamaremos /etc/init.d/php-fastcgi, y su contenido será:

      #!/bin/bash
      PHP_SCRIPT=/usr/bin/php-fastcgi
      RETVAL=0
      case "$1" in
          start)
            $PHP_SCRIPT
            RETVAL=$?
        ;;
          stop)
            killall -9 php5-cgi
            RETVAL=$?
        ;;
          restart)
            killall -9 php5-cgi
            $PHP_SCRIPT
            RETVAL=$?
        ;;
          *)
            echo "Usage: php-fastcgi {start|stop|restart}"
            exit 1
        ;;
      esac
      exit $RETVAL

      Damos los permisos adecuados y añadimos php-fastcgi a los scripts de arranque y parada:

      # chmod 755 /etc/init.d/php-fastcgi
      # chmod 755 /usr/bin/php-fastcgi
      # /usr/sbin/update-rc.d -f php-fastcgi defaults

      Nos queda volver a editar el fichero de configuración de nginx, /usr/local/nginx/conf/nginx.conf, donde añadiremos, en la sección del servidor virtual que hemos creado, la configuración necesaria para que los scripts PHP sean redireccionados al proceso FastCGI. También en esta sección, deberemos cambiar la página de inicio de index.html a index.php y añadir una regla de reescritura para que WordPress funcione correctamente. Con todos estos cambios, la sección completa del servidor virtual de nginx para el blog quedaría:

          server {
              listen       80;
              server_name  blog.midominio.com;
      
              access_log /var/log/nginx/blog.midominio.com/access.log;
              error_log  /var/log/nginx/blog.midominio.com/error.log;
      
              location / {
                  root   /var/www/blog.midominio.com;
                  index  index.php;
                  if (-e $request_filename) {
                    break;
                  }
                  rewrite ^/(.+)$ /index.php?q=$1 last;
              }
      
              # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
              #
              location ~ \.php$ {
                  fastcgi_pass   127.0.0.1:9000;
                  fastcgi_index  index.php;
                  fastcgi_param  SCRIPT_FILENAME  /var/www/blog.midominio.com$fastcgi_script_name;
                  include        conf/fastcgi.conf;
              }
      
              # redirect server error pages to the static page /50x.html
              #
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }

      El fichero de configuración de FastCGI será /usr/local/nginx/conf/fastcgi.conf:

      fastcgi_param  QUERY_STRING       $query_string;
      fastcgi_param  REQUEST_METHOD     $request_method;
      fastcgi_param  CONTENT_TYPE       $content_type;
      fastcgi_param  CONTENT_LENGTH     $content_length;
      
      fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
      fastcgi_param  REQUEST_URI        $request_uri;
      fastcgi_param  DOCUMENT_URI       $document_uri;
      fastcgi_param  DOCUMENT_ROOT      $document_root;
      fastcgi_param  SERVER_PROTOCOL    $server_protocol;
      
      fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
      fastcgi_param  SERVER_SOFTWARE    nginx;
      
      fastcgi_param  REMOTE_ADDR        $remote_addr;
      fastcgi_param  REMOTE_PORT        $remote_port;
      fastcgi_param  SERVER_ADDR        $server_addr;
      fastcgi_param  SERVER_PORT        $server_port;
      fastcgi_param  SERVER_NAME        $server_name;
      
      # PHP only, required if PHP was built with --enable-force-cgi-redirect
      fastcgi_param  REDIRECT_STATUS    200;

      Para probar que funcionar, después de rearrancar nginx, podemos crear en /var/www/blog.midominio.com el siguiente fichero index.php:

      <? phpinfo(); ?>

      Si introducimos en el navegador la URL http://blog.midominio.com obtendremos una página con información sobre nuestra instalación de PHP.

      Script de Instalación Multidistro

      Para los mas vagos he preparado un script de instalación multi Distro, Una vez instalado y con todas las  Dependencias cumplidas , Paquetes de compilacion las bindutils nos permitira hacer funcionar el script Para alguna duda o ampliación del script dejen comentarios.    PD: Una vez instalado deveras añadir el runlevel que quieres que te inicie de forma manual.

      Descargar Instalador

      Permalink Dejar un comentario

      ssmtp en gmail

      febrero 14, 2008 at 2:57 am (1, linux, Servidores, Tips, Unix)

      ssmtp es una pequeña herramienta que nos permitira enviar correos usando el comando mail o mutt desde la linea de comandos , de hecho ssmtp actua como un smtp relay reenviando nuestros correos a nuestra cuenta de gmail.

      Esta herramienta puede ser util por ejemplo en scripts donde queremos enviar datos desde mail sin disponer de un MTA instalado localmente.

      Tambien puede ser util en la configuración de las notificaciones de Nagios (Sistema de Monitorización) , para permitir la notificación en los servidores de correo de nuestra empresa.

      Instalando ssmtp

      En este how-to uso gentoo aunque puede ser adaptado facilmente a tu distribución favorita.

      Para instalar ssmtp en gentoo usaremos el siguiente comando.

      # USE=”ipv6 -mailwrapper -md5sum ssl” emerge ssmtp

      Una vez instalado simplemente es configurar ssmtp:

      necesitaremos dos archivos

      $ ls -l /etc/ssmtp/
      total 16
      -rw-r–r– 1 root root 89 feb 9 01:39 revaliases
      -rw-r–r– 1 root root 192 feb 9 01:38 ssmtp.conf

      Configurando ssmtp.conf

      root=usuario@gmail.com
      mailhub=smtp.gmail.com:587
      rewriteDomain=
      hostname=usuario@gmail.com
      UseSTARTTLS=YES
      AuthUser=usuario
      AuthPass=tu_password
      FromLineOverride=YES

      Los datos que debes remplazar por los datos de tu cuenta estan marcados en negrita.

      El AuthUser= debe escribirse sin @gmail.com

      Configurando revaliases

      root:name@gmail.com:smtp.gmail.com:587
      mainuser:name@gmail.com:smtp.gmail.com:587

      Con esto asocia un usuario local a nuestra cuenta de gmail , logicamente tendremos de remplazar name@gmail.com por nuestra cuenta que configuremos en ssmtp.conf

      Probando si funciona

      Si todo funciona bien podremos enviar correos usando

      $ echo “esto es una prueba” | mail -s “PRUEBA” destinatario@domain.com

      Permalink 1 comentario

      Permisos con ACL

      enero 27, 2008 at 2:01 am (1, linux, Redes, Seguridad, Unix)

      Los permisos de linux están bien siempre que no dispongamos de un grupo muy grande de usuarios , si es asi se haria muy lioso ya que tendríamos un /etc/group muy grande. Una forma Elegante de arreglar este problema es usando las ACL (Listas de Control de Acceso)

      A groso modo una ACL es una lista de usuarios o grupos Linux y sus correspondientes permisos de acceso que tienen a un fichero o directorio.

      Instalando y activando las ACL

      Para aumentar la granularidad de los permisos en tu sistema debes tener en cuenta:

      • El nucleo debe soportar y estar compilado para soportar atributos extendidos y ACL
      • El sistema de ficheros tiene de montarse con atributos extendidos y ACL
      • Se tienen de instalar las utilidades de espacio de usuario (chacl,getfacl y setfacl) para establecer el ACL.

      Una vez claros estos conceptos pasamos a activar ACL.

      Soporte ACL del núcleo de sistema

      La gran mayoría de distros actuales ya soportan ACL puedes comprobar si tienes soporte con este comando.

      # grep POSIX_ACL /boot/config-`uname -r`
      CONFIG_EXT2_FS_POSIX_ACL=y
      CONFIG_EXT3_FS_POSIX_ACL=y
      CONFIG_REISERFS_FS_POSIX_ACL=y
      CONFIG_JFS_POSIX_ACL=y
      CONFIG_FS_POSIX_ACL=y
      CONFIG_XFS_POSIX_ACL=y
      # CONFIG_TMPFS_POSIX_ACL is not set

      Como podéis tenemos activados en el kernel si no es asi recompilamos el kernel marcando estas opciones.

      File systems —>

      [*] ReiserFS extended attributes

      [*] ReiserFS POSIX Access Control Lists

      Soporte ACL en /etc/fstab

      Una vez que tengamos soporte ACL necesitaremos configurar /etc/fstab para activar los susodichos permisos .

      Los sistemas de ficheros montados con acl tendrán la palabra clave “acl” en las porciones de opciones de montaje de sus entradas en el fichero.

      Ejemplo

      /dev/sda6 /usr reiserfs noatime,acl,user_xattr 1 2

      /dev/hda1 /opt ext3 defaults 0 0

      Como podéis ver sda6 tiene soporte acl en el punto de montaje , si quisiéramos dar soporte acl a hda1 seria tan fácil como al punto de montaje acl

      /dev/hda1 /opt ext3 defaults,acl 0 0

      Una vez actualizado el fichero /etc/fstab debemos remontar el sistema de fichero.

      Ejemplo para hda1

      # mount -o remount,acl /dev/hda1

      Soporte ACL en el espacio de usuario

      El último paso para usar ACL asegurarse de que las aplicaciónes de espació de usuario estén presentes en el sistema

      En Debian o Ubuntu puedes comprobar asi

      # dpkg -l |grep acl
      ii acl 2.2.42-1ubuntu1 Access control list utilities
      ii libacl1 2.2.42-1ubuntu1

      Tambien puedes comprobar buscando las herramientas

      # type -a getfacl

      getfacl is /usr/bin/getfacl

      Si ACL no esta instalado puedes instalarlo desde el manejador de paquetes de tu distribución en debian por ejemplo.

      # apt-get install acl

      Formato ACL

      Linux soprta 2 tipos básicos de ACL:

      • ACL de control de directorios y ficheros
      • ACL de directorio (Mascaras) ACL que toman por defecto los ficheros creados en ese directorio.

      La ACL se representa por tres campos separados por “:”

      Campo 1

      Entrada

      • “u” Ususario
      • “g” Grupo
      • “o” Otro
      • “m” Mascara

      Campo 2

      El segundo campo esta formado por:

      • UID (ID numérico de usuario)
      • GID (ID numérico de grupo)
      • Vacío (Asume UID,GID del Creador)

      Campo 3

      • El tercer campo es el de acceso y puede ser representado de 2 maneras.
      • Cadena estándar RWX (las cadenas se pueden remplazar por – sino queremos dar acceso de ese tipo)
      • Cadena simbólica + ^

      Herramientas

      • chacl : Permite cambiar,examinar o eliminar ACL
      • getfacl : Permite examinar acl para encontrar archivos o directorios
      • setfacl : Establece ACL a fichero o directorio.

      Mostrar ACL

      Para el ejemplo usare un directorio con archivos que he creado con touch.

      > ls -l
      total 0
      -rw-r–r– 1 tuxed tuxed 0 2008-01-26 03:03 lerele
      -rw-r–r– 1 root root 0 2008-01-26 03:03 pass
      -rw-r–r– 1 root root 0 2008-01-26 03:02 user

      La acl para el directorio siguiente es

      > getfacl .
      # file: .
      # owner: root
      # group: root
      user::rwx
      group::rwx
      other::rwx

      La acl por defecto para el fichero lerele es esta

      > getfacl lerele
      # file: lerele
      # owner: tuxed
      # group: tuxed
      user::rw-
      group::r–
      other::r–

      La acl para el directorio el qual no se le ha asignado coje los de umask.

      Establecer ACL

      Hay tres maneras de establecer un ACL

      1. Usando el comando setfacl el qual sobrescribe qualquier ACL anterior.
      2. Usando el comando setfacl con la opción -m (Modifica ACL)
      3. Usando chacl para modificar una ACL existente.

      En esta ocasión mostrare como se cambian las acl con chacl , ya que este no sobrescribe la ACL existente, y ademas proporciona algo mas de información de como realmente funcionan las acl

      Ejemplo

      Añadiremos al usuario aitor como alguien que puede leer el fichero lerele , usaría chacl (cambiar la ACL) del siguiente modo:

      $ chacl u::rw-,g::r–,o::—,u:aitor:r–,m::rw- lerele

      Esta es la forma en la que se ve una acl en la vida real , el hecho de que sea una comando tan largo es que se debe definir los puntos ya nombrados anteriormente el propietario de fichero, grupo propietario y otros

      para entendernos mejor la porción u::rw,g::r–,o::— es la ACL existente y la porción u:aitor:r–,m::rw- especifica el nuevo usuario el nuevo usuario que quiero añadir a dicha acl y la mascara de derechos efectivos cuando se añada.

      La mascara de derechos efectivos es la unión de todos los permisos ya existentes de UGO para un fichero o directorio. esta se tiene al añadir un usuario a la ACL.

      Para comprobar que hemos sido añadidos a la acl usaremos

      $ getfacl lerele
      # file: lerele
      # owner: tuxed
      # group: tuxed
      user::rwx
      group::r–
      other::—
      user:aitor:r–
      mask::rw-

      Ahora que ya sabemos como funciona acl podriamos poner que aitor tenga permisos de lectura y escritura a lerele

      $ chacl u::rw-,g::r–,o::—,u:aitor:rw-,m::rw- lerele

      como veis le hemos añadido permisos de escritura

      $ getfacl lerele
      # file: lerele
      # owner: tuxed
      # group: tuxed
      user::rwx
      group::r–
      other::—
      user:aitor:rw-

      Pues espero que hos guste.

      Permalink Dejar un comentario

      Instalaciones de linux Desatendidas

      enero 16, 2008 at 12:41 pm (Desatendido, linux, Redes, Servidores)

                      Click en la imagen para entrar a la web

      El otro dia hablando con la gente de #linux salio a discusion sobre sistemas para instalación Desatendidas , la verdad es que jode mucho tener de instalar 20 estaciones de trabajo para ayer jeje.

      Asi que aqui presento una posible solución nada de montar servidor PXE ni nada asi que aqui va poner el cd y instalarse solo.

      Instalinux permite instalaciones de estas distros:

      • CentOS
      • Debian
      • Fedora
      • OpenSuse
      • Scientific
      • Suse
      • Ubuntu

      la verdad es que puedes configurar la red , el particionamiento ,etc

      espero que os guste

      Permalink Dejar un comentario

      Next page »