domingo, 25 de junio de 2017

CONFIGURACION DE UN DNS PUBLICO Y UN SERVIDOR WEB APACHE | CENTOS 7

Registro de un dominio de internet
Registrar un dominio en:
.com --> godaddy, Namecheap
.pe    --> punto.pe
.tk     --> www.dot.tk             (GRATIS)
               my.freenom.com   (GRATIS)
Usaremos como referencia el dominio gratuito midominio.tk

Configurar Nombre de Host
$> hostnamectl set-hostname srvweb.dominio.tk
$> exit
Volver a loguearse
$> hostnamectl

Configurar la ip del host en /etc/hosts
$> vim /etc/hosts
127.0.0.1       localhost.localdomain localhost
192.168.2.X   srvweb.dominio.com   srvweb

Instalar Repositorio Epel
$> yum -y install epel-release 

Ejecute lo siguiente para instalar Bind en CentOS 7
$> yum -y install bind bind-chroot bind-utils

Copiar los archivos del DNS al entorno chroot

$> cd /var/named
$> for f in named.* data dynamic slaves; do mv $f chroot/var/named/; ln -s /var/named/chroot/var/named/$f /var/named/; done

Crear firma digital del servidor

$> rndc-confgen -a -r /dev/urandom -b 512 -c /etc/rndc.key
$> chown named:named /etc/rndc.key
$> chmod 640 /etc/rndc.key

Copiar la firma digital al entorno chroot

$> cd /etc
$> for f in named.* rndc.key; do mv $f /var/named/chroot/etc/; ln -s /var/named/chroot/etc/$f /etc/; done

Actualizar el archivo de cache con los servidores DNS raíz.

$> wget -N http://www.internic.net/domain/named.root -O /var/named/named.ca
$> chown named:named /var/named/named.ca
$> chmod 640 /var/named/named.ca

Editar el archivo /etc/named.conf:
$> vim /var/named/chroot/etc/named.conf
-------------------------------------------------------------------------------------------------------------------------------------------------
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
        listen-on port 53 { 127.0.0.1;192.168.2.5;};
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost;any; };
        forwarders   { 8.8.8.8; };
        recursion           no;
        dnssec-enable no;
        dnssec-validation no;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
// Zona raiz por defecto
zone "." IN {
        type hint;
        file "named.ca";
};
// Zona para nuestro dominio
zone "dominio.com" {
        type master;
        file "/var/named/chroot/var/named/dominio.com.zone";
        allow-update { none; };
};
include "/etc/named.rfc1912.zones";
---------------------------------------------------------------------------------------------------------------------------------------------
Crear y editar los archivos de zona de resolución Directa 
$> cd /var/named/chroot/var/named
$> vim dominio.com.zone
-------------------------------------------------------------------------------------------------------------------------
$TTL 86400 @ IN SOA @ root ( 2017062401 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum dominio.com. IN NS ns1.dominio.com.
dominio.com. IN NS ns2.dominio.com. ns1 IN A 158.69.210.X
ns2 IN A 158.69.210.X mail IN A 158.69.210.X www IN A 158.69.210.X dominio.com. IN A 158.69.210.X dominio.com. IN MX 10 mail.dominio.com.
------------------------------------------------------------------------------------------------------------------------

Configurar DNS de tarjeta de red: $> vim /etc/resolv.conf nameserver IP DE SERVIDOR
$> systemctl restart network
Reiniciar los servicios $> systemctl start named $> systemctl enable named $> systemctl status named
Si salen errores en el servicio, verificar los logs $> tail -f /var/log/messages $> less /var/log/messages Nota si sale errores de permisos o selinux ——————————————————————————– $> chgrp -R named /var/named/chroot/var/named $> restorecon -FRvv /var/named/chroot/var/named ——————————————————————————— Reglas del firewall si se desea consultar el DNS desde otro equipo Instalar Firewalls: $> yum -y install firewalld $> systemctl enable firewalld $> systemctl start firewalld $> firewall-cmd --add-service=dns --permanent $> firewall-cmd --reload
Verificar puertos abiertos:
$> iptables -S ————————— Verificar el firewall: $> iptables -S | grep 53 ————————— Comprobación del DNS $> dig NS dominio.com $> dig MX dominio.com

Instalacion Servidor Web Apache $> yum -y install httpd Habilitar firewalld y permitir acceso a http (80) y https (443) $> firewall-cmd --add-service=http --permanent $> firewall-cmd --add-service=https --permanent $> firewall-cmd --reload $> systemctl start httpd $> systemctl enable httpd Ingresar con el navegador: http://www.dominio.com Agregar sitio web principal: $> cd /var/www/html ---> Web Principal

Enviar Archivos a Servidor:
C:> scp -rp /carpetaLocal/* root@159.89.235.58:/var/www/html

Reiniciar Apache $> systemctl restart httpd

Verificar archivo de configuración para detectar errores de sintaxis: $> apachectl configtest

Verificar el sitio que sea accesible usando curl: $> curl midominio.com

Entrar con el navegador: http://www.dominio.com
Ocultar la versión de Apache: $> vim /etc/httpd/conf.d/serversignature.conf Añada el siguiente contenido: **************************** ServerSignature Off ServerTokens Prod **************************** Dominios Virtuales en Apache (Virtual Hosts)
Configurar archivos de DNS.

Configuracion de Multiples Dominios: $> vim /etc/httpd/conf.d/vhosts.conf ---------------------------------------------------------------------------------------------------------------- <VirtualHost *:80> ServerName www.dominio2.com DocumentRoot "/var/www/dominio2" <Directory "/var/www/dominio2"> Options Indexes FollowSymLinks DirectoryIndex index.html index.php AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog /var/log/httpd/www.dominio2.com-error_log CustomLog /var/log/httpd/www.dominio2.com-access_log combined </VirtualHost> <VirtualHost *:80> ServerName www.dominio3.com DocumentRoot "/var/www/dominio3" <Directory "/var/www/dominio3"> Options Indexes FollowSymLinks DirectoryIndex index.html index.php AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog /var/log/httpd/www.dominio3.com-error_log CustomLog /var/log/httpd/www.dominio3.com-access_log combined </VirtualHost> ------------------------------------------------------------------------------------------------------------------ Resolviendo los nombres de Host por DNS o por /etc/hosts $> vim /etc/hosts 127.0.0.1 localhost localhost.locadomain 192.168.2.X www.dominio2.com 192.168.2.X www.dominio3.com Creando los directorios para la resolucion de los host virtuales: $> mkdir /var/www/dominio2 $> mkdir /var/www/dominio3 Agregar contenido de Paginas web en directorio: $> cd /var/www/html ---> index.html $> cd /var/www/dominio2 ---> index.php $> cd /var/www/dominio3 ---> index.php Restaurando los contextos web SELINUX $> restorecon -RFvv /var/www/dominio2/ $> restorecon -RFvv /var/www/dominio3/
Reniciando servidor web y probando: $> systemctl restart httpd Entrar con el navegador: http://www.dominio2.com http://www.dominio3.com Directorios virtuales.
========================
Crear directorio para alojar el sitio web del cliente1: $> mkdir /var/www/cliente1 Edite el archivo vhosts.conf y añadir al final el siguiente contenido: $> vim /etc/httpd/conf.d/vhosts.conf: -------------------------------------- Alias /cliente1 /var/www/cliente1 <Directory "/var/www/cliente1"> Options Indexes AllowOverride all Require local Require all granted </Directory> -------------------------------------- Restaurando los contextos web SELINUX $> restorecon -RFvv /var/www/cliente1/

Reniciando servidor web:
$> systemctl restart httpd Entrar con el navegador: http://www.dominio1.com/cliente1 Limitar el acceso a directorios por dirección IP. $> vim /etc/httpd/conf.d/vhosts.conf ************************************************ Alias /cliente1 /var/www/cliente1 <Directory "/var/www/cliente1"> Options Indexes Require local Require ip 192.168.2.0/24
</Directory> ************************************************ Reniciando servidor web: $> systemctl restart httpd Realizar prueba: http://192.168.2.X/cliente1/ Limitar el acceso basico por usuario y contraseña: Crear directorio para alojar el sitio web del cliente2:
$> mkdir /var/www/cliente2

Restaurando los contextos web SELINUX:
$> restorecon -RFvv /var/www/cliente2
$> vim /etc/httpd/conf.d/vhosts.conf
Añadir al final el siguiente contenido: -------------------------------------------------- Alias /cliente2 /var/www/cliente2 <Directory "/var/www/cliente2"> Options Indexes AllowOverride all Require local Require all granted </Directory> --------------------------------------------------- Crear el archivo para la autenticacion dentro del cliente2: $> vim /var/www/cliente2/.htaccess ------------------------------------------------------------------------ AuthName "Solamente usuarios autorizados" AuthType Basic Require valid-user AuthUserFile /var/www/.htpasswd ------------------------------------------------------------------------ Crear archivo donde se guardaran las credenciales: $> touch /var/www/.htpasswd $> chmod 600 /var/www/.htpasswd $> chown apache:apache /var/www/.htpasswd Añadir usuarios virtuales y contraseñas: $> htpasswd /var/www/.htpasswd juan $> htpasswd /var/www/.htpasswd pedro $> htpasswd /var/www/.htpasswd hugo $> htpasswd /var/www/.htpasswd luis

Reniciando servidor web: $> systemctl restart httpd Realizar prueba: http://127.0.0.1/cliente2/ HTTPS Centos Comprar Certificados en: http://godaddy.com http://verisign.com Instalar dependencias https $> yum -y install mod_ssl openssl $> firewall-cmd --add-service=https --permanent $> firewall-cmd --reload $> systemctl restart httpd Generar el certificado SSL $> openssl genrsa -des3 \-out /etc/pki/tls/private/ca.key 4096 Generate CSR : $> openssl req -sha256 -new \-key /etc/pki/tls/private/ca.key \-out /etc/pki/tls/certs/ca.csr --------------------------------------------- Country Name (2 letter code) [XX]:PE State or Province Name (full name) []:Lima Locality Name (eg, city) [Default City]:Lima Organization Name (eg, company) [Default Company Ltd]:PeruSystem Organizational Unit Name (eg, section)[]:Sistemas Common Name (eg, your name or your server's hostname)[]:www.perusystem.pe Email Address []:correo@gmail.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: ---------------------------------------------- Ejecute lo siguiente para crear un certificado auto-firmado con estructura X.509 en el que
se establece una validez por 1825 días (5 años): $> openssl x509 -sha256 -req -days 1825 \-in /etc/pki/tls/certs/ca.csr \-signkey /etc/pki/tls/private/ca.key \-out /etc/pki/tls/certs/ca.crt
$> chmod 600 /etc/pki/tls/*/ca.* Editar el archivo de configuracion de SSL en Apache para usar el certificado autofirmado: $> vim /etc/httpd/conf.d/ssl.conf 100: SSLCertificateFile /etc/pki/tls/certs/ca.crt 107: SSLCertificateKeyFile /etc/pki/tls/private/ca.key Reniciando servidor web: $> systemctl restart httpd

No hay comentarios:

Publicar un comentario

Instalar Powershell 7

Instalar Powershell Version 7 -------------------------------------- $> winget search powershell $> winget install Microsoft.Powershe...