Archivo de etiquetas de 'debian'

Pag 2 de 4

Montaje de un Servidor Ciego con Debian Lenny (12.-Encendido Remoto con Wake On Lan)

fuente: http://usuariodebian.blogspot.com

Aprovechando que los ordenadores actuales no están totalmente apagados sino en reposo, es decir con alimentación constante mientras lo tenemos apagado, podemos encenderlos remotamente.

Wake On LAN (WOL) es un estándar de redes que permite encender un equipo de forma remota, mediante el envío de un paquete mágico (Magic Packet). Magic Packet es, como indica la propia palabra, un paquete especial que recibe la tarjeta de red.

Las utilidades que se le pueden dar son muy variadas, desde encender un servidor web/ftp, acceder a los archivos que guardas en tu ordenador, o en el ordenador del trabajo y hasta por pura vagancia para no tener que levantarse e ir a la habitación de al lado.

Requisitos necesarios:

1.-Disponer de una fuente de alimentación ATX, actualmente todos los equipos incorporan fuentes ATX, pero todavía nos podemos encontrar con algunos equipos antiguos que usan fuentes AT, las cuales son incompatibles con Wake On LAN (WOL). Las antiguas fuentes AT se activan mediante un interruptor que proviene de la misma fuente a través de un cable, mientras que las ATX la enciende y la apaga la placa base. Esto hace imposible un encendido por software con fuente AT ya que cuando apagamos el ordenador no existe corriente alguna en la placa base.

Como distinguir entre un conector AT y otro ATX

2.- Disponer de una placa base con soporte wake on lan (wol), y activarla la opción correspondiente en la BIOS.

3.- Tener una tarjeta de red con soporte wake on lan (wol), la tarjeta de red debe tener un cable de tres pines que es necesario conectar a la placa base


A si es como quedaría la tarjeta de red en la placa base vista desde arriba.

Activar en la BIOS el soporte para Wake On LAN. Dependiendo de la BIOS que utilice tu ordenador se habilitara con una opción u otra diferente.

Si la tarjeta de red viene integrada en la placa base no hará falta conectar ningún tipo de cable adicional, lo único necesario en este caso en configurar la BIOS.

Para finalizar la explicación, conviene saber que hay dos estándares de administración de energía, APM y ACPI. El segundo es mas reciente y se diseñó para sustituir al estándar APM incluyendo nuevas características. Algunos equipos soportan ambos, pero no se pueden tener activados simultáneamente.

Si no se tiene activado ninguno será imposible encender por software nuestro equipo, ya que al apagarlo lo hacemos del todo. Lo más conveniente es activar el estándar ACPI si es posible, ya que incluye más opciones de configuración, tal y como muestro aquí:

  • S0 Encendido y completamente operativo.

  • S1 El sistema esta en modo baja energía (sleep mode). El reloj de la CPU parado, pero la RAM esta encendida y operativa

  • S2 Similar al anterior, solo que la CPU está totalmente apagada.

  • S3 La RAM se encuentra en standby, con la mayoría de los otros componentes apagados.

  • S4 Modo hibernación.

  • S5 Completamente apagado.

La elección que debemos hacer es la S3, o en su defecto la S1 (Muchas placas solo permiten estos dos modos

Instalación en el ordenador que estará apagado, o sea el servidor

Instalamos los paquetes necesarios. Para ello nos logeamos como root:

#apt-get install ethtool etherwake wakeonlan

En primer lugar usaremos el comando ethtool, con este programa podremos ver y modificar las características y configuración de la tarjeta de red. Lo usamos en el ordenador que queremos “encender remotamente”, este comando nos informa si nuestra tarjeta de red tiene soporte Wake On LAN (WOL)

#ethtool eth0

Se nos mostrará algo así:

Settings for eth0:

Supported ports: [ TP MII ]

Supported link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

Supports auto-negotiation: Yes

Advertised link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

Advertised auto-negotiation: Yes

Speed: 100Mb/s

Duplex: Full

Port: MII

PHYAD: 32

Transceiver: internal

Auto-negotiation: on

Supports Wake-on: pumbg

Wake-on: d

Current message level: 0×00000007 (7)

Link detected: yes

Como vemos, esta tarjeta soporta Wake On LAN (WOL), eso nos dice la linea siguiente:


Supports Wake-on: pumbg

También nos dice que esta desactivado, en la siguiente linea:


Wake-on:d

d= disable (desactivado)

Para activarlo no tenemos nada más que hacer:

#ethtool -s eth0 wol g

Si volvemos a teclear en consola ethtool eth0 tendremos que ver:

Settings for eth0:

Supported ports: [ TP MII ]

Supported link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

Supports auto-negotiation: Yes

Advertised link modes: 10baseT/Half 10baseT/Full

100baseT/Half 100baseT/Full

Advertised auto-negotiation: Yes

Speed: 100Mb/s

Duplex: Full

Port: MII

PHYAD: 32

Transceiver: internal

Auto-negotiation: on

Supports Wake-on: pumbg

Wake-on: g

Current message level: 0×00000007 (7)

Link detected: yes

Ahora, para que la tarjeta de red active siempre que se encienda el servidor esta opción por defecto, configuraremos el archivo interfaces colocando la siguiente línea up ethtool -s eth0 wol g justo debajo de la configuración de la tarjeta.

#nano /etc/network/interfaces

Se nos quedará algo así:

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto eth0

iface eth0 inet static

up ethtool -s eth0 wol g

address 192.168.0.XXX # IP del Servidor

netmask 255.255.255.0 # Máscara de Subred

network 192.168.0.0 # Grupo de Trabajo

broadcast 192.168.0.255 # Bcast

gateway 192.168.0.1 # IP del Router

Instalación en el ordenador que estará encendido

En este ordenador, el que tiene que enviar el paquete mágico (Magic Packet), instalamos uno de estos dos paquetes:

#apt-get install etherwake

o
#apt-get install wakeonlan

pero hemos de diferenciar entre uno y otro, etherwake necesitas de privilegios de root, y wakeonlan cualquier usuario puede hacer uso de el.

el método es bien sencillo

# etherwake -i “interfaz para el envio” “MAC address del ordenador remoto” mac=”" del=”" equipo=”" remoto=”"

Ejemplo ficticio:
# etherwake -i eth1 11:22:33:44:55:66

Si no especificamos “la interfaz para el envío” con la opción -i, el paquete mágico (Magic Packet) sera enviado a través de la interfaz por defecto establecida por el programa eth0.

Ejemplos ficticio:


# etherwake 11:22:33:44:55:66

o bien usando este otro programa:

$ wakeonlan “MAC address del ordenador remoto”

Ejemplos ficticio:


$ wakeonlan 11:22:33:44:55:66

Para conocer la dirección MAC de nuestra tarjeta no tenemos más que teclear:

#ifconfig

Obtendremos

eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx

inet addr:192.168.0.XXX Bcast:192.168.0.255 Mask:255.255.255.0

inet6 addr: fe80::280:5aff:fe68:fe96/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:231 errors:0 dropped:0 overruns:0 frame:0

TX packets:182 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:24947 (24.3 KiB) TX bytes:19077 (18.6 KiB)

Interrupt:17 Base address:0xa800

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:8 errors:0 dropped:0 overruns:0 frame:0

TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)

donde xx:xx:xx:xx:xx:xx es la MAC.

Con esto nos conectaremos desde nuestra red privada. Conectarnos desde internet es harina de otro costal…

Montaje de un Servidor Ciego con Debian Lenny (11.-Estadísticas con Awstats)

Una vez completemos la instalación y configuración de este software tendremos información al detalle como por ejemplo el tiempo que ha estado un usuario conectado a nuestra web, visitas por mes, semana, día, de donde provienen las visitas, en fin todo lo que necesitamos saber de lo que viene a ver que tenemos en nuestro servidor.

Para su instalación vamos a comenzar por arrancar nuestro servidor, nos logeamos como usuario root y lo instalamos:

#apt-get install awstats

Para su instalación en el sistema vamos a ejecutar un script de configuración escrito en Perl situado en la ruta ( /usr/share/doc/awstats/examples )

#cd /usr/share/doc/awstats/examples

#perl awstats_configure.pl

Para su configuración nos encontraremos con algunas preguntas que tendremos que responder. Lo que esta en negrita son las respuestas:

—– AWStats awstats_configure 1.0 (build 1.7) (c) Laurent Destailleur —–

This tool will help you to configure AWStats to analyze statistics for

one web server. You can try to use it to let it do all that is possible

in AWStats setup, however following the step by step manual setup

documentation (docs/index.html) is often a better idea. Above all if:

- You are not an administrator user,

- You want to analyze downloaded log files without web server,

- You want to analyze mail or ftp log files instead of web log files,

- You need to analyze load balanced servers log files,

- You want to ‘understand’ all possible ways to use AWStats…

Read the AWStats documentation (docs/index.html).

—–> Running OS detected: Linux, BSD or Unix

Warning: AWStats standard directory on Linux OS is ‘/usr/local/awstats’.

If you want to use standard directory, you should first move all content

of AWStats distribution from current directory:

/usr/share/doc/awstats/examples

to standard directory:

/usr/local/awstats

And then, run configure.pl from this location.

Do you want to continue setup from this NON standard directory [yN] Y

—–> Check for web server install

Enter full config file path of your Web server.

Example: /etc/httpd/httpd.conf

Example: /usr/local/apache2/conf/httpd.conf

Example: c:\Program files\apache group\apache\conf\httpd.conf

Config file path (’none’ to skip web server setup):

>/etc/apache2/apache2.conf

—–> Check and complete web server config file ‘/etc/apache2/apache2.conf’

—–> Need to create a new config file ?

Do you want me to build a new AWStats config/profile

file (required if first install) [y/N] ? N

—–> Add update process inside a scheduler

Sorry, configure.pl does not support automatic add to cron yet.

You can do it manually by adding the following command to your cron:

/usr/share/doc/awstats/examples/wwwroot/cgi-bin/awstats.pl -update -config=myvirtualserver

Or if you have several config files and prefer having only one command:

/usr/share/doc/awstats/examples/tools/awstats_updateall.pl now

Press ENTER to continue…

No config file was built. You can run this tool later to build as

much config/profile files as you want.

Once you have a config/profile file, for example ‘awstats.demo.conf’,

You can manually update your statistics for ‘demo’ with command:

> perl awstats.pl -update -config=demo

You can also read your statistics for ‘demo’ with URL:

> http://localhost/awstats/awstats.pl?config=demo

Press ENTER to finish…

Una vez completada la instalación vamos a configurar el archivo awstats.conf que se encuentra en la ruta /etc/awstats/

#nano /etc/awstats/awstats.conf

Una vez dentro buscamos la linea …

LogFile=”/var/log/apache/access.log”

y la substituimos por …

LogFile=”/var/log/apache2/access.log”

Cambiamos la linea …

LogFormat=4

por …

LogFormat=1

Buscamos la linea …

SiteDomain=””

Aquí vamos a indicarle cual es nuestro dominio, para esto vamos a usar el nombre que le pusimos a nuestro servidor.

SiteDomain=”ejemmplo.no-ip.info”

Una vez hechas estas modificaciones guardamos y guardamos y salimos.

Ahora vamos ha hacer una copia de este fichero pero con nuestro nombre de dominio, adjuntando awstats y conf

#cd /etc/awstats/

#cp awstats.conf awstats.ejemplo.no-ip.info.conf

Vamos a darle permisos al fichero log que almacena apache2 para que awstats pueda leerlo sin problemas

#chmod o+r /var/log/apache2/access.log

Ahora vamos a ejecutar la configuración que antes hicimos con el archivo awstats.conf pero para nuestro servidor

#/usr/lib/cgi-bin/awstats.pl -config=awstats.ejemplo.no-ip.info.conf

Una vez hecho esto se actualizara y tomara la información de los ficheros Log de nuestro apache2.

Ahora vamos a crear un enlace simbólico de la carpeta cgi-bin que awstats nos a creado en la ruta /usr/lib/ hacia el directorio de nuestro servidor. Nos logemamos como usuarioweb y

$ln -s /usr/lib/cgi-bin /home/usuarioweb/www/cgi-bin

Podemos restringir su acceso creando un archivo .htaccess en el interior de la carpeta cgi-bin.

Seguidamente configuraremos el fichero apache2.conf para que se muestren bien las imágenes en los resultados de las estadísticas. Nos logeamos como root y

#nano /etc/apache2/apache2.conf

Nos situamos al final del fichero y agregamos las siguiente lineas …

Alias /awstatscss “/usr/share/doc/awstats/examples/css/”

Alias /awstatsicons “/usr/share/awstats/icon/”

ScriptAlias /awstats/ “/usr/lib/cgi-bin/”

y finalmente agregaremos estas lineas al final del archivo

Alias /awstats-icon/ /usr/share/awstats/icon/

<Directory /usr/share/awstats/icon>

Options None

AllowOverride None

Order allow,deny

Allow from all

</Directory>

Guardamos y cerramos.

Ahora podemos abrir un navegador y veremos los resultados de todo esto (modifica la dirección y el archivo de awstats)

http://ejemplo.no-ip.info/cgi-bin/awstats.pl?config=awstats.ejemplo.no-ip.info.conf

Como podéis ver el programa de estadísticas esta listo para mostrarnos todo lo que hacen nuestros usuarios, con que lo hacen y cuando lo hacen. Si queremos que no todo el mundo pueda acceder a él tendremos que proteger la carpeta /home/usuarioweb/www/cgi-bin con un archivo .htaccesss, tal y como se describió en el apartado de apache2.

Ya tan solo nos queda un ultimo paso para automatizar la tarea de actualización de este programa. Para esto vamos a usar el programador de tareas Crontab que lleva nuestra Linux Debian de serie.

Con lo que veremos a continuación vamos ha hacer que se actualice una vez cada 60 minutos, así no sobrecargamos mucho nuestra maquina y tenemos prácticamente actualizada la información a la hora de verla.

Programamos la tarea

#nano /etc/crontab

Veremos algo así:

# /etc/crontab: system-wide crontab

# Unlike any other crontab you don’t have to run the `crontab’

# command to install the new version when you edit this file

# and files in /etc/cron.d. These files also have username fields,

# that none of the other crontabs do.

SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command

17 * * * * root cd / && run-parts –report /etc/cron.hourly

25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )

47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.weekly )

52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.monthly )

Nos situamos en el final del fichero y pegamos esta linea

0-59/60 * * * * root /usr/lib/cgi-bin/awstats.pl -config=ejemplo.no-ip.info -update >/dev/null

Ahora ya tenemos el programa AwStats funcionando y esperando movimiento en nuestro servidor para ofrecernos las estadísticas al detalle.

Apache Web Server: Autentificación Mediante Digest

A la hora de proteger un dierctorio en Apache2 el protocolo HTTP dispone de dos mecanismos de autentificación para restringir el acceso a un directorio mediante nombre de usuario y contraseña: Basic (el usuario y el password viajan por la red sin cifrar) y Digest (el usuario y el password viajan por la red cifrados con MD5).

La autentificación mediante Basic ya se vió en MONTAJE DE UN SERVIDOR CIEGO CON DEBIAN LENNY (4.-APACHE WEB SERVER), sin embargo no se comentó nada sobre la autentificación Digest, que bueno, para los que dispongan de datos algo “sensibles” y quieran un poco más de seguridad (relativa como el tiempo) no está mal.

Lo primero que debemos hacer es habilitar el módulo de Digest:

# a2enmod auth_digest

En el directorio cuyo acceso queremos restringir, creamos un archivo .htaccess.

# nano /ruta directorio a proteger/.htaccess

Una posible configuración sería:

AuthName “Privado”
AuthType Digest
AuthDigestFile ruta_absoluta_del_fichero_con_passwords
Require valid-user

Para crear el archivo de usuarios y passwords se utiliza la herramienta “htdigest“. La primera vez utilizad la opción -c para crear el fichero, y las sucesivas omitidlo, ya que sino se sobreescribe y se pierden los datos anteriores.

# htdigest [-c] ruta_absoluta_del_fichero_con_passwords Privado nombre_usuario

Tras esto habrá que introducir el password de dicho usuario. Es necesario que el tercer parámetro de htdigest (Privado en este caso) coincida con AuthName, para especificar un dominio de autenticación concreto.

Montaje de un Servidor Ciego con Debian Lenny (10.-Información del Sistema con PHPSYSINFO)

PhpSysInfo es un script escrito en PHP que analiza todos los recursos que nuestro servidor nos ofrece respecto al hardware. Con este software podremos ver el tiempo que lleva activo nuestro servidor y una descripción exacta del Hardware que tenemos un nuestra maquina como es el microprocesador, memoria, discos duros, etc …

Una vez lo tengamos instalado podremos ver que tal vamos de recursos del sistema como por ejemplo el uso del disco duro y el uso de memoria, estos son importantes para tener una idea de lo que vamos necesitando en nuestro servidor.

La instalación de este es muy sencilla, arrancamos nuestro servidor, nos logeamos como root e insertamos:var

#apt-get install phpsysinfo

El programa phpsysinfo se instala en la ruta /var/www/ de nuestro apache2 por defecto pero nosotros la vamos a enlazar a /home/usuarioweb/ para poder acceder a ella desde un navegador, así que ahora tendremos que hacer otro enlace simbólico para poder ver el entorno web de phpsysinfo de la siguiente manera:

Nos logeamos como usuarioweb:

$ln -s /var/www/phpsysinfo /home/usuarioweb/www/restringido/phpsysinfo

Una vez creado el enlace debemos ver el directorio de la aplicación en la raíz de nuestro servidor. Abrimos un navegador e introducimos la dirección http://ipdelservidor/restringido/phpsysinfo/.

Ahora vamos a editar el fichero /etc/phpsysinfo/config.php para que nos muestre el contenido en español o en el idioma que queramos por defecto.

#nano /etc/phpsysinfo/config.php

Obtenemos algo como:

// turn on dubugging of some functions and include errors and warnings in xml a$

// popup for displaying errors

// false = no debug infos are stored in xml or displayed

// true = debug infos stored in xml and displayed *be carfull if set this to tr$

define(’debug’, false);

// define the default language and template here

define(’lang’, ‘en‘);

define(’template’, ‘phpsysinfo.css’);

// display the virtual host name and address

// default is canonical host name and address

// Use define(’useVhost’, true); to display virtual host name.

Como podemos intuir sólo tenemos que modificar “en” por “es”.

Montaje de un Servidor Ciego con Debian Lenny (9.-Base de Datos MYSQL)

Montaremos MySQL y PhpMyAdmin para poder administrar las bases de datos que mas adelante nos podrían hacer falta para algunos usos como crear un Blog con Wordpress o para descargar mediante Torrentflux . Por si no lo sabíais todos los Blogs que podemos ver en la red están vinculados a una base de datos que pueden estar en otros lenguajes pero nosotros vamos a instalar las MySQL. Vamos a instalar unos cuantos paquetes para que nuestro servidor pueda ofrecernos bases de datos MySQL del siguiente modo:

#apt-get install mysql-server mysql-server-5.0 mysql-client-5.0 php5-mysql

Para facilitarnos manejo y la administración de nuestras bases de datos vamos a usar el entorno web PhpMyAdmin, con este software podremos crear, borrar, modificar, dar permisos, bueno podemos hacer todo a lo que se refiere a la administración de bases de datos MySQL. Comenzamos la instalación con:

#apt-get install phpmyadmin

Durante la instalación no pedirá la contraseña de root para acceder a phpmyadmin, que no tiene porqué ser la misma que la contraseña de root de nuestro servidor. La introducimos dos veces para la validación.

Resulta que el programa phpmyadmin se instala en la ruta /usr/share/ de nuestro apache2 por defecto pero nosotros la vamos a enlazar a /home/usuarioweb/ para poder acceder a ella desde un navegador, así que ahora tendremos que hacer otro enlace simbólico para poder ver el entorno web de phpmyadmin de la siguiente manera:

Nos logeamos como usuarioweb:

$ln -s /usr/share/phpmyadmin /home/usuarioweb/www/restringido/phpmyadmin

Ahora reiniciamos Apache2 como root:

#apache2ctl restart

Y ya podemos acceder desde un navegador.

Montaje de un Servidor Ciego con Debian Lenny (8.-Soporte Para PHP)

Con los pasos seguidos hasta aquí, tenemos un Servidor Web con Apache2 que podemos utilizar para subir y bajar archivos de forma privada a través de internet mediante ftp alojándolos en directorios no vistos públicamente y también para subir y bajar archivos a través de un servidor público gestionado por Apache2. Si no hubiésemos instalado Apache2 tan solo hubiésemos podido hacer uso de ftp privado a través de internet. A partir de este punto, se instalarán herramientas para poder gestionar contenido web.

Uno de los lenguajes de programación que vamos a necesitar en el servidor es PHP. Este software es utilizado tanto para programar webs, scripts o cgis. Para ello instalaremos lo siguiente:

#apt-get install php5 php5-gd php5-pgsql php5-cgi php5-cli php5-common libapache2-mod-php5

Vamos a agregar la siguiente linea (DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml) al fichero de configuración del Apache llamado apache2.conf para que nuestro Web server sea compatible con ese tipo de extensiones.

#echo DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml >> /etc/apache2/apache2.conf

Se puede verificar si se ha hecho bien con el comando (cat) que nos muestra en pantalla el contenido de un archivo.

#cat /etc/apache2/apache2.conf

Veremos al final algo así:

# Include of directories ignores editors’ and dpkg’s backup files,

# see README.Debian for details.

# Include generic snippets of statements

Include /etc/apache2/conf.d/

# Include the virtual host configurations:

Include /etc/apache2/sites-enabled/

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml

Ahora vamos a comprobar que todo ha ido bien editando un fichero en el directorio raíz de nuestro servidor Web, o sea el directorio que es visible desde otros exploradores, (en mi caso /home/usuarioweb/www/ ).

#nano /home/usuarioweb/www/info.php

Insertamos el siguiente código:

<?php phpinfo(); ?>

Guardamos el archivo info.php, cerramos y reiniciamos Apache2:

#apache2ctl restart

Ahora desde un navegador y tras introducir el usuario y la clave, entramos en la dirección IP del servidor http://192.168.0.XXX/info.php (en mi caso) y veremos información detallada sobre el soporte PHP que tenemos instalado.

apache02

Montaje de un Servidor Ciego con Debian Lenny (7.-FTP con PROFTPD)

Para subir y bajar archivos remotamente vamos a usar el software Proftpd y configuraremos algo de él. Empezaremos la instalación de Proftpd arrancando nuestro servidor. Nos logeamos como root y pasamos a instalar:

#apt-get install proftpd

Durante la instalación nos preguntará algunas cosas:

proftpd

los archivos del servidor son:

/usr/bin/proftpd
El propio servidor de FTP.

/usr/bin/ftpwho
Una utilidad que muestra información sobre los procesos de cada usuario actualmente conectado al servidor.

/usr/bin/ftpcount
Utilidad que muestra el número de conexiones actuales.

/usr/bin/ftpshut
Orden para apagar el servidor, sólo funciona en modo “standalone”.

/var/log/proftpd/proftpd.log
Fichero con la información sobre los “logs” en el servidor, habría que decidir qué política de rotación se desea seguir.

/etc/proftpd/proftpd.conf
El fichero donde configuraremos las diversas opciones que nos ofrece el servidor, en él nos centraremos a continuación, es realmente el único que manipularemos.

Luego por razones de seguridad vamos a crear un shell falso para el acceso de ftp para esto vamos a agregar una linea en el archivo /etc/shell:

#nano /etc/shells

Y agregamos la siguiente línea al final del archivo:

/bin/false

Esto evitará que cualquier usuario que utilice el ftp pueda accesar a nuestra consola de comandos. Ahora visualizaremos el archivo /etc/passwd:

#cat /etc/passwd

Con ello veremos que se ha agregado un usuario llamado “FTP” que es el que nos crea ProFTPD al instalarlo. Este será el usuario para el login al servicio de FTP. Si deseamos que además tenga un password (como es lógico) haremos como root:

#passwd ftp

y le agregaremos la contraseña. En lo listado antes por el terminal, chequeamos que su shell sea /bin/false/ puesto que si es /bin/bash podrá acceder y ejecutar comando bash no solo por el puerto 21 sino por el 22 de ssh por ejemplo y hacer estragos.

Ahora añadimos el usuario ftp al grupo ftp

#adduser ftp ftp

si no esta creado el usuario ftp haremos

#adduser ftp -s /bin/false

si no esta creado el grupo haremos:

#addgroup ftp

Con esto ya tenemos configurada la cuenta de login. Para ser un poco mas ordenado en el directorio /home/ftp/ crearemos dos directorios llamados upload y download donde se realizarán las subidas y las descargas respectivamente.-

#mkdir upload
#mkdir download

le damos los permisos correspondientes

#chmod 755 /home/ftp

#chmod 755 /home/ftp/download

#chmod 777 /home/ftp/upload

cambiamos de dueño:

#chown ftp:ftp upload
#chown ftp:ftp download

Ahora si, a editar el proftpd.conf. Primero haremos una copia por si las moscas..

#cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.confOK

Y ahora si editamos:

#nano /etc/proftpd/proftpd.conf

Y modificamos el archivo dejándolo así:

# Para aplicar los cambios tienes que reiniciar el servidor FTP

AllowOverwrite on

AuthAliasOnly on

# Escoge aqui un alias para tu usuario de FTP

UserAlias usuarioftp ftp

ServerName “nombredelservidor

ServerType standalone

DeferWelcome on

MultilineRFC2228 on

DefaultServer on

ShowSymlinks off

TimeoutNoTransfer 600

TimeoutStalled 100

TimeoutIdle 2200

DisplayFirstChdir .message

ListOptions “-l”

RequireValidShell off

TimeoutLogin 20

RootLogin off

# Aqui creamos los archivos de logs que son de mucha utilidad en caso de fallos

ExtendedLog /var/log/ftp.log

TransferLog /var/log/xferlog

SystemLog /var/log/syslog.log

#DenyFilter *.*/

#No vamos a utilizar el archivo /etc/ftpusers file

#(sirve para colocar adentro los usuarios que no queremos que se conecten)

UseFtpUsers off

# Permitir reiniciar una descarga (muy util en caso de que se caiga la conexion)

AllowStoreRestart on

#El puerto 21 es el estandar para FTP,

#es bueno cambiarlo por razones de seguridad

#aqui escogi el XXX puedes escoger el que quieras

Port XXX

#Configuracion detras de un servidor NAT

MasqueradeAddress ippublicadelservidor

# Para evitar ataques de DoS (negacion de servicio), se recomienda

# colocar un maximo de 30 procesos hijos. Si necesitas mas conexiones

# que esta simplemente aumenta este valor. Esto solo funciona con el

# servidor en modo standalone

MaxInstances 8

# Coloca el usuario y el grupo al que el servidor normalmente funciona

User nobody

Group nogroup

# Umask 022 es un buen valor por defecto para evitar que nuevos archivos y directorios

# sean escribibles por todo el mundo o por el grupo.

Umask 022 022

PersistentPasswd off

MaxClients 8

MaxClientsPerHost 8

MaxClientsPerUser 8

MaxHostsPerUser 8

# Despliega un mensaje despues de que ingresa un usuario

AccessGrantMsg “Bienvenido a ……

# Este mensaje es mostrado por cada intento de ingreso sea bueno o no

ServerIdent on “Estas en ……

# Coloca a /home/ftp como el directorio principal (home)

DefaultRoot /home/ftp

# Bloquea a todos los usuarios al directorio home que definimos

DefaultRoot ~

MaxLoginAttempts 5

#Ingresos validos solo permitimos a ftp

<Limit LOGIN>

AllowUser ftp

DenyALL

</Limit>

#Definimos los permisos de los directorios que creamos para el FTP

<Directory /home/ftp>

Umask 022 022

AllowOverwrite off

<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>

DenyAll

</Limit>

</Directory>

<Directory /home/ftp/download/*>

Umask 022 022

AllowOverwrite off

<Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>

DenyAll

</Limit>

</Directory>

<Directory> /home/ftp/upload/>

Umask 022 022

AllowOverwrite on

<Limit READ RMD DELE>

DenyAll

</Limit>

<Limit STOR CWD MKD>

AllowAll

</Limit>

</Directory>

Configurarlo así nos permite evitar algunos problemas de seguridad. En primer lugar evitamos que el usuario root se pueda logear. En segundo estamos impidiendo que una vez conectados por ftp se pueda navegar por directorios superiores al estipulado /home/ftp/. En tercer lugar, unicamente se permite el acceso a un usuario, en nuestro caso ftp, al que modificamos el alias en el archivo de configuración. Ningún otro usuario se podrá conectar. Por último, modificamos el puerto 21 por defecto para FTP por otro diferente (recordad que al modificarlo aquí deberemos abrirlo también en el Router, de lo contrario no podrá haber acceso). Ahora reiniciamos proftpd:

#/etc/init.d/proftpd restart

Y ya lo tendríamos preparado.

Si no hubiésemos añadido la opción de MasqueradeAddress con la ip pública de nuestro servidor (la podemos obtener en la pagina de no-ip.com) al conectarnos desde cualquier cliente FTP habríamos observado que el servidor responde con su ip privada, pudiendo llegar a impedirnos enroutar con él y perder la conexión. A pesar de que este problema se puede solventar desde el mismo cliente FTP, diciéndole en opciones que ignore la ip privada, es mejor configurar el archivo proftp.conf para evitar otros problemas.

Exportar una Máquina Virtual con VirtualBox

¿Qué pasa cuando obtenemos un sistema operativo configurado con los programas que necesitamos después de una ardua e inacabable instalación? ¿No sería genial poder tener una copia para instalarlo en otras máquinas sin perder tanto tiempo en esas instalaciones? Pues eso se puede solucionar con VirtualBox. Sobre todo si como yo necesitamos tener el Xp con un abanico de programas del trabajo. Podemos clonar la máquina virtual tal cual la tenemos para exportarla a otro terminal sin la necesidad de reinstalar todo. Es especialmente útil cuando se cambia a menudo de terminal.

Para exportar una máquina virtual de VirtualBox tenemos que clonarla. No sirve el copiar directamente el archivo VDI porque guarda un identificador único para cada disco (UUID). En el proceso de clonado genera un nuevo identificador para el nuevo archivo y éste ya lo podemos usar en cualquier sitio, ya sea el mismo equipo u otro distinto.

Los pasos a seguir para clonar una máquina virtual son los siguientes:

  1. Abrimos un terminal.
  2. Escribimos el siguiente comando:
    $ VBoxManage clonehd HardDisks/maquinaOriginal.vdi maquinaClonada.vdi
    donde maquinaOriginal.vdi es el nombre de la máquina virtual que tienes creada y maquinaClonada.vdi es el nombre de la nueva máquina virtual.
  3. Una vez finalizado este proceso ya tendremos nuestra máquina virtual clonada.

Montaje de un Servidor Ciego con Debian Lenny (6.-Abriendo Puertos en el Router)

Cada servicio que ofrecemos hacia Internet tiene asignado un puerto con el que se comunicará. Seguro que a mas de uno le suena aquello de … ¿Cómo abro los puertos del Router para el emule? Cuando al acceder a nuestro Router desde Internet con un navegador, el Router debe de tener el puerto 80 abierto y redireccionado hacia la IP de nuestro servidor y con el Ftp el 21.

Cada Router tiene una interfaz gráfica diferente pero básicamente todos tienen las mismas características de configuración.

Para empezar tenemos que acceder a nuestro Router desde un navegador introduciendo su IP local que es lo mismo que nuestra puerta de enlace hacia Internet o gateway.

router-01
Automáticamente se nos pedirá el nombre de usuario y el password para acceder a él. Estos datos seguramente los encontrareis junto a la documentación del Router. Si no tenéis estos datos deberéis llamar a vuestro proveedor de Internet y pedírselos.

Por experiencia, una vez dentro tendréis que modificar la contraseña del administrador porque lo normal es que la que lleve por defecto sea común a todos los Routers. Podéis imaginar el peligro que esto supone. De todos modos cualquiera que haya manejado wirless sabrá de lo que hablo.

Os dejo aquí un enlace sobre los passwords por defecto en diferentes Routers.

En mi caso es un D-Link y el panel de configuración al que accedemos es tal que así:

router-02
Para configurar los puertos debemos hacer click en la pestaña Advanced. Una vez allí podremos gestionar los puertos que deseemos. Para poder tener los servicios de Servidor Web y Ftp (que veremos en el siguiente capítulo) debemos abrir los puertos 80 y 21, y redireccionarlos a la IP estática que le asignamos al servidor, (en mi caso 192.168.0.XXX). Es aquí también donde se debe configurar el puerto para el acceso remoto SSH visto en capítulos anteriores. Si deseamos modificar el puerto 22 para SSH que viene por defecto este es el lugar para hacerlo.

router-03
En este caso el Router también trae algunas otras opciones para configurar interesantes, como son el servicio DDNS. Aquí podemos configurar nuestra cuenta de NO-IP.com u otras…
router-04

Montaje de un servidor Ciego con Debian Lenny (5.-Redireccionamiento DNS con No-IP)

Para los que tenemos una ADSL normalita solemos tener por defecto IP dinámica y con ello un problema a la hora de localizar nuestro Router ADSL desde Internet.
De este modo nos va a ser imposible localizar nuestro Servidor Web desde Internet ya que cada cierto tiempo va cambiando nuestra dirección IP. Para poder localizar lo vamos a usar el servicio gratuito de redireccionamiento de DNS que nos ofrece la empresa No-IP.
De lo que se trata es de darnos de alta en la web de No-IP y elegir un dominio. Los que habéis seguido estos manuales al pie de la letra seguro que os suena la dirección: ejemplo.no-ip.info
Lo que vamos a registrar es un dominio.no-ip.info y en dominio pondremos el nombre de nuestro servidor. Una vez registremos el dominio instalaremos un programa en nuestro servidor que se encargara de mandar un ping cada 30 minutos para que cada vez que nos cambie nuestra IP sea relacionada con el dominio que registremos.
Esta es una manera eficaz de localizar tu Servidor Web hospedado en casa detrás de tu Router ADSL. Una vez explicado que es y para que sirve el servicio de No-IP vamos a proceder con la instalación. Abrimos un navegador e insertamos la dirección http://www.no-ip.com/ para registrarnos.
Lo primero que tenemos que hacer es crear una cuenta. Para ello clickamos en Create Ancount.

noip-1
Tendremos que rellenar un formulario con nuestros datos. Una vez aceptado, nos mandarán un email al correo indicado. Tendremos que entrar en nuestro correo y activar desde allí la cuenta.

noip-2
Una vez hecho esto, nos logeamos y accedemos al panel de control. Allí deberemos seleccionar Add a Host. Como podreis observar, una vez logeados www.no-ip.com detectará nuetra ip pública y nos la mostrará.

noip-3
Aquí es donde tendremos que introducir el nombre de nuetra máquina y seleccionar el subdominio no-ip.info (cualquier otro con el que hayamos configurado nuestro servidor), debiendo quedar algo así como ejemplo.no-ip.info.

noip-4
Al final tendremos en nuestra cuenta la dirección redireccionada.

noip-5
Ahora instalaremos el software cliente No-IP para que mande los pings a nuestro ejemplo.no-ip.info

#apt-get install noip2

Durante la instalación nos preguntará algunos datos:

Nombre de usuario de No-IP.com: dirección email con la que registramos la cuenta
Contraseña de No-IP.com: contraseña de acceso a la cuenta
Intervalo de actualización (en minutos): 30
Lista de Máquinas o Grupos: dejar en blanco
Nombre del dispositivo de red: el nombre del dispositivo de red conectado a internet (eth0, eth1,…)
¿Desea desactivar la Traducción de Dirección de Red “NAT”?: No

Ya tenemos configurado nuestro cliente No-IP que irá mandando pings cada 30 minutos con nuestra IP para que nuestro dominio (ejemplo.no-ip.info) siempre sea relacionado con nuestra IP actual.
De momento no podréis ver el contenido de vuestro servidor web desde el exterior ya que todavía no hemos abierto los puertos en el Router para redireccionarlos hacia el servicio deseado.
Vamos a tener que abrir un par de puertos en nuestro Router para poder operar desde Internet con nuestro servidor.