Code

Updating spanish admin manual at 20050714
[gosa.git] / doc / guide / admin / es / manual_gosa_es_certificates.tex
1 \chapter{Seguridad y Certificados}
2 \section{Introduction SSL}
3 \section{Creación de certificados}
4 La seguridad es uno de los puntos mas importantes al configurar un servidor, necesitaremos un entorno seguro donde no permitir que los usuarios manipulen y accedan a codigo o programas.
6 Una formas de conseguir esto es usando encriptación, con lo que buscamos que los usuarios y el servidor se comuniquen de forma que nadie mas pueda acceder a los datos. Esto se consigue con encriptación.
8 La otra manera de asegurar el sistema es que si existe algún fallo en el sistema o en el código, y un intruso intenta ejecutar codigo, este se vea incapacitado, ya que existen poderosas limitaciones, como no permitir que ejecute comandos, lea el codigo de otros script, no pueda modificar nada y tenga un usuario con muy limitados recursos.
9 \subsection{ Certificados SSL}
11 \noindent Existe amplia documentación sobre encriptación y concretamente sobre SSL, un sistema de encriptación con clave publica y privada.\\
12 \\
13 \noindent Como el paquete openSSL ya lo tenemos instalado a partir de los pasos anteriores, debemos crear los certificados que usaremos en nuestro servidor web.\\
14 \\
15 \noindent Supongamos que guardamos el certificado en /etc/apache2/ssl/gosa.pem\\
16 \\
17 \begin{tabular}{|l|}\hline 
18 \#>FILE=/ect/apache2/ssl/gosa.pem\\
19 \#>export RANDFILE=/dev/random\\
20 \#>openssl req -new -x509 -nodes -out \$FILE -keyout /etc/apache2/ssl/apache.pem\\
21 \#>chmod 600 \$FILE\\
22 \#>ln -sf \$FILE /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < \$FILE`.0\\
23 \hline \end{tabular}
24 \vspace{0.5cm}
25 \\
26 \noindent Con esto hemos creado un certificado que nos permite el acceso SSL a nuestras páginas.\\
27 \\
28 \noindent Si lo que queremos es una configuración que nos permita no solo que el tráfico esté encriptado, sino que además el cliente garantice que es un usuario válido, debemos provocar que el servidor pida una certificación de cliente. \\
29 \\
30 \noindent En este caso seguiremos un procedimiento mas largo, primero la creación de una certificación de CA:\\
31 \\
32 \begin{tabular}{|l|}\hline 
33 \#>CAFILE=gosa.ca\\
34 \#>KEY=gosa.key\\
35 \#>REQFILE=gosa.req\\
36 \#>CERTFILE=gosa.cert\\
37 \#>DAYS=2048\\
38 \#>OUTDIR=.\\
39 \#>export RANDFILE=/dev/random\\
40 \#>openssl req -new -x509 -keyout \$KEY -out \$CAFILE -days \$DAYS\\
41 \hline \end{tabular}
42 \vspace{0.5cm}
43 \\
44 \noindent Después de varias cuestiones tendremos una CA, ahora hacemos un requerimiento para un nuevo certificado:\\
45 \\
46 \begin{tabular}{|l|}\hline 
47 \#>DAYS=365\\
48 \#>openssl req -new -keyout \$REQFILE -out \$REQFILE -days\$DAYS\\
49 \hline \end{tabular}
50 \vspace{0.5cm}
51 \\
52 \noindent Creamos una configuración para usar la CA con openssl y la guardamos en openssl.cnf:\\
53 \\
54 \begin{tabular}{|l|}\hline 
55 \verb|HOME = .|\\
56 \verb|RANDFILE = $ENV::HOME/.rnd|\\
57 \verb|[ ca ]|\\
58 \verb|default_ca  = CA_default|\\
59 \verb|[ CA_default ]|\\
60 \verb|dir = .|\\
61 \verb|database = index.txt|\\
62 \verb|serial = serial|\\
63 \verb|default_days = 365|\\
64 \verb|default_crl_days= 30|\\
65 \verb|default_md = md5|\\
66 \verb|preserve = no|\\
67 \verb|policy = policy_anything|\\
68 \verb|[ policy_anything ]|\\
69 \verb|countryName = optional|\\
70 \verb|stateOrProvinceName  = optional|\\
71 \verb|localityName = optional|\\
72 \verb|organizationName = optional|\\
73 \verb|organizationalUnitName  = optional|\\
74 \verb|commonName = supplied|\\
75 \verb|emailAddress = optional|\\
76 \hline \end{tabular}
77 \vspace{0.5cm}
78 \\
79 \noindent Firmamos el nuevo certificado:\\
80 \\
81 \begin{tabular}{|l|}\hline 
82 \#>\verb|touch index.txt|\\
83 \#>\verb|touch index.txt.attr|\\
84 \#>\verb|echo "01" >serial|\\
85 \#>\verb|openssl ca -config openssl.cnf -policy policy_anything \|\\\verb|-keyfile $KEY -cert $CAFILE -outdir . -out $CERFILE -infiles $REQFILE|\\
86 \hline \end{tabular}
87 \vspace{0.5cm}
88 \\
89 \noindent Y creamos un pkcs12 para configurar la certificación en los clientes:\\
90 \\
91 \begin{tabular}{|l|}\hline 
92 \#>openssl pkcs12 -export -inkey \$KEY -in \$CERTFILE -out certificado\_cliente.pkcs12\\
93 \hline \end{tabular}
94 \vspace{0.5cm}
95 \\
96 \noindent Este certificado se puede instalar en el cliente, y en el servidor mediante la configuración explicada en cada uno, esto nos dará la seguridad de que su comunicación será estrictamente confidencial.\\