Excelente Guía,
Queda adherida a la sección!
![]()
3Likes
Esta es una discusión para el tema Instalación, configuración y optimización de LAMPF (Linux-Apache-MySQL-PHP-FTP) en el foro Configuración de Servidores, bajo la categoría Área Administrativa; Instalación y puesta en parcha de un servidor.
La instalación de un servidor para vuestra página (ya pueda ser un servidor dedicado o un VPS) es la mejor opción cuando el alojamiento compartido se queda ...
Página:
Instalación y puesta en parcha de un servidor.
La instalación de un servidor para vuestra página (ya pueda ser un servidor dedicado o un VPS) es la mejor opción cuando el alojamiento compartido se queda pequeño y ante la administración de un servidor podemos tirarnos de los pelos (como es normal) por ello creo una guía que os va a servir muchísimo para orientaros precisamente en este tema.
¿Qué distribución instalo en mi VPS o servidor dedicado?
Básicamente todas son viables siguen siendo Linux (Sistema de ficheros + kernel (núcleo) la diferencia exponencial es la forma de configuración/mantenimiento y paquetes.
Vale pero...¿Cual es la que mejor se adaptará a mi?
CentOS es un clon de Red Hat (la distribución más antigua y con más excelencia) ya que la utiliza empresas muy importantes como Telefónica, Ono IBM, Sabadell, BBVA....Es algo compleja cuando quiere ponerse cabezona dicha distribución pero al fin y al cabo da un rendimiento inmejorable. (A diferencia de Red Hat, CentOS es gratuito y soportado por la comunidad)
Debian es una muy buena distribución que se ha confirmado que ninguna empresa estar por detrás en su desarrollo, es una de las distribuciones más estables hasta el día de hoy pero su actualización no es continuada si no que se publican nuevas versiones del sistema operativo cada bastantes años, esto no es un punto negativo para nada, eso es que en la versión que trae instalada viene por defecto un plus de estabilidad.
Ubuntu basado en Debian es una muy buena distribución que a diferencia de Debian, Ubuntu saca nuevas versiones cada 6 meses con el último software, por lo que Ubuntu digamos que tiene las últimas funcionalidades y mejoras (esta distribución es la más sencilla pero no por ello ineficaz) ya que hay muchísimas guías por internet y mucho soporte por Canonical (su empresa) y la comunidad.
Ya me he decidido o eso creo...¿Ahora que?
Ahora toca la instalación, por ahora deberás saber que Debian, Ubuntu y otros derivados sus paquetes de instalación terminan con la extensión .deb. Red Hat en cambio tiene otra extensión y es .rpm. Al fin y al cabo son paquetes de instalación para cada distribución nada más. (En Windows por ejemplo podríamos asemejarlo a .exe o .msi son los dos paquetes de instalación o ejecutables)
Instalación de los paquetes necesarios
Para empezar con la instalación se requerirá mínimo las siguientes características:
- Un procesador (o vCore en caso de VPS) de un minimo de 800 Mhz
- 256 MB de RAM (Se recomienda minimo 1024 MB de RAM)
- 10 GB de disco duro
- Conexión a internet
A la vez que voy explicando la guía pondré en negrita para que sistema operativo es el que lo estoy dictando pondré RPM/DEB como deberéis haber leído lo que he escrito antes sabréis a que va referido cada paquete.
Actualización del sistema operativo:
Cuando termine de actualizar los repositorios, actualizar los nuevos paquetes y actualizar la versión ya estaremos listos para instalar todo.
Debian/Ubuntu:
Código:sudo apt-get updateCódigo:sudo apt-get upgradeRed Hat/CentOS:Código:sudo apt-get dist-upgrade
Aquí si queréis instalar MySQL 5.5/PHP 5.3/Apache 2.2.20 tendréis que instalar un repositorio a parte para cuando sigáis la lista os instale las últimas versiones, para instalarlo
Código:rpm -Uvh http://download.powerstack.org/powerstack-release-0-2.noarch.rpm
Código:yum -y updateCódigo:yum -y upgradeInstalación de Apache y librerías necesarias:Código:yum -y distclean
En este paso instalaremos apache con las librerías necesarias para el funcionamient ocorrecto de los servicios que queremos.
Debian/Ubuntu:
Red Hat/CentOS:Código:sudo apt-get install apache2 apache2-dev apache2-utils apache2.2-bin apache2.2-common libapache2-mod-auth-mysql libapache2-mod-php5 libapache2-mod-suphp
PD: Por defecto el servicio de apache en CentOS no se activa por defecto al reiniciar el sistema por lo que lo tenemos que activar con este comando.Código:yum -y install httpd openssl httpd-devel httpd-tools
Código:service httpd startCódigo:chkconfig httpd on
Creación de un usuario en el servidor que se localizará la carpeta en /homeNameVirtualHost *:80Código:sudo adduser
Instalación de MySQL y librerías.
En este caso instalaremos el MySQL con sus librerías correspondientes y asignaremos una contraseña. En Ubuntu nada más instalarlo te pedirá que ingreses la contraseña en CentOS es manual.
Debian/Ubuntu:
Red Hat/CentOS:Código:sudo apt-get install mysql-server mysql-client mysqltuner
Para configurar la contraseña deberéis hacer lo siguente:Código:yum -y install mysql mysql-server mysqltuner
Y activar el servicio que se active al reiniciar:Código:mysqladmin -u root password vuestra_contraseña
Código:service mysqld startInstalación de phpmyadmin.Código:chkconfig mysqld on
Este paso es bastante sencillo ya que es un simple comando instalaréis phpMyAdmin y configurado nada más hacerlo.
Debian/Ubuntu:
(Os pedirá la configuración durante el proceso de instalación)Código:sudo apt-get install phpmyadmin
Red Hat/CentOS:
(Al ser un script en PHP este no ha de activarse nada más que instalarlo)Código:yum -y install phpmyadmin
Instalación de PHP5 con las extensiones adecuadas.
Instalar PHP5 con las dependencias necesarias para vBulletin y otros scripts como por ejemplo XenForo...phpBB...etc.
Debian/Ubuntu:
Red Hat/CentOS:Código:sudo apt-get install php5 php5-cgi php5-dev php5-mysql php5-xls php5-mycrypt php5-gd php5-xcache php5-xdebug
La instalación de xCache en CentOS tiene que se manual dbembibre lo hizo muy bien aquí -> Instalar xCache.Código:yum -y install php php-cgi php-devel php-gd php-mysql php-xls php-mycrypt
Creación de un VirtualHost en Apache.
La creación de un VirtualHost en apache es tan simple como crear el directorio y configurarlo para que cuando se acceda por el dominio vaya a dicha localización. Deberéis seguir los siguientes pasos
Debian/Ubuntu:
- Creación de un usuario del sistema para la web- Entramos al directorio del usuario y creamos las carpetas raícesCódigo:sudo adduser nombre_de_usuario- Una vez dentro crearemos los directorios adecuados al mismoCódigo:cd /home/nombre_de_usuario/,Código:mkdir www,Código:mkdir subdominios- No iremos a la carpeta de los virtualhost de apache que se localiza enCódigo:mkdir logs- Deberemos crear un VirtualHost por defectoCódigo:cd /etc/apache2/sites-availableCódigo:sudo nano nombre_de_tu_web_principal- Luego simplemente hacemos Control + o y se guardará el archivo automáticamente, posteriormente Control + X y se cerrará el editor.Código:<VirtualHost *:80> ServerAdmin administracion@tu_dominio.com ServerName www.tu_dominio.com DocumentRoot /homenombre_de_usuario/www/ ErrorLog /home/nombre_de_usuario/logs/Error.log TransferLog /home/nombre_de_usuario/logs/Transferencia.log ServerAlias tu_dominio.com </VirtualHost>
- Activaremos el virtualhost con el siguiente comando- Recargamos apache para que adquiera la configuración base del nuevo VirtualHostCódigo:sudo a2ensite nombre_de_tu_web_principal- ¡Listo! ahora desde el navegador meteremos nuestra dirección http://tu_dominio.com y veréis como os sale Apache pero sin ningún archivo ya que la carpeta www está vacía.Código:service apache2 reload
Red Hat/CentOS:
- Creación de un usuario del sistema para la web- Ponemos una contraseña al usuario del sistema para la webCódigo:adduser nombre_de_usuario- Entramos al directorio del usuario y creamos las carpetas raícesCódigo:passwd nombre_de_usuario- Una vez dentro crearemos los directorios adecuados al mismoCódigo:cd /home/nombre_de_usuario/,Código:mkdir www,Código:mkdir subdominios- No iremos a la carpeta de los virtualhost de apache que se localiza enCódigo:mkdir logs- Deberemos editar el archivo httpd.conf y en el final poner el VirtualHostCódigo:cd /etc/httpd/conf/Código:nano httpd.conf- Luego simplemente hacemos Control + o y se guardará el archivo automáticamente, posteriormente Control + X y se cerrará el editor.Código:<VirtualHost *:80> ServerAdmin administracion@tu_dominio.com ServerName www.tu_dominio.com DocumentRoot /homenombre_de_usuario/www/ ErrorLog /home/nombre_de_usuario/logs/Error.log TransferLog /home/nombre_de_usuario/logs/Transferencia.log ServerAlias tu_dominio.com </VirtualHost>
- Reiniciamos apache para que adquiera la configuración base del nuevo VirtualHost- ¡Listo! ahora desde el navegador meteremos nuestra dirección http://tu_dominio.com y veréis como os sale Apache pero sin ningún archivo ya que la carpeta www está vacía.Código:service apache2 restart
Si queréis crear subdominios es el mismo proceso pero a diferencia que en el VirtualHost en la parte DocumentRoot deberá ir a la carpeta /subdominios y en ServerName/ServerAlias el subdominio.
Instalación de un servidor FTP.
Todo alojamiento necesita su servidor FTP para subir los archivos necesarios para la instalación de los scripts entre otras cosas. En este caso instalaremos ProFTPD.
Debian/Ubuntu:
Red Hat/CentOS:Código:sudo apt-get install proftpd
Activación del servicio tras la instalación.Código:yum -y install proftpd
Código:service proftpd startAhora iremos al directorio de configuración de ProFTPD para enjaular al usuario en su propio directorio y que no pueda ir de directorio en directorio.Código:chkconfig proftpd on
Código:cd /etc/Debemos descomentar la líneaCódigo:nano proftpd.confy sustituirla porCódigo:DefaultRootGuardamos el archivo y reiniciamos el procesoCódigo:DefaultRoot ~ !adm¡Servidor FTP listo para acceder, los datos de acceso serán la IP del VPS/servidor el usuario creado con Apache y la contraseña del mismo!Código:service proftpd restart
AVISO: Por dicho FTP no es accesible el usuario root.
Seguridad del servidor
SSHMiles de ataques son provistos por tener los puertos por defecto, la mejor forma en estos aspectos es cambiarlos por puertos que no sean ocupados por ningún proceso pero que nos lo inventemos nosotros, un proceso vulnerable en este por ejemplo es el SSH (el método de conexión al servidor)
Deberemos ir a la carpeta de SSH
Editar el archivo sshd_configCódigo:cd /etc/ssh/
Cambiar el datoCódigo:nano sshd_configaCódigo:#Port 22Yo he puesto el 2222 como puedo poner 3982 que ningun proceso conocido utiliza dicho puerto, como queráis, guardáis el archivo y reiniciamos el demonio.Código:Port 2222
¡Ahora cuando nos conectemos no podremos con el 22 si no con el 2222!Código:service sshd restart
Firewall
Cualquier servidor conectado a internet debe tener unas medidas de seguridad claves que son necesarias para que no ocurran mayores problemas/desgracias, en primera estancia instalaremos un Firewall muy potente llamado CSF+LPD. (Este proceso es genérico vale para cualquier OS)
Entramos en el directorio temporal:
Descargamos el programa.Código:cd /tmp
Descomprimimos el archivo:Código:wget http://configserver.com/free/csf.tgz
Entramos en el directorio e instalamos.Código:tar xvzf csf.tgz
Código:cd csf¡Ya estaría instalado! pero todavía no está activado ahora hay que configurarlo, para ello deberemos ir aCódigo:sh install.shy posteriormente deberemos editar el archivo csf.confCódigo:cd /etc/csf/Buscamos la lineaCódigo:nano csf.conf
Y la cambiamos a ya que cuando reiniciemos el proceso del Firewall se activará, por defecto vienen activados los puertos para web, y demás si quieres activar alguno más deberás editar el TCP_IN TCP_OUT UDP_IN UDP_OUT.Código:TESTING = "1"
Código:TESTING = "0"
OSSEC (Seguridad completamente adicional)Hay gente que la seguridad juega un papel muy importante en sus vidas y por eso mismo estoy brindando esta gran herramienta de protección de seguridad de Trend Micro llamada OSSEC
Descargamos la aplicación en el directorio temporal.
Código:cd /tmpDescomprimimos la aplicación.Código:wget http://www.ossec.net/files/ossec-hids-2.6.tar.gz
Entramos en el directorio de la aplicaciónCódigo:tar xvzf ossec-hids-2.6.tar.gz
Instalamos la aplicación, la aplicación actúa de la forma (siguiente, siguiente, siguiente) incluso está en español, para lanzar la instalación es tan fácil como.Código:cd ossec-hids-2.6/
El servicio de activará automáticamente tanto en Ubuntu/CentOs entre otros es una buena aplicación de seguridad, pero algo estricta con algunas operaciones por lo que si actua de forma rara ya sabéis por que, y aviso cuando os pide la intensidad de la seguridad, poner media baja no la pongáis extrema por que podréis tener problemas luego.Código:sh install.sh
Llevo dos horas escribiendo la guía voy a darme un respiro y después me pondré con la optimización PHP/MySQL/Apache....
¡Espero que os haya gustado mi guía y si encontráis un error no dudéis en decirmelo...
Un Saludo.
Adara.
Última edición por Adara; 29/08/2011 a las 08:48
Excelente Guía,
Queda adherida a la sección!
![]()
No Preguntes por mi Web! xD
Buena guia aunque centos tambien lo actualizan cada 6 meses, de hecho ya van por el 6 y en cuanto a seguridad aparte de esconder las versiones y si no tenemos mucha idea por CSF e iptables, que ademas te ofrece un interface grafico muy manejable para cpanel, para webmin, direcadmin, etc.
saludos
Buenas,
No la he terminado todavía pero escribiendo dos horas cansapor eso ahora más tarde o mañana la terminaré con más calma, CentOS sale una versión (pero sin cambios pertinentes/incompatibilidades de binarios) versiones rutinarias 6.x. Las versiones liberadas 5 / 6 salen cada 4 - 5 años ya que depende principalmente de RHEL que sigue con la misma política.
Un saludo.
Muy buen curro, si señor![]()
www.subirimagentotal.com
My canal you tube con vídeo tutoriales de vbulletin
Unos dicen lo que saben y otros saben lo que dicen