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