Tutorial ini akan menunjukkan kepada Anda cara mengatur pembaruan keamanan otomatis, alias pemutakhiran tanpa pengawasan, di Ubuntu. Jika Anda tidak tinggal di bawah gua, maka Anda mungkin tahu pelanggaran data Equifax besar-besaran. 143 juta informasi pelanggan Equifax, termasuk nama, nomor jaminan sosial, tanggal lahir, SIM, 200 ribu nomor kartu kredit, dicuri antara Mei – Juli 2017.
Pada bulan Maret 2017, kerentanan kritis di Apache Structs ditemukan dan Apache Foundation merilis perbaikan untuk itu ketika mereka mengumumkan keberadaan kerentanan. Namun, Equifax tidak menambal kerentanan selama dua bulan, mengakibatkan pelanggaran data besar-besaran. Perusahaan yang menjalankan aplikasi kompleks mungkin perlu melakukan pengujian ekstensif sebelum menginstal pembaruan, tetapi jika Anda memiliki server Linux sederhana untuk penggunaan pribadi, Anda dapat mengaktifkan pembaruan keamanan otomatis untuk menambal kerentanan ASAP.
Konfigurasi Pembaruan Keamanan Otomatis (Peningkatan Tanpa Pengawasan) di Server Ubuntu
Pertama, instal unattended-upgrades
paket.
sudo apt updatesudo apt install unattended-upgrades
Anda perlu menginstal update-notifier-common
paket untuk mengatur reboot otomatis.
sudo apt install update-notifier-common
Kemudian edit 50unattended-upgrades
berkas.
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Dalam file ini, Anda dapat mengonfigurasi paket apa yang harus diperbarui secara otomatis. Secara default, hanya pembaruan keamanan yang akan diinstal secara otomatis, seperti yang ditunjukkan oleh baris berikut. Jadi tidak perlu mengubah bagian ini.
Tingkat-Tanpa Pengawasan::Allowed-Origins { "${distro_id}:${distro_codename}"; "${distro_id}:${distro_codename}-keamanan"; // Pemeliharaan Keamanan yang Diperpanjang; tidak selalu ada untuk // setiap rilis dan sistem ini mungkin tidak menginstalnya, tetapi jika // tersedia, kebijakan untuk pembaruan sedemikian rupa sehingga peningkatan tanpa pengawasan // juga harus diinstal dari sini secara default. "${distro_id}ESMApps:${distro_codename}-apps-security"; "${distro_id}ESM:${distro_codename}-infra-security";// "${distro_id}:${distro_codename}-updates";// "${distro_id}:${distro_codename}-proposed";/ / "${distro_id}:${distro_codename}-backports";};
- Asal pertama
"${distro_id}:${distro_codename}"
diperlukan karena pembaruan keamanan dapat menarik dependensi baru dari sumber non-keamanan. Asal ini tidak menyediakan pembaruan perangkat lunak. - Asal kedua adalah untuk pembaruan keamanan reguler.
- Asal ketiga dan keempat (ESMApps dan ESM) adalah untuk pemeliharaan keamanan yang diperpanjang, yaitu bagi mereka yang menjalankan rilis Ubuntu yang mencapai akhir masa pakainya. Anda dapat membiarkannya apa adanya.
Pemberitahuan Email
Terkadang Ubuntu gagal menginstal pembaruan keamanan, sehingga pembaruan manual diperlukan. Jika Anda ingin menerima pemberitahuan email setelah setiap pembaruan keamanan, temukan baris berikut dan batalkan komentar. (Hapus garis miring ganda di awal.)
Ubuntu 18.04
//Unattended-Upgrade::Mail "root";
Ubuntu 20.04
//Unattended-Upgrade::Mail "";
Anda dapat menentukan alamat email untuk menerima pemberitahuan seperti di bawah ini.
Peningkatan Tanpa Pengawasan::Mail "[email protected]";
Jika Anda lebih suka menerima pemberitahuan email hanya ketika ada kesalahan selama pembaruan keamanan, maka batalkan komentar pada baris berikut.
Ubuntu 18.04
//Unattended-Upgrade::MailOnlyOnError "true";
Di Ubuntu 20.04, Anda perlu menemukan baris berikut
//Unattended-Upgrade::MailReport "on-change";
Batalkan komentar dan ubah saat diubah menjadi
Tanpa Pengawasan-Upgrade::MailReport "only-on-error";
Otomatis Hapus Dependensi yang Tidak Digunakan
Anda mungkin perlu melakukan sudo apt autoremove
setelah setiap pembaruan, jadi temukan baris berikut:
//Unattended-Upgrade::Remove-Unused-Dependencies "false";
Batalkan komentar pada baris ini dan ubah false
untuk true
.
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Boot Ulang Otomatis
Ketika pembaruan keamanan untuk kernel Linux diinstal, Anda perlu me-restart server Ubuntu untuk menerapkan pembaruan kernel. Jika server hanya digunakan oleh Anda atau beberapa orang, maka mengaktifkan reboot otomatis dapat dilakukan dengan nyaman. Temukan baris berikut.
//Unattended-Upgrade::Automatic-Reboot "false";
Batalkan komentar dan ubah false
untuk true
untuk mengaktifkan reboot otomatis
Tanpa Pengawasan-Upgrade::Automatic-Reboot "true";
Anda juga dapat menentukan jam berapa reboot akan dilakukan. Secara default, reboot dilakukan segera setelah menginstal pembaruan kernel. Saya mengaturnya untuk reboot pada jam 4 pagi. Pastikan Anda menyetel zona waktu yang benar untuk server Anda.
Tanpaattended-Upgrade::Automatic-Reboot-Time "04:00";
Simpan dan tutup file.
Jika server sedang digunakan oleh banyak pengguna atau membutuhkan uptime tinggi (seperti blog ini), maka Anda tidak boleh mengaktifkan reboot otomatis. Sebagai gantinya, Anda dapat menggunakan livepatch Canonical untuk menambal kernel Linux tanpa reboot.
- Layanan LivePatch Canonical:Patch kernel Linux di Ubuntu tanpa Reboot
Aktifkan Pembaruan Keamanan Otomatis
Sekarang setelah pembaruan keamanan otomatis dikonfigurasi, kita perlu mengaktifkannya dengan membuat 20auto-upgrades
berkas.
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
Salin dan tempel dua baris berikut ke dalam file.
APT::Periodic::Update-Package-Lists "1";APT::Periodic::Unattended-Upgrade "1";
- Baris pertama membuat
apt
lakukan “apt-get update
” secara otomatis setiap hari. Jika disetel ke 2, maka setiap hari. (0=dinonaktifkan) - Baris kedua membuat
apt
untuk menginstal pembaruan keamanan secara otomatis. (1=diaktifkan, 0=dinonaktifkan)
Simpan dan tutup file.
Jalankan Peningkatan Tanpa Pengawasan pada Waktu Tertentu
Pemutakhiran tanpa pengawasan dijalankan secara acak antara pukul 12 pagi hingga 7 pagi, untuk mencegah lonjakan beban ke server cermin karena semua orang menjalankan pembaruan pada saat yang sama. Anda dapat menjalankan upgrade tanpa pengawasan secara manual dengan:
sudo unattended-upgrade -v
Anda juga dapat menambahkan perintah ini ke tugas Cron Anda.
sudo crontab -e
Tambahkan baris berikut di bagian bawah file Crontab Anda, sehingga pemutakhiran tanpa pengawasan akan berjalan setiap hari pada pukul 2 pagi.
0 2 * * * sudo /usr/bin/unattended-upgrade -v
Menyiapkan Relai SMTP
Untuk menerima pemberitahuan email setelah setiap pembaruan keamanan, server Anda harus dapat mengirim email. Jika ini adalah server email Anda, maka satu-satunya yang harus dilakukan adalah menginstal bsd-mailx
paket.
sudo apt install bsd-mailx
Jika ini bukan server email, maka Anda perlu mengatur relai SMTP. Kita dapat menginstal server SMTP Postfix, kemudian mengirimkan email melalui penyedia layanan email.
Ada beberapa penyedia layanan email (ESP) yang dapat bertindak sebagai host relay. Beberapa membebankan sedikit biaya, beberapa menawarkan kuota gratis setiap bulan. Dalam artikel ini, saya ingin menunjukkan cara menggunakan Sendinblue, yang merupakan penyedia layanan email yang memungkinkan Anda mengirim 300 email per hari secara gratis.
Buat akun gratis di sendinblue.com. Setelah Anda melengkapi profil pengguna Anda, klik tombol Transactional
tab, Anda akan mendapatkan pengaturan SMTP Anda. Jika tidak ada pengaturan SMTP, Anda perlu menghubungi layanan pelanggan Sendinblue untuk mengaktifkan layanan email transaksional.
Sekarang Anda perlu mengkonfigurasi server SMTP Postfix Anda untuk menggunakan pengaturan SMTP Sendinblue.
Mari kita instal server SMTP Postfix di Ubuntu dengan perintah berikut.
sudo apt install postfix libsasl2-modules
Saat Anda melihat pesan berikut, tekan tombol Tab dan tekan Enter.
Kemudian pilih opsi kedua:Internet Site
.
Selanjutnya, atur nama email sistem. Misalnya, saya memasukkan nama domain saya linuxbabe.com
.
Setelah Postfix terinstal, buka file konfigurasi utama dengan editor teks baris perintah seperti Nano.
sudo nano /etc/postfix/main.cf
Temukan baris berikut.
relayhost =
Secara default, nilainya kosong. Tetapkan nilai relayhost
ke [smtp-relay.sendinblue.com]:587
.
relayhost =[smtp-relay.sendinblue.com]:587
Kemudian tambahkan baris berikut di akhir file ini.
# konfigurasi relai keluarsmtp_sasl_auth_enable =yessmtp_sasl_password_maps =hash:/etc/postfix/sasl_passwdsmtp_sasl_security_options =noanonymoussmtp_tls_security_level =mayheader_size_limit> =4096000Simpan dan tutup file. Kemudian buat
/etc/postfix/sasl_passwd
berkas.sudo nano /etc/postfix/sasl_passwdTambahkan host relai SMTP dan kredensial SMTP ke file ini seperti di bawah ini. Ganti
smtp_username
dansmtp_password
dengan nama pengguna dan kata sandi Anda sendiri yang diberikan oleh SendinBlue. Perhatikan ada titik dua di antara nama pengguna dan kata sandi.[smtp-relay.sendinblue.com]:587 smtp_username:smtp_passowrdSimpan dan tutup file. Kemudian buat file hash db yang sesuai dengan
postmap
.sudo postmap /etc/postfix/sasl_passwdSekarang Anda harus memiliki file
/etc/postfix/sasl_passwd.db
. Mulai ulang Postfix agar perubahan diterapkan.sudo systemctl restart postfixSecara default,
sasl_passwd
dansasl_passwd.db
file dapat dibaca oleh setiap pengguna di server. Ubah izin menjadi 600 sehingga hanya root yang dapat membaca dan menulis ke dua file ini.sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.dbMulai sekarang, Postfix akan mengirimkan email melalui Sendinblue.
Tambahkan Alamat Pengirim
Klik menu tarik-turun di sudut kanan atas dasbor akun Sendinblue Anda dan pilih Pengirim &IP tab untuk menambahkan domain dan alamat pengirim Anda.
Mengirim Email Percobaan
Sekarang kita dapat mengirim email percobaan dengan
mailx
perintah seperti di bawah ini.sudo apt install bsd-mailxecho "ini adalah email percobaan." | mailx -r from-address -s hello to-addressJika konfigurasi SMTP benar, Anda akan menerima email.
Email tidak terkirim?
Anda dapat memeriksa log email (
/var/log/mail.log
) untuk men-debug mengapa email tidak terkirim.Jika Anda membungkus host relai dengan tanda kurung di
/etc/postfix/main.cf
berkas.relayhost =[smtp-relay.sendinblue.com]:587Kemudian Anda juga perlu membungkus nama host di
/etc/postfix/sasl_passwd
berkas.[smtp-relay.sendinblue.com]:587 [dilindungi email]:PasswordGmailAndaIngatlah untuk membuat ulang file hash db.
sudo postmap /etc/postfix/sasl_passwdMulai ulang Postfix agar perubahan diterapkan.
sudo systemctl restart postfixNonaktifkan Penerimaan Email
Secara default, Postfix dikonfigurasi untuk menerima email masuk. Anda dapat mengkonfigurasi Postfix untuk hanya mengirim email, tetapi tidak menerima email masuk. Temukan baris berikut di
/etc/postfix/main.cf
berkas.inet_interfaces =semuaUbah ke teks berikut sehingga Postfix hanya akan mendengarkan di localhost.
inet_interfaces =hanya loopbackLaporan Email
Ada 3 kemungkinan email yang dikirim oleh peningkatan tanpa pengawasan:
- Pemutakhiran tanpa pengawasan dikembalikan:Benar. Ini berarti paket berhasil diinstal.
- Peningkatan versi tanpa pengawasan dikembalikan:Salah. Ini berarti beberapa kesalahan terjadi saat menginstal pembaruan. Biasanya membutuhkan campur tangan manusia. Jika Anda menerima email ini, Anda perlu menjalankan
sudo apt upgrade
secara manual . - Pemutakhiran tanpa pengawasan dikembalikan:Tidak ada. Ada pembaruan yang tersedia, tetapi sistem menolak untuk menginstalnya.
Log
Log dapat ditemukan di /var/log/unattended-upgrades/
direktori.
Periksa Mulai Ulang
checkrestart
perintah dapat membantu Anda mengetahui proses mana yang perlu dimulai ulang setelah upgrade. Ini tersedia dari debian-goodies
paket.
sudo apt install debian-goodiessudo checkrestart