SERVIDOR WEB Y PROXY.
Transcripción
SERVIDOR WEB Y PROXY.
SERVIDOR WEB Y PROXY. INSTALACION APACHE: forma 1 = Sudo apt-get install apache2 forma 2 la adecuada (con mysql php y apache) = # sudo apt-get install tasksell, tenemos que coger de lo que sale que pone '' LAMP Server ''. contraseña rootroot. Apache se instala en ''/var/www/html/'' AHORA HAY QUE CONSEGUIR QUE ''/home/usuario/public_html'' (esta carpeta se debe crear como usuario normal, no como root) se conecte mediante apache o mediante ''/var/www/html'' ← este es el home del apache crear una copia de seguridad en /var/www/html del index ''# cp index.html inder-original.html'' para poder editar el html de la pagina de apache, y despues la editamos eliminando todo lo que hay dentro del body y dejamos nuestro nombre ahora vamos a nuestra carpeta de usuario, en mi caso /home/fran y en esta carpeta creamos la carpeta ''public_html'' però esta carpeta la creamos como usuario normal, sin ser root, y dentro ''public_html'' carpeta creamos el ''index.html'' sin ser root tambien. Y para entrar en ella utilizamos nuestra ip '192.168.26.213/~fran'' o ''localhos/~fran'' PERO ANTES DE ESTO TENEMOS QUE EDITAR EL ACCESO PARA QE EL USUARIO PUEDA ACCEDER ejecutamos este comando como sudo: # a2emmod userdir y la pagina ya funciona Para quitar la virgulilla ''~'' del nombre los usuarios: Instalamos sudo aptitude install libapache2-mod-perl2 Que nos instalara un nuevo mod de apache, que nos permitirá a su vez ejecutar el siguiente código, que quitara la virgulilla (~) de las urls de los usuarios. Una vez instalado ejecutamos el comando gedit /etc/apache2/apache2.conf Y añadimos el siguiente código alfinal del archivo: <perl> opendir H, '/home/'; my @dir = readdir(H); closedir H; foreach my $u (@dir) { next if $u =~ m/^\./; if (-e "/home/$u/public_html"){ push @Alias, ["/$u", "/home/$u/public_html/"]; } } </perl> Reiniciamos con /etc/init.d/./apache2 restart y ya está Crear archivo php: Todo lo que este entre esto se leera como php , y los archivos tienen que guardarse con ''.php''. Ejemplo ''prueba.php'' → <?php echo ''mi primer archivo PHP en el /var/www/'' ; ?> como vemos el archivo se puede ver sin problema porque esta creado en ''/var/www/html/'', però cuando creamos el archvio en /home/usuario/public_html/'' no podemos acceder a el a no ser que sigamos los siguientes pasos. Para poder hacer que el archivo php se pueda ver en el public html del home ''/home/usuario/public_html'' primero crreamos el archivo .php y seguimos estos pasos PRIMERO tenemos quen ir a y crear unac opia del archivo php5.conf con el comando ''cp -p php5.conf php5-original.conf'' ahora abrimos el archivo php5.conf borramos todos su archivos y copiamos solo la segunda parte: http://docencia.proven.cat/jbarrantes/google_personal/ejemplos/conf_php5.conf <IfModule mod_php5.c> <FilesMatch "\.ph(p3?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> # To re-enable php in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. <IfModule mod_userdir.c> <Directory /home/*/public_html> # php_admin_value engine Off </Directory> </IfModule> y reiniciamos el apache 2 con: /etc/init.d/./apache2 restart con esto tenemos nuestro php apto para hacer lo que queramos, por ejemplo contraseñas a los archivos, ftp...etc YA TENEMOS HABILITADO EL PHP, AHORA VAMOS A HACER EL SERVIDOR CON APACHE para ello tenemos que descargar este archivo en la maquina virtual: https://docencia.proven.cat/jbarrantes/google_personal/ejemplos/subir_archivos.zip y una vez se haya descargado metemos el archivo descomprimido en la carpeta ''/home/fran/public_html'' y en el navegador iniciamos vamos a localhost/fran/miftp para entrar en ella Ahora borraremos la contraseña q viene predetirminada, la borramos en el archivo index.php dentro de la carpeta miftp el archivo viene editado así: y tenemos que dejarlo así y ya no nos pide contraseña Para cambiar la contraseña lo que debemos hacer es, entrar en el archivo ''candado.php'' y dejarlo así con la contraseña que queramos: y para que pida la contraseña descomentamos el arhcivo candado.php: PARA ENCRIPTAR TU CONTRASEÑA PHP. Creamos un archivo y lo nombramos contra.php en este archivo escribimos <?php echo md5 ('contraseña'); ?> ahora abrimos el archivo contra.php en el navegador, y esta es nuestra contraseña encriptada: y la copiamos en el archivo candado.php Hacer servidores de dominio PRIMERO INSTALAMOS EL BIND9 y configuramos la zonas sudo apt-get install bind9 y haccemos la configuración segun pone aquí: https://docencia.proven.cat/jbarrantes/google_personal/prueba7.php?num=343 cuando este configurado: y ahora podemos entrar en froque.foo/fran/..etc HACER PAGINAS HTTPS (SEGURAS) Habilitar el módulo de seguridad SSL de apache2 como sudo: # sudo a2enmod ssl Hacer el cerfificado autofirmado SSL: Primero crearemos un directorio en sudo mkdir /etc/apache2/ssl Ahí generaremos las claves, pero primero, porque nos lo preguntará cuando lo hagamos, tenemos que crearnos nuestro dominio en bind9, por ej, perla.foo. sudo openssl req -x509 -nodes -days 365 (con este determinamos los dias de duración) -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt Cuando nos pide el Comon (e.g. server FQDN or YOUR name) ← aquí debemos poner nuestro dominio. ''Froque.foo'' Las claves de seguridad estan creadas en /etc/apache2/ssl Cofigurar el SSL en Apache2 Primero haremos una copia de seguridad: sudo cp -p /etc/apache2/sites-available/default ssl.conf /etc/apache2/sites-available/default-ssl.conf_original. Ahora editaremos el archivo: sudo gedit /etc/apache2/sites-available/default-ssl.conf y eliminamos todo lo que tenga ese archivo y copiamos esto: https://docencia.proven.cat/jbarrantes/google_personal/ejemplos/ssl-apache2.txt Activar SSL para el host-domnio: sudo a2ensite default-ssl.conf y reiniciamos el apache: sudo service apache2 restart RESTRINGIR MEDIANTE CONTRASEÑA A ALGUNOS DIRECTORIOS ( .usuarios) https://docencia.proven.cat/jbarrantes/google_personal/prueba7.php?num=349 Asociar varios dominios a una misma ip: Archivos a modificar /etc/bind/ /var/www/html apache2.conf Pasos a seguir. A- El directorio. Crearemos un directorio en /var/www/html/ lo creamos asi: sudo mkdir -p /var/www/html/trinidad.foo/public_html sudo mkdir -p /var/www/html/roque.foo/public_html y dentro de este creamos otro que ponga public_html. B.-Permisos Si queremos que nuestro usuario regular pueda modificar los archivos en nuestro directorio web, necesitamos cambiar el propietario haciendo lo siguiente: sudo chown -R $USER:$USER /var/www/html/trinidad.foo/public_html sudo chown -R $USER:$USER /var/www/roque.foo/public_html Debemos además modificar los permisos un poco para asegurarnos que el permiso de lectura pueda ser aplicado a archivos y directorios para que las páginas puedan ser desplegadas correctamente: sudo chmod -R 755 /var/www/html Ahora tenemos que crear el index dentro de las public_html creadas previamente: sudo gedit /var/www/html/trinidad.foo/public_html/index.html sudo gedit /var/www/html/roque.foo/public_html/index.html C.- Archivos virtuales e sites-avalaible : sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sitesavailable/trinidad.foo.conf ← Esto es para crear un sitio virtual ahora tenemos que editar el archivo trinidad.foo.conf: sudo gedit /etc/apache2/sites-available/trinidad.foo.conf y eliminamos todo loq ue este dentro de <VirtualHost *:80> y </VirtualHost> y copiamos esto: ServerAdmin [email protected] ServerName esmeralda.foo ServerAlias www.esmeralda.foo DocumentRoot /var/www/html/esmeralda.foo/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined y sustituimos donde ponga esmeralda por el nombre de la pagina o apellido, en mi caso «trinidad.foo» D- Activar los host virtuales: sudo a2ensite trinidad.foo.conf sudo a2ensite roque.foo.conf y luego reiniciar el servicio ''service apache2 restart''