Ir para o conteúdo

 Voltar a Curupira Sup...
Tela cheia

Instalando Curupira no Centos 5.4 (Tutorial)

11 de Janeiro de 2012, 10:55 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 655 vezes

Pacotes

Atualizar repositorio do yum

rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Instalar pacotes do Cups

yum install cups* -y

Instalar pacote do samba

yum install samba samba-common samba-client -y

Instalar pacotes do Kerberos KRB5

yum install krb5-auth-dialog krb5-devel krb5-libs krb5-server krb5-server-ldap krb5-workstation -y

Instalar pacotes do python

Alguns pacotes estao no repositorio do yum, outros tem que buscar na internet.

yum install pkpgcounter python-imaging python-osdv python-reportlab python-libs tix tk tkinter xosd python python-sqlite2 MySQL-python python-psycopg python-psycopg2 python-

pysnmp PyPam netatalk -y

Pacotes do python que nao estao no repositorio do yum.

python-egenix-mxdatetime rpm -Uvh ftp://ftp.pbone.net/mirror/ftp.pramberger.at/systems/linux/contrib/rhel4/archive/i386/python-egenix-mx-base-2.0.6-3.el4.pp.i386.rpm
python-jaxml nao encontrei mas so sera util,  se for fazer um dump em xml

Instalar pacote do Servidor Web

yum install httpd* php php-ldap php-pgsql php-gd mod_auth* sudo -y

Instalando o Pykota e Pkipplib via SVN

yum install subversion -y

Instalando pkipplib

cd /tmp
svn co http://svn.pykota.com/pkipplib/trunk pkipplib
cd pkipplib
python setup.py install

Instalando Pykota

cd /tmp

fazer o download do pykota via svn

svn co http://svn.pykota.com/pykota/trunk pykota

cd pykota
python checkdeps.py
Veja s dependencias e as instale se ainda restou alguma depois faça a instalação;

 python setup.py install

Instalando o Postgres84

yum install postgresql84* -y

Abaixar o curupira do os repositorios do forum.

wget url


Configurando os serviços

Cups

vim /etc/cups/cupsd.config

Alterar

Listen localhhost:631 para Listen 631

Inserir Allow From All nas seguintes configurações ou configure como desejar.

<Location />
  Order allow,deny
  Allow From all
</Location>

<Location /admin>
  Encryption Required
  Order allow,deny
  Allow From all
</Location>

<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow From all
</Location>

Salve o arquivo de configuração e reincie o cups

service cups restart

Criando ssl para o cups

cd /etc/pki/tls/certs

make cups.key

Coloque uma senha qdo solicitar(guarde esta senha);

Removendo a senha do arquivo

openssl rsa -in cups.key -out cups.key

coloque a senha e tecle enter

make cups.csr

Preencha de acordo com as suas informações;

openssl x509 -in cups.csr -out cups.crt -req -signkey cups.key -days 3650

Adcione as duas linha abaixo no arquivo de configuração do cups;

ServerCertificate /etc/pki/tls/certs/cups.crt
ServerKey /etc/pki/tls/certs/cups.key

Edite o arqvivo mime

vim  /etc/cups/mime.convs

Copiar o arquivo do backend pykota para o cups

cp /usr/share/pykota/cupspykota /usr/lib/cups/backend

chmod +x /usr/lib/cups/backend/cupspykota

Descomente a seguinte linha

application/octet-stream    application/vnd.cups-raw    0    -

Salve o arquivo de configuração e reincie o cups

service cups restart

Para inserir uma impressora no cups utilize como device URI como informado abaixo;

cupspykota://socket://ip_da_impressora:9100

Configurando o samba

Apagando o conteudo do arquivo

> /etc/samba/smb.conf

Esta é a minha configuração altere como desejar

[global]
workgroup = CRT.GOV
netbios name = nome_do_servidor
realm = nome_do_dominio
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
load printers = yes
printing = cups
printcap name = cups
security = ADS
encrypt passwords = true
allow trusted domains = no
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
winbind use default domain = yes
winbind enum groups = yes
winbind enum users = yes
winbind nested groups = yes

[ADMIN$]
path = /root
   writable = yes
   create mask = 0777
   directory mask = 0777

[printers]
   comment = All Printers
   browseable = yes
   path = /var/spool/samba
   printable = yes
   guest ok = yes
   public = yes
   writable = yes


[print$]
   comment = Printer Drivers
   path = /usr/share/cups/drivers
   browseable = yes
   writable = yes
   guest ok = yes
   write list = root

Salve o arquivo do samba

Agora configurando o kerberos

Apagando conteudo do arquivo

> /etc/krb5.conf

vim /etc/krb5.conf
Esta é minha configuração altere como desejar (respeite maiusculas e minusculas)

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = NOME_DO_DOMINIO_FQDN
 dns_lookup_realm = false
 dns_lookup_kdc = false

[realms]
CRT.GOV.BR = {
  kdc = nome_ou_ip_do_servidor_ad:88
  admin_server = nome_ou_ip_do_servidor_ad:749
  default_domain = nome_ou_ip_do_servidor_ad
 }

[domain_realm]
 .nome_do_dominio_fqdn = NOME_DO_DOMINIO_FQDN
 nome_do_dominio_fqdn = NOME_DO_DOMINIO_FQDN

[appdefaults]
 pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
 }

Salve o arquivo do Krb5.conf


Editando o nsswitch.conf

apagando o conteudo do arquivo

>/etc/nsswitch.conf

vim /etc/nsswitch.conf (sao minhas configurações altere como desejar)

# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Salve o arquivo e feche.

Agora vamos inserir a maquina no ad

net ads join -U administrador (qdo solicitar a senha coloque a senha do administrador do seu dominio)


Alterando o metodo de autenticação

authconfig  --enablewinbinb --updateall
authconfig  --enablewinbindauth --updateall

Iniciando o Samba e o winbind

service smb start
service winbind start

Testando a comunicaçao

wbinfo -u (mostra os usuarios do ad)
wbindo -g (mostra os grupos do ad)


Configurando o Pykota

mkdir -p /etc/pykota

Copie os arquivos de configuração

cp /usr/share/pykota/conf/pykota.conf.sample /etc/pykota/pykota.conf
cp /usr/share/pykota/conf/pykotadmin.conf.sample /etc/pykota/pykotadmin.conf

Configurando o Curupira

No meu caso a pasta estava no home do root.

Copiando as pastas e os arquivos para os seus devidos lugares;

cp -R /root/curupira-1.4.17/usr/share/curupira /usr/share/
cp -R /root/curupira-1.4.17/var/cache/curupira /var/cache/
cp -R /root/curupira-1.4.17/var/www/curupira /var/www/html/

Iniciando o Postgresql

service postgresql initdb

alterando o arquivo de configuração para acesso

vim /var/lib/pgsql/data/pg_hba.conf

altere as linhas de ident para trust como informado abaixo

local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust

#caso queira usar o pgadmin da sua maquina coloque a sua rede
host    all         all         sua_rede/mascara       trust

# IPv6 local connections:
host    all         all         ::1/128               trust

vim /var/lib/pgsql/data/postgresql.conf

alterem o valor listen-address de localhost para *

reinicie o postgres

service postgresql restart

Criando a base de dados a ser utilizada

psql -f /usr/share/pykota/postgresql/pykota-postgresql.sql

atualizando a base para o curupira

psql -f /usr/share/curupira/templates/pykota-update2curupira.sql

digite exit para voltar para o perfil do root


Copie os arquivos insere-usuario e insere-impressora para a pasta do pykota em /etc/pykota

cp /usr/share/curupira/scripts/insere-usuario /etc/pykota/
cp /usr/share/curupira/scripts/insere-impressora /etc/pykota/

De permissão de execução para estes arquivos

chmod +x /etc/pykota/insere*

As configurações foram pegas do post do usuario Samuel Francisco Ferrigo

http://www.softwarepublico.gov.br/dotlrn/clubs/curupira/forums/message-view?message_id=14193559

Agora edite o arquivo insere-usuario

vim /etc/pykota/insere-usuario

Modificar as seguitnes variáveis, na função pesquisa_ad() conforme a necessidade:

local server="servidor_AD"
local porta=porta_AD
local dominio="nome_do_domínio_NETBIOS"
local user="usuario_administrador_do_AD"
local pass="senha_do_usuario"

Modificar os parâmetros -b e -D do comando ldapsearch

ldapsearch -w $pass -x -b dc=$dominio,dc=com,dc=br -D
cn=$user,cn=Users,dc=$dominio,dc=com,dc=br -h $server -p $porta
"sAMAccountName=$1" > $tmpfile

Comentar teste de versão do pykota, pois o Pykota tem a versão mais recente e não é necessário o teste

# ATENCAO verifica se eh baseado no pykota 1.25 ou nos anteriores
#versao=$(edpykota -v | sed 's/1\.\([0-9][0-9]\).*/\1/')
#if [ $versao -ge 25 ] ; then
# pykota="novo"
#else
# pykota="velho"
#fi

Modifcar as quotas, e comentar as linhas que verificam se o pykota é novo (as linhas em negrito foram adicionadas para incluir a quota)

quota_padrao="20"                #quota padrao para inclusao na base de dados
grupo_padrao="Nivel1"            #grupo padrao para inclusao na base de dados
dir_base="/etc/pykota"            #diretorio base do script
editor_pykota=`which edpykota`    #localizacao do edpykota


.......................................

#TODO: COLOCAR INCLUSAO DE QUOTA!
# executa a inclusao na base de dados do pykota

# caso o usuario ja esteja no bando da update.
if [ ! -z "$teste_id" ]; then
 edpykota -a ${usuario}
 edpykota --softlimit ${quota} --hardlimit ${quota} ${usuario}
 #Só muda o grupo se este foi passado como paramêtro!!!!
 if [ -z "$c_grupo" ]; then
  # pega o groupid do grupo em questao
  group_id=$(echo "select id from groups where groupname='$grupo'" \
  | psql -U postgres pykota | egrep "[[:blank:]]+[[:digit:]]+" | \
  awk '{ print $1}')
  # atualiza a entrada na groupsmembers
  echo "update groupsmembers set groupid=${group_id} where userid=$
{teste_id}" \
  | psql -U postgres pykota
 fi
else
#  if [ "$pykota" == "velho" ]; then
#   edpykota --add --ingroups $grupo ${usuario}/${email}
#  elif [ "$pykota" == "novo" ]; then
    pkusers -a ${usuario}/${email}
    pkusers -i "${grupo}" ${usuario}
    edpykota -a ${usuario}
    edpykota --softlimit ${quota} --hardlimit ${quota} ${usuario}
#  fi
fi
}

.......................................



# trata os argumentos, no caso de arqumento errado, chama a ajuda()
while getopts "hu:g:q:e:" OPT; do
 case "$OPT" in
  "h") ajuda;; # exibe a ajuda
  "u") usuario=${OPTARG};;
  "e") email=${OPTARG};;
  "g") grupo=${OPTARG};;
  "q") quota=${OPTARG};;
  "?") ajuda;;
 esac
done

.......................................

# caso nao tenha sido utilizado o parametro que define a quota, assume padrao
if [ -z $quota ]; then
 echo "Assumindo quota padrao de ${quota_padrao} paginas por mes."
 quota=$quota_padrao
fi



Alterar o arquivo /var/www/curupira/script/busca_info_rede/usrmgr-ng


#Informar nome ou endereço IP do servidor do AD
SERVIDOR=""
# USR=Informe_Login_de_conta_Serviço.
USR=""
# PWS=Informe_senha_do_usuario_anterior
PWS=""
# DOM=Informe_Dominio_NT_da Conta_de_Serviço_Anterior
DOM=""


#if [ "${DOMINIO}" == "BH_AGENCIALIVRE" ]; then
# if [ "a${PWS}" == "a" ]; then
#  ldapsearch -x -b dc=${DOMINIO},dc=livre -D cn=${USR},cn=Users,dc=$
{DOM},dc=livre -h ${SERVIDOR} "sAMAccountName=${USUARIO}" > /tmp/file-$
{USUARIO}.tmp
# else
#  ldapsearch -w ${PWS} -x -b dc=${DOMINIO},dc=livre -D cn=$
{USR},cn=Users,dc=${DOM},dc=livre -h ${SERVIDOR} "sAMAccountName=${USUARIO}" > /
tmp/file-${USUARIO}.tmp
# fi;
#else
 if [ "a${PWS}" == "a" ]; then
  ldapsearch -x -b dc=${DOMINIO},dc=com,dc=br -D cn=${USR},cn=Users,dc=$
{DOM},dc=com,dc=br -h ${SERVIDOR} -p 389 "sAMAccountName=${USUARIO}" >
/tmp/file-${USUARIO}.tmp
 else
  ldapsearch -w ${PWS} -x -b dc=${DOMINIO},dc=com,dc=br -D cn=$
{USR},cn=Users,dc=${DOM},dc=com,dc=br -h ${SERVIDOR} -p 389 "sAMAccountName=$
{USUARIO}" > /tmp/file-${USUARIO}.tmp
 fi;
#fi;

Alterar o arquivo /var/www/curupira/scripts/function_infos.php


if ( $dominio == ""){
$dominio = "UEBA"; //Informar domínio NETBIOS
}


Alterar o arquivo /var/www/curupira/pega_info_usuario.php


$ad_server = ""; //IP do servidor AD
$ad_port = 389; //Porta do servidor AD
$dominio = ""; //Domínio NTEBIOS do AD
$user = "cn=Administrator,cn=Users"; //usuário do AD
$pass = ""; //Senha do administrador informado
$base_dn = "dc=ueba,dc=com,dc=br"; //Domínio LDAP

Altere o arquivo script.sh

vim /var/www/html/curupira/script/script.sh

altere o valor /var/www/curupira para /var/www/html/curupira

Dando Permissões nos scritps

chmod -R 777 /var/www/html/curupira/script/script.sh
chmod -R 777 /usr/lib/cups/backend/cupspykota
chmod -R 777 /var/www/curupira/script/busca_info_rede/usrmgr-ng

Alterando o httpd.conf

vim /etc/httpd/conf/httpd.conf

# Adicione a linha abaixo no final do arquivo httpd

<Directory /var/www/html/curupira/>
        AuthType basic
        AuthName "Utilize DOMINIO\matricula da rede e a senha para a autenticacao."
        AuthPAM_Enabled on
        AuthBasicAuthoritative off
        Require valid-user
        Options FollowSymLinks
        AllowOverride None
</Directory>

Altere o arquivo index.php

vim /var/www/html/curupira/index.php

altere o valor /login.php para /curupira/login.php

Colocando o seu usuario como administrador do sistema

Usando o pgadmin acesse o banco, selecione a base pykota va para schemas -> public -> tables -> groupsmembers (clique com o botao direito e selecione view-data escolha as 100
ultimas linhas)

altere o primeiro valor de 6 para 2 salve.

feche a pagina do curupira, abra novamente pronto voce ja esta como administrador

 

Qq duvida so postar

Autor: Francisco Carlos


44 comentários

  • Cc74fcdc30f5603b1b009c988378b38b?only path=false&size=50&d=404Francisco Carlos(usuário não autenticado)
    11 de Janeiro de 2012, 11:02

     

    Galera apenas um adendo coloquei no repositorio dois arquivos pykota-centos.conf e pykotadmin-centos.conf.

     Baixem estes dois arquivos e coloquem dentro da pasta /etc/pykota/  nao esqueçam de renomear para pkyota.conf e pykotadmin.conf

     

    abçs

    • 362b47ed668eddf659493cda2ead42f6?only path=false&size=50&d=404Roberto Almeida(usuário não autenticado)
      5 de Julho de 2012, 9:50

       

      Meu amigo, vocês usam o curupira + pykota efetivamente? Com relatórios e tudo? Qual seu telefone, gostaria de conversar sobre.

      Abraços.

  • C4fc30d14a24ab4c27e05536cb97def1?only path=false&size=50&d=404Heber Silva(usuário não autenticado)
    1 de Fevereiro de 2013, 10:07

     

    Efetuei a instalação do curupira no Centos, porem esta ocorrendo a mensagem abaixo ao acessar a pagina web, alguem sabe como faço para liberar acesso ao usuário.

    Authorization Required

    This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.

    Apache/2.2.15 (CentOS) Server at 10.200.53.19 Port 80
     

Curupira atinge 541 inscritos em um dia

23 de Abril de 2008, 13:36, por Desconhecido

Autor: Coordenação Software Público