Instalação e configuração inicial do OpenBSD 5.2

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 5.2 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/5.2/

Vou pegar como exemplo o amd64 caminho completo para baixar a mídia http://openbsd.locaweb.com.br/pub/OpenBSD/5.2/amd64/install52.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
  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: 192.168.1.73
  8. Agora se você setou o ip manualmente temos que definir a mascara de sub-rede: 255.255.255.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: 192.168.1.1
  12. Agora precisamos informar o domínio de nossa rede: douglasqsantos.com.br
  13. Agora temos que informar o endereço do dns: 192.168.1.1
  14. Agora temos que informar a senha para o root
  15. Agora temos que confirmar a senha para o root
  16. Agora vamos ser questionados sobre se o sshd vai ser iniciado no boot vamos só pressionar enter
  17. Agora vamos ser questionados sobre o serviço de ntpd vamos deixar ele também para iniciar no boot então informe yes
  18. Agora podemos selecionar um servidor ntp ou deixar o openbsd escolher um padrão vou informar o da usp: ntp.usp.br
  19. Agora vamos ser questionados sobre o sistema de gerenciador de janelas como estou preparando um servidor vou informar no
  20. 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
  21. Agora vamos ser questionados sobre o Timezone digite ? para listar
  22. Aqui podemos informar direto America/Sao_Paulo
  23. Agora vamos selecionar America então digite America
  24. Agora podemos listar os possíveis valores na America com ?
  25. Agora vamos ser questionados sobre o disco que vai ser utilizado no meu caso so esta aparecendo o wd0 vou pressionar ENTER
  26. Agora vamos ser questionados se queremos utilizar os DUIDs no /etc/fstab amos 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. Agora vamos adicionar o suporte a múltiplos processadores +bsd.mp
  35. Agora vamos retirar o suporte a jogos -game52.tgz
  36. Agora vamos pressionar ENTER
  37. Agora temos que confirmar que não precisamos de outros repositórios então pressione ENTER
  38. Agora o sistema talvez reclame to horário confirme ele e pressione ENTER
  39. Agora o sistema já esta instalado agora é só remover a mídia e reiniciar o servidor
  40. reboot
  41. Remova a mídia de instalação

Quais arquivos são necessários para a instalação?

A instalação completa do OpenBSD é dividida em vários pacotes de arquivos separados. Nem todos os aplicativos necessitam de todos os pacotes de arquivos, no entanto, é recomendado aos novos usuários instalar TODOS os pacotes de arquivos. Aqui você tem uma visão geral de cada um deles:

  • bsd - Esse é o kernel. Necessário
  • bsd.mp - Kernel para os sistemas com múltiplos processadores (SMP) (somente para algumas plataformas).
  • bsd.rd - Kernel de disco RAM.
  • base52.tgz - Contém o sistema base do OpenBSD. Necessário
  • etc52.tgz - Contém todos os arquivos de /etc. Necessário
  • comp52.tgz - Contém o compilador e suas ferramentas, cabeçalhos e bibliotecas.
  • man52.tgz - Contém as páginas de manual.
  • misc52.tgz - Contém informações diversas, documentos sobre configuração.
  • game52.tgz - Contém jogos para o OpenBSD.
  • xbase52.tgz - Contém as bibliotecas e utilitários da base do X11.
  • xetc52.tgz - Contém os arquivos de configuração /etc/X11 e /etc/fonts.
  • xfont52.tgz - Contém o servidor de fontes do X11 e fontes.
  • xserv52.tgz - Contém os servidores X do X11.
  • xshare52.tgz - Contém páginas de manual, definições de locale, arquivos de inclusão, etc. para o X.

Os pacotes etc52.tgz e xetc52.tgz não são instalados como parte de uma atualização de versão, somente como parte de uma instalação completa, assim nenhuma personalização que você fez é perdida. Você tem que atualizar manualmente seus diretórios /etc, /dev e /var.

Por que tenho que instalar o X se eu não uso o modo gráfico?

Mesmo que você não tenha a intenção de executar o X, alguns pacotes de terceiros precisam que as bibliotecas ou outros utilitários do X estejam instalados no seu sistema. Essa dependência pode ser facilmente resolvida instalando apenas o xbase52.tgz; o resto do X nem sempre é necessário. Muitas pessoas insistem em não instalar o X em seus sistemas, sem ter uma razão válida:

  • Por si só, instalar o X não causa a execução de nenhum programa no sistema.
  • Por si só, instalar o X em um sistema não influencia o risco de problemas externos de segurança.

Se alguém já está DENTRO do seu sistema, ele pode instalar o que ele quiser, então a presença ou ausência do X não muda a situação.

As únicas partes do X que estão em execução são as partes requeridas pelo seu aplicativo.

O espaço exigido pelo X é relativamente pequeno para hardware moderno.

As pessoas às vezes perdem um monte de tempo e esforços tentando escolher partes do xbase52.tgz e usar somente os arquivos que elas precisam para instalar algum aplicativo. Isso não é somente sem sentido, como também é um esforço que tem que ser repetido a cada ciclo de atualização de versão, o que significa que provavelmente você não atualizará corretamente a versão do seu sistema, criando problemas de segurança REAIS.

SE você precisa do X, simplesmente instale-o. Isso não vai lhe causar nenhum prejuízo maior que o aplicativo que necessita dele causaria.

Eu não quero instalar os compiladores

Tudo bem, não instale, mas, por favor, não diga a você mesmo que isso é por “razões de segurança”. Se um atacante está há muito tempo no seu sistema, ao ponto de que a presença ou ausência do compilador é importante, ele mesmo pode instalar o compilador. Por outro lado, o pacote de arquivos compXX.tgz é relativamente grande e tem um monte de arquivos, e assim pode levar um tempo na instalação ou atualização de versão, e em sistemas lentos ou pequenos isso pode ser relevante.

Se você decidir não instalar o compilador, você provavelmente vai precisar de um outro sistema para manter e compilar software atualizado. Existem mais sistemas que foram comprometidos por causa de manutenção inapropriada do que por causa de um compilador que foi instalado.

De que forma eu devo particionar meu disco?

Obviamente, a resposta para essa pergunta varia com base no tipo de uso pretendido para seu sistema. O OpenBSD pode ser instalado em pequenos discos de 512M, mas instalar em um dispositivo desse tamanho é tarefa para usuários avançados. A menos que você tenha alguma experiência, um HD de 4G a 8G é um ponto de partida recomendado.

Diferente de muitos outros SOs, o OpenBSD incentiva os usuários a particionar o disco em várias partições em vez de apenas uma ou duas partições grandes. Existem várias razões para particionar o seu disco:

Segurança: Você pode marcar alguns sistemas de arquivos como 'nosuid', 'nodev', 'noexec', 'readonly', etc. Isso é feito para você pelo processo de instalação se você utilizar as partições recomendadas. Estabilidade: Um usuário, ou um programa malcomportado, pode encher o sistema de arquivos com lixo se tiver permissões de escrita nele. Seus programas principais que, é claro, executam em uma partição diferente não serão interrompidos.

Velocidade: Um sistema de arquivos que é escrito muitas vezes pode começar a ficar muito fragmentado. (Felizmente, o sistema de arquivos ffs que o OpenBSD usa não tem tendência à fragmentação.)

Integridade: Se um sistema de arquivos se corromper por alguma razão, os seus outros sistemas de arquivos quase sempre continuarão em bom estado.

Tamanho: Muitas máquinas possuem limites de áreas no disco de onde a ROM pode carregar o kernel. Em alguns casos esse limite pode ser muito pequeno (504M para alguns 486 antigos), em outros casos um limite muito maior (por exemplo, 2G, 8G, ou 128G em sistemas i386). Enquanto o kernel pode terminar em qualquer lugar dentro da partição raiz, a partição raiz deve estar dentro dessa área. Para mais detalhes, veja esta seção. Um bom guia pode ser manter a sua partição / completamente abaixo de 2G, a menos que você saiba que sua plataforma (e máquina em particular) pode manipular mais (ou menos) do que isso.

Apenas para leitura: Você pode montar partições que você nunca ou raramente utiliza para escrita como “apenas para leitura” (“Read-only”) a maior parte do tempo. Isso elimina a necessidade da execução do fsck(8) após um travamento ou uma interrupção de energia, e pode ajudar a prevenir a alteração não-intencional de dados.

fsck(8): Partições muito grandes requerem mais memória RAM para executar o fsck(8), e em sistemas com pouca memória você pode acabar tendo que usar swap, o que resulta em uma execução demorada do fsck. Dado um espaço em disco suficiente, o instalador do OpenBSD cria por padrão as seguintes partições:

  • / - root: Além de ser onde os outros sistemas de arquivos são montados, o sistema de arquivos raiz contém todos os arquivos necessários para inicializar o OpenBSD. Isso inclui o kernel, mais os utilitários básicos em /sbin e /bin, os arquivos de configuração em /etc e o diretório de dispositivos, /dev, que são todos utilizados para colocar o sistema em funcionamento. O sistema de arquivos raiz pode ter um tamanho pequeno de 60M, embora um tamanho de 100M a 200M seja melhor para uma máquina que passará por muitos ciclos de atualização de versão. A partição 'a' do seu drive de inicialização torna-se a sua partição raiz automaticamente. ALGUMAS plataformas colocam restrições na localização física da partição no disco (ou seja, deve estar no começo do disco) para que a inicialização ocorra.
  • Swap: Além de ser utilizada como swap, essa partição também é utilizada para guardar descargas de memória após travamentos do sistema, então é sugerido que o espaço de swap (se algum espaço for definido) seja tão grande quanto a maior quantidade de memória RAM que você costuma ter instalada na máquina. Leia mais sobre isso na FAQ 14, Swap.
  • /tmp: Esse é um diretório que pode ser escrito por todo mundo e é usado para armazenamento temporário (como o nome sugere!). A maioria dos sistemas podem se manter com quantidades modestas de armazenamento nessa partição, 50M muitas vezes é tudo que você vai precisar, embora existam alguns aplicativos que utilizam muito, muito mais. Embora esse diretório possa ser escrito por todo mundo, quando ele é uma partição separada o OpenBSD a monta como nodev e nosuid, que minimiza as possibilidades desse diretório ser utilizado para abusar do seu sistema. Note que esse diretório é limpo na reinicialização, e arquivos deixados intocados por 24 horas são removidos durante a noite.
  • /var: Esse diretório e ponto de montagem é utilizado para um MONTE de coisas e, dependendo da sua utilização, pode ser o primeiro candidato a ser subdividido em mais partições. Algumas das coisas que vêm para esse diretório (e os pontos de montagem adicionais em potencial):
  • /var/log: Registros de dados do sistema.
  • /var/mail: Caixas de entrada de correio eletrônico.
  • /var/spool: Correio eletrônico de saída (e outras coisas)
  • /var/www: O servidor Web do OpenBSD mora aqui.
  • /var/tmp: Esse é um diretório de arquivos temporários “persistente”, já que os arquivos colocados aqui NÃO são removidos na reinicialização. Por exemplo, o vi(1) utiliza esse diretório para armazenamento temporário, então se o seu computador trava ou é reinicializado enquanto você está editando um arquivo, os arquivos desse diretório podem ser utilizados para recuperar sua sessão de edição. Arquivos deixados nesse diretório por 24 horas, entretanto, serão removidos pelos scripts de limpeza, daily(8), executados durante a noite.
  • /var/crash: Se o sistema entra em pânico, ele tenta salvar uma descarga de memória na partição swap antes de reinicializar. Essa descarga de memória então é salva em /var/crash na reinicialização, dessa forma /var precisa ter tanto espaço livre quanto o sistema tem de memória RAM para que essa tarefa funcione automaticamente.
  • /usr: Esse é o lugar onde encontra-se a maior parte do OpenBSD. Binários de programas, bibliotecas, documentação, páginas de manual, etc. estão todos localizados no diretório /usr. Os arquivos nesse ponto de montagem praticamente não são alterados – em muitos casos você pode montar facilmente a partição /usr como apenas para leitura, sem efetuar nenhuma outra mudança até a sua próxima atualização de versão ou atualização do sistema.
  • /usr/X11R6: Esse é o lugar onde encontra-se o sistema X Window. Os binários do X, arquivos de fontes, bibliotecas, etc. estão todos aqui. A única parte do X que não está presente aqui são os arquivos de configuração.
  • /usr/local: Em uma instalação padrão do OpenBSD, esse ponto de montagem/diretório está completamente vazio. Ele é utilizado para abrigar os binários instalados localmente e os binários dos aplicativos locais.
  • /usr/src: Esse diretório guarda os arquivos de código fonte do sistema básico, mas não o X nem os portes. Esse diretório está vazio por padrão; você tem que enchê-lo, conforme detalhado na FAQ 5.
  • /usr/obj: Esse diretório é populado durante o processo de compilação com arquivos objetos e binários. Ter esse diretório em um ponto de montagem separado permite que ele seja formatado em vez de arquivo por arquivo ser apagado, e isso pode ser significantemente mais rápido.
  • /home: Esse é o lugar para onde os arquivos dos usuários vão. Ter esse diretório como uma partição separada torna fácil a reinstalação completa do seu sistema; simplesmente não formate essa partição durante a reinstalação.

Algumas considerações adicionais sobre particionamento:

Para sua primeira tentativa em um sistema experimental, uma grande partição / e a swap pode ser mais fácil se você não sabe de quanto espaço necessita. Fazendo isso você estará sacrificando algumas características de segurança do OpenBSD que requerem sistemas de arquivos separados para /, /tmp, /var, /usr e /home. Entretanto, você provavelmente não colocará sua primeira instalação como um sistema de produção.

Um sistema exposto à Internet, ou a outras forças hostis, deve ter um /var separado (e até mesmo um /var/log separado) para o sistema de registro.

Uma partição /home pode ser muito útil. Nova versão do sistema operacional? Limpe e reinstale tudo, deixando a sua partição /home intacta. Lembre-se de salvar uma cópia dos seus arquivos de configuração!

Uma partição separada para qualquer coisa que acumule grandes quantidades de arquivos que necessitam ser removidos: pode ser mais rápido formatar e recriar do que apagar os arquivos. Veja na FAQ Construção a partir do código fonte um exemplo (/usr/obj).

Se você deseja reconstruir o seu sistema a partir do código fonte, por qualquer razão, o código fonte encontra-se em /usr/src. Se você não deseja criar uma partição separada para /usr/src, tenha certeza que /usr tem espaço suficiente.

Um fato geralmente esquecido: você não precisa alocar todo o espaço em disco quando você configura o sistema! Visto que agora você vai achar um desafio comprar um disco rígido novo menor que 100GB, pode fazer sentido deixar uma parte do seu disco desalocado. Se você mudar o tamanho de uma partição, você pode alocar uma nova partição a partir do seu espaço não utilizado, duplicar a partição existente para a nova partição, mudar o /etc/fstab para apontar para a nova partição, remontar, e você terá mais espaço.

Se você fizer as suas partições muito próximas do tamanho mínimo requerido, provavelmente você lamentará mais tarde, quando for a hora de fazer a atualização de versão do seu sistema.

Se você fizer partições muito grandes, tenha em mente que sempre que for executar a verificação do sistema de arquivos utilizando o fsck(8), ele irá requerer 1MB de RAM por gigabyte do sistema de arquivos, além de consumir muito tempo e às vezes ser impraticável em sistemas antigos e muito lentos.

Se você permitir que usuários escrevam em /var/www (ou seja, páginas Web pessoais), você talvez deseje colocá-lo em uma partição separada, assim você pode usar quotas para restringir o espaço utilizado pelos usuários, e se a partição ficar cheia, nenhuma outra parte do seu sistema será comprometida.

Você talvez queira criar uma partição /altroot, como descrito em daily(8). Isso pode fazer uma cópia diária da sua partição /, dando a você uma cópia extra do seu kernel e arquivos de configuração do diretório /etc se alguma coisa acontecer na sua partição raiz. Obviamente, a partição /altroot precisa ser tão grande quanto /. Se você tem um segundo disco rígido e algo duplicando o resto do seu disco, como raid(4) baseado em software ou uma cópia periódica usando dump(8)/restore(8), esse disco pode ser inicializado depois da remoção do disco primário.

Compilar alguns portes a partir do código fonte pode consumir uma grande quantidade de espaço das suas partições /usr e /tmp. Essa é outra razão pela qual aconselhamos que você utilize pacotes pré-compilados. Alguns poucos editores utilizam /var/tmp como espaço de partida, e esse diretório precisa ser tão grande ou maior que o enorme arquivo que você editar. Se você planeja editar arquivos de 500M, sua partição /var ou /var/tmp precisa ser maior do que você provavelmente tinha planejado.

Ajustes Iniciais

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=ftp://openbsd.locaweb.com.br/pub/OpenBSD/5.2/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 -I vim
Ambiguous: vim could be vim-7.3.154p2-no_x11 vim-7.3.154p2-gtk2

Vamos instalar e configurar o VIM, wget e o ntp

pkg_add -v vim-7.3.154p2-no_x11 wget ntp dos2unix colorls

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 
gettext-0.18.1p3    GNU gettext
libiconv-1.14       character set conversion library
libidn-1.25         internationalized string handling
ntp-4.2.6pl5p0      Network Time Protocol reference implementation
vim-7.3.154p2-no_x11 vi clone, many additional features
wget-1.13.4         retrieve files from the web via HTTP, HTTPS and FTP

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 converter o arquivo

dos2unix /root/.vimrc

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

Agora vamos criar o .bashrc

vim ~/.bashrc
#.bashrc
    PS1='\[\033[01;31m\][\[\033[01;37m\]\t\[\033[01;31m\]] \[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]# '

    alias ls='/usr/local/bin/colorls -G'
    alias dir='dir --color=auto'
    alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

export EDITOR=vim
export PAGER=less
export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

export PKG_PATH=ftp://openbsd.locaweb.com.br/pub/OpenBSD/5.4/packages/`machine -a`/
export ALT_PKG_PATH=ftp://openbsd.org.ar/pub/OpenBSD/5.4/packages/`machine -a`/
export CVSROOT=anoncvs@anoncvs.openbsd.org.ar:/cvs

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

mesg y

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 root@192.168.1.73
root@192.168.1.73's password: 
Last login: Thu Nov 15 17:21:18 2012 from 192.168.1.2
OpenBSD 5.2 (GENERIC) #309: Wed Aug  1 09:58:55 MDT 2012

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:28:17] 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

Agora precisamos converter ele em formato unix

dos2unix /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='/usr/local/bin/colorls -G '${ls_options:+"${ls_options[*]}"}
#Na linha 1462 vamos deixar ela como abaixo
alias ls='/usr/local/bin/colorls -G'
#No final do arquivo acrecentar as seguintes linhas
#Repositórios para a versão 5.2
export PKG_PATH=ftp://openbsd.locaweb.com.br/pub/OpenBSD/5.2/packages/`machine -a`/
export ALT_PKG_PATH=ftp://openbsd.org.ar/pub/OpenBSD/5.2/packages/`machine -a`/
#export PKG_PATH=http://openbsd.locaweb.com.br/pub/OpenBSD/5.2/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

Agora vamos fazer logout e logar novamente

logout

Agora vamos logar novamente

ssh root@192.168.1.73
root@192.168.1.73's password: 
Last login: Thu Nov 15 17:28:15 2012 from 192.168.1.2
OpenBSD 5.2 (GENERIC) #309: Wed Aug  1 09:58:55 MDT 2012

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.

root@openbsd ~ #

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://openbsd.locaweb.com.br/pub/OpenBSD/5.2/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

Agora vamos obter a base do x

cd /
ftp ftp://openbsd.locaweb.com.br/pub/OpenBSD/5.2/amd64/xetc52.tgz
ftp ftp://openbsd.locaweb.com.br/pub/OpenBSD/5.2/amd64/xbase52.tgz

Agora vamos desempacotar

tar -xzvf xbase52.tgz
tar -xzvf xetc52.tgz

Agora vamos remover os pacotes

rm -rf xbase52.tgz
rm -rf xetc52.tgz

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.9
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 192.168.1.73 e a mascara de sub-rede 255.255.255.0 e o nosso broadcast 192.168.1.255

vim /etc/hostname.em0
inet 192.168.1.73 255.255.255.0 192.168.1.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 192.168.1.73 255.255.255.0 192.168.1.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 192.168.1.73 255.255.255.0 192.168.1.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
192.168.1.1

Agora para configurar o servidor DNS, temos que editar o arquivo /etc/resolv.conf

search douglasqsantos.com.br
nameserver 192.168.1.1
nameserver 192.168.1.2
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            192.168.1.1        UGS        4    24739     -     8 em0  
127/8              127.0.0.1          UGRS       0        0 33152     8 lo0  
127.0.0.1          127.0.0.1          UH         1       43 33152     4 lo0  
192.168.1/24       link#1             UC         2        0     -     4 em0  
192.168.1.1        7c:4f:b5:f0:76:dd  UHLc       1       72     -     4 em0  
192.168.1.2        f4:6d:04:75:fa:58  UHLc       1   114257     -     4 em0  
224/4              127.0.0.1          URS        0        0 33152     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            dsldevice.lan      UGS        4    24741     -     8 em0  
loopback           localhost          UGRS       0        0 33152     8 lo0  
localhost          localhost          UH         1       43 33152     4 lo0  
192.168.1/24       link#1             UC         2        0     -     4 em0  
dsldevice.lan      7c:4f:b5:f0:76:dd  UHLc       1       72     -     4 em0  
192.168.1.2        f4:6d:04:75:fa:58  UHLc       1   114347     -     4 em0  
BASE-ADDRESS.MCAST localhost          URS        0        0 33152     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 192.168.1.73 netmask 255.255.255.0 broadcast 192.168.1.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 33152
        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:8f:61:49
        priority: 0
        groups: egress
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        inet 192.168.1.73 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fe8f:6149%em0 prefixlen 64 scopeid 0x1
        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 33152
        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 33152
        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:8f:61:49
        priority: 0
        groups: egress
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        inet 192.168.1.73 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fe8f:6149%em0 prefixlen 64 scopeid 0x1
enc0: flags=0<>
        priority: 0
        groups: enc
        status: active
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33152
        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 192.168.1.2

route add -inet 10.102.0.0/24 192.168.1.2

Agora vamos listar as nossas rotas

route show
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            dsldevice.lan      UGS        1        7     -     8 em0  
10.102.0/24        192.168.1.2        UGS        0        0     -     8 em0  
loopback           localhost          UGRS       0        0 33152     8 lo0  
localhost          localhost          UH         1       43 33152     4 lo0  
192.168.1/24       link#1             UC         2        0     -     4 em0  
dsldevice.lan      7c:4f:b5:f0:76:dd  UHLc       1      108     -     4 em0  
192.168.1.2        f4:6d:04:75:fa:58  UHLc       2   115480     -     4 em0  
BASE-ADDRESS.MCAST localhost          URS        0        0 33152     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 192.168.1.3

route change -inet 10.102.0.0/24 192.168.1.3

Agora vamos listar as nossas rotas

route show
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            dsldevice.lan      UGS        1        8     -     8 em0  
10.102.0/24        192.168.1.3        UGS        0        0     -     8 em0  
loopback           localhost          UGRS       0        0 33152     8 lo0  
localhost          localhost          UH         1       43 33152     4 lo0  
192.168.1/24       link#1             UC         3        0     -     4 em0  
dsldevice.lan      7c:4f:b5:f0:76:dd  UHLc       1      119     -     4 em0  
192.168.1.2        f4:6d:04:75:fa:58  UHLc       1   115543     -     4 em0  
192.168.1.3        link#1             UHLc       1        0     -     4 em0  
BASE-ADDRESS.MCAST localhost          URS        0        0 33152     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            dsldevice.lan      UGS        1        9     -     8 em0  
loopback           localhost          UGRS       0        0 33152     8 lo0  
localhost          localhost          UH         1       43 33152     4 lo0  
192.168.1/24       link#1             UC         3        0     -     4 em0  
dsldevice.lan      7c:4f:b5:f0:76:dd  UHLc       1      131     -     4 em0  
192.168.1.2        f4:6d:04:75:fa:58  UHLc       1   115607     -     4 em0  
192.168.1.3        link#1             UHLc       0        0     -     4 em0  
BASE-ADDRESS.MCAST localhost          URS        0        0 33152     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

Vou atualizar para a versão mais recente da 5.2 não vou fazer um upgrade ;)

cvs -d$CVSROOT checkout -rOPENBSD_5_2 -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

Agora vamos reiniciar o servidor para testarmos o novo sistema

reboot

Agora vamos logar novamente

ssh root@192.168.1.72
root@192.168.1.72's password: 
Last login: Thu Nov 15 15:04:23 2012 from 192.168.1.2
OpenBSD 5.2 (GENERIC) #0: Thu Nov 15 13:03:11 BRST 2012

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.

root@openbsd ~ # 

Referências