MAL - Memória Auxiliar do Lutieri

sexta-feira, janeiro 26, 2007

Línguas(idioma) no emerge do gentoo

Estava eu tentando instalar o openoffice, firefox no Gentoo e costumo usar a opção -va do emerge.

Vi que apareciam as opções para a compilação e são exibidas também as opções de língua. Tentei algo assim:

USE="pt_BR" emege -va openoffice

mas o emerge não considera essa opção da variável USE para as línguas. Pra resolver isso edite o arquivo /etc/make.conf e sete lá as opções de língua lá:

vi /etc/make.conf

para setar a língua adiciona a seguinte linha no arquivo:


LINGUAS="us pt_BR"


ou sei lá o que você deseja.


Ouuuuuuuu
uma maneira mais fácil é setar ela como a USE:

LINGUAS="pt_BR" emerge -va openoffice



Pronto!

SAPGui para linux

Essa é pra aqueles que precisam usar o SAP no linux e não encontram um client.

Encontrei uma versão java em: ftp://ftp.sap.com/pub/sapgui/java/700r2/

Se não conseguir acessar provavelmente já mudou de versão então retira o diretório da versão do link, nesse caso 700r2.

Por isso você vai precisar do pacote Java JRE.


Baixei a versão pra linux e executei com:

java -jar PlatinGUI-Linux-700r2.jar

Vai ser executado um instalador que vai descarregar os arquivos em /home/usuário/SAPClients/


Vá até a pasta bin e execute o seguinte comando:


./guistart /H/servidor/S/3200


Onde servidor é o endereço do servidor sap. E 3200 é a porta(padrão).


Beleza vai conectar!



Se você quer usar aquela interface amigável onde são exibidas todas as conexões, usa-se o binário guilogon. Porém eu não consegui criar as conexões através da interface dele. Para contornar isso edite ou crie o arquivo connections, como abaixo:

vi ~/.SAPGUI/connections

e adicione as conexões como o exemplo abaixo:



TRN [Playground] : conn=/H/trnsap.mc.duke.edu/S/3200



esse exemplo eu tirei daqui: http://www.oit.duke.edu/techsupport/sap/sapgui/linux/platin.ini

a sintaxe é a mesma do guistart.



Tem mais informações que podem, ou não, ser úteis em: http://www.oit.duke.edu/techsupport/sap/sapgui/linux/index.html

segunda-feira, janeiro 22, 2007

Nome da impressora no CUPS diferente do Nome da impressora no SAMBA

No meu servidor de impressão (CUPS + SAMBA + PYKOTA) tive um certo probleminha com o nome das impressoras...

O samba tinha ela com um nome e o CUPS com outro. No cups, por exemplo, ela se chamava HP2820 e no samba HP LaserJet 2820 PS. Quando ela era instalada no cliente permanecia o nome do samba. Isso acabou se tornando um problema quando eu tinha duas impressoras iguas no mesmo setor. No windows ia ficar HP LaserJet 2820 PS e HP LaserJet 2420 PS(cópia 2). Se não houvessem impressoras iguas no mesmo setor aí tava beleza.. até prefiro o nome do samba. Mas não é essa minha realidade.

Para resolver isso é extremamente simples, vá ao smb.conf e adicione:

force printername = Yes


Encontrei um dúvida sobre isso na lista do samba:
http://lists.samba.org/archive/samba/2004-December/096972.html

smb_auth + squid = furos de segurança(PARTE 2)

Tive um post há um tempo atrás falando do modo como o squid trata os usuários. Relembrando:

Se você tiver uma lista de bloqueio de usuários contendo, exemplo:

joao
maria

e usarmos o modo de autenticação smb_auth e uma ACL assim:

acl usuários_bloqueados proxy_auth -i /etc/squid/usuarios_bloqueados

Temos um problema. Caso o usuário tentar colocar no nome de usuário algo do tipo:

dominio\joao
dominio\\joao
dominio\\\joao

enfim temos 14 variações se não me falha a memória(tem que olhar no post sobre isso).

Ele consegue acesso e deixa de ser o usuário que está na lista de bloqueados. Pois agora ele é dominio\joao e não joao.

Postei um script que criava uma lista com todas as variações de nome de usuário que eu descobri e uma outra maneira de sanar isso que era recompilar o módulo de autenticação com algumas mudanças. Mas logo depois descobri que temos ainda uma terceira opção. Na ACL que contém os usuários bloqueados, ao invés de:

acl usuários_bloqueados proxy_auth -i /etc/squid/usuarios_bloqueados

use:

acl usuários_bloqueados proxy_auth_regex -i /etc/squid/usuarios_bloqueados

Isso vai fazer com que ele considere parte do nome de usuário para ser válido. No caso citado anteriormente. Se o usuário colocar dominio\\joao. Ele vai cair na regra do joao pois contém joao no texto informado.

Mas com isso também podemos criar um problema. Se tu tiver dois usuário na empresa, joao e joaoalberto e colocar na lista de bloqueados joao. estará bloqueando ambos joao's.
¿comprendes?

De repente a melhor alternativa é mudar o modo de autenticação mesmo... ou fazer o que foi proposto no outro post sobre esse assunto.

squid exibe IP da rede interna y otras cositas mas...

Tenho um proxy squid rodando que fornece informações que não são muito interessantes de serem divulgadas.

Quando são consultadas àquelas páginas para mostrar o IP, www.whatsmyip.org, por exemplo, exibe informações do tipo: versão do squid, navegador usado, e o pior: o ip interno do solicitante ao proxy. Se você está na sua rede interna com um IP 192.168.1.204, por exemplo, vai aparecer na página que o seu IP é 192.168.1.204.

Isso ocorre pois no cabeçalho IP é incluído X-Forwarded-For que contém como valor o seu ip interno. Eu li em algum lugar que isso era usado por parte dos provedores não lembro exatamente pra que finalidade. Mas enfim... Isso acaba com a segurança de uma empresa.

Bom... Já faz um certo tempo já que estou procurando uma maneira de esconder as informações que o squid fornece. Recentemente encontrei em alguns sites. Segue a configuração adicional que deve ser colocada no squid.conf:

Bom, uma vez em versões anteriores do squid era usado a seguinte linha para inibir o nome do navegador do proxy do cliente:

fake_user_agent Nutscrape/2.0 (CP/M; 8-bit)

agora apartir das versões 2.alguma coisa usa-se:

header_replace User-Agent Nutscrape/2.0 (CP/M; 8-bit)

Para deixar de exibir o IP interno usa-se:

forwarded_for off

Para que não seja exibida a versão do squid usa-se:

header_access Via deny all

E tem mais alguns header que são interessantes bloquear:

header_access From deny all
header_access Referer deny all
header_access Server deny all
header_access User-Agent deny all
header_access WWW-Authenticate deny all
header_access Link deny all

O all que é usado nesses exemplos acima é um ACL chamada all que são todos os clientes.


Algumas fontes usadas para formar esse post:
http://br.groups.yahoo.com/group/squid-br/message/16500
http://listas.cipsga.org.br/pipermail/sec-br/2001-July/000254.html


Att.

Lutieri G. B.

quinta-feira, janeiro 11, 2007

Kinit failed: Clock skew too great

Estava tentando adicionar meu servidor no domínio quando vi uma mensagem que eu sabia que ela existia mas não a tinha visto ainda.

Se a hora do cliente tiver diferente(em geral 5 minutos) pra mais ou pra menos, da hora do servidor, não é possível trocar os tickets de autenticação do kerberos. E o erro seguinte é apresentado. Acompanhem os comandos abaixo.

[root@printserver ~]# net ads join -U joao
joao's password:
[2006/12/19 18:58:22, 0] libsmb/cliconnect.c:cli_session_setup_spnego(776)
Kinit failed: Clock skew too great
Failed to join domain!

[root@printserver ~]# date
Ter Dez 19 19:01:36 BRST 2006

Comparando com a hora do AD vi que realmente a hora está 10 minutos diferente. Corrigindo:

[root@printserver ~]# date -s 18:49:00
Ter Dez 19 18:49:00 BRST 2006

e agora, tentemos de novo:

[root@printserver ~]# net ads join -U joao
joao's password:
Using short domain name -- DOMINIO
Joined 'PRINTSERVER' to realm 'DOMINIO.COM.BR'

quarta-feira, janeiro 10, 2007

Rapidinhas: Ctrl+Alt+Del no VNC do linux e cannot connect to X server

Eu tenho sérios problemas de memória, eis o motivo desse blog. Nunca lembro como simular control alt e del no vncviewer.

A dica eu encontro sempre no mesmo site:

http://www.novell.com/coolsolutions/qna/1716.html


Pra não precisar acessar o link acima eu já dou a dica:

Aperta F8

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

cannot connect to X server

Cansei de ver essa mensagem quando eu tentava iniciar algum aplicativo gráfico via bash, console, shell, terminal.. entenderam né!?

Pois é. Tentem

export DISPLAY=:0.0


e se funcionar pode colocar no ~/.bash_profile

That's all folks!

Direito para adicionar drivers a impressoras no cups+samba

Tive que vir logo antes que eu esqueça de postar. E considerei mto importante.

Bom to com o meu servidor de impressão rodando legal, eu sei que eu prometi colocar o passo a passo dele aqui, mas não consegui tempo pra fazer ainda, mas vai sair...

Continuando...
To rodando o samba e ele está autenticando no AD do windows. Beleza até aí.

Tive que colocar ele pra autenticar no AD porque do contrário eu não ia conseguir ter os nomes dos usuários na relatório de impressão, mas isso é outra história que fica pra outra hora.

Pois bem! meu maior problema, até alguns minutos atrás, era de adicionar o driver a impressora. Eu criava a impressora no cups e estava fazendo o procedimento via Windows pra adicionar o driver. Que por sinal via Windows é muito mais simples do que via rpcclient. Se alguém quiser informações de como fazer alguma dessas maneiras acesse isso aqui.

Bom, eu estava acessando o compartilhamento do samba com meu usuário que estava no AD. E esse usuário estava na lista printer admin do smb.conf. O que pra mim, daria direito a poder manejar as impressoras. Porém eu não conseguia adicionar o driver a impressora, os campos estavam inativos.

A minha solução estava sendo uma das piores: alterar o mode de autenticação do samba para "user", ao invés de "ADS" e utilizar o usuário root do samba(criado com o smbpasswd). Aí tudo perfeito.

Só que isso estava se tornando um incômodo pra mim, pois por alguns minutos, enquanto eu adionava o driver da impressora como root, eu rezava para alguma entidade pedindo que ninguém mandasse imprimir, do contrário a impressão não seria aceito pois o usuário só existia no AD e não na base de usuários do samba(lembrem-se que eu alterei o modo de autenticação pra "user").

Depois de eu ter adiconado o driver eu voltava para a opção ADS e tudo estava funcionando.
Como eu disse a cada dia estou adicionando mais impressoras no cups, migrando do servidor windows, e para adicionar o driver eu deveria fazer todo este procedimento no final do expediente para não atrapalhar.

Ufa...
Agora vamos a solução.
Antes de tudo:

Uma coisa estava me incomodando: Qualquer comando relacionado com o samba me retornava: "WARNING: The "printer admin" option is deprecated".
E o pior esse printer admin não deixava eu adicionar o driver. Ele não me dava esse direito. Mas vamos continuar...

Descobri lendo a documentação do samba, muiiiitoo completa, que realmente a opção printer admin está obsoleta e devemos dar direito aos usuários usando o net rpc rights.

A documentação sobre direitos no samba encontra-se aqui.

Antes de mais nada, devemos executar essa aplicação como root do samba. Por isso, se você assim como eu usa o modo de autenticação ADS altere para users. Prometo que vai ser a última vez ;-) Não esqueça de restartar o serviço para que entre em vigor.

sete a senha do root do samba, caso ainda não tenha. Antes de perguntar, sim o root do samba é diferente do root do sistema. O samba tem uma base de usuários diferente da base do linux.

smbpasswd root

agora vamos dar privilégio de operador de impressoras ao usuários joão.

net -U root -S localhost rpc rights grant joao SePrintOperatorPrivilege

se tudo der certo vai aparecer: Successfully granted rights.

para listar as permissões desse usuário e conferir se realmente ele recebeu esse direito, use:

net -U root -S localhost rpc rights list joao

Vão ser listadas as permissões dessa criatura.

Para remover algum direito é simples também, use revoke ao invés e grant(como no sql):

net -U root -S localhost rpc rights revoke joao SePrintOperatorPrivilege

Isso dá direito de adicionar os drivers às impressoras compartilhadas pelo samba. Se quer saber quais os outros direitos possíveis para os usuários leia a documentação sobre direitos linkada acima.

Agora sim, pode voltar pro modo de autenticação usado e reiniciar o samba. Pronto.

Só pro lembrar na documentação diz que esse direito é exatamente a mesma coisa que o parâmetro printer admin do smb.conf.

Porém com o printer admin não funciona. Sei lá...

To cansado de digitar já.. chega pra hoje....

Ahhh ia esquecendo.. para adicionar os drivers via windows ou rpcclient(que eu uso quando eu já tenho os drivers no servidor) acessem o primeiro link que tem no post.. lá ensina os dois procedimentos, tanto via APW(assistente de Impressoras do Windows) quanto via rpcclient.

terça-feira, janeiro 09, 2007

Rapidinha: horários do sarg

Há alguns posts anteriores eu publiquei umas maneiras de converter aqueles números gigantes no início do access.log do squid que representam a hora do acesso, mas na verdade é o número de segundos transcorridos desde a meia noite da segunda-feira 1º de Janeiro de 1970. Bom, isso não importa, o que importa é que o banco Real dá 10 dias no cheque especial :-)

Nãoo.. isso também não importa.

Descobri esses dias que pode ser usado o próprio sarg para mostrar a hora e data do acesso em formato legível.

Use:

sarg -convert

Vai listar o access.log na tela com as horas e datas humanamente legíveis.

Podem ser usadas mais algumas várias opções, por exemplo:

sarg -convert -u joao -s www.terra.com.br -l /var/log/squid/access.log.3

Vai listar os acessos do usuário joao ao site do terra que se encontram em um arquivo de log diferente(access.log.3)

Mais opções podem ser obtidas com: sarg -h

Acesso ao PgSQL sem senha

Utilizo o fantástico sistema de cotas para impressão, no cups, pykota. Ele usa uma base de dados em postgresql para armazenar informações sobre cotas, usuários, impressoras e histórico. Pois bem, montei um shell script para que é responsável pelo backup do servidor. Necessitava fazer um dump do banco do pykota na hora do backup.

O comando utilizado pra fazer o dump é o seguinte:

pg_dump BancoDeDados -U Usuário > pgsql.dump
gzip pgsql.dump.gz

Simples.

O problema é que, diferente do mysql_dump, não pode ser informada a senha no comando. Logo após executar o pg_dump vai ser perguntada a senha do usuário.

Para que isso seja solucionado encontrei informações de que deve ser criado um arquivo na pasta home do usuário, que vai executar o backup, chamado .pgpass

Nesse arquivo deve conter a seguinte linha:


servidor:porta:bancodedados:usuário:senha

que no meu caso ficou assim:

localhost:5432:pykota:pykotaadmin:123456


As permissões do arquivo devem ser alteradas para 0600(chmod 0600 ~/.pgpass)


Prontinho! O pg_dump vai funcionar sem pedir a senha.

Essas informações foram retiradas do próprio site do PostgreSQL: http://www.postgresql.org/docs/8.1/interactive/libpq-pgpass.html



Chat with Lutieri G. B.

Subscribe in a reader