O OpenBSD é como Linux. No entanto, ele não usa o comando apt. Depende de uma ferramenta chamada pkg_add. Você pode usar o pkg_add para aplicar atualizações ou instalar novos pacotes binários. Há três maneiras de atualizar os pacotes baseados em OpenBSD, Kernel e bases do sistema. O primeiro método requer a aplicação de patches e a compilação do software. O segundo método depende de terceiros para aplicar kernel e patches de pacotes binários. O terceiro método usa o comando syspatch. Eu recomendo usar o terceiro método para os usuários do OpenBSD 6.1 e acima.
Método #1: Mantendo seu OpenBSD 6.2 atualizado usando o código-fonte
Primeiro baixe o código fonte do OpenBSD 6.2. Utilize o comando cd:
Etapa 1: pegue o código-fonte
cd /usr/src
Configure o espelho do OpenBSD para usar e o número da versão para facilidade de uso:
BASE="http://mirror.esc7.net/pub/OpenBSD" VER="6.2"
Agora pegue o código-fonte para o OpenBSD userland/base system e kernel, usando o comando ftp, execute:
ftp ${BASE}/${VER}/src.tar.gz \ ${BASE}/${VER}/sys.tar.gz \ ${BASE}/${VER}/SHA256.sig
Deve retornar algo parecido com isto:
Etapa 2: verifique arquivos baixados:
Use o comando signify:
signify -C -p /etc/signify/openbsd-62-base.pub -x SHA256.sig src.tar.gz
signify -C -p /etc/signify/openbsd-62-base.pub -x SHA256.sig sys.tar.gz
Deve retornar algo parecido com isto:
Desempacote os tarballs usando o comando tar:
tar zxf src.tar.gz
tar zxf sys.tar.gz ## [ delete file using rm command ##
rm SHA256.sig *.tar.gz
ls
Passo 3: Baixe a errata para o OpenBSD 6.2 Stable
Baixe os arquivos remotos errata 6.1 e aplique-o. Neste exemplo, vou buscar um arquivo tar.gz contendo todos os patches da versão 6.2:
cd /tmp
ftp https://ftp.openbsd.org/pub/OpenBSD/patches/6.2.tar.gz
Novamente, desempacote os patches:
cd /tmp/6.2/common/
ls
Deve retornar algo parecido com isto:
Então, eu tenho 25 patches para o meu servidor OpenBSD 6.2 recentemente instalado.
Etapa 4: aplique o patch (kernel e base system) um a um:
Vamos começar pelo arquivo de patch 001_sshd.patch.sig. Você precisa digitar o seguinte comando para ver as informações do errata/path:
more 001_sshd.patch.sig
Você pode aplicar o patch fazendo:
signify -Vep /etc/signify/openbsd-59-base.pub -x 001_sshd.patch.sig -m - | (cd /usr/src && patch -p0)
Deve retornar algo parecido com isto:
Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |Signature Verified | |OpenBSD 5.9 errata 1, Mar 10, 2016: | |Lack of credential sanitization allows injection of commands to xauth(1). |More information: http://www.openssh.com/txt/x11fwd.adv | |Prevent this problem immediately by not using the "X11Forwarding" feature |(which is disabled by default). | |Apply by doing: | signify -Vep /etc/signify/openbsd-59-base.pub -x 001_sshd.patch.sig \ | -m - | (cd /usr/src && patch -p0) | |And then rebuild and install sshd: | cd /usr/src/usr.bin/ssh | make obj | make depend | make | make install | |Index: usr.bin/ssh/session.c |=================================================================== |RCS file: /cvs/src/usr.bin/ssh/session.c,v |retrieving revision 1.280 |diff -u -p -u -r1.280 session.c |--- usr.bin/ssh/session.c 16 Feb 2016 03:37:48 -0000 1.280 |+++ usr.bin/ssh/session.c 9 Mar 2016 17:02:44 -0000 -------------------------- Patching file usr.bin/ssh/session.c using Plan A... Hunk #1 succeeded at 40. Hunk #2 succeeded at 257. Hunk #3 succeeded at 346. Hunk #4 succeeded at 1826. done
E, em seguida, reconstrua e instale o sshd corrigido:
cd /usr/src/usr.bin/ssh
make obj && make depend && make && make install
Talvez seja necessário reiniciar o sistema para atualizações do kernel. Observe que cada patch de errata terá informações diferentes sobre como aplicar e instalar o patch, então você precisa lê-los com cuidado usando mais comandos. Você precisa repetir este procedimento para todos os patches. Eu sugiro que você se inscreva para o OpenBSD announce mailing list para obter informações sobre a errata. Você precisa repetir o procedimento para o resto de todos os patches baixados.
Etapa 5: atualize todos os pacotes de terceiros
Basta digitar o seguinte comando pkg_add:
export PKG_PATH=ftp://mirror.planetunix.net/pub/OpenBSD/`uname -r`/packages/`machine -a`/
pkg_add -Uuv
Veja esta página para maiores informações.
Método #2: Mantendo seu OpenBSD 5.9 atualizado usando o modo de patches binários (3rd party)
Aqui estão algumas informações sobre M: Tier:
Manter os pacotes instalados do OpenBSD atualizados é difícil e demorado. Ninguém quer ler as listas de endereços para detectar reparações de segurança e / ou atualizações que não desejam criar novos pacotes de suas portas e instalá-los manualmente em cada um dos seus servidores e / ou desktops.
Por esta razão, M: Tier está lançando um novo repositório de pacotes que inclui as últimas correções de segurança e atualizações críticas para o OpenBSD desde 5.3
É fácil de configurar e ainda mais fácil de manter … você não precisa mais fazer nada. M: Tier até o notificará por e-mail se houver uma atualização disponível (a menos que você exclua).
Diga Olá para o openup da mtier
Você pode usar o comando openup. É um pequeno utilitário para o OpenBSD que pode ser executado de forma autônoma e que verifica se há atualizações de segurança em ambos os pacotes e no sistema base. O openup usa as ferramentas regulares do pkg, não implementa nada no topo. Você precisa confiar nos mantedores do projeto mtier para usar esse comando. Este comando funciona como o comando ‘yum update’ ou ‘apt-get upgrade’. Primeiro passo é adquirir o openup:
cd /root
ftp https://stable.mtier.org/openup
chmod +x openup
Execute-o para atualizar seu sistema, incluindo pacotes:
./openup
Saída do comando em um sistema OpenBSD 5.9 recentemente instalado:
Aqui está outro exemplo. Neste caso, estou abrindo o OpenBSD recentemente atualizado de 5.9 para 6.0:
/root/openup
===> Checking for openup update ===> Downloading and installing public key ===> Removing old release binpatch entries ===> Installing/updating binpatch(es) quirks-2.241 signed on 2016-07-26T16:56:10Z binpatch60-amd64-kernel-1.0: ok binpatch60-amd64-perl-1.0: ok binpatch60-amd64-relayd-1.0: ok binpatch60-amd64-smtpd-1.0: ok ===> Updating package(s) quirks-2.241 signed on 2016-07-26T16:56:10Z !!! !!! System must be rebooted after the last kernel update !!! #
Observe que M: Tier oferece dois níveis de serviço:
- LTS: binpatches, atualizações de pacotes LTS e suporte para os dois lançamentos mais recentes
- livre: binpatches e pacotes estáveis para a versão mais recente
Veja esta página para obter mais informações sobre openup e seus serviços pagos e gratuitos.
Método #3: Mantendo seu servidor OpenBSD 6.1 atualizado usando o método syspatch para amd64/i386
O OpenBSD versão 6.1 vem com o comando syspatch para buscar, verificar, instalar e reverter os patches binários do OpenBSD para o sistema base. Este método agora é recomendado para todos os usuários do OpenBSD.
Aplique todos os patches
Escreva o seguinte comando:
doas syspatch
Deve retornar algo semelhante a isto:
Get/Verify syspatch61-007_freetyp... 100% |*************************| 732 KB 00:01 Installing patch 007_freetype Missing set, skipping patch 007_freetype Get/Verify syspatch61-025_ieee802... 100% |*************************| 9356 KB 00:14 Installing patch 025_ieee80211
Para ver os patches disponíveis, execute:
doas syspatch -c
Deve retornar algo semelhante a isto:
007_freetype
Para ver todos os patches instalados, execute:
doas syspatch -l
Deve retornar algo semelhante a isto:
001_dhcpd 002_vmmfpu 003_libressl 004_softraid_concat 005_pf_src_tracking 006_libssl 008_exec_subr 009_icmp_opts 010_perl 012_wsmux 013_icmp6_linklocal 014_libcrypto 015_sigio 016_sendsyslog 017_fuse 018_recv 019_tcp_usrreq 020_sockaddr 021_ptrace 022_fcntl 023_wsdisplay 024_sosplice 025_ieee80211
Para reverter o patch mais recentemente instalado, execute:
doas syspatch -r
Deve retornar algo semelhante a isto:
Reverting patch 025_ieee80211
Como atualizar todas as aplicações
Execute o seguinte comando:
doas pkg_add -Uuv
Deve retornar algo semelhante a isto:
Update candidates: quirks-2.304 -> quirks-2.304 quirks-2.304 signed on 2017-04-02T15:01:33Z Update candidates: bash-4.4.12 -> bash-4.4.12 Update candidates: curl-7.53.1 -> curl-7.53.1 Update candidates: gettext-0.19.8.1 -> gettext-0.19.8.1 Update candidates: libiconv-1.14p3 -> libiconv-1.14p3 Update candidates: libidn2-0.16 -> libidn2-0.16 Update candidates: libpsl-0.17.0 -> libpsl-0.17.0 Update candidates: libunistring-0.9.7 -> libunistring-0.9.7 Update candidates: nghttp2-1.21.0 -> nghttp2-1.21.0 Update candidates: pcre-8.38p0 -> pcre-8.38p0 Update candidates: pftop-0.7p15 -> pftop-0.7p15 Update candidates: wget-1.19.1 -> wget-1.19.1
Para mais informações confira o syspatch man page:
man syspatch
man pkg_add