OpenBSD, FreeBSD: sua filosofia de atualização?

14

Eu usei o FreeBSD por cerca de 5 anos - server / Desktop - e eu tenho tendência a levar meu apt-get / yum para atualizar todos os hábitos comigo (eu também admin Debian / RHEL / Cent boxes - eu sei, eu sei ... deve ser mais exigente, independentemente da plataforma). Então é geralmente um:

portsnap fetch
portsnap update
portmanager -u

Para as portas

Algumas vezes seguido por:

freebsd-update fetch
freebsd-update install

Para o sistema ... etc. Em seguida, limpe todas as bagunças depois ... se elas ocorrerem.

Isso, eu percebo, é um modo não-BSD razoavelmente excessivo de fazer as coisas. Qual é a sua filosofia para as suas caixas BSD? Você executa uma portaudit / portversion - verifica a saída e depois a atualiza (faz o deinstall ... etc) após uma consideração cuidadosa?

Sou relativamente novo no OpenBSD, confesso. Eu me vejo cvsupping a árvore de ports, executando o script "out of date", então apenas atualizando as portas críticas --- mas deixando o kernel / binários sozinho e apenas atualizando a cada seis meses. Você corrige / recompila / reconstrói o kernel, binários --- por quê?

O que é uma abordagem conservadora para serviços críticos (razoavelmente crítica - isso não é um banco ou hospital) em caixas BSD? Você está usando uma abordagem semelhante em suas caixas de Linux? Eu geralmente não toco o kernel em nenhum servidor, a menos que um alerta de segurança tenha atingido o terror em minha alma.

Sim, há documentos e livros em abundância - o que vocês realmente fazem? Assumindo que sabemos o básico - qual é a sabedoria? Casos de uso / ambientes e cenários variam, assim como as apostas / partes interessadas / usuários. Livros e páginas de manual abrangem ferramentas e usos, mas carecem de aplicação prática. Recomende um livro se você souber de um que o cobre!

Obrigado pela leitura!

Bubnoff

Conclusões ~ Obrigado a todos que tiveram tempo para responder a este post. Minha estratégia geral agora é seguir as listas de discussão para ambos os BSDs e ser mais seletiva / criteriosa com a atualização do que fui no passado.

FreeBSD ~ Portaudit é uma boa resposta. Com as listas de discussão e auditorias diligentes, acho que isso servirá bem aqui. É interessante a ênfase diferente nas portas entre o OpenBSD e o FreeBSD.

OpenBSD ~ Irá seguir a lista de discussão e usar as ferramentas de pacote (pkg_info e pkg_add -u) onde for considerado crítico. Upgrades: Parece que você precisa atualizar pelo menos uma vez por ano. Eles suportam o mais novo lançamento mais um de volta - então agora é de 4,8 e 4,7.

Obrigado novamente.

    
por Bubnoff 04.12.2010 / 03:11

6 respostas

9

Certifique-se de verificar suas portas instaladas para pacotes vulneráveis de vez em quando: portaudit -Fda

    
por 04.12.2010 / 21:00
4

Eu não tenho certeza se há um "modo BSD" específico para fazer esse tipo de coisa. Tudo se resume em saber o que está sendo atualizado e testado - coisas genéricas sobre o sysadmin. Felizmente, freebsd-update e portsnap tornam o "saber o que" bastante trivial.

Mas, desde que você pediu detalhes, quando eu agrupava um grande número de máquinas FreeBSD, eles eram todos nós em um cluster. Máquinas autônomas não seriam tão diferentes disso, mas eu acho que você poderia fazer isso vagamente como um 'devops' para seus serviços de produção. No final, é sempre uma boa ideia ter ambientes de teste e produção separados.

Na situação do cluster:

  • Cada máquina montada / usr / src , / usr / obj e / usr / ports via NFS.
  • Dependendo do seu orçamento, você pode ter uma máquina de preparação / criação ou designar um nó de cluster como o nó de preparação / construção.
  • O nó intermediário tinha uma cópia diferente de / usr / ports
  • O nó intermediário atualizaria src-all e ports-all via cvsup todas as noites
  • No caso de uma atualização necessária, o nó de teste seria retirado da rotação e buildworld , installworld e portupgrade seriam executar.
  • O nó intermediário seria testado completamente.
  • / usr / ports seria trocado no host NFS
  • Cada nó do cluster seria rotacionado para fora, executado installworld e portupgrade , testado e, em seguida, rotacionado novamente.

Obviamente, isso era no caso de um sistema e de uma atualização de ports, mas o procedimento era bastante similar, atualizando apenas pacotes ou sistema.

Se isso for feito com duas máquinas, você poderá ter cada uma delas como produção ou teste ou apenas atualizar a produção a partir da preparação.

Você pode acompanhar as alterações dos registros do cvs e verificar se recebeu atualizações específicas em / usr / src / UPDATING e / usr / ports / UPDATING , ambos dos quais são atualizados automaticamente de cvsup .

Se você não usa cvsup (e hoje em dia há menos motivos para isso), você só precisará encontrar outra maneira de rastrear quais atualizações deseja. Você poderia enviar uma lista de alterações que o freebsd-update deseja fazer para si mesmo e ficar de olho na página de erratas de segurança.

    
por 07.12.2010 / 21:47
4

Filosofia de atualização do OpenBSD

Esta é a minha abordagem para atualizar o OpenBSD

Mantenha-se atualizado com os patches / versões de segurança para:

  • BASE (ou seja, o material que a equipe de desenvolvimento do OpenBSD mantém em sua árvore de código)
  • Pacotes / Portas (por exemplo, aplicativos de software instalados no topo do BASE)

Procedimentos de atualização:

  • Mesma versão do sistema operacional
  • Nova versão do sistema operacional

BASE

a. Siga as listas de discussão relevantes - Eu assisto os resumos diários do squish.net, assim como a direção geral mostrada nas listas de discussão Tech e Misc.

b. Siga os sites / listas de discussão de anúncios de segurança relacionados ao Unix.

c. Manter uma cópia local do CVS do uso do cvsync

d. Crie lançamentos STABLE dos itens acima

Quando as atualizações de segurança são publicadas, avaliamos o problema real de segurança com o perfil das máquinas com essa versão do sistema operacional / vulnerabilidade. Se a vulnerabilidade for relevante, passaremos pelo "mesmo procedimento de atualização de versão".

Pacotes / Portas

É mais difícil manter o controle das atualizações de segurança para portas / pacotes, mas se for crítico o suficiente para estar em nossa infraestrutura, é importante o suficiente para acompanhar de maneira semelhante ao BASE.

  • Entre na lista de discussão do aplicativo específico (é nossa responsabilidade manter as guias das mudanças do autor, independentemente do projeto do OpenBSD.)

  • Entre nas listas de distribuição de segurança, como o CERT, que publica descobertas de vulnerabilidades em aplicativos, etc.

Os procedimentos de atualização

Obviamente, crie e teste seu procedimento de instalação em hardware separado (ou VM) antes de executá-lo em suas máquinas de produção. Felizmente para nós, temos hosts redundantes para muitas coisas e, portanto, podemos implementar com o mínimo de tempo de inatividade dos serviços. Como o OpenBSD suporta uma ampla gama de hardware, podemos lançar equipamentos de nível de servidor para nossas máquinas primárias e desktops de baixo custo como nossos hosts redundantes (ou apenas construímos uma caixa temporária para preencher a máquina principal durante o ciclo de atualização).

Nossos procedimentos de atualização são altamente dependentes do uso do sistema ports / packages para software não-BASE. Os dois hosts nos quais instalamos o software a partir da fonte são difíceis de atualizar entre as atualizações de versão do sistema operacional.

Atualização do mesmo SO

Para o SO BASE, continuamos tendo sucesso apenas com a instalação dos novos binários sobre os antigos. De preferência, fazemos backup de todos os arquivos de configuração / dados do sistema operacional e do aplicativo, formatamos e reinstalamos o sistema operacional corrigido e reinstalamos os pacotes (mantendo os dados originais)

Em nossos hosts do OpenBSD implementados (30+) e experiência, o backup da configuração e dos dados não é difícil. Para nossos firewalls, todos os dados estão nos arquivos de configuração e log.

Para Ports / Packages - onde as alterações são simples, modificamos nossa própria porta e construímos o pacote a partir dela. Ter uma porta atualizada simplifica o processo acima.

Nova atualização do sistema operacional

Entre os lançamentos do sistema operacional, instalamos tudo a partir do esboço.

Tenho certeza de que há documentação suficiente para o processo, mas essencialmente construímos uma máquina de referência com a mesma configuração do sistema a ser "substituído". Faça os mesmos testes necessários antes de implantar o host.

Fazemos backup da configuração do host de referência e instalamos o OpenBSD no host de produção, restaurando a configuração "verificada" em cima dela (executando novamente os mesmos testes de validação posteriormente).

    
por 09.12.2010 / 15:04
3

Para o OpenBSD, pelo menos:

  • os pacotes são o produto final do sistema de portas; deve haver pouca, se alguma necessidade de correr com as portas.
  • -release e -stable é (principalmente) congelado no tempo, com algumas atualizações de tempos em tempos.
  • A
  • -current é atualizada regularmente. Se você realmente precisa de pacotes atualizados, este é o caminho a ser seguido.
  • permanecem consistentes: -release / -stable systems stick with -release / -stable packages ...- current systems run -current packages

Faq 15, tudo sobre portos e pacotes

    
por 05.12.2010 / 18:48
2

Se não houver nenhum problema de segurança ou bug obstrutivo de funcionalidade, deixe-o em paz. Verifique se há atualizações a cada 3-6 meses para que você não fique muito atrás, mas caso contrário, deixe as coisas em paz.

Se não estiver quebrado, não conserte.

    
por 04.12.2010 / 03:53
1

Eu prefiro usar portupgrade para fazer upgrade de portas e fazer isso somente quando absolutamente necessário , por exemplo quando uma vulnerabilidade é encontrada na porta ou uma nova funcionalidade é necessária.

Quanto à atualização do sistema, costumo recriar a partir de fontes com make buildworld . Nunca tive problemas com essa abordagem.

    
por 06.12.2010 / 15:47