Desmistificando o OpenBSD: Origem,
caracter´ısticas e facilidades
Fernando Massen
Conte ´
udo
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisasIntroduc¸ ˜ao
Conte ´udo
Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD? Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
Fernando
Conte ´udo Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD? Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
Desenvolvo software para backend corporativo. Uso OpenBSD desde o 2.7 (Jun/2000).
Primeiro hardware que utilizei foi um Cyrix 120 Mhz. J ´a usava Linux h ´a alguns anos.
Chocado e perdido diante das possibilidades do novo sistema (ou falta delas).
O OpenBSD era menos amig ´avel do que hoje em dia (por ´em mais simples! A internet tamb ´em era mais tranq ¨uila).
O que ´e o OpenBSD?
Conte ´udo Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD?
Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
Para quem ainda n ˜ao se situou:
E um sistema UNIX livre e aberto.´
E filho direto do NetBSD, que por sua vez ´e descendente do c ´odigo´ BSD aberto pela Universidade de Berkeley.
O projeto desta vers ˜ao de BSD foi iniciado dentro de uma rixa interna entre desenvolvedores do NetBSD.
Surgido em 1995; hoje, com 11 anos.
O respons ´avel por isso ´e o Theo de Raadt, um dos quatro fundadores do projeto NetBSD.
Open porque a comunidade do OpenBSD aceitaria novos desenvolvedores de forma mais democr ´atica, ao contr ´ario da “panelinha” do NetBSD da ´epoca.
Mascote
Conte ´udo Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD?
Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
O Criador
Conte ´udo Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD?
Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
O criador do projeto ´e o sul-africano Theo De Raadt, o rapaz da direita da foto abaixo:
Caracter´ısticas B ´asicas
Conte ´udo Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD?
Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
E um Unix de kernel monol´ıtico.´ Multiplataforma.
C ´odigo livre (atrav ´es de uma licenc¸a mais permissiva que a GPL). Com foco em Seguranc¸a.
Com foco no usu ´ario avanc¸ado. Com foco em redes TCP/IP.
Do ponto de vista do usu ´ario Unix, ´e como se estivesse em casa. Amplamente documentado.
Made In Canada, eh!
Conte ´udo Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD?
Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
Leis draconianas contra exportac¸ ˜ao de exportac¸ ˜ao de criptografia nos EUA fazem com que o desenvolvimento, baseado no Canad ´a, ficasse mais tranq ¨uilo (abaixo temos Calgary, no Canad ´a).
Multiplataforma por Design
Conte ´udo Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD? Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas Roda em: i386 (Intel/AMD) macppc (Macs PPC)
sparc64 (sistemas Sun UltraSPARC) sparc (sistemas Sun SPARC antigos)
armish (alguns dispositivos baseados em ARM) hp300 (HP 9000 s ´erie 300)
hppa (sistemas HP PA-RISC)
luna88k (estac¸ ˜oes Luna-88K e Luna-88K2) mac68k (Macintoshes 68k com MMU)
mvme68k/mvme88k (sistemas Motorola VME 680x0/881x0) sgi (algumas SGI MIPS)
vax (sistemas Digital VAX (antigos!)
Multiplataforma por Design
Conte ´udo Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD? Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
Por ´em ´e mais popular em: i386 (Intel/AMD)
macppc (Macs PPC)
sparc64 (sistemas Sun UltraSPARC)
A arquitetura principal, como deveria se esperar, ´e x86 (Intel/AMD). Bastante popular em PowerPCs (principalmente em
Multiplataforma por Design
Conte ´udo Introduc¸ ˜ao
Fernando
O que ´e o OpenBSD? Caracter´ısticas B ´asicas Multiplataforma por Design Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
Particularidades
Conte ´udo Introduc¸ ˜ao
Particularidades
Instalac¸ ˜ao com 1 disquete Small Footprint Diferenc¸as na userland Ports, pacotes de software Ports Habilitar servic¸os Seguranc¸a Facilidades Projetos-filho Cultura
Instalac¸ ˜ao com 1 disquete
Conte ´udo Introduc¸ ˜ao Particularidades
Instalac¸ ˜ao com 1 disquete Small Footprint Diferenc¸as na userland Ports, pacotes de software Ports Habilitar servic¸os Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
A instalac¸ ˜ao atrav ´es da rede pode ser feita com apenas um disquete. Esse disquete possui suporte `a TCP/IP e provavelmente possui
suporte `a sua placa de rede, al ´em de ftp e outros utilit ´arios menores. Via rede local, instala-se o sistema base em quest ˜ao de 4 minutos,
em m ´edia (!).
Esse m ´etodo de instalac¸ ˜ao funciona em praticamente todas as
plataformas (em PowerPC, em vez de ser um disquete, ´e uma ISO de 2 megas).
Instalac¸ ˜ao com 1 disquete (cont.)
Conte ´udo Introduc¸ ˜ao Particularidades
Instalac¸ ˜ao com 1 disquete Small Footprint Diferenc¸as na userland Ports, pacotes de software Ports Habilitar servic¸os Seguranc¸a Facilidades Projetos-filho Cultura
Pode-se dar telnet para a instalac¸ ˜ao, eliminando a necessidade de cabos seriais!
Instala-se a partir duma localizac¸ ˜ao existente num CD-ROM, num HD da pr ´opria m ´aquina, em um site FTP ou mesmo HTTP.
A maior dificuldade da instalac¸ ˜ao ´e entender que os discos (por
exemplo, IDE) s ˜ao numerados como wdX, os dispositivos f´ısicos como rwdX ; e que a instalac¸ ˜ao fica dentro duma ´unica partic¸ ˜ao (slice) que conter ´a as outras partic¸ ˜oes do sistema (como se fossem partic¸ ˜oes extendidas).
Tenha certeza que voc ˆe est ´a usando pelo menos um Pentium, quando em x86, ou um G3 “newworld” quando em PowerPC.
Small Footprint
Conte ´udo Introduc¸ ˜ao Particularidades
Instalac¸ ˜ao com 1 disquete Small Footprint Diferenc¸as na userland Ports, pacotes de software Ports Habilitar servic¸os Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
A instalac¸ ˜ao vem em 300 megas (qualquer arquitetura). ´E s ´o descompactar e t ´a pronto! Listando de
http://ftp.openbsd.org/pub/OpenBSD/4.0/i386/
: bsd, bsd.mp e bsd.rd - os kernels, conforme a situac¸ ˜ao. base40.tgz - a instalac¸ ˜ao-base.comp40.tgz - basicamente o GCC e seus amigos. etc40.tgz - os arquivos de configurac¸ ˜ao em /etc.
game40.tgz - os jogos cl ´assicos dos BSDs, incluindo fortune(1). man40.tgz - man pages.
misc40.tgz - arquivos que n ˜ao s ˜ao essenciais, miscel ˆanea. xbase40.tgz - o b ´asico para servir X11.
xetc40.tgz - arquivos de configurac¸ ˜ao dos programas do X11.
xfont40.tgz, xserv40.tgz e xshare40.tgz - respectivamente: fontes, servidores e /usr/X11R6/share.
O que a instalac¸ ˜ao-padr ˜ao inclui?
Conte ´udo Introduc¸ ˜ao Particularidades
Instalac¸ ˜ao com 1 disquete Small Footprint Diferenc¸as na userland Ports, pacotes de software Ports Habilitar servic¸os Seguranc¸a Facilidades Projetos-filho Cultura
Sendmail (devidamente patcheado!) Apache (devidamente patcheado!)
Ntpd pr ´oprio (servidor de hora para a rede) Pop3 (devidamente patcheado!)
Servidor DHCP (devidamente patcheado!) Servidor DNS (devidamente patcheado!) Xorg (devidamente patcheado!)
Perl (para administrac¸ ˜ao do sistema)
GCC (com customizac¸ ˜oes e devidamente patcheado!)
mg (editor estilo Emacs com frases que exemplificam a educac¸ ˜ao do Theo!)
Diferenc¸as na userland
Conte ´udo Introduc¸ ˜ao Particularidades
Instalac¸ ˜ao com 1 disquete Small Footprint Diferenc¸as na userland Ports, pacotes de software Ports Habilitar servic¸os Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
Os comandos b ´asicos (ls, grep, cat...) possuem uma sintaxe mais ortodoxa, e h ´a uma ordem r´ıgida na passagem de comandos. S ˜ao mais bem-documentados.
Algumas facilidades de sistema n ˜ao existem na mesma forma; ao inv ´es do /proc, t ˆem-se o utilit ´ario sysctl, por exemplo.
Praticamente toda a userland que h ´a no Linux tem portada para OpenBSD, e ´e comum trocar a shell padr ˜ao (ksh) por bash.
Ports, pacotes de software
Conte ´udo Introduc¸ ˜ao Particularidades
Instalac¸ ˜ao com 1 disquete Small Footprint Diferenc¸as na userland Ports, pacotes de software Ports Habilitar servic¸os Seguranc¸a Facilidades Projetos-filho Cultura
Um port ´e um pacote de software adaptado para rodar no OpenBSD. O mais f ´acil ´e instalar um pacote compilado, um package.
Por padr ˜ao, eles ficam em
<mirror
OpenBSD>/pub/OpenBSD/packages/<arquitetura>/
. Para instal ´a-los, basta digitarpkg add -i pacote.tgz
. Pode-se instalar direto via ftp:pkg add ftp://...
Trata as depend ˆencias automaticamente.
Ports
Conte ´udo Introduc¸ ˜ao Particularidades
Instalac¸ ˜ao com 1 disquete Small Footprint Diferenc¸as na userland Ports, pacotes de software Ports Habilitar servic¸os Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas
Cada port fica no seu pr ´oprio diret ´orio. Por exemplo:
/usr/ports/www/mozilla
.H ´a ports para todos os gostos, organizados por ´area (jogos, editores, rede, utilit ´arios, etc. ...)
Para compilar um port, ´e s ´o digitar
cd <diret´orio do port>; make install && make clean ... o resultado ´e a instalac¸ ˜ao e a criac¸ ˜ao do pacote em
/usr/ports/packages
.Na compilac¸ ˜ao o port tenta baixar automaticamente o c ´odigo-fonte necess ´ario para compilar.
A ´arvore de ports cresce a cada release: dada as limitac¸ ˜oes do
sistema, alguns pacotes (principalmente os notoriamente inseguros ou atrelados a outros sistemas, como jogos) ficam faltando.
Habilitar servic¸os
Conte ´udo Introduc¸ ˜ao Particularidades
Instalac¸ ˜ao com 1 disquete Small Footprint Diferenc¸as na userland Ports, pacotes de software Ports Habilitar servic¸os Seguranc¸a Facilidades Projetos-filho Cultura ´
E t ˜ao f ´acil quanto editar o arquivo
/etc/rc.conf
, achar o nome do servic¸o e escrever “YES”!Para habilitar o servic¸o de sensores de hardware no pr ´oximo reboot: sensorsd_flags="" # O padr~ao ´e "NO"
Para habilitar o servic¸o de firewall (pf): pf=YES # O padr~ao ´e "NO"
Seguranc¸a
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a chrooting Auditoria de seguranc¸a GCC & ProPolice Criptografia ub´ıqua Facilidades Projetos-filho Cultura Mais coisasApenas um s ´
o exploit remoto em dez anos!
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a chrooting Auditoria de seguranc¸a GCC & ProPolice Criptografia ub´ıqua Facilidades Projetos-filho Cultura Mais coisasSeguro por padr ˜ao: todos os servic¸os n ˜ao-essenciais desabilitados na instalac¸ ˜ao.
An ´uncios cr´ıticos de seguranc¸a s ˜ao transparentes.
Sempre buscando novas tecnologias de seguranc¸a para suportar. Pretende-se ser o n ´umero um na ind ´ustria.
chrooting
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a chrooting Auditoria de seguranc¸a GCC & ProPolice Criptografia ub´ıqua Facilidades Projetos-filho Cultura Mais coisasServic¸os populares do OpenBSD s ˜ao chrooteados, incluindo-se a´ı
t ´ecnicas de separac¸ ˜ao de privil ´egios para evitar que um eventual invasor modifique o sistema de arquivos do host:
apache dns dhcp ntpd
No caso da separac¸ ˜ao de privil ´egios, h ´a um usu ´ario respons ´avel por determinado servic¸o ligado ao grupo daemon, por exemplo, que executa somente as operac¸ ˜oes cr´ıticas necess ´arias, e um sub-usu ´ario que tem menos permiss ˜oes, que executa as demais tarefas do servic¸o.
Auditoria de seguranc¸a
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a chrooting Auditoria de seguranc¸a GCC & ProPolice Criptografia ub´ıqua Facilidades Projetos-filho Cultura Mais coisasNo in´ıcio do projeto, um grande esforc¸o de auditoria de seguranc¸a foi realizado no c ´odigo-fonte que foi forkeado do NetBSD.
Essa tradic¸ ˜ao continua at ´e hoje na cultura de desenvolvimento do OpenBSD.
E considerado mais f ´acil consertar erros de programac¸ ˜ao em C do´ que procurar por exploits (j ´a que geralmente esses procuram explorar poss´ıveis falhas humanas no c ´odigo)
Minimiza-se o c ´odigo o m ´aximo poss´ıvel em sec¸ ˜oes cr´ıticas (ou que dependem de aumento de privil ´egios)
Geralmente uma classe de erros ´e descoberta, mais ou menos como um “anti-pattern”
GCC & ProPolice
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a chrooting Auditoria de seguranc¸a GCC & ProPolice Criptografia ub´ıqua Facilidades Projetos-filho Cultura Mais coisasId ´eia original de Hiroaki Etoh, da IBM. Mergeado no OpenBSD em 2002.
Protec¸ ˜ao gerada pelo compilador que previne programas sejam constru´ıdos de forma maliciosa quanto `a manipulac¸ ˜ao da pilha de execuc¸ ˜ao.
Quando se tem um buffer alocado na pilha, pode-se tentar fazer overflow deste buffer para mud ´a-lo, tentando alterar a trajet ´oria de execuc¸ ˜ao e provocar outros efeitos.
Durante a compilac¸ ˜ao, o GCC detecta esses buffers e insere um c ´odigo que termina o programa (segfault, por exemplo)
prematuramente.
Quando foi implementado, diversos programas do pr ´oprio sistema (incluindo o GCC!) eram pass´ıveis de sofrer este problema.
Criptografia ub´ıqua
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a chrooting Auditoria de seguranc¸a GCC & ProPolice Criptografia ub´ıqua Facilidades Projetos-filho Cultura Mais coisas No swap (opcional).Dentro da sa´ıda dos terminais (padr ˜ao; configura-se em
/etc/ttys
).Dentro da implementac¸ ˜ao de ipsec. Dentro da implementac¸ ˜ao do AFS. Dentro da libssl.
Facilidades
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades PF Meu arquivo PF de exemplo: NAT para 2 placas de rede PF Exemplo: continuac¸ ˜ao spamd CARP IPSec Projetos-filho Cultura Mais coisasPF
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades PF Meu arquivo PF de exemplo: NAT para 2 placas de rede PF Exemplo: continuac¸ ˜ao spamd CARP IPSec Projetos-filho CulturaFiltra o tr ´afego TCP/IP, faz NAT, redirecionamento e outras coisas legais.
Desde o OpenBSD 3.0. E f ´acil de configurar.´
A documentac¸ ˜ao ´e fant ´astica, e ´e f ´acil de testar. # pfctl -e # ativa
# pfctl -d # desativa
Meu arquivo PF de exemplo: NAT para 2 placas de rede
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades PF Meu arquivo PF de exemplo: NAT para 2 placas de rede PF Exemplo: continuac¸ ˜ao spamd CARP IPSec Projetos-filho Cultura Mais coisasTenho um Celeron 800 que tem tr ˆes placas de rede: uma para receber a Internet, uma para servir para a rede local e uma para servir para um Access Point.
PF Exemplo: continuac¸ ˜ao
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades PF Meu arquivo PF de exemplo: NAT para 2 placas de rede PF Exemplo: continuac¸ ˜ao spamd CARP IPSec Projetos-filho Cultura(omiti o nome das m´aquinas)
nat on $externa from $lan:network to any -> $externa nat on $externa from $ibook to any -> $externa
block all
antispoof for $externa
# s´o deixa passar para a internet. pass out on $externa
block in on $externa from any to any
# bloqueia tudo via wifi, exceto o iBook. block in on $wifi from any to any
block out on $wifi from any to any pass in on $wifi from $ibook to any
spamd
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades PF Meu arquivo PF de exemplo: NAT para 2 placas de rede PF Exemplo: continuac¸ ˜ao spamd CARP IPSec Projetos-filho Cultura Mais coisasE um daemon que rechac¸a e-mails falsos.´ Integrado ao
pf
.Possui um banco de dados local que pode ser atualizado por blacklists externas; algumas j ´a v ˆem configuradas.
CARP
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades PF Meu arquivo PF de exemplo: NAT para 2 placas de rede PF Exemplo: continuac¸ ˜ao spamd CARP IPSec Projetos-filho CulturaCommon Address Redundancy Protocol. Duas ou mais m ´aquinas com o mesmo IP. Imaginem as possibilidades.
Para redund ˆancia.
Gera uma placa de rede virtual, chamada
carp(4)
. E amplo demais para citar tudo aqui. Em breve, teremos´apresentac¸ ˜oes sobre isso: com sorte, um exemplo real, para mostrar ao vivo.
IPSec
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades PF Meu arquivo PF de exemplo: NAT para 2 placas de rede PF Exemplo: continuac¸ ˜ao spamd CARP IPSec Projetos-filho Cultura Mais coisasTamb ´em ´e amplo e foge do escopo da nossa apresentac¸ ˜ao. A configurac¸ ˜ao lembra (bem de longe) a do PF.
Projetos-filho
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Projetos-filho Cultura Mais coisasProjetos-filho
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Projetos-filho Cultura Mais coisasA necessidade de exportar certas funcionalidades do OpenBSD para outros sistemas de forma port ´avel (ou seja, n ˜ao-atrelada ao OpenBSD) criou os seguintes projetos-filhos:
OpenSSH (talvez mais conhecido que o pr ´oprio OpenBSD! ´E a mesma equipe! A mesma qualidade!)
OpenCVS (primeiro para retirar c ´odigo GPL da userland ; depois melhorar e adicionar funcionalidades)
OpenNTPd (servidor/cliente de Network Time Protocol)
OpenBGPd (servidor de Border Gateway Protocol, suportando BGP e OSPF)
Cultura
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Antes correto do que r ´apido ou popular
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular
CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Recompilac¸ ˜ao de Kernel Zero Hackathons
Em testes recentes de performance, at ´e o NetBSD saiu na frente. O objetivo n ˜ao ´e estar na frente: ´e estar correto.
O objetivo n ˜ao ´e ser popular ou angariar mais usu ´arios, ´e uma paix ˜ao pessoal de um grupo de desenvolvedores que possuem quase os mesmos interesses (seguranc¸a e continuar o legado do BSD de Berkeley).
Criptografia abundante.
Usar ao m ´aximo as ferramentas que j ´a existem, mesmo que for para construir outras.
C ´odigo de qualidade, documentac¸ ˜ao de qualidade. Tem que funcionar no meu VAX!
Releases semestrais, em datas espec´ıficas, onde ´e importante entregar ao inv ´es de inchar de funcionalidades.
CVS
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular
CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
CVS ´e a metodologia de controle de vers ˜ao de todo o projeto. Tudo est ´a no CVS! Manuais, kernel, userland, ports...
Desde o in´ıcio do projeto!
Cada tag de vers ˜ao corresponde a um ciclo de desenvolvimento. Um dos melhores usos de CVS que eu j ´a vi.
Uma das filosofias do projeto ´e de que o CVS ´e bom o suficiente, e o problema de achar que o CVS ´e ruim est ´a nas pessoas que, na
verdade, n ˜ao sabem us ´a-lo
D ´a para atualizar o sistema-base a partir do CVS; deve-se, entretanto, saber o que se faz
Correto at ´e nos drivers
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers
Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Recompilac¸ ˜ao de Kernel Zero Hackathons
O projeto OpenBSD sempre teve um forte lado de ativismo para conseguir especificac¸ ˜oes de hardware de forma mais livre poss´ıvel. Para isso, o
hardware deve:
Possuir especificac¸ ˜oes sobre como ele funciona.
Sen ˜ao, possuir interfaces p ´ublicas para o hardware, sem intermedi ´arios.
Sen ˜ao, pedir aos fabricantes encarecidamente o que nos ´e de direito (hacktivismo!).
Sen ˜ao, em ´ultima inst ˆancia, engenharia reversa (que sempre ´e custosa e ineficaz).
Mesmo assim, o hardware deve passar por um tempo em testes at ´e a pr ´oxima release, e ser bem-documentado. Geralmente um hardware ´e compat´ıvel entre v ´arias plataformas (se os buses forem compat´ıveis, l ´ogico! Exemplo: USB, PCI...)
Diga n ˜ao aos Blobs!
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers
Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Blobs s ˜ao drivers bin ´arios que ficam alojados no kernel dos sistemas operacionais. ´E pol´ıtica do projeto evitar esse tipo de software, que cerceia os direitos de consumidor do usu ´ario e pode prejudicar sua seguranc¸a.
Suporte s ˜ao para Wi-Fi
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers
Suporte s ˜ao para Wi-Fi
Uniformidade entre plataformas
Best tool for the Best Job
Recompilac¸ ˜ao de Kernel Zero Hackathons
Passos para funcionar o Wi-Fi:
Checar a p ´agina do site onde indica se o hardware ´e suportado:
http://openbsd.org/i386.html#hardware
.“Espetar” a placa ou plugar o adaptador (se for USB ou PCMCIA). Passar o IP/par ˆametros via ifconfig.
... e s ´o!!!! Nada de ndiswrappers, compilar drivers, etc. O mesmo vale para rede com cabos.
Uniformidade entre plataformas
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi
Uniformidade entre plataformas
Best tool for the Best Job
Os drivers s ˜ao os mesmos para todas as plataformas (De novo, se as buses forem compat´ıveis!)
Os arquivos de configurac¸ ˜ao s ˜ao os mesmos O formato do sistema de arquivos ´e o mesmo
Recentemente, migrei de PowerPC (um G3/300) para x86 (um
Celeron 800). Como era o mesmo hardware, s ´o tive que mudar coisas da partic¸ ˜ao / e /usr; /etc praticamente ficou intacto (precisei fazer um checkout do
cvs
dos arquivos de configurac¸ ˜ao).D ´a para aproveitar a configurac¸ ˜ao direta de servic¸os em Sparc, PPC e x86!
Best tool for the Best Job
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Recompilac¸ ˜ao de Kernel Zero Hackathons
Como n ˜ao poderia deixar de ser, o OpenBSD n ˜ao se adequa a certas finalidades. Vamos numer ´a-las:
Jogos (n ˜ao que isso seja um forte dos Unixes).
3D em hardware (dado o estado dos drivers de placa de v´ıdeo dentro do X e a pol´ıtica dos fabricantes em insistir com blobs).
Performance absurda em disco (reiterando: ´e importante estar correto do que na frente!).
Menos suporte a sistema de arquivos (n ˜ao suporta ReiserFS, XFS e JFS, por exemplo).
Falta suporte para Firewire (IEEE 1391), Zip drives em porta paralela. Lembrando que a “adequac¸ ˜ao” de hoje a essas coisas no OpenBSD
(exceto 3D) ´e a mesma que a do Linux no meio da d ´ecada de 90. Apesar de tudo isto, uso como desktop em duas m ´aquinas, pelo menos.
Recompilac¸ ˜ao de Kernel Zero
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
O projeto oferece pacotes pr ´e-compilados. Por ´em, o sistema tamb ´em j ´a vem compilado!
N ˜ao ´e recomendado recompilar o kernel. Voc ˆe n ˜ao vai querer fazer isso.
N ˜ao vai melhorar a performance. N ˜ao vai te ajudar com nada.
Recompilac¸ ˜ao de Kernel Zero
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Recompilac¸ ˜ao de Kernel Zero
Hackathons
Primeiro fac¸a um checkout do -Stable ou do -Current. O jeito mais f ´acil ´e pegar o arquivo src.tar.gz do diret ´orio-base dos mirrors OpenBSD
(/put/OpenBSD/4.0, por exemplo). Isto vale para todas as plataformas! # cd /usr/src/sys/arch/i386/conf
# cp GENERIC MYKERNEL
# vi MYKERNEL # op¸c~oes a contento # config MYKERNEL
# cd ../compile/MYKERNEL
# make clean && make depend && make (... tome um caf´e ...)
# make install # ls -lh /bsd
-rw-r--r-- 1 root wheel 5.2M Mar 2 2006 /bsd # file /bsd
/bsd: ELF 32-bit LSB executable, Intel 80386, version 1, statically linked, not stripped
Hackathons
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Os Hackathons s ˜ao uma tradic¸ ˜ao anual relativamente recente do projeto, onde os desenvolvedores viajam para lugares espec´ıficos (geralmente pro Canad ´a, onde fica f ´acil para todos) e:
Reunem-se para discutir aspectos mais in loco do projeto Programam durante horas a fio
Tudo sem maiores interrupc¸ ˜oes e sem hor ´ario para comec¸ar ou terminar (o lema de um dos hackathons era shut up and hack !)
Tem tamb ´em a tradicional confraternizac¸ ˜ao entre os desenvolvedores.
J ´a realizaram hackathons sobre aspectos espec´ıficos, como o
hackathon dos ports que aconteceu h ´a algumas semanas atr ´as, ou o hackathon sobre pf.
Sess ˜ao de Hackeamento
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Recompilac¸ ˜ao de Kernel Zero
Fadiga Ocasional
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Mesa do Theo
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Recompilac¸ ˜ao de Kernel Zero
Fundos da Casa do Theo
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Mesmo lugar, ano passado, no anivers ´ario dele
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho CulturaAntes correto do que r ´apido ou popular CVS
Correto at ´e nos drivers Suporte s ˜ao para Wi-Fi Uniformidade entre plataformas
Best tool for the Best Job
Recompilac¸ ˜ao de Kernel Zero
Mais coisas
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisasSites obrigat ´orios Hospedagem OpenBSD Livros
Colaborando com o Projeto
Sites obrigat ´
orios
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisasSites obrigat ´orios
Hospedagem OpenBSD Livros
Colaborando com o Projeto
That’s all folks!
undeadly.org
(site quasi-official)
marc.theaimsgroup.com
(todas as listas de discuss ˜ao do mundo)
openbsdsupport.org
oxide.org/cvs/
kerneltrap.org
openbsd.org
(leiam o FAQ! ´E revelador).Hospedagem OpenBSD
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisasSites obrigat ´orios
Hospedagem OpenBSD
Livros
Colaborando com o Projeto
That’s all folks!
Pesquisei empresas que hospedam OpenBSD internacionalmente:
sprocketdata.com
http://www.bsws.de
http://www.geekisp.com
http://www.nyi.net
http://calyx.com/about/
www.ipv4networks.com
http://www.hostedsolutions.com
http://www.m5hosting.com/
openbsd-dedicated-server.php
http://serverpronto.com
http://www.benzedrine.cx
Livros
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisasSites obrigat ´orios Hospedagem OpenBSD
Livros
Colaborando com o Projeto
That’s all folks!
Geralmente pode-se aproveitar bastante coisa dos livros mais “gen ´ericos” sobre BSD (FreeBSD, por exemplo).
Absolute OpenBSD, de Michael Lucas (muito bom!)
Building Firewalls with OpenBSD and PF (2nd edition), de Jacek Artymiak
Building Linux and OpenBSD Firewalls, de Wes Sonnenreich e Tom Yates (velho! ´E da vers ˜ao 2.5 ainda!)
Secure Architectures with OpenBSD, de Brandon Palmer e Jose Nazario
Colaborando com o Projeto
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisasSites obrigat ´orios Hospedagem OpenBSD Livros
Colaborando com o Projeto
That’s all folks!
As maneiras de se colaborar com o projeto s ˜ao as mesmas do que em qualquer projeto Open Source:
Usando. Divulgando.
Contribuindo com c ´odigo. Contribuindo com hardware. Doac¸ ˜oes e compras de CDs.
Isso ´e importante, ´e o que mant ´em o projeto.
Parte do dinheiro vai para os hackathons, parte para o hardware, parte para a infraestrutura, etc.
De camisetas a CD-ROMs.
That’s all folks!
Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisasSites obrigat ´orios Hospedagem OpenBSD Livros
Colaborando com o Projeto
That’s all folks!
So long and thanks for all the passwords!