One place for hosting & domains
      • Fast, Secure, Realiable

        Powerful shared hosting on enterprise hardware.


        • Easy control panel
        • 1-Click script install
        • SSD disk storage
        • Unlimited transfer
        • 24/7 technical support
        • 99% uptime guarantee
      • Unlimited Web Hosting

        All the Feature You Need
        In One Package

        Power and Stability Guaranteed

        Learn more  

        UNLIMITED WEB HOSTING

        63%

        OFF

        starting at

        $29/month

      • High performance SSD Server

        At vero eos et accusamus iusto odio dignissimos ducimus blanditiis.

        Sign Up Now!
      • GET THE DOMAIN
        YOU WANT


        FOR THE PRICE
        YOU LOVE

      Cara Menginstal Webmin pada Ubuntu 20.04


      Pengantar

      Webmin adalah panel kontrol web modern yang memungkinkan Anda untuk mengelola server Linux melalui antarmuka berbasis peramban. Dengan Webmin, Anda dapat mengelola akun pengguna, mengonfigurasi pengaturan DNS, dan mengubah pengaturan untuk paket-paket umum secara langsung ketika sistem sedang berjalan.

      Dalam tutorial ini, Anda akan menginstal dan mengonfigurasi Webmin pada server Anda dan mengamankan akses ke antarmuka dengan sertifikat yang valid dari Let’s Encrypt. Kemudian, Anda akan menggunakan Webmin untuk menambah akun pengguna baru, dan memperbarui semua paket pada server Anda dari dasbor.

      Prasyarat

      Untuk menyelesaikan tutorial ini, Anda akan memerlukan:

      Langkah 1 — Menginstal Webmin

      Pertama-tama, perbarui indeks paket server jika Anda belum melakukannya baru-baru ini:

      Lalu, kita perlu menambah repositori Webmin agar kita dapat menginstal dan memperbarui Webmin dengan menggunakan manajer paket kita. Kita dapat melakukannya dengan menambahkan repositori ke berkas /etc/apt/sources.list.

      Buka berkas tersebut di editor pilihan Anda. Di sini, kita akan menggunakan nano:

      • sudo nano /etc/apt/sources.list

      Kemudian, tambahkan baris ini ke bagian bawah berkas untuk menambahkan repositori baru:

      /etc/apt/sources.list

      . . .
      deb http://download.webmin.com/download/repository sarge contrib
      

      Simpan berkas dan keluar dari editor. Jika Anda menggunakan nano, lakukan hal itu dengan menekan CTRL + X, Y, lalu ENTER.

      Selanjutnya, Anda akan menambahkan kunci PGP dari Webmin sehingga sistem Anda akan memercayai repositori baru. Agar dapat melakukannya, Anda harus menginstal paket gnupg1, yang merupakan alat GNU untuk mengamankan komunikasi dan penyimpanan data.

      Setelah itu, unduh kunci PGP dari Webmin dengan wget dan tambahkan itu ke daftar kunci dari sistem Anda:

      • wget -q -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add

      Selanjutnya, perbarui daftar paket kembali agar mencakup repositori Webmin yang kini telah dipercaya:

      Lalu, instal Webmin:

      Setelah instalasi selesai, Anda akan disajikan dengan keluaran berikut:

      Output

      . . . Webmin install complete. You can now login to https://your_server:10000 as root with your root password, or as any user who can use sudo.

      Catatan: Jika Anda telah menginstal dan mengaktifkan ufw selama langkah prasyarat, Anda akan perlu menjalankan perintah berikut untuk mengizinkan Webmin melewati firewall:

      Untuk keamanan ekstra, Anda mungkin ingin mengonfigurasi firewall Anda untuk mengizinkan akses ke porta ini dari kisaran IP tertentu.

      Mari kita amankan akses ke Webmin dengan menambahkan sertifikat yang valid.

      Langkah 2 — Menambahkan Sertifikat yang Valid dengan Let’s Encrypt

      Webmin memang sudah dikonfigurasi untuk menggunakan HTTPS, tetapi Webmin menggunakan sertifikat yang tidak tepercaya dan ditandatangani sendiri. Mari kita menggantinya dengan sertifikat yang valid dari Let’s Encrypt.

      Bernavigasilah ke https://your_domain:10000 pada peramban web Anda, ganti your_domain dengan nama domain yang mengarah ke alamat IP server Anda.

      Catatan: Saat log masuk untuk pertama kalinya, Anda akan melihat peringatan “SSL tidak valid”. Peringatan ini mungkin memiliki kalimat yang berbeda tergantung peramban Anda, tetapi alasan dari peringatan ini adalah bahwa server telah menghasilkan sertifikat yang ditandatangani sendiri. Izinkan pengecualian dan lanjutkan ke domain Anda sehingga Anda dapat mengganti sertifikat yang ditandatangani sendiri dengan sertifikat dari Let’s Encrypt.

      Anda akan disajikan dengan layar log masuk. Masuk dengan pengguna non-root yang Anda ciptakan ketika memenuhi prasyarat untuk tutorial ini.

      Setelah Anda log masuk, layar pertama yang Anda akan lihat adalah dasbor Webmin. Sebelum Anda dapat menerapkan sertifikat yang valid, Anda harus menyiapkan nama hos server. Carilah bidang System hostname dan klik tautan di sebelah kanan, seperti yang ditunjukkan dalam gambar berikut:

      Gambar yang menunjukkan lokasi tautan pada dasbor Webmin

      Ini akan membawa Anda ke laman Hostname and DNS Client. Temukan bidang Hostname, dan masukkan Nama Domain yang Sepenuhnya Memenuhi Syarat ke bidang tersebut. Kemudian, klik tombol Save di bagian bawah laman untuk menerapkan pengaturan.

      Setelah Anda menyiapkan nama hos Anda, klik pada menu menurun Webmin di bilah navigasi sebelah kiri, lalu klik pada Webmin Configuration.

      Dari laman Webmin Configuration, pilih SSL Encryption dari daftar ikon, lalu klik pada tab Let’s Encrypt. Anda akan melihat layar seperti gambar berikut:

      Gambar yang menunjukkan tab Let's Encrypt dari bagian SSL Encryption

      Pada laman ini, Anda akan memberi tahu Webmin cara memperoleh dan memperbarui sertifikat Anda. Sertifikat Let’s Encrypt kedaluwarsa setelah 3 bulan, tetapi Anda dapat menginstruksikan Webmin untuk secara otomatis mencoba memperbarui sertifikat Let’s Encrypt setiap bulan. Let’s Encrypt mencari berkas verifikasi pada server, sehingga kita akan mengonfigurasi Webmin untuk menempatkan berkas verifikasi di dalam folder /var/www/your_domain, yang merupakan folder yang digunakan oleh server web Apache yang telah Anda konfigurasikan sebelumnya dalam langkah prasyarat. Ikuti langkah-langkah ini untuk menyiapkan sertifikat Anda:

      1. Isi Hostnames for certificate dengan FQDN Anda.
      2. Untuk Website root directory for validation file, pilih tombol Other Directory dan masukkan root dokumen situs web Anda. Dengan asumsi Anda mengikuti tutorial prasyarat Apache, maka direktorinya adalah /var/www/your_domain.
      3. Untuk bagian Months between automatic renewal, batalkan pemilihan Only renew manually dengan mengetik 1 di dalam kotak input, dan pilih tombol radio di sebelah kiri dari kotak input.

      Klik tombol Request Certificate. Setelah beberapa detik, Anda akan melihat layar konfirmasi.

      Untuk menggunakan sertifikat baru, klik tombol Return to Webmin configuration pada layar konfirmasi. Dari laman itu, gulir ke bawah dan klik tombol Restart Webmin. Tunggu sekitar 30 detik, lalu muat ulang laman itu dan log masuk lagi. Peramban Anda kini seharusnya menunjukkan bahwa sertifikat itu valid.

      Langkah 3 — Menggunakan Webmin

      Anda kini telah menyiapkan instans yang berjalan dengan aman dari Webmin. Mari kita lihat cara menggunakannya.

      Webmin memiliki banyak modul berbeda yang dapat mengontrol segalanya, mulai dari dari Server DNS BIND hingga menambahkan pengguna ke sistem. Mari kita lihat cara menciptakan pengguna baru, lalu kita jelajahi cara memperbarui paket sistem Anda menggunakan Webmin.

      Mengelola Pengguna dan Grup

      Mari kita jelajahi cara mengelola pengguna dan grup di server Anda.

      Pertama-tama, klik menu menurun System di bilah sisi kiri, lalu klik tautan untuk Users and Groups. Dari sini, Anda dapat menambahkan serta mengelola pengguna dan grup.

      Mari kita ciptakan pengguna baru bernama deploy, yang dapat Anda gunakan untuk menjadi hos dari aplikasi web. Ketika menciptakan pengguna, Anda dapat mengatur opsi untuk kedaluwarsa kata sandi, shell pengguna, dan apakah mereka mendapatkan direktori rumah.

      Untuk menambahkan pengguna, klik Create a new user, yang terletak di atas tabel pengguna. Ini menampilkan layar Create User, untuk memasukkan nama pengguna, kata sandi, grup, dan opsi lainnya. Ikuti instruksi ini untuk menciptakan pengguna:

      1. Masukkan Username dengan deploy.
      2. Pilih Automatic untuk User ID.
      3. Isi Real Name dengan nama deskriptif seperti Deployment user.
      4. Untuk Home Directory, pilih Automatic.
      5. Untuk Shell, pilih /bin/bash dari daftar menurun.
      6. Untuk Password, pilih Normal Password dan ketik kata sandi pilihan Anda.
      7. Loncatlah ke Primary Group dan pilih New group with same name as user.
      8. Untuk Secondary Group, pilih sudo dari daftar All groups. Ini seharusnya secara otomatis ditambahkan ke daftar In groups, tetapi jika tidak, tekan tombol -> untuk menambahkan itu.

      Setelah membuat pilihan itu, tekan Create. Ini akan menciptakan pengguna deploy secara singkat.

      Selanjutnya, mari kita lihat cara menginstal pembaruan ke sistem kita.

      Memperbarui Paket

      Webmin memungkinkan Anda untuk memperbarui semua paket Anda melalui antarmuka penggunanya. Untuk memperbarui semua paket Anda, pertama-tama, klik tombol Dashboard di atas bilah sisi kiri, lalu temukan bidang Package updates. Jika ada pembaruan yang tersedia, Anda akan melihat tautan yang menyatakan jumlah pembaruan yang tersedia.

      Klik tautan ini, lalu tekan Update selected packages untuk memulai pembaruan. Anda mungkin akan diminta untuk melakukan boot ulang server, yang juga Anda dapat lakukan melalui antarmuka Webmin.

      Kesimpulan

      Anda kini memiliki instans yang berjalan dengan aman dari Webmin dan Anda telah menggunakan antarmuka untuk menciptakan pengguna dan memperbarui paket. Webmin memberi Anda akses ke banyak hal yang biasanya Anda perlu akses melalui konsol, dan Webmin mengonfigurasinya dengan cara yang intuitif. Sebagai contoh, jika Anda memiliki Apache yang terinstal, Anda akan menemukan tab konfigurasi untuk Apache di dalam Servers, lalu Apache.

      Jelajahi antarmukanya, atau baca wiki Webmin Resmi untuk mempelajari lebih lanjut tentang mengelola sistem Anda dengan Webmin.



      Source link

      Cara Menyiapkan dan Mengonfigurasi Server OpenVPN pada Ubuntu 20.04


      Pengantar

      Jaringan Privat Virtual (VPN) memungkinkan Anda menjelajahi jaringan tidak tepercaya seolah-olah Anda berada di suatu jaringan privat. Ini memberi Anda kebebasan untuk mengakses internet dengan aman dan selamat dari ponsel cerdas atau laptop Anda saat terhubung ke jaringan yang tidak tepercaya, seperti WiFi di hotel atau kedai kopi.

      Saat dikombinasikan dengan koneksi HTTPS, penyiapan ini memungkinkan Anda mengamankan log masuk nirkabel dan transaksi Anda. Anda dapat memintas batasan geografis dan penyensoran, serta melindungi lokasi Anda dan segala lalu lintas HTTP yang tidak terenkripsi dari jaringan yang tidak tepercaya.

      OpenVPN adalah solusi VPN Transport Layer Security (TLS) sumber terbuka lengkap yang mengakomodasi beragam konfigurasi. Dalam tutorial ini, Anda akan menyiapkan OpenVPN pada server Ubuntu 20.04, lalu mengonfigurasinya supaya dapat diakses dari mesin klien.

      Catatan: Jika Anda berencana menyiapkan Server OpenVPN pada DigitalOcean Droplet, mohon diketahui bahwa kami, seperti banyak penyedia layanan hos lain, mengenakan biaya penggunaan bandwidth yang berlebih. Karena alasan ini, harap Anda perhatikan seberapa banyak lalu lintas yang ditangani server Anda.

      Lihat laman ini untuk info lebih lanjut.

      Prasyarat

      Untuk mengikuti tutorial ini, Anda akan membutuhkan:

      Catatan: Walaupun secara teknis memungkinkan untuk menggunakan Server OpenVPN Anda atau mesin lokal Anda sebagai CA, ini tidak disarankan karena membuka VPN Anda kepada beberapa kerentanan keamanan. Sesuai dokumentasi OpenVPN resmi, Anda harus menempatkan CA Anda pada mesin mandiri yang dikhususkan untuk mengimpor dan menandatangani permintaan sertifikat. Karena alasan ini, panduan ini mengasumsikan bahwa CA Anda berada pada server Ubuntu 20.04 terpisah yang juga memiliki pengguna non-root dengan privilese sudo dan firewall dasar yang sudah diaktifkan.

      Selain itu, Anda akan membutuhkan mesin klien yang Anda akan gunakan untuk terhubung ke Server OpenVPN Anda. Dalam panduan ini, kita akan menyebutnya Klien OpenVPN. Untuk tutorial ini, sebaiknya Anda menggunakan mesin lokal Anda sebagai klien OpenVPN.

      Setelah prasyarat ini terpenuhi, Anda siap untuk mulai menyiapkan dan mengonfigurasi Server OpenVPN pada Ubuntu 20.04.

      Catatan: Harap diperhatikan bahwa jika Anda menonaktifkan autentikasi kata sandi saat mengonfigurasi server ini, Anda mungkin akan mengalami kesulitan ketika mentransfer berkas di antara beberapa server pada panduan ini. Untuk menyelesaikan masalah ini, Anda dapat mengaktifkan kembali autentikasi kata sandi pada masing-masing server. Sebagai alternatif, Anda dapat menghasilkan pasangan kunci SSH untuk masing-masing server, lalu tambahkan kunci SSH publik pada Server OpenVPN ke berkas authorized_keys milik mesin CA dan sebaliknya. Lihat Cara Menyiapkan Kunci SSH pada Ubuntu 20.04 untuk instruksi tentang cara melakukan salah satu dari solusi ini.

      Langkah 1 — Menginstal OpenVPN dan Easy-RSA

      Langkah pertama dalam tutorial ini adalah menginstal OpenVPN dan Easy-RSA. Easy-RSA adalah alat manajemen infrastruktur kunci publik (PKI) yang Anda akan gunakan pada Server OpenVPN untuk menghasilkan permintaan sertifikat yang selanjutnya Anda akan verifikasi dan tanda tangani pada Server CA.

      Untuk memulai, perbarui indeks paket Server OpenVPN Anda serta instal OpenVPN dan Easy-RSA. Kedua paket itu tersedia di repositori asali Ubuntu, sehingga Anda dapat menggunakan apt untuk instalasi:

      • sudo apt update
      • sudo apt install openvpn easy-rsa

      Selanjutnya, Anda perlu menciptakan direktori baru pada Server OpenVPN sebagai pengguna non-root yang bernama ~/easy-rsa:

      Sekarang Anda perlu membuat symlink dari skrip easyrsa yang diinstal paket ke direktori ~/easy-rsa yang baru saja Anda buat:

      • 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 pada paket easy-rsa akan secara otomatis tercermin pada skrip PKI Anda.

      Terakhir, pastikan pemilik direktor adalah pengguna sudo non-root Anda dan batasi akses ke pengguna itu menggunakan chmod:

      • sudo chown sammy ~/easy-rsa
      • chmod 700 ~/easy-rsa

      Setelah program-program ini terinstal dan dipindahkan ke lokasi yang tepat pada sistem Anda, langkah selanjutnya adalah membuat Infrastruktur Kunci Publik (PKI) di server OpenVPN supaya Anda dapat meminta dan mengelola sertifikat TLS untuk klien dan server lain yang akan terhubung ke VPN Anda.

      Langkah 2 — Menciptakan PKI untuk OpenVPN

      Sebelum Anda dapat membuat kunci dan sertifikat privat dari server OpenVPN, Anda perlu membuat direktori Infrastruktur Kunci Publik lokal pada server OpenVPN Anda. Anda akan menggunakan direktori ini untuk mengelola permintaan sertifikat server dan klien alih-alih membuatnya secara langsung pada server CA Anda.

      Untuk membangun direktori PKI pada server OpenVPN, Anda perlu mengisi berkas bernama vars dengan beberapa nilai asali. Pertama-tama, Anda akan memasukkan cd ke direktori easy-rsa, lalu Anda akan menciptakan dan mengedit berkas vars menggunakan nano atau editor teks pilihan Anda.

      Setelah berkas dibuka, lekatkan dua baris berikut:

      ~/easy-rsa/vars

      set_var EASYRSA_ALGO "ec"
      set_var EASYRSA_DIGEST "sha512"
      

      Hanya dua baris inilah yang Anda butuhkan di dalam berkas vars di server OpenVPN Anda karena tidak akan digunakan sebagai Otoritas Sertifikat. Kedua baris ini akan memastikan bahwa permintaan kunci dan sertifikat privat Anda dikonfigurasi untuk menggunakan Elliptic Curve Cryptography (ECC) yang menghasilkan kunci dan tanda tangan aman untuk klien dan server OpenVPN Anda.

      Mengonfigurasi server OpenVPN dan CA Anda untuk menggunakan ECC berarti bahwa ketika klien dan server berupaya membuat kunci simetris bersama, kedua sever itu dapat menggunakan algoritma Elliptic Curve untuk melakukan pertukaran di antara keduanya. Menggunakan ECC untuk pertukaran kunci secara signifikan lebih cepat daripada menggunakan Diffie-Hellman biasa dengan algoritma RSA klasik, karena angka-angkanya jauh lebih kecil dan komputasinya lebih cepat.

      Latar Belakang: Ketika terhubung ke OpenVPN, klien menggunakan enkripsi asimetris (juga dikenal sebagai kunci publik/privat) untuk melakukan TLS handshake. Namun, ketika mengirim lalu lintas VPN terenkripsi, server dan klien menggunakan enkripsi simetris, yang juga dikenal sebagai enkripsi kunci bersama.

      Ada beban operasi komputasional yang lebih sedikit dengan enkripsi simetris dibandingkan asimetris: angka-angka yang digunakan jauh lebih kecil, dan CPU modern mengintegrasikan instruksi untuk melakukan operasi enkripsi simetris yang dioptimalkan. Untuk membuat peralihan dari enkripsi asimetris ke enkripsi simetris, server dan klien OpenVPN akan menggunakan algoritma Eliptic Curve Diffie-Hellman (ECDH) untuk menyetujui kunci rahasia bersama secepat mungkin.

      Setelah Anda mengisi berkas vars, Anda dapat melanjutkan dengan menciptakan direktori PKI. Untuk melakukan itu, jalankan skrip easyrsa dengan opsi init-pki. Meskipun Anda telah menjalankan perintah ini pada server CA sebagai bagian dari prasyarat, ini perlu dijalankan di sini karena server OpenVPN dan server CA memiliki direktori PKI terpisah:

      Perhatikan bahwa pada server OpenVPN, Anda tidak perlu menciptakan Otoritas Sertifikat. Server CA Anda hanya bertanggung jawab atas pemvalidasian dan penandatanganan sertifikat. PKI pada server VPN Anda hanya digunakan sebagai tempat yang sesuai dan tersentralisasi untuk menyimpan permintaan sertifikat dan sertifikat publik.

      Setelah Anda menginisialisasi PKI pada server OpenVPN, Anda siap untuk melanjutkan ke langkah selanjutnya, yaitu menciptakan permintaan sertifikat server OpenVPN dan kunci privat.

      Langkah 3 — Menciptakan Permintaan Sertifikat dan Kunci Privat Server OpenVPN

      Karena sekarang semua prasyarat untuk server OpenVPN sudah terinstal, langkah selanjutnya adalah membuat kunci privat dan Permintaan Penandatanganan Serfifikat (CSR) di server OpenVPN Anda. Setelah itu, Anda akan mentransfer permintaan ke CA Anda untuk ditandatangani, yang membuat sertifikat yang dibutuhkan. Setelah Anda menandatangani sertifikat, Anda akan mentransfernya kembali ke server OpenVPN dan menginstalnya untuk digunakan server itu.

      Untuk memulai, bernavigasilah ke direktori ~/easy-rsa di Server OpenVPN Anda sebagai pengguna non-root:

      Sekarang Anda akan memanggil easyrsa dengan opsi gen-req yang diikuti dengan Nama Umum (CN) untuk mesin itu. CN bisa apa pun yang Anda sukai, tetapi akan membantu jika menggunakan sesuatu yang lebih deskriptif. Dalam tutorial ini, CN dari Server OpenVPN adalah server. Pastikan untuk memasukkan opsi nopass juga. Jika itu gagal dilakukan, berkas permintaan akan dilindungi dengan kata sandi sehingga bisa menyebabkan masalah izin nantinya.

      Catatan: Jika Anda memilih nama selain dari server di sini, Anda harus menyesuaikan beberapa instruksi di bawah ini. Misalnya, saat menyalin berkas yang dihasilkan ke direktori /etc/openvpn, Anda harus mengganti dengan nama yang benar. Anda juga harus mengubah berkas /etc/openvpn/server.conf nantinya untuk menunjuk ke berkas .crt dan .key yang benar.

      • ./easyrsa gen-req server nopass

      Output

      Common Name (eg: your user, host, or server name) [server]: Keypair and certificate request completed. Your files are: req: /home/sammy/easy-rsa/pki/reqs/server.req key: /home/sammy/easy-rsa/pki/private/server.key

      Ini akan menciptakan kunci privat untuk server dan suatu berkas permintaan sertifikat yang bernama server.req. Salin kunci server ke direktori /etc/openvpn/server:

      • sudo cp /home/sammy/easy-rsa/pki/private/server.key /etc/openvpn/server/

      Setelah menyelesaikan langkah-langkah ini, Anda telah berhasil menciptakan kunci privat untuk server OpenVPN. Anda juga harus membuat Permintaan Penandatangan Sertifikat (CSR) untuk server OpenVPN. CSR sekarang siap untuk penandatanganan oleh CA Anda. Pada bagian selanjutnya dalam tutorial ini, Anda akan belajar cara menandatangani CSR dengan kunci privat server CA Anda.

      Langkah 4 — Menandatangani Permintaan Sertifikat Server OpenVPN

      Dalam langkah sebelumnya, Anda telah membuat Permintaan Penandatanganan Sertifikat (CSR) dan kunci privat untuk server OpenVPN. Sekarang, server CA harus mengetahui sertifikat server dan memvalidasinya. Setelah CA memvalidasi dan mengirimkan kembali sertifikat ke server OpenVPN, klien yang memercayai CA Anda akan dapat memercayai server OpenVPN juga.

      Pada server OpenVPN, sebagai pengguna non-root, gunakan SCP atau metode transfer lain untuk menyalin permintaan sertifikat server.req ke server CA untuk penandatanganan:

      • scp /home/sammy/easy-rsa/pki/reqs/server.req sammy@your_ca_server_ip:/tmp

      Jika Anda sudah mengikuti tutorial prasyarat Cara Menyiapkan dan Mengonfigurasi Otoritas Sertifikat (CA) pada Ubuntu 20.04 langkah selanjutnya adalah log masuk ke server CA sebagai pengguna non-root yang Anda ciptakan untuk mengelola CA Anda. Anda akan memasukkan cd ke direktori ~/easy-rsa tempat Anda membuat PK, lalu mengimpor permintaan sertifikat menggunakan skrip easyrsa:

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

      Output

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

      Selanjutnya, tanda tangani permintaan dengan menjalankan skrip easyrsa menggunakan opsi sign-req, diikuti oleh tipe permintaan dan Nama Umum. Tipe permintaan dapat berupa klien atau server. Karena kita bekerja dengan permintaan sertfikat server OpenVPN, pastikan Anda menggunakan tipe permintaan server:

      • ./easyrsa sign-req server server

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

      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 = 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/server.crt

      Perhatikan bahwa jika Anda mengenkripsi kunci privat CA, Anda akan diminta memasukkan kata sandi Anda pada langkah ini.

      Setelah langkah-langkah itu selesai, Anda telah menandatangani permintaan sertifikat server OpenVPN menggunakan kunci privat server CA. Berkas server.crt yang dihasilkan memuat kunci enkripsi publik dari server OpenVPN dan juga tanda tangan dari server CA. Maksud tanda tangan adalah memberi tahu siapa pun yang memercayai server CA bahwa mereka juga dapat memercayai server OpenVPN saat mereka terhubung dengannya.

      Untuk menyelesaikan pengonfigurasian sertifikat, salin berkasserver.crt dan ca.crt dari server CA ke server OpenVPN:

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

      Sekarang kita kembali ke server OpenVPN Anda, salin berkas dari /tmp ke /etc/openvpn/server:

      • sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/server

      Sekarang server OpenVPN Anda hampir siap menerima koneksi. Pada langkah selanjutnya, Anda akan melakukan langkah-langkah tambahan untuk meningkatkan keamanan server.

      Langkah 5 — Mengonfigurasi Materi Kriptografis OpenVPN

      Untuk lapisan keamanan tambahan, kita akan menambah kunci rahasia bersama ekstra yang akan digunakan server dan semua klien dengan arahan tls-crypt dari OpenVPN. Opsi ini digunakan untuk mengaburkan sertifikat TLS yang digunakan saat server dan klien saling terhubung pada awalnya. Ini juga digunakan oleh server OpenVPN untuk melakukan pemeriksaan cepat pada paket masuk: jika paket ditandatangani menggunakan kunci yang dibagikan sebelumnya, maka server memprosesnya; jika tidak ditandatangani, maka server tahu kalau paket itu berasal dari sumber tidak tepercaya dan bisa mengabaikannya tanpa perlu melakukan pekerjaan dekripsi tambahan.

      Opsi ini akan membantu memastikan bahwa server OpenVPN Anda dapat mengatasi lalu lintas tidak terautentikasi, port, pemindaian porta, dan serangan Denial of Service, yang dapat membebani sumber daya server. Ini juga menyulitkan untuk mengidentifikasi lalu lintas jaringan OpenVPN.

      Untuk membuat kunci tls-crypt yang dibagikan sebelumnya, jalankan yang berikut ini pada server OpenVPN di direktori ~/easy-rsa:

      • cd ~/easy-rsa
      • openvpn --genkey --secret ta.key

      Hasilnya akan berupa berkas yang bernama ta.key. Salinlah ke direktori /etc/openvpn/server/:

      • sudo cp ta.key /etc/openvpn/server

      Dengan berkas-berkas ini berada di server OpenVPN, Anda siap membuat sertifikat klien dan berkas kunci untuk pengguna Anda, yang Anda akan gunakan untuk terhubung ke VPN.

      Langkah 6 — Membuat Sertifikat Klien dan Pasangan Kunci

      Walaupun Anda bisa membuat kunci privat dan permintaan sertifikat pada mesin klien Anda lalu mengirimnya ke CA untuk ditandatangani, panduan ini menguraikan proses untuk membuat permintaan sertifikat pada server OpenVPN. Manfaat dari pendekatan ini adalah kita bisa membuat skrip yang akan secara otomatis membuat berkas konfiguasi klien yang memuat semua kunci dan sertifikat yang dibutuhkan. Ini membuat Anda tidak perlu mentransfer kunci, sertifikat, dan berkas konfigurasi ke klien dan merampingkan proses untuk bergabung dengan VPN.

      Kita akan membuat kunci klien tunggal dan pasangan sertifikat untuk panduan ini. Jika Anda memiliki lebih dari satu klien, Anda dapat mengulangi proses ini untuk masing-masingnya. Namun, harap diperhatikan, Anda perlu memberi nilai nama yang unik ke skrip untuk setiap klien. Sepanjang tutorial ini, pasangan kunci/sertifikat pertama disebut sebagai client1.

      Mulailah dengan membuat struktur direktori di dalam direktori rumah Anda untuk menyimpan berkas sertifikat dan kunci klien:

      • mkdir -p ~/client-configs/keys

      Karena Anda akan menyimpan pasangan kunci/sertifikat dan berkas konfigurasi di dalam direktori ini, Anda harus mengunci izinnya sekarang sebagai tindakan keamanan:

      • chmod -R 700 ~/client-configs

      Selanjutnya, navigasi kembali ke direktori EasyRSA dan jalankan skrip easyrsa dengan opsi gen-req dan nopass, bersama dengan nama umum untuk klien:

      • cd ~/easy-rsa
      • ./easyrsa gen-req client1 nopass

      Tekan ENTER untuk mengonfirmasi nama umum. Lalu, salin berkas client1.key ke direktori ~/client-configs/keys/ yang sudah Anda buat sebelumnya:

      • cp pki/private/client1.key ~/client-configs/keys/

      Selanjutnya, transfer berkas client1.req ke Server CA Anda menggunakan metode aman:

      • scp pki/reqs/client1.req sammy@your_ca_server_ip:/tmp

      Sekarang log masuk ke Server CA. Lalu, bernavigasilah ke direktori EasyRSA, dan impor permintaan sertifikat:

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

      Selanjutnya, tanda tangani permintaan sama seperti yang Anda lakukan untuk server pada langkah sebelumnya. Namun kali ini, pastikan untuk menentukan tipe permintaan klien:

      • ./easyrsa sign-req client client1

      Ketika diminta, ketikkan yes untuk mengonfirmasi bahwa Anda berniat menandatangani permintaan sertifikat dan bahwa itu berasal dari sumber tepercaya:

      Output

      Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes

      Sekali lagi, jika Anda mengenkripsi kunci CA, Anda akan diminta memasukkan kata sandi Anda di sini.

      Ini akan membuat berkas sertifikat klien yang bernama client1.crt. Transfer berkas ini kembali ke server:

      • scp pki/issued/client1.crt sammy@your_server_ip:/tmp

      Kembali pada server OpenVPN Anda, salin sertifikat klien ke direktori ~/client-configs/keys/:

      • cp /tmp/client1.crt ~/client-configs/keys/

      Selanjutnya, salin berkas ca.crt dan ta.key ke direktori ~/client-configs/keys/ juga, dan atur izin yang sesuai untuk pengguna sudo Anda:

      • cp ~/easy-rsa/ta.key ~/client-configs/keys/
      • sudo cp /etc/openvpn/server/ca.crt ~/client-configs/keys/
      • sudo chown sammy.sammy ~/client-configs/keys/*

      Dengan itu, sertifikat dan kunci server dan klien Anda telah dibuat dan disimpan di dalam direktori yang sesuai pada server OpenVPN Anda. Masih ada beberapa tindakan yang perlu dilakukan dengan berkas-berkas ini, tetapi itu akan dilakukan pada langkah selanjutnya. Untuk saat ini, Anda bisa melanjutkan untuk mengonfigurasi OpenVPN.

      Langkah 7 — Mengonfigurasi OpenVPN

      Seperti berbagai alat sumber terbuka lainnya yang banyak digunakan, OpenVPN memiliki banyak opsi konfigurasi yang tersedia untuk mengatur server Anda sesuai kebutuhan spesifik Anda. Pada bagian ini, kami akan memberikan instruksi tentang cara menyiapkan konfigurasi server OpenVPN yang didasarkan pada salah satu berkas konfigurasi sampel yang disertakan dalam dokumentasi perangkat lunak ini.

      Pertama-tama, salin berkas server.conf sampel sebagai titik awal untuk berkas konfigurasi Anda:

      • sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
      • sudo gunzip /etc/openvpn/server/server.conf.gz

      Buka berkas baru untuk mengedit dengan editor teks pilihan Anda. Kita akan menggunakan nano dalam contoh kita:

      • sudo nano /etc/openvpn/server/server.conf

      Kita perlu mengubah beberapa baris di dalam berkas ini. Pertama-tama, temukan bagian HMAC dari konfigurasi dengan mencari arahan tls-auth. Baris ini harus dihapus tanda komentarnya. Buat baris itu menjadi komentar dengan menambahkan ; ke awal baris. Kemudian, tambah baris baru yang hanya memuat nilai tls-crypt ta.key:

      /etc/openvpn/server/server.conf

      ;tls-auth ta.key 0 # This file is secret
      tls-crypt ta.key
      

      Selanjutnya, temukan bagian pada sandi kriptografis dengan mencari baris cipher. Nilai asalinya diatur ke AES-256-CBC, akan tetapi, sandi AES-256-GCM menawarkan tingkat dan kinerja enkripsi yang lebih baik, serta didukung dengan baik pada klien OpenVPN yang terbaru. Kita akan memberikan komentar nilai asali dengan menambahkan tanda ; di awal baris ini, lalu kita akan menambahkan baris lagi setelah baris itu yang mengandung nilai AES-256-GCM yang telah diperbarui:

      /etc/openvpn/server/server.conf

      ;cipher AES-256-CBC
      cipher AES-256-GCM
      

      Tepat setelah baris ini, tambahkan arahan auth untuk memilih algoritma inti pesan HMAC. Untuk ini, SHA256 adalah pilihan yang baik:

      /etc/openvpn/server/server.conf

      auth SHA256
      

      Selanjutnya, temukan baris yang berisi arahan dh, yang mendefinisikan parameter Diffie-Hellman. Karena kita telah mengonfigurasi semua sertifikat untuk menggunakan Elliptic Curve Cryptography, tidak perlu memiliki berkas benih Diffie-Hellman. Tambahkan tanda komentar pada baris yang sudah ada yang terlihat seperti dhq2048.pem atau dh dh.pem. Nama berkas untuk kunci Diffie-Hellman mungkin berbeda dengan nama berkas yang terdaftar pada berkas konfigurasi server contoh. Lalu tambahkan baris setelahnya dengan konten dh none:

      /etc/openvpn/server/server.conf

      ;dh dh2048.pem
      dh none
      

      Selanjutnya, kita ingin OpenVPN berjalan tanpa privilese setelah dimulai, sehingga kita perlu menyuruhnya untuk berjalan dengan pengguna nobody dan grup nogroup. Untuk mengaktifkan ini, temukan dan hapus tanda komentar pada baris user nobody dan group nogroup dengan menghapus tanda ; dari awal masing-masing baris:

      /etc/openvpn/server/server.conf

      user nobody
      group nogroup
      

      (Opsional) Mendorong Perubahan DNS untuk Mengalihkan Semua Lalu Lintas Melewati VPN

      Pengaturan di atas akan menciptakan koneksi VPN antara klien dan server Anda, tetapi tidak akan memaksa koneksi apa pun untuk menggunakan terowongan itu. Jika Anda ingin menggunakan VPN untuk mengalirkan semua lalu lintas Anda melewati VPN, Anda mungkin ingin mendorong beberapa pengaturan ekstra ke komputer klien.

      Untuk memulai, temukan dan hapus tanda komentar baris yang mengandung push "redirect-gateway deff bypass dhcp. Melakukan ini akan memberi tahu klien Anda untuk mengalihkan semua lalu lintasnya melalui Server OpenVPN Anda. Harap diperhatikan bahwa mengaktifkan fungsionalitas ini dapat menyebabkan masalah konektivitas dengan layanan jaringan lainnya, seperti SSH:

      /etc/openvpn/server/server.conf

      push "redirect-gateway def1 bypass-dhcp"
      

      Tepat di bawah baris ini, temukan bagian dhcp-option. Sekali lagi, hapus ; dari awal kedua baris untuk menghapus komentar yang ada di situ:

      /etc/openvpn/server/server.conf

      push "dhcp-option DNS 208.67.222.222"
      push "dhcp-option DNS 208.67.220.220"
      

      Ini akan memberi tahu klien Anda untuk menggunakan OpenDNS resolver gratis pada alamat IP yang terdaftar. Jika Anda lebih memilih DNS resolver lain, Anda dapat menggantinya pada IP yang disoroti.

      Ini akan membantu klien dalam mengonfigurasi ulang pengaturan DNS-nya untuk menggunakan terowongan VPN sebagai gateway asali.

      (Opsional) Menyesuaikan Porta dan Protokol

      Secara asali, server OpenVPN menggunakan porta 1194 dan protokol UDP untuk menerima koneksi klien. Jika Anda perlu menggunakan porta jaringan lain dikarenakan lingkungan jaringan yang membatasi tempat klien Anda mungkin berada, Anda dapat mengubah opsi port. Jika Anda tidak melakukan hos konten web pada server OpenVPN Anda, porta 443 adalah pilihan populer karena biasanya diizinkan melalui aturan firewall.

      Untuk mengubah OpenVPN agar mendengarkan porta 443, buka berkas server.conf dan temukan baris yang terlihat seperti ini:

      /etc/openvpn/server/server.conf

      port 1194
      

      Edit sehingga porta menjadi 443:

      /etc/openvpn/server/server.conf

      # Optional!
      port 443
      

      Seringkali, protokol dibatasi untuk porta itu juga. Jika demikian, temukan baris proto di bawah baris port dan ubah protokol dari udp ke tcp:

      /etc/openvpn/server/server.conf

      # Optional!
      proto tcp
      

      Jika Anda memang mengalihkan protokol ke TCP, Anda perlu mengubah nilai arahan explicit-exit-notify dari 1 menjadi 0, karena arahan ini hanya digunakan oleh UDP. Jika Anda tidak melakukan itu saat menggunakan TCP, kesalahan akan terjadi saat Anda memulai layanan OpenVPN.

      Temukan baris explicit-exit-notify di akhir berkas dan ubah nilainya menjadi 0:

      /etc/openvpn/server/server.conf

      # Optional!
      explicit-exit-notify 0
      

      Jika Anda tidak perlu menggunakan porta dan protokol lain, sebaiknya jangan mengubah pengaturan ini.

      Jika Anda memilih nama lain selama perintah server ./easyrsa gen-req sebelumnya, ubah baris cert dan key pada berkas konfigurasi server.conf, sehingga itu menunjuk ke berkas .crt dan .key yang benar. Jika Anda menggunakan nama baku, server, ini sudah diatur dengan benar:“”

      /etc/openvpn/server/server.conf

      cert server.crt
      key server.key
      

      Setelah Anda selesai, simpan dan tutup berkas.

      Kini Anda telah selesai mengonfigurasi pengaturan umum OpenVPN Anda. Pada langkah selanjutnya, kita akan mengkustomisasi opsi jaringan server.

      Langkah 8 — Menyesuaikan Konfigurasi Jaringan Server OpenVPN

      Ada beberapa aspek dari konfigurasi jaringan server yang perlu diubah supaya OpenVPN dapat mengalirkan lalu lintas melalui VPN dengan benar. Yang pertama adalah penerusan IP, suatu metode untuk menentukan ke mana lalu lintas IP harus dialirkan. Ini esensial untuk fungsionalitas VPN yang akan diberikan oleh server Anda.

      Untuk menyesuaikan pengaturan penerusan IP asali dari server OpenVPN Anda, buka berkas /etc/sysctl.conf menggunakan nano atau editor pilihan Anda:

      • sudo nano /etc/sysctl.conf

      Lalu tambahkan baris berikut di bagian bawah berkas:

      /etc/sysctl.conf

      net.ipv4.ip_forward = 1
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Untuk membaca berkas dan memuat nilai baru untuk sesi ini, ketik:

      Output

      net.ipv4.ip_forward = 1

      Sekarang server OpenVPN Anda akan bisa meneruskan lalu lintas masuk dari satu perangkat ethernet ke perangkat lain. Pengaturan ini memastikan bahwa server dapat mengarahkan lalu lintas dari klien yang terhubung pada antarmuka VPN virtual melalui perangkat ethernet fisik lain miliknya. Konfigurasi ini akan mengalirkan semua lalu lintas web dari klien Anda melalui alamat IP server Anda, dan alamat IP publik pada klien Anda akan secara efektif disembunyikan.

      Pada langkah selanjutnya, Anda perlu mengonfigurasi beberapa aturan firewall untuk memastikan lalu lintas ke dan dari server OpenVPN Anda mengalir dengan benar.

      Langkah 9 — Konfigurasi Firewall

      Sejauh ini, Anda telah menginstal OpenVPN pada server Anda, mengonfigurasinya, serta membuat kunci dan sertifikat yang dibutuhkan supaya klien Anda dapat mengakses VPN. Namun, Anda belum memberi instruksi kepada OpenVPN tentang ke mana mengirim lalu lintas web masuk dari klien. Anda dapat menetapkan bagaimana server harus menangani lalu lintas klien dengan membuat beberapa aturan firewall dan konfigurasi aliran.

      Dengan asumsi Anda mengikuti prasyarat pada awal tutorial ini, seharusnya ufw sudah terinstal dan berjalan pada server Anda. Untuk mengizinkan OpenVPN melintasi firewall, Anda perlu mengaktifkan penyamaran, suatu konsep iptables yang menyediakan penafsiran alamat jaringan (NAT) secara langsung untuk mengalirkan koneksi klien dengan benar.

      Sebelum membuka berkas konfigurasi firewall untuk menambah aturan penyamaran, Anda harus menemukan antarmuka jaringan publik dari mesin Anda terlebih dahulu. Untuk melakukan ini, ketik:

      Antarmuka publik Anda adalah string yang ditemukan di dalam keluaran perintah ini yang mengikuti kata “dev”. Sebagai contoh, hasil ini menunjukkan antarmuka bernama eth0, yang disorot di bawah ini:

      Output

      default via 159.65.160.1 dev eth0 proto static

      Ketika Anda memiliki antarmuka yang terhubung dengan rute asali, buka berkas /etc/ufw/before.rules untuk menambahkan konfigurasi yang relevan:

      • sudo nano /etc/ufw/before.rules

      Aturan UFW biasanya ditambahkan menggunakan perintah ufw. Namun, aturan yang terdaftar di berkas before.rules dibaca dan diterapkan sebelum aturan UFW konvensional dimuat. Pada bagian atas berkas, tambahkan baris yang disorot di bawah ini. Ini akan mengatur kebijakan asali untuk rantai POSTROUTING pada tabel nat dan menyamarkan lalu lintas apa pun yang berasal dari VPN. Jangan lupa menggganti eth0 pada baris -A POSTROUTING di bawah ini dengan antarmuka yang Anda temukan pada perintah di atas:

      /etc/ufw/before.rules

      #
      # rules.before
      #
      # Rules that should be run before the ufw command line added rules. Custom
      # rules should be added to one of these chains:
      #   ufw-before-input
      #   ufw-before-output
      #   ufw-before-forward
      #
      
      # START OPENVPN RULES
      # NAT table rules
      *nat
      :POSTROUTING ACCEPT [0:0]
      # Allow traffic from OpenVPN client to eth0 (change to the interface you discovered!)
      -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
      COMMIT
      # END OPENVPN RULES
      
      # Don't delete these required lines, otherwise there will be errors
      *filter
      . . .
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Selanjutnya, Anda perlu memberi tahu UFW untuk mengizinkan paket yang diteruskan secara asali juga. Untuk melakukan ini, buka berkas /etc/default/ufw:

      • sudo nano /etc/default/ufw

      Di dalam berkas itu, temukan arahan DEFAULT_FORWARD_POLICY dan ubah nilai dari DROP menjadi ACCEPT:

      /etc/default/ufw

      DEFAULT_FORWARD_POLICY="ACCEPT"
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Selanjutnya, sesuaikan firewall itu untuk mengizinkan lalu lintas ke OpenVPN. Jika Anda tidak mengubah porta dan protokol pada berkas /etc/openvpn/server.conf, Anda perlu membuka lalu lintas UDP ke porta 1194. Jika Anda sudah mengubah porta dan/atau protokol, ganti nilai yang Anda pilih di sini.

      Jika Anda lupa menambahkan porta SSH saat mengikuti tutorial prasyarat, tambahkan di sini juga:

      • sudo ufw allow 1194/udp
      • sudo ufw allow OpenSSH

      Setelah menambahkan aturan itu, aktifkan kembali UFW untuk memulai ulang dan memuat perubahan dari semua berkas yang sudah Anda modifikasi:

      • sudo ufw disable
      • sudo ufw enable

      Server Anda kini terkonfigurasi untuk menangani lalu lintas OpenVPN dengan benar. Dengan sudah adanya aturan firewall, kita dapat memulai layanan OpenVPN pada server.

      Langkah 10 — Memulai OpenVPN

      OpenVPN berjalan sebagai layanan systemd, sehingga kita dapat menggunakan systemctl untuk mengelolanya. Kita akan mengonfigurasi OpenVPN untuk memulai saat melakukan boot sehingga Anda dapat terhubung ke VPN kapan saja selama server Anda aktif. Untuk melakukan ini, aktifkan layanan OpenVPN dengan menambahkan itu ke systemctl:

      Lalu, mulai layanan OpenVPN:

      Periksa ulang bahwa layanan OpenVPN sudah aktif dengan perintah berikut. Anda akan melihat active (running) pada keluaran:

      Output

      [email protected] - OpenVPN service for server Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-04-29 15:39:59 UTC; 6s ago Docs: man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Main PID: 16872 (openvpn) Status: "Initialization Sequence Completed" Tasks: 1 (limit: 1137) Memory: 1.0M CGroup: /system.slice/system-openvpnx2dserver.slice/[email protected] └─16872 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --c> . . . . . . Apr 29 15:39:59 ubuntu-20 openvpn[16872]: Initialization Sequence Completed

      Kini kita sudah menyelesaikan konfigurasi bagian server untuk OpenVPN. Selanjutnya, Anda akan mengonfigurasi mesin klien Anda dan terhubung ke Server OpenVPN.

      Langkah 11 — Menciptakan Infrastruktur Konfigurasi Klien

      Menciptakan berkas konfigurasi untuk klien OpenVPN dapat sedikit merepotkan, karena setiap klien harus memiliki konfigurasi sendiri dan masing-masing konfigurasi harus sesuai dengan pengaturan yang sudah dijabarkan pada berkas konfigurasi server. Alih-alih menulis berkas konfigurasi tunggal yang hanya dapat digunakan pada satu klien, langkah ini menjabarkan proses untuk membangun infrastruktur konfigurasi klien yang dapat Anda gunakan untuk membuat berkas konfigurasi dengan cepat. Pertama-tama, Anda akan membuat berkas konfigurasi “base”, lalu membuat skrip yang akan mengizinkan Anda untuk membuat berkas konfigurasi klien, sertifikat, dan kunci yang unik sesuai kebutuhan.

      Mulailah dengan membuat direktori baru tempat Anda akan menyimpan berkas konfigurasi klien di dalam direktori client-configs yang Anda buat sebelumnya:

      • mkdir -p ~/client-configs/files

      Selanjutnya, salin berkas konfigurasi klien contoh ke direktori client-configs yang digunakan sebagai konfigurasi dasar Anda:

      • cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

      Buka berkas baru ini menggunakan nano atau editor teks pilihan Anda:

      • nano ~/client-configs/base.conf

      Di dalam berkas itu, temukan arahan remote. Ini menunjukkan alamat server OpenVPN Anda — alamat IP publik dari server OpenVPN Anda. Jika Anda memutuskan untuk mengubah porta yang didengarkan oleh OpenVPN, Anda juga perlu mengubah 1194 ke porta yang Anda pilih:

      ~/client-configs/base.conf

      . . .
      # The hostname/IP and port of the server.
      # You can have multiple remote entries
      # to load balance between the servers.
      remote your_server_ip 1194
      . . .
      

      Pastikan bahwa protokol sesuai dengan nilai yang Anda gunakan pada konfigurasi server:

      ~/client-configs/base.conf

      proto udp
      

      Selanjutnya, hapus komentar pada arahan user dan group dengan menghapus tanda ; pada awal masing-masing baris:

      ~/client-configs/base.conf

      # Downgrade privileges after initialization (non-Windows only)
      user nobody
      group nogroup
      

      Temukan arahan yang mengatur ca, cert, dan key. Beri tanda komentar pada arahan ini karena Anda akan menambahkan cert dan key di dalam berkas itu sendiri nanti:

      ~/client-configs/base.conf

      # SSL/TLS parms.
      # See the server config file for more
      # description. It's best to use
      # a separate .crt/.key file pair
      # for each client. A single ca
      # file can be used for all clients.
      ;ca ca.crt
      ;cert client.crt
      ;key client.key
      

      Dengan cara yang serupa, beri tanda komentar pada arahan tls-auth, karena Anda akan menambahkan ta.key langsung ke dalam berkas konfigurasi klien (dan server disiapkan untuk menggunakan tls-crypt):

      ~/client-configs/base.conf

      # If a tls-auth key is used on the server
      # then every client must also have the key.
      ;tls-auth ta.key 1
      

      Salin pengaturan cipher dan auth yang Anda atur pada berkas /etc/openvpn/server/server/server.conf:

      ~/client-configs/base.conf

      cipher AES-256-GCM
      auth SHA256
      

      Selanjutnya, tambahkan arahan key-direction di suatu tempat di dalam berkas. Anda harus mengatur ini ke “1” supaya VPN berfungsi dengan benar pada mesin klien:

      ~/client-configs/base.conf

      key-direction 1
      

      Terakhir, tambahkan beberapa baris komentar untuk menangani berbagai metode klien VPN berbasis Linux yang akan digunakan untuk resolusi DNS. Anda akan menambahkan dua baris yang mirip, tetapi pisahkan rangkaian baris komentar. Rangkaian pertama untuk klien yang tidak menggunakan systemd-resolved untuk mengelola DNS. Klien ini bergantung pada utilitas resolvconf untuk memperbarui informasi DNS klien Linux.

      ~/client-configs/base.conf

      ; script-security 2
      ; up /etc/openvpn/update-resolv-conf
      ; down /etc/openvpn/update-resolv-conf
      

      Sekarang tambahkan rangkaian baris untuk klien yang menggunakan systemd-resolved untuk resolusi DNS:

      ~/client-configs/base.conf

      ; script-security 2
      ; up /etc/openvpn/update-systemd-resolved
      ; down /etc/openvpn/update-systemd-resolved
      ; down-pre
      ; dhcp-option DOMAIN-ROUTE .
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Nanti pada Langkah 13 - Menginstal Konfigurasi Klien dari tutorial ini, Anda akan belajar cara menentukan cara kerja resolusi DNS pada klien Linux dan bagian mana yang harus dihapus komentarnya.

      Selanjutnya, kita akan membuat skrip yang akan mengompilasi konfigurasi dasar Anda dengan berkas sertifikat, kunci, dan enkripsi yang relevan, lalu menaruh konfigurasi yang dibuat di dalam direktori ~/client-configs/files. Buka berkas baru yang bernama make_config.sh di dalam direktori ~/client-configs:

      • nano ~/client-configs/make_config.sh

      Di dalam berkas itu, tambahkan konten berikut:

      ~/client-configs/make_config.sh

      #!/bin/bash
      
      # First argument: Client identifier
      
      KEY_DIR=~/client-configs/keys
      OUTPUT_DIR=~/client-configs/files
      BASE_CONFIG=~/client-configs/base.conf
      
      cat ${BASE_CONFIG} 
          <(echo -e '<ca>') 
          ${KEY_DIR}/ca.crt 
          <(echo -e '</ca>n<cert>') 
          ${KEY_DIR}/${1}.crt 
          <(echo -e '</cert>n<key>') 
          ${KEY_DIR}/${1}.key 
          <(echo -e '</key>n<tls-crypt>') 
          ${KEY_DIR}/ta.key 
          <(echo -e '</tls-crypt>') 
          > ${OUTPUT_DIR}/${1}.ovpn
      

      Simpan dan tutup berkas saat Anda sudah selesai.

      Sebelum melanjutkan, pastikan untuk menandai berkas ini agar dapat dieksekusi dengan mengetik:

      • chmod 700 ~/client-configs/make_config.sh

      Skrip ini akan membuat salinan berkas base.conf yang sudah Anda buat, mengumpulkan semua berkas sertifikat dan kunci yang Anda buat untuk klien Anda, mengekstrak kontennya, menambahkannya ke salinan berkas konfigurasi dasar, dan mengekspor semua konten ini ke dalam berkas konfigurasi klien yang baru. Ini berarti bahwa, alih-alih mengelola berkas konfigurasi, sertifikat, dan kunci secara terpisah, semua informasi yang dibutuhkan akan disimpan di satu tempat. Manfaat menggunakan metode ini adalah bahwa jika Anda perlu menambah klien di masa depan, Anda dapat menjalankan skrip ini untuk dengan cepat membuat berkas konfigurasi baru dan memastikan bahwa semua informasi penting sudah disimpan di dalam satu lokasi yang mudah diakses.

      Harap diperhatikan bahwa setiap kali Anda menambahkan klien baru, Anda perlu membuat kunci dan sertifikat baru untuk klien itu sebelum Anda dapat menjalankan skrip ini dan membuat berkas konfigurasinya. Anda akan melakukan beberapa latihan menggunakan skrip ini pada langkah selanjutnya.

      Langkah 12 — Membuat Konfigurasi Klien

      Jika Anda mengikuti panduan ini, Anda sudah membuat sertifikat dan kunci klien yang bernama client1.crt dan client1, secara berurutan, pada Langkah 6. Anda dapat membuat berkas konfigurasi untuk kredensial ini dengan pindah ke direktori ~/client-configs dan menjalankan skrip yang sudah Anda buat pada akhir langkah sebelumnya:

      • cd ~/client-configs
      • ./make_config.sh client1

      Ini akan membuat berkas bernama client1.ovpn pada direktori ~/client-configs/files Anda:

      • ls ~/client-configs/files

      Output

      client1.ovpn

      Anda perlu mentransfer berkas ini ke perangkat yang Anda rencanakan untuk digunakan sebagai klien. Misalnya, ini bisa berupa komputer lokal atau perangkat seluler Anda.

      Walaupun aplikasi yang tepat digunakan untuk mewujudkan transfer ini tergantung pada sistem operasi perangkat Anda dan pengaturan pribadi Anda, suatu metode yang dapat diandalkan dan aman adalah menggunakan SFTP (protokol transfer berkas SSH) atau SCP (Salinan Aman) pada backend. Ini akan memindahkan berkas autentikasi VPN klien Anda melalui koneksi yang terenkripsi.

      Berikut ini adalah contoh perintah SFTP yang Anda dapat jalankan dari komputer lokal Anda (macOS atau Linux). Ini akan menyalin berkas client1.ovpn yang sudah kita buat pada langkah terakhir ke direktori home Anda:

      • sftp sammy@openvpn_server_ip:client-configs/files/client1.ovpn ~/

      Berikut ini adalah beberapa alat dan tutorial untuk mentransfer berkas dengan aman dari server OpenVPN ke komputer lokal:

      Langkah 13 — Menginstal Konfigurasi Klien

      Bagian ini mencakup cara menginstal profil VPN klien pada Windows, MacOS, Linux, iOS, dan Android. Tidak satu pun instruksi klien ini tergantung satu sama lain, jadi silakan melewati ke bagian mana pun yang berlaku untuk perangkat Anda.

      Koneksi OpenVPN akan memiliki nama yang sama seperti nama berkas ovpn Anda. Sehubungan dengan tutorial ini, ini berarti bahwa koneksi bernama client1.ovpn, selaras dengan berkas klien pertama yang Anda buat.

      Windows

      Menginstal

      Unduh aplikasi klien OpenVPN untuk Windows dari laman Unduhan OpenVPN. Pilih versi penginstal yang sesuai untuk versi Windows Anda.

      Catatan: OpenVPN perlu privilese administratif untuk menginstal.

      Setelah menginstal OpenVPN, salin berkas .ovpn ke:

      C:Program FilesOpenVPNconfig
      

      Ketika Anda meluncurkan OpenVPN, itu akan secara otomatis menemukan profil dan membuatnya tersedia.

      Anda harus menjalankan OpenVPN sebagai administrator setiap kali digunakan, bahkan dengan akun administratif. Untuk melakukan ini tanpa harus mengeklik kanan dan memilih Run as administrator setiap kali Anda menggunakan VPN, Anda harus mengatur ini lebih dahulu dari akun administratif. Ini juga berarti bahwa pengguna standar perlu memasukkan kata sandi administrator untuk menggunakan OpenVPN. Di samping itu, pengguna standar tidak dapat terhubung dengan benar ke server kecuali aplikasi OpenVPN pada klien memiliki hak admin, sehingga privilese yang ditingkatkan merupakan kebutuhan.

      Untuk mengatur aplikasi OpenVPN untuk selalu berjalan sebagai administrator, klik kanan pada ikon pintasan dan buka Properties. Pada bagian bawah tab Compatibility, klik tombol untuk Mengubah pengaturan untuk semua pengguna. Pada jendela baru, centang Run this program as an administrator.

      Menghubungkan

      Setiap kali Anda meluncurkan GUI OpenVPN, Windows akan bertanya apakah Anda ingin mengizinkan program untuk membuat perubahan pada komputer Anda. Klik Yes. Meluncurkan aplikasi klien OpenVPN hanya menempatkan applet di nampan sistem sehingga Anda dapat menghubungkan dan memutus hubungan VPN sesuai kebutuhan; itu tidak benar-benar membuat koneksi VPN.

      Setelah OpenVPN dimulai, jalankan koneksi dengan masuk ke applet nampan sistem dan klik kanan pada ikon applet OpenVPN. Ini membuka menu konteks. Pilih client1 di bagian atas menu (itu profil client1.ovpn Anda) dan pilih Connect.

      Jendela status akan terbuka yang menunjukkan keluaran log saat koneksi dibuat, dan pesan akan ditampilkan saat klien terhubung.

      Putuskan hubungan dari VPN dengan cara yang sama: Buka ke applet nampan sistem, klik kanan ikon applet OpenVPN, pilih profil klien, dan klik Disconnect.

      macOS

      Menginstal

      Tunnelblick adalah klien OpenVPN sumber terbuka yang gratis untuk macOS. Anda dapat mengunduh citra diska terbaru dari laman Unduhan Tunnelblick. Klik dua kali berkas .dmg yang sudah diunduh dan ikuti petunjuk untuk menginstal.

      Menjelang akhir proses instalasi, Tunnelblick akan menanyakan apakah Anda memiliki berkas konfigurasi. Jawab I have configuration files dan biarkan Tunnelblick menyelesaikan. Buka jendela Finder dan klik dua kali clien1.ovpn. Tunnelblick akan menginstal profil klien. Perlu privilese administratif.

      Menghubungkan

      Luncurkan Tunnelblick dengan mengeklik dua kali ikon Tunnelblick pada folder Applications. Setelah Tunnelblick diluncurkan, akan ada ikon Tunnelblick di bilah menu pada bagian kanan atas layar untuk mengendalikan koneksi. Klik ikon itu, lalu klik item menu Connect client1 untuk memulai koneksi VPN.

      Linux

      Menginstal

      Jika Anda menggunakan Linux, ada berbagai alat yang dapat Anda gunakan tergantung pada distribusi Anda. Lingkungan desktop atau manajer jendela Anda juga mungkin menyertakan utilitas koneksi.

      Namun, cara yang paling universal untuk terhubung adalah menggunakan perangkat lunak OpenVPN.

      Pada Ubuntu atau Debian, Anda dapat menginstalnya seperti yang Anda lakukan pada server dengan mengetik:

      • sudo apt update
      • sudo apt install openvpn

      Pada CentOS, Anda dapat mengaktifkan repositori EPEL, lalu menginstalnya dengan mengetik:

      • sudo dnf install epel-release
      • sudo dnf install openvpn

      Mengonfigurasi Klien yang menggunakan systemd-resolved

      Pertama-tama, tentukan apakah sistem Anda menggunakan systemd-resolved untuk menangani resolusi DNS dengan memeriksa berkas /etc/resolv.conf:

      Output

      # This file is managed by man:systemd-resolved(8). Do not edit. . . . nameserver 127.0.0.53 options edns0

      Jika sistem Anda dikonfigurasi untuk menggunakan systemd-resolved untuk resolusi DNS, alamat IP setelah opsi nameserver adalah 127.0.0.53. Juga harus ada komentar di dalam berkas seperti keluaran yang ditampilkan yang menjelaskan cara systemd-resolved mengelola berkas. Jika Anda memiliki alamat IP yang berbeda dari 127.0.0.53 maka kemungkinannya adalah sistem Anda tidak menggunakan systemd-resolved dan sebagai gantinya, Anda dapat melanjutkan ke bagian selanjutnya tentang mengonfigurasi klien Linux yang memiliki skrip update-resolv-conf.

      Untuk mendukung klien ini, instal paket openvpn-systemd-resolved terlebih dahulu. Ini menyediakan skrip yang akan memaksa systemd-resolved untuk menggunakan server VPN untuk resolusi DNS.

      • sudo apt install openvpn-systemd-resolved

      Setelah paket itu terinstal, konfigurasi klien untuk menggunakannya, dan untuk mengirim semua kueri DNS melalui antarmuka VPN. Buka berkas VPN klien:

      Sekarang hapus tanda komentar pada baris berikut yang Anda tambahkan sebelumnya:

      client1.ovpn

      script-security 2
      up /etc/openvpn/update-systemd-resolved
      down /etc/openvpn/update-systemd-resolved
      down-pre
      dhcp-option DOMAIN-ROUTE .
      

      Mengonfigurasi Klien yang menggunakan update-resolv.conf

      Jika sistem Anda tidak menggunakan systemd-resolved untuk mengelola DNS, lihat apakah distribusi Anda alih-alih menyertakan skrip /etc/openvpn/update-resolv-conf:

      Output

      update-resolv-conf

      Jika klien Anda menyertakan berkas update-resolv-conf, edit berkas konfigurasi klien OpenVPN yang Anda transfer sebelumnya:

      Hapus tanda komentar pada tiga baris yang Anda tambahkan untuk menyesuaikan pengaturan DNS:

      client1.ovpn

      script-security 2
      up /etc/openvpn/update-resolv-conf
      down /etc/openvpn/update-resolv-conf
      

      Jika Anda menggunakan CentOS, ubah arahan group dari nogroup ke nobody untuk mencocokkan grup distribusi yang tersedia:

      client1.ovpn

      group nobody
      

      Simpan dan tutup berkas.

      Menghubungkan

      Sekarang, Anda dapat terhubung ke VPN hanya dengan menunjuk perintah openvpn ke berkas konfigurasi klien:

      • sudo openvpn --config client1.ovpn

      Ini akan menghubungkan Anda ke VPN Anda.

      Catatan: Jika klien Anda menggunakan systemd-resolved untuk mengelola DNS, periksa bahwa pengaturan sudah diterapkan dengan benar dengan menjalankan perintah systemmd-resolve --status seperti ini:

      • systemd-resolve --status tun0

      Anda akan melihat keluaran seperti yang berikut:

      Output

      Link 22 (tun0) . . . DNS Servers: 208.67.222.222 208.67.220.220 DNS Domain: ~.

      Jika Anda melihat alamat IP dari server DNS yang sudah Anda konfigurasikan pada server OpenVPN, bersama dengan pengaturan ~. untuk DNS Domain pada keluaran, berarti Anda sudah mengonfigurasi klien Anda dengan benar untuk menggunakan resolver DNS dari server VPN. Anda juga dapat memeriksa bahwa Anda mengirimkan kueri DNS melalui VPN menggunakan situs seperti DNS leak test.com.

      iOS

      Menginstal

      Dari iTunes App Store, cari dan instal OpenVPN Connect, aplikasi klien OpenVPN resmi untuk iOS. Untuk mentransfer konfigurasi klien iOS Anda ke perangkat, hubungkan secara langsung ke komputer.

      Proses untuk menyelesaikan transfer dengan iTunes dijabarkan di sini. Buka iTunes pada komputer dan klik pada iPhone > apps. Gulir turun ke bagian File Sharing dan klik aplikasi OpenVPN. Jendela kosong di sebelah kanan, OpenVPN Documents, adalah untuk berbagi berkas. Seret berkas .ovpn ke jendela OpenVPN Documents. iTunes menunjukkan profil VPN yang siap untuk dimuat pada iPhone

      Sekarang, luncurkan aplikasi OpenVPN pada iPhone. Anda akan menerima notifikasi bahwa profil baru siap untuk diimpor. Ketuk tanda plus berwarna hijau untuk mengimpornya.

      Aplikasi OpenVPN iOS menunjukkan bahwa profil baru siap untuk diimporMenghubungkan

      OpenVPN kini siap digunakan dengan profil baru. Mulai koneksi dengan menggeser tombol Connect ke posisi On. Putuskan koneksi dengan menggeser tombol yang sama ke posisi Off.

      Catatan: Sakelar VPN di bawah Settings tidak dapat digunakan untuk terhubung ke VPN. Jika Anda mencobanya, Anda akan menerima pemberitahuan untuk hanya terhubung menggunakan aplikasi OpenVPN.

      Aplikasi OpenVPN iOS terhubung ke VPN

      Android

      Menginstal

      Buka Google Play Store. Cari dan instal Android OpenVPN Connect, aplikasi klien OpenVPN resmi untuk Android.

      Anda dapat mentransfer profil .ovpn dengan menghubungkan perangkat Android ke komputer Anda dengan USB dan menyalin berkas itu. Alternatifnya, jika Anda memiliki pembaca kartu SD, Anda dapat melepas kartu SD di perangkat, menyalin profil ke dalamnya, lalu memasukkan kartu itu kembali ke perangkat Android.

      Mulai aplikasi OpenVPN dan ketuk menu FILE untuk mengimpor profil.

      Pemilihan menu impor profil pada aplikasi OpenVPN Android

      Lalu navigasikan ke lokasi profil yang tersimpan (tangkapan layar menggunakan /storage/emulated/O/openvpn) dan pilih berkas .ovpn Anda. Ketuk tombol IMPORT untuk menyelesaikan pengimporan profil ini.

      Aplikasi OpenVPN Android memilih profil VPN yang akan diimpor

      Menghubungkan Setelah profil ditambahkan, Anda akan melihat layar seperti ini:

      Aplikasi OpenVPN Android dengan profil baru yang ditambahkan

      Untuk terhubung, ketuk tombol geser untuk memilih profil yang Anda ingin gunakan. Anda akan melihat statistik waktu dari koneksi dan lalu lintas Anda yang dialirkan melalui server OpenVPN Anda: Aplikasi OpenVPN Android terhubung ke VPN

      Untuk memutus koneksi, ketuk saja tombol geser pada bagian kiri atas sekali lagi. Anda akan diminta untuk mengonfirmasi bahwa Anda ingin memutus koneksi dari VPN Anda.

      Langkah 14 — Menguji Koneksi VPN Anda (Opsional)

      Catatan: Metode untuk menguji koneksi VPN Anda ini hanya akan berjalan jika Anda memilih untuk mengalirkan lalu lintas Anda melalui VPN pada Langkah 7 saat Anda mengedit berkas server.conf untuk OpenVPN.

      Setelah semuanya terinstal, periksa untuk mengonfirmasi semuanya berjalan lancar dengan benar. Tanpa mengaktifkan koneksi VPN, buka peramban dan kunjungi DNSLeakTest.

      Situs ini akan menghasilkan alamat IP yang ditetapkan oleh penyedia layanan internet Anda dan saat Anda muncul ke seluruh dunia. Untuk memeriksa pengaturan DNS Anda melalui situs web yang sama, klik pada Extended Test dan ini akan memberi tahu Anda server DNS yang Anda gunakan.

      Sekarang, hubungkan klien OpenVPN ke VPN Droplet Anda dan segarkan peramban. Alamat IP yang sangat berbeda (dibanding server VPN Anda) kini akan muncul, dan inilah cara Anda muncul ke dunia. Sekali lagi, Extended Test dari DNSLeakTest akan memeriksa pengaturan DNS Anda dan mengonfirmasi bahwa Anda kini menggunakan resolver DNS yang didorong oleh VPN Anda.

      Langkah 15 — Mencabut Sertifikat Klien

      Terkadang, Anda mungkin perlu mencabut sertifikat klien untuk mencegah akses lebih lanjut ke server OpenVPN.

      Untuk melakukan itu, ikuti contoh dalam tutorial prasyarat tentang Cara Menyiapkan dan Mengonfigurasi Otoritas Sertifikat pada Ubuntu 20.04 pada bagian Mencabut Sertifikat.

      Setelah Anda mencabut sertifikat untuk suatu klien menggunakan instruksi itu, Anda perlu menyalin berkas crl.pem yang dihasilkan ke server OpenVPN Anda di dalam direktori /etc/openvpn/server:

      • sudo cp /tmp/crl.pem /etc/openvpn/server/

      Selanjutnya, buka berkas konfigurasi server OpenVPN:

      • sudo nano /etc/openvpn/server/server.conf

      Pada bagian bawah berkas, tambahkan opsi crl-verify, yang akan menginstruksikan server OpenVPN untuk memeriksa daftar pencabutan sertifikat yang kita telah buat setiap kali ada upaya koneksi:

      /etc/openvpn/server/server.conf

      crl-verify crl.pem
      

      Simpan dan tutup berkas.

      Terakhir, mulai ulang OpenVPN untuk menerapkan pencabutan sertifikat:

      Klien seharusnya tidak lagi bisa terhubung ke server menggunakan kredensial lama.

      Untuk mencabut klien tambahan, ikuti proses ini:

      1. Cabut sertifikat dengan perintah ./easyrsa revoke client_name
      2. Buat CRL yang baru
      3. Transfer berkas crl.pem yang baru ke server OpenVPN Anda dan salin ke direktori /etc/openvpn/server/ untuk menimpa daftar lama.
      4. Mulai ulang layanan OpenVPN.

      Anda dapat menggunakan proses ini untuk mencabut sertifikat apa pun yang Anda berikan sebelumnya untuk server Anda.

      Kesimpulan

      Anda kini seharusnya memiliki jaringan privat virtual yang beroperasi penuh dan berjalan pada Server OpenVPN Anda. Anda dapat menjelajahi web dan mengunduh konten tanpa khawatir tentang aktor jahat yang melacak aktivitas Anda.

      Ada beberapa langkah yang Anda dapat lakukan untuk menyesuaikan instalasi OpenVPN Anda lebih lanjut, seperti mengonfigurasi klien Anda untuk terhubung ke VPN secara otomatis atau mengonfigurasi aturan untuk klien tertentu dan kebijakan akses. Untuk penyesuaian ini dan penyesuian OpenVPN lain, Anda harus membaca dokumentasi OpenVPN resmi.

      Untuk mengonfigurasi klien lainnya, Anda hanya perlu mengikuti langkah 6 dan 11-13 untuk masing-masing perangkat tambahan. Untuk mencabut akses ke klien, ikuti langkah 15.



      Source link

      Cara Menyiapkan Kunci SSH pada Ubuntu 20.04


      Pengantar

      SSH, atau secure shell, adalah protokol terenkripsi yang digunakan untuk mengelola dan berkomunikasi dengan server. Ketika bekerja dengan server Ubuntu, kemungkinan Anda akan menghabiskan sebagian besar waktu Anda dalam sesi terminal yang terhubung ke server Anda melalui SSH.

      Dalam panduan ini, kita akan berfokus pada penyiapan kunci SSH untuk instalasi Ubuntu 20.04. Kunci SSH menyediakan cara yang aman untuk log masuk ke server Anda dan disarankan untuk semua pengguna.

      Langkah 1 — Menciptakan Pasangan Kunci

      Langkah pertama adalah menciptakan pasangan kunci pada mesin klien (biasanya komputer Anda):

      Secara asali, versi terbaru dari ssh-keygen akan menciptakan pasangan kunci RSA 3072-bit, yang cukup aman untuk kebanyakan kasus penggunaan (Anda dapat secara opsional memasukkan bendera -b 4096 untuk menciptakan kunci 4096-bit yang lebih besar).

      Setelah memasukkan perintah, Anda akan melihat keluaran berikut:

      Output

      Generating public/private rsa key pair. Enter file in which to save the key (/your_home/.ssh/id_rsa):

      Tekan enter untuk menyimpan pasangan kunci ke subdirektori .ssh/ di dalam direktori rumah Anda, atau tentukan jalur alternatif.

      Jika Anda sebelumnya telah menghasilkan pasangan kunci SSH, Anda mungkin melihat prompt berikut:

      Output

      /home/your_home/.ssh/id_rsa already exists. Overwrite (y/n)?

      Jika Anda memilih untuk menimpa kunci pada diska, Anda tidak akan bisa lagi melakukan autentikasi menggunakan kunci sebelumnya. Berhati-hatilah saat memilih ya, karena ini adalah proses destruktif yang tidak dapat dikembalikan.

      Kemudian, Anda akan melihat prompt berikut:

      Output

      Enter passphrase (empty for no passphrase):

      Di sini Anda secara opsional dapat memasukkan frasa sandi yang aman, yang merupakan sesuatu yang sangat disarankan. Frasa sandi menambahkan lapisan keamanan tambahan untuk mencegah pengguna yang tidak sah untuk log masuk. Untuk mempelajari lebih lanjut tentang keamanan, lihat tutorial kami tentang Cara Mengonfigurasi Autentikasi Berbasis Kunci SSH pada Server Linux.

      Kemudian, Anda akan melihat keluaran mirip seperti ini:

      Output

      Your identification has been saved in /your_home/.ssh/id_rsa Your public key has been saved in /your_home/.ssh/id_rsa.pub The key fingerprint is: SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host The key's randomart image is: +---[RSA 3072]----+ | .| | + | | + | | . o . | |o S . o | | + o. .oo. .. .o| |o = oooooEo+ ...o| |.. o *o+=.*+o....| | =+=ooB=o.... | +----[SHA256]-----+

      Anda kini memiliki kunci publik dan pribadi yang Anda dapat gunakan untuk melakukan autentikasi. Langkah selanjutnya adalah menempatkan kunci publik pada server Anda sehingga Anda dapat menggunakan autentikasi berbasis kunci SSH untuk log masuk.

      Langkah 2 — Menyalin Kunci Publik ke Server Ubuntu Anda

      Cara tercepat untuk menyalin kunci publik Anda ke hos Ubuntu adalah menggunakan utilitas bernama ssh-copy-id. Karena kemudahannya, metode ini sangat disarankan jika tersedia. Jika Anda tidak memiliki ssh-copy-id yang tersedia bagi Anda di mesin klien, Anda dapat menggunakan salah satu dari dua metode alternatif yang disediakan di bagian ini (menyalin melalui SSH berbasis kata sandi, atau menyalin kunci secara manual).

      Menyalin Kunci Publik Menggunakan ssh-copy-id

      Alat ssh-copy-id disertakan secara asali dalam banyak sistem operasi, sehingga Anda mungkin telah memilikinya di sistem lokal Anda. Agar metode ini bekerja, Anda harus sudah memiliki akses SSH berbasis kata sandi ke server Anda.

      Untuk menggunakan utilitas ini, Anda menentukan hos jauh yang Anda ingin hubungkan, dan akun pengguna yang Anda miliki dengan akses SSH berbasis kata sandi. Ini adalah akun tempat menyalin kunci SSH publik Anda.

      Sintaksnya adalah:

      • ssh-copy-id username@remote_host

      Anda mungkin melihat pesan berikut:

      Output

      The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

      Ini berarti bahwa komputer lokal Anda tidak mengenali hos jauh. Ini akan terjadi saat pertama kali Anda terhubung ke hos baru. Ketik “yes"dan tekan ENTER untuk melanjutkan.

      Selanjutnya, utilitas akan memindai akun lokal Anda untuk mencari kunci id_rsa.pub yang kita ciptakan sebelumnya. Ketika utilitas menemukan kuncinya, utilitas akan menanyakan kata sandi dari akun pengguna jauh:

      Output

      /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys username@203.0.113.1's password:

      Masukkan kata sandi (pengetikan Anda tidak akan ditampilkan untuk keamanan) dan tekan ENTER. Utilitas akan terhubung ke akun pada hos jauh menggunakan kata sandi yang Anda berikan. Kemudian, utilitas akan menyalin konten dari kunci ~/.ssh/id_rsa.pub Anda ke berkas di dalam direktori ~/.ssh rumah dari akun jauh yang disebut authorized_keys.

      Anda akan melihat keluaran berikut:

      Output

      Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@203.0.113.1'" and check to make sure that only the key(s) you wanted were added.

      Pada titik ini, kunci id_rsa.pub Anda telah diunggah ke akun jauh. Anda dapat melanjutkan ke Langkah 3.

      Menyalin Kunci Publik Menggunakan SSH

      Jika Anda tidak memiliki ssh-copy-id yang tersedia, tetapi Anda memiliki akses SSH berbasis kata sandi ke akun pada server, Anda dapat mengunggah kunci menggunakan metode SSH konvensional.

      Kita dapat melakukan ini dengan penggunaan perintah cat untuk membaca konten dari kunci SSH publik pada komputer lokal kita dan menyalurkannya melalui koneksi SSH ke server jauh.

      Di samping itu, kita dapat memastikan bahwa direktori ~/.ssh sudah ada dan memiliki izin yang benar di bawah akun yang kita gunakan.

      Kemudian, kita dapat menghasilkan konten yang kita salurkan ke dalam suatu berkas bernama authorized_keys di dalam direktori ini. Kita akan menggunakan simbol pengalihan >> untuk memberikan tambahan pada konten alih-alih menimpanya. Ini akan memungkinkan kita untuk menambahkan kunci tanpa merusak kunci yang ditambahkan sebelumnya.

      Perintah utuhnya terlihat seperti ini:

      • cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

      Anda mungkin melihat pesan berikut:

      Output

      The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

      Ini berarti bahwa komputer lokal Anda tidak mengenali hos jauh. Ini akan terjadi saat pertama kali Anda terhubung ke hos baru. Ketik yes dan tekan ENTER untuk melanjutkan.

      Setelah itu, Anda akan diminta untuk memasukkan kata sandi akun pengguna jauh:

      Output

      username@203.0.113.1's password:

      Setelah memasukkan kata sandi Anda, konten dari kunci id_rsa.pub akan disalin ke bagian akhir berkas authorized_keys dari akun pengguna jauh. Lanjutkan ke Langkah 3 jika ini berhasil.

      Menyalin Kunci Publik secara Manual

      Jika Anda tidak memiliki akses SSH berbasis kata sandi ke server yang tersedia, Anda akan perlu menyelesaikan proses di atas secara manual.

      Kita akan secara manual memberikan tambahan pada konten dari berkas id_rsa.pub Anda ke berkas ~/.ssh/authorized_keys pada mesin jauh Anda.

      Untuk menampilkan konten dari kunci id_rsa.pub, ketik ini pada komputer lokal Anda:

      Anda akan melihat konten dari kunci itu, yang akan terlihat seperti ini:

      Output

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test

      Akses hos jauh Anda menggunakan metode apa pun yang Anda miliki.

      Setelah Anda memiliki akses ke akun Anda pada server jauh, Anda harus memastikan direktori ~/.ssh sudah ada. Perintah ini akan menciptakan direktori tersebut jika diperlukan, atau jangan lakukan apa pun jika direktorinya sudah ada:

      Sekarang, Anda dapat menciptakan atau memodifikasi berkas authorized_keys di dalam direktori ini. Anda dapat menambahkan konten dari berkas id_rsa.pub ke bagian akhir dari berkas authorized_keys, atau menciptakannya jika diperlukan, dengan perintah ini:

      • echo public_key_string >> ~/.ssh/authorized_keys

      Dalam perintah di atas, ganti public_key_string dengan keluaran dari perintah cat ~/.ssh/id_rsa.pub yang Anda eksekusi pada sistem lokal Anda. Keluaran itu dimulai dengan ssh-rsa AAAA....

      Terakhir, kita akan memastikan bahwa direktori ~/.ssh dan berkas authorized_keys telah memiliki izin yang sesuai:

      Ini secara berulang menghapus semua izin "group” dan “other"dari direktori ~/.ssh/.

      Jika Anda menggunakan akun root untuk menyiapkan kunci akun pengguna, maka penting untuk diingat bahwa direktori ~/.ssh dimiliki oleh pengguna dan bukan oleh root:

      • chown -R sammy:sammy ~/.ssh

      Dalam tutorial ini, pengguna kita bernama sammy, tetapi Anda harus mengganti nama pengguna sesuai dengan perintah di atas.

      Sekarang kita dapat mencoba autentikasi tanpa kata sandi dengan server Ubuntu kita.

      Langkah 3 — Melakukan Autentikasi ke Server Ubuntu Anda Menggunakan Kunci SSH

      Jika Anda telah berhasil menyelesaikan salah satu prosedur di atas, Anda akan dapat log masuk ke hos jauh tanpa memberikan kata sandi dari akun jauh.

      Proses dasarnya sama:

      Jika ini adalah kali pertama Anda terhubung ke hos ini (jika Anda menggunakan metode terakhir di atas), Anda mungkin melihat sesuatu seperti ini:

      Output

      The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes

      Ini berarti bahwa komputer lokal Anda tidak mengenali hos jauh. Ketik "yes”, lalu tekan ENTER untuk melanjutkan.

      Jika Anda tidak memasukkan frasa sandi untuk kunci pribadi, Anda akan segera log masuk. Jika Anda memasukkan frasa sandi untuk kunci pribadi ketika Anda menciptakan kunci tersebut, Anda akan diminta untuk memasukkannya sekarang (harap diperhatikan bahwa hasil pengetikan Anda tidak akan muncul dalam sesi terminal untuk alasan keamanan). Setelah melakukan autentikasi, sesi shell baru akan terbuka untuk Anda dengan akun yang terkonfigurasi di server Ubuntu.

      Jika autentikasi berbasis kunci berhasil, lanjutkan untuk mempelajari cara mengamankan sistem Anda lebih lanjut dengan menonaktifkan autentikasi kata sandi.

      Langkah 4 — Menonaktifkan Autentikasi Kata Sandi pada Server Anda

      Jika Anda dapat log masuk ke akun Anda menggunakan SSH tanpa kata sandi, Anda telah berhasil mengonfigurasi autentikasi berbasis kunci SSH ke akun Anda. Namun, mekanisme autentikasi berbasis kata sandi Anda masih aktif, yang berarti bahwa server Anda masih terekspos oleh serangan brutal.

      Sebelum menyelesaikan langkah-langkah di bagian ini, pastikan bahwa Anda memiliki autentikasi berbasis kunci SSH yang terkonfigurasi untuk akun root pada server ini, atau yang lebih baik, bahwa Anda memiliki autentikasi berbasis kunci SSH yang terkonfigurasi untuk akun non-root pada server ini dengan privilese sudo. Langkah ini akan mengunci log masuk berbasis kata sandi, sehingga memastikan bahwa Anda masih bisa mendapatkan akses administratif adalah hal yang krusial.

      Setelah Anda mengonfirmasi bahwa akun jauh Anda memiliki privilese administratif, log masuk ke server jauh Anda dengan kunci SSH, baik sebagai root atau menggunakan akun dengan privilese sudo. Lalu, buka berkas konfigurasi dari daemon SSH:

      • sudo nano /etc/ssh/sshd_config

      Di dalam berkas, cari suatu arahan bernama PasswordAuthentication. Baris ini mungkin dibuat menjadi komentar dengan # di awal baris. Hapus komentar dengan menghapus #, dan tetapkan nilai menjadi no. Ini akan menonaktifkan kemampuan Anda untuk log masuk melalui SSH dengan menggunakan kata sandi akun:

      /etc/ssh/sshd_config

      . . .
      PasswordAuthentication no
      . . .
      

      Simpan dan tutup berkas saat Anda selesai dengan menekan CTRL+X, lalu Y untuk mengonfirmasi penyimpanan berkas tersebut, dan terakhir ENTER untuk keluar dari nano. Untuk benar-benar mengaktifkan perubahan ini, kita perlu memulai ulang layanan sshd:

      • sudo systemctl restart ssh

      Sebagai tindakan pencegahan, buka jendela terminal baru dan uji apakah layanan SSH berfungsi dengan benar sebelum menutup sesi Anda saat ini:

      Setelah Anda memverifikasi layanan SSH berfungsi dengan benar, Anda dapat menutup semua sesi server saat ini dengan aman.

      Daemon SSH pada server Ubuntu Anda kini hanya merespons autentikasi berbasis kunci SSH. Log masuk berbasis kata sandi telah dinonaktifkan.

      Kesimpulan

      Kini, Anda telah memiliki autentikasi berbasis kunci SSH yang terkonfigurasi pada server Anda, yang mengizinkan Anda untuk masuk tanpa memberikan kata sandi akun.

      Jika Anda ingin mempelajari lebih lanjut tentang bekerja dengan SSH, lihat Panduan Esensial SSH dari kami.



      Source link