Instalação e configuração inicial do OpenBSD 4.9
O OpenBSD é um sistema operacional livre da família UNIX, multiplataforma. Seu time de desenvolvedores enfatiza a portabilidade, padronização, correção e segurança. Ele suporta emulação binária da maioria dos binários de SRV4 (Solaris), FreeBSD, Linux, SunOS e HP-UX e funciona nas plataformas alpha, amd64, armish, hp300, hppa, i386, landisk, luna88k, mac68k, powerpc, mvme68k, mvme88k, sgi, sparc, sparc64, vax e zaurus. A versão atual é a 5.1, lançada oficialmente em 1 de Maio de 2012.
Os binários e fontes do OpenBSD permitem livre distribuição, segundo uma licença do tipo BSD. Isto inclui a permissão de reutilizar qualquer parte do código fonte do OpenBSD, tanto para uso pessoal quanto para propósitos comerciais. Não existe nenhuma outra restrição posterior a aquelas implicadas pela licença original do OpenBSD. Ele pode ser livremente usado em ambientes doméstico, acadêmico, instituições governamentais, organizações sem fins lucrativos e organizações comerciais
Características do OpenBSD
- Roda em muitos hardwares diferentes.
- Foi pensado por muitos profissionais em segurança para ser o sistema operacional mais seguro da família UNIX, sendo resultado de um ano e meio de trabalho de 10 membros e de um amplo estudo de códigos-fonte.
- É um sistema operacional completo da família UNIX.
- Integra uma tecnologia de ponta em segurança, adequado para a criação de firewalls e serviços de redes privados em um ambiente distribuído.
- Beneficia um forte encaminhamento de desenvolvimento em diversas áreas, oferecendo oportunidades de trabalho de diversas tecnologias para a comunidade internacional de programadores e usuários finais.
- Oferece a oportunidade de qualquer pessoa tecnicamente capacitada trabalhar no desenvolvimento e testes do produto.
Objetivos do Projeto
Obviamente, cada desenvolvedor trabalhando no OpenBSD possui seus objetivos e prioridades, porém é possível classificar os objetivos que temos em comum:
- Promover a melhor plataforma de desenvolvimento possível. Prover acesso total ao código fonte aos desenvolvedores e usuários, incluindo a habilidade de olhar as alterações na árvore CVS diretamente. Os usuários podem até olhar as alterações de nossa árvore de código fonte diretamente na Web!
- Integrar bom código de qualquer origem com uma política de direito autoral aceitável (são preferidas as licenças ISC ou Berkeley; GPL é aceita como último recurso, exceto no kernel; NDA nunca é aceita). Queremos tornar disponível código fonte que qualquer um possa usar para QUALQUER FIM, sem restrições. Nos esforçamos para fazer nosso software robusto e seguro, e incentivamos as empresas a usarem qualquer parte dele. Existem produtos comerciais baseados no OpenBSD.
- Prestar atenção aos problemas de segurança e consertá-los antes que qualquer outro o faça. (Tentar ser o sistema operacional número 1 em segurança.)
- Realizar uma boa integração de softwares criptográficos. Isso significa IPsec, mecanismos de chaves, Kerberos, AFS livre, e outras formas de criptografia forte ou sistemas de uso criptográfico. O OpenBSD é desenvolvido e lançado no Canadá, e de acordo com as leis canadenses é permitida a exportação de criptografia para o mundo (de acordo com a pesquisa de um cidadão canadense e também com a lista de Controle de Exportação Canadense). Os desenvolvedores do OpenBSD estão fazendo pesquisas e desenvolvimentos ativos no IPsec.
- Seguir e implementar padrões (ANSI, POSIX, partes do X/Open, etc.)
- Trabalhar em prol de um código fonte bastante independente de plataformas específicas. Suportar o maior número possível de sistemas e hardware diferentes.
- Ser livre de políticas de sistema; as soluções devem ser tomadas com base em méritos técnicos.
- Foco no desenvolvedor em todos os sentidos, incluindo manter eventos para desenvolvedores, chamados de hackathons.
- Não deixar problemas sérios sem solução.
- Prover um bom sistema de compilação/desenvolvimento multiplataforma.
- Importar pacotes externos com modificações mínimas, tornando a atualização muito mais fácil. E também enviar aos seus desenvolvedores as alterações efetuadas no pacote.
- Lançar uma versão baseada em CD-ROM aproximadamente a cada seis meses, com o objetivo particular de ajudar os fundos do projeto…
Aonde obter as mídias de instalação do OpenBSD 4.9 em http://www.openbsd.org/ftp.html
Exemplo de mirror aqui selecione a sua arquitetura ou amd64 ou i386 http://openbsd.org.ar/pub/OpenBSD/4.9/
Vou pegar como exemplo o amd64 caminho completo para baixar a mídia abaixo http://openbsd.org.ar/pub/OpenBSD/4.9/amd64/install49.iso
Agora que temos a mídia vamos a instalação configure a BIOS para iniciar pelo CD ou pela iso em caso de VMs
- Na tela inicial pressione ENTER.
- Agora em (I)stall,(U)upgrade or (S)shell ? informe I
- Agora precisamos selecionar o nosso teclado para listar os possíveis selecione L
- no meu caso vou selecionar br
- Agora precisamos informar o nome da maquina no meu caso openbsd.douglasqsantos.com.br
- Agora chegamos na parte de configuração da interface de rede pressione ENTER
- Agora temos a opção padrão que é dhcp, no meu caso vou setar um ip manualmente então informe o ip ou pressione ENTER para pegar um ip via dhcp no meu caso: 10.0.0.29
- Agora se você setou o ip manualmente temos que definir a mascara de sub-rede: 255.255.254.0
- Agora vamos ter a opção de configurar ipv6 no meu caso vou somente pressionar enter para não setar
- Agora é só pressionar enter para confirmar
- Agora precisamos informar um endereço de gateway: 10.0.0.254
- Agora precisamos informar o domínio de nossa rede como já informei no nome da maquina douglasqsantos.com.br aqui é só pressionar enter
- Agora temos que informar o endereço do dns: 10.0.0.254
- Agora temos que pressionar enter para terminar a configuração de rede
- Agora temos que informar a senha para o root
- Agora temos que confirmar a senha para o root
- Agora vamos ser questionados sobre se o sshd vai ser iniciado no boot vamos só pressionar enter
- Agora vamos ser questionados sobre o serviço de ntpd vamos deixar ele também para iniciar no boot então informe yes
- Agora podemos selecionar um servidor ntp ou deixar o openbsd escolher um padrão vou informar o da usp: ntp.usp.br
- Agora vamos ser questionados sobre o sistema de gerenciador de janelas como estou preparando um servidor vou informar no
- Agora vamos ser questionados se o usuário pode informar o nome em maiúscula ou minuscula e o sistema aceitar vou pressionar somente enter
- Agora vamos ser questionados sobre o Timezone digite ? para listar
- Aqui podemos informar direto America/Sao_Paulo
- Agora vamos selecionar America então digite America
- Agora podemos listar os possíveis valores na America com ?
- Agora vamos ser questionados sobre o disco que vai ser utilizado no meu caso so esta aparecendo o wd0 vou pressionar ENTER
- Agora podemos editar o particionamento ou deixar ele escolher com W vou pressionar W
- Agora o sistema me gerou um particionamento eu posso editar ou mudar vou deixar o padrão então é só informar a
- Ele vai preparar o disco para nós
- agora temos que informar o tipo da instalação como eu já estou com o cd vou informar cd e pressionar enter
- Agora ele pergunta qual a mídia no meu caso ele achou o cd0 vou utilizar esse mesmo então pressione ENTER
- Agora ele pergunta sobre a pathname que é a versão/arquitetura pressione ENTER
- Agora estamos na parte da escolha dos pacotes podemos adicionar ou remover pacotes aqui informar - ou + e o nome do pacote
- aqui vamos retirar todos os pacotes de X então digite -x*
- Agora vamos adicionar o xbase49 pois senão vamos ter que instalar manualmente depois então digite +base49.tgz
- Agora vamos adicionar o suporte a múltiplos processadores +bsd.mp
- Agora vamos retirar o suporte a jogos -game49.tgz
- Agora vamos pressionar ENTER
- Agora temos que confirmar o horário então pressione ENTER
- Agora o sistema já esta instalado agora é só remover a mídia e reiniciar o servidor
- reboot
- Remova a mídia de instalação
Agora após a instalação vamos fazer alguns acertos em nosso OpenBSD
Aqui podemos fazer no console ou via ssh pois deixamos para ele ser habilitado na inicialização
Agora vamos acertar o variável do pkg_path que serve para a referência de onde buscar os pacotes remotos para instalação.
export PKG_PATH=http://openbsd.org.ar/pub/OpenBSD/4.9/packages/`machine -a`/
Para instalarmos pacotes no OpenBSD temos duas opções, podemos utilizar o pkg_add ou o ports, o pkg_add vai buscar o pacote compilado em algum repositório web e manda instalar e as suas dependências, já o ports nós podemos personalizar o nosso pacotes pois temos que efetuar a compilação e a instalação dele.
Vou abordar no início a instalação de alguns pacotes com o pkg_add, porém mais a frente vou abordar o ports Vamos procurar o vim
pkg_add -v vim Ambiguous: vim could be vim-7.3.3p1-gtk2 vim-7.3.3p1-no_x11
Vamos instalar e configurar o VIM, wget e o ntp
pkg_add -v vim-7.3.3p1-no_x11 wget ntp
Nós temos o modo interativo do pkg_add que é utilizar a flag -i, em questões como o nosso vim que temos no mínimo dois pacotes para a instalação e o pkg_add precisa que especifique qual dos pacotes deve ser instalado, com a opção -i ele já nos questiona sobre qual queremos instalar.
Podemos obter uma lista dos pacotes já instalados com o seguinte comando
pkg_info vim-7.3.3p1-no_x11 vi clone, many additional features [...]
Podemos remover um pacote instalado com o pkg_add da seguinte forma
pkg_delete vim
Para atualizarmos um pacote instalado com o pkg_add da seguinte forma
pkg_add -u vim
Vamos acertar a configuração do vim
cp /usr/local/share/vim/vim73/vimrc_example.vim /usr/local/share/vimrc
Agora vamos editar o arquivo do vim para o root vou disponibilizar o vimrc que eu utilizo que tem algumas customizações
wget -c http://wiki.douglasqsantos.com.br/Downloads/scripts/vimrc -O /root/.vimrc
Agora vamos instalar o ls colorido
pkg_add -v gnuls
Agora vamos instalar o bash
pkg_add -v bash
Agora vamos mudar o shell do root
chsh -s /usr/local/bin/bash
Agora vamos acertar algumas configurações de ambiente do root
vim /root/.profile #No Final do arquivo export PS1='\[\033[01;31m\][\[\033[01;37m\]\t\[\033[01;31m\]] \[\033[01;32m\]\u\[\033[01;31m\]@\[\033[01;32m\]\h \[\033[01;31m\][\[\033[01;33m\]\w\[\033[01;31m\]] \[\033[01;37m\]# \[\033[00m\]' export PKG_PATH=http://openbsd.org.ar/pub/OpenBSD/4.9/packages/`machine -a`/ export CVSROOT=anoncvs@anoncvs.openbsd.org.ar:/cvs #CVSROOT=anoncvs@mirror.planetunix.net:/cvs #CVSROOT=anoncvs@anoncvs.ca.openbsd.org:/cvs export EDITOR=vim alias ls="gls --color=auto"
Agora vamos só efetuar logoff e logar novamente para ver as novas configurações
exit
Nosso ambiente depois de configurado vamos ter um shell como o exemplo depois de logar
ssh 10.0.0.22 root@10.0.0.22's password: senha Last login: Mon Oct 3 17:04:52 2011 from 10.0.0.20 OpenBSD 4.9 (GENERIC) #477: Wed Mar 2 06:50:31 MST 2011 Welcome to OpenBSD: The proactively secure Unix-like operating system. Please use the sendbug(1) utility to report bugs in the system. Before reporting a bug, please try to reproduce it with the latest version of the code. With bug reports, please try to ensure that enough information to reproduce the problem is enclosed, and if a known fix for it exists, include that as well. [17:06:33] root@openbsd [~] #
Temos mais uma opção muito show de bola pra shell, para quem trabalha muito com o shell precisamos sempre de ferramentas que nós ajudem então temos o zsh
Vamos instalar ele
pkg_add -r zsh
Agora vamos mudar o shell do usuário root
chsh -s /usr/local/bin/zsh root
Agora vamos obter um arquivo personalizado dele eu peguei o padrão que eu utilizo do Arch Linux
wget -c http://wiki.douglasqsantos.com.br/Downloads/scripts/zshrc -O /root/.zshrc
Vamos fazer um ajuste no .zshrc pois no OpenBSD o ls não tem a opção -b então fica gerando erros
vim /root/.zshrc [...] #Na linha 1452 vamos deixar ela como abaixo alias ls='gls -b -CF '${ls_options:+"${ls_options[*]}"} #Na linha 1462 vamos deixar ela como abaixo alias ls='gls -b -CF'Agora vamos fazer logout e logar novamente
logout
Agora vamos instalar alguma ferramentas
Agora vamos instalar o nmap e o iftop
pkg_add -v nmap iftop
Agora vamos instalar o ports do OpenBSD
Vamos acessar o diretório /usr e baixar o ports
cd /usr ftp ftp://ftp.openbsd.org/pub/OpenBSD/4.9/ports.tar.gz
Agora vamos desempacotar o nosso ports
tar xzvf ports.tar.gz
Agora vamos remover o pacote .tar.gz
rm -rf ports.tar.gz
Procurando pacotes no ports
Vamos acessar o diretório do ports
cd /usr/ports
Agora vamos pesquisar o pacote do rsync
make search key=rsync [...] Port: rsync-3.0.7 Path: net/rsync Info: mirroring/synchronization over low bandwidth links Maint: Marc Espie <espie@openbsd.org> Index: net L-deps: B-deps: STEM->=1.15.4.7p2:textproc/groff R-deps: Archs: any [...]
No resultado temos a palavra chave rsync e em nosso port rsync-3.0.7 o caminho dele é net/rsync dentro do ports, então o seu caminho completo é /usr/ports/net/rsync.
Vamos mandar instalar ele pelo ports
Vamos acessar o diretório do rsync
cd /usr/ports/net/rsync
Agora vamos mandar compilar e instalar ele.
make install distclean
Agora para desinstalar um pacote podemos fazer da seguinte forma
Acesse o diretório do ports instalado
cd /usr/ports/net/rsync
Agora mandamos desinstalar ele
make uninstall
Para reinstalar um pacote ou seja, remover e instalar ele novamente podemos fazer da seguinte forma Acesse o diretório do ports instalado
cd /usr/ports/net/rsync
Agora mandamos desinstalar ele
make reinstall
Configuração de ip manual no OpenBSD
Eu estou utilizando uma interface Realtek com isso ela vai ser uma em0, o arquivo de configuração da interface vai ser /etc/hostname.em0, vamos utilizar o endereço ip 10.101.0.220 e a mascara de sub-rede 255.255.255.0 e o nosso broadcast 10.101.0.255
vim /etc/hostname.em0 inet 10.101.0.220 255.255.255.0 10.101.0.255
Agora se precisarmos inserir mais um endereço ip nessa interface podemos fazer da seguinte forma. O endereço ip adicional que eu vou utilizar é 10.101.0.10
vim /etc/hostname.em0 inet 10.101.0.220 255.255.255.0 10.101.0.255 inet alias 10.101.0.10 255.255.255.0 10.101.0.255
Agora se precisarmos configurar o ipv6 nesta interface podemos fazer da seguinte forma.
vim /etc/hostname.em0 inet6 fec0::1 64
Nós podemos ter tanto o endereço ip4 como ipv6 na interface, então vamos deixar a interface com o endereço ipv4 10.101.0.220 e o ipv6 fec0::1 64
vim /etc/hostname.em0 inet 10.101.0.220 255.255.255.0 10.101.0.255 inet6 alias fec0::1 64
Agora vamos configurar o Gateway para o nosso OpenBSD
O arquivo que devemos inserir o endereço ip do gw é /etc/mygate, vamos lá então inserir o endereço gw como 10.101.0.254
vim /etc/mygate 10.110.0.254
Agora para configurar o servidor DNS, temos que editar o arquivo /etc/resolv.conf
search douglasqsantos.com.br nameserver 10.101.0.253 nameserver 10.101.0.252 lookup file bind
O que foi definido aqui acima é search que é o dominio padrão para a consulta, ou seja quando mandarmos dar um ping em www o servidor já vai entender que ele deve dar um ping em www.douglasqsantos.com.br, em nameserver inserimos os endereços ips do servidores DNS e por ultimo o lookup file bind que serve para utilizar tambem o arquivo /etc/hosts para ajudar na resolução de nomes, em caso de não achar uma resposta no servidor DNS
Agora vamos acertar o nome do nosso servidor no arquivo /etc/myname, o nome da maquina no exemplo vai ser openbsd e o domínio vai ser douglasqsantos.com.br
vim /etc/myname openbsd.douglasqsantos.com.br
Agora para reiniciar a configuração de rede podemos efetuar da seguinte forma
sh /etc/netstart
Para visualizar as rotas do seu server, podemos executar o seguinte comando
netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default 10.101.0.254 UGS 1 32 - 8 em0 10.101.0/24 link#1 UC 2 0 - 4 em0 10.101.0.1 00:24:21:fa:ee:be UHLc 1 76 - 4 em0 10.101.0.254 b6:9c:ad:29:4e:21 UHLc 1 0 - 4 em0 127/8 127.0.0.1 UGRS 0 0 33160 8 lo0 127.0.0.1 127.0.0.1 UH 0 0 33160 4 lo0 224/4 127.0.0.1 URS 0 0 33160 8 lo0 Internet6: [...]
Podemos tambem utilizar o comando route da seguinte forma
route show Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default 10.101.0.254 UGS 1 35 - 8 em0 10.101.0/24 link#1 UC 2 0 - 4 em0 10.101.0.1 00:24:21:fa:ee:be UHLc 1 785 - 4 em0 10.101.0.254 b6:9c:ad:29:4e:21 UHLc 1 0 - 4 em0 loopback localhost UGRS 0 0 33160 8 lo0 localhost localhost UH 0 0 33160 4 lo0 BASE-ADDRESS.MCAST localhost URS 0 0 33160 8 lo0 Internet6: [...]
Agora, vamos ver como podemos configurar um endereço ip com o ifconfig, o ip que eu vou utilizar vai ser 10.101.0.20/24
ifconfig em0 10.101.0.15 netmask 255.255.255.0 broadcast 10.101.0.255
Vamos configurar um ip adicional na interface em0, o ip que eu vou utilizar vai ser 10.101.0.15/24
ifconfig em0 inet alias 10.101.0.15 netmask 255.255.255.0 broadcast 10.101.0.255
Agora podemos visualizar os endereços ips com o seguinte comando
ifconfig -A lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33160 priority: 0 groups: lo inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 inet 127.0.0.1 netmask 0xff000000 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 08:00:27:59:ed:e3 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet6 fe80::a00:27ff:fe59:ede3%em0 prefixlen 64 scopeid 0x1 inet 10.101.0.221 netmask 0xffffff00 broadcast 10.101.0.255 inet 10.101.0.15 netmask 0xffffff00 broadcast 10.101.0.255 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33160 priority: 0 groups: pflogAgora para remover um ip adicional na interface em0, podemos fazer da seguinte forma
ifconfig em0 inet delete 10.101.0.15 netmask 255.255.255.0 broadcast 10.101.0.255
Agora vamos listar os endereços ips da nossa interface
ifconfig -A lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33160 priority: 0 groups: lo inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 inet 127.0.0.1 netmask 0xff000000 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 08:00:27:59:ed:e3 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet6 fe80::a00:27ff:fe59:ede3%em0 prefixlen 64 scopeid 0x1 inet 10.101.0.221 netmask 0xffffff00 broadcast 10.101.0.255 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33160 priority: 0 groups: pflog
Agora para adicionarmos um default gateway pela linha de comando, podemos fazer da seguinte forma
route add default 10.101.0.254
Agora para removermos um default gw para linha de comando, podemos fazer da seguinte forma
route delete default
Adicionando uma rota estática em nosso servidor para a rede 10.102.0.0/24 pelo gw 10.101.0.251.
route add -inet 10.102.0.0/24 10.101.0.251
Agora vamos listar as nossas rotas
route show Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default 10.101.0.254 UGS 1 340 - 8 em0 10.101.0/24 link#1 UC 2 0 - 4 em0 10.101.0.1 00:24:21:fa:ee:be UHLc 1 2994 - 4 em0 10.101.0.254 b6:9c:ad:29:4e:21 UHLc 2 0 - 4 em0 10.102.0/24 10.101.0.251 UGS 0 0 - 8 em0 loopback localhost UGRS 0 0 33160 8 lo0 localhost localhost UH 0 0 33160 4 lo0 BASE-ADDRESS.MCAST localhost URS 0 0 33160 8 lo0 [...]Como pode ser notado a nossa rota foi adicionada com sucesso
Modificando uma rota estática em nosso servidor para a rede 10.102.0.0/24 vamos utilizar agora o gw 10.101.0.250.
route change -inet 10.102.0.0/24 10.101.0.251
Agora vamos listar as nossas rotas
route show Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default 10.101.0.254 UGS 1 340 - 8 em0 10.101.0/24 link#1 UC 2 0 - 4 em0 10.101.0.1 00:24:21:fa:ee:be UHLc 1 2994 - 4 em0 10.101.0.254 b6:9c:ad:29:4e:21 UHLc 2 0 - 4 em0 10.102.0/24 10.101.0.250 UGS 0 0 - 8 em0 loopback localhost UGRS 0 0 33160 8 lo0 localhost localhost UH 0 0 33160 4 lo0 BASE-ADDRESS.MCAST localhost URS 0 0 33160 8 lo0 [...]Como pode ser notado a nossa rota foi alterada com sucesso
Agora para removermos uma rota, podemos fazer da seguinte forma.
route delete -inet 10.102.0.0/24
Agora vamos listar as nossas rotas
route show Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default 10.101.0.254 UGS 1 340 - 8 em0 10.101.0/24 link#1 UC 2 0 - 4 em0 10.101.0.1 00:24:21:fa:ee:be UHLc 1 2994 - 4 em0 10.101.0.254 b6:9c:ad:29:4e:21 UHLc 2 0 - 4 em0 loopback localhost UGRS 0 0 33160 8 lo0 localhost localhost UH 0 0 33160 4 lo0 BASE-ADDRESS.MCAST localhost URS 0 0 33160 8 lo0 [...]Como pode ser notado a nossa rota foi removida com sucesso
Agora caso necessite configurar o servidor para pegar ip do dhcp, podemos fazer da seguinte forma
echo dhcp > /etc/hostname.em0
Agora para fazer o cliente requisitar um endereço ip para o servidor DHCP, devemos executar o seguinte comando
dhclient em0
Habilitando o OpenBSD trabalhar como roteador
sysctl net.inet.ip.forwarding=1
Agora para deixar essa configuração na inicialização do sistema
echo "net.inet.ip.forwarding=1" >> /etc/sysctl.conf
Para desligar o servidor podemos utilizar o seguinte comando
shutdown -p -h now
Opcional
Vamos fazer um update de todo o sistema. Quando instalamos o OpenBSD pelo cd ou ftp instalamos a versão release que é versão base do sistema sem patchs de correção, para garantirmos a segurança do sistema vamos atualizar o sistema para a vesão stable que é a versão com os patchs de correção ou ainda podemos fazer um upgrade do sistema, atualizando ele para a versão current que é a versão que está em desenvolvimento que temos novas funcionalidades, porém ainda não é a versão final.
Vamos ver como atualizamos o OpenBSD para a versão stable.
Temos que baixar os novos binários do sistema e a sua base que está em /usr, temos que atualizar o ports e o xenocara para que o sistema funcione corretamente, pois se atualizarmos somente a base do sistema e utilizarmos os ports antigos, vamos acabar corrompendo o nosso sistema.
Atualizando para a versão stable.
Vamos acessar o diretório /usr que é aonde se encontra o src que temos os fontes e o ports, que precisamos atualizar.
cd /usr
Agora vamos baixar o usr o ports e o xenocara, mas primeiro precisamos definir o repositório cvs, podemos obter uma lista dos repositórios cvs em http://www.openbsd.org/anoncvs.html.
export CVSROOT=anoncvs@anoncvs.openbsd.org.ar:/cvs
Agora vamos obter os nossos fontes
OBS: precisamos obter o xenocara somente se estivermos utilizando o X
Eu vou não vou fazer um upgrade do sistema vou fazer um update para a stable da versão 4.9 ;)
cvs -d$CVSROOT checkout -rOPENBSD_4_9 -P src ports xenocara
Agora se pretende fazer um upgrade do sistema, ou seja atualizar para a versão current devemos fazer da seguinte forma
Vamos definir o repositório cvs
export CVSROOT=anoncvs@anoncvs.openbsd.org.ar:/cvs
Agora vamos baixar os arquivos da versão current
cvs -d$CVSROOT checkout -P src ports xenocara
Uma vez que já temos os fontes podemos atualizar eles com o seguinte comando. Não importando se é a versão stable ou a current.
cvs -d$CVSROOT up -Pd
Agora que já obtemos os fontes vamos compilar o kernel, para que ele seja compatível com o resto do sistema.
Vamos acessar o diretório do nosso kernel, eu estou utilizando a variável machine que já determina qual arquitetura que o sistema está utilizando, porém você pode já passar por ex: i386, amd64, etc.
cd /usr/src/sys/arch/`machine`/conf
Agora vamos mandar o config gerar os diretórios para a nossa compilação
config GENERIC
Agora vamos acessar o diretório para a nossa compilação
cd ../compile/GENERIC
Agora vamos mandar compilar o nosso kernel e suas dependências
make clean && make depend && make
Agora vamos mandar instalar o nosso kernel.
make install
Agora vamos acertar o espaço de usuário (as utilidades e arquivos de suporte)
Vamos limpar o diretório /usr/obj
rm -rf /usr/obj/*
Agora vamos refazer as ligações simbólicas
cd /usr/src make obj
Note que o uso do diretório /usr/obj é obrigatório, temos que limpar este diretório para ele receber os novos arquivos. A falha nesse passo antes de compilar o resto da árvore irá deixar sua árvore src em mau estado.
Vamos acessar /usr/src/etc e acertar o diretório que vai receber os arquivos.
cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
Agora vamos compilar o sistema
cd /usr/src make build
Isso compila e instala todos os utilitários do espaço de usuário(as utilidades e arquivos de suporte) na ordem apropriada. Esse é um passo que consome bastante tempo – uma máquina muito rápida pode completar isso em cerca de uma hora, uma máquina muito lenta pode levar vários dias.
Quando esse passo está completo, nosso sistema está totalmente atualizado o kernel, novos binários e arquivos.
Acompanhar status do sistema
systat vm -w 1