Ir para o conteúdo

 Voltar a Curupira Sup...
Tela cheia

Manual para instalação no Debian Lenny

31 de Agosto de 2009, 21:51 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 823 vezes

Pessoal,

Segue abaixo um manual passo-a-passo com os procedimentos necessários para instalar o Curupira no Debian Lenny.

Espero que seja de grande utilidade para a comunidade!

 

Passos para instalar o Curupira no Debian Lenny





Segundo o manual do Curupira, esse sistema de gerenciamento de impressão tem os seguintes pré-requisitos:
- Instalação e configuração do Sistema Operacional Linux;
- Instalação e configuração do Samba/Winbind
- Instalação e configuração do Open-Ldap
- Instalação do Apache, CUPS/Pykota, PostgreSql e da Interface web desenvolvida na CAIXA.

Como são muitos os sistemas que interagem com o Curupira, tornando o processo de instalação desse software muito complexo, elaboramos esse manual passo-a-passo para auxiliar na instalação do software.

1. Instalar e configurar CUPS

1.1 Instalação

apt-get install cups

1.2 Testar o acesso à interface web

http://ip_servidor:631

Se o acesso não for bem sucedido, deve-se configurar o CUPS para acesso, editando as seguintes linhas do arquivo /etc/cups/cupsd.conf. No meu caso, liberei acesso total:

Listen *:631

<Location />
...
Allow From All
</Location>

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

<Location /admin>
...
Allow From All
</Location>

1.3 Adicionar impressora no CUPS

1.4 Efetuar teste de impressão



2. Instalar e configurar LDAP

2.1 Instalação

apt-get install slapd ldap-utils

Durante a instalação poderá ser pedido os seguintes dados

DNS domain name: - digitar o domínio da rede e teclar <enter>
Name of your organization: - digitar o nome da organização (ex.: Camara Municipal de Caxias do Sul)
Admin password - digitar a senha do usuário administrador da base LDAP *
Confirm password - Confirmar a senha do usuário administrador da base LDAP *
Database Backend to use – selecionar a opção HDB
Remover a base de dados ao remover o SLAPD? – Escolher a opção SIM
Move Old database – selecionar a opção SIM
Allow LDAPv2 protocol? – selecionar a opção NÃO
Omit OpenLDAP Server Configurate – selecione NÃO.

Caso esses dados não sejam pedidos, executar o comando hostname --fqdn para verificar se o endereço de DNS está correto. Se incorreto, executar o comando dpkg-reconfigure slapd.

2.2 Configurar LDAP para suportar o mapeamento de Usuários.

2.2.1 Instalar documentação do Samba

apt-get install samba-doc

2.2.2 Executar procedimentos de configuração

- No console, executar a seguinte seqüência de comandos: cp -f /usr/share/doc/samba-
doc/examples/LDAP/samba.schema.gz /etc/ldap/schema && gunzip /etc/ldap/schema/samba.schema.gz e teclar <enter>.
- Editar o arquivo de configuração /etc/ldap/slapd.conf e incluir a linha include
/etc/ldap/schema/samba.schema abaixo da linha include /etc/ldap/schema/inetorgperson.shema. -
- Salvar a alteração.
- Criar um arquivo de nome com o conteúdo semelhante abaixo, substituindo o
valor de dc de acordo com a configuração do servidor LDAP da unidade (o exemplo trata do domínio ueba.com.br):

dn: ou=idmap,dc=ueba,dc=com,dc=br
changeType: add
objectClass: organizationalUnit
ou: idmap

- Salvar o arquivo.
- Na tela digitar o seguinte comando:

ldapmodify –x –W –f ldap.ldif –D “cn=admin,dc=ueba,dc=com,dc=br”

Atenção: Deve-se substituir o campo dc pelo correspondente da instalação do LDAP da unidade.
- Informar a senha do administrador do LDAP.
- Digitar o comando invoke-rc.d slapd restart para reiniciar o servidor OpenLdap



3. Instalar e configurar a máquina no domínio

3.1 Instalar e configurar kerberos

apt-get install krb5-config krb5-doc

Será pedido os seguintes dados:
- Realm Kerberos: ueba.com.br
- Servidores Kerberos: teste.ueba.com.br
- Servidor administrativo: teste.ueba.com.br

3.2 Instalar e configurar SAMBA e Winbind

3.2.1 Instalar SAMBA em Winbind

apt-get install samba winbind

3.2.2 Configurar SAMBA para usar o Kerberos e Winbind

# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = UEBA
netbios name = teste2
realm = ueba.com.br

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


#"security = user" is always a good idea. This will require a Unix account
#in this server for every user accessing the server. See
#/usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
#in the samba-doc package for details.
#security = user
security = ADS

# You may wish to use password encryption. See the section on
# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
encrypt passwords = true

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

# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
allow trusted domains = no
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash

#The following was the default behaviour in sarge,
#but samba upstream reverted the default because it might induce
#performance issues in large organizations.
#See Debian bug #368251 for some of the consequences of *not*
#having this setting and smb.conf(5) for details.
winbind use default domain = yes
winbind enum groups = yes
winbind enum users = yes
winbind nested groups = yes

3.2.3 Configurar arquivo /etc/nsswitch.conf, editando as seguintes linhas

passwd        compat        winbind
groups        compat        winbind
shadow        compat        winbind

3.2.4 Adicionar autenticação winbind ao PAM, para permitir que o acesso do usuário ao console web do Curupira

3.2.4.1 Adicionar a seguinte linha no arquivo /etc/pam.d/common-account:

account     sufficient    pam_winbind.so

3.2.4.2 Adicionar a seguinte linha no arquivo /etc/pam.d/common-auth:

auth        sufficient    pam_winbind.so

3.2.5 Reiniciar Winbind e Samba

/etc/init.d/winbind restart
/etc/init.d/samba restart

3.2.6 Verificar se a máquina está autenticando no domínio, através dos seguintes comandos:

wbinfo -t
net rpc testjoin
wbinfo -u


4 Instalar subversion, para baixar os fontes do pykota

apt-get install subversion-tools



5 Baixar, instalar e configurar o Pykota

Uma das dependências do Curupira é o pykota, responsável pela contagem de impressões.

5.1 Resolver dependências

Primeiramente, deve-se resolver as dependências:

apt-get install python-pygresql python-pysqlite2 python-mysqldb python-egenix-mxdatetime python-ldap python-osd python-pysnmp4 python-jaxml python-reportlab python-imaging pkpgcounter python-pam netatalk

5.2 Baixar e instalar pkipplib

Uma das dependências do pykota é o pkipplib, que não está nos repositórios do Debian e faz parte do desenvolvimento do pykota. Para baixá-lo e executá-lo, deve-se executar os seguintes comandos:

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

5.3 Baixar e instalar pykota

Resolvidas as dependências do pykota, agora podemos baixá-lo e instalá-lo:

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

5.4 Configurar CUPS para usar o Pykota

5.4.1 Copiar backend do Pykota para a pasta de backends do CUPS, e dar permissões de acesso ao Pykota

rm /usr/lib/cups/backend/cupspykota
cp /usr/share/pykota/cupspykota /usr/lib/cups/backend
chmod 755 /usr/lib/cups/backend/*

5.4.2 Adicionar backend cupspykota às impressoras instaladas no CUPS

Deve-se editar o arquivo /etc/cups/printers.conf e substituir a linha

DeviceURI socket://[ip_impressora]

por:

DeviceURI cupspykota://socket://[ip_impressora]

5.5 Copiar arquivos de configuração do Pykota para a pasta /etc/pykota

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

5.6 Reiniciar CUPS

/etc/init.d/cups restart



6 Baixar e instalar as demais dependências do curupira

Instalado o pykota, agora deve-se instalar as demais dependências do Curupira.

6.1 Baixar e instalar o pacote python-module-pysnmp

O pacote python-module-pysnmp não está disponível nos repositórios do Debian Lenny, portanto faz-se necessário que se baixe o referido pacote do Portal do Software Público, instalando-o em seguida através do seguinte comando

dpkg – i python-module-pysnmp_3.4.2-1_all.deb

6.2 Instalar as demais dependências via apt-get

As demais dependências do Curupira estão disponíveis nos repositórios do Debian Lenny, sendo possível instalá-las via apt-get:

apt-get install postgresql-8.3 apache2.2-common apache2 openssl libapache2-mod-
auth-pam php5 php5-ldap libapache2-mod-php5 php5-pgsql php5-gd ldap-utils
python-module-pysnmp sudo samba winbind



7 Conversão dos fontes para instalação no Debian Lenny

A conversão se faz necessária caso sejam utilizados os fontes disponíveis no portal do software público do governo federal. Caso se utilize o pacote .deb personalizado para o Debian Lenny, não são necessários executar os passos 7.1 a 7.5.

7.1 Baixar e descompactar os fontes do portal do Software Público (http://www.softwarepublico.gov.br)

7.2 Modificar arquivo DEBIAN/control

Neste arquivo deve-se modificar as dependências para o uso do postgresql8.3

Package: curupira
Priority: extra
Section: contrib/admin
Installed-Size: 5848
Depends: postgresql-8.3, apache2-common | apache2.2-common, apache2, openssl,
libapache2-mod-auth-pam, php5, php5-ldap, libapache2-mod-php5, php5-pgsql, php5-
gd, ldap-utils, pykota, pkpgcounter, pkipplib, python-module-pysnmp, sudo,
samba, winbind
Conflicts: sigim, apache, apache-common, php4
Maintainer: daniacs@gmail.com
Architecture: all
Version: 1.4.17
Description: Sistema Gerenciador de Impressao (CURUPIRA):
Sistema WEB para gerenciamento de imprecao e gecacao de relatorios.

7.3 Modificar arquivo DEBIAN/postinst

Deve-se modificar os seguintes trechos:

if [ $eh_versao7 -eq 7 ]; then
invoke-rc.d postgresql restart >/dev/null 2>/dev/null
else
invoke-rc.d postgresql-8.3 restart >/dev/null 2>/dev/null
fi

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

function povoa_pykota() {
local pykota_postgres=/usr/share/pykota/postgresql/pykota-postgresql.sql
echo -n "Criando banco de dados do PyKota"
$psql -h $host -U $psql_admin $banco_admin < \
$pykota_postgres &> $logfile
status $?
}

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

if [ $eh_versao7 -eq 7 ]; then
postgres_conf=/etc/postgresql/pg_hba.conf
else
postgres_conf=/etc/postgresql/8.3/main/pg_hba.conf

7.4 Instalar alien, para converter pacote tar.gz em deb

apt-get install alien

7.5 Converter pacote tar.gz em .deb

Após instalado o alien, podemos converter o pacote tar.gz em .deb através do seguinte comando:

alien -d curupira.tar.gz



8 Instalar curupira

Agora podemos instalar o Curupira, a partir do pacote gerado pelo programa alien.

dpkg -i curupira-1.4.17.deb

- Durante a instalação, será pedida uma série de informações, como país, estado, cidade, etc. Deve-se completar todas as informações pedidas.



9 Modificar arquivos do Curupira

Caso se use os fontes disponibilizados no portal, deve-se modificar os seguintes arquivos após a instalação do Curupira:
- /etc/pykota/insere-usuario
- /var/www/curupira/script/busca_info_rede/usrmgr-ng
- /var/www/curupira/script/function_infos.php

9.1 Modificar o arquivo insere_usuario

9.1.1 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"

9.1.2 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

9.1.3 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

9.1.4 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

9.2 Modificar o arquivo /var/www/curupira/script/busca_info_rede/usrmgr-ng

9.2.1 Alterar as seguintes variáveis

#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=""

9.2.2 Comentar o trecho abaixo e modificar os parâmetros -b e -D do comando ldapsearch

#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;

9.3 Modificar o arquivo /var/www/curupira/function_infos.php, no seguinte trecho:

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

9.4 Modificar o arquivo pega_info_usuario.php, setando as seguintes variáveis

$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

Autor: Samuel Francisco Ferrigo


55 comentários

  • Ac30237744bf612ffb6dec03e61982e6?only path=false&size=50&d=404Eduardo Souza(usuário não autenticado)
    15 de Outubro de 2009, 18:53

     

    Mesmo efetuando as alterações no arquivo postinst ao instalar da um erro na linha 169 não reconhece o caractere ` contido na variavel dentro do IF, teria alguma Solução?

     

     

     

  • De328adf9b9dd8ea59b4b7002de9877c?only path=false&size=50&d=404Adonney Veras(usuário não autenticado)
    29 de Janeiro de 2010, 9:30

     

    Gostaria de saber se é preciso ter um server Windows rolando para que o curupira rode, pois como vi no passo-a-passo ele loga no AD

    • Ac30237744bf612ffb6dec03e61982e6?only path=false&size=50&d=404Eduardo Souza(usuário não autenticado)
      4 de Fevereiro de 2010, 17:23

       

      O curupira é apenas uma interface gráfica desenvolvida em php com alguns scripts em bash, a autenticação é necessária apenas para autenticar os usuarios para o seu tipo de acesso no curupira e, para que um usuario não mude o nome do usuario na rede para utilizar a cota dos outros, o demais ele funciona sem o AD, você pode utilizar o open-ldap para autenticar os users, qualquer duvida pergunta ai.

Curupira atinge 541 inscritos em um dia

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

Autor: Coordenação Software Público