Archivo

Archive for the ‘Hosting’ Category

Armar streaming Server con Ampache

agosto 4, 2010 6 comentarios

Algo que no era ni necesario ni estaba en mis planes pero gracias a 15 minutos de nancing y un gran rato queriendo usar MPD para reproducir remotamente sin resultados (hasta despues me di cuenta que necesitaba pulse audio o icecast) intente usar un streaming web asi como en algunos sitios web que tienen streaming por suscripcción.

El software que me ayudo en la tarea es un CMS (Sistema de Gestion de Contenido) multimedia llamado Ampache.

Ingredientes (mas parece que estoy cocinando cuando levanto algo):

ampache

apache2

php5

mysql-server

php5-mysql

libjs-prototype

libphp-snoopy

php5-cli

php5-gd

eye3d

phpmyadmin (opcional)

Un navegador

Base de datos

Como todo gestor de contenido en línea ampache necesita una base de datos lista para funcionar, este paso se puede obviar en la versión de ampache que viene en lenny o si deciden bajarse la última versión de su página web.

Usamos el siguiente comando para crear la base el usuario y la contraseña:

>CREATE DATABASE ‘ampache’;
>GRANT ALL PRIVILEGES ON ampache.* TO ‘ampacheuser’@’localhost’
-> IDENTIFIED BY ‘passguord’ WITH GRANT OPTION;

Configuración de ampache

Ahora abrimos en nuestro navegador http://localhost/ampache (si están entrando desde otra maquina usen http://direccionip/ampache)

Les mostrara la pantalla de instalación desde donde el instalara la base de datos (les pedira password de root de mysql) y luego pondrá a descargar una copia de la configuración que deberán poner en /etc/ampache/ampache.cfg.php, finalmente les pedira nombre y password que tendrá la cuenta de administrador.
Paso a paso

Primero abrimos en un navegador (si se usa explotter corren el riesgo de que les salga el fantasma de “Saddam Hussein” del monitor y los ataque con una bomba quimica imaginaria) la dirección http://localhost/ampache o http://direccionip/ampache donde “direccionip” es la IP de la maquina donde se instala ampache, ya dentro de esta les saldrá la siguiente pantalla:
Instalación de ampache

Instalación de ampache

Los parametros normales para llenar el formulario de instalación son estos:

Desired Database Name = ampache
MySQL Hostname = localhost
MySQL Administrative Username = root o el usuario administrador que se creo con phpmyadmin o linea de comando
MySQL Administrative Password = password de root o del usuario utilizado (si no le han puesto password a root dejar en blanco)
Create Database User For New Database = marcar
Ampache Database Username = ampache (o como le hayan puesto al user)
Ampache Database User Password = contraseña al gusto

Llenando datos

Llenando datos

Luego de llenar este formulario (que si fuera mas largo parecería un examen psicologico) nos pondrá a descargar la configuración ya formateada para funcionar en ampache (como se menciono antes).
Confirmación de datos

Confirmación de datos

Si crearon la base de datos entonces esta sera reescrita estructurada por el instalador de ampache, si no existe la creará con los parametros que se le dieron.

Luego de confirmar los datos (debemos dar click a “write config”) nos dará una copia del archivo de configuración que copiaremos a /etc/ampache/.

# cp /home/usuario/Desktop/ampache.cfg.php /etc/ampache/

Luego volvemos al navegador y damos click al link “check for config” donde comprobara otra ves que todo este en orden y luego damos click a “continue to step 3″.

Ahora creamos la cuenta del administrador del servicio ampache:
Cuenta de administrador

Cuenta de administrador

Luego ingresamos ya con nuestra cuenta admin ya creada y generamos nuestro catálogo de música:
Login

Login
Ampache en su estado salvaje

Ampache en su estado salvaje

Debemos crear una carpeta de música en algun lugar seguro como /var/lib/musica, y depositarla ahi con permisos de lectura, yo como lo hice casero y con poco tiempo solo hice un link de /home/user/musica a /var/lib/musica.

Ahora que tenemos un directorio de música nos vamos al icono de cajon (CPU o servidor como ustedes lo llamen) que esta al lado izquierdo de la interfaz justo al lado del icono de puerta abierta (salir) y nos aparecerá esto:
Creando catalogo

Creando catalogo

Luego ponen el nombre del catálogo la ruta (que ya dijimos puede ser /var/lib/musica/) ponemos como tipo local (que esta en la misma maquina que el ampache) e ignoramos el XML-RCP key (que solo necesitamos si la música se encuentra en una maquina diferente al ampache) si queremos podemos marcar la opción de descargar los albumarts para cada album.

Luego dan click y esperan a que mysql indexe toda la música que hay en el catalogo (preferiblemente mp3 y ogg), una ves terminado les dara esta respuesta:
Catalogo terminado

Catalogo terminado

Dan click en “continue” y volvemos al icono del servidor (maquina, cpu, cajón) que esta al lado de la puerta (salir) y damos click en “add user” para tener un usuario que no sea el admin (no da gracia ser el unico que pueda utilizar el server)
Agregando usuario

Agregando usuario

Llenamos la info necesaria y le damos un “User Access Level” de user ya que si dejamos guest solo podra usar el reproductor en flash (para el que tenemos que poner una excepcion en firefox para ventanas emergentes) y queremos que sea posible el streaming.

Ya tenemos todo listo, ahora solo damos click en los signos + verdes para armar la playlist y dar click en la antena de la derecha para que nos de el archivo de playlist (o abra el reproductor flash) y podamos disfrutar desde cualquier parte de nuestra LAN (o si la ip es publica desde internet) de nuestra música.
Ampache listo

Ampache listo

Extraido de
http://tuxwarrior.wordpress.com/2009/06/14/armar-streaming-server-con-ampache/

Categorías:Hosting

WEBFTP

Es un conjunto de scripts realizados con PHP que permiten conectar con tu servidor FTP, aunque estés detrás de un proxy o firewall que no te permita usar FTP. Realiza una conexión FTP desde el servidor web mediante PHP y se accede a través de páginas web por HTTP. Importante, es gratuito y de código abierto.

En palabras más simples, puede conectarse a un servidor FTP, utilizando su navegador web, mediante esta aplicación, para subir archivos o descargar archivos desde un servidor.

Requerimientos

  • Un servidor web con soporte para php, el más popular y recomendado es apache
  • php mínimo en la versión 4.2.3, actualmente la última versión disponible es la 4.4.8.
  • Espacio en disco de al menos 7.5 mb, que puede ser menos si se eliminan algunos plugins

Proceso de Instalación

  1. Se descarga de http://www.net2ftp.com/ la última version disponible, que al momento de redactar este post es la 0.96.
  2. Se descomprime el archivo en la ubicación deseada.
  3. Se ingresa a el directorio de net2ftp y se le cambian los permisos a el directorio temp, con el comando chmod 777 temp.
  4. Se crean nuestras preferencias en el archivo settings.inc.php

Configurando WEBFTP
Archivo settings.inc.php
Se modificaron los siguientes parámetros

  1. $net2ftp_settings[“default_language”] = “es”; Para seleccionar el idioma español por defecto.
  2. $net2ftp_settings[“default_skin”] = “blue”; Para seleccionar el tema azul
  3. $net2ftp_settings[“admin_username”] = “admin”; Nombre de usuario Administrador
  4. $net2ftp_settings[“admin_password”] = “contraseña”; Password del usuario administrador.

Net2ftp con base de datos (Mysql)
Aunque viene como opcional, vamos a hacer que net2ftp utilice base de datos para guardar registros de la actividad y el uso de la aplicación

Lo primero es modificar el parámetro para indicarle que SI utilice bases de datos
$net2ftp_settings[“use_database”] = “yes”; // “yes” or “no”

Seguidamente se indican las opciones de conexion de la base de datos, aqui asumimos que se tiene creada una base de datos en un servidor de bases de datos mysql.

// Enter your MySQL settings
$net2ftp_settings[“dbusername”] = “usuario”;
$net2ftp_settings[“dbpassword”] = “contraseña”;
$net2ftp_settings[“dbname”] = “nombre_basedatos”;
$net2ftp_settings[“dbserver”] = “servidor”; // Usualmente localhost

Opciones de Seguridad

El Net2ftp permite especificar a cuales servidores se puede conectar, predeterminadamente viene habilitada para conectarse con cualquier servidor.

Para cambiar ese comportamiento, se comenta la linea
//$net2ftp_settings[“allowed_ftpservers”][1] = “ALL”;

Y luego se ingresa una línea por cada servidor
$net2ftp_settings[“allowed_ftpservers”][2] = “192.168.1.1”;
$net2ftp_settings[“allowed_ftpservers”][3] = “ftp.mydomain2.org”;

Igualmente se pueden indicar los servidores ‘baneados’ o no permitidos.
$net2ftp_settings[“banned_ftpservers”][1] = “192.168.1.1”;
$net2ftp_settings[“banned_ftpservers”][2] = “192.168.1.2”;
$net2ftp_settings[“banned_ftpservers”][3] = “192.168.1.3”;

Otra recomendación de seguridad es proteger la carpeta /temp que tiene permisos de 777, mediante el uso del archivo .htaccess, si su servidor web es apache/

Categorías:Hosting

MultiTail

Examples

No examples of coloring are given as that is configurable via the configurationfile. Also for most
commonly used files color schemes have already been designed.

  • Merge 2 logfiles in one window:
    multitail /var/log/apache/access.log -I /var/log/apache/error.log
    
  • Show 3 logfiles in 2 columns:
    multitail -s 2 /var/log/apache/access.log /var/log/messages /var/log/mail.log
    
  • Show 5 logfiles while merging 2 and put them in 2 columns with only one in the left column:
    multitail -s 2 -sn 1,3  /var/log/apache/access.log -I /var/log/apache/error.log /var/log/messages \
                            /var/log/mail.log /var/log/syslog
    
  • Merge the output of 2 ping commands while removing “64 bytes received from” from only 1 of them:
    multitail -l "ping 192.168.0.1" -ke "64 bytes from" -L "ping 192.168.0.2"
    
  • Show the output of a ping-command and if it displays a timeout, send a message to all users
    currently logged in

    multitail -ex timeout "echo timeout | wall" -l "ping 192.168.0.1"
    
  • In one window show all new TCP connections and their state changes using netstat while in
    the other window displaying the merged access and error logfiles of apache

    multitail -R 2 -l "netstat -t" /var/log/apache/access.log -I /var/log/apache/error.log
    
  • As the previosu example but also copy the output to the file netstat.log
    multitail -a netstat.log -R 2 -l "netstat -t tcp" /var/log/apache/access.log -I /var/log/apache/error.log
    
  • Show 2 logfiles merged in one window but give each logfile a different color so that you
    can easily see what lines are for what logfile:

    multitail -ci green /var/log/apache/access.log -ci red -I /var/log/apache/error.log
    
  • Show 3 rssfeeds merged in one window using rsstail
    multitail -cS rsstail -l "rsstail -n 1 -z -l -d -u http://setiathome.berkeley.edu/rss_main.php" \
    	-cS rsstail -L "rsstail -n 1 -z -l -d -u http://www.biglumber.com/index.rss" -cS rsstail \
    	-L "rsstail -n 1 -z -l -u http://kernel.org/kdist/rss.xml"
    
  • Show a Squid (proxy server) logfile while converting timestamps to something readable
    multitail -cv squid /var/log/squid/access.log
    
  • Display Q-Mail logging while converting the timestamp into human readable format
    multitail -cv qmailtimestr /var/log/qmail/qmail.smtpd.log
    
  • Merge ALL apache logfiles (*access_log/*error_log) into one window:
    multitail -cS apache --mergeall /var/log/apache/*access_log --no-mergeall -cS apache_error \
    	--mergeall /var/log/apache/*error_log --no-mergeall
    
  • Monitor the logfile of an other system:
    For this you need to setup a couple of things. MultiTail runs on system A, the logfile on system B.
    In this example we’re going to monitor the apache logfile. Add the following to /etc/services:

    apachelog       20000/tcp
    

    Add this to /etc/inetd.conf:

    apachelog stream tcp nowait root /usr/local/sbin/tail_apache_log /usr/local/sbin/tail_apache_log
    

    and create the file /usr/local/sbin/tail_apache_log with the following content:

    #!/bin/sh
    
    /usr/bin/tail -f /var/log/apache2/access.log
    

    make sure that you don’t forget to make that script executable (chmod +x filename).
    Then on host A start MultiTail like this:

    multitail -cS apache -l "telnet B 20000"
    

    Please note that logfiles go in plaintext across the network. You may also need to adjust
    the files /etc/hosts.[allow|deny] on host B to only allow host A to connect.

  • Monitoring Tomcat
    multitail -cS apache -cS log4j "${TOMCAT_HOME}/logs/catalina.out"
    
Categorías:Hosting

Como instalar Apache+Mysql+PHP en Ubuntu 10.04

La instalacion se hara desde la consola ya que muchas veces es el unico medio diponible en servidores o cuando se hacen instalaciones mediante el uso de SSH.

También hay formas mas sencillas de hacerlo mediante el uso de las herramientas gráficas como pueden ser  Synaptic, KPackageKit y muchas otras utilidades.

Como dijimos estos comandos son para Ubuntu así que usaremos sudo para ganar privilegios y la utilidad apt-get. El proceso es bastante sencillo y rápido desde la consola.

apt-get install apache2
apt-get install php5
apt-get install php5-mysql
apt-get install libapache2-mod-auth-mysql
sudo apt-get install mysql-server-5.1 apache2 php5 php5-mysql libapache2-mod-auth-mysql

Para asegurarnos reiniciamos Mysql y Apache con los comandos

sudo /etc/init.d/apache2 restart
sudo service mysql restart

Para verificar que todo quedo bien instalado pondremos un archivo llamado info.php en la carperta /var/www/ con el siguiente contenido

<?
phpinfo();
?>

Abrimos el navegador de internet y navegamos la URL http://127.0.0.1/info.php y deberiamos ver algo asi

en particular para verificar que PHP tenga soporte para Mysql en la zona media tenemos que encontrar un bloque de Mysql parecido al de la imagen que se ve a continuación

Categorías:Hosting

Ampache-Proyecto Hosting

Ampache es un gestor de archivos de audio basados en Web. Te permite ver, editar y reproducir archivos de audio a través de la Web. Tiene soporte para listas de reproducción, artista y álbum de puntos de vista, la carátula del álbum, reproducción aleatoria, la reproducción a través de HTTP con on-the-fly transcodificación y disminución de resolución, el voto basado en la reproducción, la reproducción a través de MPD y Icecast, un reproductor de Flash integrado, y el usuario por los temas y la canción de seguimiento de obra. Usted puede también conectar varios servidores Ampache juntos usando XML-RPC. Ampache apoya traducciones gettext y tiene traducciones completas a muchos idiomas.

Site

http://ampache.org/

Demo
http://ampache.org/demo/login.php

Categorías:Hosting

Centralized Syslog Server Using syslog-NG with web Interface using php-syslog-ng

julio 27, 2010 50 comentarios

Central Log Management System is a simple web based logging system which allows logging all syslog messages from various Network Devices, Unix, Linux, Solaris and Windows Servers. This allows the visibility of logs from all these devices in one single interface.

What is Syslog-NG ?

syslog-ng© is the world’s most flexible and scalable audit trail processing tool for organizations of any size. It provides a centralised, securely stored log of all devices on your network, whatever platform they run on. And syslog-ng also incorporates a host of powerful features, including filtering based on message content, as well as customisable data mining and analysis capabilities.

Downloads and Documentation

http://www.balabit.com/products/syslog_ng/Syslog-Ng FAQ

http://www.campin.net/syslog-ng/faq.html

Syslog-NG Server Configuration

Install Syslog-NG in debian

#apt-get install syslog-ng
Reading Package Lists… Done
Building Dependency Tree… Done
The following packages will be REMOVED:
klogd sysklogd
The following NEW packages will be installed:
syslog-ng
0 upgraded, 1 newly installed, 2 to remove and 8 not upgraded.
Need to get 215kB of archives.
After unpacking 233kB of additional disk space will be used.
Do you want to continue? [Y/n]y

This will complete the installation process.

Installation Error with solution

Building Dependency Tree… Done
The following packages will be REMOVED:
klogd sysklogd
The following NEW packages will be installed:
syslog-ng
0 upgraded, 1 newly installed, 2 to remove and 8 not upgraded.
Need to get 215kB of archives.
After unpacking 233kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://mirror.ox.ac.uk stable/main syslog-ng 1.6.5-2.2 [215kB]
Fetched 215kB in 0s (683kB/s)
(Reading database … 16396 files and directories currently installed.)
Removing klogd …
Stopping kernel log daemon: klogd.
Removing sysklogd …
Stopping system log daemon: syslogd.
Selecting previously deselected package syslog-ng.
(Reading database … 16374 files and directories currently installed.)
Unpacking syslog-ng (from …/syslog-ng_1.6.5-2.2_i386.deb) …
Setting up syslog-ng (1.6.5-2.2) …
CONSOLE_LOG_LEVEL is of unaccepted value.
KERNEL_RINGBUF_SIZE is of unaccepted value.
Starting system logging: syslog-ng.

The above error is know problem with syslog-ng 1.6.5-2.2 debian package for this you need to modify the syslog-ng startup script file /etc/init.d/syslog-ng

Change the following

1) Edit the file /etc/default/syslog-ng uncomment the following lines and save the file

CONSOLE_LOG_LEVEL
KERNEL_RINGBUF_SIZE

OR

2)case “x$CONSOLE_LOG_LEVEL” in
x[0-7])
dmesg -n $CONSOLE_LOG_LEVEL
;;
*)
echo “CONSOLE_LOG_LEVEL is of unaccepted value.”
;;
esac

to

case “x$CONSOLE_LOG_LEVEL” in
x[0-7])
dmesg -n $CONSOLE_LOG_LEVEL
;;
x)
;;
*)
echo “CONSOLE_LOG_LEVEL is of unaccepted value.”
;;
esac

2)case “x$KERNEL_RINGBUF_SIZE” in
x[0-9]*)
dmesg -s $KERNEL_RINGBUF_SIZE
;;
*)
echo “KERNEL_RINGBUF_SIZE is of unaccepted value.”
;;
esac

to

case “x$KERNEL_RINGBUF_SIZE” in
x[0-9]*)
dmesg -s $KERNEL_RINGBUF_SIZE
;;
x)
;;
*)
echo “KERNEL_RINGBUF_SIZE is of unaccepted value.”
;;
esac

After changing above two changes you need to restart syslog-ng using the following command

#/etc/init.d/syslog-ng start

Syslog-NG Configuration

Default Configuration file located at /etc/syslog-ng/syslog-ng.conf file

Default syslog-ng.conf file click here

Now you need to concentrate on configuration of this file how to fit your need.I am giving example of configuring UDP as source to get the messages remotely for this you need to change the following line under Sources and options

1)# (this is equivalent to the “-r” syslogd flag)
# udp();

to

# (this is equivalent to the “-r” syslogd flag)
udp();

2)# enable or disable DNS usage
# syslog-ng blocks on DNS queries, so enabling DNS may lead to
# a Denial of Service attack
# (default is yes)
use_dns(no);

to

# enable or disable DNS usage
# syslog-ng blocks on DNS queries, so enabling DNS may lead to
# a Denial of Service attack
# (default is yes)
use_dns(yes);
dns_cache(yes);

If you want to know more sources,options,logs,filters,destination click here

Syslog-NG My-SQL Integartion with PHP-syslog-NG Web interface

Make sure the you have installed mysql server and phpmyadmin in your machine. If you want to install run the following command

#apt-get install mysql-server

#apt-get install phpmyadmin

You need to install apache Webserver click here for apache with php support installation steps.

What is PHP-syslog-NG ?

php-syslog-ng is a log monitor designed to let the user quickly and easily manage logs from many hosts.

PHP-Syslog-ng is a front-end for viewing syslog-ng messages logged to MySQL in real-time. It features customized searches based on device, time, priori ty, message, and date.

HOW IT WORKS

Syslog-ng by default collects all the messages from the various sources and pipes them to the MySQL Database. PHP-Syslog-ng which is the front end interface t hen looks and reads from the MySQL Database when searched from the web interface.

Download PHP-syslog-NG

http://www.phpwizardry.com/php-syslog-ng/phpsyslogng-2.8.tar.gz

Installing PHP-syslog-NG with Mysql support for syslog-ng

Download the PHP-syslog-NG in your web server root directory and extract this file phpsyslogng-2.8.tar.gz.Now

#cd phpsyslogng-2.8

Now you are in phpsyslogng-2.8 directory

Configure MySQL

The quickest way to do this is to use the dbsetup.sql file in the scripts directory. Just edit the file and set some passwords for the three users that are created (replace PW_HERE). The script will create a table for logs and a table for user authentication and give the three users some sensible priviliges. If you make other changes like changing the name of the database or the name of the tables then make sure you edit config.php to reflect that. After editing the dbsetup.sql file then just run it like this:

shell> mysql -uroot -p < dbsetup.sql

Configure syslog-ng

Now you need to configure syslog-ng to send the desired log messages to a pipe that can be read to send the entries to MySQL. You will need to add two entries to the syslog-ng configuration file. The configuration file is usually in /etc/syslog-ng/syslog-ng.conf.

You first need to add a new ‘destination’ entry. Add something like this:

destination d_mysql {
pipe(“/var/log/mysql.pipe”
template(“INSERT INTO logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES ( ‘$HOST’, ‘$FACILITY’, ‘$PRIORITY’, ‘$LEVEL’, ‘$TAG’, ‘$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC’,
‘$PROGRAM’, ‘$MSG’ );\n”) template-escape(yes));
};

That will take your log entries and format them into a SQL query that can be run to add it to the database.

You also need to add an entry that determines what log entries to forward to the FIFO pipe. You will usually want to forward everything to MySQL and there should already be a ‘source’ entry for that in your syslog-ng.conf file (usually called src or s_all). To tie that source to the destination you just created you will add something like this:

log {
source(s_all);
destination(d_mysql);
};

Setup syslog-ng to MySQL pipe

An example for a script that feeds log entries from the FIFO pipe to MySQL is included in the scripts directory. The script is called syslog2mysql.sh.
#!/bin/bash

if [ ! -e /var/log/mysql.pipe ]
then
mkfifo /var/log/mysql.pipe
fi
while [ -e /var/log/mysql.pipe ]
do
mysql -u syslogfeeder –password=PASS_HERE syslog < /var/log/mysql.pipe >/dev/null
done

If you decide to use this script then you have to replace PASS_HERE with the password for the syslogfeeder user. You will also probably want to have this script started automatically whenever you start the server. So add an entry in the inittab or start it through init.d (or whatever is appropriate on your system). But make sure you call it after MySQL has been started.

Now start the syslog2mysql.sh script:

shell> ./syslog2mysql.sh &

or if you created an init.d script:

shell> /etc/init.d/syslog2mysql start

Note:- This syslog2mysql.sh need to run always in background because using this script all the messges are pipe to mysql database

It’s finally time to restart the syslog-ng daemon and start sending your logs to the database:

shell> /etc/init.d/syslog-ng restart

Edit config.php

If you are using the default database setup from the dbsetup.sql file then all you need to do is to enter the passwords for the sysloguser and syslogadmin users, set the right host and port for the database server if it is not on the same server as the web server and set the correct URL. Otherwise read through the config.php file and configure things to suit your needs. All the different options are explained in the file.

Log rotation

Log rotation should be part of most installations where you use php-syslog-ng. It is better to use log rotation than deleting rows in the main table because deleting rows can lead to performance problems. Rotating old logs out of the main table will also usually result in better performance because the tables with old logs are static and can be optimized. There is a logrotate.php script in the scripts directory. You may have to edit it to enter the correct path to your php-syslog-ng installation but after that it should be ready for use. If you enable merge tables in the config.php file then a merge table of all log tables will be created at the end of the script. The merge table will allow you to search across all tables instead of having to do searches against one table at a time. The merge table does equate to a slight performance hit on the search form because the fields are populated based on all tables instead of one particular table.

You can also specify enable the LOGRETENTION setting in config.php. If you enable this then logs older than this setting will be dropped whenever the logrotate.php is run.

If you decide to use the logrotate.php script then just add it to your crontab and have it run however frequent you want (max is currently one time per day).

Logrotate Error

When you run logrotate.php if you are getting the following error

Starting logrotate
2006-05-01 21:50:08
No DB link

then check the file /etc/php4/cli/php.ini for an entry:

;extension=mysql.so

and uncomment this entry (take away the semi-colon):

extension=mysql.so (Thanks to Richard Lucassen for this Solution)

Now you can check your installation http://ipaddress/phpsyslogng/ and login user admin and test as password.

Syslog Client Configuration

If you want to send the all the server syslog messages to syslog server you need to edit the file /etc/syslog.conf and you need to enter the following

*.* <Tab><Tab> @syslog server ipaddress

now you need to restart the syslog in client machine

#/etc/init.d/sysklogd restart – for debian

#/etc/init.d/syslog restart – for Other Linux Distributions

Categorías:Hosting

Instalando DNS, Bind 9. Chroot

julio 21, 2010 1 comentario

Por fin me he decido a gestionar yo mismo el dns de los dominios que tengo. Los servicios de dns que usado, aunque normalmente no me han dado demasiados problemas, son un poco engorrosos y no te dan la libertad que tienes al hacerlo tú mismo.

El primer problema que nos encontramos al gestionar un servicio que ofreceremos a internet es el de la seguridad y Bind y el DNS es un servicio con comunes problemas de seguridad con lo que hay que tener el máximo cuidado posible. La instalación de Bind en un chroot no es complicada una vez conoces los pasos adecuados y la gestión es idéntica a su instalación normal. Así que por el mismo precio lo instalamos en una jaula.

No voy a explorar el tema de bind y el firewall, quizás para otra ocasión.

El primer paso es instalar los paquetes de nuestra distribución Debian .

nahia:~# aptitude install bind9 bind9-doc dnsutils

Esto habrá instalado la última versión disponible en nuestro sistema, pararemos el servicio de dns para poder cer los cambios y crear el chroot.

nahia:~# /etc/init.d/bind9 stop

Crearemos la estructura de directorios del chroot y haremos al usuario bind dueño de estos directorios.

nahia:~#mkdir -p /var/chroot/bind9/{etc,dev,var/cache/bind,var/run/bind/run}
nahia:~# chown -R bind:bind /var/chroot/bind9/var/*

Con mknod crearemos los devices que necesitaremos y le daremos los permisos adecuados:

nahia:~# mknod /var/chroot/bind9/dev/null c 1 3
nahia:~# mknod /var/chroot/bind9/dev/random c 1 8
nahia:~# chmod 666 /var/chroot/bind9/dev/{null,random}

Ahora copiaremos la configuración previa (si la teníamos) a la estructura del chroot:

nahia:~# mv /etc/bind /var/chroot/bind9/etc
nahia:~# ln -s /var/chroot/bind9/etc/bind /etc/bind

De esta manera podremos seguir configurando bind como lo hacíamos hasta ahora.

Nos toca crear la parte de configuración de log. En mi caso, estoy usando Debian Lenny, la versión testing de Debian en el momento de escribir estas notas. Debian ha cambiado syslogd por rsyslog.
Nota: en el sistema donde hice la instalación, una debian testing “dist-upgradeada” desde la stable “etch” tuve que instalar rsyslog a mano.

Crearemos el siguiente fichero:

nahia:~# vi /etc/rsyslog.d/bind-chroot.conf

con el siguiente contenido:

$AddUnixListenSocket /var/chroot/bind9/dev/log

Ahora sólo nos queda indicarle al arranque de bind cómo arrancar:

Dejaremos el fichero /etc/default/bind9 así:

OPTIONS=”-u bind -t /var/chroot/bind9″
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

Con esto le estamos diciendo que arranque bind con el usuario (-u) bind con pocos privilegios y (-t) el directorio del chroot. Si el nombre del group al que pertenece bind es diferente del usuario -u bind tendremos que especificarlo también con (-g).

Ya podemos arrancar el servicio y veremos si todo ha ido bien:

nahia:~# /etc/init.d/bind9 start
Starting domain name service…: bind9.

nahia:~# ps -ef | grep named
bind 8577 1 0 19:15 ? 00:00:00 /usr/sbin/named -u bind -t /var/chroot/bind

Ya está, ya tenemos instalado bind9 en un entorno chroot. La configur
ación de las zonas y de los esclavos lo dejo para otros artículos.

VER  apparmor

Categorías:Hosting