- Login a nuestro servidor
- Adminstracion de usuarios
- Establecer una conexión SSH
- Establecer y configurar un firewall
- Locales
- Configurar repositorios y actualizar a los últimos paquetes. Paquetes esenciales
- Instalación y configuración de un servidor FTP
- Instalación Mysql
- Instalación de Apache y PHP
1.Login
Antes de nada en caso de que sea una reinstalación y no una instalación nueva hemos de eliminar la entrada en SSH known_host que referencia a nuestra IP del servidor y salvar el archivo, todo ello con el comando
nano ~/.ssh/known_hostsPara logearnos en nuestro servidor hay que abrir un terminal y escribirssh root@ip.de.nuestro.servidor
2.Administración de usuariosNos logeamos y cambiamos el password a uno de nuestra elección, tras lo que añadiremos un usuario al sistema para no tener que volver a entrar como root y le añadimos los permisos correspondientes.
3.Establecer una conexión SSHpasswdadduser admin
visudo
admin ALL=(ALL) ALL
Abrimos otro terminal e introducimos
mkdir ~/.ssh para crear una carpeta donde guardar la llave privada, tras lo cual creamos las llaves ssh con ssh-keygen -t rsa y pulsamos enter cuando nos pregunten por una passphrase, tras lo cual se crearan dos archivos, uno de ellos es el .pub y es el que contiene la clave publica que almacenaremos en el servidor. Acuerdate de proteger la carpeta con las claves.Copiaremos la clave pública en el servidor con el siguiente comando (suponiendo el usuario admin):
scp ~/.ssh/id_rsa.pub admin@tu.ip.del.servidor:/home/admin/Ahora vamos a dar permisos para el SSH por lo que movemos el archivo que contiene la clave pública a un directorio llamado .ssh, tras lo cual le damos permisos a la llave pública.El siguiente paso es configurar el SSH, para lo cual debereis de introducir el comandomkdir /home/admin/.ssh
mv /home/admin/id_rsa.pub /home/demo/.ssh/authorized_keyschown -R admin:admin /home/admin/.ssh
chmod 700 /home/admin/.ssh
chmod 600 /home/admin/.ssh/authorized_keys
nano /etc/ssh/sshd_config y añadir la siguiente configuración (a modo de ejemplo), donde debereis cambiar las siguientes lineas:Como tenemos una clave publica y privada no va a hacernos falta la autenticación por password, por lo que será más cómodo anularlo.Port 30000<--- cambia al puerto de tu elección Protocol 2 PermitRootLogin no PasswordAuthentication no X11Forwarding no UsePAM no UseDNS no AllowUsers admin
4.Establecer y configurar un firewall
Deberemos estar logeados como superusuario (sudo) para poder realizar esta tarea. Siempre que queramos ver el estado de las conexiones (firewall) tenemos que teclear iptables -L. Como habrás podido deducir iptables es la tabla que guarda la configuración de las conexiones entrantes y salientes, así que lo que haremos será editar esta tabla, para ello tecleamos:
nano /etc/iptables.test.rulesY podemos usar esta tabla como plantilla.Tras lo que salvaremos la tabla y haremos que sea siempre aplicada al arrancar el servidor modificando el archivo /etc/network/interfaces
Añadiremos tan sólo una linea al archivoiptables-restore < /etc/iptables.test.rulesiptables-save > /etc/iptables.up.rulesnano /etc/network/interfaces
...
auto lo
iface lo inet loopback
pre-up iptables-restore < /etc/iptables.up.rules # The primary network interface ...5.Locales
Los locales son muy fáciles de instalar y básicos para las webs con las que vayamos a trabajar, si no tenemos el locale instalado referente al idioma de la web nos causará problemas.
De modo que lo instalaremos (seleccionamos con espacio y le damos al ok con enter)
sudo aptitude install localesY configuraremos6.Configurar repositorios y actualizar a los últimos paquetes. Paquetes esencialessudodpkg-reconfigure locales
Ahora que tenemos instalados y configurados los locales podemos configurar los repositorios y actualizarlos para tenerlo todo a punto. Los repositorios están situados en un archivo llamado sources.list, que editaremos con el siguiente comando:
sudo nano /etc/apt/sources.listNos aparecerán cuatro lineas con repositorios, lo suyo es que las modifiques para que apunten al repositorio más cercano que tengas (respecto a la localización de tu servidor) o para que apunte al sitio global. Una manera neutral de que quede sería:deb http://ftp.debian.org/debian/ lenny main
deb-src http://ftp.debian.org/debian/ lenny main
deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contribRecuerda que siempre puedes añadir más repositorios que no sean oficiales, aunque a tu propio riesgo.
Tras esto meteremos los comandos
para actualizar a la ultima version los paquetes que tenemos instalados.sudo aptitude safe-upgradesudo aptitude full-upgrade
Ahora nos tenemos que encargar de los paquetes esenciales, que no son más que paquetes con las librerías comunes usadas por la mayoría de programas y compiladores, todo ello se puede hacer con el simple comando:
sudo aptitude install build-essential7.Instalación y configuración de un servidor FTPPara poder hacer uso de una conexión ftp necesitas dos cosas, un servidor ftp (para servir la conexión) y un cliente ftp (para hacer uso de la conexión). Servidores ftp hay muchos, aunque de los que h e visto para debian al menos el que me inspira más confianza es vsftp (very secure ftp) ya que es bastante configurable y bastante sencillo en su instalación.
Para instalarlo nos logeamos como superusuario (su) simplemente escribimos
aptitude install vsftpd Tras la instalación vendrá la configuración, la primera es la del servidor situada en el archivo /etc/vsftpd.conf
las distintas opciones a tener en cuenta son:listen=Yes (Este es para que corra como servidor independiente y no como parte de inet)
anonymous_enable=No (Evitamos conexiones anonimas que son peligrosas en ftp)
local_enable=Yes
write_enable=Yes
local_umask=022
nopriv_user=admin (o el usuario que hayais puesto con privilegios)
ftpd_ banner=Mensaje de bienvenida que te apetezca
pam_service_name=vsftpd
pasv_max_port=65534
pasv_min_port=49152
Éstas dos ultimas opciones son bastante importantes en caso de que tan solo podamos usar conexiones pasivas. Por tanto deberemos abrir en el firewall los puertos correspondientes para poder conectarnos a nuestro servidor ftp.
Primero reiniciamos nuestro servidor ftp:
/etc/init.d/vsftpd restart Y abrimos otra vez el firewallnano /etc/iptables.test.rules Y añadimos las siguientes lineas:# Allows ftp connections
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
- A INPUT -p tcp --dport 49152:65534 -j ACCEPT
Ahora salvamos el fichero y reconfiguramos el firewall
Con ello tendremos abiertas las conexiones en el firewall. Podemos ir a nuestro cliente ftp preferido y poner la direccion del servidor, puerto 21 y el nombre de usuario y password que hayamos asignados. El servidor ftp debe de estar funcionando sin problemas.iptables-restore < /etc/iptables.test.rulesiptables-save > /etc/iptables.up.rules
8.Instalación Mysql
La instalación de Mysql es de lo más sencilla, simplemente tecleamos
sudo aptitude install mysql-server mysql-client libmysqlclient15-devcreamos un usuario root e introducimos las dos veces que nos lo pidan el password para ese usuario y listo, ya tenemos mysql funcionando.Sin embargo está bien deshabilitar la base de datos InnoDB para que consuma menos espacio en mem oria, para ello introducimos el siguiente comando
sudo nano /etc/mysql/my.cnfY en el archivo buscamos la frase con el encabezado #* InnoDB, en ese apartado simplemente quitamos el comentario (quitar la almohadilla #) de la frase skip-innodb y salvamos el archivo.9.Instalación de Apache y PHP
Como los anteriores paquetes, Apache2 y Php vienen incluidos con la distro de debian lenny, con lo cual para una instalación básica de apache simplemente deberíamos escribir:
sudo aptitude install apache2 apache2.2-common apache2-mpm-prefork apache2-utils libexpat1 ssl-certAl final de la instalación veremos que pone el siguiente error:apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.0.1 for ServerNameEs porque no hemos definido el nombre del servidor en la configuración de apache, por lo tanto deberemos abrir el archivo de configuración de apache (insisto en que es una instalación muy básica) y cambiar la linea que pone ServerName con el nombre de nuestro servidorTras esto tan sólo tenemos que reiniciar el servidor apachesudo nano /etc/apache2/apache2.confServerName nombreServidor
sudo apache2ctl gracefuly escribir en el navegador la dirección ip del servidor, tras lo que veremos el mensaje "It Works!"Ya está Apache instalado, por lo tanto tán sólo nos queda instalar Php5 y todo estará casi listo. Tened en cuenta los modulos que querais instalar de Php ya que para CMS como drupal o wordpress os piden como requerimientos algunos específicos, para ello podemos buscar los modulos disponibles con el comando
sudo aptitude search php5-Una vez elegidos los instalamos con aptitude y el nombre de los paquetessudo aptitude install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd \
php5-imagick php5-mcrypt php5-memcache php5-mhash php5-mysql php5-pspell php5-snmp \
php5-sqlite php5-xmlrpc php5-xslY reiniciamos apache para que tenga en cuenta los cambiossudo /etc/init.d/apache2 reloadAhora nos disponemos a comprobar la instalación de Php, para lo cual vamos a crear un archivo php llamado test en la carpeta publica por defecto de apache sudo nano -w /var/www/test.php y añadir al archivo php el siguiente código:
Ahora salvamos y vamos a la dirección donde se encuentra el archivo con nuestro navegador (en mi caso http://67.23.29.85/test.php ) y comprobamos el resultado.Ya tenemos nuestro servidor minimamente configurado y listo para trabajar con él. :)