• Nenhum resultado encontrado

Desmistificando o OpenBSD: Origem, características e facilidades

N/A
N/A
Protected

Academic year: 2021

Share "Desmistificando o OpenBSD: Origem, características e facilidades"

Copied!
58
0
0

Texto

(1)

Desmistificando o OpenBSD: Origem,

caracter´ısticas e facilidades

Fernando Massen

(2)

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 coisas

(3)

Introduc¸ ˜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

(4)

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).

(5)

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.

(6)

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

(7)

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:

(8)

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.

(9)

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).

(10)

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!)

(11)

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

(12)

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

(13)

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

(14)

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).

(15)

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.

(16)

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.

(17)

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!)

(18)

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.

(19)

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 digitar

pkg add -i pacote.tgz

.  Pode-se instalar direto via ftp:

pkg add ftp://...

 Trata as depend ˆencias automaticamente.

(20)

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.

(21)

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"

(22)

Seguranc¸a

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a chrooting Auditoria de seguranc¸a GCC & ProPolice Criptografia ub´ıqua Facilidades Projetos-filho Cultura Mais coisas

(23)

Apenas 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 coisas

 Seguro 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.

(24)

chrooting

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a chrooting Auditoria de seguranc¸a GCC & ProPolice Criptografia ub´ıqua Facilidades Projetos-filho Cultura Mais coisas

Servic¸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.

(25)

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 coisas

No 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”

(26)

GCC & ProPolice

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a chrooting Auditoria de seguranc¸a GCC & ProPolice Criptografia ub´ıqua Facilidades Projetos-filho Cultura Mais coisas

 Id ´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.

(27)

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.

(28)

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 coisas

(29)

PF

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

 Filtra 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

(30)

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 coisas

Tenho 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.

(31)

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

(32)

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 coisas

 E 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.

(33)

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 Cultura

 Common 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.

(34)

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 coisas

 Tamb ´em ´e amplo e foge do escopo da nossa apresentac¸ ˜ao.  A configurac¸ ˜ao lembra (bem de longe) a do PF.

(35)

Projetos-filho

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Projetos-filho Cultura Mais coisas

(36)

Projetos-filho

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Projetos-filho Cultura Mais coisas

A 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)

(37)

Cultura

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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

(38)

Antes correto do que r ´apido ou popular

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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.

(39)

CVS

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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

(40)

Correto at ´e nos drivers

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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...)

(41)

Diga n ˜ao aos Blobs!

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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.

(42)

Suporte s ˜ao para Wi-Fi

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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.

(43)

Uniformidade entre plataformas

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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!

(44)

Best tool for the Best Job

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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.

(45)

Recompilac¸ ˜ao de Kernel Zero

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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.

(46)

Recompilac¸ ˜ao de Kernel Zero

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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

(47)

Hackathons

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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.

(48)

Sess ˜ao de Hackeamento

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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

(49)

Fadiga Ocasional

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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

(50)

Mesa do Theo

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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

(51)

Fundos da Casa do Theo

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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

(52)

Mesmo lugar, ano passado, no anivers ´ario dele

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura

Antes 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

(53)

Mais coisas

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas

Sites obrigat ´orios Hospedagem OpenBSD Livros

Colaborando com o Projeto

(54)

Sites obrigat ´

orios

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas

Sites 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).

(55)

Hospedagem OpenBSD

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas

Sites 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

(56)

Livros

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas

Sites 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

(57)

Colaborando com o Projeto

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas

Sites 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.

(58)

That’s all folks!

Conte ´udo Introduc¸ ˜ao Particularidades Seguranc¸a Facilidades Projetos-filho Cultura Mais coisas

Sites obrigat ´orios Hospedagem OpenBSD Livros

Colaborando com o Projeto

That’s all folks!

So long and thanks for all the passwords!

Referências

Documentos relacionados

Tabela 2 - teste de comparação de médias para os caracteres número de grãos por espiga (NGE), peso do hectolitro (PH) e redimento de grãos (RG) para os tratamentos UTFT 141457 com

Numa clara aposta no desenvolvimento integrado, que alie as mudanças de atitude à conservação ambiental, ao crescimento económico e às práticas salutares da

Diante de todo o exposto no presente trabalho, entende-se que, na realidade que se apresenta dos dias atuais, em especial, no Brasil, o cenário de luta pela dignidade humana das

a exigência de uma “sensível superioridade” do interesse protegido na previsão o art. 34º, apesar da inclusão de critérios de valor de ação naquela cláusula. Apesar de

Defendemos a criação de “Tribunais Rodoviários” de forma a tentar diminuir o número de processos de acidentes de viação, pois um Tribunal de competência especializada que

Alves, Lia, Faculdade de Psicologia e Ciências da Educação, Portugal Blanquet, Joana, Faculdade de Psicologia e Ciências da Educação, Portugal Fagundes, Susana, Faculdade

Figura 2.11 - (a) Intensidade normalizada de luz transmitida sob polarização cruzada e (b) birrefringência total em função da tensão de cisalhamento na parede

As propriedades de cafeicultura convencional apresentaram relativa semelhança, quanto à área total, ponto de nivelamento e relação custo/benefício, e diferiram quanto à escala