Instalar y configurar proftpd

Este es un pequeño manual para la instalación y configuración básica de un proftpd, instalar el software, dar de alta usuarios, ver un poco los permisos etc… Esta instalación esta realizada en una Fedora Core 13, pero prácticamente todos los comandos son usables en una Debian (por ejemplo) Instalación de proftpd:

[root@bluehat ~]# yum install proftpd

En una Debian será apt-get install proftpd Editamos el fichero de configuración. A diferencia que la instalación de Debian, el proftpd en Fedora no pregunta por el tipo de instalación (standalone/inetd) ni otros parámetros (nombre del servidor ftp, etc..) En este caso editamos el fichero de configuración:

[root@bluehat ~]# vim /etc/proftpd.conf

En debian /etc/proftpd/proftpd.conf Revisamos los parámetros típicos/básicos de la configuración:

ServerName                      “BluHat Ftp Server”

Mi consejo es dejar en DNS lookups en off. Lo que hace la directiva es que cada vez que te conectas, mira en el DNS si tu IP/Nombre son correctos, eso hace que si no tienes configurado un dominio o DNS correctamente detectes una lentitud muy grande en las transferencias.

# Don’t do reverse DNS lookups (hangs on DNS problems)

UseReverseDNS                   off Iniciamos el proftpd

[root@bluehat ~]# /etc/init.d/proftpd start

Ahora vamos agregar un usuario. Por ejemplo ftpuser

adduser ftpuser

modificamos su contraseña:

passwd ftpuser

Una vez agregado el usuario, este tiene permisos para acceder a una shell del sistema. Modificaremos los permisos del usuario para  que no pueda acceder. Lo que hacemos es modificar su Shell poniendo /sbin/nologin en el fichero /etc/passwd Ya tenemos creado el usuario. El acceso por defecto será su home. Esto se define en el parámetro siguiente del pproftpd.conf (la opción ~)

DefaultRoot                     ~ !adm

En Debian esta opción esta deshabilitada, solo tenemos que quitar la “#” de la politica. Si vemos que al conectarnos aparece error de usuario/contraseña invalida tendremos que mirar los logs. Aun así, lo mas seguro es que la shell que le hemos definido en /etc/passwd no exista (en el caso de Debian) tendremos que editar el fichero /etc/shells  y agregar la shell

vim /etc/shells

Si queremos hacer que el usuario tenga acceso a un directorio especifico, modificamos su home (lógicamente deberemos aplicarle los permisos adecuados para poder leer/escribir en dicho directorio por ejemplo:

ftpuser:x:501:501::/directorio_web/web_de_ftpuser:/sbin/nologin

También podemos crear un enlace simbólico en un directorio de su carpeta hacia otra. En la de destino también deberá tener permisos. ln -s /var/www/ftpuser/web/    www Lo que hará sera crear una carpeta con un enlace hacia la web (en otro directorio llamado ftpuser)



PowerDNS + MySQl + PowerAdmin !

Este es un pequeño manual de instalación PowerDNS y PowerAdmin en Debian Lenny

Este articulo muestro como instalar el servidor PowerDNS (con MySQL en backend) y el panel de administración PowerAdmin en una Debian Lenny

1- Instalamos MySQL

Para hacerlo ejecutamos:

apt-get install mysql-server mysql-client

Para tener la MySQL escuchando en todas las interfaces (por temas de replicación) tenemos que editar el fichero “/etc/mysql/my.cnf” y comentar la linea “bind-address = 127.0.0.1:”

vim /etc/mysql/my.cnf

[…]
#bind-address = 127.0.0.1
[…]

Reiniciamos la MySQL ejecutando:

/etc/init.d/mysql restart

Para ver que funciona correctamente ejecutamos:

netstat -tap | grep mysql

Nos va aparecer algo parecido a lo siguiente:

node1:~# netstat -tap | grep mysql
tcp 0 0 :mysql : LISTEN 3031/mysqld
node1:~#

Ejecutamos

mysqladmin -u root password contraseña_root
mysqladmin -h node1 -u root password contraseña_root

para modificar la contraseña del usuario root (sino cualquiera puede entrar)

2 Instalamos PowerDNS

Para instalar PowerDNS ejecutamos:

apt-get install pdns-server pdns-backend-mysql

La configuración de PowerDNS esta en la carpeta “/etc/powerdns”

Ahora nos conectamos a la MySQL

mysql -u root -p

(nos va a pedir la Contraseña de root):

Creamos una Base de Datos para el PowerDNS ejecutando:

CREATE DATABASE powerdns;

Y ahora un usuario para la Base de Datos:

GRANT ALL ON powerdns. TO ‘power_admin’@’localhost’ IDENTIFIED BY ‘admin_password’;
GRANT ALL ON powerdns. TO ‘power_admin’@’localhost.localdomain’ IDENTIFIED BY ‘admin_password’;
FLUSH PRIVILEGES;

Y ahora creamos las tablas necesarias:

USE powerdns;

CREATE TABLE domains (
id INT auto_increment,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
primary key (id)
);

CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records (
id INT auto_increment,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(6) DEFAULT NULL,
content VARCHAR(255) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
);

CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);

CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);

… and finally leave the MySQL shell:

quit;

Ahora solo nos queda configurar PowerDNS para usar MySQL. Editamos el fichero:

vim /etc/powerdns/pdns.conf

Agregamos la linea siguiente en pdns.conf

launch=gmysql

Ejemplo:

[…]
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=gmysql
[…]

Abrimos el fichero “/etc/powerdns/pdns.d/pdns.local” y lo modificamos con los datos de conexión a la base de datos, un ejemplo seria el siguiente:

vim /etc/powerdns/pdns.d/pdns.local

gmysql-host=127.0.0.1
gmysql-user=power_admin
gmysql-password=power_admin_password
gmysql-dbname=powerdns

Reiniciamos pdns (PowerDNS)

/etc/init.d/pdns restart

Ahora ya tenemos PowerDNS listo para usar. Aquí hay algo de documentación

http://downloads.powerdns.com/documentation/html/index.html

4- Instalamos Poweradmin

Para instalar PowerAdmin necesitamos un servidor web con php. En este caso, si no tenemos uno podemos seguir las siguientes instrucciones, pero si ya tenemos uno, solo tenemos que crear un virtualhost apuntando a la carpeta /var/www/pdns (que es donde vamos a dejar los ficheros del PowerAdmin.

Lo instalamos todo con la siguiente orden:

apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-mhash php5-ming php5-mysql php5-xmlrpc gettext

Continue installing libc-client without Maildir support? <– Yes

También tenemos que configurar dos paquetes PEAR con los siguientes comando:

pear install DB
pear install pear/MDB2#mysql

Ahora ya tenemos instalado lo necesario, ahora toca configurar. Lo vamos a configurar para dejarlo en /var/www/pdns (el directorio raiz del apache por defecto, en Debian es /var/www, por lo que si necesitamos crear un VirtualHost, es mucho mas facil.

Nos descargamos la versión 2.1.3 (la ultima a fecha 6 de Julio del 200)

cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.3.tgz

Y instalamos poweradmin en /var/www/pdns

tar xvfz poweradmin-2.1.3.tgz
mv poweradmin-2.1.3 /var/www/pdns
touch /var/www/pdns/inc/config.inc.php
chown -R www-data:www-data /var/www/pdns/

Ahora abrimos el navegador y nos conectamos a la web. En este caso seria algo parecidor a esto:

http://servidor/pdns/install

o quizás

http://192.168.0.100/pdns

Y seguimos los siguientes pasos:

Elejimos el lenguaj (Ingles o aleman)

Continuamos…

Ahora nos pide los datos de conexión MySQL. Ademas nos pide la contraseña para el usuario “admin” que es el que usaremos para entrar en el interfaz del PowerAdmin.

Y por ultimo nos pide datos de configuración de servidor de nombres principal y poco mas.

Por ultimo, ahora si, eliminanos la carpeta /install de /var/www/pdns con el siguiente comando:

rm -R /var/www/pdns/install

Ahora ya podemos entrar en la web, ponemos el usuario y contraseña y a crear zonas DNS….

(Recordad que quizas teneis el puerto 53 cerramos en el firewall, sin este puerto abiuerto, no se pueden hacer consultas al servidor.