Instalação e Configuração do Gerente e do Agente CACIC à partir do código fonte.
Caso você esteja com coragem para confiar em um pacote pré construído e nos meus scripts de configuração há um pacote disponível em:
http://www.linuxti.pro.br/programs/cacic/cacic-Jun2005-i486-2.tgz.
Caso não seja tão corajoso assim tentarei explicar aqui como instalar o gerente cacic em um servidor slackware à partir dos fontes.
A princípio, utilizar-me-ei de uma instalação mínima, pois assim, creio que suprirei as dúvidas de qualquer usuário slackware que queira fazer sua instalação do cacic.
Esse tutorial está considerando a instalação em um servidor novo, dedicado. Alguns arquivos de configuração serão deletados ou editados. Considere sempre fazer backup de tais arquivos antes de proceder às alterações sugeridas neste tutorial caso esteja aplicando em um servidor de produção.
Recomendo que esta instalação seja executada em um servidor de homologação pois as instruções de instalação aqui descritas não prevêm backup de eventuais serviços que possam estar em produção. Utilize os pacotes e scripts de instalação por sua conta e risco.
Esta instalação prevê o uso do servidor FTP proftpd com suporte a SQL.
OBS: CASO VC NÃO ESTEJA INTERESSADO EM UTILIZAR O PROFTPD COM SUPORTE A SQL ESTE MANUAL NÃO É A MELHOR ORIENTAÇÃO PARA SUA INSTALAÇÃO.
Let's mãos à obra:
Comecei por instalar o slackware com os seguintes pacotes:
aaa_base-10.1.0-noarch-2 aaa_elflibs-10.1.0-i486-1 apache-1.3.33-i486-1 autoconf-2.59-noarch-1 automake-1.9.4-noarch-1 bash-3.0-i486-2 bc-1.06-i386-2 bin-9.2.0-i486-2 bin86-0.16.15-i486-1 binutils-2.15.92.0.2-i486-2 bison-1.35-i386-1 byacc-1.9-i386-1 bzip2-1.0.2-i486-5 coreutils-5.2.1-i486-1 cxxlibs-5.0.6-i486-1 devs-2.3.1-noarch-21 diffutils-2.8.1-i386-1 e2fsprogs-1.35-i486-1 etc-5.1-noarch-9 findutils-4.1.7-i386-1 flex-2.5.4a-i486-2 gawk-3.1.4-i486-1 gcc-3.3.4-i486-1 gcc-g++-3.3.4-i486-1 glibc-2.3.4-i486-1 glibc-i18n-2.3.4-noarch-1 glibc-solibs-2.3.4-i486-1 glibc-zoneinfo-2.3.4-noarch-1 gmp-4.1.4-i486-1 grep-2.5-i386-2 groff-1.17.2-i386-3 gzip-1.3.3-i386-2 hdparm-5.8-i486-1 infozip-5.51-i486-1 kernel-headers-2.4.29-i386-1 kernel-ide-2.4.29-i486-1 kernel-modules-2.4.29-i486-1 less-382-i486-1 libtool-1.5.10-i486-1 lilo-22.5.9-i486-2 links-2.1pre15-i486-1 logrotate-3.6.8-i486-1 lsof-4.72-i486-1 lynx-2.8.5rel.1-i486-2 m4-1.4.2-i486-1 make-3.80-i386-1 man-1.5m2-i486-1 man-pages-1.64-noarch-1 mhash-0.9.1-i486-1 module-init-tools-3.1-i486-1 mysql-4.0.23a-i486-1 ncurses-5.4-i486-2 openssh-3.9p1-i486-1 openssl-0.9.7e-i486-3 openssl-solibs-0.9.7e-i486-3 pciutils-2.1.11-i486-5 perl-5.8.6-i486-1 php-4.3.10-i486-1 pkgconfig-0.15.0-i486-1 pkgtools-10.1.0-i486-4 procps-3.2.3-i486-1 proftpd-1.2.10-i486-2 readline-4.3-i486-3 reiserfsprogs-3.6.18-i486-1 sed-4.0.9-i486-2 shadow-4.0.3-i486-11 slocate-2.7-i486-3 smartmontools-5.30-i486-1 strace-4.5.4-i486-1 sudo-1.6.8p6-i486-1 sysklogd-1.4.1-i486-9 sysvinit-2.84-i486-51 tar-1.15.1-i486-1 tcpdump-3.8.3-i486-2 tcpip-0.17-i486-31 traceroute-1.4a12-i386-2 util-linux-2.12p-i486-1 vim-6.3.007-i486-1 wget-1.9.1-i486-1 zlib-1.2.2-i486-1
Baixando os arquivos necessários
Primeiro, é necessário se cadastrar no site do projeto CACIC para obter uma senha de acesso ao CVS. Para isso acesse:
http://www.governoeletronico.gov.br/cacic/sisp2/mail/acessocodigo.php
Faça o cadastro e aguarde o email para receber seu código de acesso.
Após receber o seu código de acesso, baixe os arquivos de instalação nos links abaixo:
http://softwarelivre.mda.gov.br/cgi-bin/viewcvs.cgi/agente.tar.gz?view=tar
http://softwarelivre.mda.gov.br/cgi-bin/viewcvs.cgi/gerente.tar.gz?view=tar
http://softwarelivre.mda.gov.br/cgi-bin/viewcvs.cgi/*checkout*/agente/Attic/wscript.exe
Crie um diretório para guardar os fontes do agente e do gerente:
root@cacic:~# mkdir -p /usr/src/cacic root@cacic:~# cd /usr/src/cacic
Após baixar os pacotes, descompacte-os
root@cacic:/usr/src/cacic# tar -zxvf agente.tar.gz root@cacic:/usr/src/cacic# tar -zxvf gerente.tar.gz root@cacic:/usr/src/cacic# mv wscript.exe agente
Os requisitos mínimos para instalação do sistema são: Apache, MySQL e Proftpd rodando.
O Apache e MySQL que já vêm na instalação do slackware já estão prontos para uso. Porém, uma vez que teremos o MySQL instalado e rodando podemos utilizar o ftp com mais segurança autenticando os usuários no banco de dados e não em contas do sistema. Para tanto o proftpd precisa ser recompilado com o suporte ao banco de dados.
Instalação do Proftpd
Caso você não tenha disposição para compilar seu proftpd com suporte a SQL, está disponível em http://www.linuxti.pro.br/programs/cacic/protpd-1.2.10-i486-2groo.tgz um pacote compilado do proftpd com suporte a SQL.
Primeiro, vamos desinstalar o proftpd, caso esteja instalado.
root@cacic:/usr/src/cacic# removepkg proftpd
Baixe o pacote e instale com o comando:
root@cacic:/usr/src/cacic#installpkg proftpd-1.2.10-i486-2groo.tgz
Caso esteja disposto a compilar seu próprio pacote siga os passos abaixo.
Crie um diretório para receber os fontes do proftpd que baixaremos do seu repositório favorito de pacotes oficiais do slackware. Eu uso os fontes oficiais, mas vc pode fazê-lo com os fontes mais recentes se preferir, de qualquer outra origem.
root@cacic:/usr/src/cacic# mkdir -p /usr/src/proftpd/etc root@cacic:/usr/src/cacic# cd /usr/src/proftpd
Crie o futuro diretório root do seu sistema ftp
root@cacic:/usr/src/proftpd# mkdir /var/ftp root@cacic:/usr/src/proftpd# chown nobody.nogroup /var/ftp/ -R
Depois crie o diretório que hospedará os módulos agentes (veremos mais para frente o que são os módulos).
root@cacic:/usr/src/proftpd# mkdir /var/ftp/agentes
Baixe o proftpd do seu repositório de fontes do slackware preferido. Você pode escolher um mirror em:
http://www.slackware.it/en/getslack.
Acesse:
http://seu.repositorio.preferido.com/slackware-10.1/source/n/proftpd/
e baixe os arquivos:
_proftpd.tar.gz doinst.sh.gz proftpd-1.2.10.tar.bz2 proftpd-1.2.10.tar.bz2.asc proftpd-SlackBuild slack-desc
Baixe também os seguintes arquivos do / para o diretório etc/
etc/ftpusers etc/proftpd.conf
Podemos deixar o proftpd.conf já pronto para uso caso vc precise reinstalar o pacote do proftpd. Para isto edite o arquivo etc/proftpd.conf com as opções necessárias para o funcionamento à nossa necessidade, ou copie o arquivo como abaixo, também disponível em http://www.linuxti.pro.br/scripts/cacic/proftpd.conf.
# This is a basic ProFTPD configuration file.
# It establishes a single server and a single anonymous login.
# It assumes that you have a user/group "nobody" and "ftp"
# for normal/anonymous operation.
ServerName "UM NOME AMIGÁVEL PRO SEU SERVIDOR"
ServerType standalone
#ServerType inetd
DefaultServer on
DefaultRoot /var/ftp
# Port 21 is the standard FTP port.
Port 21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User nobody
Group nogroup
# This next option is required for NIS or NIS+ to work properly:
#PersistentPasswd off
SystemLog /var/log/proftpd.log
TransferLog /var/log/xferlog
# Normally, we want files to be overwriteable.
<Directory /*>
AllowOverwrite on
</Directory>
# Deny write for users logged as 'agente'
<Limit WRITE>
DenyUser agente
</Limit>
# Authentication type: trying Plaintext First, so Crypt
SQLAuthTypes Plaintext Crypt
# Shows the authentication method.
SQLAuthenticate users
# MySQL conectioon data. Syntax:
# SQLConnectInfo database_name@server database_user password_user
SQLConnectInfo ftp@localhost proftpd DEFINAUMASENHA
# Fields from users table
SQLUserInfo ftpusers login senha uid gid dir shell
# Verify if 'ativo' field is = 's'
SQLUserWhereClause "ativo='s'"
# Cria a home do usuario, caso nao existe
SQLHomeDirOnDemand on
# A basic anonymous FTP server configuration.
# To enable this, remove the user ftp from /etc/ftpusers.
#<Anonymous ~ftp>
# RequireValidShell off
# User ftp
# Group ftp
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
#
# # Limit the maximum number of anonymous logins
# MaxClients 50
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayFirstChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
# <Limit WRITE\>
# DenyAll
# </Limit\>
#
# # An upload directory that allows storing files but not retrieving
# # or creating directories.
# <Directory incoming/*>
# <Limit READ>
# DenyAll
# </Limit>
#
# <Limit STOR>
# AllowAll
# </Limit>
# </Directory>
#
#</Anonymous>
O arquivo proftpd.SlackBuild é um script de criação do pacote .tgz. Edite-o ao seu gosto, não esquecendo de alterar a opção do configure para o suporte ao módulo para sql, ou baixe-o já pronto em http://www.linuxti.pro.br/scripts/cacic/proftpd.SlackBuild.
altere de:
./configure \ --prefix=/usr \ --sysconfdir=/etc \ --enable-autoshadow \ --localstatedir=/var/run \ --with-modules=mod_readme:mod_ratio:mod_tls:mod_wrap \ $ARCH-slackware-linux
para:
./configure \ --prefix=/usr \ --sysconfdir=/etc \ --enable-autoshadow \ --localstatedir=/var/run \ --with-modules=mod_readme:mod_ratio:mod_tls:mod_wrap \ --with-modules=mod_sql:mod_sql_mysql \ --with-libraries=/usr/lib/mysql/lib \ --with-includes=/usr/include/mysql \ $ARCH-slackware-linux
Execute o script de criação do pacote:
root@cacic:/usr/src/proftpd# sh proftpd.SlackBuild
Fique atento a erros de compilação, o script não está preparado para tratar erros. Caso tudo corra bem, prontinho. vc tem agora um pacote tgz do proftpd em /tmp.
Instale o pacote:
root@cacic:/usr/src/proftpd# installpkg /tmp/proftpd-1.2.10-i486-2.tgz
O arquivo /etc/proftpd.conf.new está quase pronto para uso com o acesso SQL. Edite-o e renomeie-o para /etc/proftpd.conf e alterando os dados de usuário, senhas e outras personalizações. Basicamente, nome de usuário e senha de acesso ao banco de dados (parâmetro SQLConnectInfo),e nome do servidor (parâmetro ServerName).
Salve o arquivo e pronto. Está pronto para rodar.
root@cacic:/usr/src/proftpd# proftpd root@cacic:/usr/src/proftpd# ps ax | grep proftpd 19851 ? Ss 0:00 proftpd: (accepting connections) 19853 pts/0 S+ 0:00 grep proftpd
Ainda não podemos testar, pois os bancos de dados de senhas não foram criados. Já já testaremos.
Instalando e configurando o MySQL
O MySQL que já vem com o slack está pronto para o uso.
Caso vc ainda nao tenha instalado instale-o à partir do diretório ap do seu cd:
root@cacic:~# installpkg /mnt/cdrom/slackware/ap/mysql-4.0.23a-i486-1.tgz
Agora é só rodar o script de init:
Verifique se o mesmo tem permissão de execução, se não tiver:
root@cacic:~# chmod +x /etc/rc.d/rc.mysqld root@cacic:~# /etc/rc.d/rc.mysqld start
Se for a primeira execução você receberá o erro:
root@cacic:~# Starting mysqld daemon with databases from /var/lib/mysql STOPPING server from pid file /var/run/mysql/mysql.pid 050930 19:23:27 mysqld ended
=P Não se desespere
Execute os seguintes comandos:
root@cacic:~# su - mysql mysql@cacic:~$ mysql_install_db
Ele deve retornar:
Preparing db table Preparing host table Preparing user table Preparing func table Preparing tables_priv table Preparing columns_priv table Installing all prepared tables 050930 19:31:31 /usr/libexec/mysqld: Shutdown Complete To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h cacic password 'new-password' See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory: cd sql-bench ; perl run-all-tests Please report any problems with the /usr/bin/mysqlbug script! The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at https://order.mysql.com
E então:
mysql@cacic:~$ exit
Calma, não priemos cânico. Vamos criar um arquivo my.cnf e acrescentar uma entrada para geração de logs
root@cacic:~# cd /etc/ root@cacic:~# cp my-small.cnf my.cnf
Edite o arquivo my.cnf e adicione a seguinte linha na seção [mysqld]:
log=/var/log/mysqld/mysqld.log
agora crie o diretório dos logs e determine as permissões:
root@cacic:/etc# mkdir /var/log/mysqld root@cacic:/etc# chown mysql:mysql /var/log/mysqld/
Agora sim:
root@cacic:/etc# /etc/rc.d/rc.mysqld start
Testemos se os logs foram criados:
root@cacic:/etc# tail -n 10 /var/log/mysqld/mysql.log /usr/libexec/mysqld, Version: 4.0.23a-log, started with: Tcp port: 3306 Unix socket: /var/run/mysql/mysql.sock Time Id Command Argument
E, seguindo as instruções da mensagem do comando mysql_install_db vamos criar a senha de root do mysql:
root@cacic:~# /usr/bin/mysqladmin -u root -h localhost password 'PONHASUASENHAAQUI'
Agora testando:
root@cacic:~# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 to server version: 4.0.23a Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; ---------- Database ---------- mysql test ---------- 2 rows in set (0.00 sec) mysql> exit Bye root@cacic:/etc#
O MySQL tá rodando e redondo.
Criando o banco de dados para os usuários do Servidor ftp.
Para criar o banco de dados onde serão cadastrados os usuários do seu servidor você pode baixar o script de criação disponível em http://www.linuxti.pro.br/scripts/cacic/ftp.sql e executá-lo com o comando:
root@cacic:/etc# mysql -u root -p < ftp.sql
Ou, seguir abaixo a sequência de comandos:
root@cacic:/etc# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 to server version: 4.0.23a Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database ftp; Query OK, 1 row affected (0.00 sec) mysql> use ftp; Database changed mysql> create table ftpusers ( -> nome varchar(255) not null default 'anônimo' -> login varchar(20) not null unique, -> senha varchar(20) not null, -> uid int(10) unique auto_increment, -> gid int(10), -> ativo char(1) not null default 's', -> dir varchar(255) not null, -> shell varchar(255) not null, -> email varchar(255)); Query OK, 0 rows affected (0,00 sec)
Agora vamos dar poderes ao usuário que o proftpd usará para se conectar ao banco de dados e já criar as contas dos usuários para o CACIC.
A instrução SQL abaixo, dá totais poderes a um usuário no banco de dados ftp. Estes dados devem corresponder à entrada do seu proftpd.conf. lembra disso?:
# MySQL conectioon data. Syntax: # SQLConnectInfo database_name@server database_user password_user SQLConnectInfo ftp@localhost proftpd DEFINAUMASENHA
Pois são esse usuário e senha que deve conter a instrução:
mysql> grant all privileges on ftp.* to CRIEUMNOMEPARAUMUSUARIO@localhost identified by 'DIGITEUMASENHA'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
Agora vamos inserir na tabela ftpusers os dados dos usuários para download apenas (agente) e upload e manutenção (gerente) para o serviço ftp.
mysql> insert into ftpusers values ('ftp upload', 'gerente', 'gerentecacic', 8099, 50, 's', \
'/var/ftp/agentes', '/bin/false', 'suporte@email.com');
mysql> insert into ftpusers values ('ftp download', 'agente', 'agentecacic', 8100, 50, 's', \
'/var/ftp/agentes', '/bin/false', 'suporte@email.com');
Tá cadastrado.
mysql> exit Bye root@cacic:~#
Para desencargo de consciência, vamos testar a conectividade do ftp. =P
root@cacic:~# ftp localhost Connected to localhost. 220 ProFTPD 1.2.10 Server (SERVIDOR FTP CACIC) [127.0.0.1] Name (localhost:groo): agente 331 Password required for agente. Password:DIGITEASENHAEAPERTEENTER 230 User agente logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp>exit
Funfou? HuHú, é nóis! Teste também com o usuário gerente. Desse mal a gente não apanha mais.
Não funcionou? Verifique os logs do proftpd e do mysql.
Criando o banco de dados do Sistema CACIC.
Dentro do diretório do gerente tem dois scripts sql para criação do banco de dados. São eles:
-alteracoes_bd_cacic.sql -criar_banco_cacic.sql root@cacic:~# cd /usr/src/cacic/gerente
Na versão que eu estou usando nesse tutorial, tive que apagar as seguintes linhas do script alteracoes_bd_cacic.sql uma vez que estavam redundantes com o script criar_banco_cacic.sql:
CREATE TABLE `redes_grupos_ftp` ( `id_ip_rede` varchar(15) NOT NULL default '0', `id_ip_estacao` varchar(15) NOT NULL default '0', `nu_hora_inicio` int(12) NOT NULL default '0', `nu_hora_fim` varchar(12) NOT NULL default '0' ) TYPE=InnoDB; ALTER TABLE `perfis_aplicativos_monitorados` ADD COLUMN `dt_registro` DATETIME DEFAULT NULL; ALTER TABLE `redes` ADD COLUMN `nm_usuario_login_serv_updates_gerente` VARCHAR(20) DEFAULT NULL; ALTER TABLE `redes` ADD COLUMN `te_senha_login_serv_updates_gerente` VARCHAR(20) DEFAULT NULL; ALTER TABLE `unid_organizacional_nivel2` ADD COLUMN `dt_registro` DATETIME DEFAULT '0000-00-00 00:00:00'; ALTER TABLE `gerentes` ADD COLUMN `te_path_repositorio` varchar(100) NOT NULL default ''; ALTER TABLE `gerentes` ADD COLUMN `dt_verifica_updates` date default NULL; INSERT INTO `so` VALUES (9, 'GNU/Linux', 'lnx'); INSERT INTO `so` VALUES (10, 'FreeBSD', 'fbsd'); INSERT INTO `so` VALUES (11, 'NetBSD', 'nbsd'); INSERT INTO `so` VALUES (12, 'OpenBSD', 'obsd');
Você pode baixar em http://www.linuxti.pro.br/scripts/cacic/criar_banco_cacic.sql o script sql já corrigido e importá-lo com o comando:
root@cacic:/usr/src/cacic/gerente# mysql -u root -p < criar_banco_cacic.sql
Ou se tiver baixado os fontes do CVS, edite o arquivo alteracoes_bd_cacic.sql, apague as linhas citadas acima e execute os scripts na sequência:
Criando o banco de dados cacic:
root@cacic:/usr/src/cacic/gerente# echo "CREATE DATABASE cacic" | mysql -u root -p Enter password:
root@cacic:/usr/src/cacic/gerente# mysql -D cacic -u root -p < criar_banco_cacic.sql Enter password: root@cacic:/usr/src/cacic/gerente# mysql -D cacic -u root -p < alteracoes_bd_cacic.sql Enter password:
Agora vamos criar o usuario com poderes totais SOBRE o banco de dados cacic NO MySQL.
root@cacic:/usr/src/cacic/gerente# echo "grant all privileges on cacic.* to CRIEUMNOMEDEUSUARIO@localhost \ identified by 'DEFINAUMASENHA';" | mysql -D cacic -u root -p
Agora (não confunda) vamos criar NO BANCO DE DADOS CACIC, uma conta de usuário a qual será o administrador do sistema cacic.
root@cacic:/usr/src/cacic/gerente# echo "INSERT INTO usuarios (nm_usuario_acesso, te_senha, id_grupo_usuarios) \
VALUES ('admin', PASSWORD('DETERMINEUMASENHA'),'2');" | mysql -D cacic -u root -p
Os bancos de dados já estão prontos.
Agora, faltam poucos ajustes no Apache e no php que vêm compilados na instação do slackware. Vamos aos ajustes:
Configurando o Apache e o PHP.
Por padrão o apache do slackware vem com os módulos do php inabilitados. Para habilitá-los, edite o arquivo /etc/apache/httpd.conf e descomente a linha:
#Include /etc/apache/mod_php.conf
Edite agora o arquivo /etc/apache/php.ini e altere a linha:
register_globals = Off
para:
register_globals = On
Para nosso divertimento vamos também mudar a entrada "error_log" como a seguir:
; Log errors to specified file. error_log = /var/log/php.log root@cacic:/usr/src/cacic/gerente# touch /var/log/php.log root@cacic:/usr/src/cacic/gerente# chown nobody.nobody /var/log/php.log root@cacic:/usr/src/cacic/gerente# chmod 755 /var/log/php.log
Inicie o apache
root@cacic:/usr/src/cacic/gerente# apachectl start
Testemos-lo:
root@cacic:/usr/src/cacic/gerente# lynx http://localhost/
Funcionou? Ufa! (quer tomar um cafezinho? ligar pra namorada? jogar tetris? depois a gente continua =))
Com todos os requisitos cumpridos, vamos à instalação do gerente.
Copie agora TODOS os arquivos .exe que foram descompactados na pasta /usr/src/cacic/agente para o seu diretório FTP criado anteriormente e altere as permissões.
OBS: Não é necessario copiar todos aqueles arquivos que foram descompactados do arquivos agente.tar.gz. Basta copiar APENAS os arquivos .exe para o repositório FTP.
ATENÇÃO!!!!!!!
Após apanhar muito percebi que definir nesse momento as permissões no diretório e arquivos onde os módulos ficarão disponíveis é crucial. O dono do diretório e arquivos deve ser o usuário configurado como "gerente". Lembra disso:
mysql> insert into ftpusers values ('ftp upload', 'gerente', 'gerentecacic', 8099, 50, 's', \
'/var/ftp/agentes', '/bin/false', 'suporte@email.com');
Esse usuário deve ser o dono do diretório /var/ftp/agentes e seu conteúdo.
Procedamos a cópia, um scriptzinho find num faz mal a ninguém:
root@cacic:/usr/src/cacic/gerente# cd ../agente
root@cacic:/usr/src/cacic/agente# find ./ -name "*exe" -exec cp {} /var/ftp/agentes/ \;
Como não estamos utilizando os usuários do sistema, vamos definir o owner (proprietário) do diretório e arquivos assim:
root@cacic:/usr/src/cacic/agente# chown 8099.ftp /var/ftp/agentes/ -R root@cacic:/usr/src/cacic/agente# chmod -R ugo+rx /var/ftp/agentes
Publique o diretório com os arquivos do gerente:
root@cacic:/usr/src/cacic/agente# cd ../gerente root@cacic:/usr/src/cacic/gerente# cp cacic2/ /var/www/htdocs/ -r
Vamos agora copiar os arquivos para o repositório cacic:
root@cacic:/usr/src/cacic/gerente# cp -a /var/ftp/agentes/*.exe /var/www/htdocs/cacic2/repositorio
Edite o arquivo /var/www/htdocs/cacic2/repositorio/netlogon/chkcacic.ini para os seguintes parâmetros:
root@cacic:/usr/src/cacic/agente# vi /var/www/htdocs/cacic2/repositorio/netlogon/chkcacic.ini
[Cacic2]
ip_serv_cacic=IPDOSEUGERENTE
cacic_dir=cacic2
rem_cacic_v0x=S
Onde IPDOSEUGERENTE é o ip do servidor.
Defina como dono do diretório do sistema gerente o usuário do apache:
O padrão do slackware é nobody.nobody. Mas se você alterou e não lembra ou está fuçando no servidor de alguém, pode descobrir com o comando:
root@cacic:/usr/src/cacic/agente# ps aux | grep httpdOu verificando os parâmetros "User" e "Group" no seu /etc/apache/httpd.conf.
root@cacic:/usr/src/cacic/gerente# chown nobody.nobody /var/www/htdocs/cacic2 -R
Edite o arquivo /var/www/htdocs/cacic2/include/config.php e ALTERE os seguintes paramentros, de acordo com o seu ambiente:
lembra do comando:
mysql> grant all privileges on cacic.* to CRIEUMNOMEDEUSUARIO@localhost \ identified by 'DEFINAUMASENHA';
É esse usuário que vc deve acrescentar aqui.
$nome_bd = "cacic";// Essa variável não deverá ser alterada. $ip_servidor = "localhost";// Altere, caso esteja acessando o bd em outro servidor. $porta = "3306";// Porta tcp do MySQL. Provavelmente não deverá ser alterada. $usuario_bd = "usuario";// Usuário usado para acesso ao bd do cacic. $senha_usuario_bd = "senha";// Utilize a senha configurada
Vamos testar agora se está tudo ok com o gerente:
Nada mais gostoso que usar o lynx pra navegar numa pagina com frames, mas, vc pode utilizar um browser gráfico =P.
Do seu browser favorito acesse:
http://ip.do.seu.servidor/cacic2/
Abriu a página do cacic com os campos de login e senha no frame esquerdo? Preencha com os dados que vc cadastrou na tabela "usuarios" do banco de dados "cacic" no mysql. Já esqueceu? Lembre então, o comando usado foi:
root@cacic:/usr/src/cacic/gerente# echo "INSERT INTO usuarios (nm_usuario_acesso, te_senha, id_grupo_usuarios) \
VALUES ('admin', PASSWORD('DETERMINEUMASENHA'),'2');" | mysql -D cacic -u root -p
Logou? Ufa, parabéns (pra mim... tutorialzinho firmeza neh?)
Não logou... Verifique os logs do mysql e do php.
Se não obtiver nenhuma resposta inteligível, verifique novamente todos os passos da instalação. Principalmente o que diz respeito às permissões dos arquivos do ftp.
Se logou, vambora:
Edite o arquivo /var/www/htdocs/cacic2/ws/get_config.php e altere a linha que contém:
if ($total['total_estacoes'] > 4) // Acima de 4...
Onde "4" é o número máximo de downloads simultâneos. Você pode aumentar ou diminuir de acordo com a capacidade da sua rede.
Configurando o Gerente CACIC.
Após acessar o gerente no endereço http://IP_Servidor_CACIC/cacic2/ logue-se como usuário: "admin".
Configure os seguintes parâmetros:
1. Administração -> Cadastros -> Redes
Aperte o botão:
[Incluir Nova Rede]
E informe:
IP
Máscara
Descrição
(IP do) Servidor de Banco de Dados
{IP do} Servidor de Updates (FTP)
Porta [utilizada pelo FTP]
Usuário do Servidor de Updates (para AGENTE)
Senha para Login
Usuário do Servidor de Updates (para GERENTE)
Senha para Login
Path do Servidor de Updates - {caminho para o diretório agentes, no nosso caso /agentes)
Os demais não são obrigatórios. Preencha se achar conveniente.
Aperte o botão
[Gravar Informações]
O sistema te enviará de volta para a tela "Cadastro de redes". Sua rede recém configurada deve estar disponível. Clique em cima do Endereço que uma tela de detalhes abrirá. Se os dados estiverem corretos haverá uma imagem de dois computadores comunicando-se normalmente (ao lado de Servidor de Updates (FTP)). Caso contrário, tente verificar as configurações e logs do seu servidor FTP.
2. Administração -> Configurar Gerente Configure de acordo com as especificações da empresa. Configure os campos "Servidor de Banco de Dados padrão" e "Servidor de Updates padrão" 3. Administração -> Configurar Agentes
A princípio, como alternativa de debug, marquei como sim as duas primeiras opções. Defina um senha para configurar/atualizar os agentes. Esta senha será necessária para a configuração dos agentes quando instalados nas estações. Também ajustei
Inicio de execução das ações:
- Imediatamente após a inicialização do CACIC
Intervalo de execução das ações:
-A cada 2 horas
Como opção de conhecer melhor o sistema marquei a opção "Marca/Desmarca todas as Ações para todas as Redes abaixo"
4. Administração -> Módulos Configure os dados das coletas desejadas.
Se você está lendo este tutorial, ou nunca instalou o CACIC, ou nunca conseguiu fazer funcionar. =P. Logo, marque todas as ações pra sua rede pois serão mais coisinhas legais pra vc ver gerar relatório. Ou pra dar pau. Ou pra você configurar. Divertir-se, enfim.
5. Manutenção -> Updates de Subredes
Marque todos os arquivos (Marca/Desmarca todos os objetos) e também a opção "Forçar" em cada um deles. Marque também as subredes desejadas. Então clique em "Executar Updates".
ATENÇÃO!!!
Se tudo correr bem no passo 5, a saída na tela deve apresentar os dizeres "Enviando nomedearquivo.exe..". Caso contrário, a possibilidade do seu sistema CACIC funcionar são remotas.
Se a mensagem "Não foi possível enviar NOMEDOARQUIVO.exe!" aparecer, verifique os passos da instalação com especial atenção às permissões do diretório /var/ftp/agentes e ao correto preenchimento dos campos referentes aos usuários ftp no cadastro da rede.
Instalando os Agentes.
Para a confecção deste tutorial, instalei o agente apenas em estações windows XP Pro com todos os service packs aplicados e logado com uma conta de administrador da máquina.
Disponibilize para a estação (via compartilhamento de rede, baixe para o hd ou qualquer outra maneira que lhe apeteça) os arquivos chkcacic.exe (/var/ftp/agentes/) e chkcacic.ini (/var/www/htdocs/cacics/repositorio/netlogon/). Os dois devem estar no mesmo nível de diretório.
Ao executar arquivo chkcacic.exe irá gerar uma pasta C:\cacic2 que irá ser utilizada para o download dos módulos restantes e também abrigará alguns dados do Cacic agente.
Um íconezinho de um cocar aparecerá na sua "system tray" e em alguns segundos vc será intimado a preencher as informações de patrimônio. Após apertar o botão "gravar alterações" você terá disponível nas telas do sistema gerente várias informações da sua estação.
referências:
http://www.linuxit.com.br/section-viewarticle-755.html
http://www.cetico.org/cacic/doku.php?id=instalacao_gerente_e_agente_cacic
http://www.slackware.it/en/
Agradecimentos
Meu patrão que não sabe o tempo que eu gastei fazendo esses pacotes e tutorial.
Sr. Cláudio Borges por ter cedido este espaço e pela confiança de sempre.
Os dois técnicos aqui do trampo (Thiago e Jobson) que fizeram meu trampo quase todo esse mês que eu to apanhando do CACIC.
Ao pessoal que contribui no Wiki e responde às dúvidas na lista.
Ao Ricardo do curso MCSE (pode falar ou c tem vergonha de tah se rendendo ao Bill Gates?) que me apresentou o CACIC.
Sugestões, reclamações, contribuições:

