Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
info:cursos:pue:lpic2-2021:s10 [04/03/2021 09:02] – [Web Services] mateinfo:cursos:pue:lpic2-2021:s10 [09/03/2021 09:03] (actual) – [Web Services] mate
Línia 9: Línia 9:
 === Web Services === Web Services
   * DOC: Material Practicas LPIC-2/LPIC-202/2-Web Services/Apache/Resumen Apache.txt   * DOC: Material Practicas LPIC-2/LPIC-202/2-Web Services/Apache/Resumen Apache.txt
 +  * DOC: Material Practicas LPIC-2/LPIC-202/2-Web Services/Apache/1-Servidor Web Apache Basico.pdf
 +  * DOC: Material Practicas LPIC-2/LPIC-202/2-Web Services/Apache/4-Laboratorio Servidor Web Apache RHE7.pdf
   * Manual Certificacion LPIC-2.pdf, pag. 289   * Manual Certificacion LPIC-2.pdf, pag. 289
-  * centos trabjando apache como debian: [[https://medium.com/@danielmayurilevano/c%C3%B3mo-configurar-hosts-virtuales-de-apache-en-centos-7-5a348a612286]]+  * centos trabajando con apache como debian: [[https://medium.com/@danielmayurilevano/c%C3%B3mo-configurar-hosts-virtuales-de-apache-en-centos-7-5a348a612286]] 
 + 
 +==== apache: directivas básicas 
 +  * DOC: Material Practicas LPIC-2/LPIC-202/2-Web Services/Apache/1-Servidor Web Apache Basico.pdf 
 +  * **ServerRoot**: configuración 
 +  * **Listen 80**: donde queremos que escuche (varios si queremos) 
 +    * **Listen <IP>:<puerto>** 
 +  * **Include conf.modules.d/*.conf**: módulos 
 +  * **User apache** 
 +    * sin shell! 
 +  * **Group apache** 
 +  * **ServerAdmin <mail>** 
 +  * **ServerName <URL>:<puerto>** 
 +  * contenedores: 
 +    * **Directory**: afecta a un directorio 
 +    * **Files**: afecta a ficheros 
 +    * **Location**: URIs 
 +  * **AddDefaultCharset UTF-8** 
 +  * <code apache><VirtualHost 192.168.2.5:80> 
 +  ServerAdmin admin@server1.curso.esp 
 +  DocumentRoot /var/www/html/intranet 
 +  ServerName intranet.192.168.2.5.nip.io 
 +  ServerAlias intranet 
 +  DirectoryIndex index.html index.php 
 +  <Location /administrador> 
 +    Order Deny,Allow 
 +    deny from all 
 +    allow from 192.168.2.1 
 +  </Location> 
 +  <Location /prohibido> 
 +    Order Deny,Allow 
 +    deny from all 
 +    allow from 192.168.0.9 
 +  </Location> 
 +   <Location /permitido> 
 +    Order Deny,Allow 
 +    deny from all 
 +    allow from 192.168.2.1 
 +  </Location> 
 +  ErrorLog logs/intranet-error_log 
 +  CustomLog logs/intranet-access_log common 
 +</VirtualHost></code> 
 +  * Location 
 +    * actua sobre las URI 
 +  * Directory 
 +    * actua sobre los directorios 
 +  * módulo: mod_auth_basic 
 +    * podríamos hacerlo con los 2 contenedores: 
 +      * Directory: /var/www/html/intranet/privado 
 +      * Location: /privado 
 +<code apache> 
 +<VirtualHost 192.168.2.5:80> 
 +  ServerAdmin admin@server1.curso.esp 
 +  DocumentRoot /var/www/html/intranet 
 +  ServerName intranet.192.168.2.5.nip.io 
 +  ServerAlias intranet 
 +  DirectoryIndex index.html index.php 
 +  <Location /administrador> 
 +    Order Deny,Allow 
 +    deny from all 
 +    allow from 192.168.2.1 
 +  </Location> 
 +  <Directory /var/www/html/intranet/privado> 
 +    Options -FollowSymLinks -Indexes 
 +  </Directory> 
 +  ErrorLog logs/intranet-error_log 
 +  CustomLog logs/intranet-access_log common 
 +</VirtualHost> 
 +</code> 
 +  * Directivas 
 +    * Timeout 
 +    * KeepAlive 
 +    * MaxKeepAliveRequests 
 +    * KeepAliveTimeout 
 +    * Listen 
 +    * Options 
 +  * Directiva **Options**: La directiva Options indica varias posibles opciones de comportamiento y estas pueden ser aplicadas a un directorio concreto. Un claro ejemplo de aplicación de estas directiva se puede observar en el siguiente cuadro: 
 +    * All: todas las opciones salvo MultiViews 
 +    * ExecCGI: Se permite la ejecución de scripts CGI. 
 +    * FollowSymLinks: el servidor seguirá los enlaces simbólicos. Tener esta opción activa aumenta el rendimiento ya que el servidor no comprueba si un fichero o directorio es un enlace simbólico y es más rápido, pero en algunos casos puede presentar problemas de inseguridad. 
 +    * Includes: Se permiten incluir Server-side. 
 +    * Indexes: Si una URL solicita un directorio y no existe DirectoryIndex (v.g., index.html) en ese directorio, el servidor devolverá una lista del contenido del directorio. 
 +    * MultiViews: Se permite mostrar contenido negociado en función de diversos valores. 
 +    * SymLinksIfOwnerMatch: Se sigue un enlace simbólico sólo si los propietarios del enlace y del destino coinciden. 
 +  * Directiva **AllowOverride**: La directiva AllowOverride controla qué directivas se pueden situar el los ficheros .htaccess y estas pueden ser aplicadas igualmente a un directorio concreto: 
 +    * AuthConfig: Permitir el uso de directivas de autorización (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, etc). 
 +    * FileInfo: Permitir el uso de directivas de control de tipo de documentos (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, etc). 
 +    * Indexes: Permitir el uso de directivas que controlan los índices de directorios (AddDescription, AddIcon, AddIconByEncoding,AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc). 
 +    * Limit: Permitir el uso de directivas de acceso de hosts (Allow, Deny y Order). 
 +    * Options: Permitir el uso de las opciones antes vistas en la directiva Options 
 + 
 +<code apache> 
 +<VirtualHost 192.168.2.5:80> 
 +  ServerAdmin admin@server1.curso.esp 
 +  DocumentRoot /var/www/html/intranet 
 +  ServerName intranet.192.168.2.5.nip.io 
 +  ServerAlias intranet 
 +  DirectoryIndex index.html index.php 
 +  <Location /administrador> 
 +    Order Deny,Allow 
 +    deny from all 
 +    allow from 192.168.2.1 
 +  </Location> 
 +  <Directory /var/www/html/intranet/privado> 
 +    Options -FollowSymLinks -Indexes 
 +    AllowOverride AuthConfig 
 +    Order allow,deny 
 +    Allow from all 
 +  </Directory> 
 +  ErrorLog logs/intranet-error_log 
 +  CustomLog logs/intranet-access_log common 
 +</VirtualHost> 
 +</code> 
 +<code; .htaccess> 
 +AuthName "Solo usuarios autorizados" 
 +AuthType Basic 
 +require valid-user 
 +AuthUserFile /var/www/claves 
 +</code> 
 +<code bash> 
 +touch /var/www/claves 
 +chmod 600 /var/www/claves 
 +chown apache:apache /var/www/claves 
 +htpasswd /var/www/claves jueves4 
 +# para borrar, htpasswd -D /var/www/claves <usuario> 
 +</code> 
 +  * **mod_digest** deprecado, para Apache 2.2 
 + 
 +==== SSL 
 +<code bash> 
 +cd /etc/httpd/conf 
 +# generamos la key 
 +openssl genrsa -out intranet.key 2048 
 + 
 +# generamos el certificado 
 +openssl req -new -key intranet.key -out intranet.csr 
 + 
 +# lo enviamos a firmar a la una CA ;) 
 +openssl x509 -req -days 365 -in intranet.csr -signkey intranet.key -out intranet.crt 
 +</code> 
 +<code apache> 
 +# copiamos la configuración :80 y cambiamos por :443, añadiendo el certificado creado 
 +<VirtualHost 192.168.2.5:443> 
 +  ServerAdmin admin@server1.curso.esp 
 +  DocumentRoot /var/www/html/intranet 
 +  ServerName intranet.192.168.2.5.nip.io 
 +  ServerAlias intranet 
 +  SSlEngine On 
 +  SSLCertificateFile /etc/httpd/conf/intranet.crt 
 +  SSLCertificateKeyFile /etc/httpd/conf/intranet.key 
 +  DirectoryIndex index.html index.php 
 +  <Location /administrador> 
 +    Order Deny,Allow 
 +    deny from all 
 +    allow from 192.168.2.1 
 +  </Location> 
 +  <Directory /var/www/html/intranet/privado> 
 +    Options -FollowSymLinks -Indexes 
 +    AllowOverride AuthConfig 
 +    Order allow,deny 
 +    Allow from all 
 +  </Directory> 
 +  ErrorLog logs/intranet-error_log 
 +  CustomLog logs/intranet-access_log common 
 +</VirtualHost> 
 +</code> 
 +<code apache> 
 +<VirtualHost 192.168.2.5:80> 
 +  ServerAdmin admin@server1.curso.esp 
 +  DocumentRoot /var/www/html/intranet 
 +  ServerName intranet.192.168.2.5.nip.io 
 +  Redirect / https://intranet.192.168.2.5.nip.io 
 +  ServerAlias intranet 
 +  ErrorLog logs/intranet-error_log 
 +  CustomLog logs/intranet-access_log common 
 +</VirtualHost> 
 +</code> 
 +  * Digital Ocean 
 +  * Cloudflare: versión gratuita, enmascara servidor, prevención DDoS 
 +  * Modulos 
 +    * **/etc/httpd/conf.modules.d** 
 +    * LoadModule 
 +    * desactivar modulos no usados 
 + 
 +==== rsync  
 +  * DOC: Material Practicas LPIC-2/LPIC-202/2-Web Services/Apache/Laboratorio Servidor Web Apache.pdf pag. 11 
 +  * montarlo como servidor 
 +    * a través **xnitd**, muy viejuno 
 +  * ''rsync -e ssh -avvz <path_origen> <ip_destino>:<path_destino>'' 
 +    * **%%--%%delete**: espejo 
 + 
 +==== ldap 
 +<code apache> 
 +NameVirtualHost 192.168.0.150:80 
 + 
 +<VirtualHost 192.168.0.150:80> 
 +ServerAdmin berto@srweb1.curso.esp 
 +ServerName aplicaciones.curso.esp 
 +ServerAlias aplicaciones 
 +<Location /> 
 +    Options None 
 +    Order deny,allow 
 +   deny  from all 
 +</Location> 
 + 
 +<Location /hello> 
 +#Utilizamos el modulo de Apache mod_authnz_ldap  
 +  Options Includes 
 +AuthBasicProvider ldap 
 +AuthType Basic 
 +AuthzLDAPAuthoritative off 
 +AuthName "Solo Usuarios Active Directory" 
 +AuthLDAPURL "ldap://192.168.0.254:389/ou=Informatica,DC=miempresa,DC=com?sAMAccountName" 
 +AuthLDAPBindDN "cn=Administrador,cn=users,dc=miempresa,dc=com" 
 +AuthLDAPBindPassword 000000 
 +require valid-user   
 +Options None 
 +   Order allow,deny 
 +   allow  from all 
 +</Location> 
 + 
 +<Location /jkstatus> 
 +    Options None 
 +    Order allow,deny 
 +    allow  from all 
 +</Location> 
 + 
 +ErrorLog logs/aplicaciones2-error_log 
 +CustomLog logs/aplicaciones2-access_log combined 
 +JkMountCopy on 
 + 
 +</VirtualHost> 
 +</code> 
 +  * **IPAServer.zip**, VMWare Player, LDAP 
 + 
 +=== proxy : squid 
 +  * DOC: Material Practicas LPIC-2/LPIC-202/2-Web Services/Squid/Laboratorio Squid.pdf 
 +  * DOC: pag. 309 
 +  * http/https 
 +  * filtrado 
 +  * squid transparente 
 +    * users -> router (tráfico http(s)) -> squid 
 +      * protocolo WWCP 
 +  * algoritmos de caché 
 +    * LRU 
 +    * LFUDA 
 +  * ''yum install squid -y'' 
 +  * **/etc/squid/squid.conf** 
 +    * ojo con los espacios en el fichero de configuración 
 +    * **http_port**: transparent (se muestra en destino la IP de la máquina y no el squid) 
 +    * **cache_dir**: <MB> <directorios> <ficheros> 
 +  * **/var/log/squid/access.log** 
 +  * **/var/log/squid/squid.out** 
 +  * ''systemctl restart squid'' 
 + 
 +==== restricciones 
 +  * regular expression 
 +    * **/etc/squid/expreg-denegada** 
 +    * añadir al fichero de configuración: 
 +      * ''acl <nombre> url_regexp "/etc/squid/expreg-denegada'' 
 +      * ''http_access deny <nombre>'' (antes de permitir otras cosas) 
 +  * restricciones, excepto algunas 
 +    * **/etc/squid/inocentes** 
 +    * añadir al fichero de configuración: 
 +      * ''acl denegados url_regexp "/etc/squid/expreg-denegada'' 
 +      * ''acl inocentes url_regexp "/etc/squid/inocentes'' 
 +      * ''http_access deny denegados !inocentes'' (antes de permitir otras cosas) 
 +  * destino de dominio: **dstdomain** 
 +  * validación contra LDAP 
 +    * en los logs aparece el nombre de usuario 
 +  * **time**:  
 +    * limitaciones horarias 
 +  * listas 
 +    * **blackweb-master** 
 +  * **sarg**: generación de informes a partir de los logs de squid
  • info/cursos/pue/lpic2-2021/s10.1614877330.txt.gz
  • Darrera modificació: 04/03/2021 09:02
  • per mate