Estos días he estado un poco liado instalando en una maquina Centos, un completo servidor web con Apache, PHP, MySQL, Postfix, Dovecot, Amavis, y Clamav, protegiendo la maquina con CSF, y como panel de control, hemos instalado Virtualmin.
De esta forma, y utilizando únicamente software gratuito y Open Source podemos poner en marcha un potente servidor web que puede ser utilizado tanto para webs propias, como para un pequeño ISP con algunos cientos de webs.
En las siguientes lineas os explicaré como.
Lo primero de todo, el sistema operativo; hemos partido de una maquina virtual y al momento de contratarla, ya la pedimos con Centos 6.5, por lo que esa fase, nos la pudimos ahorrar, en caso de que necesites hacerlo, tampoco es muy difícil, aquí os explico como instalar un sistema de escritorio con Centos, solo deberéis cambiar el momento de elegir el software, en donde no deberéis seleccionar el entorno gráfico, y podéis dejar una instalación mínima, ya que el resto, lo haremos aquí.
A partir de este punto, nos conectamos con la herramienta que nos proporciones nuestro proveedor, para instalar SSH, y luego haremos el resto del trabajo, por medio de SSH.
Dependerá de donde hayáis contratado la maquina virtual, pero todos los proveedores facilitan una conexión de consola precisamente para los casos en que os quedéis sin conectividad.
En nuestro caso, hemos apostado por BudgetVM, En su caso, y tras contratar la maquina, para cuyo nombre, ya hemos escogido uno normalizado (neptuno.websdealquiler.es), dentro del dominio que hemos comprado con anterioridad (websdealquiler.es), nos aparece una pantalla semejante a esta:
Al pulsar en el botón de «Ver Detalles»:
nos aparece una pantalla para gestionar nuestra maquina:
Supongo que la mayoría de botones, tienen clara su funcionalidad, nosotros utilizaremos ahora el remarcado (Serial Console), que nos abrirá una ventana en la que se cargará un applet de java, para lo que tendréis que autorizar su ejecución, y poner a BudgetVM en la lista de sitios autorizados….
Para instalar SSH en Centos nos basta con:
yum -y install openssh-server openssh-client
y a continuación, lo configuramos para que arranque siempre
chkconfig sshd on
ya podemos iniciar el servicio
service sshd start
y ahora comprobamos que el puerto 22, el que utiliza SSH por defecto, esta abierto
netstat -tulpn | grep :22
La respuesta deberá ser algo semejante a esta:
Si es así, ya podemos, si queremos, cerrar nuestra sesión de consola y utilizar cualquier herramienta de conexion SSH. Si estáis trabajando desde entornos windows, yo os aconsejo WinSCP y Putty.
Independientemente de la decisión tomada, os encontráis ante la consola del VPS, y vamos a empezar a instalar nuestro servidor.
Vamos a dar un vistazo a nuestro alrededor para ver como esta todo:
Vemos como esta definida la red con «ifconfig»
Comprobamos nuestros DNSs actuales con:
Y aquí hacemos la primera modificación. Aunque podemos utilizar servicios de DNSs externo, por nuestra comodidad, vamos a integrarlos al sistema instalando después BIND. El motivo es que nuestro panel de control es capaz de actualizar el servidor DNS para poner y quitar dominios y subdominios a medida de que los vayamos creando, pero…necesita que estén en esta maquina.
Para que un servidor DNS instalado en esta maquina sirva para algo, necesitamos que la propia maquina lo consulte a la hora de buscar direcciones, por lo que necesitamos que en el fichero «/etc/resolv.conf» figure en primer lugar nuestra maquina.
Para ello, podríamos incluir una linea con:
nameserver 127.0.0.1
al principio de nuestro fichero, pero….Si, pero en muchas virtualizaciones, la direccion IP se entrega por medio de DHCP, eso hace que cada vez que arranquemos la maquina se destruya el contenido de resolv.conf, para evitar esto, lo mas sencillo es crear un fichero en /etc/dhclient.comf y le añadimos esta linea:
prepend domain-name-servers 127.0.0.1;
Esto hará que cada vez que arranquemos la maquina, se vuelva a situar esta linea en /etc/resolv.conf, y así declarar que nuestra maquina tiene DNSs
A continuación, verificamos que en /etc/hosts este el nombre de nuestro servidor
Y, aunque si acabas de contratar/instalar la maquina sabemos lo que nos vamos a encontrar, nunca está de mas verificar la situación del cortafuegos,con «iptables -L»:
Todo vacío. previsible, pero nos hemos ahorrado volvernos locos buscando problemas de conexión, si aquí hubiera quedado algo.
Siguiente paso: desactivar SELINUX (si esta activado). Para ello, abrimos el fichero /etc/selinux/config y modificamos la linea de SELINUX para que quede:
SELINUX=disabled
Ahora vamos a instalar «wget»; un programa que nos permite descargarnos ficheros desde la web, y que no siempre esta incorporado por defecto en Centos
# yum install -y wget
Y en unos segundos ya lo tendremos. Incorporamos claves para los paquetes con:
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Vamos a añadir los repositorios de RPMForge y de EPEL ya que habrá software que lo utilizará:
cd /tmp rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm rpm --import https://fedoraproject.org/static/0608B895.txt wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm
Para que el repositorio EPEL no nos de problemas, vamos a instalar un gestor de prioridades
# yum -y install yum-priorities
y modificamos el fichero /etc/yum.repos.d/epel.repo
añadiendo la linea indicada, tras lo cual, podemos actualizar nuestro sistema con
# yum update
Con esto ya podemos reiniciar nuestro servidor para empezar a instalar paquetes, cosa que explicaremos en el siguiente articulo en el que describimos como instalar Apache, MySQL, PHP, Postfix, Dovecot, y Proftp
16 comentarios
Hola Miguel. Yo también administro servidores CentOS, es mi sistema favorito para servidores. Si el servidor es público te recomiendo instalar también fail2ban para proteger de la cantidad enorme de ataques por fuerza bruta que suelen recibir los servidores,
Un abrazo
Gracias Alberto. Si, veras que terminamos instalando CSF, en este caso, y fail2ban en el siguiente tema en donde instalaremos unservidor para envio de correspondencia….
Hola Miguel. Yo también administro servidores CentOS, es mi sistema favorito para servidores. Si el servidor es público te recomiendo instalar también fail2ban para proteger de la cantidad enorme de ataques por fuerza bruta que suelen recibir los servidores,
Un abrazo