sábado, 9 de septiembre de 2017

Configuración variable Java en el sistema para múltiples usuarios

Una de las preguntas iniciales al momento de configurar un servidor de aplicaciones es como configurar la variable de java, pare ello recordemos que si queremos que esta variable este disponible para todos los usuarios del sistema la misma se debe configurar en "/etc/profile".

Primero identificar que versión de java se tiene instalado:

rpm -qa | grep java
Se tendra una salida similar:
java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el7_3.x86_64
java-1.7.0-openjdk-1.7.0.141-2.6.10.1.el7_3.x86_64
java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64

Para saber donde se encuentra los ejecutables de java:

alternatives --config java
Hay 3 programas que proporcionan 'java'.

  Selección    Comando
-----------------------------------------------
*  1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre/bin/java)
   2           java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.141-2.6.10.1.el7_3.x86_64/jre/bin/java)
 + 3           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Presione Intro para mantener la selección actual[+], o escriba el número de la selección:  
Ingresar el numero de la opción con la cual se desea configurar.

Para agregar la variable para todos los usuario editar el archivo /etc/profile

export JAVA_HOME="path identificado"

export PATH=$JAVA_HOME/bin:$PATH
Para que se recarguen las variables definidas en el sistema ejecutar 

source /etc/profile




domingo, 6 de agosto de 2017

Firewalld Centos7

Esta vez vamos a comprender conceptos principales  del firewall en centos 7

En centos 7 el manejador del firewall es el servicio del firewalld

Para iniciar el firewall

# systemctl  start  firewalld
# systemctl enable firewalld

Cabe indicar que en CentOS 7 para la configuración del firewall existen las denominas zonas y estas están diseñadas para activar reglas dependiendo el nivel de confianza con la red.

Por defecto las distintas zonas admiten distintos servicios de red y tipos distintos tipos de tráfico entrante o saliente. Una vez que es activado el llamado servicio del  FirewallD por primera vez en el equipo, se activara por defecto la llamada zona Public o "pública" y esta será su zona predeterminada para configuraciones posteriores.

Una de las características de las zonas es que permiten ser aplicadas sobre diferentes interfaces de red. Por ejemplo, con interfaces separadas tanto para una intranet así como otra que tenga acceso al Internet, en las cuales se puede permitir en una red los servicios de DHCP, DNS, FTP en una zona interna pero solo HTTP en una zona externa, cabe señalar que cualquier interfaz que no esté establecida explícitamente en una zona especificada esta será añadida a la zona predeterminada.

A diferencia de versiones anteriores de firewall en las que se manejaban sobre un solo archivo de configuración de reglas, el firewalld se maneja a través de archivos xml donde se guardan las configuraciones de las reglas para las diferentes zonas.

Estos archivos se guardan en la siguiente ruta:

# cd /usr/lib/firewalld/

Dentro de este directorio se encuentran sub directorios que permitirán realizar la configuración dependiendo de las reglas que se creen.


Para ver la zona predeterminada ejecute:

# sudo firewall-cmd --get-default-zone

Para cambiar la zona predeterminada puede utilizar:

# sudo firewall-cmd --set-default-zone=internal

Para ver las zonas utilizadas por su(s) interfaz o interfaces de red:

# sudo firewall-cmd --get-active-zones

Ejemplo de una salida:
public
  interfaces: eth0

Para obtener todas las configuraciones para una zona específica:

#sudo firewall-cmd --zone=public --list-all

Ejemplo de salida:

public (default, active)
  interfaces: ens160
  sources:
  services: dhcpv6-client http ssh
  ports: 12345/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

Para obtener todas las configuraciones para todas las zonas:

# sudo firewall-cmd --list-all-zones
Salida de ejemplo:

block
  interfaces:
  sources:
  services:
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

  ...

work
  interfaces:
  sources:
  services: dhcpv6-client ipp-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

Como es de conocimiento que los servicios y los puertos se encuentran en el archivo de configuracion /etc/services se puede acudir a este archivo para realizar consultas de los puertos que utiliza un servicio al momento de definir reglas en zonas del firewalld. 

El firewalld puede admitir tráfico con base en reglas predefinidas según servicios de red específicos y se encuentran en el directorio /usr/lib/firewalld/services 

El firewalld puede crear sus propias reglas personalizadas para un servicio y agregarlas a cualquier zona y los archivos para los servicios creados por el usuario estarían en /etc/firewalld/services.

Para ver los servicios disponibles de forma predeterminada:

# sudo firewall-cmd --get-services

Por ejemplo, para habilitar o deshabilitar el servicio HTTP:

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --remove-service=http --permanent

Una de las características que presenta el firewalld al momento de la re-dirección de puertos es la simplicidad con la cual se hace esta configuración, a continuación un ejemplo de como se realizaría

La siguiente regla de ejemplo redirige el tráfico entrante en la zona de public al puerto 80 al puerto 445 del mismo servidor:

# sudo firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=445

Eñ siguiente ejemplo indica como se redirige el tráfico entrante al servidor en un puerto especifico a otro a otro puerto especifico en un segundo servidor de la red, para lo cual primero se debe activar la opcion del enmascarado de la zona deseada:

# sudo firewall-cmd --zone=public --add-masquerade

Se procede añadir la regla de re-dirección, en este caso se quiere redirigir el tráfico sel servidor 1 en el puerto 80 al segundo servidor en el puerto 8080 con la dirección IP: 192.168.56.10

sudo firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.56.10

En el caso para remover las reglas establecidas, se debe reemplzar la opcion del  --add con la opcion de --remove.

sudo firewall-cmd --zone=public --remove-masquerade

jueves, 8 de junio de 2017

Activar Guest Additions VirtualBox y Centos 7

Para activar los GuestAdditions en Centos7 es necesario la instalación de algunos paquetes:

como usuario root ejecutar

# yum install epel-release -y
# yum update -y
# yum install kernel-devel kernel-headers dkms gcc gcc-c++ -y
# reboot

Una vez realizado esto se procede a ejecutar el script como usuario root

# cd /run/media/VBOXADDITIONS_5.1.18_114002
# ./autorun.sh


# reboot

Con esto esta listo el equipo virtual con los additions de VirtualBox.

sábado, 16 de julio de 2016

Diferencias entre FTP, VSFTP, FTPS, SFTP

FTP
Es el protocolo de transferencia de archivos implementado alrededor de 1971, esta basado en los RFC141 y en el RFC959, en donde se usan dos canales uno para la interpretación de comandos, y el otro para el canal de datos. En el manejo del protocolo de FTP el cliente y el servidor manejan un proceso independiente respectivamente.

Tipos de FTP

FTP Activo

1.- La secuencia de comandos enviados desde el cliente son receptados por el canal de control que es habilitado en el puerto 21 del servidor ftp.
2.- Cuando el Servidor ftp valida las credenciales de acceso inicia el proceso de transferencia de la información a través del puerto 20 del servidor hacia un puerto entre el rango de 1024 y 65535 lo que incurre que el firewall del cliente debe permitir entradas en el rango de 1024 y 65535.El modo activo sólo es conveniente en la ausencia de un muro cortafuegos entre el servidor y el cliente, como ocurre en los escenarios de una red de área local.

FTP Pasivo
1.- El cliente inicia la conexión hacia el servidor FTP a través del puerto 21 para tareas de control.
2.- Cada vez que el cliente solicita datos a través de la conexión de control , el cliente inicia las conexiones de transferencia de datos al servidor. El puerto de origen de estas conexiones de transferencia de datos es siempre un puerto en el cliente con un puerto de destino de un gran puerto en el servidor
Debido a que el cliente siempre inicia las conexiones necesarias, el FTP pasivo funciona mejor para los clientes protegidos por un firewall .

FTPS 

Es un plug adicional del tradicional protocolo FTP con seguridad basada en certificados SSL. El FTPS utiliza un canal de control y abre nuevas conexiones para la transferencia de datos.

SFTP 

Es un protocolo de transferencia de archivos muy similar al FTP pero es construido por completo desde cero basado en la seguridad que nos ofrece el protocolo SSH, a diferencia del FTP el SFTP usa un solo canal de comunicación basado en SSH el cual permite asegurar la información que se esta transmitiendo en binario y no en formato texto como lo hace el FTP.



jueves, 10 de diciembre de 2015

Configuración de nfs4 en centos 7

Para la configuración del servicio de NFSv4 se deben realizar varias configuraciones que detallare a continuación:

Modificación de los archivos:

/etc/exports
/home/ 192.168.56.100(rw,sync,no_root_squash)

/etc/sysctl.conf

En este archivo agregamos las siguientes lineas:

#TCP port rpc.lockd should listen on.
fs.nfs.nlm_tcpport=32803
#UDP port rpc.lockd should listen on.
fs.nfs.nlm_udpport=32769

/etc/sysconfig/nfs

En este archivo debemos agregar los puertos:

RPCMOUNTDOPTS="892"
STATDARG="662"

Habilitar nml_tcp/udpport

echo 32803 /proc/sys/fs/nfs/nlm_tcpport
echo 32803 /proc/sys/fs/nfs/nlm_udpport


Habilitar puertos en el firewall

# firewall-cmd --add-service=nfs --add-port=32803/tcp --add-port=32769/udp --add-port=892/udp --add-port=892/tcp --add-port=662/tcp --add-port=662/udp --permanent
# firewall-cmd --reload 

Habilitar SELinux 
# setsebool -P use_nfs_home_dirs on

Una vez realizados los cambios reiniciamos el servicio del nfs en el servidor.
systemctl restart nfs


Montaje desde el servidor cliente
mkdir /home/dir_nfs
mount 192.168.56.100:/home /home/dir_nfs



jueves, 26 de noviembre de 2015

Padre Nuestro de Linux

Un poco de humor linuxero


San Torvalds nuestro que estás en http://www.linux.org/
Santificado sea tu Kernel
venga a nosotros tu Free Software,
Tanto de Icaza como de Stallman
Hágase tu download así en el http como en el ftp,
Danos hoy nuestras actualizaciones cada día,
Perdona nuestros bugs
como también nosotros perdonamos a microsoft,
No nos dejes caer en mac-win
y líbranos de los pantallazos azules.
Amén.

Niveles de ejecución o RUN LEVELS

Los niveles de ejecución hacen referencia a los modos en los cuales el sistema operativo puede operar desde que ha sido encendido.

En las versiones de RHEL, CentOS, Fedora, y las demas distros los run levels son los siguientes:


Run Level Nombre Descripción
0 Apagado Procede apagar el sistema operativo
1 Monousuario En este modo solo se habilita el acceso al usuario root no se habilita el acceso de la red
2 Multiusuario En este modo se habilita el acceso a mas usuarios pero no se habilita la red
3 Multiusuario Se habilita la interfaz de red
4 Multiusuario con red Igual que el modo 3
5 Modo Grafico Permite iniciar el sistema operativo con una interfaz de red
6 Reinicio Procede a reiniciar el sistema operativo

Para consultar el run level de un sistema operativo lo haremos con el siguiente comando:

# runlevel

Para cambiar el run level de un sistema operativo lo haremos modificando el siguiente parámetro.

# vim /etc/inittab

Tendremos un contenido similar al siguiente:

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

Para modificar el run level se debe de cambiar el valor descrito en este archivo en la línea des-comentada.

Run levels con systemd
A partir de la versión de RHEL7 los sistemas operativos ya no son manejados por el super demonio initd por lo cual el manejo de los run levels es distinto, en estas nuevas versiones el super demonio es el systemd. Para manejar los run leves se lo hace con el systemctl

Para ver en que nivel esta corriendo el sistema operativo

# systemclt get-default
graphical.target

Como se puede ver ya no se muestra los valores que habíamos identificado anteriormente.

Para ver los niveles de servicio del sistema operativo se lo realiza con el siguiente comando:


[root@dark ~]# systemctl list-units --type=target
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
cryptsetup.target loaded active active Encrypted Volumes
getty.target loaded active active Login Prompts
graphical.target loaded active active Graphical Interface
local-fs-pre.target loaded active active Local File Systems (Pre)
local-fs.target loaded active active Local File Systems
multi-user.target loaded active active Multi-User System
network-online.target loaded active active Network is Online
network.target loaded active active Network
nfs-client.target loaded active active NFS client services
nss-lookup.target loaded active active Host and Network Name Lookups
nss-user-lookup.target loaded active active User and Group Name Lookups
paths.target loaded active active Paths
remote-fs-pre.target loaded active active Remote File Systems (Pre)
remote-fs.target loaded active active Remote File Systems
rpcbind.target loaded active active RPC Port Mapper
slices.target loaded active active Slices
sockets.target loaded active active Sockets
sound.target loaded active active Sound Card
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
timers.target loaded active active Timers

LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.

22 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

Para cambiar el nivel de ejecución por defecto utilizaremos el parámetro set-default seguido del “UNIT” asociado

# systemctl set-default  multi-user.target


Formato de paquetes RPM

Muchas de las veces me han preguntado que significan los números que siguen del nombre de un paquete pues hoy quiero esclarecer esa inquietud con todos ustedes.Vamos a tomar como ejemplo un paquete que muchos administradores conocen y por lo menos alguna vez lo han visto el famoso webmin.

Para la descarga de el webmin deben dirigirse al sitio oficial y proceder a descargarlo
http://www.webmin.com/rpm.html

En el momento del desarrollo de este post la versión del webmin es webmin-1.770-1.x86_64.rpm

Vamos analizar que significan los parámetros que siguen después del nombre, estos parámetros son una convención así que siempre vamos a encontrar los mismos para todos los rpms de la siguiente forma:

nombre-version-publicación.arquitectura.rpm

  • Nombre: Es una descripción del paquete. El nombre sera la entrada base para el indice de paquetes en la base de datos de paquetes disponibles en el sistema operativo.
  • Versión: Es la versión del paquete con la que sera liberado.
  • Publicación: Es el numero de veces que esta versión del paquete ha sido empaquetada. Por lo general incrementa cuando se hacen correcciones o mejoras sobre la misma versión del paquete.
  • Arquitectura: Es una descripción del paquete que indica para que tipo de CPU fue empaquetado este rpm.
Como ejemplo tomamos el paquete: webmin-1.770-1.x86_64.rpm donde:
  • Nombre: Webmin
  • Versión: 1.770
  • Publicación: 1
  • Arquitectura: x86_64
Como información adicional para manejo de los rpms dejare una breve explicación.

Directorio de la base de los rpm /var/lib/rpm, los archivos que se encuentran en este directorio continen la información relacionada con los paquetes instalados en el Sistema Operativo.

Para saber si un paquete esta instalado:

# rpm -q webmin webmin-1.770-1x86_64.rpm

Para saber todos los rpms instalados en el sistema operativo:

# rpm -qa 

Para tener información del paquete RPM

# rpm -qi webmin

[root@dark ~]# rpm -qi webmin 
Name        : webmin
Version     : 1.770
Release     : 1
Architecture: noarch
Install Date: mié 25 nov 2015 13:05:37 ECT
Group       : System/Tools
Size        : 73745404
License     : Freeware
Signature   : DSA/SHA1, dom 04 oct 2015 00:50:08 ECT, Key ID d97a3ae911f63c51
Source RPM  : webmin-1.770-1.src.rpm
Build Date  : dom 04 oct 2015 00:49:38 ECT
Build Host  : fudu.home
Relocations : (not relocatable)
Vendor      : Jamie Cameron
Summary     : A web-based administration interface for Unix systems.
Description :
A web-based administration interface for Unix systems. Using Webmin you can
configure DNS, Samba, NFS, local/remote filesystems and more using your
web browser.

After installation, enter the URL http://localhost:10000/ into your
browser and login as root with your root password.

Para des-instalar un rpm 

# rpm -e webmin




miércoles, 11 de noviembre de 2015

Montar ISOs en el fstab.

Para realizar el montaje de una imagen de un DVD y que esta sea persistente al inicio del servidor se debe agregar el punto de montaje del mismo en el archivo /etc/fstab.


#
/dev/mapper/luks-5c96c7a3-4ffe-4132-9bd9-dd6d5d9669ac /                       ext4    defaults,x-systemd.device-timeout=0 1 1
UUID=a818315b-c29d-41fb-8358-589a1977f5b5 /boot                   ext4    defaults        1 2
/dev/mapper/fedora-swap swap                    swap    defaults        0 0
/home/dark/html/isos/rhel/rhel5/rhel-server-5.11-x86_64-dvd.iso /home/dark/html/imagenes/rhel5/ iso9660 loop 0 0
/home/dark/html/isos/rhel/rhel6/rhel-server-6.7-x86_64-dvd.iso /home/dark/html/imagenes/rhel6/ iso9660 loop 0 0
/home/dark/html/isos/rhel/rhel7/rhel-server-7.1-x86_64-dvd.iso /home/dark/html/imagenes/rhel7/ iso9660 loop 0 0
/home/dark/html/isos/centOS/CentOS-7-x86_64-DVD-1503-01.iso /home/dark/html/imagenes/centos7/ iso9660 loop 0 0
/home/dark/html/isos/rhel/rhev-h/rhev3.5/rhevh-7.1-20150603.0.el7ev.iso /home/dark/html/imagenes/rhevh7/ iso9660 loop 0 0

Como sabemos debemos tener disponibles en el disco local la imagen dvd del medio que debemos de montar para montar los dvds o los cds el formato es iso9660 no olvidar incluir esta linea en el punto de montaje definido.




Manejo de Procesos

Manejo de Procesos

Para el manejo de Procesos en GNU/Linux podemos utilizar las herramientas de top,htop,ps las cuales nos permiten visualizar el PID de un proceso el PPID de un proceso, etc.

Para comprender los procesos en GNU/Linux debemos comprender los siguientes conceptos:

Proceso padre

El proceso padre es el cual contiene bajo su poder procesos hijos.
El proceso padre en las versiones de RHEL5,6 es el init
El proceso padre en las versiones de RHEL7 y posteriores es el systemd

El init y el systemd se encargan de manejar los demás procesos en el sistema operativo.

Posteriormente agregaré un blog explicando las características de cada uno de ellos.

Proceso hijo

El proceso hijo va a depender de la supervivencia de un proceso padre.
Todos los procesos que se ejecuten por debajo del init y del systemd se consideran procesos hijos.

Como todo en GNU/Linux los procesos tiene características similares a los archivos o directorios de esa forma un proceso tiene:

  • ID del usuario dueno del proceso
  • ID del proceso
  • ID del proceso padre
  • variables
  • directorios de configuración
  • archivos de ejecución
Una vez claros los conceptos basicos de procesos podemos empezar a manejarlos.
Tomaremos como ejemplo el proceso mas elemental en GNU/Linux el interprete de comandos el "bash"

Para identificar el PID el PPID el ID del proceso vamos a usar el comando ps

Si es de nuestro interes el conocer el  PID/PGID/PPID/SID de un determinado proceso podemos ejecutar lo siguiente en un terminal.


Para listar los procesos 

ps -efj | less

ps -efj | grep process
ps -efj | grep pid
Si deseamos tener mas información de los procesos podemos intentar los siguientes comandos.
ps -ejf | egrep 'STIME | nombre_proceso'
ps -ejf | egrep 'STIME | pid_del_proceso'
Ejemplos:
ps -ejf | egrep 'STIME | bash'
ps -ejf | egrep 'STIME | 1234' Suponiendo que el proceso 1234 es equivalente a uno conocido.






lunes, 24 de agosto de 2015

Servidor DNS Principal y Secundario

El servicio de DNS (Domain Name System o Sistema de Nombres de Dominio) es un sistema de nomenclatura que nos permite acceder a varios sitios Web de una forma mas fácil y rápida.

Los Servidores DNS utilizan el protocolo UDP, en el puerto 53 para responder las consultas. Casi todas las consultas consisten de una sola solicitud UDP desde un Cliente DNS, seguida por una sola respuesta UDP del servidor.

El servicio de DNS nos permite la Configuración de un equipo principal y un secundario esta configuración nos permite tener un esquema de alta disponibilidad en la cual el servicio esta disponible 24 x 7

En este blog vamos a revisar la configuración del Servidor Principal y del Servidor Secundario, previo a esto tenemos que identificar cuales son los valores principales a configurar, el grupo de archivos a configurar y las opciones que debemos habilitar en cada uno de los servidores.

Grupo de Archivos a configurar.
  • Archivo de configuración /etc/named.conf
  • Archivo de zona directa /var/named/fw.zone
  • Archivo de zona inversa /var/named/100.168.192.zone
Este grupo de archivos son los que vamos a configurar para iniciar un servicio de DNS.

Para este ejemplo vamos a configurar un servidor DNS Principal y Secundario

Servidor DNS Principal : 192.168.100.1
Servidor DNS Secundario: 192.168.100.2

Las siguientes Redes se van a permitir hacer solicitudes al servidor DNS:

1.- 192.168.57.0
2.- 192.168.1.0
3.- 192.168.100.0

Configuración para el Servidor Principal.

Archivo de configuracion /etc/named.conf

options {
# Puerto y direcciones de IP donde el Servicio DNS escuchara las peticiones 
listen-on port 53 { 127.0.0.1; 192.168.100.1; };
# Configuracion para IPV6
# listen-on-v6 port 53 { ::1; };
# Directorio para alojar los archvios de zonas.
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";
# Permitir las consultas de las n redes al servicio del DNS.
allow-query     { localhost; 192.168.57.0/24; 192.168.100.0/24; 192.168.1.0/24; };
# Esta opcion es importante cuando se tiene un servidor DNS secundario
allow-transfer  { 192.168.1.102; };

recursion no;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
        category lame-servers { null; };
};

zone "dominio.com" IN { 
type master; 
file "fw.dominio.zone";
allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
                type master;
                file "1.168.192.in-addr.arpa.zone";
                allow-update { none; };
};
zone "57.168.192.in-addr.arpa" IN {
                type master;
                file "1.168.192.in-addr.arpa.zone";
                allow-update { none; };
};
zone "100.168.192.in-addr.arpa" IN {
                type master;
                file "1.168.192.in-addr.arpa.zone";
                allow-update { none; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/rndc.key";

Ahora debemos definir las zonas descritas en el archivo de configuración.

Zona principal /var/named/fw.dominio.zone

$TTL 86400
@               IN      SOA     dark.dominio.com.       root.dominio.com. (

201501311300        ; número de serie se prefiere poner la fecha año mes dia hora 
                1D       ; tiempo de refresco
                1H       ; tiempo entre reintentos de consulta
                1W       ; tiempo tras el cual expira la zona



                3H )  
@       IN      NS      dark.domino.com.
dark             IN  A          192.168.1.105
instructor       IN  A          192.168.1.102
pruebas          IN  A          192.168.1.103

Zona principal /var/named/fw.dominio.zone

$TTL 86400
@               IN      SOA     dark.dominio.com.       root.dominio.com. (

201501311300        ; número de serie se prefiere poner la fecha año mes dia hora 
                1D       ; tiempo de refresco
                1H       ; tiempo entre reintentos de consulta
                1W       ; tiempo tras el cual expira la zona
                3H )       ; tiempo total de vida
    
@               IN      NS      dark.dominio.com.

21              IN      PTR     dark.dominio.com.
22              IN      PTR     instructor.dominio.com.
23              IN      PTR     pruebas.dominio.com.

Configuración para el Servidor Secundario.

Archivo de configuracion /etc/named.conf

options {
# Puerto y direcciones de IP donde el Servicio DNS secundario escuchara las peticiones 
listen-on port 53 { 127.0.0.1; 192.168.100.2; };
# Configuracion para IPV6
# listen-on-v6 port 53 { ::1; };
# Directorio para alojar los archvios de zonas.
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";
# Permitir las consultas de las n redes al servicio del DNS.
allow-query     { localhost; 192.168.57.0/24; 192.168.100.0/24; 192.168.1.0/24; };

recursion no;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
        category lame-servers { null; };
};

zone "dominio.com" IN { 
type slave; 
file "slaves/fw.dominio.zone";
  masters { 192.168.100.110; };
};

zone "1.168.192.in-addr.arpa" IN {
                type slave;
             file "slaves/1.168.192.in-addr.arpa.zone";
             masters { 192.168.100.110; };
};
zone "57.168.192.in-addr.arpa" IN {
             type slave;
                file "slaves/1.168.192.in-addr.arpa.zone";
             masters { 192.168.100.110; };
};
zone "100.168.192.in-addr.arpa" IN {
             type slaves;
             file "slaves/1.168.192.in-addr.arpa.zone";


             masters { 192.168.100.110; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/rndc.key";

Seguramente se preguntaran los archivos de zonas como se los configura. Pues al realizar el reinicio del servicio del named estos archivos son sincronizados del servidor principal.


jueves, 6 de agosto de 2015

Instalación y configuración de Joomla

Para la Instalación y configuración de Joomla se debe tener instalado los servicios del apache y del mariadb.
Referirse al post anterior donde se muestra ese procedimiento.

Para la instalación de joomla se necesita validar que los siguientes paquetes estén instalados.

# yum install httpd mariadb-server mariadb php php-mysql php-curl php-gd php-pear php-memcache php-pspell php-snmp php-xmlrpc

Creación de usuario, permisios y base de datos para joomla

Entrar por linea de comandos al motor de la base de datos

# mysql -u root -p 

CREATE DATABASE JoomlaDB;

CREATE USER JoomlaDBUser@localhost IDENTIFIED BY 'password_here';

GRANT ALL ON JoomlaDB.* TO JoomlaDBUser@localhost;

Descarga de la versión mas reciente de joomla desde el sitio web oficial. http://www.joomlaspanish.org/

Al momento de la creación de este post la versión de joomla es:

# cd /tmp/ && http://joomlacode.org/gf/download/frsrelease/19948/161880/Joomla_3.3.6-Spanish-Pack_Completo.zip


Descomprimir el archivo zip descargado 

sudo unzip -q Joomla*.zip -d /var/www/html

Cambiar permisos del directorio descomprimido

sudo chown -R apache:apache /var/www/html

Cambiar el dueño de los archivos 

sudo chmod -R 755 /var/www/html

Reiniciar el servicio del apache 

sudo systemctl restart httpd.service

Ingresar a la dirección ip del equipo donde se instalo el joomla y seguir el procedimiento de instalación

Configurar base de datos Mariadb y phpMyAdmin

Para la configuración de la base de datos de Mariadb se deben realizar los siguientes pasos:

Instalación de mariadb

# yum install mariadb-server mariadb

Configuración del servicio al inicio del sistema operativo

# systemctl start mariadb

Configuración inicial para acceso a la base mariadb

# mysql_secure_installation

En esta sección se define el password para el usuario root y los permisos que se aplicaran.

Para ingresar por consola a el motor de mariadb

# mysql -u root -p 'Password_configurado'

Instalación de PhpMyAdmin

# yum install phpmyadmin

Una vez que esta instalado y las dependencias correspondientes se debe editar el archivo de configuración

Editar el archivo de configuración del /etc/httpd/conf.d/phpMyAdmin 

Se debe reemplazar las lineas 127.0.0.1 por la direccion IP que se tenga al momento en el servidor

. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .

Para que pueda ser visible se debe de reiniciar el servicio del apache.

# systemctl restart httpd.service

Para acceder al phpmyadmin para administrar la base de datos de mysql se debe abrir en un borwser y poner la direccion IP del equipo y el contexto de phpmyadmin

http://IP_del_equipo/phpMyAdmin