One place for hosting & domains

      Mengonfigurasi

      Cara Menginstal dan Mengonfigurasi Nextcloud pada Ubuntu 20.04


      Pengantar

      Nextcloud, pecahan dari ownCloud, adalah suatu server berbagi berkas yang mengizinkan Anda untuk menyimpan konten pribadi, seperti dokumen dan gambar, dalam lokasi yang tersentralisasi, yang mirip seperti Dropbox. Perbedaan dari Nextcloud adalah bahwa semua fiturnya merupakan sumber terbuka. Nextcloud juga mengembalikan kontrol dan keamanan dari data sensitif kepada Anda, sehingga menghilangkan penggunaan dari layanan awan pihak ketiga yang menjadi hos.

      Dalam tutorial ini, kita akan menginstal dan mengonfigurasi instans Nextcloud pada server Ubuntu 20.04.

      Prasyarat

      Untuk menyelesaikan langkah-langkah dalam panduan ini, Anda akan membutuhkan yang berikut:

      • Pengguna dengan sudo non-root yang diaktifkan dan firewall yang terkonfigurasi pada server**: Anda dapat menciptakan pengguna dengan privilese sudo dan menyiapkan firewall dasar dengan mengikuti Penyiapan Server Awal dengan Ubuntu 20.04.
      • (Opsional) Nama domain yang mengarah ke server Anda: Kita akan mengamankan koneksi ke instalasi Nextcloud dengan TLS/SSL. Nextcloud dapat menyiapkan dan mengelola sertifikat SSL gratis yang tepercaya dari Let’s Encrypt jika server Anda memiliki nama domain. Jika tidak, Nextcloud dapat menyiapkan sertifikat SSL yang ditandatangani sendiri yang dapat mengenkripsi koneksi, tetapi tidak akan dipercaya secara asali dalam peramban web. Jika Anda menggunakan DigitalOcean, Anda dapat membaca dokumentasi DNS kami untuk mempelajari cara menambahkan domain ke akun dan mengelola catatan DNS, jika Anda hendak menggunakan Let’s Encrypt.

      Setelah Anda menyelesaikan langkah-langkah di atas, lanjutkan untuk mempelajari cara menyiapkan Nextcloud pada server Anda.

      Langkah 1 – Menginstal Nextcloud

      Kita akan menginstal Nextcloud menggunakan sistem paket Snap. Sistem paket ini, yang tersedia pada Ubuntu 20.04 secara asali, mengizinkan organisasi untuk mengirimkan perangkat lunak, bersama dengan semua dependensi dan konfigurasi yang terasosiasi, di dalam suatu unit mandiri dengan pembaruan otomatis. Ini berarti bahwa alih-alih menginstal dan mengonfigurasi server web dan basis data lalu mengonfigurasi aplikasi Nextcloud untuk berjalan di atasnya, kita dapat menginstal paket snap yang menangani sistem yang mendasarinya secara otomatis.

      Untuk mengunduh paket snap Nextcloud dengan cepat dan menginstalnya pada sistem, ketik:

      • sudo snap install nextcloud

      Paket Nextcloud akan diunduh dan diinstal pada server Anda. Anda dapat mengonfirmasi bahwa proses instalasi berhasil dengan membuat daftar perubahan yang terasosiasi dengan snap:

      Output

      ID Status Spawn Ready Summary 4 Done today at 16:12 UTC today at 16:12 UTC Install "nextcloud" snap

      Status dan ringkasan mengindikasikan bahwa instalasi selesai tanpa masalah apa pun.

      Mendapatkan Informasi Tambahan tentang Snap Nextcloud

      Jika Anda menginginkan informasi lebih lanjut tentang snap Nextcloud, ada beberapa perintah yang dapat membantu.

      Perintah snap info dapat menampilkan deskripsi kepada Anda, perintah manajemen Nextcloud yang tersedia, serta versi terinstal dan saluran snap yang sedang dilacak:

      Snap dapat menentukan koneksi yang mereka dukung, yang terdiri dari slot dan colokan, yang saat disambungkan, memberi Snap akses ke kemampuan tertentu atau beberapa tingkat akses. Misalnya, snap yang perlu bertindak sebagai klien jaringan harus memiliki koneksi network. Untuk melihat connections snap yang didefinisikan snap ini, ketik:

      • snap connections nextcloud

      Output

      Interface Plug Slot Notes network nextcloud:network :network - network-bind nextcloud:network-bind :network-bind - removable-media nextcloud:removable-media - -

      Untuk mempelajari semua layanan dan aplikasi spesifik yang disediakan snap ini, Anda dapat melihat berkas definisi snap dengan mengetik:

      • cat /snap/nextcloud/current/meta/snap.yaml

      Ini akan memungkinkan Anda untuk melihat setiap komponen yang disertakan di dalam snap, jika Anda membutuhkan bantuan terkait pengawakutuan.

      Langkah 2 – Mengonfigurasi Akun Administratif

      Ada beberapa cara berbeda lainnya agar Anda dapat mengonfigurasi snap Nextcloud. Dalam panduan ini, alih-alih menciptakan pengguna administratif melalui antarmuka web, kita akan menciptakan pengguna administratif dengan baris perintah untuk menghindari satu jendela kecil tempat laman pendaftaran administrator akan dapat diakses oleh siapa pun yang mengunjungi alamat IP atau nama domain server Anda.

      Untuk mengonfigurasi Nextcloud dengan akun administrator baru, gunakan perintah nextcloud.manual-install. Anda harus memasukkan nama pengguna dan kata sandi sebagai argumen:

      • sudo nextcloud.manual-install sammy password

      Pesan berikut mengindikasikan bahwa Nextcloud telah dikonfigurasi dengan benar:

      Output

      Nextcloud was successfully installed

      Kini setelah Nextcloud terinstal, kita perlu menyesuaikan domain tepercaya sehingga Nextcloud akan merespons permintaan yang menggunakan nama domain atau alamat IP server.

      Langkah 3 – Menyesuaikan Domain Tepercaya

      Ketika menginstal dari baris perintah, Nextcloud membatasi nama-nama hos yang akan direspons oleh instans. Secara asali, layanan hanya merespons permintaan yang dibuat ke nama hos “localhost”. Kita akan mengakses Nextcloud melalui nama domain atau alamat IP server, sehingga kita perlu menyesuaikan pengaturan untuk menerima jenis permintaan seperti ini.

      Anda dapat melihat pengaturan saat ini dengan melakukan kueri terhadap nilai dari larik trusted_domains:

      • sudo nextcloud.occ config:system:get trusted_domains

      Output

      localhost

      Saat ini, hanya localhost yang hadir sebagai nilai pertama di dalam lari‏k. Kita dapat menambah entri untuk nama domain atau alamat IP server kita dengan mengetik:

      • sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com

      Output

      System config value trusted_domains => 1 set to string example.com

      Jika kita melakukan kueri terhadap domain tepercaya lagi, kita akan melihat bahwa kini kita memiliki dua entri:

      • sudo nextcloud.occ config:system:get trusted_domains

      Output

      localhost example.com

      Jika Anda perlu menambahkan cara lain untuk mengakses instans Nextcloud, Anda dapat menambah domain atau alamat tambahan dengan menjalankan kembali perintah config:system:set menggunakan nomor indeks inkremental (angka “1” dalam perintah pertama) dan menyesuaikan --value.

      Langkah 4 – Mengamankan Antarmuka Web Nextcloud dengan SSL

      Sebelum kita mulai menggunakan Nextcloud, kita perlu mengamankan antarmuka web.

      Jika Anda memiliki nama domain yang terasosiasi dengan server Nextcloud, snap Nextcloud dapat membantu Anda memperoleh dan mengonfigurasi sertifikat SSL tepercaya dari Let’s Encrypt. Jika server Nextcloud Anda tidak memiliki nama domain, Nextcloud dapat mengonfigurasi sertifikat yang ditandatangani sendiri yang akan mengenkripsi lalu lintas web, tetapi tidak akan dipercaya secara otomatis oleh peramban web Anda.

      Dengan mengingat itu, ikuti bagian di bawah ini yang sesuai dengan skenario Anda.

      Opsi 1: Menyiapkan SSL dengan Let’s Encrypt

      Jika Anda memiliki nama domain yang terasosiasi dengan server Nextcloud, opsi terbaik untuk mengamankan antarmuka web Anda adalah dengan memperoleh sertifikat SSL Let’s Encrypt.

      Mulailah dengan membuka porta pada firewall yang digunakan Let’s Encrypt untuk memvalidasi kepemilikan domain. Ini akan membuat laman log masuk Nextcloud Anda dapat diakses publik, tetapi karena kita sudah memiliki akun administrator yang terkonfigurasi, tidak akan ada yang dapat membajak instalasi:

      • sudo ufw allow 80,443/tcp

      Selanjutnya, mintalah sertifikat Let’s Encrypt dengan mengetik:

      • sudo nextcloud.enable-https lets-encrypt

      Pertama-tama, Anda akan ditanya apakah server Anda memenuhi syarat-syarat yang diperlukan untuk meminta sertifikat dari layanan Let’s Encrypt:

      Output

      In order for Let's Encrypt to verify that you actually own the domain(s) for which you're requesting a certificate, there are a number of requirements of which you need to be aware: 1. In order to register with the Let's Encrypt ACME server, you must agree to the currently-in-effect Subscriber Agreement located here: https://letsencrypt.org/repository/ By continuing to use this tool you agree to these terms. Please cancel now if otherwise. 2. You must have the domain name(s) for which you want certificates pointing at the external IP address of this machine. 3. Both ports 80 and 443 on the external IP address of this machine must point to this machine (e.g. port forwarding might need to be setup on your router). Have you met these requirements? (y/n)

      Ketik y untuk melanjutkan.

      Selanjutnya, Anda akan diminta untuk memberikan alamat surel yang digunakan untuk operasi pemulihan:

      Output

      Please enter an email address (for urgent notices or key recovery):

      Masukkan surel Anda dan tekan Enter untuk melanjutkan.

      Terakhir, masukkan nama domain yang terasosiasi dengan server Nextcloud Anda:

      Output

      Please enter your domain name(s) (space-separated): example.com

      Sertifikat Lets Encrypt Anda akan diminta, dan jika semuanya berjalan lancar, instans Apache internal akan segera dimulai ulang untuk menerapkan SSL:

      Output

      Attempting to obtain certificates... done Restarting apache... done

      Kini Anda dapat melompati hingga ke langkah selanjutnya guna masuk ke Nextcloud untuk pertama kalinya.

      Opsi 2: Menyiapkan SSL dengan Sertifikat yang Ditandatangani Sendiri

      Jika server Nextcloud Anda tidak memiliki nama domain, Anda masih dapat mengamankan antarmuka web dengan membuat sertifikat SSL yang ditandatangani sendiri. Sertifikat ini akan mengizinkan akses ke antarmuka web melalui koneksi terenkripsi, tetapi tidak akan dapat memverifikasi identitas server Anda, sehingga peramban Anda kemungkinan akan menampilkan peringatan.

      Untuk menghasilkan sertifikat yang ditandatangani sendiri dan mengonfigurasi Nextcloud untuk menggunakannya, ketik:

      • sudo nextcloud.enable-https self-signed

      Output

      Generating key and self-signed certificate... done Restarting apache... done

      Keluaran di atas mengindikasikan bahwa Nextcloud menghasilkan dan mengaktifkan sertifikat yang ditandatangani sendiri.

      Kini setelah antarmuka aman, buka porta web dalam firewall untuk mengizinkan akses ke antarmuka web:

      • sudo ufw allow 80,443/tcp

      Kini Anda siap log masuk ke Nextcloud untuk pertama kalinya.

      Langkah 5 – Log Masuk ke Antarmuka Web Nextcloud

      Kini setelah Nextcloud terkonfigurasi, kunjungi nama domain server atau alamat IP Anda di peramban web Anda:

      https://example.com
      

      Catatan: Jika Anda menyiapkan sertifikat SSL yang ditandatangani sendiri, peramban Anda mungkin menampilkan peringatan bahwa koneksi tidak aman karena sertifikat server tidak ditandatangani oleh otoritas sertifikat yang diakui. Hal ini sudah diantisipasi untuk sertifikat ditandatangani sendiri, jadi silakan mengeklik untuk melewati peringatan dan melanjutkan ke situs.

      Karena Anda sudah mengonfigurasi akun administrator dari baris perintah, Anda akan dibawa ke laman log masuk Nextcloud. Masukkan kredensial yang Anda ciptakan untuk pengguna administratif:

      Laman log masuk Nextcloud

      Klik tombol Log in untuk log masuk ke antarmuka web Nextcloud.

      Ketika Anda masuk pertama kali, sebuah jendela akan ditampilkan dengan beberapa teks pengantar dan tautan ke berbagai klien Nextcloud yang dapat digunakan untuk mengakses instans Nextcloud Anda:

      Modal klien Nextcloud

      Klik untuk mengunduh klien apa pun yang Anda inginkan, atau keluar dari jendela dengan mengeklik X di sudut kanan atas. Anda akan dibawa ke antarmuka Nextcloud utama, tempat Anda dapat mulai mengunggah dan mengelola berkas:

      Laman utama Nextcloud

      Instalasi Anda kini sudah selesai dan diamankan. Jangan ragu untuk menjelajahi antarmuka agar menjadi lebih familier dengan fitur-fitur dan fungsionalitas dari sistem baru Anda.

      Kesimpulan

      Nextcloud dapat mereplikasi kemampuan dari layanan penyimpanan awan pihak ketiga yang populer. Konten dapat dibagikan di antara beberapa pengguna atau secara eksternal dengan URL publik. Keuntungan dari Nextcloud yakni informasi disimpan secara aman di suatu tempat yang Anda kontrol.

      Untuk fungsionalitas tambahan, lihat di bursa aplikasi Nextcloud, tempat Anda dapat menginstal plugin untuk menambah kemampuan layanan.



      Source link

      Cara Menginstal dan Mengonfigurasi Postfix pada Ubuntu 20.04


      Versi sebelumnya dari tutorial ini ditulis oleh Justin Ellingwood

      Pengantar

      Postfix adalah Agen Transfer Surat (MTA) sumber terbuka populer yang dapat digunakan untuk mengirimkan surel sesuai rutenya pada sistem Linux. Diperkirakan bahwa sekitar 25% dari server surel publik di Internet menggunakan Postfix.

      Dalam panduan ini, Anda akan mempelajari cara menginstal dan mengonfigurasi Postfix pada server Ubuntu 20.04. Lalu, Anda akan menguji apakah Postfix dapat mengirim surat dengan menginstal s-nail, suatu Agen Pengguna Surat (MUA), yang juga dikenal sebagai klien surel.

      Harap diperhatikan bahwa tujuan dari tutorial ini adalah untuk membantu Anda menjadikan Postfix aktif dan berjalan secara cepat dengan hanya sebagian fungsi dasar surel. Anda tidak akan memiliki server surel yang penuh fitur pada akhir panduan ini, tetapi Anda akan memiliki sebagian dari komponen mendasar dari penyiapan untuk membantu Anda memulai.

      Prasyarat

      Untuk mengikuti panduan ini, Anda akan membutuhkan yang berikut:

      • Server yang menjalankan Ubuntu 20.04 untuk berfungsi sebagai server surat Postfix Anda. Server ini harus memiliki pengguna non-root dengan privilese sudo dan firewall yang terkonfigurasi dengan UFW. Anda dapat mengikuti panduan penyiapan server awal Ubuntu 20.04 untuk menyiapkan ini.
      • Nama Domain yang Sepenuhnya Memenuhi Syarat yang mengarah ke server Ubuntu 20.04 Anda. Anda dapat menemukan bantuan tentang menyiapkan nama domain Anda di DigitalOcean dengan mengikuti dokumentasi Domain dan Jaringan DNS kami. Harap diketahui bahwa jika Anda berencana untuk mengakses surel dari suatu lokasi eksternal, Anda akan perlu memastikan bahwa Anda memiliki catatan MX yang mengarah ke server surel Anda juga.

      Harap diperhatikan bahwa tutorial ini mengasumsikan bahwa Anda sedang mengonfigurasi hos yang memiliki FQDN dari mail.example.com. Ketika dibutuhkan, pastikan agar mengubah example.com atau mail.example.com untuk mencerminkan FQDN milik Anda.

      Langkah 1 — Menginstal Postfix

      Postfix disertakan dalam repositori asali Ubuntu, sehingga Anda dapat menginstalnya dengan APT.

      Pertama-tama, perbarui cache paket apt lokal Anda:

      Lalu, instal paket postfix dengan perintah berikut. Perhatikan bahwa di sini kita memasukkan variabel lingkungan DEBIAN_PRIORITY=low ke dalam perintah instalasi ini. Ini akan menyebabkan proses instalasi meminta Anda untuk mengonfigurasi beberapa opsi tambahan:

      • sudo DEBIAN_PRIORITY=low apt install postfix

      Proses instalasi ini akan membuka serangkaian prompt interaktif. Untuk tutorial ini, gunakan informasi berikut untuk mengisi prompt Anda:

      • General type of mail configuration?: Untuk pertanyaan ini, pilih Internet Site karena ini sesuai dengan kebutuhan infrastruktur kita.
      • System mail name: Ini adalah domain dasar yang digunakan untuk menciptakan alamat surel yang valid, hanya pada saat bagian akun dari alamat diberikan. Misalnya, mari kita anggap nama hos server Anda adalah mail.example.com. Anda mungkin akan ingin mengatur nama surel sistem menjadi example.com, lalu jika kita anggap nama penggunanya adalah user1, maka Postfix akan menggunakan alamat user1@example.com.
      • Root and postmaster mail recipient: Ini adalah akun Linux yang akan menerima penerusan surat yang ditujukan ke root@ dan postmaster@. Gunakan akun primer Anda untuk ini. Dalam kasus contoh ini, sammy.
      • Other destinations to accept mail for: Ini mendefinisikan tujuan surat yang akan diterima oleh instans Postfix ini. Jika Anda perlu menambah domain lain yang akan menjadi tanggung jawab dari server ini untuk menerimanya, tambahkan domain itu di sini. Atau, pengaturan asali sudah mencukupi.
      • Force synchronous updates on mail queue?: Karena Anda mungkin menggunakan sistem berkas terjurnal, pilih No di sini.
      • Local networks: Ini adalah daftar jaringan tempat server surel Anda dikonfigurasi untuk menyampaikan pesan. Pengaturan asali akan bekerja untuk kebanyakan skenario. Jika Anda memilih untuk memodifikasinya, pastikan untuk sangat ketat dalam hal cakupan jaringan.
      • Mailbox size limit: Ini dapat digunakan untuk membatasi ukuran pesan. Atur itu ke 0 untuk menonaktifkan pembatasan ukuran apa pun.
      • Local address extension character: Ini adalah karakter yang dapat digunakan untuk memisahkan bagian reguler alamat dari suatu ekstensi (digunakan untuk menciptakan alias dinamis). Pengaturan asali, + akan bekerja untuk tutorial ini.
      • Internet protocols to use: Pilih apakah Anda ingin membatasi versi IP yang didukung Postfix. Untuk tutorial ini, pilih all.

      Untuk lebih jelasnya, ini adalah pengaturan yang digunakan dalam panduan ini:

      • General type of mail configuration?: Internet Site
      • System mail name: example.com (bukan mail.example.com)
      • Root and postmaster mail recipient: Nama pengguna dari akun Linux primer Anda (sammy dalam contoh kita)
      • Other destinations to accept mail for: $myhostname, example.com, mail.example.com, localhost.example.com, localhost
      • Force synchronous updates on mail queue?: No
      • Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
      • Mailbox size limit: 0
      • Local address extension character: +
      • Internet protocols to use: all

      Catatan: Jika Anda perlu kembali untuk mengubah pengaturan ini, Anda dapat melakukannya dengan mengetik:

      • sudo dpkg-reconfigure postfix

      Prompt akan terisi dengan respons sebelumnya dari Anda.

      Ketika proses instalasi selesai, Anda siap untuk membuat beberapa pembaruan ke konfigurasi Postfix Anda.

      Langkah 2 — Mengubah Konfigurasi Postfix

      Sekarang, Anda dapat menyesuaikan beberapa pengaturan yang tidak ditanyakan oleh proses instalasi paket. Banyak pengaturan konfigurasi Postfix didefinisikan di dalam berkas /etc/postfix/main.cf. Alih-alih mengedit berkas ini secara langsung, Anda dapat menggunakan perintah postconf dari Postfix untuk melakukan kueri atau menetapkan pengaturan konfigurasi.

      Pertama-tama, tentukan lokasi untuk kotak surat pengguna Ubuntu non-root Anda. Dalam panduan ini, kita akan menggunakan format Maildir, yang memisahkan pesan-pesan ke dalam berkas individual yang kemudian dipindahkan di antara berbagai direktori berdasarkan tindakan pengguna. Opsi alternatif yang tidak dibahas di dalam panduan ini adalah format mbox, yang menyimpan semua pesan di dalam satu berkas tunggal.

      Atur variabel home_mailbox ke Maildir/. Nanti, Anda akan menciptakan struktur direktori di bawah nama itu di dalam direktori rumah pengguna Anda. Konfigurasikan home_mailbox dengan mengetik:

      • sudo postconf -e 'home_mailbox= Maildir/'

      Selanjutnya, atur lokasi dari tabel virtual_alias_maps, yang memetakan akun surel arbitrer ke akun sistem Linux. Jalankan perintah berikut, yang memetakan lokasi tabel ke suatu berkas basis data hash yang bernama /etc/postfix/virtual:

      • sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

      Karena kini Anda sudah mengonfigurasi lokasi dari berkas peta virtual di dalam berkas main.cf Anda, Anda dapat menciptakan berkas itu sendiri dan mulai memetakan akun surel ke akun pengguna pada sistem Linux Anda. Ciptakan berkas dengan editor teks pilihan Anda; dalam contoh ini, kita akan menggunakan nano:

      • sudo nano /etc/postfix/virtual

      Buat daftar alamat apa pun yang Anda ingin menerima surel darinya, diikuti oleh spasi kosong dan pengguna Linux yang Anda ingin kirimkan surel kepadanya.

      Sebagai contoh, jika Anda ingin menerima surel di contact@example.com dan admin@example.com serta ingin agar surel-surel tersebut dikirim ke pengguna Linux sammy, Anda dapat menyiapkan berkas Anda seperti ini:

      /etc/postfix/virtual

      contact@example.com sammy
      admin@example.com sammy
      

      Setelah Anda memetakan semua alamat ke akun server yang sesuai, simpan dan tutup berkas. Jika Anda menggunakan nano, lakukan ini dengan menekan CTRL + X, Y, kemudian ENTER.

      Terapkan pemetaan dengan mengetik:

      • sudo postmap /etc/postfix/virtual

      Mulai ulang proses Postfix untuk memastikan bahwa semua perubahan Anda telah diterapkan:

      • sudo systemctl restart postfix

      Dengan asumsi Anda telah mengikuti panduan prasyarat Penyiapan Server Awal, Anda akan memiliki firewall yang terkonfigurasi dengan UFW. Firewall ini akan memblokir koneksi eksternal ke layanan pada server Anda secara asali, kecuali koneksi itu diizinkan secara jelas, sehingga Anda harus menambahkan aturan firewall untuk mengizinkan pengecualian untuk Postfix.

      Anda dapat mengizinkan koneksi ke layanan dengan mengetik:

      Dengan itu, Postfix sudah terkonfigurasi dan siap menerima koneksi eksternal. Namun, Anda belum siap untuk mengujinya dengan klien surat. Sebelum Anda dapat menginstal klien dan menggunakannya untuk berinteraksi dengan surel yang dikirimkan ke server Anda, Anda perlu membuat beberapa perubahan pada pengaturan server Ubuntu.

      Langkah 3 — Menginstal Klien Surat dan Melakukan Inisialisasi Struktur Maildir

      Untuk berinteraksi dengan surel yang dikirimkan, langkah ini akan memandu Anda di sepanjang proses menginstal paket s-nail. Ini adalah varian kaya fitur dari klien xmail BSD yang dapat menangani format Maildir dengan benar.

      Sebelum menginstal klien, merupakan hal bijaksana untuk memastikan variabel lingkungan MAIL Anda sudah diatur dengan benar. s-nail akan mencari variabel ini untuk mencari tahu tempat menemukan surel bagi pengguna Anda.

      Untuk memastikan bahwa variabel MAIL sudah diatur, terlepas dari cara Anda mengakses akun Anda — baik melalui ssh, su, su -, atau sudo, sebagai contohnya — Anda akan perlu menetapkan variabel di dalam berkas /etc/bash.bashrc dan menambahkannya ke suatu berkas di dalam /etc/profile.d untuk memastikan variabel tersebut disiapkan untuk semua pengguna secara asali.

      Untuk menambah variabel ke berkas-berkas ini, ketik:

      • echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

      Untuk membacakan variabel ke dalam sesi Anda saat ini, dapatkan dari berkas /etc/profile.d/mail.sh:

      • source /etc/profile.d/mail.sh

      Setelah itu selesai, instal klien surel s-nail dengan APT:

      Sebelum menjalankan klien, ada beberapa pengaturan yang Anda perlu atur. Buka berkas /etc/s-nail.rc di dalam editor Anda:

      Pada bagian bawah berkas, tambahkan opsi berikut:

      /etc/s-nail.rc

      . . .
      set emptystart
      set folder=Maildir
      set record=+sent
      

      Berikut adalah yang dilakukan baris-baris ini:

      • set emptystart: mengizinkan klien untuk membuka bahkan dengan kotak masuk kosong
      • set folder=Maildir: menetapkan direktori Maildir menjadi variabel folder internal
      • set record=+sent menciptakan berkas mbox sent untuk menyimpan surel yang dikirim di dalam direktori mana pun yang ditetapkan sebagai variabel folder, dalam kasus ini Maildir

      Simpan dan tutup berkas saat Anda sudah selesai. Anda kini siap untuk melakukan inisialisasi pada struktur Maildir sistem Anda.

      Cara cepat untuk menciptakan struktur Maildir di dalam direktori rumah Anda adalah dengan mengirimkan suatu surel dengan perintah s-nail kepada Anda. Karena berkas sent hanya tersedia setelah Maildir diciptakan, Anda harus menonaktifkan penulisan padanya untuk surel awal ini. Lakukan ini dengan melewatkan opsi -Snorecord.

      Kirim surel dengan menambahkan string ke perintah s-nail. Sesuaikan perintah untuk menandai pengguna Linux Anda sebagai penerima:

      • echo 'init' | s-nail -s 'init' -Snorecord sammy

      Catatan: Anda mungkin mendapat respons berikut:

      Output

      Can't canonicalize "/home/sammy/Maildir"

      Ini adalah hal normal dan mungkin hanya muncul saat mengirim pesan pertama ini.

      Anda dapat memeriksa untuk memastikan bahwa direktori telah diciptakan dengan mencari direktori ~/Maildir:

      Anda akan melihat struktur direktori telah diciptakan dan bahwa berkas pesan baru berada di dalam direktori ~/Maildir/new:

      Output

      /home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:

      Kini setelah struktur direktori diciptakan, Anda siap untuk menguji klien s-nail dengan melihat pesan init yang Anda kirimkan dan mengirim pesan ke alamat surel eksternal.

      Langkah 4 — Menguji Klien

      Untuk membuka klien, jalankan perintah s-nail:

      Dalam konsol, Anda akan melihat kotak masuk rudimenter dengan pesan init yang menunggu:

      Output

      s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com 2020-05-19 15:40 14/392 init

      Tekan ENTER untuk menampilkan pesan:

      Output

      [-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Tue May 19 15:40:48 2020 Date: Tue, 19 May 2020 15:40:48 +0000 To: sammy@example.com Subject: init Message-Id: <20160513220749.A278F228D9@mail.example.com> From: sammy@example.com init

      Anda dapat kembali ke daftar pesan dengan mengetik h, lalu ENTER:

      Output

      >R 1 sammy@example.com 2020-05-19 15:40 14/392 init

      Perhatikan bahwa pesan itu kini memiliki kondisi R, yang mengindikasikan bahwa pesan sudah dibaca.

      Karena pesan ini tidak begitu berguna, Anda dapat menghapusnya dengan menekan d, lalu ENTER:

      Untuk kembali ke terminal, ketik q lalu ENTER:

      Sebagai ujian terakhir, periksa apakah s-nail dapat mengirim surel dengan benar. Untuk melakukan ini, Anda dapat memasukkan konten dari berkas teks ke dalam proses s-nail, seperti yang Anda lakukan dengan pesan init yang Anda kirim pada langkah sebelumnya.

      Mulailah dengan menulis pesan percobaan di dalam editor teks:

      Di dalam editor, masukkan beberapa teks yang Anda ingin kirim:

      ~/test_message

      Hello,
      
      This is a test.  Please confirm receipt!
      

      Simpan dan tutup berkas setelah menulis pesan Anda.

      Lalu, gunakan perintah cat untuk memasukkan pesan ke proses s-nail. Anda dapat melakukannya dengan mengikuti contoh berikut, yang menggunakan opsi ini:

      • -s: Ini mendefinisikan baris subjek dari pesan surel
      • -r: Perubahan opsional terhadap bidang “From” dari surel. Secara asali, pengguna Linux yang Anda pakai untuk log masuk akan digunakan untuk mengisi bidang ini. Opsi -r memungkinkan Anda untuk menimpa ini dengan alamat yang valid, seperti salah satu dari yang Anda definisikan dalam berkas /etc/postfix/virtual. Sebagai contoh, perintah berikut menggunakan contact@example.com

      Juga, pastikan untuk mengubah user@email.com ke alamat surel valid yang Anda miliki aksesnya:

      • cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com

      Lalu, bernavigasilah ke kotak masuk untuk alamat surel yang menjadi tujuan Anda mengirim pesan. Anda akan segera melihat bahwa pesan Anda menunggu di sana.

      Catatan: Jika pesan tidak ada di dalam kotak masuk Anda, pesan tersebut mungkin terkirim ke folder Spam Anda.

      Anda dapat melihat pesan terkirim Anda di dalam klien s-nail Anda. Mulai klien interaktif lagi:

      Dari klien surel, lihat pesan terkirim Anda dengan mengetik:

      Anda akan melihat keluaran seperti ini:

      Output

      +[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 contact@example.com 2020-05-19 15:47 12/297 Test email subject line

      Anda dapat mengelola surat terkirim menggunakan perintah yang sama dengan yang Anda gunakan untuk surel masuk.

      Kesimpulan

      Anda kini memiliki Postfix yang terkonfigurasi pada server Ubuntu 20.04 Anda. Mengelola server surel dapat menjadi tugas yang sulit untuk administrator sistem baru, tetapi dengan konfigurasi ini, Anda seharusnya memiliki fungsionalitas surel MTA yang cukup untuk membantu Anda memulai sendiri.



      Source link

      Cara Menyiapkan dan Mengonfigurasi Otoritas Sertifikat (CA) Pada Ubuntu 20.04


      Pengantar

      Otoritas Sertifikat (CA) adalah entitas yang bertanggung jawab untuk menerbitkan sertifikat digital untuk memverifikasi identitas di internet. Meskipun CA publik adalah pilihan populer untuk memverifikasi identitas dari situs web dan layanan lainnya yang disediakan ke masyarakat umum, CA privat digunakan untuk grup tertutup dan layanan privat.

      Membangun Otoritas Sertifikat privat akan memungkinkan Anda mengonfigurasi, menguji, dan menjalankan program yang membutuhkan koneksi terenkripsi antara klien dan server. Menggunakan CA privat, Anda dapat menerbitkan sertifikat untuk pengguna, server, atau masing-masing program di dalam infrastruktur Anda.

      Beberapa contoh program pada Linux yang menggunakan CA privat miliknya sendiri adalah OpenVPN dan Puppet. Anda juga dapat mengonfigurasi server web Anda untuk menggunakan sertifikat yang diterbitkan oleh CA privat untuk membuat lingkungan pengembangan dan penahapan sesuai dengan server produksi yang menggunakan TLS untuk mengenkripsi koneksi.

      Dalam panduan ini, kita akan mempelajari cara menyiapkan Otoritas Sertifikat (CA) privat pada server Ubuntu 20.04, dan cara membuat dan menandatangani sertifikat pengujian menggunakan CA baru. Anda juga akan mempelajari cara mengimpor sertifikat publik dari server CA ke dalam penyimpanan sertifikat sistem operasi sehingga Anda dapat memverifikasi rantai kepercayaan antara server jauh dan CA atau pengguna. Terakhir, Anda akan mempelajari cara mencabut sertifikat dan mendistribusikan Daftar Pencabutan Sertifikat untuk memastikan bahwa hanya pengguna dan sistem resmi dapat menggunakan layanan yang bergantung pada CA Anda.

      Prasyarat

      Untuk menyelesaikan tutorial ini, Anda akan membutuhkan akses ke server Ubuntu 20.04 untuk menjadi hos dari server CA Anda. Anda perlu mengonfigurasi pengguna non-root dengan privilese sudo sebelum Anda memulai panduan ini. Anda dapat mengikuti panduan penyiapan server awal Ubuntu 20.04 dari kami untuk menyiapkan pengguna dengan izin yang sesuai. Tutorial terkait yang juga akan menyiapkan firewall, yang diasumsikan sudah siap di seluruh panduan ini.

      Server ini akan disebut sebagai Server CA dalam tutorial ini.

      Pastikan bahwa Server CA adalah sistem yang berdiri sendiri. Ini hanya akan digunakan untuk mengimpor, menandatangani, dan mencabut permintaan sertifikat. Server Ini tidak boleh menjalankan layanan lainnya, dan idealnya akan nonaktif atau sepenuhnya mati saat Anda tidak aktif bekerja dengan CA Anda.

      Catatan: Bagian terakhir dari tutorial ini bersifat opsional seandainya Anda ingin mempelajari cara menandatangani dan mencabut sertifikat. Jika Anda memilih untuk menyelesaikan langkah-langkah latihan itu, Anda akan membutuhkan server Ubuntu 20.04 kedua atau Anda juga dapat menggunakan komputer Linux lokal milik Anda yang menjalankan Ubuntu atau Debian, atau distribusi yang diturunkan dari salah satunya.

      Langkah 1 — Menginstal Easy-RSA

      Tugas pertama dalam tutorial ini adalah menginstal serangkaian skrip easy-rsa pada Server CA Anda. easy-rsa adalah alat manajemen Otoritas Sertifikat yang akan Anda gunakan untuk membuat kunci privat, dan sertifikat root publik, yang kemudian Anda akan gunakan untuk menandatangani permintaan dari klien dan server yang akan bergantung pada CA Anda.

      Log masuk ke Server CA Anda sebagai pengguna sudo non-root yang Anda buat selama langkah penyiapan awal dan jalankan yang berikut:

      • sudo apt update
      • sudo apt install easy-rsa

      Anda akan diminta mengunduh paket dan menginstalnya. Tekan y untuk mengonfirmasi bahwa Anda ingin menginstal paket.

      Pada titik ini, Anda sudah menyiapkan segala sesuatu yang Anda perlukan dan siap menggunakan Easy-RSA. Pada langkah selanjutnya, Anda akan membuat Infrastruktur Kunci Publik, lalu mulai membangun Otoritas Sertifikat Anda.

      Langkah 2 — Mempersiapkan Direktori infrastruktur Kunci Publik

      Kini setelah Anda menginstal easy-rsa, tiba waktunya untuk membuat kerangka Infrastruktur Kunci Publik (PKI) di dalam Server CA. Pastikan bahwa Anda masih log masuk sebagai pengguna non-root Anda dan buat direktori easy-rsa. Pastikan bahwa Anda tidak menggunakan sudo untuk menjalankan salah satu perintah berikut, karena pengguna normal Anda harus mengelola dan berinteraksi dengan CA tanpa privilese yang ditingkatkan.

      Ini akan menciptakan direktori baru bernama easy-rsa di dalam folder rumah Anda. Kita akan menggunakan direktori ini untuk membuat tautan simbolis yang mengarah ke berkas paket easy-rsa yang kita telah instal pada langkah sebelumnya. Berkas-berkas ini berada di dalam folder /usr/share/easy-rsa di Server CA.

      Buat symlink dengan perintah ln:

      • ln -s /usr/share/easy-rsa/* ~/easy-rsa/

      Catatan: Walaupun panduan lain mungkin menginstruksikan Anda untuk menyalin berkas paket easy-rsa ke direktori PKI Anda, tutorial ini mengadopsi pendekatan symlink. Hasilnya, pembaruan apa pun ke paket easy-rsa akan secara otomatis tercermin pada skrip PKI Anda.

      Untuk membatasi akses ke direktori PKI yang baru, pastikan bahwa hanya pemilik yang dapat mengaksesnya menggunakan perintah chmod:

      • chmod 700 /home/sammy/easy-rsa

      Terakhir, inisialisasi PKI di dalam direktori easy-rsa:

      • cd ~/easy-rsa
      • ./easyrsa init-pki

      Output

      init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /home/sammy/easy-rsa/pki

      Setelah menyelesaikan bagian ini, Anda memiliki direktori yang memuat semua berkas yang dibutuhkan untuk membuat Otoritas Sertifikat. Pada bagian selanjutnya, Anda akan membuat kunci privat dan sertifikat publik untuk CA Anda.

      Langkah 3 — Membuat Otoritas Sertifikat

      Sebelum Anda dapat membuat kunci dan sertifikat privat CA, Anda perlu membuat dan mengisi berkas yang bernama vars dengan beberapa nilai asali. Pertama-tama, Anda akan memasukkan cd ke direktori easy-rsa, lalu Anda akan membuat dan mengedit berkas vars menggunakan nano atau editor teks pilihan Anda:

      Setelah berkas dibuka, rekatkan di baris berikut ini dan edit masing-masing nilai yang disorot untuk mencerminkan info organisasi Anda. Bagian penting di sini adalah memastikan bahwa Anda tidak meninggalkan nilai kosong apa pun:

      ~/easy-rsa/vars

      set_var EASYRSA_REQ_COUNTRY "US" set_var EASYRSA_REQ_PROVINCE "NewYork" set_var EASYRSA_REQ_CITY "New York City" set_var EASYRSA_REQ_ORG "DigitalOcean" set_var EASYRSA_REQ_EMAIL "admin@example.com" set_var EASYRSA_REQ_OU "Community" set_var EASYRSA_ALGO "ec" set_var EASYRSA_DIGEST "sha512"

      Setelah Anda selesai, simpan dan tutup berkas. Jika Anda menggunakan nano, Anda dapat melakukan itu dengan menekan CTRL+X, lalu Y, dan ENTER untuk mengonfirmasi. Anda kini siap untuk membangun CA Anda.

      Untuk membuat pasangan kunci root publik dan privat pada Otoritas Sertifikat Anda, jalankan perintah ./easy-rsa lagi, kali ini dengan opsi build-ca:

      Pada keluaran, Anda akan melihat beberapa baris tentang versi OpenSSL dan Anda akan diminta memasukkan frasa sandi untuk pasangan kunci Anda. Pastikan untuk memilih frasa sandi yang kuat, dan catat di tempat yang aman. Anda akan perlu memasukkan frasa sandi setiap kali Anda perlu berinteraksi dengan CA, misalnya untuk menandatangani atau mencabut sertifikat.

      Anda juga akan diminta untuk mengonfirmasi Nama Umum (CN) untuk CA Anda. CN adalah nama yang digunakan untuk merujuk ke mesin ini dalam konteks Otoritas Sertifikat. Anda dapat memasukkan rangkaian karakter apa pun untuk Nama Umum CA, tetapi untuk menyederhanakan, tekan ENTER untuk menerima nama asali.

      Output

      . . . Enter New CA Key Passphrase: Re-Enter New CA Key Passphrase: . . . Common Name (eg: your user, host, or server name) [Easy-RSA CA]: CA creation complete and you may now import and sign cert requests. Your new CA certificate file for publishing is at: /home/sammy/easy-rsa/pki/ca.crt

      Catatan: Jika Anda tidak ingin diminta memasukkan kata sandi setiap kali Anda berinteraksi dengan CA, Anda dapat menjalankan perintah build-ca dengan opsi nopass, seperti ini:

      • ./easyrsa build-ca nopass

      Anda kini memiliki dua berkas penting — ~/easy-rsa/pki/ca.crt dan ~/easy-rsa/pki/private/ca.key — yang menjadi komponen privat dan publik dari Otoritas Sertifikat.

      • ca.crt adalah berkas sertifikat publik dari CA. Pengguna, server, dan klien akan menggunakan sertifikat ini untuk memverifikasi bahwa mereka adalah bagian dari jaringan kepercayaan yang sama. Setiap pengguna dan server yang menggunakan CA Anda perlu memiliki salinan dari berkas ini. Semua pihak akan bergantung pada sertifikat publik untuk memastikan bahwa seseorang tidak meniru suatu sistem dan melakukan Serangan orang-di-tengah.

      • ca.key adalah kunci privat yang digunakan CA untuk menandatangani sertifikat server dan klien. Jika penyerang memperoleh akses ke CA Anda dan, pada gilirannya, berkas ca.key, Anda harus menghancurkan CA Anda. Inilah sebabnya berkas ca.key Anda harus berada hanya di dalam mesin CA Anda dan, idealnya, mesin CA Anda harus tetap nonaktif saat tidak menandatangani permintaan sertifikat sebagai tindakan keamanan ekstra.

      Dengan demikian, CA Anda sudah berada di tempatnya dan siap digunakan untuk menandatangani permintaan sertifikat dan mencabut sertifikat.

      Langkah 4 — Mendistribusikan Sertifikat Publik dari Otoritas Sertifikat Anda

      Kini CA Anda sudah terkonfigurasi dan siap untuk bertindak sebagai root kepercayaan untuk sistem apa pun yang Anda ingin konfigurasi untuk menggunakannya. Anda dapat menambah sertifikat CA ke server OpenVPN, server web, server surel, dan sebagainya. Pengguna atau server apa pun yang perlu memverifikasi identitas pengguna atau server lain di dalam jaringan Anda harus memiliki salinan berkas ca.crt yang diimpor ke dalam penyimpanan sertifikat dari sistem operasinya.

      Untuk mengimpor sertifikat publik CA menjadi sistem Linux kedua seperti server lokal atau komputer lokal, pertama-tama dapatkan salinan dari berkas CA ca.crt dari server CA Anda. Anda dapat menggunakan perintah cat untuk mengeluarkannya pada suatu terminal, lalu rekatkan ke dalam berkas pada komputer kedua yang mengimpor sertifikat. Anda juga dapat menggunakan alat seperti scp dan rsync untuk mentransfer berkas di antara beberapa sistem. Namun, kita akan menggunakan salin dan rekat dengan nano pada langkah ini karena itu akan bekerja pada semua sistem.

      Sebagai pengguna non-root pada Server CA Anda, jalankan perintah berikut:

      • cat ~/easy-rsa/pki/ca.crt

      Akan ada keluaran di terminal Anda yang mirip dengan berikut ini:

      Output

      -----BEGIN CERTIFICATE----- MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw . . . . . . -----END CERTIFICATE-----

      Salin segalanya, termasuk garis dan tanda hubung pada -----BEGIN CERTIFICATE----- dan -----END CERTIFICATE-----.

      Pada sistem Linux kedua, gunakan nano atau editor teks pilihan Anda untuk membuka berkas yang bernama /tmp/ca.crt:

      Tempelkan konten yang Anda baru saja salin dari Server CA ke dalam editor. Setelah Anda selesai, simpan dan tutup berkas. Jika Anda menggunakan nano, Anda dapat melakukan itu dengan menekan CTRL+X, lalu Y, dan ENTER untuk mengonfirmasi.

      Karena kini Anda memiliki salinan dari berkas ca.crt pada sistem Linux kedua, kini saatnya mengimpor sertifikat ke dalam penyimpanan sertifikat dari sistem operasinya.

      Pada sistem yang berbasis Ubuntu dan Debian, jalankan perintah berikut sebagai pengguna non-root untuk mengimpor sertifikat:

      Ubuntu and Debian derived distributions

      • sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
      • sudo update-ca-certificates

      Untuk mengimpor sertifikat Server CA pada sistem berbasis CentOS, Fedora, atau RedHat, salin dan rekatkan konten berkas pada sistem ini seperti dalam contoh sebelumnya di dalam berkas yang bernama /tmp/ca.cert. Selanjutnya, Anda akan menyalin sertifikat itu ke dalam /etc/pki/ca-trust/source/anchors/, lalu jalankan perintah update-ca-trust.

      CentOS, Fedora, RedHat distributions

      • sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
      • sudo update-ca-trust

      Sekarang sistem Linux kedua Anda akan memercayai sertifikat apa pun yang telah ditandatangani oleh server CA itu.

      Catatan: Jika Anda menggunakan CA dengan server web dan Firefox sebagai peramban, Anda perlu mengimpor sertifikat ca.crt publik secara langsung ke dalam Firefox. Firefox tidak menggunakan penyimpanan sertifikat dari sistem operasi lokal. Untuk detail tentang cara menambah sertifikat CA Anda ke Firefox, lihat artikel dukungan ini dari Mozilla yang tentang Menyiapkan Otoritas Sertifikat (CA) pada Firefox.

      Jika Anda menggunakan CA untuk berintegrasi dengan lingkungan Windows atau komputer desktop, lihat dokumentasi tentang cara menggunakan certutil.exe untuk menginstal sertifikat CA.

      Jika Anda menggunakan tutorial ini sebagai prasyarat untuk tutorial lain, atau tidak asing dengan cara menandatangani dan mencabut sertifikat, Anda dapat berhenti di sini. Jika Anda ingin belajar lebih lanjut tentang cara menandatangani dan mencabut sertifikat, bagian opsional berikut akan menjelaskan masing-masing proses itu secara mendetail.

      (Opsional) — Membuat Permintaan Penandatanganan Sertifikat dan Mencabut Sertifikat

      Bagian berikut dari tutorial ini bersifat opsional. Jika Anda telah menyelesaikan semua langkah sebelumnya, Anda memiliki Otoritas Sertifikat yang telah terkonfigurasi dan berfungsi sepenuhnya sehingga Anda dapat menggunakannya sebagai prasyarat untuk tutorial lain. Anda dapat mengimpor berkas ca.crt dan memverifikasi sertifikat di dalam jaringan Anda yang telah ditandatangani oleh CA Anda.

      Jika Anda ingin berlatih dan belajar lebih lanjut tentang cara menandatangani permintaan sertifikat dan cara mencabut sertifikat, bagian opsional ini akan menjelaskan bagaimana kedua proses itu berjalan.

      (Opsional) — Membuat dan Menandatangani Permintaan Sertifikat Latihan

      Kini setelah Anda memiliki CA yang siap digunakan, Anda dapat berlatih membuat kunci dan permintaan sertifikat privat untuk membiasakan diri dengan proses penandatanganan dan distribusi.

      Permintaan Penandatanganan Sertifikat (CSR) terdiri dari tiga bagian: kunci publik, mengidentifikasi informasi tentang sistem permintaan, dan penandatanganan dari permintaan itu sendiri, yang dibuat menggunakan kunci privat dari pihak yang meminta. Kunci privat akan dirahasiakan dan digunakan untuk mengenkripsi informasi bahwa siapa pun yang memiliki sertifikat publik yang ditandatangani dapat mendekripsi.

      Langkah-langkah berikut akan dijalankan pada sistem Ubuntu atau Debian kedua Anda, atau distribusi yang berasal dari salah satunya. Ini dapat berupa server jauh lain, atau mesin Linux lokal seperti laptop atau komputer desktop. Karena easy-rsa tidak tersedia secara asali pada semua sistem, kita akan menggunakan alat openssl untuk membuat kunci dan sertifikat privat latihan.

      openssl biasanya terinstal secara asali pada sebagian besar distribusi Linux, tetapi hanya untuk memastikan, jalankan berikut ini pada sistem Anda:

      • sudo apt update
      • sudo apt install openssl

      Saat diminta untuk menginstal openssl, masukkan y untuk melanjutkan dengan langkah instalasi. Kini Anda siap untuk membuat CSR latihan dengan openssl.

      Langkah pertama yang Anda perlu selesaikan untuk membuat CSR adalah membuat kunci privat. Untuk membuat kunci privat menggunakan openssl, buat direktori practice-csr, lalu buat kunci di dalamnya. Kita akan membuat permintaan ini untuk server fiksi bernama sammy-server, dan bukannya membuat sertifikat yang digunakan untuk mengidentifikasi pengguna atau CA lain.

      • mkdir ~/practice-csr
      • cd ~/practice-csr
      • openssl genrsa -out sammy-server.key

      Output

      Generating RSA private key, 2048 bit long modulus (2 primes) . . . . . . e is 65537 (0x010001)

      Karena kini Anda memiliki kunci privat, Anda dapat membuat CSR yang sesuai, menggunakan utilitas openssl lagi. Anda akan diminta mengisi beberapa bidang seperti Country, State, dan City. Anda dapat memasukkan . jika Anda ingin membiarkan suatu bidang tetap kosong, tetapi berhati-hatilah bahwa jika ini adalah CSR yang nyata, sebaiknya gunakan nilai yang benar untuk lokasi dan organisasi Anda:

      • openssl req -new -key sammy-server.key -out sammy-server.req

      Output

      . . . ----- Country Name (2 letter code) [XX]:US State or Province Name (full name) []:New York Locality Name (eg, city) [Default City]:New York City Organization Name (eg, company) [Default Company Ltd]:DigitalOcean Organizational Unit Name (eg, section) []:Community Common Name (eg, your name or your server's hostname) []:sammy-server Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

      Jika Anda ingin secara otomatis menambah nilai-nilai itu sebagai bagian dari permohonan openssl alih-alih melalui prompt interaktif, Anda dapat melewatkan argumen -subj ke OpenSSL. Pastikan untuk mengedit nilai yang disorot supaya sesuai dengan lokasi latihan, organisasi, dan nama server Anda:

      • openssl req -new -key sammy-server.key -out server.req -subj
      • /C=US/ST=New York/L=New York City/O=DigitalOcean/OU=Community/CN=sammy-server

      Untuk memverifikasi konten dari suatu CSR, Anda dapat membaca berkas permintaan dengan openssl dan memeriksa bidang-bidang di dalamnya:

      • openssl req -in sammy-server.req -noout -subject

      Output

      subject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server

      Setelah Anda puas dengan subjek dari permintaan sertifikat latihan, salin berkas sammy-server.req ke server CA Anda menggunakan scp:

      • scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req

      Dalam langkah ini, Anda membuat Permintaan Penandatanganan Sertifikat untuk server fiksi bernama sammy-server. Dalam skenario dunia nyata, permintaan itu mungkin berasal dari sesuatu seperti server web pengembangan atau penahapan yang membutuhkan sertifikat TLS untuk menguji; atau dapat berasal dari server OpenVPN yang meminta suatu sertifikat sehingga pengguna dapat terhubung ke VPN. Pada langkah selanjutnya, kita akan melanjutkan ke menandatangani permintaan penandatanganan sertifikat menggunakan kunci privat dari Server CA.

      (Opsional) — Menandatangani CSR

      Pada langkah sebelumnya, Anda membuat permintaan sertifikat latihan dan kunci untuk server fiksi. Anda menyalinnya ke direktori /tmp pada server CA, yang mengemulasi proses yang Anda akan gunakan jika Anda memiliki klien atau server nyata yang mengirimi Anda permintaan CSR yang perlu ditandatangani.

      Melanjutkan skenario fiksi, sekarang Server CA perlu mengimpor sertifikat latihan dan menandatanganinya. Setelah permintaan sertifikat divalidasi oleh CA dan dikembalikan ke server, klien yang memercayai Otoritas Sertifikat juga akan dapat memercayai sertifikat yang baru diterbitkan.

      Karena kita akan beroperasi di dalam PKI dari CA tempat utilitas easy-rsa tersedia, langkah-langkah penandatanganan akan menggunakan utilitas easy-rsa untuk memudahkan, dibanding menggunakan openssl secara langsung seperti yang kita lakukan pada contoh sebelumnya.

      Langkah pertama untuk menandatangani CSR fiksi ini adalah mengimpor permintaan sertifikat menggunakan skrip easy-rsa:

      • cd ~/easy-rsa
      • ./easyrsa import-req /tmp/sammy-server.req sammy-server

      Output

      . . . The request has been successfully imported with a short name of: sammy-server You may now use this name to perform signing operations on this request.

      Sekarang Anda dapat menandatangani permintaan itu dengan menjalankan skrip easyrsa menggunakan opsi sign-req, diikuti oleh jenis permintaan dan Nama Umum yang disertakan di dalam CSR. Jenis permintaan dapat berupa salah satu dari client, server, atau ca. Karena kita sedang berlatih dengan sertifikat untuk server fiksi, pastikan untuk menggunakan jenis permintaan server:

      • ./easyrsa sign-req server sammy-server

      Pada keluaran, Anda akan diminta memverifikasi bahwa permintaan itu berasal dari sumber tepercaya. Ketik yes, lalu tekan ENTER untuk mengonfirmasi ini:

      Output

      You are about to sign the following certificate. Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender. Request subject, to be signed as a server certificate for 3650 days: subject= commonName = sammy-server Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes . . . Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt

      Jika Anda mengenkripsi kunci CA, Anda akan diminta memasukkan kata sandi pada titik ini.

      Dengan selesainya langkah-langkah ini, Anda telah menandatangani CSR sammy-server.req menggunakan kunci privat dari Server CA dalam /home/sammy/easy-rsa/pki/private/ca.key. Berkas sammy-server.crt yang dihasilkan memuat kunci enkripsi publik dari server latihan serta tanda tangan baru dari server CA. Maksud dari tanda tangan adalah memberi tahu siapa pun yang memercayai CA bahwa mereka juga dapat memercayai sertifikat sammy-server.

      Jika permintaan ini benar-benar untuk server web atau server VPN, langkah terakhir pada Server CA adalah mendistribusikan berkas sammy-server.crt dan ca.crt yang baru dari Server CA ke server jauh yang membuat permintaan CA:

      • scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
      • scp pki/ca.crt sammy@your_server_ip:/tmp

      Pada titik ini, Anda dapat menggunakan sertifikat yang diterbitkan dengan sesuatu seperti server web, VPN, alat manajemen konfigurasi, sistem basis data, atau untuk autentikasi klien.

      (Opsional) — Mencabut Sertifikat

      Terkadang, Anda mungkin perlu mencabut sertifikat untuk mencegah pengguna atau server menggunakannya. Mungkin laptop seseorang dicuri, server web bocor, atau karyawan maupun kontraktor telah meninggalkan organisasi Anda.

      Untuk mencabut sertifikat, proses umum mengikuti langkah-langkah ini:

      1. Cabut sertifikat dengan perintah ./easyrsa revoke client_name.
      2. Buat CRL baru dengan perintah ./easyrsa gen-crl.
      3. Transfer berkas crl.pem yang diperbarui ke server yang bergantung pada CA Anda, dan pada sistem itu, salinlah ke direktori yang diperlukan atau direktori untuk program-program yang merujuk kepadanya.
      4. Mulai ulang layanan apa pun yang menggunakan CA dan berkas CRL Anda.

      Anda dapat menggunakan proses ini untuk mencabut sertifikat apa pun yang Anda telah terbitkan sebelumnya kapan saja. Kita akan membahas setiap langkah secara detail pada bagian berikut, mulai dari perintah revoke.

      Mencabut Sertifikat

      Untuk mencabut sertifikat, bernavigasilah ke direktori easy-rsa di server CA Anda:

      Selanjutnya, jalankan skrip easyrsa dengan opsi revoke, diikuti dengan nama klien yang Anda ingin cabut. Mengikuti contoh latihan di atas, Nama Umum sertifikat adalah sammy-server:

      • ./easyrsa revoke sammy-server

      Ini akan meminta Anda untuk mengonfirmasi pencabutan dengan mengetikyes:

      Output

      Please confirm you wish to revoke the certificate with the following subject: subject= commonName = sammy-server Type the word 'yes' to continue, or any other input to abort. Continue with revocation: yes . . . Revoking Certificate 8348B3F146A765581946040D5C4D590A . . .

      Perhatikan nilai yang disorot pada baris Revoking Certificate. Nilai ini adalah nomor seri unik dari sertifikat yang sedang dicabut. Jika Anda ingin memeriksa daftar pencabutan pada langkah terakhir dari bagian ini untuk memverifikasi bahwa sudah sertifikat berada di dalamnya, Anda akan membutuhkan nilai ini.

      Setelah mengonfirmasi tindakan, CA akan mencabut sertifikat. Namun, sistem jauh yang bergantung pada CA tidak memiliki cara untuk memeriksa apakah ada sertifikat yang telah dicabut. Pengguna dan server masih akan dapat menggunakan sertifikat sampai Daftar Pencabutan Sertifikat (CRL) dari CA diedarkan ke semua sistem yang bergantung pada CA itu.

      Pada langkah selanjutnya, Anda akan membuat CRL atau memperbarui berkas crl.pem yang sudah ada.

      Membuat Daftar Pencabutan Sertifikat

      Karena kini Anda telah mencabut sertifikat, penting untuk memperbarui daftar sertifikat yang dicabut pada server CA Anda. Setelah Anda memiliki daftar pencabutan yang diperbarui, Anda akan dapat memberi tahu pengguna dan sistem yang memiliki sertifikat valid di CA Anda.

      Untuk membuat CRL, jalankan perintah easy-rsa dengan opsi gen-crl saat masih di dalam direktori ~/easy-rsa:

      Jika Anda telah menggunakan frasa sandi saat membuat berkas ca.key, Anda akan diminta untuk memasukkannya. Perintah gen-crl akan membuat berkas yang bernama crl.pem, yang memuat daftar sertifikat yang dicabut yang telah diperbarui untuk CA itu.

      Selanjutnya, Anda perlu mentransfer berkas crl.pem yang diperbarui ke semua server dan klien yang bergantung pada CA ini setiap kali Anda menjalankan perintah gen-crl. Jika tidak, klien dan sistem akan masih dapat mengakses layanan dan sistem yang menggunakan CA Anda, karena layanan tersebut perlu mengetahui status sertifikat yang telah dicabut.

      Mentransfer Daftar Pencabutan Sertifikat

      Karena kini Anda telah membuat CRL pada server CA, Anda perlu mentransfernya ke sistem jauh yang bergantung pada CA Anda. Untuk mentransfer berkas ini ke server, Anda dapat menggunakan perintah scp.

      Catatan: Tutorial ini menjelaskan cara membuat dan mendistribusikan CRL secara manual. Walaupun ada metode yang lebih kuat dan otomatis untuk mendistribusikan dan memeriksa daftar pencabutan seperti OCSP-Stapling, mengonfigurasi metode tersebut tidak termasuk dalam cakupan artikel ini.

      Pastikan Anda log masuk ke server CA Anda sebagai pengguna non-root dan jalankan berikut ini, mengganti nama IP server atau nama DNS Anda sebagai pengganti your_server_ip:

      • scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp

      Kini setelah berkas tersebut berada di sistem jauh, langkah terakhir adalah memperbarui layanan apa pun dengan salinan baru dari daftar pencabutan.

      Memperbarui Layanan yang Mendukung CRL

      Membuat daftar langkah-langkah yang Anda perlu gunakan untuk memperbarui layanan yang menggunakan berkas crl.pem tidak termasuk dalam cakupan tutorial ini. Secara umum, Anda akan perlu menyalin berkas crl.pem ke lokasi yang diharapkan layanan, lalu memulai ulang menggunakan systemctl.

      Setelah Anda memperbarui layanan Anda dengan berkas crl.pem yang baru, layanan Anda akan dapat menolak koneksi dari klien atau server yang menggunakan sertifikat telah dicabut.

      Memeriksa dan Memverifikasi Konfigurasi CRL

      Jika Anda ingin memeriksa berkas CRL, misalnya untuk mengonfirmasi daftar sertifikat yang sudah dicabut, gunakan perintah openssl berikut ini dari dalam direktori easy-rsa pada server CA Anda:

      • cd ~/easy-rsa
      • openssl crl -in pki/crl.pem -noout -text

      Anda juga dapat menjalankan perintah ini pada server atau sistem apa pun yang telah menginstal alat openssl dengan salinan berkas crl.pem. Sebagai contoh, jika Anda mentransfer berkas crl.pem ke sistem kedua dan ingin memverifikasi bahwa sertifikat sammy-server sudah dicabut, Anda dapat menggunakan perintah openssl seperti berikut ini, mengganti nomor seri yang Anda catat sebelumnya ketika Anda mencabut sertifikat sebagai pengganti yang disorot di sini:

      • openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A

      Output

      Serial Number: 8348B3F146A765581946040D5C4D590A Revocation Date: Apr 1 20:48:02 2020 GMT

      Perhatikan bagaimana perintah grep digunakan untuk memeriksa nomor seri unik yang Anda catat dalam langkah pencabutan. Sekarang Anda dapat memverifikasi konten dari Daftar Pencabutan Sertifikat Anda pada sistem apa pun yang bergantung padanya untuk membatasi akses ke pengguna dan layanan.

      Kesimpulan

      Dalam tutorial ini, Anda telah membuat Otoritas Sertifikat privat menggunakan paket Easy-RSA pada server mandiri Ubuntu 20.04. Anda telah mempelajari cara kerja model kepercayaan di antara pihak-pihak yang bergantung pada CA. Anda juga telah membuat dan menandatangani Permintaan Penandatanganan Sertifikat (CSR) untuk server latihan, lalu mempelajari cara mencabut sertifikat. Terakhir, Anda telah mempelajari cara membuat dan mendistribusikan Daftar Pencabutan Sertifikat (CRL) untuk sistem apa pun yang bergantung pada CA Anda untuk memastikan bahwa pengguna atau server yang tidak boleh mengakses layanan tersebut sudah dicegah untuk melakukan hal itu.

      Sekarang, Anda dapat menerbitkan sertifikat untuk pengguna dan menggunakannya dengan layanan seperti OpenVPN. Anda juga dapat menggunakan CA untuk mengonfigurasi pengembangan dan penahapan server web dengan sertifikat untuk mengamankan lingkungan nonproduksi Anda. Menggunakan CA dengan sertifikat TLS selama pengembangan dapat membantu memastikan bahwa kode dan lingkungan Anda cocok dengan lingkungan produksi Anda semirip mungkin.

      Jika Anda ingin mempelajari lebih lanjut tentang cara menggunakan OpenSSL, tutorial Esensial OpenSSL: Bekerja dengan Sertifikat SSL, Kunci Privat, dan CSR dari kami memiliki banyak informasi tambahan untuk membantu Anda lebih memahami dasar-dasar OpenSSL.



      Source link