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 estndar 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 instalacin 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), adems de hacerlo por defecto en memoria RAM en la base RBT (Red Black Tree) zone database. Tambin incluye soporte para DLZ (Dynamic Loadable Zones). Ahora determinamos la versin de BIND named v Configuramos la NIC de nuestro ordenador para usar una IPADDRESS esttica y no de forma dinmica por DHCP, nos dirigimos a la parte superior derecha del escritorio damos clic derecho sobre el icono de red seleccionamos Editar las conexiones, podemos Aadir una nueva conexin o simplemente Editar una existente.
Nombre de la conexin: 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 configuracin ubicado en: cat /etc/sysconfig/network-scripts/ifcfg-Home
Reiniciamos el servicio:
service network restart
NOTA: Antes de modificar cualquier archivo de configuracin, hacer una copia de la versin 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
Aadimos 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 lnea 12 y 19,
vim /etc/named.conf
Ahora abra /etc/named.rfc1912.zones y modifique la lnea 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
Despus de reiniciar el servicio. Digite el siguiente comando para probar el servidor dns
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 DIRECCIN 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
INTRODUCCIN HTTP y HTTPS -puerto TCP por defecto para HTTP: 80 -puerto TCP por defecto para HTTPS: 443 Instalacin 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 nmeros de los procesos (PIDs) son tiles cuando se hace depuracin del kernel.
Arranque el navegador y pruebe navegar en su direccin IP o su dominio. Esto lo podemos hacer tambin desde un cliente ingresando la direccin de la misma forma. http://<su direccin IP> http://192.168.5.100/xyz http://www.pollainformatica.com/
El comando elinks tambin 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 versin de Apache que ha instalado, puede introducir en su navegador lo siguiente: http://<su direccin 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 lnea de comandos de una venta de terminal: httpd -v Server version: Apache/2.2.15 (Unix) Server built: May 13 2013 22:08:57
Configuracin de Apache La documentacin completa y oficial de Apache se encuentra en http://httpd.apache.org/docs/ Todos los archivos de configuracin de Apache en el servidor se encuentran en: cd /etc/httpd/ El siguiente directorio contiene el archivo central de configuracin de Apache (httpd.conf): ls /etc/httpd/conf El siguiente directorio contiene los archivos de configuracin de software complementario de Apache: ls /etc/httpd/conf.d Primeros cambios necesarios en el archivo de configuracin: vim /etc/httpd/conf/httpd.conf Buscar la variable ServerAdmin y modificarla con la direccin de correo electrnico con la cual ponerse en contacto en caso de errores del servidor web: #ServerAdmin root@localhost ( lnea 262) ServerAdmin root@pollainformatica.com
Nombre del servidor y puerto TCP: #ServerName www.example.com:80 ( lnea 276) ServerName www.pollainformatica.com:80
Verifique la correctitud actual de la sintaxis en el archivo de configuracin de Apache: service httpd configtest Syntax OK El anterior comando es muy til para determinar errores en las declaraciones sintcticas para configurar Apache, si tomamos en cuenta que es un archivo con 1000 lneas de configuracin en promedio.
Compruebe que el servicio httpd arranca correctamente con los cambios efectuados a la configuracin: 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 CONTRASEA:
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>
La primera y segunda partes impedirn que los usuarios puedan descargar los archivos .htaccess o .htpasswd La tercera parte: AuthUserFile apunta al archivo .htpasswd que contiene informacin de login (= apertura de la sesin) de los usuarios en el servidor web. AuthName es el texto que aparecer en la ventana de login. AuthType es el tipo de autenticacin, casi siempre es de tipo bsico (= Basic).
Si lo desea, puede especificar los usuarios que tendrn 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 opcin -c crea el archivo si no exista. 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 contraseas que usa Apache por defecto es crypt(). Otros algoritmos disponibles para cifrar contraseas en Apache son MD5 y SHA. Adems, es posible no cifrarlas si escoge el mtodo 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 PGINAS 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>Pgina 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 PGINA ANTERIOR Apache 2 Test Page.
INSTALACIN 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 instalacin con el navegador y la siguiente pgina web: https://<su direccin 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.
Acptela y conctese usando el user and password que estime conveniente. Podemos observar que ingresamos correctamente a nuestra pagina de pruebas.
CERTIFICANDO NUESTRAS PGINAS WEB
Para obtener un certificado SSL firmado por una autoridad de certificacin (= Certificate Authority, CA), por ejemplo Verisign o Thawte, debe pagar por aquel certificado. Cuesta aproximadamente US$1.000 por ao. Certificados SSL relativamente ms 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 creacin 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 pblico dicho archivo, algn hacker podra usar el siguiente comando para descargarse el archivo: wget https://sudominio.com/www_sudominio.key Note lo til que podra ser el comando wget.
Completamos la informacin 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 []: root@pollainformatica.com
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 creacin de la CSR: cat www_pollainformatica_com.csr
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 pblica de su servidor Apache y la firma digital de la CA.
Copie ABSOULTAMENTE TODA LA SALIDA de "cat www_sudominio_com.csr" en la pgina de la CA, cuando esta la solicite, SIN BLANCOS NI LNEAS EN BLANCO ANTES O DESPUS.
Hasta aqu tenemos la solicitud de certificacin y tambin 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.
Signature ok subject=/C=ec/ST=Pichincha/L=Quito/O=Cynitech/OU=Administracion/CN=www.p ollainformatica.com/emailAddress=jhondefri_guz@hotmail.com Getting Private key Enter pass phrase for www_pollainformatica_com.key:123456
En criptografa, X509 es el estndar ITU (= International Telecommunication Union) para infraestructuras de claves pblicas. Especifica los formatos de los certificados de clave pblica y algoritmos para validacin de la ruta de certificacin.
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 ms baratos ofrecidos por CAs ms pequeas. Los archivos correspondientes le son entregados por dichas CA. certificate bundle: si tiene ms de un certificado, puede agruparlos todos en un slo archivo (= bundle). Debe cifrarlo con algoritmo PEM. Puede pedirlo a su CA. certificate chain: archivo con informacin para validar la ruta de certificacin. 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 pgs. 97-100 del libro de texto.) EJERCICIO1: instalar WEBMAIL (pgs. 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
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 pginas 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
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 []:root@pollainformatica.com
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 slo 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 lnea 20, localice #SLAPD_LDAPS=no: Elimine la almohadilla (#) y cambie no por yes, de modo que quede como SLAPD_LDAPS=yes. SLAPD_LDAPS=yes.
Creacin 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:
Inicie el servicio slapd y aada ste al resto de los servicios que arrancan junto con el sistema, ejecutando los siguientes dos mandatos: service slapd start chkconfig slapd on
Migracin de cuentas existentes en el sistema. vim /usr/share/migrationtools/migrate_common.ph
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 podrn 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
Administracin Teniendo en cuenta la complicidad de la creacin de usuarios y unidades organizativas que cuenta este servicio, he decidido explicar cmo instalar un modo grfico para este, es decir, administrar openldap por una interfaz grfica 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 lnea 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 configuracin que habamos creado anteriormente por la consola.
Configuracin 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):
Defina los valores para los parmetros 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 prcticos, el valor del parmetro uri corresponde al nombre del servidor LDAP, previamente resuelto por un DNS y el valor del parmetro base debe ser el mismo que se especific en el archivo /etc/openldap/slapd.conf para el parmetro suffix. Considerando que el nombre de anfitrin 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 anfitrin servidor.dominio.tld, previamente resuelto en un servidor DNS, ejecute lo siguiente:
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.
Instalacin 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 bsico del servicio de mail. Envo 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 buzn de entrada del usuario actual (root): mail
CONFIGURACION DE POSTFIX:
Confirmar que postfix est instalado: rpm -q postfix postfix-2.6.6-2.2.el6_1.i686
CONFIGURACIN PARA ENVIAR CORREO:
Postfix no enva 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 configuracin de postfix: vim /etc/postfix/main.cf Modificar las siguientes lneas. 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(lnea 117) #permitir que todos los clientes del servidor le enven mail mynetworks = 192.168.5.0/24,127.0.0.1/8(linea265) #La direccin del servidor "repetidor" de mail, que en este caso es #la de mail.andinanet.net relayhost = 200.107.10.14(lnea314-srv amigo)
Para ver un resumen de los cambios realizados al archivo /etc/postfix/main.cf postconf -n Para ver todos los parmetros por defecto de postconf: postconf -d Para ver el valor actual de parmetros especficos, por ejemplo: postconf myhostname myhostname = mail.pollainformatica.com Para editar un parmetro en lnea 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" jhondefri_guz@yahoo.com echo "prueba desde centos hacia hotmail" | mail -s "centos a hotmail" jhondefri_guz@hotmail.com echo "prueba desde centos hacia gmail" | mail -s "centos a yahoo" friu1988@gmail.com
mail -s "desde CentOS" jhondefri_guz@yahoo.com <?Aqui ingresamos el contenido del mensaje> Holas Daniel, soy Dino, te escribo para... <?Finalizamos con <.> > EOT mail -s "desde CentOS" jhondefri_guz@hotmail.com Holas Daniel, soy Dino, te escribo para... EOT mail -s "desde CentOS" friu1988@gmail.com Holas Daniel, soy Dino, te escribo para... EOT
Ver el estado del log del servicio de correo. cat /var/log/maillog
Configuracin para cifrar el envo de mails por la conexin SMTP:
Instalacin 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 Aadir 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 Aadir la contrasea para que postfix se identifique: vi /etc/postfix/sasl_passwd mail.andinanet.net usuario:contrasea Transformar la informacin anterior en archivo .db postmap /etc/postfix/sasl_passwd Usar el archivo .db creado: service postfix reload
CONFIGURACIN 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
Aadir 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 user@dominioesc.org.ec, # user@mail.dominioesc.org.ec, user@centos1.example.com #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 smbolo 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: lourdes.suarez@andinanet.net support: eduardo,huesped,cecilia #Despus, obtener un archivo .db del anterior: newaliases #Reiniciar postfix. service postfix restart
Recuperacin 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 buzn 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 ms 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->Administracin->Nivel de seguridad y Cortafuegos
Comprobacin de que aquellos puertos estn 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 grfico de correo electrnico: 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
Bibliografa:
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 lgico necesario. Instalacin a travs de yum. yum -y install net-snmp net-snmp-utils Procedimientos
Lo ms recomendable ser crear un archivo nuevo y limpio de contenido para poder partir de algo ms 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 servirn 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 lnea 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 lnea hace lo mismo pero definiendo a la red 192.168.5.0/24.
Definicin de grupos.
Se crean al menos dos grupos: MyRWGroup y MyROGroup. El primero ser un grupo al que se asignarn ms adelante permisos de lectura escritura y el segundo ser un grupo al que posteriormente se asignarn permisos de solo lectura. Por cada grupo se asignan tres lneas 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 travs del servicio. Lo ms comn, para, por ejemplo, utilizarse conMRTG, es lo siguiente: ##name incl/excl subtree mask(optional) view all included .1 80
Asignacin de permisos a los grupos.
Se debe especificar que permisos tendrn los dos grupos, MyROGroup y MyRWGroup. Son de especial inters 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 Parmetros de carcter informativo.
Se definen dos parmetros de carcter informativo para que cuando utilicen aplicaciones cliente como MRTG se incluya algo de informacin acerca de que sistema se est accediendo. syslocation Servidor Linux en srvuio.pollainformatica.com syscontact Administrador (root@pollainformatica.com)
Un ejemplo funcional de configuracin.
El ejemplo que mostramos a continuacin 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 direccin 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 #Informacin de Contacto del Sistema syslocation Servidor Linux en srvuio.pollainformatica.com syscontact Administrador (root@pollainformatica.com) Si es necesario aadir ms 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 lnea 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 configuracin 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 ejecucin (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 direccin IP es192.168.1.254, para probar si la configuracin funciona, solo hay que ejecutar los dos siguiente mandatos a fin verificar que devuelvan informacin 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 polticas estrictas, como por ejemplo Shorewall, es necesario abrir los puerto 161 y 162 por UDP (SNMP y SNMPTRAP, respectivamente).
CONFIGURACIN DE NAGIOS Instalacin de nagios y nagios plug-ins: yum install nagios nagios-plugins
Al final de la instalacin, todos los archivos de configuracin de Nagios se encontrarn en /etc/nagios El principal archivo de configuracin 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 configuracin de Nagios para el Apache web server. El archivo /usr/lib/nagios/cgi contiene scripts CGI de configuracin 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 esttica de la interface web de Nagios. Los logs de Nagios se encuentran en /var/log/nagios En el directorio /var/nagios se registra la informacin sobre el estado de los MDs.
CONFIGURACIN INICIAL:
Cambiar la direccin de contacto del administrador, a la cual Nagios enviar alertas: vi /etc/nagios/objects/contacts.cfg cambie la direccin nagios@localhost por su direccin de correo electrnico
Crear la clave de administrador de Nagios: htpasswd -c /etc/nagios/htpasswd.users nagiosadmin El archivo /etc/nagios/htpasswd.users contiene los nombres y contraseas (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
Asegrese de que el servidor HTTP Apache tambin arranque cuando el SO inicie: chkconfig httpd on Asegrese de que el demonio de Apache arranque: service httpd start
Abra la interfaz web de nagios con su navegador en la siguiente direccin: http://<su_servidorweb.su_dominio>/nagios/ O tambin: http://<su_direccin_IP>/nagios/ Le pedir nombre de usuario y contrasea. Introduzca el nombre "nagiosadmin" y la contrasea que cre para esta cuenta de usuario.
Pruebas de funcionamiento Login al administrador de nagios