quinta-feira, agosto 24, 2006

Autenticando o acesso ao webserver no AD

Hoje precisei fazer uma coisa interessante: implementar o controle de acesso a um diretório do nosso site departamental realizando a autenticação no Active Directory. O servidor é um Suse 10.1 e a versão do Apache é 2.2.0. Depois de perder um certo tempo pesquisando cheguei à seguinte configuração funcional:


Alterações no /etc/apache2/default-server.conf:

AuthType Basic
AuthName "LDAP Auth"
AuthBasicProvider ldap
AuthLDAPURL ldap://172.16.X.X:389/OU=XXX,OU=XXX,OU=XXX,OU=XXX,dc=XXX,dc=XXX,dc=XX,dc=br?sAMAccountName?sub?(objectClass=user)
AuthLDAPBindDN cn=usuarioparaconsulta,ou=XXX,ou=XXX,ou=XXX,dc=XXX,dc=XX,dc=XX,dc=br
AuthLDAPBindPassword minhasenha
AuthName "Acesso restrito aos usuarios do setor XXX. Informe o mesmo login/senha utilizado na rede."
AuthzLDAPAuthoritative off
require valid-user


Se quisermos usar restrição por um grupo específico, podemos fazer o seguinte:


# Ao adicionar/remover usuarios do grupo restrito do AD,
# lembre-se de executar um rcapache reload
AuthType Basic
AuthName "LDAP Auth"
AuthBasicProvider ldap
AuthzLDAPAuthoritative Off
AuthName "Acesso restrito aos ADMINISTRADORES DE REDE. Informe o mesmo login/senha utilizado na rede."
AuthLDAPURL ldap://172.16.X.X:389/OU=XXX,OU=XXX,OU=XXX,OU=XXX,dc=XXX,dc=XXX,dc=XX,dc=br?sAMAccountName?sub?(objectClass=user)
AuthLDAPBindDN cn=usuarioparaconsulta,ou=XXX,ou=XXX,ou=XXX,dc=XXX,dc=XX,dc=XXX,dc=br
AuthLDAPBindPassword minhasenha
require ldap-group CN=usuarios_restritos_cti,OU=XXX,OU=XXX,OU=XXX,DC=XXX,DC=XXX,DC=XXX,DC=br



Algumas informações foram obfuscadas por razões óbvias.


Foi necessário incluir as duas linhas abaixo no /etc/apache2/sysconfig.d/loadmodule.conf:
LoadModule ldap_module /usr/lib/apache2-prefork/mod_ldap.so
LoadModule authnz_ldap_module /usr/lib/apache2-prefork/mod_authnz_ldap.so

Também foi preciso adicionar à variável APACHE_MODULES do /etc/sysconfig/apache2 as seguintes strings: "ldap" e "authnz_ldap", ficando assim:
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php5 ldap authnz_ldap"




Além

segunda-feira, agosto 07, 2006

Convertendo um PDF para JPEG

Encontrei uma forma de converter um arquivo no formato PDF para imagens JPEG (uma por página do PDF) usando o Ghostscript:
gs -r300 -sDEVICE=jpeg -sOutputFile=./pagina-%04d.jpeg -dBATCH -dNOPAUSE arquivo_a_ser_convertido.pdf


Update: Hoje (22/11/2006) precisei rotacionar e redimencionar as imagens geradas pelo comandinho acima. Usei o convert, que faz parte do pacote do ImageMagick. Para converter todas as imagens usei o seguinte:
for i in pag*; do convert -rotate 90 -resize 800x600 "$i" "conv_$i" ; done






domingo, agosto 06, 2006

Desmontando o CD/DVD à la Windows

Usuários novatos não se conformam com a necessidade de desmontar um CD/DVD para que possam removê-lo pressionando o botão "eject" do drive. E eu até que os entendo, pois é assim que eles estão acostumados a fazer há anos. Não adianta usar os argumentos técnicos, eles simplesmente querem que funcione da maneira que eles esperam. Se você não quer decepcioná-los, acrescente a linha abaixo no seu /etc/sysctl.conf
dev.cdrom.lock=0
Essa dica eu encontrei no Planeta Ubuntu Brasil

sexta-feira, agosto 04, 2006

Tecla / e ? do teclado ABNT2 em um HP Proliant M370 via FreeNX

Tive que resolver um probleminha chato hoje. Precisava acessar remotamente um HP Proliant M370 via FreeNX. O teclado dessa máquina é padrão americano e o da minha estação é um ABNT2. Ao realizar o acesso remoto meu teclado não funcionava corretamente, o que era de se esperar, visto que o KDE estava configurado para o teclado padrão americano.

Pensei que meu único trabalho seria acessar o Centro de Controle do KDE e adicionar um novo layout para o teclado ABNT e depois realizar o chaveamento do teclado desejado sempre que usasse a máquina local ou remotamente (é adicionado um ícone na bandeja da barra de tarefas para realizar essa troca rápida de layouts).

Fiz isso e funcionou quase tudo. Quase. A bendita tecla da barra ("/") e interrogação ("?") não funcionou. Ficou muda.

Depois de alguns (para dizer a verdade, vários) minutos pesquisando no Google descobri que era necessário adicionar uma nova linha relacionada a essa tecla no arquivo /etc/X11/xkb/keycodes/xfree86. Abaixo, em destaque, a linha adicionada:
xkb_keycodes "abnt2" {
include "xfree86(basic)"
<BKSL> = 94;
<AC12> = 51;
<KPPT> = 134;
<AB11> 123;
};


As configurações do meu /etc/X11/xorg.conf não sofreram alterações:
Section "InputDevice"
Driver "kbd"
Identifier "Keyboard[0]"
Option "Protocol" "Standard"
Option "XkbLayout" "br"
Option "XkbModel" "abnt2"
Option "XkbRules" "xfree86"
EndSection