Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Mostrando entradas con la etiqueta centos. Mostrar todas las entradas
Mostrando entradas con la etiqueta centos. Mostrar todas las entradas

Como instalar NRPE en Nagios paso a paso

DriveMeca instalando monitoreo remoto de Nagios con NRPE
No te conformas con solo verificar uptime de otros equipos por medio de Nagios, quieres hacerlo sin quitar tus firewalls? Entonces necesitas leer este articulo en el cual mostrare como instalar NRPE en Nagios paso a paso para monitorear un equipo Linux Ubuntu. Las siglas NRPE quieren decir Nagios Remote Plugin Executor que viene a ser ejecutor de plugin remoto Nagios.
NRPE se instala en el servidor Nagios y en los equipos (servidores y equipos desktop Linux) a los cuales no podemos acceder por firewall o  porque queremos sacar info como usuarios logeados, espacio en disco, etc lo cual normalmente solo es posible chequear localmente. Por tanto debemos instalar (compilar) lo mismo en el servidor que en el cliente.

Requerimientos para NRPE en servidor y cliente

  • Accesos de root al servidor Nagios
  • Accesos de root a los equipos monitoreados

IP's de equipos:

Servidor: 10.10.10.4
Cliente Ubuntu: 10.10.20.33

Primeros pasos en Servidor Nagios con NRPE

-Descargamos, descomprimimos y entramos a su directorio
wget -c http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
tar xzvf nrpe-2.15.tar.gz
cd nrpe-2.15

-Compilamos e instalamos
./configure 
...
..
*** Configuration summary for nrpe 2.15 09-06-2013 ***:

 General Options:
 -------------------------
 NRPE port:    5666
 NRPE user:    nagios
 NRPE group:   nagios
 Nagios user:  nagios
 Nagios group: nagios

make all
cd ./src/; make ; cd ..
make[1]: Entering directory `/root/nrpe-2.15/src'
gcc -g -O2 -I/usr/include/openssl -I/usr/include -DHAVE_CONFIG_H -I ../include -I ./../include -o nrpe ./nrpe.c ./utils.c ./acl.c -L/usr/lib64  -lssl -lcrypto -lnsl -lwrap  
gcc -g -O2 -I/usr/include/openssl -I/usr/include -DHAVE_CONFIG_H -I ../include -I ./../include -o check_nrpe ./check_nrpe.c ./utils.c -L/usr/lib64  -lssl -lcrypto -lnsl 
make[1]: Leaving directory `/root/nrpe-2.15/src'

*** Compile finished ***

Pasos en equipo Ubuntu Linux a monitorear con NRPE

-Abrimos una consola e instalamos dependencias
sudo apt install libssl-dev apt-file xinetd

-Actualizamos cache y buscamos. OJO, en el caso de un equipo de 64bits, el path sera diferente, por eso es mejor buscarlo con apt-file
sudo apt-file update

sudo apt-file search libssl | grep libssl-dev
libssl-dev: /usr/lib/i386-linux-gnu/libssl.a
libssl-dev: /usr/lib/i386-linux-gnu/libssl.so
libssl-dev: /usr/lib/i386-linux-gnu/pkgconfig/libssl.pc
libssl-dev: /usr/share/doc/libssl-dev/changelog.Debian.gz
libssl-dev: /usr/share/doc/libssl-dev/changelog.gz
libssl-dev: /usr/share/doc/libssl-dev/copyright

-Descargamos, descomprimimos y entramos a su directorio
wget -c http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
tar xzvf nrpe-2.15.tar.gz
cd nrpe-2.15

-Compilamos tomando el path para with-ssl-lib del paso anterior con apt-file
./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/i386-linux-gnu
...
..
*** Configuration summary for nrpe 2.15 09-06-2013 ***:

 General Options:
 -------------------------
 NRPE port:    5666
 NRPE user:    nagios
 NRPE group:   nagios
 Nagios user:  nagios
 Nagios group: nagios

-Terminamos de compilar
make all

-Nos creamos el usuario nagios para ejecutar nrpe cuidando de colocarle contraseña cuando lo pida
sudo adduser nagios

-Copiamos el nrpe binario y su cfg
sudo mkdir -p /usr/local/nagios/etc /usr/local/nagios/bin /usr/local/nagios/libexec
sudo cp sample-config/nrpe.cfg /usr/local/nagios/etc/
sudo cp src/nrpe /usr/local/nagios/bin/
sudo chown -R nagios.nagios /usr/local/nagios

-Modificamos el cfg para agregar la ip del servidor Nagios. En mi caso, el disco es un SATA (partición sda5) por lo cual modifico el comando para verificar espacio en disco. Salimos guardando
sudo vi /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,10.10.10.4
command[check_sda5]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda5

-Habilitamos la conexión a través de iptables.  Salimos guardando
sudo vi /etc/hosts.allow
nrpe: 10.10.10.4
nrpe: 127.0.0.1

-Copiamos y configuramos el xinetd para ejecutar el nrpe
sudo cp sample-config/nrpe.xinetd /etc/xinetd.d/nrpe
sudo service xinetd reload

-Probamos funcione y salimos presionando Control ]
telnet localhost 5666
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^]

telnet> quit

-Descargamos los plugins de Nagios y comenzamos a compilar
cd 
wget -c http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
tar xzvf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure

-Compilamos
make
sudo make install

Pasos para ejecutar NRPE en Nagios

-Copiamos el plugin y cambiamos sus atributos
cp src/check_nrpe /usr/local/nagios/libexec/
chown nagios.nagios /usr/local/nagios/libexec/check_nrpe
chmod 755 /usr/local/nagios/libexec/check_nrpe

-Creamos el comando para NRPE
vi /usr/local/nagios/etc/objects/commands.cfg
define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$
}

-Hacemos una copia de un cfg para crear el de nuestro equipo Linux Ubuntu y mas adelante de otros Linux
cp /usr/local/nagios/etc/objects/localhost.cfg /usr/local/nagios/etc/objects/ubuntu.cfg

-Modificamos el fichero y agregamos los datos del equipo ubuntu (host) y el servicio para chequear el disco /
vi /usr/local/nagios/etc/objects/ubuntu.cfg
define host{
        use                     linux-server
        host_name         bcksrv
        alias                   Servidor Ubuntu BackupPC
        address              10.10.20.33
        }

define service{
        use                             local-service         
        host_name                 ubuntu
        service_description   Disk
        check_command       check_nrpe!check_sda3
        }

-Activamos el nuevo grupo, colocamos nuestra zona horaria y el email del administrador
vi /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/linux.cfg
use_timezone=America/Bogota
admin_email=admin@gmail.com

-Corregimos permisos
chown nagios.nagios /usr/local/nagios/etc/objects/*

-Verificamos y reiniciamos Nagios
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
service nagios reload

-Abrimos un browser y ya nos debe aparecer el equipo Ubuntu con NRPE. Ya seria agregar mas cosas a monitorear por medio de NRPE
DriveMeca instalando monitoreo remoto de Nagios con NRPE

Nagios es una potente herramienta de monitoreo de dispositivos, equipos, etc y una forma relativamente sencilla de agregarlos es por medio de NRPE para poder colocar mas chequeos locales. Que tal te pareció este articulo, ya usas Nagios con NRPE, como te va con la solución, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar OCSInventory 2.1 paso a paso

DriveMeca ocsinventory logo
Somos fanáticos de la tecnología y por ende cada día tenemos mas y mas equipos lo cual nos lleva a buscar una forma de tener un listado o inventario que nos facilite la administración; ese inventario lo tendremos leyendo este articulo donde muestro como instalar OCSInventory 2.1 paso a paso en un servidor Centos 6.4.

NOTA: Articulo mas actualizado a la fecha en este URL sobre OCSInventory


Requerimientos:
Servidor Centos 6.4 actualizado
puerto 80 libre de firewall

-Instalamos dependencias
yum install httpd mod_perl php php-gd php-pear php-devel  php-mysql php-mbstring perl mysql-server mysql make perl-XML-Simple perl-Compress-Zlib perl-DBI perl-DBD-MySQL perl-Net-IP perl-SOAP-Lite perl-Digest-SHA1 lynx gcc zlib-devel pcre pcre-devel mod_perl-devel

-Configuramos perl. Si no sabes como hacerlo, aquí tengo un articulo donde explico como.

-Instalamos Apache::DBI y YAML en perl.

-Agregamos a php
pecl channel-update pecl.php.net
pecl install zip

-Iniciamos MySQL, le colocamos contraseña al usuario root propio y activamos su ejecución cada vez que iniciemos el servidor.
service mysqld start

/usr/bin/mysqladmin -u root password 'new-password'

chkconfig mysqld on

-Descargamos modulo perl Apache2-SOAP y lo compilamos e instalamos
cd /tmp
wget -c http://search.cpan.org/CPAN/authors/id/R/RK/RKOBES/Apache2-SOAP-0.73.tar.gz
tar xzvf Apache2-SOAP-0.73.tar.gz
cd Apache2-SOAP-0.73

perl Makefile.PL
Argument "6.55_02" isn't numeric in numeric ge (>=) at Makefile.PL line 22.
[   info] generating script t/TEST
Checking if your kit is complete...
Looks good
Writing Makefile for Apache2::SOAP

make
cp lib/SOAP/Transport/HTTP2.pm blib/lib/SOAP/Transport/HTTP2.pm
cp lib/Apache2/SOAP.pm blib/lib/Apache2/SOAP.pm
Manifying blib/man3/Apache2::SOAP.3pm

-Probamos haya quedado bien. Respondemos con ENTER a todas las preguntas.
make test

-Instalamos el modulo
make install
Installing /usr/local/share/perl5/Apache2/SOAP.pm
Installing /usr/local/share/perl5/SOAP/Transport/HTTP2.pm
Installing /usr/local/share/man/man3/Apache2::SOAP.3pm
Appending installation info to /usr/lib64/perl5/perllocal.pod

-Descargamos el ocsinventory-server
cd /root
wget -c https://launchpad.net/ocsinventory-server/stable-2.1/2.1rc1/+download/OCSNG_UNIX_SERVER-2.1rc1.tar.gz

-Descomprimimos
tar xzvf OCSNG_UNIX_SERVER-2.1rc1.tar.gz
cd OCSNG_UNIX_SERVER-2.1rc1

-Iniciamos apache y lo activamos para su ejecucion cada vez que iniciemos el servidor
service httpd start
chkconfig httpd on

-Configuramos ocsinventory-server. Por lo general la respuesta por default es el valor correcto y con nosotros presionar ENTER es suficiente.
sh setup.sh

+----------------------------------------------------------+
|    
| Welcome to OCS Inventory NG Management server setup !
|                                      
+----------------------------------------------------------+

Trying to determine whitch OS or Linux distribution you use
+----------------------------------------------------------+
| Checking for Apache web server binaries !  
+----------------------------------------------------------+

CAUTION: If upgrading Communication server from OCS Inventory NG 1.0 RC2 and
previous, please remove any Apache configuration for Communication Server!

Do you wish to continue ([y]/n)?y

Assuming Communication server 1.0 RC2 or previous is not installed
on this computer.

Starting OCS Inventory NG Management server setup from folder /root/OCSNG_UNIX_SERVER-2.1rc1
Storing log in file /root/OCSNG_UNIX_SERVER-2.1rc1/ocs_server_setup.log

+----------------------------------------------------------+
| Checking for database server properties...  
+----------------------------------------------------------+

Your MySQL client seems to be part of MySQL version 5.1.
Your computer seems to be running MySQL 4.1 or higher, good ;-)

Which host is running database server [localhost] ?

OK, database server is running on host localhost ;-)

On which port is running database server [3306] ?

OK, database server is running on port 3306 ;-)

+----------------------------------------------------------+
| Checking for Apache web server daemon...
+----------------------------------------------------------+

Where is Apache daemon binary [/usr/sbin/httpd] ?

OK, using Apache daemon /usr/sbin/httpd ;-)

+----------------------------------------------------------+
| Checking for Apache main configuration file...  
+----------------------------------------------------------+

Where is Apache main configuration file [/etc/httpd/conf/httpd.conf] ?

OK, using Apache main configuration file /etc/httpd/conf/httpd.conf ;-)

+----------------------------------------------------------+
| Checking for Apache user account...  
+----------------------------------------------------------+

Which user account is running Apache web server [apache] ?

OK, Apache is running under user account apache ;-)

+----------------------------------------------------------+
| Checking for Apache group...    
+----------------------------------------------------------+

Which user group is running Apache web server [apache] ?

OK, Apache is running under users group apache ;-)

+----------------------------------------------------------+
| Checking for Apache Include configuration directory...
+----------------------------------------------------------+

Setup found Apache Include configuration directory in
/etc/httpd/conf.d/.
Setup will put OCS Inventory NG Apache configuration in this directory.
Where is Apache Include configuration directory [/etc/httpd/conf.d/] ?

OK, Apache Include configuration directory /etc/httpd/conf.d/ found ;-)

+----------------------------------------------------------+
| Checking for PERL Interpreter...      
+----------------------------------------------------------+

Found PERL Intrepreter at </usr/bin/perl> ;-)
Where is PERL Intrepreter binary [/usr/bin/perl] ?

OK, using PERL Intrepreter /usr/bin/perl ;-)

Do you wish to setup Communication server on this computer ([y]/n)?y

+----------------------------------------------------------+
| Checking for Make utility...      
+----------------------------------------------------------+

OK, Make utility found at </usr/bin/make> ;-)

+----------------------------------------------------------+
| Checking for Apache mod_perl version...  
+----------------------------------------------------------+

Checking for Apache mod_perl version 1.99_22 or higher
Found that mod_perl version 1.99_22 or higher is available.
OK, Apache is using mod_perl version 1.99_22 or higher ;-)

+----------------------------------------------------------+
| Checking for Communication server log directory...
+----------------------------------------------------------+

Communication server can create detailled logs. This logs can be enabled
by setting interger value of LOGLEVEL to 1 in Administration console
menu Configuration.
Where to put Communication server log directory [/var/log/ocsinventory-server] ?

OK, Communication server will put logs into directory /var/log/ocsinventory-server ;-)

+----------------------------------------------------------+
| Checking for required Perl Modules...          
+----------------------------------------------------------+

Checking for DBI PERL module...
Found that PERL module DBI is available.
Checking for Apache::DBI PERL module...
Found that PERL module Apache::DBI is available.
Checking for DBD::mysql PERL module...
Found that PERL module DBD::mysql is available.
Checking for Compress::Zlib PERL module...
Found that PERL module Compress::Zlib is available.
Checking for XML::Simple PERL module...
Found that PERL module XML::Simple is available.
Checking for Net::IP PERL module...
Found that PERL module Net::IP is available.

+----------------------------------------------------------+
| Checking for optional Perl Modules...      
+----------------------------------------------------------+

Checking for SOAP::Lite PERL module...
Found that PERL module SOAP::Lite is available.

Checking for Apache2::SOAP PERL module...
*** Warning: PERL module Apache2::SOAP is not installed !
This module is only required by OCS Inventory NG SOAP Web Service.
Do you wish to continue ([y]/n] ?y

Checking for XML::Entities PERL module...
*** Warning: PERL module XML::Entities is not installed !
This module is only required by OCS Inventory NG SOAP Web Service.
Do you wish to continue ([y]/n] ?y

+----------------------------------------------------------+
| OK, looks good ;-)                        
|                                          
| Configuring Communication server Perl modules...
+----------------------------------------------------------+

Checking if your kit is complete...
Looks good
Writing Makefile for Apache::Ocsinventory

+----------------------------------------------------------+
| OK, looks good ;-)                          
|                                              
| Preparing Communication server Perl modules...  
+----------------------------------------------------------+

+----------------------------------------------------------+
| OK, prepare finshed ;-)                
|                                      
| Installing Communication server Perl modules...    
+----------------------------------------------------------+

+----------------------------------------------------------+
| OK, Communication server Perl modules install finished;-)
|                                                  
| Creating Communication server log directory...    
+----------------------------------------------------------+

Creating Communication server log directory /var/log/ocsinventory-server.

Fixing Communication server log directory files permissions.
Configuring logrotate for Communication server.
Removing old communication server logrotate file /etc/logrotate.d/ocsinventory-NG
Writing communication server logrotate to file /etc/logrotate.d/ocsinventory-server

+----------------------------------------------------------+
| OK, Communication server log directory created ;-)
|                                              
| Now configuring Apache web server...    
+----------------------------------------------------------+

To ensure Apache loads mod_perl before OCS Inventory NG Communication Server,
Setup can name Communication Server Apache configuration file
'z-ocsinventory-server.conf' instead of 'ocsinventory-server.conf'.
Do you allow Setup renaming Communication Server Apache configuration file
to 'z-ocsinventory-server.conf' ([y]/n) ?y

OK, using 'z-ocsinventory-server.conf' as Communication Server Apache configuration file
Removing old communication server configuration to file /etc/httpd/conf.d//ocsinventory.conf
Writing communication server configuration to file /etc/httpd/conf.d//z-ocsinventory-server.conf

+----------------------------------------------------------+
| OK, Communication server setup sucessfully finished ;-)
|                                                    
| Please, review /etc/httpd/conf.d//z-ocsinventory-server.conf
| to ensure all is good. Then restart Apache daemon. 
+----------------------------------------------------------+

Do you wish to setup Administration Server (Web Administration Console)
on this computer ([y]/n)?y

+----------------------------------------------------------+
| Checking for Administration Server directories...   
+----------------------------------------------------------+

CAUTION: Setup now install files in accordance with Filesystem Hierarchy
Standard. So, no file is installed under Apache root document directory
(Refer to Apache configuration files to locate it).
If you're upgrading from OCS Inventory NG Server 1.01 and previous, YOU
MUST REMOVE (or move) directories 'ocsreports' and 'download' from Apache
root document directory.
If you choose to move directory, YOU MUST MOVE 'download' directory to
Administration Server writable/cache directory (by default
/var/lib/ocsinventory-reports), especialy if you use deployement feature.

Do you wish to continue ([y]/n)?

Assuming directories 'ocsreports' and 'download' removed from
Apache root document directory.

Where to copy Administration Server static files for PHP Web Console
[/usr/share/ocsinventory-reports] ?

OK, using directory /usr/share/ocsinventory-reports to install static files ;-)

Where to create writable/cache directories for deployement packages,
administration console logs, IPDiscover and SNMP [/var/lib/ocsinventory-reports] ?

OK, writable/cache directory is /var/lib/ocsinventory-reports ;-)

+----------------------------------------------------------+
| Checking for required Perl Modules...      
+----------------------------------------------------------+

Checking for DBI PERL module...
Found that PERL module DBI is available.
Checking for DBD::mysql PERL module...
Found that PERL module DBD::mysql is available.
Checking for XML::Simple PERL module...
Found that PERL module XML::Simple is available.
Checking for Net::IP PERL module...
Found that PERL module Net::IP is available.

+----------------------------------------------------------+
| Installing files for Administration server...      
+----------------------------------------------------------+

Creating PHP directory /usr/share/ocsinventory-reports/ocsreports.
Copying PHP files to /usr/share/ocsinventory-reports/ocsreports.
Fixing permissions on directory /usr/share/ocsinventory-reports/ocsreports.
Creating database configuration file /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php.
Creating IPDiscover directory /var/lib/ocsinventory-reports/ipd.
Fixing permissions on directory /var/lib/ocsinventory-reports/ipd.
Creating packages directory /var/lib/ocsinventory-reports/download.
Fixing permissions on directory /var/lib/ocsinventory-reports/download.
Creating snmp mibs directory /var/lib/ocsinventory-reports/snmp.
Fixing permissions on directory /var/lib/ocsinventory-reports/snmp.
Creating Administration server log files directory /var/lib/ocsinventory-reports/logs.
Fixing permissions on directory /var/lib/ocsinventory-reports/logs.
Creating Administration server scripts log files directory /var/lib/ocsinventory-reports/scripts.
Fixing permissions on directory /var/lib/ocsinventory-reports/scripts.
Configuring IPDISCOVER-UTIL Perl script.
Installing IPDISCOVER-UTIL Perl script.
Fixing permissions on IPDISCOVER-UTIL Perl script.
Writing Administration server configuration to file /etc/httpd/conf.d//ocsinventory-reports.conf

+----------------------------------------------------------+
| OK, Administration server installation finished ;-) 
|                                        
| Please, review /etc/httpd/conf.d//ocsinventory-reports.conf
| to ensure all is good and restart Apache daemon.  
|                                           
| Then, point your browser to http://server//ocsreports
| to configure database server and create/update schema.  
+----------------------------------------------------------+

Setup has created a log file /root/OCSNG_UNIX_SERVER-2.1rc1/ocs_server_setup.log. Please, save this file.
If you encounter error while running OCS Inventory NG Management server,
we can ask you to show us his content !

DON'T FORGET TO RESTART APACHE DAEMON !

Enjoy OCS Inventory NG ;-)

-Modificamos en php.ini
vi /etc/php.ini y salimos guardando
post_max_size = 40M
upload_max_filesize = 100M

-Modificamos y colocamos la info del usuario root de MySQL
vi /etc/httpd/conf.d/z-ocsinventory-server.conf
# User allowed to connect to database
PerlSetEnv OCS_DB_USER root
# Password for user
PerlSetVar OCS_DB_PWD new-password

-Reiniciamos apache para que tome los cambios
service httpd restart

-Cambiamos la contraseña del usuario ocs en MySQL

-Abrimos un browser y nos vamos a la ip del servidor, en este ejemplo, http://192.168.1.45/ocsreports y colocamos los datos que nos pide. Damos click al botón Send.
DriveMeca instalando OCSInventory 2.1 paso a paso

-El script creara la db activando algunos valores. Escribimos el TAG o comentario que saldrá por default al ingresar un equipo al inventario, damos click al botón Submit.
DriveMeca instalando OCSInventory 2.1 paso a paso

-Se crea el TAG y ya esta instalado ocsinventory, entramos por primera vez dando click en Click here to enter OCS-NG GUI.
DriveMeca instalando OCSInventory 2.1 paso a paso

-Entramos con el usuario admin y contraseña admin. Damos click al botón Send.
DriveMeca instalando OCSInventory 2.1 paso a paso

-Eliminamos el script de instalación.
rm /usr/share/ocsinventory-reports/ocsreports/install.php

-Cambiamos la contraseña de admin dando click al botón de usuarios, en este ejemplo lo encerré en un circulo rojo.
DriveMeca instalando OCSInventory 2.1 paso a paso

-Cambiamos la contraseña de admin dándole click al botón del lápiz.
DriveMeca instalando OCSInventory 2.1 paso a paso

-Escribimos la contraseña en Password y damos click al botón verde.
DriveMeca instalando OCSInventory 2.1 paso a paso

-Ya cambiada la contraseña, desaparece el aviso rojo y ya estamos listos para agregar equipos pero eso lo veremos pronto en otro articulo.
DriveMeca instalando OCSInventory 2.1 paso a paso

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como administrar usuarios en Centos

DriveMeca administrando usuarios en Linux desde Webmin
Te haz preguntado muchas veces una forma sencilla de como administrar usuarios en Centos que sea fácil y cómoda a la vez? Bueno, hoy te mostrare como hacerlo desde Webmin, una interfaz web desde la cual se puede administrar un linux. Hoy en especifico veremos como administrar usuarios; en otras próximas entregas mostrare otras funcionalidades. 
En este articulo veremos los ejemplos con un Linux Centos, aun así, con otras distribuciones linux los pasos son los mismos.

Requerimientos


ip servidor Linux Centos: 192.168.1.100

-Comenzamos abriendo un browser y navegamos a la ip del equipo con el puerto 10000 y en forma https https://192.168.1.100:10000

DriveMeca administrando usuarios en Linux desde Webmin

En la primera pantalla veremos información útil como versión de linux, kernel ejecutando, cpu, tiempo ejecutando (uptime), carga, etc. A la izquierda veremos un menú de opciones.

-Entramos en el menú System - Users and Groups.

DriveMeca administrando usuarios en Linux desde Webmin

Nos mostrara 2 pestañas, Local Users y Local Groups las cuales nos sirven para administrar usuarios y grupos en el equipo.

Crear un usuario en Linux Centos desde Webmin

-Damos click en el link Create a new user.

DriveMeca administrando usuarios en Linux desde Webmin

Artículos recomendados15 minutos para configurar un Linux Centos 7 LAMP
                                            Como instalar Samba en Linux Centos
                                            Como instalar phpMyAdmin paso a paso

Los campos básicos a llenar son:
  • Username (nombre de usuario)
  • Real name (Nombre real de la persona o servicio)
  • Normal password (contraseña)
  • Existing group (grupo)
Al terminar de llenarlos, damos click en el botón Create.


DriveMeca administrando usuarios en Linux desde Webmin

Ya tenemos nuestro usuario creado.

Editando un usuario Linux en Webmin

-Damos click en su Username.
DriveMeca administrando usuarios en Linux desde Webmin

Aquí podremos modificar su contraseña, agregarle o quitarle grupos, etc. Útil y sencillo cierto?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como crear un repositorio Linux Centos en tu LAN

DriveMeca creando un repositorio Linux Centos en la LAN
Crece la cantidad de equipos en nuestra LAN (incluidos los servidores) y a su vez disminuye el ancho de banda que tenemos para conectarnos a Internet. Si hacemos el estudio, mucho de lo que ya se descarga se hace una y otra vez volviéndose una tarea "costosa". Soluciones hay varias (proxy, denegar paginas, etc) pero para nuestro caso lo que queremos es optimizar la descarga de paquetes RPM para nuestros servidores Linux Centos.
Nuestra solución y tema del articulo de este día es configurar un repositorio Linux Centos en tu LAN.
El esquema es el siguiente: Configuraremos un servidor Linux Centos compartiendo un repositorio de paquetes al cual se conectaran otros servidores Linux Centos a descargar paquetes por medio del comando yum (que a su vez lo hará por ftp) antes que descargarlos de internet. Este esquema también se puede aplicar a equipos aislados sin salida a internet.

Requerimientos

  • Servidor Linux Centos: 10.8.0.1
  • Cliente Linux Centos: 10.8.0.xx

Creamos el repositorio en el servidor

-Creamos el directorio donde descargaremos los rpms
mkdir /var/ftp/pub/reponet

Articulo sugeridoComo instalar paquetes del dvd de centos 7 de forma local

-Instalamos dependencias incluida createrepo, el comando que nos habilita el repositorio a compartir
yum install createrepo vsftpd

-Editamos la configuracion de vsftpd y permitimos conexiones anonimas
vi /etc/vsftpd/vsftpd.conf
#anonymous_enable=NO

-Activamos y ejecutamos el servicio vsftpd
systemctl enable vsftpd.service
systemctl start vsftpd.service

-Nos creamos el .repo
vi /etc/yum.repos.d/reponet.repo
[reponet]
name=Repositorio en red de Centos 7
baseurl=file:///var/ftp/pub/reponet
gpgcheck=0
enabled=1

-Descargamos los paquetes. Es recomendable buscar un servidor (mirror) cercano a nuestro servidor para que la descarga no demore tanto (en mi caso escojo uno de Colombia). El listado lo pueden consultar en este URL. Tiempo para ir por un café ;-)

rsync -avz rsync://mirror.edatel.net.co/centos/7/os/x86_64/Packages/ /var/ftp/pub/reponet/

-Creamos la metadata del repositorio
createrepo -v /var/ftp/pub/reponet/

-Verificamos ya nos aparezca el repositorio listado
yum repolist

-Limpiamos cache
yum clean all

Configuramos clientes


-Instalamos el cliente ftp
yum --disablerepo=\* --enablerepo=c7-media install ftp

-Creamos el .repo apuntando al servidor Linux Centos con el nuevo repositorio de RPM
vi /etc/yum.repos.d/reponet.repo
[reponet]
name=Repositorio en red de Centos 7
baseurl=ftp://10.8.0.1/pub/reponet
gpgcheck=0
enabled=1

-Verificamos ya nos aparezca listado el repositorio

yum repolist

-Ya podemos instalar / actualizar paquetes desde nuestro repositorio en LAN, en este caso instalare perl con sus dependencias

yum --disablerepo=\* --enablerepo=reponet install perl

-Es importante actualizar el repositorio. Para esto nos creamos una tarea en el cron. En mi ejemplo la configuro para ejecutarse a las 11.30pm cada dia

vi /var/spool/cron/root
30 23 * * * rsync -avz rsync://mirror.edatel.net.co/centos/7/os/x86_64/Packages/ /var/ftp/pub/reponet/

-Reiniciamos el servicio de cron

systemctl restart crond.service

Muy bien, ya hemos terminado y tenemos un servidor Linux Centos compartiendo un repositorio que se actualiza todas las noches al que se pueden conectar nuestros servidores Centos en la LAN. Ya conocias esta solucion?, lo haces de otra forma, cual?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.
Share/Bookmark

Como instalar paquetes del dvd de centos 7 de forma local

DriveMeca instalando paquetes del dvd / iso de linux centos 7 de forma local paso a paso
No tienes internet pero necesitas instalar unos paquetes en tu servidor Linux Centos, no, no es el apocalipsis, aun tienes forma de solucionarlo, tomando los paquetes del DVD o ISO de Centos 7.
Esta solución es sencilla pero poco conocida a veces y es nuestro tema del articulo de hoy, como instalar paquetes (rpm) del dvd (o iso) de Linux Centos 7 de forma local. Si, decimos que de forma local porque se instalara de los paquetes en el DVD/ISO sin acceder a internet y como decía al comienzo, puede ser muy útil para cuando estemos desconectados o en una situación donde la conexión a internet no es posible.

Requerimientos


-Creamos el directorio donde montaremos el DVD o ISO de Linux Centos 7 (tener cuidado de crearlo tal cual con sus mayúsculas, sino, no lo encontraría yum o tendríamos que cambiar el conf)

mkdir /media/CentOS

Comando a usar con el ISO

-Si descargamos el ISO y lo tenemos en una USB o en el disco del servidor, ejecutamos el siguiente comando para montarlo en el directorio creado

mount -o loop -t iso9660 CentOS-7-x86_64-Everything-1503-01.iso /media/CentOS

-Ya con el ISO montando localmente podemos instalar paquetes con el siguiente comando (cambiamos software-a-instalar por el paquete que necesitemos)

yum --disablerepo=\* --enablerepo=c7-media install software-a-instalar

ejemplo (instalare mc del repositorio c7-media local):

yum --disablerepo=\* --enablerepo=c7-media install mc

Installing:
 mc          x86_64                  1:4.8.7-8.el7                             c7-media                                      1.7 M
..
..
..

Comando a usar con el DVDROM

-Si tenemos el DVDROM fisico en nuestro poder lo colocamos en su unidad y lo montamos en el directorio creado

mount /dev/cdrom /media/CentOS -t iso9660 -o loop

-Ya montado podemos ejecutar el siguiente comando para instalar un paquete (reemplazamos software-a-instalar por el paquete que necesitemos)
yum --disablerepo=\* --enablerepo=c7-media install software-a-instalar

La ventaja de instalar de esta forma es que en el DVD / ISO tenemos mucho software que posiblemente no necesitemos nunca instalar pero en un momento dado si podría sernos útil y el que no tengamos conexión a internet en ese momento, no quiere decir que no haya una solución. Ya conocias esta forma de instalar rpm's en Centos?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar y configurar Fail2ban en Linux Centos

DriveMeca instalando y configurando Fail2ban en un servidor Linux Centos
Ya casi es común escuchar noticias de ataques por internet a empresas conocidas, reconocelo, el que no seas popular o famoso no quiere decir que tu servidor esta fuera de peligro por lo cual hoy mostraremos una forma de estar preparados para estos ataques protegiendo el puerto ssh. Nuestro articulo el día de hoy sera como instalar y configurar paso a paso fail2ban en un servidor linux centos. Los ataques no solo son por el puerto ssh (22 - tcp) pero si son los mas comunes y con fail2ban podemos de forma automática protegernos de este y otros ataques sin que sea tan complicado de manejar.

Requerimientos


-Comenzamos instalando el repositorio Epel

Articulo a consultar: Potencia tu Linux Centos; instala los repositorios RPMForge / Epel / Remi

Para Centos 6

yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Para Centos 7

yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

-Instalamos fail2ban habilitando el repositorio epel
yum install --enablerepo=epel fail2ban

-Creamos un jail para sshd independiente, sin tocar el conf principal (bloqueara una ip después de 5 intentos fallidos de conexion)
vi /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

-Habilitamos el servicio de fail2ban y lo ejecutamos
Para Centos 6

chkconfig fail2ban on
service fail2ban restart

Para Centos 7

systemctl enable fail2ban.service
systemctl restart fail2ban.service

-Verificamos ejecución de servicio fail2ban
fail2ban-client ping
Server replied: pong

-Estado de fail2ban
fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

-Verificamos como va trabajando nuestro jail sshd
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 3
|  |- Total failed: 21
|  `- File list: /var/log/secure
`- Actions
   |- Currently banned: 3
   |- Total banned: 3
   `- Banned IP list: 125.88.177.95 222.186.31.181 58.218.198.49

-Como se ve desde iptables
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination      
f2b-sshd   tcp  --  anywhere             anywhere            multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination      

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination      

Chain f2b-sshd (1 references)
target     prot opt source               destination      
REJECT     all  --  58.218.198.49        anywhere            reject-with icmp-port-unreachable 
REJECT     all  --  222.186.31.181       anywhere            reject-with icmp-port-unreachable 
REJECT     all  --  125.88.177.95        anywhere            reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere

-Como agregar ips para que no se bloqueen
fail2ban-client set sshd addignoreip 10.8.0.202
These IP addresses/networks are ignored:
|- 127.0.0.1/8
`- 10.8.0.202

-Agregar una subred a ips ignoradas
fail2ban-client set sshd addignoreip 10.8.0.0/24

-Eliminar ips ignoradas
fail2ban-client set sshd delignoreip 10.8.0.202

-Verificar ips ignoradas
fail2ban-client get sshd ignoreip
These IP addresses/networks are ignored:
|- 127.0.0.1/8
`- 10.8.0.0/24

-Bloquear (bannear) una ip manualmente
fail2ban-client set sshd banip 104.43.20.94

-Desbloquear (eliminar) una ip manualmente
fail2ban-client set sshd unbanip 104.43.20.94

-En caso de dudas, podemos ejecutar fail2ban-client sin parámetros y se nos mostrara un listado de comandos con su explicación corta

Ya usas fail2ban para proteger los puertos de tus servidores de ataques? usas otra alternativa?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar php 5.6 en Centos 7

DriveMeca instalando PHP 5.6 en Linux Centos paso a paso
Las distribuciones Linux para servidor por lo general (a no ser Fedora) cuidan su estabilidad manteniendo paquetes probados y no muy actuales. Ahora, en la medida que pasa el tiempo, los nuevos desarrollos se basan en nuevas librerías por lo cual cuando vamos a usarlos nos encontramos con que no cumplimos con los requisitos, ejemplo, una nueva pagina web y nuestro Linux Centos con versión php 5.3, AHHH!!!!, calma, hoy veremos paso a paso como instalar php 5.6 en Linux Centos 7.
Aclaro que el que instalemos nuevas versiones no quiere decir que pongamos en riesgo la estabilidad de nuestro servidor, alguien se tomo el tiempo y paciencia para crear un repositorio, compilar las nuevas versiones, probarlas y luego hacerlas publicas. Por eso por lo general estarás seguro y no tendrás problemas.

-Instalamos la ultima versión del repositorio Remi
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

-Después de instalado le damos un cat para ver el contenido del repo. Tomemos nota de los nombres dentro de [] (en rojo) . Por default todo viene deshabilitado y es buena idea solo instalar lo que necesitamos sin habilitar el repositorio. Para este articulo instalare desde remi-php56
cat /etc/yum.repos.d/remi.repo
# Repository: http://rpms.remirepo.net/
# Blog:       http://blog.remirepo.net/
# Forum:      http://forum.remirepo.net/

[remi]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/remi/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php55]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php55/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/php55/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php56]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php56/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/php56/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-test]
name=Remi's test RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/test/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/7/test/mirror
# WARNING: If you enable this repository, you must also enable "remi"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-debuginfo]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-remi/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php55-debuginfo]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-php55/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php56-debuginfo]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-php56/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-test-debuginfo]
name=Remi's test RPM repository for Enterprise Linux 7 - $basearch - debuginfo
baseurl=http://rpms.remirepo.net/enterprise/7/debug-test/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

-Instalamos php con los modulos que necesitemos habilitando por linea de comando temporalmente el repositorio remi-php56
yum install --enablerepo=remi-php56 php php-gd php-json php-mbstring php-xml

-Verificamos nuestro php con la función phpinfo
vi /var/www/html/index.php
<?php
phpinfo();
?>

-Reiniciamos apache
systemctl restart httpd.service

-Ya tenemos PHP 5.6 en nuestro Linux Centos 7
DriveMeca instalando PHP 5.6 en Linux Centos paso a paso

Sencillo cierto, no demoramos nada, conoces otra variante? lo haz hecho de otra forma?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como configurar un cliente BackupPC en Linux Centos

DriveMeca configurando un cliente BackupPC en Linux Centos
Algo mas tranquilo después de leer mi pasado articulo sobre como instalar y configurar un servidor BackupPC hoy trataremos sobre como configurar un cliente en Linux Centos.
Es de suma importancia que tengamos políticas de backup de nuestros equipos. Nunca sabrás cuando el hardware de tu equipo falle, pierdas el disco o en el peor de los casos, te lo roben. Por eso es importante tener copia de esos valiosos archivos y no lamentarse cuando ya no haya nada que hacer.

Requisitos

  • Servidor BackupPC instalado y funcionando
  • Conectividad entre el servidor y el cliente


Pasos a realizar en el Servidor BackupPC

-Abrimos una consola como root y nos cambiamos al directorio de configuración
cd /etc/backuppc/

-Editamos el archivo de hosts de BackupPC y agregamos al equipo Linux Centos, recordando que 0 es para equipos con ip fija (como mi ejemplo) o 1 para equipos que tienen ip dinámica (DHCP). Significado de las columnas de izquierda a derecha 1:hostname (nombre del equipo todo en minúsculas), 2:tipo de conexión (0 ip fija, 1 ip dinámica), 3:usuario responsable (usuario al que le llegaran alertas de backup y tendrá privilegios sobre el backup de esta maquina), 4:administrador (administrador, aunque no necesariamente responsable del backup de esta maquina, podrá hacer cambios)
sudo vi hosts
pc1    0       soporte backuppc

-Agregamos el equipo (en este caso que tiene ip fija) al archivo hosts de Linux
sudo vi /etc/hosts
10.8.0.90       pc1

-Creamos una copia del archivo de configuración de BackupPC para el nuevo cliente que estamos agregando (el nombre.pl es en minusculas)
sudo cp config.pl pc1.pl

-Cambiamos permisos
sudo chown backuppc.www-data pc1.pl

-Editamos el archivo de configuración de nuestro cliente y específicamente cambios los siguientes parámetros. En este ejemplo tomare copia de los directorios /etc y /home/cabrera/Documents, haz los cambios según tu necesidad de copia
sudo vi pc1.pl
$Conf{XferMethod} = 'rsyncd';
$Conf{XferLogLevel} = 3;
$Conf{RsyncShareName} = ['etc', 'documents'];
$Conf{RsyncdUserName} = 'backuppc';
$Conf{RsyncdPasswd} = 'contraseña';
$Conf{PingMaxMsec} = 80;
$Conf{CompressLevel} = 9;

Pasos a realizar en el cliente Linux Centos

-Instalamos dependencias
yum install rsync xinetd

-Modificamos la configuración de rsync a ejecutarse con xinetd
vi /etc/xinetd.d/rsync
service rsync
{
        disable = no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

-Reiniciamos xinetd y lo dejamos activo
service xinetd restart
chkconfig xinetd on

Para Centos 7 seria
systemctl reload xinetd.service
systemctl enable xinetd

-Creamos el conf de rsync con las carpetas a compartir haciéndolo mas seguro limitandolo a que solo permita conexiones de nuestro servidor
vi /etc/rsyncd.conf
[etc]
comment = Directorio /etc
path = /etc
use chroot = false
max connections = 4
read only = false
list = false
auth users = backuppc
secrets file = /etc/rsync.secrets
strict modes = false
hosts allow = 10.8.0.202

[documents]
comment = Directorio documentos
path = /home/cabrera/Documents
use chroot = false
max connections = 4
read only = false
list = false
auth users = backuppc
secrets file = /etc/rsync.secrets
strict modes = false
hosts allow = 10.8.0.202

-Creamos el archivo de usuario y contraseña con las credenciales que usara BackupPC para conectarse
vi /etc/rsync.secrets
backuppc:contraseña

Pasos a realizar en el servidor BackupPC

-Reiniciamos el servicio
sudo service backuppc restart

-Agregamos una regla iptables para permitir conexiones al puerto 873 (rsync - tcp)
iptables -A INPUT -p tcp -d 0/0 -s 0/0 --dport 873 -j ACCEPT

-Quieres probar si funciona y poder corregir errores? Nos cambiamos al usuario backuppc
su -l backuppc

-Nos movemos al directorio de ejecutables
cd /usr/share/backuppc/bin

-Ejecutamos una copia de forma verbal (v) al cliente (f) pc1 Hora de ir por un café ;-)
./BackupPC_dump -vf pc1

DriveMeca configurando un cliente BackupPC en Linux Centos

Ya usas BackupPC? con que clientes lo tienes?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark