Escrito por Helio Loureiro
Categoria:

Essa visista à Dallas, na verdade Plano, no Texas, EUA, tem sido bastante interessante, além de uma grande tentação. Os aparatos tecnológicos à disposição atraem pelas funcionalidades e pelo preço. Graças à isso, o xuxu já sofreu um belo upgrade de memória (troquei o pente de 256MB para 512MB), uma nova bateria com 2 horas de duração e uma nova fonte de alimentação.

helio@xuxu:~$ uname -a 
Linux xuxu 2.6.15-26-powerpc #1 Mon Jul 17 19:51:43 UTC 2006 ppc GNU/Linux
helio@xuxu:~$ cat /proc/meminfo | head -7 
MemTotal: 643808 kB
MemFree: 72396 kB
Buffers: 127376 kB
Cached: 206272 kB
SwapCached: 0 kB
Active: 360200 kB
Inactive: 183444 kB

Não bastasse isso, ainda comprei um adaptador de rede USB da Linksys (Linksys USB200M), que não funcionou de cara. No caso, tenho que usar USB pois o meu iBook não tem entrada PCMCIA (isso é chato de vez em quando). Não demorou muito para encontrar alguns links na rede:

Em ambos, aparentemente o módulo asix faria todo o suporte como driver porém:


root@xuxu:~# lsusb
Bus 001 Device 005: ID 13b1:0018 Linksys USB200M 10/100 Ethernet Adapter
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 003: ID 046d:c016 Logitech, Inc. M-UV69a Optical Wheel Mouse
Bus 002 Device 001: ID 0000:0000

root@xuxu:~# modprobe asix
root@xuxu:~# ifconfig usb0
usb0: error fetching interface information: Device not found

root@xuxu:~# dmesg | tail
[ 698.129138] usb 1-1: new full speed USB device using ohci_hcd and address 3
[ 1000.127664] usbcore: deregistering driver asix
[ 1013.215179] usbcore: registered new driver asix
[ 1048.105175] usb 1-1: USB disconnect, address 3
[ 1064.537063] usb 1-1: new full speed USB device using ohci_hcd and address 4
[ 1242.490754] usbcore: registered new driver rtusb
[ 4600.045112] usb 1-1: USB disconnect, address 4
[ 4604.633132] usb 1-1: new full speed USB device using ohci_hcd and address 5
[ 4608.154937] usbcore: deregistering driver asix
[ 4624.399026] usbcore: registered new driver asix

O sistema não chegou a reconhecer. Mas como parece existir um horizonte de possibilidade, vou continuar tentando (mesmo porque o preço fui muito compensador: USD$ 29.99).

 

Outro brinquedo que me chamou a atenção, mais pelo preço que por funcionalidade (também saiu por USD$ 29.99), foi um Wireless G USB Network Adapter da Belkin. Apesar de também ser uma compra no escuro, sem idéia se iria funcionar ou não em Linux e FreeBSD, resolvi arriscar. Após uma rápida busca na rede, encontrei alguns links muito bons:

A última referência, o HOWTO, é excelente. De cara já vi que é um chip da ralink, o mesmo utilizado no DWL-G122 da D-Link. Ainda não fiz funcionar, mas já decidi que também não vou devolver. Agora é arregaçar as mangas e mandar ver.

 

Escrito por Helio Loureiro
Categoria:

Aparentemente a Telefonica mudou de opinião sobre a politica de bloqueio das portas dentro do range dos "well know services". Recentemente realizei um teste por acaso e descobri minha porta 80, 443 e outras completamente disponíveis na rede. Verificando os logs via webalizer, vi que a quantidade de acessos aumento significante. Olhando cuidadosamente os logs, verifiquei que os ataques também. Mas entre os ataques e a portas liberadas, eu prefiro a segunda alternativa.

Escrito por Helio Loureiro
Categoria:

Nesse fim de semana resolvi encarar um desafio diferente. Como disse Miod Vallat, em seu artigo que descreve a aventura no novo port do OpenBSD para a arquitetura AViiONs, acabei tendo a chance de ter mais tempo disponível do que eu esperava. Como não sabia muito bem o que fazer com todo esse tempo disponível, assim como o Miod mas dentro de meu nível de mediocridade (quem sou eu para tentar qualquer port de arquitetura), resolvi experimentar outros sabores de Unix em meu laptop, meu iBook 500, um Macintosh. Como o Linux, utilizando o kernel 2.6.15, continuava com os problemas de alocação de memória, resolvi testar os BSDs quando vi o anúncio do FreeBSD 6.1.

 

De cara descobri que o FreeBSD não suportava a arquitetura powerpc. Apesar de estar descrito no anúncio do release, não foi gerado um cd instalável para versão 6.1, somente 6.0. A versão 6.0 eu já tinha testado na época de seu lançamento. O sistema chega a dar boot, mas para logo após o reconhecimento de hardware. Não busquei muitas alternativas para tentar finalizar a instalação.

Então apontei meus esforços sobre o NetBSD e o OpenBSD.

Baixei todo o release do OpenBSD 3.9 com o wget e armazenei num diretório para instalação. No documento de INSTALL, há uma explicação sobre os procedimentos, principalmente para quem não tem os cds originais. Existe um pequeno iso para dar o boot e iniciar a instalação. Fiz isso e fui brindado com a tela do OpenBSD, com os caracteres em branco e fundo azul (com preto). A instalação ocorreu como na plataforma PC, rápido, fácil e com várias dicas e explicações. Ao final, o sistema retornou ao prompt do OpenBOOT do iBook, já que não estava tão automático assim. Precisei usar um:

boot hd:,ofwboot /bsd 

para conseguir dar o boot no disco. De cara já percebi uma grande diferença em relação ao Linux: lentidão. Os caracteres de boot correram de forma muito mais lenta. Não desanimei e iniciei o ambiente gráfico. O mesmo tinha sido configurado corretamente graças ao Xorg, mas novamente percebi a lentidão do sistema. Continuei e iniciei a instalação dos pacotes para deixar o sistema igual ao que tinha anteriormente, com KDE, OpenOffice, etc. Como não queria utilizar o sistema de ports, que demora muito, usei o pkg_add, configurando somente a variável de ambiente para buscar os pacotes no repositório que eu desejava, no caso foi o ftp://ftp.das.ufsc.br/pub/OpenBSD/3.9/powerpc/ . Mas o que realmente me fez desistir foi o passo seguinte, enquanto o sistema instalava o restante dos pacotes. Descobri que as teclas <Ctrl> e <Alt> não tinham sido mapeadas, o que matava o uso do demais consoles, mas deixei isso para depois para configurar via xmodmap. Resolvi então recuperar o backup do sistema, que fiz ante de apagar tudo. Foi aí que a coisa ficou muito ruim. Enquanto o uso do disco foi intensivo, perdi a resposta do sistema. Simplesmente parada. Tive de esperar até o final da recuperação dos 3,5 GB de backup para retomar o controle. Como isso seria um ponto muito negativo e impactante em meu trabalho, resolvi para a experiência do OpenBSD por ali mesmo e partir para outra tentativa.

Durante o tempo que baixei o OpenBSD já iniciei também o download do NetBSD, release 3.0 para macppc, mas ao invés de utilizar o wget em ftp, utilizei o método de bittorrent, que funciona muito mais rápido. Primeiramente o boot já não funcionou (basta precionar a tecla "C" durante a inicialização do laptop, quando toca o sinal de boot). Fui forçado a utilizar o seguinte comando:

boot cd:,\ofwboot.xcf netbsd.macppc

O sistema inicializou com uma interface em caractér de uma forma mais rápida que o OpenBSD, o que me trouxe um certo alívio em minha escolha. A instalação do NetBSD é em modo texto, mas ao contrário do OpenBSD, muito mais intuitiva, por meio de menus. Segui com o particionamento do disco e instalação do sistema sem problemas. Rebootei para iniciar o novo sistema em disco e... nada. A partição de boot, onde o ofwboot.xcf estaria, não foi encontrada. Tentei buscar o mesmo no disco para inicializar manualmente e... não encontrei. Na instalação do OpenBSD, recebi uma mensagem clara de que isso estava ocorrendo, mas não vi nada na instalação do NetBSD. Busquei na documentação algo relativo a isso e também não encontrei nada que pudesse utilizar. Dei boot via cd no modo "Shell" e tentei encontrar alguma maneira de corrigir o sistema. Não consegui achar a maneira correta e, frustrado, desisti.

Peguei novamente meu cd do Ubuntu para ppc (ou powerpc) e refiz a instalação, que ocorreu muito mais facilmente que os BSDs (ponto positivo, admito). Voltei ao sistema "Brezzy", o corrente, uma vez que utilizava uma versão *testing* do próximo release, "Drapper". Terminada a instalação, que levou umas 10 vezes mais tempo, eu já tinha o sistema utilizável, com ambiente gráfico e tudo mais. Realmente algo a se pensar no quesito usabilidade. Quanto ao gerenciamento de memória, deixei isso pra lá, afinal só a aventura por vários sistemas operacionais que isso me proporcionou, já valeu a pena.

Escrito por Helio Loureiro
Categoria:

Dica para teste de servidor https. Como o mesmo usa uma sessão criptografada, um simples "telnet server 80" não é possível. Eu lembrava de ter feito algo com o openssl, então , buscando na rede, encontrei a forma de fazer isso (thanks google!):

 

$ openssl s_client -connect www.gmail.com:443 -state -debug 
GET / HTTP/1.0 

Fonte: http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html

 

Atualizado em: Mon Jan 28 16:45:37 BRST 2013

Também utilizo bastante a forma abaixo:

(echo -e "GET / HTTP/1.0\n\n"; sleep 1) | \
openssl s_client -connect www.google.com:443 -state

Dessa forma é possível verificar se a página é carregada corretamente ou não de uma forma mais rápida.

Escrito por Helio Loureiro
Categoria:

Um link interessante sobre WPA2 e AES para autenticação com sistema de chaves assimétricas e geração de chaves aleatórias. Substitui com muito mais segurança o factível WEP. Infelizmente sua implementação não é tão fácil assim e nem todos equipamentos funcionam a contento. Mas aqui fica a referência.

Escrito por Helio Loureiro
Categoria:

Diferenças de hardware sempre existiram, mas desde que instalei o Urubuntu, digo, Ubuntu no meu iBook e tudo funcionou exatamente igual ao meu PC, não prestei mais atenção nisso. Até o momento. Brincando com uma DWL-G122, placa Wi-Fi B/G via USB, com revisão de hardware A1, que não é chipset prism e por isso mesmo estava compilando o suporte via ndiswrapper, descobri um pequeno bug na compilação:

 

/usr/src/modules/ndiswrapper/misc_funcs.c:865: 
warning: `regparm' attribute directive ignored 
/usr/src/modules/ndiswrapper/misc_funcs.c:873: 
warning: `__stdcall__' attribute directive ignored 
/usr/src/modules/ndiswrapper/misc_funcs.c:873: 
warning: `regparm' attribute directive ignored 
{standard input}: Assembler messages: {standard input}:2719: Error: Unrecognized opcode: `movl' 
make[2]: *** [/usr/src/modules/ndiswrapper/misc_funcs.o] Error 1 make[1]: *** 
[_module_/usr/src/modules/ndiswrapper] 
Error 2 make[1]: Leaving directory `/usr/src/linux-source-2.6.12' 
make: *** [default] Error 2 

Buscando no arquivo misc_funcs.c, verifiquei que fazia parte da seguinte chamada:

#ifdef CONFIG_X86_64 __asm__ __volatile__("movq %%rsp, %0\n" : "=g"(i)); 
#else __asm__ __volatile__("movl %%esp, %0\n" : "=g"(i)); 
#endif return (void *)i; } 

 

Código assembly de X86... problema. Tentei compreender o dito e buscar um equivalente. Eis que encontrei o valioso link:

http://www-128.ibm.com/developerworks/linux/library/l-ppc/

Agora fica a questão: como reescrever isso para PPC???? Será que a brincadeira vale algum tempo em cima disso?

Escrito por Helio Loureiro
Categoria:

 Linux xuxu 2.6.12-10-powerpc #1 Mon Jan 16 17:38:57 UTC 2006 ppc GNU/Linux 

Finalmente criei coragem e instalei o Ubuntu em meu laptop, um iBook. Primeiramente fiz um teste com o live cd, que funcionou bem (basta apertar "c" durante o boot do MacOSX para selecionar boot pelo cd). Fiz o bom e velho backup (tar cvf - -C / . | ssh backupserver -l helio "dd of=/usr/local/BKP/xuxu-fullbackup-macosx.tar") e mandei ver. Apanhei um pouco com o particionamento até descobrir que a mídia do cd de instalação estava ruim. Passado por isso, tudo correu normalmente e sem sustos.
Infelizmente acabei errando a restauração do backup e apaguei tudo o que estava salvo, perdendo duas semanas de trabalho e mails, ou seja, nada preocupante. Depois de tudo instalado, atualizei o sistema para o Kubuntu, a versão do Ubuntu baseada no ambiente kde, uma vez que concordo com Linus Torvalds sobre o fato do ambiente Gnome ser extremamente espartano em relação à usabilidade.
Os resultados foram:

  • Processador: PowerPC 400 MHz (new world)
  • Memória: 384 MB
  • Modem: Não funciona
  • Som: Não funciona
  • Serial USB: OK
  • Mouse touchpad: OK
  • Mouse USB: OK
  • X windows (xorg): OK
  • APM: Não funciona
  • Ethernet: OK
  • Wi-Fi USB (DWL-122): Parcialmente funcionando
  • Drive DVD: OK
  • Botão de ejetar o DVD: OK
Leia mais:Kubuntu no iBook
Escrito por Helio Loureiro
Categoria:

Esquema de configuração de switches L-3 da D-Link para OSPF. Testei em um DGS-3324SR, mas deve funcionar em toda linha.
Os passos descritos abaixo são:
1) criar uma VLAN
2) criar uma interface (ipif) para configurar um IP na VLAN
3) remover a porta que será utilizada da VLAN default e adicionar na VLAN criada
4) criar uma área OSPF e adicionar a interface criada (da VLAN) nessa área

Leia mais:Configurando OSPF em DGS-324SR
Escrito por Helio Loureiro
Categoria:

Googleando na rede achei que o suporte ao DWL-G122 em Linux em:

http://anirudhs.chaosnet.org/blog/2005.10.23.html

DWL-G122 é uma interface Wi-Fi USB. Para utilizar em MacOSX, somente o DWL-122 com chipset Prism. O DWL-G122 funciona com um chipset da Ralink, que agora suporta Linux. Boa novidade já que a interface pode ser configurada via "iwconfig", muito menos arcaica e esdrúxula que o wlan-ng.

Escrito por Helio Loureiro
Categoria:

Alguém já tentou instalar o FreeRadius com suporte à EAP no Debian??? Tarefa hérculea. Essa aplicação tem uso em redes Wi-Fi com WPA para autenticação de usuário. Em Debian, o pacote freeradius existe, mas infelizmente vem sem o suporte ao EAP devido a problemas de restrição de licença, como pode ser visto nesse bug report. Garimpando a rede, encontrei uma alma caridosa que enfrentou o mesmo problema e criou um patch para compilar e criar o pacote necessário:freeradius-eaptls. Consegui compilar e criar o pacote com a versão 1.0.2 sem problemas.

 

http://www.wapu.org/projects.php?id=freeradius-eaptls

É triste mas também é preciso admitir que Debian está se tornando inconveniente para uso como servidor. Como seu foco não é em Desktop (se for, algo está muuuuuuito errado), fico na dúvida em como classificar a distribuição. Dizer que é apenas uma distro conceitual não faz jus aos méritos de boa parte dos trabalhos realizados sobre a mesma. Dizer que não existem problemas também é hipocrisia. O que fazer? Estou utilizando Ubuntu como Desktop, mas confesso que gostaria de ver a própria Debian com esse mesmo nível de maturidade...

Escrito por Helio Loureiro
Categoria:

 

 

Script utilizado para realizar o controle de banda no sistema wi-fi da Futurecom2005. O primeiro problema encontrado foi que o sistema utilizava VLANs para dividir o tráfego enquanto que o controle de banda é somente possível em interfaces físicas. Felizmente funcionou a contento.

 

 

AP_NET="172.20.0.0/22" 
MAN_NET="192.168.48.0/0" 
VLAN100="201.25.199.254" 
VLAN200="201.34.160.254" 
VLAN300="201.34.161.254" 
VLAN400="172.20.3.254" 
VLAN500="192.168.48.254" 
VLAN100_INTF="vlan1" 
VLAN200_INTF="vlan2" 
VLAN300_INTF="vlan3" 
VLAN400_INTF="vlan4" 
VLAN500_INTF="vlan5" 

ME="{ 192.168.48.254, 201.25.199.254, 201.34.160.254, \
   201.34.161.254, 172.20.3.254}" 
SSH="{ 192.168.48.254, 201.25.199.254 }" 
EXT="em0" 

set timeout { interval 10, frag 30 } 
set timeout { tcp.first 120, tcp.opening 30, \
   tcp.established 86400 } 
set timeout { tcp.closing 900, tcp.finwait 45, \
   tcp.closed 90 } 
set timeout { udp.first 60, udp.single 30, \
   udp.multiple 60 } 
set timeout { icmp.first 20, icmp.error 10 } 
set timeout { other.first 60, other.single 30, \
   other.multiple 60 } 
set timeout { adaptive.start 0, adaptive.end 0 } 
set limit { states 10000, frags 5000 } 

##set loginterface none 
set optimization normal 
#set block-policy drop 
set require-order yes 
set fingerprints "/etc/pf.os" 

scrub in all 

### bandwidth 
altq on $EXT 
cbq bandwidth 15Mb 
queue { ots, ssh, voip, web, dhcp } 
queue ots bandwidth 10% priority 0 cbq(default ecn) 
queue ssh bandwidth 100Kb priority 7 cbq(borrow) 
queue voip bandwidth 30% priority 5 cbq(borrow) 
queue web bandwidth 60% priority 3 { http, mail, msn, dns } 
queue http bandwidth 60% cbq(borrow red) 
queue mail bandwidth 30% cbq(borrow red) 
queue msn bandwidth 10% cbq(borrow red) 
queue dns bandwidth 10% cbq(borrow red) 
queue dhcp bandwidth 10% priority 5 cbq(borrow) 
nat on $VLAN100_INTF from $AP_NET to any -> ($VLAN100_INTF) 

block in log all 
block return in on $EXT inet all queue ots 

pass out all 
#pass in all 

pass out inet proto tcp from any to any port 80 keep state queue http 
pass out on $EXT inet proto tcp from any to any port { 80, 443 } \
   keep state queue http 
pass out on $EXT inet proto tcp from any to any port { 25, 110, 143, \
   465, 993, 995 } keep state queue mail 
pass in on $EXT inet proto tcp from any to any port 1863 keep state \
   queue msn 
pass out on $EXT inet proto tcp from any to any port 1863 keep state \
   queue msn 
pass in on $EXT inet proto tcp from any to any port 22 keep state queue \
   ssh 
pass out on $EXT inet proto tcp from any to any port 22 keep state queue \
   ssh 
pass in on $EXT inet proto udp from any to any port 5060 keep state \
   queue voip 
pass out on $EXT inet proto udp from any to any port 5060 keep state \
   queue voip 
pass in on $EXT inet proto udp from any to any port 10000:20000 keep \
   state queue voip 
pass out on $EXT inet proto udp from any to any port 10000:20000 keep \
   state queue voip 
pass in on $EXT inet proto udp from any to any port 67:68 keep state \
   queue dhcp 
pass out on $EXT inet proto udp from any to any port 67:68 keep state \
   queue dhcp 
pass in on $EXT inet proto udp from any to any port 53 keep state queue \
   dns 
pass out on $EXT inet proto udp from any to any port 53 keep state queue \
   dns 
#pass in quick proto tcp from any to $SSH port 22 keep state 
#block in proto tcp from any to any port 80 
pass in quick proto tcp from any to $ME port 80 
pass in quick proto udp from any to any port 53 keep state 
pass in quick proto udp from any port 53 to any keep state 
pass in quick proto { tcp, udp } from any to $ME port { 67, 68 } keep state 
pass in quick proto { tcp, udp } from $AP_NET to $VLAN400 port { 67, 68 } \
   keep state 
pass in quick proto { tcp, udp } from any to $ME port { 67, 68 } keep state 
#pass in proto { tcp, udp, icmp } from any to any 
block in quick log proto { tcp, udp } from any to any port { 135, 136, 137, \
   138, 139, 445, 1433, 1434 } 
pass in quick proto udp from any to $ME port 161 keep 
state pass in quick proto udp from any port 161 to $ME keep state 

#block in log from any to $MAN_NET 
#block out log from $MAN_NET to any pass out from $ME to any 
#block in quick log from any to $MAN_NET 
#block in quick log from $MAN_NET to any 

pass in quick proto icmp from any to $ME keep state 
pass out quick proto icmp from $ME to any keep state 
pass out quick proto tcp from $ME to 192.168.48.0/24 keep state 
pass in quick proto udp from 192.168.48.0/24 to $ME port 161 keep state 
pass in from any to any 
block in log from any to $ME