memoria 2014
TRANSCRIPT
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE CIENCIAS FISICAS Y MATEMATICA
INGENIERIA INFORMATICA PROTOCOLOS DE COMUNICACION
ING. EDUARDO SUAREZ QUINTO – II
FREDDY GEOVANNY GUZMAN ALARCON 6 DE ENERO DEL 2014
SEGUNDO HEMISEMESTRE
MARCO TEORICO
CLIENTE - SERVIDOR DNS
BIND Berkeley Internet Name Domain: servidor de nombres, es el estándar en Unix. Usa el protocolo UDP en el puerto 53. Si la respuesta a la consulta DNS es superior a 512 bytes, usará protocolo TCP en el puerto 53.
SERVIDOR:
ESCENARIO: NOMBRE DEL SERVIDOR: srvuio DOMINIO: pollainformatica.com IPADDRESS: 192.168.5.100
Primero debemos instalar los paquetes necesarios para trabajar con BIND yum –y install bind*
bind-chroot asegura el directorio de instalación de BIND contra ataques y accesos no autorizados bind-sdb: significa Simplified Database Backend, es decir, capacidad para soportar bases alternas de datos sobre ZONAS almacenadas en servidores LDAP (ldapdb), bases postgreSQL (pgsqldb), bases sqlite (sqlitedb) o en el sistema de archivos (dirdb), además de hacerlo por defecto en memoria RAM en la base RBT (Red Black Tree) zone database. También incluye soporte para DLZ (Dynamic Loadable Zones).
Ahora determinamos la versión de BIND named –v
Configuramos la NIC de nuestro ordenador para usar una IPADDRESS estática y no de forma dinámica por DHCP, nos dirigimos a la parte superior derecha del escritorio damos clic derecho sobre el icono de red seleccionamos Editar las conexiones, podemos Añadir una nueva conexión o simplemente Editar una existente.
Nombre de la conexión: Ingresamos un nombre Disponible para todos los usuarios: activamos el check list Ajustes de IPV4: seleccionamos el metodo manual e ingresamos, direccion IP, mascara y gateway, es importante indicar que en Servidores DNS la misma IP que identifica nuestro ordenador.
Verificamos en nuestro archivo de configuración ubicado en:
cat /etc/sysconfig/network-scripts/ifcfg-Home
Reiniciamos el servicio:
service network restart
NOTA: Antes de modificar cualquier archivo de configuración, hacer una copia de la versión anterior de dicho archivo! Modificaremos el archivo network donde colocaremos el nombre completo de nuestro equipo.
vim /etc/sysconfig/network
Configuramos el archivo hosts para agregar la ip el nombre completo de nuestro equipo.
vim /etc/hosts
Añadimos la ip del servidor, modificamos el archivo resolv.conf para incluir otro servidor DNS, si se existiera otro adicional en nuestra red con la misma sintaxis nameserver .
vim /etc/resolv.conf
Abrir el archivo /etc/named.conf y agregar la línea 12 y 19, vim /etc/named.conf
Ahora abra /etc/named.rfc1912.zones y modifique la línea siguiente nos 13,14,31 y 32
vim /etc/named.rfc1912.zones
Copiar los archivos named.localhost, named.loopback con los nombres forward.zone y reverse.zone respectivamente. Estos nuevos archivos sirven para definir las zonas frontales e inversas del DNS. cd /var/named/
cp /var/named/named.loopback /var/named/reverse.zone cp /var/named/named.localhost /var/named/forward.zone Editamos los archivos forward.zone y reverse.zone como sigue:
vim /var/named/forward.zone
vim /var/named/reverse.zone
Cambiamos de propietario y grupo a los archivos forward y reverse.
chgrp named /var/named/forward.zone chgrp named /var/named/reverse.zone chown named /var/named/forward.zone chown named /var/named/reverse.zone
Ahora inicie el servicio.
service named start Ejecute el siguiente comando para iniciar el servicio en el arranque cada vez que reinicie el servidor.
chkconfig --levels 235 named on
Después de reiniciar el servicio. Digite el siguiente comando para probar el servidor dns dig dig srvuio.pollainformatica.com dig 192.168.5.100 nslookup 192.168.5.100 nslookup srvuio.pollainformatica.com ping srvuio.pollainformatica.com
Prohibido olvidar activar el Puerto en el firewall.
CONFIGURACIONES PARA SER CLIENTE DE UN SERVIDOR DNS: Archivo hosts: AQUÍ PUEDE INTRODUCIR MANUALMENTE NOMBRES DNS CON SUS DIRECCIONES IP cat /etc/hosts Archivo resolv.conf: AQUÍ PONER LA DIRECCIÓN IP DEL SERVIDOR DNS QUE ESTE NUDO VA A CONSULTAR cat /etc/resolv.conf Archivo nsswitch.conf: INDICA EN QUÉ ORDEN EL NUDO CONSULTA PARA BUSCAR NOMBRES DNS cat /etc/nsswitch.conf
Prueba de funcionamiento desde el cliente.
Bibliografias: http://www.ite.educacion.es/formacion/materiales/85/cd/linux/m2/servidor_dns_bind9.html http://www.krizna.com/centos/how-to-install-dns-server-in-centos-6/ http://www.gianoliveira.com/como-conseguir-un-dominio-gratis.html
http://www.taringa.net/posts/ciencia-educacion/11770389/Como-Obtener-Un-
Dominio-com-y-Hosting-Gratis.html
http://www.youtube.com/watch?v=HjLMjkoYh2A
CONFIGURACION HTTP
INTRODUCCIÓN
HTTP y HTTPS
-puerto TCP por defecto para HTTP: 80
-puerto TCP por defecto para HTTPS: 443
Instalación de Apache
yum install httpd
Package httpd-2.2.15-28.el6.centos.i686 already installed and latest version
Nothing to do
Habilitar HTTP y HTTPS en el firewall desde setup o modo grafico.
Asegurarse de httpd arranque siempre que arranque el sistema operativo:
chkconfig httpd on
Confirmar lo anterior:
chkconfig --list httpd
Iniciar el demonio httpd:
service httpd start
Iniciando httpd: [ OK ]
Confirmar el estado del demonio: note los varios procesos que necesita httpd para
funcionar...
service httpd status
Se está ejecutando httpd (pid 3176)...
Los números de los procesos (PIDs) son útiles cuando se hace depuración del kernel.
Arranque el navegador y pruebe navegar en su dirección IP o su dominio. Esto lo
podemos hacer también desde un cliente ingresando la dirección de la misma forma.
http://<su dirección IP>
http://192.168.5.100/xyz
http://www.pollainformatica.com/
El comando elinks también es útil para verificar el buen funcionamiento del servidor
http:
yum install elinks
elinks http://localhost Apache 2 Test Page powered by CentOS
Pulsar Q para salir.
Package elinks-0.12-0.21.pre5.el6_3.i686 already installed and latest version
Nothing to do
Para ver la versión de Apache que ha instalado, puede introducir en su navegador lo
siguiente:
http://<su dirección IP>/xyz
http://192.168.5.100/xyz
Not Found The requested URL /xyz was not found on this server.
Apache/2.2.15 (CentOS) Server at 192.168.5.100 Port 80
O en la línea de comandos de una venta de terminal:
httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: May 13 2013 22:08:57
Configuración de Apache
La documentación completa y oficial de Apache se encuentra en
http://httpd.apache.org/docs/
Todos los archivos de configuración de Apache en el servidor se encuentran en:
cd /etc/httpd/
El siguiente directorio contiene el archivo central de configuración de Apache
(httpd.conf):
ls /etc/httpd/conf
El siguiente directorio contiene los archivos de configuración de software
complementario de Apache:
ls /etc/httpd/conf.d
Primeros cambios necesarios en el archivo de configuración:
vim /etc/httpd/conf/httpd.conf
Buscar la variable ServerAdmin y modificarla con la dirección de correo electrónico
con la cual ponerse en contacto en caso de errores del servidor web:
#ServerAdmin root@localhost ( línea 262)
ServerAdmin [email protected]
Nombre del servidor y puerto TCP:
#ServerName www.example.com:80 ( línea 276)
ServerName www.pollainformatica.com:80
Verifique la correctitud actual de la sintaxis en el archivo de configuración de Apache:
service httpd configtest
Syntax OK
El anterior comando es muy útil para determinar errores en las declaraciones
sintácticas para configurar Apache, si tomamos en cuenta que es un archivo con 1000
líneas de configuración en promedio.
Compruebe que el servicio httpd arranca correctamente con los cambios efectuados a
la configuración:
service httpd restart
Parando httpd: [ OK ]
Iniciando httpd: [ OK ]
Cambiar el valor de la variable AllowOverride None a AllowOverride All
vim /etc/httpd/conf/httpd.conf
# AllowOverride None (linea 339)
AllowOverride All
Reiniciar httpd
service httpd restart
Parando httpd: [ OK ]
Iniciando httpd: [ OK ]
PROTEGER DIRECTORIOS DE CONTENIDOS WEB MEDIANTE CONTRASEÑA:
Por ejemplo, proteger el directorio principal de contenidos web de Apache:
vim /var/www/html/.htaccess
Introducir lo siguiente:
<Files .htaccess>
order allow,deny
deny from all
</Files>
<Files .htpasswd>
order allow,deny
deny from all
</Files>
AuthUserFile /etc/httpd/htpasswd
AuthName "Secret Secure Area"
AuthType Basic
require valid-user
La primera y segunda partes impedirán que los usuarios puedan descargar los
archivos .htaccess o .htpasswd
La tercera parte:
AuthUserFile apunta al archivo .htpasswd que contiene información de login (=
apertura de la sesión) de los usuarios en el servidor web.
AuthName es el texto que aparecerá en la ventana de login.
AuthType es el tipo de autenticación, casi siempre es de tipo básico (= Basic).
Si lo desea, puede especificar los usuarios que tendrán acceso así:
require user <username>
Ejemplo:
require user admin
CREAR CUENTAS DE USUARIO EN EL SITIO WEB:
Primero podemos ver que no hay un archivo con ese nombre:
ls -a /etc/httpd
. .. conf conf.d logs modules run
Para crear las cuentas de usuario usamos el comando htpasswd asociado a
/etc/httpd/.htpasswd así:
htpasswd -c /etc/httpd/htpasswd admin
New password: 123456
Re-type new password: 123456
Adding password for user admin
La opción -c crea el archivo si no existía. Por ello, en futuros usos ya no será
necesaria.
Ejemplo:
htpasswd /etc/httpd/htpasswd huesped
New password: 123456
Re-type new password: 123456
Adding password for user huesped
htpasswd /etc/httpd/htpasswd freddy
New password: 123456
Re-type new password: 123456
Adding password for user freddy
Al final podemos cerciorarnos que se creó el archivo y ver su contenido:
ls -a /etc/httpd
. .. conf conf.d htpasswd logs modules run
El algoritmo de cifrado de contraseñas que usa Apache por defecto es crypt().
Otros algoritmos disponibles para cifrar contraseñas en Apache son MD5 y SHA.
Además, es posible no cifrarlas si escoge el método PLAINTEXT.
cat htpasswd
cat /etc/httpd/htpasswd
admin:R.d9Y/dH5KInU
huesped:fSlB/WwXgOMXI
freddy:Rg7FlH70Zz/Uc
Para ver todas opciones del comando:
man htpasswd
Reinicie el servidor http:
service httpd restart
Parando httpd: [ OK ]
Iniciando httpd: [ OK ]
Compruebe con su navegador que ahora su sitio web le pide autenticarse (=
identificarse).
Damos enter y ya estamos en la pagina web de apache. Podemos loguearnos de
cualquier clienter unido al dominio usando cualquier credencial y contrasenia.
NUESTRAS PÁGINAS WEB
Si colocamos un archivo index.html en /var/www/html/, e ingresamos contenido que
se indica posteriormente:
vim /var/www/html/index.html
</html>
<head>
<title>Página Principal</title>
</head>
<body>
<p>Bienvenidos a nuestro servidor de practicas</p>
</body>
</html>
accedemos de nuevo a www.pollainformatica.com, lo que aparece es Bienvenidos a
nuestro servidor de practicas , es decir SE REEMPLAZA LA PÁGINA ANTERIOR
“Apache 2 Test Page”.
INSTALACIÓN DE SSL:
yum install mod_ssl
Package 1:mod_ssl-2.2.15-28.el6.centos.i686 already installed and latest version
Nothing to do
service httpd restart
Parando httpd: [ OK ]
Iniciando httpd: [ OK ]
Comprobar la instalación con el navegador y la siguiente página web:
https://<su dirección IP>
https://www.pollainformatica.com
Podemos revisar el estado del certificado y verificar que aun no cuenta con los datos
necesarios, es decir la firma de una certificadora fiable.
Ahora ya puede usar https, pero con un certificado SSL auto-firmado, por eso la
advertencia.
Acéptela y conéctese usando el user and password que estime conveniente. Podemos
observar que ingresamos correctamente a nuestra pagina de pruebas.
CERTIFICANDO NUESTRAS PÁGINAS WEB
Para obtener un certificado SSL firmado por una autoridad de certificación (=
Certificate Authority, CA), por ejemplo Verisign o Thawte, debe pagar por aquel
certificado. Cuesta aproximadamente US$1.000 por año. Certificados SSL
relativamente más baratos son ofrecidos por DynDNS y GoDaddy.
Antes de obtener un certificado de una CA, debe genera una CSR (certificate-signing
request).
Antes de generar la CSR, debe crear una clave:
mkdir /etc/certs/
cd /etc/certs/
DEBE CREAR UNA CLAVE PARA CADA SITIO WEB.
Durante la creación de la clave RSA le pedirá una frase de paso (= passphrase).
openssl genrsa -des3 -out www_pollainformatica_com.key 1024
Generating RSA private key, 1024 bit long modulus
...++++++
.........++++++
e is 65537 (0x10001)
Enter pass phrase for www_pollainformatica_com.key:123456
Verifying - Enter pass phrase for www_pollainformatica_com.key:123456
Note que el nombre del archivo en el que se guarda la clave alude al nombre de su
dominio.
ls -a /etc/certs
www_pollainformatica_com.key
El archivo contendrá la clave privada RSA de su servidor Apache.
¡NO PERMITA A NADIE ACCEDER A ESTE ARCHIVO!
Si hace público dicho archivo, algún hacker podría usar el siguiente comando para
descargarse el archivo:
wget https://sudominio.com/www_sudominio.key
Note lo útil que podría ser el comando wget.
Cree la petición CSR:
openssl req -new -key www_pollainformatica_com.key -out
www_pollainformatica_com.csr
Completamos la información que le solicitan con cuidado. En especial, cuando le
pidan "common name", introduzca el nombre FQDN de su servidor web pero sin el
punto final.
Enter pass phrase for www_pollainformatica_com.key: 123456
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:ec
State or Province Name (full name) []:Pichincha
Locality Name (eg, city) [Default City]:Quito
Organization Name (eg, company) [Default Company Ltd]:Cynitech
Organizational Unit Name (eg, section) []:Administracion
Common Name (eg, your name or your server's hostname)
[]:www.pollainformatica.com
Email Address []: [email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456
An optional company name []:Cynitech S.A.
Compruebe la creación de la CSR:
cat www_pollainformatica_com.csr
-----BEGIN CERTIFICATE REQUEST----- MIICGTCCAYICAQAwgaMxCzAJBgNVBAYTAmVjMRIwEAYDVQQIDAlQaWNoaW5jaGEx DjAMBgNVBAcMBVF1aXRvMREwDwYDVQQKDAhDeW5pdGVjaDEXMBUGA1UECwwOQWRt aW5pc3RyYWNpb24xGjAYBgNVBAMMEXd3dy5zcnZ1Y2V1aW8uY29tMSgwJgYJKoZI hvcNAQkBFhlqaG9uZGVmcmlfZ3V6QGhvdG1haWwuY29tMIGfMA0GCSqGSIb3DQEB AQUAA4GNADCBiQKBgQCeHHAtw/mkM9TOtHBAty+BXqqHwl7HcNJwek4mV9KPA0xb XWLwk3UVaHBaDKjzpq2OHuVR3GqojO9YSPeIiaP+WBZH9T903s1p+0MTnB9mW7wS USncsm3UhOXy3XbkHZgqSGfHbw6hdnEyGGt63Nv5Bme6oNv1W0nnabvFoIo54QID AQABoDUwFQYJKoZIhvcNAQkHMQgMBjEyMzQ1NjAcBgkqhkiG9w0BCQIxDwwNQ3lu aXRlY2ggUy5BLjANBgkqhkiG9w0BAQUFAAOBgQAlGreUYhO0pqVydw6Ey9manXXi gUJjB9Jnrk9HwxMLK4oUu430RPHbKtk94Cj8aZR6reSoiNVm6tKUwHjiYsriwdu7 MJ5++loDUUH3Yx/UUCWsLPOqTJh8w2DgjXhvZjHdx+5cbfPdxlWjHkTG21GByjKM IXmfaCt1kQcAiyRZjQ== -----END CERTIFICATE REQUEST-----
El contenido de este archivo le será solicitado por la CA para crear su certificado
digital.
La CA generará su certificado a partir de su CSR, la clave pública de su servidor
Apache y la firma digital de la CA.
Copie ABSOULTAMENTE TODA LA SALIDA de "cat www_sudominio_com.csr" en
la página de la CA, cuando esta la solicite, SIN BLANCOS NI LÍNEAS EN BLANCO
ANTES O DESPUÉS.
Hasta aquí tenemos la solicitud de certificación y también la clave es decir dos
archivos en /etc/certs/
[root@dns01 certs]# ls
www_pollainformatica_com.csr www_pollainformatica_com.key
NOTA: debido al precio que cobran las CA por los certificados digitales, y para
finalizar este ejercicio de SSL, firme usted mismo su certificado.
openssl x509 -req -days 365 -in www_pollainformatica_com.csr -signkey
www_pollainformatica_com.key -out www_pollainformatica_com.crt
Signature ok
subject=/C=ec/ST=Pichincha/L=Quito/O=Cynitech/OU=Administracion/CN=www.p
ollainformatica.com/[email protected]
Getting Private key
Enter pass phrase for www_pollainformatica_com.key:123456
En criptografía, X509 es el estándar ITU (= International Telecommunication Union)
para infraestructuras de claves públicas. Especifica los formatos de los certificados de
clave pública y algoritmos para validación de la ruta de certificación.
Compruebe el contenido del directorio /etc/certs:
ls -ahl /etc/certs
total 28K
drwxr-xr-x. 2 root root 4,0K jul 5 11:16 .
drwxr-xr-x. 121 root root 12K jul 5 09:36 ..
-rw-r--r--. 1 root root 1013 jul 5 11:16 www_pollainformatica_com.crt
-rw-r--r--. 1 root root 806 jul 5 11:03 www_pollainformatica_com.csr
-rw-r--r--. 1 root root 963 jul 5 10:52 www_pollainformatica_com.key
Modificar la variable SSLCertificateFile
vim /etc/httpd/conf.d/ssl.conf
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt (linea 105)
SSLCertificateFile /etc/certs/www_pollainformatica_com.crt
Modificar la variable SSLCertificateKeyFile
vi /etc/httpd/conf.d/ssl.conf
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key (linea 112)
SSLCertificateKeyFile /etc/certs/www_pollainformatica_com.key
Otros variables importantes en ssl.conf: intermediary certificate: Son generalmente certificados más baratos ofrecidos por
CAs más pequeñas. Los archivos correspondientes le son entregados por dichas CA.
certificate bundle: si tiene más de un certificado, puede agruparlos todos en un sólo
archivo (= bundle). Debe cifrarlo con algoritmo PEM. Puede pedirlo a su CA.
certificate chain: archivo con información para validar la ruta de certificación. Lo
debe proveer su CA.
Reinice el demonio httpd:
service httpd restart
Parando httpd: [ OK ]
Iniciando httpd: Apache/2.2.15 mod_ssl/2.2.15 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server www.pollainformatica.com:443 (RSA)
Enter pass phrase:123456
OK: Pass Phrase Dialog successful.
[ OK ]
Ahora su servidor http le pide clave para arrancar.
Si no desea que aquello suceda:
openssl rsa -in www_pollainformatica_com.key -out
www_pollainformatica_com.key
Enter pass phrase for www_pollainformatica_com.key: 123456
writing RSA key
Pruebe su certificado con su navegador, preferentemente desde otro equipo distinto
al que alberga su servidor http. (Ahora salen los datos que pusimos para el CSR)
Se anade la excepcion y se ingresa a la pagina logueandose con cualquier usuario
registrado.
VIRTUAL HOSTING
Para albergar varios sitios web en el mismo servidor:
Hosts virtuales basados en nombres. Para tener varios hosts en una misma IP.
UN PAR DE TRUCOS PARA MEJORAR EL RENDIMIENTO (= PERFORMANCE)
DE APACHE: (ver págs. 97-100 del libro de texto.)
EJERCICIO1: instalar WEBMAIL (págs. 152-154 del libro de texto)
Creamos una carpeta en /var/www/html/ con el nombre pollainformatica
mkdir /var/www/html/pollainformatica
Editamos el archivo /etc/httpd/conf/httpd.conf y colocamos al último de todo el
archivo:
vi /etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.5.100:80
<VirtualHost 192.168.5.100:80>
ServerName www.pollainformatica.com
ServerAlias pollainformatica.com *.pollainformatica.com
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost 192.168.5.100:80>
ServerName www.pollainformatica.com
DocumentRoot /var/www/html/pollainformatica
</VirtualHost>
El primer bloque es el dominio por defecto, el segundo ya es el “extra”.
La directiva ServerName es el servidor (hhtp?) de nuestro dominio.
ServerAlias es otra forma de ver el mismo sitio web.
DocumentRoot es la ruta a nuestras páginas web
service httpd restart
Parando httpd: [ OK ]
Iniciando httpd: [ OK ]
Para poder probar esto debemos crear una nueva zona y editar los archivo
named.conf.
CLIENTE - SERVIDOR LDAP yum -y install openldap openldap-clients openldap-servers nss-pam-ldapd yum -y install authconfig authconfig-gtk migrationtools
Procedimientos. Todo el contenido del directorio /var/lib/ldap debe tener contexto tipo slapd_db_t. chcon -R -t slapd_db_t /var/lib/ldap Lo anterior solo será necesario si se restaura un respaldo hecho a partir de un sistema sin SELinux. Certificados para TLS/SSL. cd /etc/pki/tls/certs rm -f slapd.pem
make slapd.pem Country Name (2 letter code) [XX]:ec State or Province Name (full name) []:Pichincha Locality Name (eg, city) [Default City]:Quito Organization Name (eg, company) [Default Company Ltd]:Cynitech Organizational Unit Name (eg, section) []:Administracion Common Name (eg, your name or your server's hostname) []:www.pollainformatica.com Email Address []:[email protected] Es indispensable que el archivo que contiene la firma digital y el certificado tenga permisos de acceso de lectura y escritura para el usuario root y permisos de acceso de sólo lectura para el grupo ldap:
chown root:ldap /etc/pki/tls/certs/slapd.pem chmod 640 /etc/pki/tls/certs/slapd.pem
Edite el archivo /etc/sysconfig/ldap: vim /etc/sysconfig/ldap Alrededor de la línea 20, localice #SLAPD_LDAPS=no: Elimine la almohadilla (#) y cambie no por yes, de modo que quede como SLAPD_LDAPS=yes. SLAPD_LDAPS=yes. Creación de directorios. Se crea un directorio y se configurará con permisos de acceso exclusivamente al usuario y grupo ldap. mkdir /var/lib/ldap/autenticar chmod 700 /var/lib/ldap/autenticar Se requiere copiar el archivo DB_CONFIG.example dentro del directorio /var/lib/ldap/autenticar/, como el archivoDB_CONFIG. Es decir, ejecute lo siguiente: cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/autenticar/DB_CONFIG chown -R ldap:ldap /var/lib/ldap/autenticar Creación de claves de acceso para LDAP. slappasswd Copie y respalde este criptograma. Sera la clave de acceso para el usuario Administrador, quien tendrá todos los privilegios sobre el directorio Archivo de configuración /etc/openldap/slapd.conf. Se debe crear /etc/openldap/slapd.conf como archivo nuevo: touch /etc/openldap/slapd.conf
vim /etc/openldap/slapd.conf Por seguridad, dar permisos de lectura y escritura, sólo para usuarios ldap.
chown ldap:ldap /etc/openldap/slapd.conf chmod 776 /etc/openldap/slapd.conf
Elimine el conjunto de archivos y directorios que componen los configuración predeterminada: rm -rf /etc/openldap/slapd.d/* echo "" | slapadd -f /etc/openldap/slapd.conf slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d chown -R ldap:ldap /etc/openldap/slapd.d /var/lib/ldap/autenticar Restablezca los contextos de SELinux para los directorios /etc/ldap/slapd.d y /var/lib/ldap/autenticar ejecutando lo siguiente: restorecon -R /etc/openldap/slapd.d /var/lib/ldap/autenticar Inicio del servicio. Inicie el servicio slapd y añada éste al resto de los servicios que arrancan junto con el sistema, ejecutando los siguientes dos mandatos:
service slapd start chkconfig slapd on
Migración de cuentas existentes en el sistema. vim /usr/share/migrationtools/migrate_common.ph Modifique # Default DNS domain(linea71) $DEFAULT_MAIL_DOMAIN = "pollainformatica.com"; # Default base(linea74) $DEFAULT_BASE = "dc= pollainformatica, dc=com"; Genere el archivo base.ldif, genera el fichero en la ubicacion que estamos en ese momento. Importar los grupos y usuarios existentes en el sistema. Crear los archivos group.ldif y passwd.ldif, utilizando migrate_group.pl y migrate_passwd.pl. /usr/share/migrationtools/migrate_base.pl > base.ldif
/usr/share/migrationtools/migrate_group.pl /etc/group group.ldif /usr/share/migrationtools/migrate_passwd.pl /etc/passwd passwd.ldif
Los datos se podrán insertar en el directorio LDAP utilizando ldapadd -x -W -D 'cn=Administrador, dc=pollainformatica, dc=com' -h 127.0.0.1 -f base.ldif ldapadd -x -W -D 'cn=Administrador, dc=pollainformatica, dc=com' -h 127.0.0.1 -f group.ldif ldapadd -x -W -D 'cn=Administrador, dc= pollainformatica, dc=com' -h 127.0.0.1 -f passwd.ldif
Comprobaciones. ldapsearch -h 127.0.0.1 -x -b '' -s base '(objectclass=*)' namingContexts ldapsearch -x -b 'dc=pollainformatica,dc=com' '(objectclass=*)' ldapsearch -x -b 'uid=freddy01,ou=Administrador,dc= pollainformatica,dc=com' ldapsearch -x -b 'uid=named,ou=People,dc= pollainformatica,dc=com'
Administración
Teniendo en cuenta la complicidad de la creación de usuarios y unidades organizativas que cuenta este servicio, he decidido explicar cómo instalar un modo gráfico para este, es decir, administrar openldap por una interfaz gráfica llamada phpldapadmin (phpldapadmin-1.2.3.tgz), esta deberá ser descargada y ejecutada como un directorio virtual.
Primero que todo debemos instalar nuestro servidor web httpd
yum –y install httpd*
Descargar el paquete, yo lo he descargado en el escritorio, luego debemos mover el archivo al directorio web /var/www/html.
cd Escritorio/
mv phpldapadmin-1.2.3.tgz /var/www/html/
cd /var/www/html/
Descomprimir el archivo y eliminar el comprimido.
tar -xvzf phpldapadmin-1.2.3.tgz
rm -r phpldapadmin-1.2.3.tgz
Entramos al directorio llamado config y buscaremos un archivo llamado config.php.example. Crear una copia, y configuramos la copia de nombre config.php y editamos la línea 286.
cd /var/www/html/phpldapadmin-1.2.3/config/
cp config.php.example config.php
gedit config.php
$servers->setValue('server','host','192.168.5.100');
Instalar los complementos del php para poder ejecutar el phpldapadmin
yum -y install php php-ldap
Reiniciar servicio httpd
service httpd restart
Ingresar en el navegador de la siguiente manera
http://192.168.5.100/phpldapadmin-1.2.3/
Damos clic en conectar para acceder al servidor para administrarlo.
cn=Administrador,dc=pollainformatica,dc=com
password
Ahora entramos y podemos observar que esta la configuración que habíamos creado anteriormente por la consola.
Configuración de clientes. Los clientes CentOS 6 y Red Hat Enterprise Linux 6, requieren tener instalados los paquetes nss-pam-ldap, authconfig y openldap-clients-2.4.23-16.el6 (las versiones anteriores de este último tienen roto el soporte para TLS/SSL):
yum -y install authconfig openldap-clients nss-pam-ldapd Defina los valores para los parámetros host y base, a fin de establecer hacia que servidor y a que directorio conectarse, en el archivo /etc/pam_ldap.conf.
vim /etc/pam_ldap.conf Para fines prácticos, el valor del parámetro uri corresponde al nombre del servidor LDAP, previamente resuelto por un DNS y el valor del parámetro base debe ser el mismo que se especificó en el archivo /etc/openldap/slapd.conf para el parámetro suffix. Considerando que el nombre de anfitrión del servidor LDAP está resuelto por un servidor DNS, comoservidor.dominio.tld, puede definir lo siguiente: uri ldap://srvuio. pollainformatica.com/ base dc= pollainformatica,dc=tld ssl start_tls tls_checkpeer no pam_password md5 Asumiendo que el servidor LDAP tiene definido como nombre de anfitrión servidor.dominio.tld, previamente resuelto en un servidor DNS, ejecute lo siguiente: authconfig --useshadow --enablemd5 --enablelocauthorize –enablemkhomedir –enableldap --enableldapauth --ldapserver=srvuio.pollainformatica.com --ldapbasedn=dc=pollainformatica,dc=com enableldaptls --update Si utiliza CentOS 6 o Red Hat™ Enterprise Linux 6, con openldap-clients-2.4.23-15.el6 y versiones anteriores, utilice --disableldaptls, en lugar de --enableldaptls.
Al terminar, debe iniciar y agregar a los servicios de arranque del sistema al servicio nslcd.
chkconfig nslcd on service nslcd start
Bibliografía: http://www.alcancelibre.org/staticpages/index.php/como-ldap-auth?query=openldap http://senadminredes.blogspot.com/2012/06/administrando-openldap-centos-56.html http://docs.adaptivecomputing.com/viewpoint/hpc/Content/topics/1-setup/installSetup/settingUpOpenLDAPOnCentos6.htm
CLIENTE - SERVIDOR SMTP
Instalación del MTA (Mail Tranfer Agent) postfix:
yum install postfix
Permitir en el firewall el puerto 25. Confirmar que el puerto 25 acepta conexiones SMTP:
iptables -L | grep smtp
Configurar postfix para que inicie cuando arranque el servidor Centos
chkconfig postfix on
Confirmar lo anterior, que el servicio Postfix arranque en los RUNLEVEL 3 y 5:
chkconfig postfix --list
Arrancar el servicio postfix:
service postfix start
Probar el funcionamiento básico del servicio de mail.
Envío de un mensaje de correo.
echo "hello" | mail -s "asunto_prueba2013120601" root
Ver el log del servidor de correo.
cat /var/log/maillog
ver el buzón de entrada del usuario actual (root):
CONFIGURACION DE POSTFIX:
Confirmar que postfix esté instalado:
rpm -q postfix
postfix-2.6.6-2.2.el6_1.i686
CONFIGURACIÓN PARA ENVIAR CORREO:
Postfix no envía mensajes de correo al usuario root por seguridad.
Para ello usa los alias creados en el archivo /etc/aliases.)
En el siguiente directorio almacena postfix los archivos para gestionar el sistema de correo.
ls /var/spool/postfix
En el siguiente directorio almacena postfix los buzones de correo de los usuarios.
ls /var/spool/mail/
Editar con el usuario root el archivo principal de configuración de postfix:
vim /etc/postfix/main.cf
Modificar las siguientes líneas.
myhostname = mail.pollainformatica.com (linea76)
mydomain = pollainformatica.com (linea84)
myorigin = $mydomain(linea100)
#permitir que postfix escuche mail en todas sus direcciones ip
inet_interfaces = all(línea 117)
#permitir que todos los clientes del servidor le envíen mail
mynetworks = 192.168.5.0/24,127.0.0.1/8(linea265)
#La dirección del servidor "repetidor" de mail, que en este caso es
#la de mail.andinanet.net
relayhost = 200.107.10.14(línea314-srv amigo)
relayhost = 200.107.10.14
myhostname = mail.pollainformatica.com
mydomain = pollainformatica.com
myorigin = $mydomain
home_mailbox = mail/
mynetworks = 192.168.5.0
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
Para ver un resumen de los cambios realizados al archivo /etc/postfix/main.cf
postconf -n
Para ver todos los parámetros por defecto de postconf:
postconf -d
Para ver el valor actual de parámetros específicos, por ejemplo:
postconf myhostname
myhostname = mail.pollainformatica.com
Para editar un parámetro en línea y que su cambio entre en efecto de inmediato, por ejemplo:
postconf -e "myorigin = midominio.org"
Enviar un mensaje de correo a una cuenta en cualquier servicio de correo externo.
echo "prueba desde centos hacia yahoo" | mail -s "centos a yahoo" [email protected] echo "prueba desde centos hacia hotmail" | mail -s "centos a hotmail" [email protected]
echo "prueba desde centos hacia gmail" | mail -s "centos a yahoo" [email protected]
mail -s "desde CentOS" [email protected]
<?Aqui ingresamos el contenido del mensaje>
Holas Daniel, soy Dino, te escribo para...
<?Finalizamos con <.> >
EOT
mail -s "desde CentOS" [email protected]
Holas Daniel, soy Dino, te escribo para...
EOT
mail -s "desde CentOS" [email protected]
Holas Daniel, soy Dino, te escribo para...
EOT
Ver el estado del log del servicio de correo.
cat /var/log/maillog
Configuración para cifrar el envío de mails por la conexión SMTP:
Instalación de bibliotecas para cifrado SASL (=Simple Authentication and Security Layer):
yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
Comprobar que el servidor mail.andinanet.net soporta cifrado TLS
telnet 200.107.10.14 25
help
ehlo 200.107.10.14
starttls
quit
Añadir las siguientes entradas al archivo /etc/postfix/main.cf:
vi /etc/postfix/main.cf
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_security_level = may
tls_random_source = /dev/urandom
Añadir la contraseña para que postfix se identifique:
vi /etc/postfix/sasl_passwd
mail.andinanet.net usuario:contraseña
Transformar la información anterior en archivo .db
postmap /etc/postfix/sasl_passwd
Usar el archivo .db creado:
service postfix reload
CONFIGURACIÓN PARA RECIBIR CORREO:
Primero comprobar que el servidor DNS cuenta con registros MX
host -t MX dominioesc.org.ec centos1
host -t MX pollainformatica.com mail
Añadir las siguientes entradas al archivo /etc/postfix/main.cf:
vim /etc/postfix/main.cf
Si es que los mensajes son rechazados, que sea rechazo temporal y haya reintento:
soft_bounce = yes(linea22)
unknown_local_recipient_reject_code = 450(linea223)
Indicar a postfix que es el último salto hacia [email protected],
# [email protected], [email protected]
#y user@centos1:
(linea165)
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
Confirmar que los usuarios que van a recibir mail realmente existan en el servidor
getent passwd huesped
getent passwd eduardo
...
NOTA: tan pronto como se crea un usuario, ya está listo para recibir mail.
Para crear alias para los usuarios, determinar primero el archivo de alias:
postconf alias_maps
Luego,
vi /etc/aliases
#Quitar el símbolo de comentario y cambiar el nombre del usuario
#que va a recibir los mails dirigidos a root:
root: eduardo
#Luego, introducir los alias que sean necesarios.
#Ejemplos:
mama: [email protected]
support: eduardo,huesped,cecilia
#Después, obtener un archivo .db del anterior:
newaliases
#Reiniciar postfix.
service postfix restart
Recuperación del mail como cliente: DOVECOT: Servidor de IMAP4 y POP3
yum install dovecot
service dovecot start
vim /etc/dovecot/dovecot.conf
protocols = imap pop3
mail_location = maildir:~/mail
pop3_uidl_format = %08Xu%08Xv
chkconfig --level 235 dovecot on
Comprobar el funcionamiento de DOVECOT POP3: (Este es un protocolo menos complejo que
IMAP4, pues solamente controla la descarga del buzón de correo desde el servidor hacia el
cliente.)
telnet localhost 110
user eduardo
pass <password>
stat
list 1
retr 1
quit
Comprobar el funcionamiento de DOVECOT IMAP4: (Este es un protocolo más complejo que
POP3, pues debe gestionar todo desde el servidor.)
telnet localhost 143
a login leela 123456
a select Inbox
a fetch 1 body [text]
a logout
Permitir en el firewall los puertos TCP 993 (IMAP4S) y 995 (POP3S).
Usar para ello Sistema->Administración->Nivel de seguridad y Cortafuegos
Comprobación de que aquellos puertos estén abiertos:
iptables -L -v | grep -E "pop3|imap"
¡NO HAY NECESIDAD DE ABRIR LOS PUERTOS 110 y 143 SI TODOS LOS ACCESOS VAN
A SER UNICAMENTE CIFRADOS!
Instalar cliente gráfico de correo electrónico:
yum install thunderbird
Si tiene instalado nmap, puede comprobar los puertos activados con nmap:
nmap localhost -p 110,143,993,995
Comprobar el cifrado:
openssl s_client -connect localhost:995
openssl s_client -connect localhost:993
Para filtrar spam: Instalar SpamAssassin
Para filtrar virus: Instalar ClamAV
Para integrar SpamAssassin y ClamAV con el servidor de mail: Instalar MailScanner
Bibliografía:
http://configuracioneslinux.blogspot.com/2012/07/servidor-de-e-mail-postfix-dovecot.html
Listita de comandos del Ing. Suarez
http://www.krizna.com/centos/setup-mail-server-in-centos-6/
CLIENTE - SERVIDOR SNMP
Equipamiento lógico necesario. Instalación a través de yum.
yum -y install net-snmp net-snmp-utils
Procedimientos Lo más recomendable será crear un archivo nuevo y limpio de contenido para poder partir de algo más simple y funcional.
cp /etc/snmp/snmpd.conf /root/Escritorio/snmp/snmpd.conf Listas de control de acceso. Se deben crear las listas de control de acceso (ACL o Access Control List) correspondientes en el archivo/etc/snmp/snmpd.conf, las cuales servirán para definir lo que tendrá acceso hacia el servicio snmpd.
com2sec local 127.0.0.1/32 123456 com2sec miredlocal 192.168.5.0/24 123456
En lo anterior la primera línea significa que habrá una lista de control de acceso denominada «local» y que corresponderá solo a 127.0.0.1/32, asignando 123456 como clave de acceso. La segunda línea hace lo mismo pero definiendo a la red 192.168.5.0/24. Definición de grupos. Se crean al menos dos grupos: MyRWGroup y MyROGroup. El primero será un grupo al que se asignarán más adelante permisos de lectura escritura y el segundo será un grupo al que posteriormente se asignarán permisos de solo lectura. Por cada grupo se asignan tres líneas que especifican el tipo de acceso que se permitirá en un momento dado a un grupo en particular. Es decir, MyRWGroup se asocia a local y MyROGroup a miredlocal.
#Se asigna local al grupo de lectura escritura group MyRWGroup v1 local group MyRWGroup v2c local group MyRWGroup usm local #Se asigna miredlocal al grupo de solo lectura group MyROGroup v1 miredlocal group MyROGroup v2c miredlocal group MyROGroup usm miredlocal
Ramas permitidas. Se especifican las ramas que se van a permitir ver a través del servicio. Lo más común, para, por ejemplo, utilizarse conMRTG, es lo siguiente:
## name incl/excl subtree mask(optional) view all included .1 80
Asignación de permisos a los grupos. Se debe especificar que permisos tendrán los dos grupos, MyROGroup y MyRWGroup. Son de especial interés las últimas columnas.
## group context sec.model sec.level prefix read write notif access MyROGroup "" any noauth exact all none none access MyRWGroup "" any noauth exact all all all
Parámetros de carácter informativo. Se definen dos parámetros de carácter informativo para que cuando utilicen aplicaciones cliente como MRTG se incluya algo de información acerca de que sistema se está accediendo.
syslocation Servidor Linux en srvuio.pollainformatica.com syscontact Administrador ([email protected])
Un ejemplo funcional de configuración. El ejemplo que mostramos a continuación se utiliza en todas los equipos que posee el autor en casa y en la oficina. Solo hay que reemplazar el valor redlocal por lo que uno considere apropiado y reemplazar el valor 192.168.5.0/24 por el valor de la red o la dirección IP desde donde se requiera acceder con un cliente snmp, como MRTG.
# Listas de control de acceso (ACL) ## sec.name source community (alias clave de acceso) com2sec local 127.0.0.1/32 123456 com2sec miredlocal 192.168.5.0/24 123456 #Se asigna ACL al grupo de lectura escritura group MyRWGroup v1 local group MyRWGroup v2c local group MyRWGroup usm local #Se asigna ACL al grupo de solo lectura group MyROGroup v1 miredlocal group MyROGroup v2c miredlocal group MyROGroup usm miredlocal # Ramas MIB que se permiten ver ## name incl/excl subtree mask(optional) view all included .1 80 # Establece permisos de lectura y escritura ## group context sec.model sec.level prefix read write notif access MyROGroup "" any noauth exact all none none access MyRWGroup "" any noauth exact all all all # Información de Contacto del Sistema syslocation Servidor Linux en srvuio.pollainformatica.com syscontact Administrador ([email protected])
Si es necesario añadir más equipos para que accedan al servicio snmpd, solo hay que hacer lo siguiente:
• Agregar una ACL con un nombre único. Ejemplo: com2sec micueva 192.168.1.251 123456
• Agregar un juego reglas que asignen al grupo, en este caso micueva, con lo siguiente:
group otrogrupo v1 local group otrogrupo v2c local group otrogrupo usm local
• Agregar una línea donde se establece que permisos tendrá el grupo otrogrupo. En este ejemplo, va a ser de solo lectura:
access MyROGroup "" any noauth exact all none none
Iniciar, detener y reiniciar el servicio snmpd. Para ejecutar por primera vez el servicio snmpd, utilice:
service snmpd start Para hacer que los cambios hechos tras modificar la configuración surtan efecto, utilice:
service snmpd restart Para detener el servicio snmpd utilice:
service snmpd stop Agregar el servicio snmpd al arranque del sistema. Para hacer que el servicio de snmpd esté activo con el siguiente inicio del sistema, en todos los niveles de ejecución (2, 3, 4 y 5), se utiliza lo siguiente:
chkconfig snmpd on Comprobaciones. Considerando, como ejemplo, que sea signó como clave de acceso 123456 en un sistema cuya dirección IP es192.168.1.254, para probar si la configuración funciona, solo hay que ejecutar los dos siguiente mandatos a fin verificar que devuelvan información acerca del sistema consultado.
snmpwalk -v 1 192.168.5.100 -c 123456 system snmpwalk -v 1 192.168.5.100 -c 123456 interfaces
Modificaciones necesarias en el muro cortafuegos. Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es necesario abrir los puerto 161 y 162 por UDP (SNMP y SNMPTRAP, respectivamente). CONFIGURACIÓN DE NAGIOS Instalación de nagios y nagios plug-ins: yum install nagios nagios-plugins Al final de la instalación, todos los archivos de configuración de Nagios se encontrarán en /etc/nagios El principal archivo de configuración es nagios.cfg Las definiciones para objetos gestionados (=Managed Objects = MO) se encuentran en /etc/nagios/objects Managed objects en Nagios: host object, service object, contact object. El archivo /etc/httpd/conf.d/nagios.conf contiene la configuración de Nagios para el Apache web server. El archivo /usr/lib/nagios/cgi contiene scripts CGI de configuración para la interface web de Nagios. El archivo /usr/lib/nagios/plugins contiene scripts para leer MIBs y enviar alertas al administrador. El archivo /usr/share/nagios contiene la parte estática de la interface web de Nagios. Los logs de Nagios se encuentran en /var/log/nagios En el directorio /var/nagios se registra la información sobre el estado de los MDs. CONFIGURACIÓN INICIAL: Cambiar la dirección de contacto del administrador, a la cual Nagios enviará alertas: vi /etc/nagios/objects/contacts.cfg cambie la dirección nagios@localhost por su dirección de correo electrónico Crear la clave de administrador de Nagios: htpasswd -c /etc/nagios/htpasswd.users nagiosadmin El archivo /etc/nagios/htpasswd.users contiene los nombres y contraseñas (cifradas) de los usuarios creados en Nagios y es usado por el servidor web Apache para autenticarlos.
Configurar el demonio de Nagios para arrancar siempre que arranque el SO del servidor: chkconfig nagios on Arrancar el demonio de Nagios: service nagios start Asegúrese de que el servidor HTTP Apache también arranque cuando el SO inicie: chkconfig httpd on Asegúrese de que el demonio de Apache arranque: service httpd start Abra la interfaz web de nagios con su navegador en la siguiente dirección: http://<su_servidorweb.su_dominio>/nagios/ O también: http://<su_dirección_IP>/nagios/ Le pedirá nombre de usuario y contraseña. Introduzca el nombre "nagiosadmin" y la contraseña que creó para esta cuenta de usuario. Pruebas de funcionamiento
Login al administrador de nagios
Ahora con los servicios ya levantados.