Вы находитесь на странице: 1из 7

Ocomon + AD

Resolvi colocar no blog um tutorial ensinando como instalar o software livre Ocomon na distribuio de GNU/Linux
Debian. Recebi vrios e-mails com problemas na instalao do Ocomon autenticando no AD, ento resolvi fazer um
passo a passo de como instalar.
Espero que gostem, est bem detalhado.
Vamos l! Preparando o ambiente:
OBS. Melhores informaes me adicionem no MSN ou me mande email:
valcenir.h@gmail.com
Requisitos
Controlador de Domnio (Windows Sever 2008 R2)
IP: 192.168.0.240/24
FQDN: teste.local
HelpDesk (Ocomon) OS. Linux Debian 6.0 Squeeze
IP: 192.168.0.200/24
#==============================================================================
#
Softwares
Putty
WinSCP
# OBS. Instalao executada pelo cliente Windows 7 aps instalao do servio de SSH (Putty)
#==============================================================================
#

OCS - Ocomon- WEB 1Passo

#==============================================================================
# OBS. Aps a configurao da interface de rede vamos a instalao via console: (putty)
apt-get update
apt-get install ssh
apt-get install apache2
apt-get install mysql-server # No meio da instalao vai solicitar senha (Senha:masterbd)
apt-get install php5
apt-get install php5-mysql
apt-get install php5-ldap
apt-get install php-mail
apt-get install phpmyadmin # Marque a opo "apache2" e de um ok.

#==============================================================================
OCS - Ocomon - Instalao 2Passo
#==============================================================================
# Download do Ocomon:
1. http://ocomonphp.sourceforge.net/
OBS. Baixe a verso Stable

2. Em seguida descompacte no seu desktop e copie-o, com winscp para o diretrio "/var/www"

#==============================================================================
OCS - Ocomon - Configurao BD 3Passo
#==============================================================================

Acesse via winSCP o diretrio "/var/www/install/2.0RC6/ e edite o arquivo:


DB_OCOMON_2.0RC6_FULL.SQL

E altere usurio e senha conforme o exemplo abaixo:

Exemplo:
/*!40101 SET NAMES utf8 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`ocomon_rc6` /*!40100 DEFAULT CHARACTER SET utf8 */;
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
GRANT SELECT , INSERT , UPDATE , DELETE ON `ocomon_rc6` . * TO 'ocomon'@'localhost';
OBS. Muito importante visualizar:
Coloquei usurio e senha "admin"
Salve o arquivo.
Acesse pelo navegador IE ou Firefox o endereo:
http://192.168.0.200/phpmyadmin
Usurio: root
Senha: masterbd
clique em "SQL" vai abrir uma janela.

Acesse novamente via winSCP o diretrio "/var/www/install/2.0RC6/

Abra o o arquivo "DB_OCOMON_2.0RC6_FULL.SQL"


Selecione tudo "ctrl+a" copie (ctrl+c") e cole na janela do sql que voc abriu depois clique em executar.

OBS. Messagem--> sql executado com sucesso.


Voc vai verificar que vai criar uma nova base "ocomon_rc6"

#==============================================================================
OCS - Ocomon - Configurao Ocomon 3Passo
#==============================================================================
Entre na pasta via winSCP /var/www/includes e Renomeie o arquivo "config.inc.php-dist" para
"config.inc.php":
Altere as informaes abaixo:
//Usuario do banco
define ( "SQL_USER", "root"); //NOME DO USU RIO PARA ACESSAR A BASE DO OCOMON - ESSE USU RIO
CRIADO AUTOMATICAMENTE NA INSTALACAO DO SISTEMA!!

//Senha do banco
define ( "SQL_PASSWD", "masterbd");//ESSA SENHA A SENHA PADRAO CRIADA NA INSTALACAO DO SISTEMA.
RECOMEND VEL A ALTERACAO DA MESMA NO MYSQL.
// Endereo do site
define ( "OCOMON_SITE","http://192.168.0.200/");

OBS. Se caso no tenha as informaes de "// Endereo do site" adicione!

Entre na pasta via winSCP /var/www/includes/classes


Altere o arquivo "conecta.class.php"
Encontre a linha=>
$this->con=mysql_connect(SQL_SERVER,SQL_USER,SQL_PASSWD).....
Altere para=> $this->con=mysql_connect(localhost,root,senhaxxx)..............
Na linha abaixo, mude a opo "SQL_DB" para ocomon //que base de dados

Exemplo:
function conecta($BANCO){
if (strtoupper($BANCO) =='MYSQL') {
$this->con=mysql_connect('localhost','root','masterbd')or die(mysql_error());
$this->db=mysql_select_db(ocomon_rc6,$this->con);
if ($this->con == 0){
$retorno = "ERRO DE CONEXO - SERVIDOR!<br>";

OBS. Salve o arquivo.

Agora vamos iniciar os servios para que o sistema OcoMon funcione:


Acesse via putty
service apache2 restart
Para comear usar o OcoMon digite no navegador: "http://192.168.0.200"
O usurio e senha padro "admin" e senha "admin"
#==============================================================================
OCS - Ocomon - Integrao com AD via LDAP
#==============================================================================
#
Habilite o mdulo ldap no apache2 (Putty)
a2enmod authnz_ldap
Reinicie o apache2
apache2ctl restart
Baixe o adLDAP
http://prdownloads.sourceforge.net/adldap/adLDAP_3.2.zip?download
Descompacte o arquivo e depois copie para o diretrio via winSCP "/var/www/includes/classes"
1 Acesse o arquivo via winSCP "/var/www/includes/classes/adLDAP.php"
E altere:

protected $_account_suffix = @teste.local;


protected $_base_dn = DC=teste,DC=local;
protected $_domain_controllers = array (192.168.0.240);
OBS. Salve o arquivo.

2 Edite o arquivo /var/www/includes/config.inc.php comentando e seguinte linha:


define ( AUTH_TYPE , SYSTEM); //DEFAULT
e descomente a linha
define ( AUTH_TYPE, LDAP); // ALTERNATIVE

Exemplo:
#define ( "AUTH_TYPE" , "SYSTEM"); //DEFAULT
define ( "AUTH_TYPE", "LDAP"); // ALTERNATIVE

3 Acesse o diretrio /var/www/includes/common e faa um backup do arquivo "login.php" para login-dafault.php"


Adicione no arquivo "/var/www/includes/common/login.php" conforme mostrado abaixo:
session_start();
include ("../../includes/include_geral.inc.php");
include ("../../includes/functions/browser_detection.php");
include ("../../includes/classes/adLDAP.php"); #Adicionar o caminho da class adLDAP.php
4 Comente as linhas:
/*$conec->conLDAP(LDAP_HOST, LDAP_DOMAIN, LDAP_DN, LDAP_PASSWORD);
$conecSec = new conexao; //Para testar no LDAP Labin
$conecSec->conLDAP(LDAP_HOST, LDAP_DOMAIN_SEC, LDAP_DN, LDAP_PASSWORD);*/

Exemplo:
//$conec->conLDAP(LDAP_HOST, LDAP_DOMAIN, LDAP_DN, LDAP_PASSWORD);
//$conecSec = new conexao; //Para testar no LDAP Labin
//$conecSec->conLDAP(LDAP_HOST, LDAP_DOMAIN_SEC, LDAP_DN, LDAP_PASSWORD);

Adicione logo abaixo:

try {
$adldap = new adLDAP();
}
catch (adLDAPException $e) {
echo $e; exit();
}
Comente a linha :
//if ((senha_ldap($_POST['login'],$_POST['password'],'usuarios')=="ok") && ($conec>userLDAP($_POST['login'],$_POST['password']) || $conecSec>userLDAP($_POST['login'],$_POST['password'])))
Exemplo:
//if ((senha_ldap($_POST['login'],$_POST['password'],'usuarios')=="ok") && ($conec>userLDAP($_POST['login'],$_POST['password']) || $conecSec->userLDAP($_POST['login'],$_POST['password'])))
//{
// $s_usuario=$_POST['login'];
// $s_senha=$_POST['password'];
Adicione logo abaixo:

if (AUTH_TYPE == "LDAP") {
/*$conec->conLDAP(LDAP_HOST, LDAP_DOMAIN, LDAP_DN, LDAP_PASSWORD);
$conecSec = new conexao; //Para testar no LDAP Labin
$conecSec->conLDAP(LDAP_HOST, LDAP_DOMAIN_SEC, LDAP_DN, LDAP_PASSWORD);*/

//if ((senha_ldap($_POST['login'],$_POST['password'],'usuarios')=="ok") && ($conec>userLDAP($_POST['login'],$_POST['password']) || $conecSec->userLDAP($_POST['login'],$_POST['password'])))


try {
$adldap = new adLDAP();
}
catch (adLDAPException $e) {
echo $e; exit();
}
//if ((senha_ldap($_POST['login'],$_POST['password'],'usuarios')=="ok") && ($conec>userLDAP($_POST['login'],$_POST['password']) || $conecSec->userLDAP($_POST['login'],$_POST['password'])))
if ($adldap -> authenticate($_POST['login'],$_POST['password']) && ($_POST['login']!=NULL &&
$_POST['password']!=NULL))
{
$s_usuario=$_POST['login'];
$s_senha=$_POST['password'];
$result=$adldap -> user_info($_POST['login']);
$U_MAILG=$result[0]["mail"][0];
//************************************************************************************************
$qry="SELECT * FROM `usuarios` WHERE `login` = '".$s_usuario."'";
$qry3 = mysql_query($qry) or die('Impossvel aceder base de dados de utilizadores!!!');
$rowUSER = mysql_fetch_array($qry3);
if (($rowUSER['login'])!=($s_usuario)){
$adduser = "INSERT INTO usuarios (login, nome, password, data_inc, data_admis,
email, fone, nivel, AREA, user_admin) ".
"values ('".$s_usuario."','".$result[0]["displayname"][0]."','e267cfcd18461ce938067eca67c59f41','".date("Y-m-d")."','".
date("Y-m-d")."','".$U_MAILG."','1234','2','".$result[0]["primarygroupid"][0]."','0')";
mysql_query($adduser) or die (TRANS('ERR_INSERT').$s_usuario);
$addarea = "INSERT INTO `usuarios_areas` (`uarea_uid`,`uarea_sid`) VALUES ('".$rowUSER['user_id']."',
'".$result[0]["primarygroupid"][0]."')";
mysql_query($addarea) or die (TRANS('ERR_INSERT').$s_usuario);
}
//************************************************************************************************
$rwGroup=$adldap -> user_groups($_POST['login']);
$qruy="SELECT * FROM `sistemas` WHERE `sis_id` = '".$result[0]["primarygroupid"][0]."'";
$qruy3 = mysql_query($qruy) or die('Impossvel aceder base de dados de utilizadores!!!');
$rowGroup = mysql_fetch_array($qruy3);
if (($rowGroup['sis_id'])!=($result[0]["primarygroupid"][0])){
$addgroup = "INSERT INTO `sistemas` VALUES ('".$result[0]["primarygroupid"][0]."', '".$rwGroup[0]."',
'1', 'ti@meuemail.com.br', '0', null)";
$addpermi = "INSERT INTO `permissoes` (`perm_area`,`perm_modulo`,`perm_flag`) VALUES
('".$result[0]["primarygroupid"][0]."', '1', '1')";
mysql_query($addgroup) or die (TRANS('ERR_INSERT').$rwGroup[0]);
mysql_query($addpermi) or die (TRANS('ERR_INSERT').$rwGroup[0]);
}
//************************************************************************************************
$queryOK = "SELECT u.*, n.*,s.* FROM usuarios u left join sistemas as s on u.AREA = s.sis_id ".
"left join nivel as n on n.nivel_cod =u.nivel WHERE u.login = '".$_POST['login']."'";

";

#=================================================================================================
Substitua at na varivel $queryOK.
#=================================================================================================
OBS. No final do arquivo inclua }" V at o final do arquivo e coloque um "}".
Exemplo:
###########################################################################
print "<script>redirect('../../index.php?".session_id()."');</script>";
//print "<script>redirect('../../index.php');</script>";
}
else
{
print "<script>redirect('../../index.php?usu=".$_POST['login']."&inv=1');</script>";
exit;
}
}
}
?>

#=================================================================================================
==========================
Salve o arquivo e reinicie o apache2
service apache2 restart

Pronto Instalado.

Вам также может понравиться