Instalacion y Configuracion de #OCSInventory

OCSInventory es un software libre que puede funcionar tanto en Linux como en Windows en modo servidor, y en clientes Windows, Linux, Mac, y en futuro en dispositivos mobiles con Android y Windows Phone. Su función es realizar inventarios de dichos dispositivos (host) tanto Software como Hardware.

Aclaración: Cuando hablamos de host, es cualquier dispositivo que se encuentre en la red, ya sea una Virtual Machine o una maquina física, llámese PC, Teléfonos IP, Cámaras IP, ETC.

Características:
  • Usa Software libre para su funcionamiento, como MySql, PHP, Apache, Perl, Esta característica es importante ya que no tendrías necesidad de pagar por su licenciamiento o por la instalación de cada cliente, que en algunos Software privativos cobran por cada host. Aunque la forma de retribuirles de forma de agradecimiento a sus desarrolladores es darlo a conocer, masificar su uso, si se encuentra algún fallo reportarlo para dar solución rápida. O si se desea solo pagar por el soporte por parte de ellos.
  • Entorno de Configuración mediante Web
  • GUI Amigable y entendible.
  • Uso de filtros para inventariar software.
  • Permisos por usuario.
  • Escaneado de Red para dispositivos No Inventariados y poder saber quien no autorizado se esta conectando.
  •  Multi-Idioma

Descarga e Instalación:

Primero que todo, la plataforma a usar es:
Servidor Ubuntu 12.04 en VM

Como todos sabrán Ubuntu Server viene sin Interfaz gráfica, pero si lo deseas se podrá instalar, en esta ocasion solo vamos a instalar el SSH para poder conectarme dese un PC remoto, este lo podemos instalar desde el principio durante la instalación del server o despues de la instalación con el siguiente comando y el make.


sudo apt-get install openssh-server make

A continuación procedemos a descargar el OCSInventory Server:

 wget https://launchpad.net/ocsinventory-server/stable-2.0/2.0.5/+download/OCSNG_UNIX_SERVER-2.0.5.tar.gz

Despues lo descomprimimos:

tar -xvzf OCSNG_UNIX_SERVER-2.0.5.tar.gz

Pero OCSInventory requiere unos paquetes Extras, para ello procedemos a instalar dichos paquetes (todo se hace de modo root).

apt-get install apache2 mysql-server libapache2-mod-php5 libapache2-mod-perl2 libapache-dbi-perl libxml-simple-perl libdbi-perl libdbd-mysql-perl libnet-ip-perl php5-gd php5-mysql libsoap-lite-perl libphp-pclzip

Se configura el PERL, a todo le damos ENTER.

perl -MCPAN -e shell
Ingresamos de Nuevo al perl:

perl -MCPAN -e shell 

E instalamos unos paquetes mas dentro de la consola PERL. Le damos a todo ENTER.

install SOAP::Lite
install XML::Entities


Después de haber instalado los paquetes necesarios, podemos instalar el OCSInventory.

cd OCSNG_UNIX_SERVER-2.0.5.tar.gz 
./setup.sh


Y nos aparecerán las siguientes lineas:

+----------------------------------------------------------+
| |
| 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)?


En esta parte nos dice que si tenemos una versión anterior al OCS primero la debemos desinstalar con su configuración del Apache, como es la primera vez, oprimimos y para continuar.

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

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

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

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

Which host is running database server [localhost] ?
En esta parte solo es oprimir ENTER para continuar la instalación, aca nos pregunta en donde se encuentra la base de datos, la comprueba y listo. si esta en otro server solo escribimos la IP y Enter.

A continuación solo le damos ENTER a todo o y (Si necesitas cambiar algo tenlo en cuenta, como ruta de archivo de Apache, el puerto de la base de datos etc.)

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/apache2] ?
OK, using Apache daemon /usr/sbin/apache2 ;-)


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

Where is Apache main configuration file [/etc/apache2/apache2.conf] ?
OK, using Apache main configuration file /etc/apache2/apache2.conf ;-)


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

Which user account is running Apache web server [www-data] ?
OK, Apache is running under user account www-data ;-)


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

Which user group is running Apache web server [www-data] ?
OK, Apache is running under users group www-data ;-)


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

Setup found Apache Include configuration directory in
/etc/apache2/conf.d/.
Setup will put OCS Inventory NG Apache configuration in this directory.
Where is Apache Include configuration directory [/etc/apache2/conf.d/] ?
OK, Apache Include configuration directory /etc/apache2/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 XML::Entities PERL module...
Found that PERL module XML::Entities is available.


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

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

+----------------------------------------------------------+
| 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/apache2/conf.d//ocsinventory.conf
Writing communication server configuration to file /etc/apache2/conf.d//z-ocsinventory-server.conf

+----------------------------------------------------------+
| OK, Communication server setup sucessfully finished ;-)  |
|                                                          |
| Please, review /etc/apache2/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)?y
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 [/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 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/apache2/conf.d//ocsinventory-reports.conf

+----------------------------------------------------------+
| OK, Administration server installation finished ;-)      |
|                                                          |
| Please, review /etc/apache2/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/Descargas/OCSNG_UNIX_SERVER-2.0.5/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 ;-)

Por ultimo reiniciamos el servicio de Apache:
  
sudo service apache2 restart

Configuración

 Ingresamos desde otro PC por web (Recordemos que no tenemos entorno visual), en la url escribimos.

http://IP/ocsreports
En MySQL Login es el usuario root, y el password el pass de root, le damos send.
Durante un rato se creara la base de datos en MySQL. Y tendremos como resultado:

 Listo damos en enviar consulta (solo es para los host que ya tienen el cliente, es opcional) el OCS crea la DB, solo queda ingresar con user admin y pass admin. Podemos seleccionar el idioma español si lo deseamos.

 Al ingresar por primera vez vamos a tener dos alertas de seguridad, ya que aun existe el archivo de install.php y datos por default de ingreso al OCS, el cual recomienda cambiar.
Vamos a solucionar esos dos problemas de seguridad. Primero es cambiando el password del usuario admin.
Damos click en el dibujo de una cara, luego en super administators, y editamos el usuario admin, cambiamos el password y listo, el primer problema queda solucionado.

El Siguiente es eliminar el archivo install.php.

sudo rm /usr/share/ocsinventory-reports/ocsreports/install.php
Y por ultimo debemos de cambiar el password del OCS en MySQL, lo podemos hacer de 2 maneras, la sencilla y la complicada (Aunque la complicada a futuro es mejor, para una administración de la DB mas facil).

La sencilla por consola Sql:
mysql -h localhost -u root -p 

Nos solicitara el password de root, quedando el bash de esta manera.
mysql>
Escribimos lo siguiente.
SET PASSWORD FOR 'ocs'@'localhost' = PASSWORD('Nuevo_Pass');
SET PASSWORD FOR  'ocs'@'%' = PASSWORD('Nuevo_Pass');
FLUSH PRIVILEGES;
Y listo, o la manera complicada instalando phpmyadmin.

sudo apt-get install phpmyadmin
Durante la configuración de este, nos solicitara el user y pass de root de la DB.
Luego ingresamos al phpmyadmin por entorno web.

http://ip/phpmyadmin
El usuario es root y el pass, pues el pass de root :-P .

Al ingresar, seleccionamos privilegios, el usuario ocs local y editamos privilegios, alli cambiamos la contraseña, aplicamos y listo.

Pero por que el phpmyadmin es el complicado? si tenemos solo el OCS como ven los pasos se alargan, pero si tenemos varias bases de datos como yo en esta ocasión, es mejor tener el phpmyadmin instalado se facilitara la administración.

Pero estos cambios no seran aplicados hasta no configurar el OCS con el nuevo pass.

sudo nano /etc/apache2/conf.d/z-ocsinventory-server.conf
Buscamos la Linea PerlSetVar OCS_DB_PWD y escribimos el nuevo password, quedando.

PerlSetVar OCS_DB_PWD Nuevo_Pass
Y por ultimo editamos:

sudo nano /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php
El cual tiene solo estas lineas

<?php
define("DB_NAME", "ocsweb");
define("SERVER_READ","localhost");
define("SERVER_WRITE","localhost");
define("COMPTE_BASE","ocs");
define("PSWD_BASE","Nuevo_Pass");
?>
 Listo, reiniciamos apache.

sudo service apache2 restart
Ahora volvemos a ingresar y listo, veremos que los errores de seguridad por Default se solucionaron, no esta demas cambiar el pass del sistema por uno fuerte (mínimo 8 caracteres entre números simbolos, mayus y minus).

En Windows:

Si tuviste dinero para comprar la licencia de un server windows, no veo por que no puedas pagar el soporte del OCS, jejejeje, no mentiras, en windows es mucho mas sencillo.

  1. Descargar el XAMPP
  2. Instalarlo, y Next, Next, Next Finish.
  3. Descargar el OCSInventory para Windows
  4. Descomprimimos e instalamos, next, next, next, finish.
  5. El resto todo lo mismo, solo que esta vez en el XAMPP cambias los pass por defecto.

Cliente:

Para el cliente, solo descargamos los instaladores.

Windows, descargamos e instalamos, escribimos laIP del server y listo. Si son muchas maquinas podemos generar un .msi a partir de ese .exe con la configuración de la IP.

Linux, es un poco mas complicado pero no imposible, descaramos el archivo .tar, instalamos las dependencias (apt-get install dmidecode libxml-simple-perl libcompress-zlib-perl libnet-ip-perl libwww-perl libdigest-md5-perl libnet-ssleay-perl) , descomprimimos el archivo, ingresamos a la carpeta, escribimos perl Makefile.PL
luego un make y después el make install y despues de eso solo respondemos las preguntas que alli aparecen.




MAC

Recursos:
Manual Server Windows
Manual Server Linux
Manual Cliente Windows
Manual Cliente Linux
Addons





Datos Sobre el Autor

Foto

Frank Sanabria

Aficionado a la Seguridad Informatica, Geek desde los 11 Años, Amante de los Video Juegos, e implementación de servidores Linux como profesión.

Mas sobre el Autor:
|


Articulos Relacionados