OpenBSD, FreeBSD: filosofi pembaruan Anda?

14

Saya telah menggunakan FreeBSD selama sekitar 5 tahun - server / Desktop - dan saya cenderung mengambil kebiasaan apt-get / yum saya untuk meng-upgrade semuanya bersama saya (saya admin kotak Debian / RHEL / Cent juga - Saya tahu, saya tahu ... harus lebih cerdas tanpa memandang platform). Jadi biasanya:

portsnap fetch
portsnap update
portmanager -u

Untuk port

Terkadang diikuti oleh:

freebsd-update fetch
freebsd-update install

Untuk sistem ... dll. Kemudian bersihkan semua kekacauan setelahnya ... jika itu terjadi.

Saya sadar, ini adalah cara un-BSD yang cukup berlebihan untuk melakukan sesuatu. Apa filosofi Anda untuk kotak BSD Anda? Apakah Anda menjalankan portaudit / portversion - periksa output lalu perbarui (lakukan deinstall ... dll) setelah pertimbangan yang cermat?

Saya cukup baru di OpenBSD, saya akui. Saya melihat diri saya cvsupping pohon port, menjalankan skrip "out of date", kemudian hanya memutakhirkan port penting --- tetapi meninggalkan kernel / binari saja dan hanya memutakhirkan setiap enam bulan. Apakah Anda menambal / mengkompilasi ulang / membangun kembali kernel, binari --- mengapa?

Apa pendekatan konservatif untuk layanan kritis (cukup kritis - ini bukan bank atau rumah sakit) pada kotak BSD? Apakah Anda menggunakan pendekatan serupa pada kotak Linux Anda? Saya biasanya tidak menyentuh kernel pada server apa pun kecuali peringatan keamanan telah melanda teror ke dalam jiwa saya.

Ya, ada banyak dokumen dan buku - apa yang sebenarnya Anda lakukan? Dengan asumsi kita tahu dasar-dasarnya - apa kebijaksanaannya? Gunakan kasing / lingkungan dan skenario berbeda-beda, seperti halnya taruhan / pemangku kepentingan / pengguna. Buku dan halaman manual mencakup alat dan penggunaan, tetapi tidak memiliki aplikasi praktis. Rekomendasikan buku jika Anda tahu buku yang meliputnya!

Terima kasih sudah membaca!

Bubnoff

Kesimpulan ~ Terima kasih kepada semua orang yang meluangkan waktu untuk menjawab posting ini. Strategi saya secara keseluruhan adalah sekarang untuk mengikuti milis untuk kedua BSD dan lebih selektif / cerdas dengan memperbarui daripada yang saya lakukan di masa lalu.

FreeBSD ~ Portaudit adalah jawaban yang bagus. Dengan milis dan audit yang rajin, saya pikir ini akan berfungsi dengan baik di sini. Sangat menarik penekanan berbeda pada port antara ayat-ayat OpenBSD FreeBSD.

OpenBSD ~ Akan mengikuti milis dan menggunakan alat paket (pkg_info dan pkg_add -u) yang dianggap kritis. Peningkatan: Sepertinya Anda perlu meningkatkan setidaknya setahun sekali. Mereka mendukung rilis terbaru plus satu kembali - jadi sekarang ini 4,8 dan 4,7.

Terima kasih lagi.

Bubnoff
sumber

Jawaban:

9

Pastikan Anda memeriksa port yang terinstal untuk paket-paket rentan sesekali: portaudit -Fda

Brian Smith
sumber
1
Ini adalah must-have untuk * BSD. Saya sangat merekomendasikan membuang ini di crontab malam untuk mengirimi Anda email setiap pagi dengan port dengan perbaikan keamanan.
Andrew M.
1
Tapi kemudian itu masalah bertindak atas saran Portaudit. Dari membaca jawaban di sini, kebanyakan orang menyarankan untuk meninggalkan barang sendirian kecuali benar-benar diperlukan. Saya telah mendengar beberapa admin yang mengklaim bahwa semuanya harus selalu up to date ... ini menurut saya cara yang baik untuk memecahkan banyak hal.
Bubnoff
Saya akan menerima saran ini untuk FreeBSD. Terima kasih. Yang membuat OpenBSD
Bubnoff
4

Saya tidak yakin ada "cara BSD" khusus untuk melakukan hal-hal semacam ini. Semuanya bermuara pada mengetahui apa yang sedang diperbarui dan pengujian - hal-hal sysadmin generik. Untungnya, pembaruan freebsd dan portsnap membuat "mengetahui apa" cukup sepele.

Tetapi, karena Anda menanyakan secara spesifik, ketika saya menggiring sejumlah besar mesin FreeBSD, semuanya adalah node dalam sebuah cluster. Mesin mandiri tidak akan jauh berbeda dari ini, tapi saya kira Anda bisa membuat ini 'devops' samar-samar seperti untuk layanan produksi Anda. Pada akhirnya, selalu merupakan ide bagus untuk memiliki lingkungan pengujian dan produksi yang terpisah.

Dalam situasi cluster:

  • Setiap mesin terpasang / usr / src , / usr / obj , dan / usr / ports melalui NFS.
  • Tergantung pada anggaran Anda, Anda dapat memiliki mesin staging / build atau menunjuk node cluster sebagai node staging / build.
  • Staging node memiliki salinan / usr / ports yang berbeda
  • Staging node akan memperbarui src-all dan ports-all via cvsup setiap malam
  • Jika terjadi pembaruan yang diperlukan, staging node akan dikeluarkan dari rotasi dan buildworld , installworld , dan portupgrade akan dijalankan.
  • Staging node akan diuji secara menyeluruh.
  • / usr / ports akan ditukar pada host NFS
  • Setiap node cluster akan diputar menjalankan installworld dan portupgrade , diuji dan kemudian diputar kembali.

Jelas, ini adalah untuk kedua sistem dan pembaruan port, tetapi prosedurnya cukup mirip memperbarui hanya paket atau sistem.

Jika ini dilakukan dengan dua mesin Anda bisa masing-masing bergiliran sebagai produksi atau pementasan, atau hanya memperbarui produksi dari pementasan.

Anda dapat melacak perubahan dari log cvs dan memeriksa apakah Anda mendapatkan pembaruan spesifik di / usr / src / UPDATING dan / usr / ports / UPDATING , keduanya diperbarui secara otomatis dari cvsup .

Jika Anda tidak menggunakan cvsup (dan hari ini alasannya kurang) Anda hanya perlu menemukan cara lain untuk melacak pembaruan apa yang Anda inginkan. Anda bisa mengirim daftar perubahan yang ingin dibuat pembaruan-freebsd untuk diri Anda sendiri dan mengawasi halaman kesalahan keamanan.

DF
sumber
Saya suka ide 'pementasan' ayat 'produksi'. Dengan virtualisasi hampir tidak ada alasan untuk tidak hari ini. Terima kasih atas tanggapannya.
Bubnoff
Ya, ditambah lagi cocok dengan jenis barang 'devops' (dari apa yang saya mengerti) jika Anda harus berurusan dengan itu.
DF
4

Filosofi Pembaruan OpenBSD

Ini adalah pendekatan saya untuk memperbarui OpenBSD

Tetap Terkini pada rilis / patch keamanan untuk:

  • BASE (yaitu hal-hal yang dipertahankan oleh tim pengembang OpenBSD di pohon sumber mereka)
  • Paket / Port (yaitu aplikasi perangkat lunak yang diinstal di atas BASE)

Prosedur Pembaruan:

  • Versi OS yang sama
  • Versi OS Baru

MENDASARKAN

Sebuah. Ikuti milis yang relevan - Saya menonton intisari harian squish.net, serta arahan umum yang ditunjukkan pada milis Tech dan Misc.

b. Ikuti situs web / milis pengumuman keamanan terkait Unix.

c. Menyimpan salinan CVS lokal menggunakan cvsync

d. Bangun rilis STABLE dari atas

Ketika pembaruan keamanan diterbitkan, kami mengevaluasi masalah keamanan aktual dengan profil mesin dengan versi OS / kerentanan. Jika kerentanannya relevan, kita akan melalui "prosedur peningkatan versi yang sama."

Paket / Pelabuhan

Lebih sulit untuk melacak pembaruan keamanan untuk port / paket, tetapi jika cukup kritis untuk infrastruktur kami maka cukup penting untuk melacak dengan cara yang mirip dengan BASE.

  • Dapatkan di milis untuk aplikasi spesifik (itu adalah tanggung jawab kami untuk mengawasi perubahan hulu, terlepas dari proyek OpenBSD.)

  • Dapatkan di daftar distribusi duduk keamanan seperti CERT yang menerbitkan temuan kerentanan pada aplikasi dll.

Prosedur Peningkatan

Jelas membangun dan menguji prosedur instalasi Anda pada perangkat keras yang terpisah (atau VM) sebelum melakukannya pada mesin produksi Anda. Untungnya bagi kami, kami memiliki host yang berlebihan untuk banyak hal dan karena itu dapat menjalankan dengan downtime layanan yang minimal. Karena OpenBSD mendukung beragam perangkat keras, kami dapat meluncurkan peralatan kelas server untuk mesin utama kami, dan desktop kelas bawah sebagai host yang berlebihan (atau kami hanya membuat kotak sementara untuk mengisi mesin utama selama siklus pembaruan.)

Prosedur pembaruan kami sangat bergantung pada penggunaan sistem port / paket untuk perangkat lunak non-BASE. Dua host tempat kami menginstal perangkat lunak dari sumber sangat merepotkan untuk memperbarui antara pembaruan versi OS.

Pembaruan OS yang sama

Untuk OS BASE, kami terus sukses dengan hanya menginstal binari baru di atas yang lama. Lebih disukai, kami membuat cadangan semua OS dan konfigurasi Aplikasi / file data, memformat dan menginstal ulang OS yang ditambal dan menginstal ulang paket (mempertahankan data asli)

Di host OpenBSD kami yang dikerahkan (30+), dan pengalaman, membuat cadangan konfigurasi dan data tidak sulit. Untuk firewall kami, semua data ada dalam konfigurasi dan mencatat file.

Untuk Port / Paket - di mana perubahannya sederhana, kami memodifikasi port kami sendiri dan membangun paket dari itu. Memiliki port yang diperbarui menyederhanakan proses di atas.

Pembaruan OS Baru

Di antara rilis OS, kami memasang semuanya dari sketsa.

Saya yakin ada cukup dokumentasi di luar sana untuk proses ini, tetapi pada dasarnya kami membangun mesin referensi dengan konfigurasi yang sama dengan sistem yang akan "diganti." Ikuti tes yang sama yang diperlukan sebelum menggunakan host.

Kami mencadangkan konfigurasi dari host referensi dan menginstal OpenBSD pada host produksi, mengembalikan konfigurasi "terverifikasi" di atasnya (sekali lagi menjalankan tes validasi yang sama setelah itu.)

samt
sumber
Terima kasih! Itulah arah yang saya tuju. Ikuti daftar, gunakan host yang berlebihan.
Bubnoff
3

Untuk OpenBSD, setidaknya:

  • paket adalah produk akhir dari sistem pelabuhan; harus ada sedikit, jika ada kebutuhan untuk berkeliling dengan port.
  • -release dan -stable (kebanyakan) dibekukan dalam waktu, dengan beberapa pembaruan dari waktu ke waktu.
  • -current diperbarui secara teratur. Jika Anda benar-benar membutuhkan paket terbaru, ini adalah caranya.
  • tetap konsisten: -release / -stabil sistem tetap dengan paket -release / -stable ...- sistem saat ini berjalan paket -current

Faq 15, semua tentang port dan paket

Lonerman
sumber
Ya, tampaknya para pengembang / pengelola OpenBSD mendorong penggunaan paket melalui port karena port menghasilkan paket sebelum menginstal pula. Tetapi struktur port memiliki skrip audit (./out_of_date) ... apa analog untuk paket? Portaudit untuk OpenBSD ... atau Anda hanya mengikuti milis dan memutakhirkan paket secara manual?
Bubnoff
Secara pribadi, dengan -current itu "pkg_add -u -Dupdate, updatedepends" ~ bulanan untuk saya. Saya akui saya tidak pernah menggunakan port seperti itu secara menyeluruh, biasanya hanya cvs up, buat pembaruan bersih untuk saya jika saya perlu melakukannya. Saya mendapat kesan bahwa skrip lain untuk porter, tapi sekali lagi, saya jarang menggunakan sistem port. Adapun audit, itu semua dilakukan oleh tim pelabuhan dan tentu saja siapa pun yang berkontribusi.
lonerman
@Bubnoff Jika Anda memperbarui ke versi terbaru di -stable, Anda akan memiliki semua tambalan keamanan yang dirilis untuk rilis itu. (Berbeda dengan -current yang juga mencakup pembaruan non-keamanan).
WhyNotHugo
@Hugo - terima kasih! Itu poin yang bagus. Saya harus menuliskannya di dokumentasi build server saya.
Bubnoff
2

Jika tidak ada masalah keamanan, atau bug yang mengganggu fungsi, biarkan saja. Periksa pembaruan mungkin setiap 3-6 bulan sehingga Anda tidak ketinggalan, tetapi jika tidak biarkan saja.

Jika tidak rusak, jangan memperbaikinya.

BENDUNGAN
sumber
4
3 - 6 bulan? Bagaimana dengan Apache / lighttp atau apa pun yang menghadap ke depan aplikasi web CMS dll? Apakah kamu tidak khawatir tentang itu? Kalau tidak ... Saya mengerti maksud Anda.
Bubnoff
@Bubnoff OpenBSD hadir dengan httpd khusus, diturunkan dari Apache 1.x. Sebagian besar pembaruan yang disediakan oleh Apache bahkan tidak berlaku.
Benoit
Aku mengerti itu. Tetapi OpenBSD memang menyediakan pembaruan untuk saat ini yang kemudian berjalan ke stabil. Dan itu masih meninggalkan paketnya sendiri ... Aplikasi yang menggunakan Apache mungkin akan membutuhkan pembaruan. Atau apakah Anda hanya memutakhirkan semuanya setiap enam bulan?
Bubnoff
Ini pendekatan saya. Saya jarang menginstal sesuatu di luar port pada sistem produksi saya sehingga yang saya perlukan adalah instalasi dasar dan paketnya. Saya mengikuti errata ( openbsd.org/errata.html ) dan milis yang relevan untuk semua paket yang telah saya instal. Jika saya telah menginstal sesuatu yang lain di atas, seperti sistem CMS, saya melacak dan memeliharanya secara terpisah. Jika saya perlu menambal sesuatu yang penting, saya membuat tambalan saya pada sistem pengujian dan kemudian menyalinnya.
1

Saya lebih suka menggunakan portupgradeuntuk memutakhirkan port, dan melakukan ini hanya ketika benar-benar diperlukan , misalnya ketika kerentanan ditemukan di port atau fungsionalitas baru diperlukan.

Sedangkan untuk meningkatkan sistem, saya biasanya membangun kembali dari sumber dengan make buildworld. Saya tidak pernah memiliki masalah dengan pendekatan ini.

Eugene Yarmash
sumber
1
Banyak yang tampaknya lebih memilih portupgrade daripada portmanager. Apakah portupgrade lebih matang dari keduanya? Sepertinya portmanager belum mencapai 1,0.
Bubnoff
1
Ya, portupgrade sudah ada sejak lama dan sepertinya memiliki pengembangan dan dukungan paling aktif. Saya tahu ada alat manajemen port lain, tetapi portupgrade adalah salah satu yang disebutkan paling konsisten dalam daftar. Ada diskusi antara keduanya dari belakang di '04 - lists.freebsd.org/pipermail/freebsd-questions/2004-December/… - yang saya temukan, tapi saya tidak yakin bagaimana saat ini.
DF
Saya menggunakan pendekatan yang sama dan ini sebagian besar karena telah menggunakan FreeBSD sejak 4.x hari ketika buildworld dan portupgrade adalah pilihan terbaik / satu-satunya. Mereka masih bekerja dengan baik hari ini jika Anda punya waktu untuk menjalankannya dan waktu untuk mempelajari prosesnya. Ditambah lagi, saya selalu membangun dengan -Osoptimisasi, sistem yang lebih kecil / lebih cepat.
Chris S