<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Untitled Publication]]></title><description><![CDATA[Untitled Publication]]></description><link>https://blog.rizkyilhampra.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 20:49:10 GMT</lastBuildDate><atom:link href="https://blog.rizkyilhampra.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Masalah XAMPP di ECLAIM (INACBG) BPJS dan Cara Mengatasinya]]></title><description><![CDATA[Di sini adalah langkah-langkah yang saya lakukan untuk mengatasi masalah di ECLAIM yang mana basisnya menggunakan XAMPP yang self hosted pada komputer atau server internal.

Yap, jika ada yang berencana untuk targeting attack ke suatu rumah sakit, ad...]]></description><link>https://blog.rizkyilhampra.dev/masalah-xampp-di-eclaim-inacbg-bpjs-dan-cara-mengatasinya</link><guid isPermaLink="true">https://blog.rizkyilhampra.dev/masalah-xampp-di-eclaim-inacbg-bpjs-dan-cara-mengatasinya</guid><dc:creator><![CDATA[Rizky Ilham Pratama]]></dc:creator><pubDate>Sun, 26 Oct 2025 06:57:26 GMT</pubDate><content:encoded><![CDATA[<p>Di sini adalah langkah-langkah yang saya lakukan untuk mengatasi masalah di ECLAIM yang mana basisnya menggunakan XAMPP yang <em>self hosted</em> pada komputer atau server internal.</p>
<blockquote>
<p>Yap, jika ada yang berencana untuk <em>targeting attack</em> ke suatu rumah sakit, ada cara yang bisa dilakukan, salah satunya cari di mana ECLAIM berada. Tidak sedikit dari rumah sakit yang juga melakukan <em>tunneling</em> untuk <em>expose</em> aplikasi ini ke internet (umumnya menggunakan <em>service</em> dari <a target="_blank" href="https://ngrok.io">ngrok</a>).</p>
<p>Ini adalah sebuah kritikan juga untuk pihak penyedia sistem atau aplikasi ini yang masih menggunakan XAMPP untuk <em>self hosted provider</em>. <em>You are need to learn docker, man!</em></p>
</blockquote>
<p>Cerita sedikit mengenai latar belakang mengapa tulisan ini di buat. Ada suatu rumah sakit yang tidak mempunyai pegawai IT didalamnya, kemudian terkendala masalah ECLAIM-nya yang tidak bisa terbuka. Sebuah <em>chat</em> pertama kali masuk ke saya dari pihak JKN pada rumah sakit tersebut dengan sebuah gambar yang berisi peringatan atau <em>error</em> di log XAMPP yang mengatakan terjadi <em>port issue</em>. Kemudian pihak JKN di rumah sakit tersebut bercerita bahwa sebelumnya telah mencoba untuk meng-<em>update</em> ECLAIM-nya namun setelah <em>update</em> tersebut telah dilakukan, ia tidak bisa membuka <em>web</em> tersebut kembali. Setelah meminta yang bersangkutan untuk kemudian <em>restart</em> kembali komputernya lalu buka kembali. Ternyata sebelumnya juga telah meminta IT (dengan posisi di sini adalah mitra) untuk melakukan perbaikan atau <em>troubleshooting</em> terkait masalah tersebut, namun tampaknya tetap tidak berhasil. Sehingga masalah yang seharusnya kecil ini menjadi lebih besar dan susah untuk diketahui apa penyebabnya dikarenakan telah terjadi modifikasi untuk konfigurasi XAMPP-nya sendiri.</p>
<h2 id="heading-blocking-port">Blocking port</h2>
<p>Yap, ini adalah <em>common issue</em>. Hal yang paling gampang adalah lakukan <em>restart</em>. Tidak perlu hubungi seorang IT, anda dapat melakukannya sendiri, yang dilakukan hanya butuh <strong><em>restart</em> komputer!</strong>. <em>I know</em> cara lainnya adalah lakukan <em>mapping</em> untuk <em>port</em> baru atau <em>kill</em> <em>process</em> yang menggunakan <em>port</em> tersebut. Tapi ini butuh <em>expertise</em> dan anda tau apa yang anda lakukan.</p>
<blockquote>
<p>Di sinilah masalah kecil yang menjadi besar hanya karena modifikasi MySQL dan Apache <em>port</em> ke <em>value</em> lain dari yang semestinya, tapi anda tidak tau apa yang sebenarnya dilakukan, terlebih jika hanya berdasarkan informasi dari ChatGPT, <em>what a shame</em>.</p>
</blockquote>
<h3 id="heading-cek-port">Cek port</h3>
<blockquote>
<p>Lakukan ini untuk memastikan Apache dan MySQL berada di <em>port</em> yang seharusnya.</p>
</blockquote>
<p>Walaupun <em>port</em> dapat di ubah dengan menuju pada menu Config pada bagian kanan di XAMPP Control Panel lalu Service and Port Settings. Namun dari pengalaman saya, ini tidak sepenuhnya <em>valid</em>. Maka periksa langsung terhadap <em>file</em> yang berpengaruh.</p>
<h4 id="heading-apache">Apache</h4>
<blockquote>
<p>Mengetahui terjadi kesalahan konfigurasi <em>port</em> pada Apache di XAMPP, <em>browser</em> akan mengirimkan kembalian 5xx jika memaksa buka melalui <a target="_blank" href="http://localhost/E-Klaim"><code>http://localhost/E-Klaim</code></a>.</p>
<p><a target="_blank" href="http://localhost/E-Klaim"><code>http://localhost/E-Klaim</code></a> adalah umumnya <em>endpoint</em> atau <em>url</em> untuk mengakses ECLAIM.</p>
</blockquote>
<p>Umumnya saat instalasi ECLAIM dengan mengikuti "juknis"-nya, maka <em>path</em> untuk konfigurasi port Apache akan berada di:</p>
<pre><code class="lang-bash">C:/xampp/apache/conf/extra/apache-xampp.conf
</code></pre>
<p>Kemudian, fokuskan ke baris dengan keyword "Listen" atau seperti di bawah</p>
<pre><code class="lang-plaintext">#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the &lt;VirtualHost&gt;
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
</code></pre>
<blockquote>
<p>Tanda <code>#</code> adalah sebuah <em>comment</em> sebagai deskripsi singkat terkait baris tersebut, yang mana di sini adalah <code>Listen</code></p>
</blockquote>
<p>Jika baris tersebut masih tetap <code>Listen 80</code> maka tidak ada yang salah dengan konfigurasi Apache.</p>
<h4 id="heading-mysql">MySQL</h4>
<p><em>Default</em> konfigurasi MySQL terlebih untuk <em>port</em> akan seperti di bawah.</p>
<pre><code class="lang-plaintext"># C:/xampp/mysql/bin/my.ini

[client] 
port            = 3306 
socket          = "/xampp/mysql/mysql.sock"

[mysqld]
port= 3306
socket = "/xampp/mysql/mysql.sock"
basedir = "/xampp/mysql"
</code></pre>
<p>Namun, coba lakukan pemeriksaan di bagian berikut. Ini berguna untuk mengetaui apakah telah terjadi perubahan lain.</p>
<pre><code class="lang-plaintext"># C:/xampp/mysql/bin/my.ini

[mysqld]
# datadir = "/xampp/mysql/data"
datadir = "c:/E-Klaim/data"

# innodb_data_home_dir = "/xampp/mysql/data"
innodb_data_home_dir = "/E-Klaim/data"
innodb_data_file_path = ibdata1:10M:autoextend
# innodb_log_group_home_dir = "/xampp/mysql/data"
innodb_log_group_home_dir = "/E-Klaim/data"
#innodb_log_arch_dir = "/xampp/mysql/data"
</code></pre>
<h2 id="heading-cek-alias">Cek alias</h2>
<pre><code class="lang-plaintext"># C:/xampp/apache/conf/extra/apache-xampp.conf

    Alias /E-Klaim "C:/E-Klaim"
    &lt;Directory "C:/E-Klaim"&gt;
        AllowOverride AuthConfig
        Order allow,deny
        Allow from all
        Require all granted
    &lt;/Directory&gt;

    AliasMatch (?i)^/e-klaim(.*) /E-Klaim$1
    AliasMatch (?i)^/eklaim(.*) /E-Klaim$1
    AliasMatch (?i)^/e-claim(.*) /E-Klaim$1
    AliasMatch (?i)^/eclaim(.*) /E-Klaim$1
</code></pre>
<h2 id="heading-cek-service-xampp">Cek Service XAMPP</h2>
<p>Penggunaan <em>service</em> di XAMPP mungkin sah sah aja, akan tetapi ini akan terkendala untuk orang awam. Service akan membuat Apache dan MySQL akan dapat berjalan di <em>background</em> dan juga otomatis menyala setelah <em>restart</em> komputer tanpa perlu adanya interaksi kembali dengan XAMPP Control Panel.</p>
<p>Di kasus ini, <em>user</em> melaporkan adanya pesan <strong>"Failed empty result"</strong> saat mencoba <em>grouping</em> INACBG. Setelah mencari informasi mulai dari 'juknis' sampai ke komunitas. Saya menemukan bahwa salah satu masalahnya ada di '<em>service</em>' ini. Jadi jika mengalami hal demikian, coba pastikan untuk tidak ada tanda centang hijau pada bagian kiri atau semuanya harus dalam kondisi tanda silang merah. Jika masih sama saja, baru lakukan cek terkait <em>timezone</em> dan <em>region</em> di Windows <em>settings</em>, yang mana seharusnya adalah "Indonesia".</p>
<blockquote>
<p><em>Timezone</em> dan <em>region</em> <em>setting</em> ini ada di 'juknis', terkecuali masalah <em>service</em> tadi. Sebagai catatan juga untuk pihak yang bertanggung jawab dengan ini, untuk menulis dokumentasi selengkap-lengkapnya.</p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[404 livewire.js di CloudPanel]]></title><description><![CDATA[Tulisan ini berisi langkah-langkah saya mengatasi masalah ketika melakukan deployment web application Laravel dengan Livewire di CloudPanel. Masalah tersebut yaitu filelivewire.js tidak ditemukan atau dari di sisi browser mengembalikan response code ...]]></description><link>https://blog.rizkyilhampra.dev/404-livewirejs-di-cloudpanel</link><guid isPermaLink="true">https://blog.rizkyilhampra.dev/404-livewirejs-di-cloudpanel</guid><category><![CDATA[Livewire]]></category><category><![CDATA[Bahasa Indonesia]]></category><category><![CDATA[Laravel]]></category><category><![CDATA[CloudPanel]]></category><dc:creator><![CDATA[Rizky Ilham Pratama]]></dc:creator><pubDate>Sun, 04 Aug 2024 10:17:47 GMT</pubDate><content:encoded><![CDATA[<p>Tulisan ini berisi langkah-langkah saya mengatasi masalah ketika melakukan <em>deployment web application</em> Laravel dengan Livewire di CloudPanel. Masalah tersebut yaitu <em>file</em><code>livewire.js</code> tidak ditemukan atau dari di sisi browser mengembalikan <em>response code</em> 404 saat <em>request file</em> tersebut. Berikut adalah langkah-langkah yang saya lakukan.</p>
<ol>
<li><p>Pergi ke Vhost Editor</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1722765293829/4c559b83-bb92-4b38-888a-e4f696c4d994.png" alt class="image--center mx-auto" /></p>
</li>
<li><p>Temukan blok kode seperti</p>
<pre><code class="lang-plaintext"> location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ {
     add_header Access-Control-Allow-Origin "*";
     add_header alt-svc 'h3=":443"; ma=86400';
     expires max;
     access_log off;
 }
</code></pre>
</li>
<li><p>Hapus <code>js</code> pada <em>list location</em>. Sehingga hasil akhirnya dari blok kode tersebut adalah seperti ini</p>
<blockquote>
<p>Akan terdapat dua blok kode seperti ini. Pastikan untuk mengubah keduanya.</p>
</blockquote>
<pre><code class="lang-plaintext"> location ~* ^.+\.(css|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ {
     add_header Access-Control-Allow-Origin "*";
     add_header alt-svc 'h3=":443"; ma=86400';
     expires max;
     access_log off;
 }
</code></pre>
</li>
<li><p>Simpan dan lakukan <em>refresh</em> pada web tujuan</p>
</li>
</ol>
<p>Sumber dari tulisan ini saya dapatkan dari diskusi di repo Livewire berikut <a target="_blank" href="https://github.com/livewire/livewire/discussions/6328">https://github.com/livewire/livewire/discussions/6328</a>. Sekian, terima kasih telah membaca.</p>
]]></content:encoded></item><item><title><![CDATA[Memulai dengan VPS]]></title><description><![CDATA[VPS atau Virtual Private Server adalah mesin virtual atau server yang terpisah dari server atau mesin utama. Sederhananya, ketika mesin utama yang memiliki resource yang besar akan dibagi menjadi beberapa server lagi tapi bukan berupa mesin utuh mela...]]></description><link>https://blog.rizkyilhampra.dev/memulai-dengan-vps</link><guid isPermaLink="true">https://blog.rizkyilhampra.dev/memulai-dengan-vps</guid><category><![CDATA[vps]]></category><category><![CDATA[Linux]]></category><category><![CDATA[indonesia]]></category><category><![CDATA[hosting]]></category><dc:creator><![CDATA[Rizky Ilham Pratama]]></dc:creator><pubDate>Wed, 17 Jul 2024 05:14:43 GMT</pubDate><content:encoded><![CDATA[<p>VPS atau Virtual Private Server adalah mesin virtual atau server yang terpisah dari server atau mesin utama. Sederhananya, ketika mesin utama yang memiliki <em>resource</em> yang besar akan dibagi menjadi beberapa server lagi tapi bukan berupa mesin utuh melainkan berupa <em>virtual</em>. Penggunaan VPS biasanya digunakan untuk kebutuhan <em>hosting</em> web atau aplikasi. Beberapa penyedia hosting umumnya menyediakan layanan VPS ini, yang mana kelebihannya daripada <em>shared hosting</em> pada umumnya adalah kita sebagai user mendapatkan akses sebagai root atau bertindak sebagai root, sehingga kebutuhan untuk mengkonfigurasi server tersebut bisa dilakukan dengan lebih leluasa misalkan untuk konfigurasi <em>firewall</em>, install aplikasi/program di dalam server, dan lain sebagainya. Sedangkan di <em>shared hosting</em> umumnya terbatas, kita hanya mendapatkan akses untuk sekadar <em>hosting</em> web/aplikasi saja dengan cara mengupload folder aplikasi ke dalam server. Walaupun di beberapa <em>shared hosting</em> tetap menyediakan SSH, tetapi tetap saja penggunaannya terbatas karena tidak mempunyai kapabilitas sebagai root.</p>
<p>Disini saya akan menjelaskan bagaimana umumnya saya melakukan konfigurasi server atau VPS tadi dengan command line. Sampai tulisan ini dibuat, saya menggunakan VPS hanya untuk kebutuhan hosting aplikasi web saja. Tapi seharusnya disini saya akan bahas secara umum bagaimana setup VPS, setidaknya sampai siap untuk digunakan. </p>
<p>Pertama-tama kita harus membeli VPS itu sendiri, ada banyak penyedia VPS atau layanan hosting. Saya jabarkan di bawah beberapa yang saya ketahui, mulai yang beroperasi di indonesia dan di luar.</p>
<ul>
<li>https://rumahweb.com</li>
<li>https://biznetgio.com</li>
<li>https://hostinger.com</li>
<li>https://niagahoster.com</li>
<li>https://digitalocean.com</li>
</ul>
<p>Bagaimana cara membelinya? umumnnya penyedia hosting ini terdapat beberapa layanan. Disini kalian bisa fokus mencari bagian vps nya saja. Sampai disana biasanya kita diminta untuk mengatur resource server yang akan kita gunakan, atau beberapa pihak lainnya menyediakan pricelist berdasarkan resourcenya saja. Disini sesuaikan saja dengan kebutuhan, jika baru pertama kali dan mau coba-coba akan lebih menggunakan yang paling murah saja. Umumnya yang paling murah rentang 50 - 60 ribu rupiah atau bisa lebih murah tergantung penyedia hosting dan promo apa yang sedang berlaku. </p>
<p>Setelah memutuskan membeli atau memilih resource yang akan digunakan, biasanya kita diminta untuk memilih menggunakan distro linux yang akan digunakan untuk servernya nanti. Umumnya penyedia hosting akan memberikan beberapa opsi distro linux saja, di penyedia hosting yang lebih besar biasanya baru memberikan pilihan sistem operasi seperti windows server, dan linux server. Untuk yang baru memulai akan lebih baik menggunakan distro linux Ubuntu. Mengapa menggunakan Ubuntu dibanding dengan yang lain? Karena salah satu distro dari based debian linux yang paling besar dari sisi komunitas dan penggunanya. Sehingga jika terjadi masalah akan lebih mudah mencari informasinya di internet.</p>
<p>Pastikan juga saat memilih distro Ubuntu untuk tetap menggunakan versi LTS-nya, umumnya diawali dengan angka genap didepannya. Mengapa menggunakan versi LTS? Dari sepengalaman saya ketika menggunakan versi terbaru akan menyebabkan masalah dimana saat  menambahkan repository diluar dari ubuntu, akan menyebabkan repository tersebut tidak ditemukan, tapi saya tidak tau apakah ini <em>common issue</em> atau tidak.</p>
<p>Setelah memilih distro linux, seharusnya akan terdapat pilihan untuk setup ssh key. </p>
<blockquote>
<p>SSH adalah cara berkomunikasi antar komputer, simplenya ketika kita ingin mengakses komputer orang lain melalui komputer kita sekarang.</p>
</blockquote>
<p>Untuk setup ssh biasanya provider hosting berbeda beda, ada yang meminta kita mengisi public key saja, atau mereka memberikan opsi untuk membuat private/public key. Disini biasanya saya akan membuat ssh key di komputer pribadi dan menambahkan public key ke dalam form isian yang provider hosting minta.</p>
<h2 id="heading-setup-ssh">Setup SSH</h2>
<blockquote>
<p>Disini saya menggunakan linux, jika anda yang membaca ini menggunakan windows akan ada beberapa tahapan yang harus dilalui sebelum bisa menjalankan perintah di bawah, silahkan googling untuk sisanya.</p>
</blockquote>
<p>Buka terminal, lalu ketikkan perintah di bawah.</p>
<pre><code class="lang-bash">ssh-keygen -t ed25519 -C <span class="hljs-string">"your_email@example.com"</span>
</code></pre>
<blockquote>
<ol>
<li><code>ssh-keygen</code>: command untuk menghasilkan ssh key pairing, public key dan private key.</li>
<li><code>-t ed25519</code>: opsi untuk menggunakan algoritma <code>ed25519</code>. Algoritma ini direkomendasikan oleh <a target="_blank" href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent">Github</a> untuk pairing dengan ssh. Algoritma lain ada <code>rsa</code>, <code>dsa</code>. Defaultnya akan menggunakan <code>rsa</code>. Perbedaan algoritma ini hanyalah terkait keamanan.</li>
<li><code>-C "your_email@example.com</code>: menambahkan label atau penanda pada ssh key.</li>
</ol>
</blockquote>
<p>Setelah itu akan terdapat pesan untuk menaruh file ssh key dimana, defaultnya seharusnya di <code>~/.ssh/</code>, silahkan enter saja jika tidak tau mau taruh dimana.</p>
<p>Setelah menerima prompt tadi, selanjutnya kita akan diminta untuk mengisi <em>passphrase</em>. <em>passphrase</em> ini kurang lebih bisa diartikan sebagai password. Silahkan untuk mengisi atau biarkan kosong.</p>
<p>Maka akan ada dua file yang akan dibuat otomatis ke dalam folder/directory <code>~/.ssh</code>. private key dan public key. Pergi directory tersebut untuk melihat.</p>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> ~/.ssh
</code></pre>
<p>Jika baru pertama kali membuat ssh key maka disana akan terdapat dua file. Silahkan lihat dengan perintah berikut.</p>
<pre><code class="lang-bash">ls -a
</code></pre>
<p>Public key atau file yang dibelakang namanya terdapat <code>.pub</code>. Public key ini yang akan dimasukkan dimasukkan ke form isian yang diminta oleh provider hosting tadi. Lalu private key sebagai penghubung dengan public key tadi. Jika orang lain hanya melihat public key tapi tidak mengetahui private key, maka koneksi ssh tersebut akan gagal, begitupun sebaliknya. </p>
<p>Untuk melihat isi file dari public key, jalankan perintah berikut.</p>
<pre><code class="lang-bash">cat id_ed25519.pub
</code></pre>
<p>Setelah itu arahkan mouse untuk menyeleksi isi dari file tersebut untuk di copy, lalu paste di form isian yang provider hosting minta. </p>
<h2 id="heading-masuk-ke-komputer-server-vps-dengan-ssh">Masuk ke Komputer Server / VPS dengan SSH</h2>
<p>Setelah setup ssh tadi, saatnya kita akan masuk ke komputer server dengan ssh.</p>
<pre><code class="lang-bash">ssh -i ~/.ssh/nama_file_private_key username_server@ip_address_server
</code></pre>
<blockquote>
<ol>
<li><code>ssh</code>: program untuk menjalankan remote akses ke server yang kita tuju.</li>
<li><code>-i ~/.ssh/nama_file_private_key</code>: Mengidentifikasi private key yang akan kita gunakan.</li>
</ol>
</blockquote>
<p>Perhatikan <code>username_server</code> dan <code>ip_address_server</code>, sesuaikan dengan informasi dari VPS yang anda telah beli. Biasanya akan ada informasi IP address static dan username. Jika tidak ada keterangan username, maka seharusnya root adalah default, jadi bisa ganti dengan <code>root@ip_address_server</code>.</p>
<p>Setelah itu akan diminta mengisi passphrase, isikan <em>passphrase</em> sesuai <em>passhprase</em> yang dibuat sebelumnya. Jika sebelumnya mengosongkan <em>passphrase</em> maka kosongkan juga bagian ini.</p>
<blockquote>
<p>Jika port ssh tidak <code>22</code>. Tambahkan ini di akhir perintah di atas <code>-p nomor_port</code></p>
</blockquote>
<h2 id="heading-bertindak-dengan-root-dengan-user-baru">Bertindak dengan Root dengan User Baru</h2>
<p>Jika user yang diberikan oleh penyedia hosting adalah root, maka paling baik untuk membuat user baru. Jika user dengan username tersebut bukan root maka silahkan skip langkah ini. </p>
<h3 id="heading-buat-user-baru-sebagai-pengganti-root">Buat User Baru Sebagai Pengganti Root</h3>
<p>Mengapa tidak menggunakan user dengan username root saja? Disamping adalah common practice, penggunaan root user adalah bahaya terkait keamanan. Meskipun sudah setup ssh key dan mengisi <em>passphrase</em> untuk menjaga keamanan. Penggunaan user dengan username root sebaiknya dihindari, mengapa? Mungkin nantinya kita lupa menginstall beberapa aplikasi di dalam komputer server kita, lalu menjalankan aplikasinya dalam mode root atau simplenya memberikan akses penuh aplikasi tersebut berjalan, kemungkinannya aplikasi tersebut akan mengeksploitasi sistem kita. Walaupun kasusnya jarang, tetap saja hal ini sama sekali tidak direkomendasikan.</p>
<p>Jalankan perintah di bawah di terminal anda untuk membuat user baru.</p>
<pre><code class="lang-bash">adduser user
</code></pre>
<blockquote>
<p>Ubah <code>user</code> dengan nama user sesuai preferensi anda.</p>
</blockquote>
<p>Selanjutnya memberikan akses user yang baru kita buat dengan akses root. Mengapa ini dibutuhkan? karena 
Untuk menggantikan root maka kita perlu membuat user yang juga bertindak atau memiliki akses sebagai root. Ini lebih baik dibanding secara eksplisit menggunakan root.</p>
<pre><code class="lang-bash">usermod -aG sudo user
</code></pre>
<blockquote>
<ol>
<li><code>usermod</code>: command untuk memodifikasi akun user.</li>
<li><code>-aG sudo</code>: Opsi untuk menambahkan akun user sekarang ke dalam group sudo.</li>
</ol>
</blockquote>
<h3 id="heading-sync-authorized-keys-dengan-user-baru">Sync Authorized Keys dengan User Baru</h3>
<p> Melakukan sync authorized key berfungsi agar hubungan ssh dari/ke komputer lokal kita yang sebelumnya menggunakan root juga bisa diakses melalui user yang baru.</p>
<pre><code class="lang-bash">rsync --archive --chown=user:user ~/.ssh /home/user
</code></pre>
<blockquote>
<ol>
<li><code>rsync</code>: command untuk sinkronisasi file/directory antara dua lokasi.</li>
<li><code>--archive</code>: opsi untuk menjalankan <code>rsync</code> dalam mode <em>archive</em>, mode ini akan memastikan metadata file/directory juga tersalin.</li>
<li><code>--chown=user:user</code>: Opsi untuk memastikan ownership dari folder/file yang akan kita saling adalah user yang didefinisikan (disini adalah <code>user</code>).  </li>
</ol>
</blockquote>
<h3 id="heading-login-kembali-dengan-user-baru">Login Kembali dengan User Baru</h3>
<p>Jalankan perintah di bawah untuk keluar.</p>
<pre><code class="lang-bash"><span class="hljs-built_in">exit</span>
</code></pre>
<p>Kemudian disini kita menggunakan file private key ssh yang sama seperti di awal. Perbedannya adalah nama user-nya saja. Jalankan perintah di bawah untuk login kembali dengan user yang definisikan di <a class="post-section-overview" href="#buat-user-baru-sebagai-pengganti-root">sini</a></p>
<pre><code class="lang-bash">ssh -i ~/.ssh/nama_file_private_key user@ip_address_server
</code></pre>
<h2 id="heading-buat-alias-ssh-optional">Buat alias SSH (Optional)</h2>
<p>Jika merasa menulis baris kode 
<code>ssh -i ~/.ssh/nama_file_private_key user@ip_address_server</code> terlalu panjang. Kita bisa membuat alias untuk menyingkatnya.</p>
<blockquote>
<p>Perhatian: Langkah-langkah di bawah dijalankan di komputer lokal/bukan di komputer server.</p>
</blockquote>
<p>Untuk membuat alias, kita buat dulu file <code>config</code> di dalam directory <code>.ssh</code> </p>
<pre><code class="lang-bash"><span class="hljs-built_in">cd</span> ~/.ssh
touch config
</code></pre>
<p>Kemudian buka text editor, lalu isi sesuai informasi server yang digunakan.</p>
<pre><code class="lang-bash">vim config
</code></pre>
<p>Kemudian ketik <code>i</code> untuk memulai memasukkan data, lalu isi seperti berikut. Jika telah selesai, ketik <code>Esc</code> lalu <code>:wq</code> untuk menyimpan perubahan.</p>
<pre><code>Host nama_alias 
    HostName ip_address_server/domain
    User user
    Port <span class="hljs-number">22</span>
    IdentityFile ~<span class="hljs-regexp">/.ssh/</span>nama_file_private_key
</code></pre><p>Setelah itu kita dapat login hanya dengan perintah berikut</p>
<pre><code class="lang-bash">ssh nama_alias
</code></pre>
<h2 id="heading-setup-firewall-optional">Setup Firewall (Optional)</h2>
<p>Setup firewall akan membuat kita kerja dua kali ketika <em>service</em> yang nanti akan kita gunakan meminta terhubung dengan koneksi luar. Tapi dengan kelebihan lebih aman dan kita tau apa saja <em>service</em> yang boleh dan yang tidak. Tapi saya biasanya skip bagian ini.</p>
<p>Untuk setup firewall ada beberapa <em>tool/service/program</em> yang bisa digunakan salah satunya adalah UFW. Pastikan tidak menggunakan <em>firewall service</em> lebih dari 1 jika tidak berpengalaman terkait ini.</p>
<p>Untuk melihat <em>profile</em> atau <em>service</em> apa saja yang tersedia untuk kita batasi dengan <em>firewall</em>. Jalankan perintah berikut.</p>
<pre><code class="lang-bash">sudo ufw app list
</code></pre>
<p>Untuk memastikan saat mengaktifkan <em>firewall</em>, koneksi SSH kita sekarang tidak terputus. Jalankan perintah berikut untuk mengijinkan SSH terlebih dahulu.</p>
<pre><code class="lang-bash">sudo ufw allow origin
</code></pre>
<p>Selanjutnya untuk mengaktifkan <em>firewall</em>, jalankan perintah berikut</p>
<pre><code class="lang-bash">sudo ufw <span class="hljs-built_in">enable</span>
</code></pre>
<p>Untuk melihat list <em>service/profile</em> yang dibatasi, jalankan perintah berikut</p>
<pre><code class="lang-bash">sudo ufw status
</code></pre>
<p>Silahkan <em>googling</em> untuk penggunaannya lebih lanjut.</p>
<h2 id="heading-update-packagesdependenies"><strong><em>Update Packages/Dependenies</em></strong></h2>
<pre><code class="lang-bash">sudo apt update
</code></pre>
<p>Disini kita bisa menggunakan <code>sudo</code> untuk memberikan suatu <em>command</em> berjalan dalam mode root, karena disini akan mengupdate <em>packages/dependencies</em> di linux kita, maka mode root dibutuhkan. <em>Command</em> ini akan meminta sistem memeriksa repositori dari paket yang terdaftar di sistem dan mengambil informasi terbaru tentang <em>package-package</em> yang tersedia. </p>
<h2 id="heading-upgrade-packagesdependenies-optional"><strong><em>Upgrade Packages/Dependenies</em></strong> (Optional)</h2>
<p>Bisa menjadi bahasan diskusi, apakah harus <em>upgrade packages/dependencies</em> di VPS? Jika mengikut dari pengalaman saya, maka saya akan melakukannya. Alasannya karena perintah <em>upgrade</em> ini akan meng-<em>upgrade</em> kernel linux Ubuntu itu sendiri, maka menurut saya ini penting dilakukan, disamping untuk memastikan <em>package-package</em> dalam kondisi <em>up to date</em>, ini juga membuat dari sisi keamanan dan kestabilan sistem yang digunakan juga terjaga. </p>
<p>Untuk meng-<em>upgrade</em> jalankan perintah berikut.</p>
<pre><code class="lang-bash">sudo apt upgrade
</code></pre>
<p>Atau sekaligus dengan <code>sudo apt update</code> dan <em>flag</em> <code>-y</code> untuk memaksa <em>upgrade</em> tanpa peringatan atau <em>prompt</em>.</p>
<pre><code class="lang-bash">sudo apt update &amp;&amp; sudo apt upgrade -y
</code></pre>
]]></content:encoded></item></channel></rss>