404! Tu número de la suerte! (Servidores Web) SO, Web Server, DataBase server, language. Web Servers: 1. Apache Tomcat (http://www.apache.org) 2. Lighttpd (http://www.lighttpd.net) 3. nginx (http://www.nginx.net) DataBase server: 1. Mysql (http://www.mysql.com) 2. Sqlite (http://www.sqlite.org) 3. PostgreSQL (http://www.postgresql.org) Languages: 1. Php 2. Python 3. Perl http://www.netcraft.com ¿Con cuál nos quedamos? APACHE... # apt­get install apache2 apache2­doc apache2­mpm­prefork apache2­utils ssl­cert • "El MPM «prefork» proporciona una implementación sin hilos que gestiona las peticiones de manera similar a Apache 1.3. No es tan rápido como los modelos con hilos, pero se considera más estable." • ab (herramienta de medición del rendimiento de Apache) logresolve (Resuelve direcciones IP a nombres de máquina en los archivos de registro). htpasswd (Manipula archivos de autenticación básica). htdigest (Manipula archivos de autenticación con «hash»). • Para generar certificados SSL. Apache • Configuración dividida en 3 secciones o Configuraciones al proceso (global environment)[1]. o Configuraciones de respuesta por defecto para los dominios, y virtual hosts[2]. o Configuraciones de virtual hosts para "atender" diferentes dominios[3]. o http://httpd.apache.org/docs/2.2/mod/quickreference.html • Por defecto apache define que estas configuraciones están en /etc/apache2/httpd.conf excepto en Lihuen (/etc/apache2/apache2.conf[1] /etc/apache2/conf.d/[2] /etc/apache2/sites­available[3]) /etc/apache2/apache2.conf 1. ServerRoot "/etc/apache2" //Directorio donde se almacenara la configuración del servicio. 2. Timeout 300 //Tiempo de espera en segundos para enviar un Time out en la conexión. 3. KeepAlive On //Para tener conexiones persistentes o no (http 1.0). 4. MaxKeepAliveRequest 100 //Cantidad de solicitudes cuando KeepAlive esta activado. 5. KeepAliveTimeout 15 //Tiempo de espera para respuesta a un cliente en la misma conexión. <IfModule mpm_prefork_module> • StartServers //cantidad de procesos cuando se arranca el servicio. • MinSpareServers //Idle process ( que no está atendiendo una respuesta). • MaxSpareServer • MaxClients //Cantidad máxima de clientes a atender. • MaxRequestsPerChild //Cantidad máxima de consultas por proceso, 0 = infinito, cuando se cumpla el valor, el proceso morirá. /etc/apache2/conf.d • Security o ServerTokens //Contiene cabeceras que son enviadas al cliente con información de los módulos compilados. o ServerSignature //información adicional que permite mostrar información sobre el servicio. /etc/apache2/mods­available/dir.conf • Configura los archivos que serán interpretados por el servidor. /etc/apache2/sites­available/ • En este directorio definiremos todos los sitios que puede manejar el servidor. Definiendo VirtualHosts • <VirtualHost Dirección:Puerto></VirtualHost> • DocumentRoot //Directorio que almacena el sitio. • ServerAdmin // Cuenta de correo del responsable del sitio (utilizada por ServerSignature). • ServerName //Especifica el nombre y puerto para respuesta de una petición. • SeverAlias //Permite nombres alternativos de respuesta. # apt­get install libapache2­mod­php5 php5 php5­mysql php5­mcrypt php5­mhash php5­gd php5­cli php5­cgi #apt­get install mysql­server mysql­client Probando.... Php: Generamos un archivo index.php con la siguiente línea: <?php phpinfo(); ?> Mysql: <?php $conexion = mysql_connect("localhost", "root", "unacontraseñasegura"); mysql_select_db("mysql", $conexion); $consulta = "SELECT User FROM user"; $usuarios = mysql_query($consulta, $conexion); while ($usuario = mysql_fetch_assoc($usuarios)) { echo "<strong>".$usuario['User']."</strong> Pass:"; echo "<strong>".$usuario['Password']."</strong><br> "; } ?> tunumerodelasuerte.com Es el momento de poner en marcha un sitio funcional, sin necesidad de desarrollar todo el código (∙v∙), por lo que utilizamos algún CMS. Probando... 1. Configuramos el virtualhost. http://www.bily.cl/bily/ 2. Como no tenemos un servidor de dns editamos /etc/hosts. 3. Desempaquetamos wordpress. 4. Luego deberemos crear una base de datos para que interactúe con el sitio.. #mysql ­u root ­p //Con esto nos conectamos a la base de datos #Create database luckynumber; //creamos la base de datos #Grant all on luckynumber.* to luckyuser@localhost identified by 'micontraseña'; #Flush privileges; 5. Instalamos wordpress. Problemas¿? • • • • Me cambió la dirección ip :­( Dominios .com.ar Quiero un sitio que sea privado seguridad Dirección IP • http://www.no­ip.com • http://www.zoneedit.com • http://www.dyndns.com En caso de que tengamos una ip dinámica (dhcp) deberemos configurar algún servicio para redirigir automáticamente. http://fcomvalores.files.wordpress.com Protegiendo la intimidad • Configuramos .htaccess AuthName "Restricted Area" AuthType Basic|Digest AuthUserFile /var/www/tunumerodelasuerte/.htpasswd require valid­user • Generamos el .htpasswd OUCH!!! tráfico inseguro..! Al no tener ningún método de seguridad en nuestro servidor, en caso de acceder de un lugar remoto, nuestros datos viajarán sin encriptar... SOLUCIÓN: conexión por https (hyper text transfer protocol secure) https://www.startssl.com/?app=1 Habilitando SSL Por defecto en Lihuen, la configuración para ssl viene incluída (/etc/apache2/ports.conf), sólo hace falta habilitar el módulo de apache #a2enmod ssl y crear los certificados. #openssl req ­new ­x509 ­nodes ­out /etc/ssl/certs/lamp.com_self.crt ­keyout /etc/ssl/private/lamp.com_self.key editamos /etc/apache2/sites­available/default­ssl y ya disponemos de una conexión con cifrado a nivel de capa de transporte. ¿Preguntas? Están todo invitados a la 1º Reunión del Plug. Lugar: Duff (2 y Diag 73) Hora: 20:00 GRACIAS!! avizcaino@linti.unlp.edu.ar http://lihuen.linti.unlp.edu.ar/foros