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

  1. Na tela inicial pressione ENTER.
  2. Agora em (I)stall,(U)upgrade or (S)shell ? informe I
  3. Agora precisamos selecionar o nosso teclado para listar os possíveis selecione L
  4. no meu caso vou selecionar br
  5. Agora precisamos informar o nome da maquina no meu caso openbsd.douglasqsantos.com.br
  6. Agora chegamos na parte de configuração da interface de rede pressione ENTER
  7. 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
  8. Agora se você setou o ip manualmente temos que definir a mascara de sub-rede: 255.255.254.0
  9. Agora vamos ter a opção de configurar ipv6 no meu caso vou somente pressionar enter para não setar
  10. Agora é só pressionar enter para confirmar
  11. Agora precisamos informar um endereço de gateway: 10.0.0.254
  12. Agora precisamos informar o domínio de nossa rede como já informei no nome da maquina douglasqsantos.com.br aqui é só pressionar enter
  13. Agora temos que informar o endereço do dns: 10.0.0.254
  14. Agora temos que pressionar enter para terminar a configuração de rede
  15. Agora temos que informar a senha para o root
  16. Agora temos que confirmar a senha para o root
  17. Agora vamos ser questionados sobre se o sshd vai ser iniciado no boot vamos só pressionar enter
  18. Agora vamos ser questionados sobre o serviço de ntpd vamos deixar ele também para iniciar no boot então informe yes
  19. Agora podemos selecionar um servidor ntp ou deixar o openbsd escolher um padrão vou informar o da usp: ntp.usp.br
  20. Agora vamos ser questionados sobre o sistema de gerenciador de janelas como estou preparando um servidor vou informar no
  21. 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
  22. Agora vamos ser questionados sobre o Timezone digite ? para listar
  23. Aqui podemos informar direto America/Sao_Paulo
  24. Agora vamos selecionar America então digite America
  25. Agora podemos listar os possíveis valores na America com ?
  26. Agora vamos ser questionados sobre o disco que vai ser utilizado no meu caso so esta aparecendo o wd0 vou pressionar ENTER
  27. Agora podemos editar o particionamento ou deixar ele escolher com W vou pressionar W
  28. Agora o sistema me gerou um particionamento eu posso editar ou mudar vou deixar o padrão então é só informar a
  29. Ele vai preparar o disco para nós
  30. agora temos que informar o tipo da instalação como eu já estou com o cd vou informar cd e pressionar enter
  31. Agora ele pergunta qual a mídia no meu caso ele achou o cd0 vou utilizar esse mesmo então pressione ENTER
  32. Agora ele pergunta sobre a pathname que é a versão/arquitetura pressione ENTER
  33. Agora estamos na parte da escolha dos pacotes podemos adicionar ou remover pacotes aqui informar - ou + e o nome do pacote
  34. aqui vamos retirar todos os pacotes de X então digite -x*
  35. Agora vamos adicionar o xbase49 pois senão vamos ter que instalar manualmente depois então digite +base49.tgz
  36. Agora vamos adicionar o suporte a múltiplos processadores +bsd.mp
  37. Agora vamos retirar o suporte a jogos -game49.tgz
  38. Agora vamos pressionar ENTER
  39. Agora temos que confirmar o horário então pressione ENTER
  40. Agora o sistema já esta instalado agora é só remover a mídia e reiniciar o servidor
  41. reboot
  42. 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: pflog

Agora 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

Referências