Certifique-se de verificar suas portas instaladas para pacotes vulneráveis de vez em quando: portaudit -Fda
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.
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:
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.
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:
Procedimentos de atualização:
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".
É 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.
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.
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.
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).
Para o OpenBSD, pelo menos:
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.
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.