Servidor casero en apache (LSS + Creación) Alejandro Moreno Garc a í Servicios - m07
Para entender lo que viene a partir de ahora necesitaras lo que explico anteriormente. Ahora, prosigamos. -Para comenzar con los preparativos tendremos que: -Hacer un: Home/[usuario]/public_html/index.html -Que no deja de ser un acceso directo a: /var/www/html/index.html Lo que viene a continuación es: -Servidor casero ftp con apache y php -Certificados SSL Historia de SSL: La primer empresa que hizo lo de la seguridad, se hizo famoso, tanto que la primera persona civil en subir a la luna fue el creador de binshine, distribuidor de seguridad.
Creacion del servidor Para crear un mini-servidor ftp -Instalar LAMP: -Tasksel>[Seleccionar LAMB ]>[Tab]/[Espacio] Contraseña: rootroot -Para que funcione el servidor tenemos que decirle a apache dejar funcionar a PHP, linux necesita que Root le diga que hacer. Si quieres que apache funcione, tienes que meterte en los archivos de configuración y arreglarlo. Mas concretamente en: [Crear un PHP] Ahora crearemos un archivo php, que nos servirá como creador de clave encriptada con md5, pero por ahora es un mero ejemplo de como crear un php simple con texto plano. -Para crear un archivo PHP haces lo siguiente: -Gedit [nombrealeatorio.php(.php tiene que ser siempre php, no es un nombre, es una extensión.)] -Y una vez creado y habierto, comenzar con su edicion. -<?php echo «mi primer php»?> Para que funcione el php en el home del [usuario] tienes que hacer lo siguiente: -Editar el archivo -cd /etc/apache2/mods-available/ -gedit php5.conf [hacemos primero una copia por si nos la cargamos] -una vez habierto el archivo copias esto: <IfModule mod_php5.c> <FilesMatch "\.ph(p3? tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> Borrando todo lo que había anteriormente y substituyendolo.
Para que nadie vea lo que hay dentro -quitar todo contenido de index.html de la carpeta donde residan, o poner uno sin escribir nada, vacío. -Puedes también colocar un punto delante del archivo que no quieres que se vea. Creacion del servidor Para hacer un miniservidor php se requiere hacer lo siguiente: Descarga e instalacion sin contraseña -Descargar los archivos de este enlace: «https://docencia.proven.cat/jbarrantes/google_personal/ejemplos/subir_arch ivos.zip» -Descomprimir y colocar dentro de de la carpeta public-html. -Pero tiene contraseña,para quitarla, tendremos que modificar el archivo index con: -Gedit index.html(dentro de miftp) -SI vemos la parte de arriba hay un candado.php, por lo que lo que tendremos que hacer será en el código primero hacer lo siguiente: Pasar de: <?php include ('candado.php')?> A: <?php //include ('candado.php')?> Configuracion para colocar contraseña Para poner una contraseña encriptada tendrás que hacer lo siguiente: -Crear un archivo cualquiera php y meter dentro lo siguiente <?php echo md5 ('[contraseña]')?> luego abres en navegador ese archivo php y coges el numero que haya escrito, lo colocas substituyendo los dos números que hay en password y listo.
Instalacion del Servicio SSL a nuestro servidor Para instalar los sistemas de seguridad tendrás que seguir los siguientes pasos: -Habilitar el modulo de seguridad ssl de apache2 -sudo a2enmod ssl -crear los sistemas bind9 copiando exactamente lo siguiente[los datos colocados en los respectivos archivos db.moreno 192.rev named.conf.local poseen mis datos, por lo que deverás cambiar algunos parametros como el nombre y las direcciones IP.: -En zonas: zone "moreno.foo" { type master file "/etc/bind/db.moreno" } // Archivo para bãºsquedas inversas zone "192.in-addr.arpa" { type master file "/etc/bind/192.rev" } -En db.moreno BIND data file for local loopback interface $TTL 604800 @ IN SOA moreno.foo. root.moreno.foo. ( 2 Serial 604800 Refresh 86400 Retry 2419200 Expire 604800 ) Negative Cache TTL @ IN NS moreno.foo. @ IN A 192.168.26.202 @ IN MX 0 moreno.foo. www IN A 192.168.26.202
perro IN CNAME moreno.foo. @ IN AAAA ::1 -Inverso BIND reverse data file for local loopback interface $TTL 604800 @ IN SOA moreno.foo. root.moreno.foo. ( 1 Serial 604800 Refresh 86400 Retry 2419200 Expire 604800 ) Negative Cache TTL @ IN NS moreno.foo. 202.26.168 IN PTR moreno.foo. Aclaración Tras hacer y funcionar las zonas, tendremos que Habilitar el modulo de seguridad ssl de apache2 -sudo a2enmod ssl Crearemos un directorio en /etc/apache2 llamado ssl donde poner los certificados. Ahora introducimos la linea: sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt Para modificar el tiempo restante a la caducidad de la seguridad, tendrás que modificar el «-days [numero]» por el numero que tu desees. Por defecto es un año= -days 365 Pero dos años sería= -days 730
ahora configuraremos el apache para que ponga el ssl con: -gedit /etc/apache2/sites-available/default-ssl.conf Vas a tener que quitarlo todo y substituirlo por: <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin admin@perla.foo ServerName perla.foo ServerAlias www.perla.foo DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key <FilesMatch "\.(cgi shtml phtml php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown </VirtualHost> </IfModule> Por ultimo tendremos que activar el ssl con el código siguiente: sudo a2ensite default-ssl.conf
Para cambiar carpetas de usuarios (carpetas que pertenezcan a apache) Tienes que moverte dentro de: -cd /etc/apache2 y editar el siguiente archivo: -gedit apache2.conf Copiar las siguientes lineas al final justo antes del ultimo apartado. (Por cada carpeta tendrás que copiar este código, cambiando su ruta y el [AuthUserFile] En ese.usuarios determinaras los usuarios a los que pertenece esa carpeta.) <DIRECTORY /var/www/html/ejemplos> AuthType Basic AuthName "XPP: Admin Area" AuthUserFile /var/www/ejemplos/.usuarios require valid-user </DIRECTORY> Para que se creen los usuarios con el.usuarios se deberá colocar el siguiente comando: -htpasswd -c.usuarios [user] -Una vez hecho, para acabar, deberás hacer un -Service apache2 restart Hay dos archivos que son diferentes en apache, son llamados acces.log y error.log. Acces log te dice quien ha entrado en tu web. Están situadas en /var/log/apache2