martes, 16 de junio de 2009

Instalando Apache+Mysql+Proftp

El server lo vamos a hacer con Ubuntu 8.04 por ser la versión LTS actualmente vigente.

Desde consola instalaremos apache2, php y mysql

Trabajamos como superusuario (root):
sudo su
apt-get install apache2 php5 libapache2-mod-php5 php5-mysql php5-gd php5-curl php5-cgi mysql-server mysql-client mysql-doc-5.0 mysql-query-browser

Conjuntamente podemos instalar: phpmyadmin y mysql-admin

Podemos probar los servicios haciendo:
/etc/init.d/apache2 restart
/etc/init.d/mysql restart
/etc/init.d/mysql status

Y para probar que nuestro si apache esta funcionando:
http://localhost o http://

Con eso nos muestra el mensaje It works!

Si queremos probar php podemos:
vim /var/www/test.php

Luego de realizar cualquier cambio en la carpeta o contenido de /var/www debemos reiniciar o recargar el servicio apache
/etc/init.d/apache2 reload

y nos dirijimos a
http://localhost/test.php o http://ip_del_server/test.php

Configurando Mysql

Durante la instalación de mysql se nos pidio una clave de root.

Vamos a modificarla:
mysql -uroot -p
Enter password:
mysql> UPDATE user SET Password=PASSWORD(’newrootpassword’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;
mysql>quit


Instalando y Configurando Proftpd

sudo su
aptitude install proftpd openssl
Run proftpd: <-- standalone



Agregamos el usuario userftp.


echo '/bin/false' >> /etc/shells

useradd userftp -p password -d /home/ftp -s /bin/false
passwd userftp


Editamos proftpd.conf:


vim /etc/proftpd/proftpd.conf

Include /etc/proftpd/modules.conf

UseIPv6 off

ServerName "FTP FileServer"
ServerType standalone
IdentLookups off
ServerIdent on "FTP Server ready."
DeferWelcome off

MultilineRFC2228 on
DefaultServer on
ShowSymlinks on

TimeoutNoTransfer 600
TimeoutStalled600
TimeoutIdle 1200

DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"

DenyFilter \*.*/

DefaultRoot /var/www/

Port 21

MaxInstances 30

User nobody
Group nogroup

Umask 022 022

AllowOverwriteon
PersistentPasswd off

TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log


QuotaEngine off



Ratios off



DelayEngine on



ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock



AdminControlsEngine off


# Limit the maximum number of anonymous logins
MaxClients 8
MaxClientsPerHost 8
MaxClientsPerUser 8
MaxHostsPerUser 8
MaxLoginAttempts 5

#VALID LOGINS

AllowUser userftp
DenyALL



Umask 022 022
AllowOverwrite on

AllowUser userftp
DenyAll



Chekeamos la sintaxis
proftpd -td5

Reinicio el servicio
/etc/init.d/proftpd restart

Eso es todo.

Errores:

Si queremos acceder a nuestra basa desde fuera del server editamos el archivo my.cnf

vim /etc/mysql/my.cnf
bind-address = 127.0.0.1


la comentamos o cambiamos la ip 127.0.0.1 por la ip de la interfaz de red en la que queremos que escuche.


/etc/init.d/mysql restart


Nota: En caso de que aparezca el error:
/usr/bin/mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘debian-sys-maint’@'localhost’ (using password: YES)’

lo que hacemos es:

mysql -uroot -p
mysql> use mysql;
mysql> SELECT Host,User,Password FROM user WHERE User='debian-sys-maint';
mysql> GRANT ALL PRIVILEGES ON * . * TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'password_que_esta_en_/etce/mysql/debian.cnf' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
mysql>quit

/etc/init.d/mysql restart