terça-feira, novembro 25, 2008

Instalação do Zoneminder no Centos

Instale o pacote do rpmforge para centos

Instale os pacotes e dependências abaixo

yum install mysql-server mysql php-mysql mysql-devel libjpeg-devel pcre-devel subversion ffmpeg perl-Archive-Tar perl-MIME-Lite perl-MIME-tools gcc gcc-c++ perl-Time-HiRes gnutls-devel perl-Date-Manip perl-PHP-Serialization ntp

Habilite o mysql e apache para inicializar pelo init.d

chkconfig mysqld on
chkconfig httpd on
chkconfig ntpd on
/etc/init.d/mysqld start
/etc/init.d/ntpd start
/etc/init.d/httpd start


Instale o Zoneminder

Baixe e descompacte a última versão

wget http://www2.zoneminder.com/downloads/ZoneMinder-1.24.1.tar.gz
tar -xvzf ZoneMinder-1.24.1.tar.gz
cd ZoneMinder-1.24.1

Verifique as dependencias e compile o fonte

./configure --with-webdir=/var/www/html/zm --with-cgidir=/var/www/cgi-bin --with-ffmpeg
make
make install

Crie a base do mysql e dê as permissões necessárias

mysql
mysql> CREATE DATABASE `zm` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
mysql> source db/zm_create.sql;
mysql> GRANT USAGE ON * . * TO 'zmuser'@'localhost' IDENTIFIED BY 'zmpass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;
mysql> GRANT SELECT , INSERT , UPDATE , DELETE ON `zm` . * TO 'zmuser'@'localhost';

Copie o init.d do zoneminder e inicie o zoneminder

cp scripts/zm /etc/init.d
chkconfig --add zm
chmod +x /etc/init.d/zm
/etc/init.d/zm start

quinta-feira, março 27, 2008

FreeBSD - PAM autenticando no LDAP

Porque usarei PAM?

O PAM permite que inúmeras aplicações (squid,apache,postfix,etc..) autentiquem em sua base de usuários sem ter que configurar cada uma delas para a autenticação, no meu caso na base LDAP.

FreeBSD e PAM

O FreeBSD suporta a autenticação do PAM no LDAP desde a versão 5.1. A minha necessidade foi quando um servidor de e-mail, necessitava da permissão de leitura e escrita no home do usuário e sendo que o servidor LDAP não estava na mesma máquina.

Instalando os pacotes necessários

* Pressuponho que você já tenha uma base LDAP configurada e populada.
Adicionamos os pacotes nss_ldap e pam_ldap
#pkg_add -rv nss_ldap pam_ldap

Ou se preferir via ports
# cd /usr/ports/net/nss_ldap/
# make install clean
# cd /usr/ports/security/pam_ldap/
# make install clean


Configurando

Devemos agora configurar nosso ldap.conf e nss_ldap.conf. Copie os originais
#cp /usr/local/etc/nss_ldap.conf.dist /usr/local/etc/nss_ldap.conf
#cp /usr/local/etc/ldap.conf.dist /usr/local/etc/ldap.conf

Abra ele com seu editor preferido e altere as seguintes linhas de acordo com suas configurações dos 2 arquivos (nss_ldap.conf e ldap.conf

- host 127.0.0.1
- base dc=padl,dc=com
- rootbinddn cn=manager,dc=padl,dc=com ( Esta tem que ser descomentada)


Crie o arquivo ldap.secret com a senha do seu "Manager ou Admin" da sua base ldap e de permissão de leitura e escrita somente para o root
# echo 'minhasenha' > /usr/local/etc/ldap.secret
# chmod 600 /usr/local/etc/ldap.secret

Abra seu arquivo /etc/pam.d/system e adicione a linha abaixo
auth sufficient /usr/local/lib/pam_ldap.so no_warn try_first_pass
antes desta "auth required pam_unix.so no_warn try_first_pass nullok".

Edite agora seu /etc/nsswitch.conf alterando as linhas
group: compat -> group: files ldap
passwd: compat -> passwd: files ldap

Testando

Para verificar se tudo ocorreu bem um simples id deverá retornar seu usuário da base ldap
#id nomedousuario

Se não funcionar verefique seu messages a caça de algum erro.
Se mesmo assim não funcionar, rode seu ldap em modo debug provavelmente seu ldap está "bindando de forma errada" (usuário, senha, base).

Problemas e Soluções

Ao reiniciar a máquina o slapd demorava quase 2 minutos para subir.O que acontecia?? Percebi que o daemon ao iniciar sobe com o usuário slapd, a minha configuração do pam manda ele procurar no ldap mais se ele não está de pé como vai achar?? Após muitas horas de google cheguei a solução.

Troquei no meu nss_ldap.conf a opção bind_policy de hard para soft. Logo se o ldap falhar ele não tentará conectar várias vezes e retorna um erro de conexão.

Referências
Quick and dirty FreeBSD 5.x and nss_ldap mini-HOWTO

quarta-feira, janeiro 16, 2008

Squid sem cache

Tudo bem que o squid tem o principal intuito de prover cache, mais em algumas situações, como AD + Dansguardian + Squid, precisamos de 2 instâncias do squid e uma delas sem cache. Para desabilitar o cache basta usar no seu squid.conf

cache_dir null /null

#squid -k parse
#squid -k reconfigure