Categories
Teknologi

Konfigurasi Website Dengan HTTPS Menggunakan Sertifikat SSL Gratis

Saya baru saja mengaktifkan HTTPS di beberapa website yang saya kelola, kemudian sesuai dengan judul artikel ini, semuanya saya dapatkan secara gratis dengan sedikit konfigurasi di nginx yang berjalan pada mesin Ubuntu 16.04. Kok baru sekarang? Iya, selain karena prokrastinasi juga karena ingin mengimplementasikan HTTP/2, dimana syarat menggunakan HTTP/2 adalah HTTPS.

Dulu, website yang menggunakan protokol HTTPS  masih terbatas pada website yang menangani transaksi sensitif, misalnya seperti Internet Banking atau E-Commerce. Hal ini wajar, karena pengguna (user) dari kedua website itu akan mengirimkan informasi sensitif yang berhubungan dengan keuangan, jadi perlu sesuatu yang akan mengamankan informasi di antara keduanya.

Tapi sebelumnya, saya mau coba untuk meluruskan sedikit salah kaprah mengenai protokol HTTPS. Saya sering mendapatkan pertanyaan mengenai kegunaan HTTPS yang dianggap akan mengamankan website dari serangan hacker, sehingga jika websitenya menggunakan HTTPS dijamin aman dari hacking. Jawaban saya: Benar, tapi kurang tepat.

Pertama, HTTPS pada website dapat aktif jika memiliki sertifikat SSL. Sertifikat ini akan menjamin bahwa semua transaksi dari pengguna menuju ke server dan sebaliknya akan aman dari penyadapan. SSL akan melakukan enkripsi data yang melewati jalur HTTPS dengan tingkatan tertentu, kemudian akan memberikan jaminan apabila datanya berhasil diintip oleh hacker, maka si pemilik website akan mendapatkan kompensasi yang nilainya cukup besar dari penjual SSL.

Kedua, HTTPS itu justru lebih mengamankan pengguna websitenya supaya merasa aman dan terlindungi ketika bertransaksi di website. Bagaimanapun juga website itu hanyalah sebuah program yang dibuat dengan bahasa pemrograman dan dijalankan pada mesin yang tersambung ke Internet. Semuanya dilakukan oleh mesin secara otomatis dan dibuat secanggih mungkin supaya dapat melayani manusia. Maka, perlu ditambahkan semacam penjamin bahwa siapapun yang bertransaksi dengan website itu, dijamin aman dan bisa dipercaya.

Jadi kesimpulannya, benar bahwa HTTPS merupakan salah satu metode untuk menghalau hacker, namun kurang tepat jika HTTPS akan menjamin websitenya tidak terkena serangan hacking, karena HTTPS dibuat bukan untuk melindungi website, melainkan untuk melindungi penggunanya.

Oke, bagaimana cara mengaktifkan HTTPS?

Yang jelas harus memiliki sertifikat SSL. Dahulu kala, sertifikat SSL hanya bisa didapatkan dengan cara membeli dan akan diperpanjang setiap tahunnya. Harganya bervariasi, tergantung jenis SSL yang akan dibeli dan tergantung tempat belinya juga. Penyedia sertifikat SSL ini cukup banyak di Internet dan menawarkan berbagai fitur dan harga. Saya pernah membeli Comodo SSL untuk salah satu klien saya, harganya termasuk murah jika dibandingkan dengan merk lainnya.

Selain bisa membeli di masing-masing penyedia sertifikat SSL, saya bisa juga membelinya di perusahaan hosting. Biasanya perusahaan hosting ini telah berafiliasi dengan penjual sertifikat SSL untuk bisa menawarkan ke membernya dengan harga spesial. Keuntungan lainnya, saya tidak perlu memikirkan cara instalasi karena semuanya sudah diurus oleh pihak hosting.

Bagaimana mendapatkan SSL gratis?

Tersebutlah Let’s Encrypt, sebuah organisasi nirlaba yang didukung oleh Internet Security Research Group (ISRG) untuk menyediakan sertifikat SSL secara gratis bagi orang yang ingin websitenya bisa menggunakan HTTPS. Cukup bermodal domain dan sedikit pengetahuan mengenai Linux saja.

Meskipun demikian hingga tulisan ini dibuat, Let’s Encrypt belum mendukung wildcard domain. Artinya, jika Anda memiliki domain utama dan subdomain, maka Anda harus membuat sertifikat SSL sejumlah domain yang akan diaktifkan.

Misalnya domain yogie.id saya ini punya subdomain lagi, seperti dosen.yogie.id dan engineer.yogie.id. Maka saya harus membuat 3 sertifikat SSL untuk domain utama dan 2 subdomain tadi. Tapi kabarnya, dalam waktu dekat Let’s Encrypt akan meluncurkan fitur wildcard domain, jika ini benar maka nanti saya cukup membuat 1 sertifikat SSL saja.

Bagaimana cara menerbitkan sertifikat SSL dari Let’s Encrypt?

Ini adalah bagian yang menarik, dulu saya pikir untuk mendapatkan sertifkat SSL bakalan ribet, ternyata tidak juga. Namun tutorial ini menyesuaikan dengan environment website saya ya, dimana saya menggunakan layanan cloud dengan sistem operasi Ubuntu 16.04, webserver nginx, dan php-fpm. Untuk Anda yang menggunakan layanan webhosting, saya belum mencobanya, tapi saya yakin banyak sekali tutorialnya di luar sana.

Pertama, pastikan website sudah beroperasional dengan baik di atas mesin Ubuntu 16.04 dan webserver nginx. Kemudian juga memiliki akses ssh yang dapat melakukan perintah “sudo” karena nanti kita akan menginstall beberapa paket di Ubuntu.

Selanjutnya, saya menginstall layanan Certbot di Ubuntu untuk penerbitan sertifikat SSL dari Let’s Encrypt. Certbot adalah program yang dirancang oleh Electronic Frontier Fondation (EFF) yang mempermudah proses integrasi sertifikat SSL dari Let’s Encrypt di layanan web server.

Setelah terinstall, saya cukup menjalankan Certbot dan mengikuti alur yang sudah tersedia. Oh iya, secara default Certbot akan menggunakan kunci 2048 bit untuk membuat sertifikat SSL. Saya meningkatkan kuncinya menjadi 4096 bit dengan alasan supaya lebih keren saja, tidak ada maksud apa-apa untuk pembuatan itu. Caranya juga mudah, cukup mengetikkan perintah berikut pada saat menjalankan Certbot.

sudo certbot --nginx --rsa-key-size 4096 -d yogie.id

Dalam waktu singkat, website yogie.id telah aktif HTTPS. Prosesnya hanya berlangsung beberapa detik saja dan sudah termasuk dengan redirect port dari 80 (http) ke 443 (https).

Pada artikel berikutnya, saya akan tuliskan bagaimana cara mengoptimasi settingan di atas, misalnya mengatur parameter Diffie-Hellman, auto-renewal pada sertifikat SSL, mengaktifkan HSTS dan HTTP/2.

Categories
Teknologi

Mengatasi Lama Pengiriman Menggunakan SMTP Gmail di DigitalOcean

Pada artikel sebelumnya, saya menulis cara mengkonfigurasi SMTP Gmail pada WordPress di DigitalOcean. Tapi ada satu isu, yaitu apabila saya menggunakan IPv4 di droplet DigitalOcean, semua konfigurasi dapat berjalan lancar. Namun bila saya mengaktifkan fitur IPv6 di droplet, maka WordPress membutuhkan waktu yang lama untuk mengirimkan email. Saya bisa menunggu hingga 5 menit hanya untuk menunggu sebuah email bisa terkirim ke suatu alamat.

Tentunya, ini cukup mengganggu.

Setelah mencari ke sejumlah tempat, akhirnya saya mendapatkan penjelasannya dari DigitalOcean. Rupanya secara default DigitalOcean akan memblokir akses ke SMTP server yang menggunakan IPv6. Apabila fitur IPv6 di droplet diaktifkan maka secara default droplet akan mengakses SMTP Gmail menggunakan alamat IPv6. Inilah yang dihindari oleh DigitalOcean.

Alasannya, cukup beralasan. Karena jika suatu saat ada satu IP milik DigitalOcean yang terkenal blacklist akibat aktivitas ilegal seperti spamming, maka efeknya akan menimpa ke satu segmen IP tersebut, dan tidak hanya ke satu IP saja. Maka demi kemaslahatan umat bersama, DigitalOcean mengijinkan untuk akses ke SMTP server hanya menggunakan IPv4.

Bagaimana solusinya? Tentunya menonaktifkan fitur IPv6 di droplet bukanlah sebuah solusi yang baik. Dari hasil pencarian, saya menemukan solusi dengan mengedit sebuah file di Ubuntu 16.04 yang saya gunakan, tepatnya di file /etc/gai.conf.

Silakan buka file /etc/gai.conf menggunakan akses sudo, kemudian cari skrip berikut

# precedence ::ffff:0:0/96  100

Anda cukup menghapus tanda # pada baris tersebut sehingga menjadi

precedence ::ffff:0:0/96  100

Perubahan di atas artinya meminta droplet untuk mengutamakan menggunakan IPv4 untuk terkoneksi ke suatu server, dan ini bertujuan supaya droplet mengakses SMTP Gmail menggunakan IPv4.

Langkah selanjutnya adalah tinggal melakukan restart pada droplet, dan seharusnya sekarang WordPress tidak memerlukan waktu yang lama lagi untuk mengirim email.

Categories
Teknologi

Membuat Radio Online Menggunakan Icecast2 Server, Shoutcast DSP, Flash Player

Membuat radio online itu mudah, tutorial sudah banyak tersedia di Internet, peralatan juga bisa diatur sesuai budget dari termurah hingga termahal semuanya bisa. Nah tutorial saya ini ceritanya akan membangun radio online menggunakan Icecast2 sebagai server streamingnya, kemudian Shoutcast DSP Plugins for Winamp sebagai streamernya, VPS dengan OS Ubuntu 10.04 sebagai servernya, dan JWPlayer sebagai player radio online supaya bisa ditampilkan di website/blog. Dalam kasus ini saya mau bikin radio online buat komunitas saya, Loenpia.Net

Kenapa harus pake VPS? Pake server pribadi kemudian ditancepin pake ip public khan bisa. Betul.. Saya pernah membuat server radio online dengan konsep begitu, memang murah karena hanya pake komputer spek rendah, saat itu pake Pentium 3, dikasih ip public dah bisa buat radio online.

Masalahnya adalah bandwidth yang harus saya sediakan. Karena membuat dedicated server sendiri, maka saya juga bertanggung jawab terhadap bandwidth. Streaming merupakan layanan yang boros bandwidth, dia akan mengirimkan data kepada client selama si client belum memutuskan koneksinya. Selain itu tipe bandwidth yang saya butuhkan adalah Upstream (bandwidth yang menangani hal upload), padahal kita tau kalo semua produk Internet di Indonesia hanya jualan bandwidth Downstream saja. Contohnya ya ada iklan bilang “Download up to 3,1 mbps” tapi apa pernah bilang berapa upload-nya? Bandwidth upload yang kita dapatkan sangat kecil dibanding download.

Maka dari itu saya memutuskan untuk menyewa VPS. Setelah nyari info di Kaskus, akhirnya pilihan saya jatuhkan ke Indonix yang menyediakan VPS dengan harga murah, cuma Rp. 59.000 / bulan untuk spesifikasi space 5GB, ram 256mb, dan bandwidth IIX unmetered. Sengaja saya pilih VPS yang IIX (berada di Indonesia) karena memang sasaran pendengarnya orang Indonesia juga. Walaupun letaknya di IIX, VPS ini bisa diakses dari luar negeri juga kok. Kemudian untuk OS pake Ubuntu yang sudah familiar, jadi ga perlu belajar lagi hehe..

Streaming Server

Setelah VPS aktif, hal yang saya lakukan adalah menginstall aplikasi Streaming Server. Ada 2 aplikasi yang terkenal dan sama-sama bagus, yaitu SHOUTcast dan Icecast2. Dalam project ini saya menggunakan Icecast2, alasannya simpel, karena VPS menggunakan Linux, kalo pakenya Windows pake Shoutcast aja. Sebenernya saya lebih suka menggunakan Shoutcast karena gampang install dan konfigurasinya, tapi ternyata pake Icecast2 juga gak susah. Paling hanya faktor Linux-nya aja.. Kalo belum familiar dengan linux memang agak susah, apalagi VPS khan tidak menyediakan GUI, kita akses menggunakan puTTY untuk mengkonfigurasi VPS, sehingga yang kita dapatkan hanya shell prompt. Tapi tenang aja, gak susah kok..

Oke sekarang kita mulai install Icecast2, saya akses VPS menggunakan PuTTY lalu login dengan akses root supaya bisa melakukan instalasi.

Install Icecast2 :

apt-get install icecast2

Perintah diatas akan menginstall aplikasi Icecast2 ke VPS. Selanjutnya Icecast2 harus dikonfigurasi supaya bisa berjalan dengan semestinya. Ada 2 file yang perlu kita edit, anda bisa menggunakan editor seperti nano, pico, atau vim. Saya menggunakan nano untuk mengedit.

File pertama :

nano /etc/icecast2/icecast.xml

Perintah diatas akan membuka file icecast.xml. Nanti Anda akan melihat banyak sekali baris kalimat, tapi tenang itu gak semuanya harus di konfigurasi. Berikut ini adalah konfigurasi file icecast.xml saya, Anda cukup menyesuaikan saja, sedangkan sisanya biarkan default.

<authentication>
 <!-- Sources log in with username 'source' -->
 <source-password>password</source-password>
 <!-- Relays log in username 'relay' -->
 <relay-password>password</relay-password>
 <!-- Admin logs in with the username given below -->
 <admin-user>admin</admin-user>
 <admin-password>password</admin-password>
 </authentication>

Konfigurasi diatas adalah untuk mengatur autentikasi server Icecast2. Anda cukup ganti tulisan “password” menjadi sesuka Anda. Password tersebut yang akan digunakan oleh Shoutcast DSP supaya bisa berkomunikasi dengan Icecast2.

<hostname>localhost</hostname>
<mount>
  <mount-name>/stream</mount-name>
</mount>

<shoutcast-mount>/stream</shoutcast-mount>
  <listen-socket>
    <port>8000</port>
  </listen-socket>
  <listen-socket>
    <port>8001</port>
    <shoutcast-compat>1</shoutcast-compat>
  </listen-socket>

Bisa dikatakan ini adalah bagian inti dari Icecast2 server, konfigurasi diatas mengatur mounting point, semacam suatu alamat yang digunakan untuk mendengarkan siaran radio kita. Pada konfigurasi diatas, mount-name yang digunakan adalah “/stream”, Anda bisa ganti menjadi apapun. Port yang digunakan adalah 8000, ini merupakan port standar untuk audio streaming, Anda bisa ganti ke port berapapun selama tidak bentrok dengan aplikasi yang ada di VPS. Biar aman sih pake port 8000 aja.

Anda melihat ada 2 settingan listen-socket khan? Nah settingan yang kedua itu adalah settingan supaya Icecast2 Server kita bisa menerima stream dari Shoutcast DSP. Sebagai informasi, defaultnya Icecast tidak menerima stream dari Shoutcast DSP, disarankan Anda menggunakan streamer seperti Edcast, SAM Broadcaster, dll. Ini dikarenakan Shoutcast DSP dirancang hanya untuk Shoutcast Server saja. Tapi dengan konfigurasi diatas, maka kita bisa menggunakan Shoutcast DSP yang diinstall pada Winamp untuk berkomunikasi dengan Icecast2 Server, yang tentunya gratisan dan hasil suaranya lebih bagus daripada Edcast.

Baiklah, untuk konfigurasi file icecast.xml hanya itu saja. Anda bisa simpan dan tutup file tersebut, kemudian kita lanjutkan untuk mengedit file kedua.

File kedua

nano /etc/default/icecast2

Perintah diatas akan membuka file icecast2. Di file ini Anda cukup mencari baris terakhir yang berisi

ENABLE=false

Anda cukup ganti tulisan “false” menjadi “true”, sehingga menjadi

ENABLE=true

Simpan dan tutup file tersebut. Maka server Icecast2 otomatis aktif jika VPS tiba-tiba restart.

Menjalankan Icecast2 Server

/etc/init.d/icecast2 start

Perintah diatas akan menjalankan server icecast2 yang baru saja kita konfigurasi, bila Anda melakukan konfigurasi diatas dengan benar seharusnya tidak ada pesan error dan Icecast2 Server sudah siap digunakan.

Untuk mengeceknya buka web browser kemudian ketikkan url http://alamat-ip:8000 di address bar. Seharusnya akan muncul tampilan berikut.

icecast2

 

Bila Anda melihat tampilan itu di browser Anda, maka selamat! Icecast2 Server telah sukses terinstall dan siap digunakan. Bagian selanjutnya adalah instalasi dan konfigurasi Shoutcast DSP untuk menyalurkan suara dari laptop ke Icecast2 Server.

Categories
Teknologi

Gran Paradiso on Linux Mint

Firefox 3- Gran Paradiso

Baru aja abis install Gran Paradiso di Linux Mint. Apa sih Gran Paradiso? Ini adalah code name dari Firefox 3 yang akan di launching beberapa bulan lagi. Dan kebetulan sekarang sudah keluar versi alpha-nya. Ini aku nyoba versi Alpha 8. Udah lumayan kok buat dicoba-coba.

Bagi pengguna Ubuntu, Gran Paradiso udah tersedia di server repository. Silakan unduh dan install. Mau pake apt-get install boleehh.. mau pake package manager juga bisa. Pesen saya, Firefox2 jangan di remove dulu, sapa tau ada error di Gran Paradiso, namanya juga masih alpha.

Kesan dan Pesan

Hmm…blom banyak perubahan yang terjadi disini, mungkin dari segi tampilan adalah jenis font yang digunakan. Di Linux Mint yang aku pakai ini, ternyata Gran Paradiso menggunakan font Serif, makanya kok tampilannya jadi beda.

Untuk fitur yang lain adalah ketika mengunjungi situs yang berjenis https. Di address bar akan menunjukkan alamat aslinya, kemudian diikuti alamat url https-nya. Contohnya adalah pas aku mau buka Gmail.

Firefox 3- Gran Paradiso

Trus hal yang paling mencolok adalah hilangnya tampilan pop-up “remember your password”. Sekarang option itu dipindah dibawah tab-tab. Jadinya nggak mengganggu tampilan. Selain itu, Gran Paradiso nggak nunggu respon kita untuk memilih. Jadi proses login akan tetap dilakukan meskipun kita belum memutuskan untuk “remember password” atau “never to this site”.

Firefox 3- Gran Paradiso

Selain itu masih ada fitur lain, yaitu “built in malware protection”. Dimana nanti user akan diperingatkan apabila nggak sengaja akan mengunjungi situs yang berpotensi jahat. Trus akan muncul tampilan ini.

Firefox 3- Gran Paradiso

Hmm.. segitu dulu deh.. Yang jelas sekarang ni aku mau nyoba-nyoba dulu.

Categories
Tulisan

Smile :)

 

Categories
Teknologi

Ngumpet Dengan SSH-Tunnel di Linux

Hmmm…. Bosen nyari anonymous Proxy? atau sebel ketika punya anonymous Proxy yang dimiliki telah kadaluarsa? kenapa ga coba make SSH-Tunnel aja? Sebenere dah lama pengen nulis artikel ini, tapi berhubung selama ini bisanya hanya di Windows, dan saya yakin kalo pengguna di Windows udah banyak yang tau, makanya saya nunggu untuk bisa make trik ini di Linux.

Tapi ternyataaa.. penggunaan teknik ngumpet ini udah lama digunakan oleh pengguna Linux, walah.. ternyata selain bodoh, saya ternyata juga kuper.. Huhuhuhu…. Ya udah, aku ikutan posting aja deh.. kali ajaaa.. dari sekian banyak pembaca blog saya yang nggilani ini ada yang belum tau…

Menurut Wikipedia, An SSH tunnel (sometimes referred to as a “Poor Man’s VPN”) is an encrypted network tunnel created through an ssh connection. Jadi kita bisa berselancar secara aman menggunakan teknik SSH-Tunnel ini.

Gimana caranya?

Ya mau nggak mau, kamu harus punya koneksi SSH ke suatu server. Disarankan sih Linux, soalnya itu yang biasanya ada SSH Servernya. Kamu bisa mendapatkan SSH Account secara legal ataupun illegal. Tergantung kemampuan dan kemauan aja deh.. Oh iya, meskipun kita udah punya SSH Account, belom tentu bisa melakukan SSH-Tunnel, jadi gud lak aja ya..

Berhubung judulnya ada kata Linux-nya, maka kali ini saya ngasih contoh untuk OS Linux ya.. Terima kasih buat Rafi, anda bisa liat sumber tulisan ini di blog itu. Saya menggunakan Ubuntu 6.10, hmm.. distro lain bisa deh..

Trus Gunakan Mozilla Firefox, bukan kenapa-kenapa sih.. soalnya di Ubuntu default browsernya Firefox. :p

Mulai…

Buka Terminal (Application –> Accessories –> Terminal)

kemudian ketik berikut ini :

ssh username@server -D port -C

Contohnya, saya kebetulan punya sebuah account hasil “dolanan nakal”. Lalu saya ketikkan begini :

ple-q@ple-q-desktop:~$ sudo ssh cyberdog@shell.*******.com -D 4569 -C

Trus masukkan password ssh account seperti biasa. Kalo udah bisa masuk ke dalam server, maka perjalanan kita sudah 50%.

Selanjutnya tinggal konfigurasi Firefox. Masuk ke bagian preference. Trus Advance –> Network –> Setting. Kosongkan semua field yang ada disitu. Trus dibagian field SOCK Host masukkan “127.0.0.1” dan “4569” dibagian port. Inget ya, kamu bebas masukin port-nya, disini aku ngasih contoh port 4569. Pokoknya antara port yang dimasukkan ketika melakukan koneksi ssh dengan port yang ada di browser harus sama.

Kalo udah, coba browsing atau masukkan url : http://www.cmyip.com

Kalo bisa tampil, dan menampilkan ip address yang berbeda dengan sebelumnya, maka kamu udah sukses melakukan SSH-Tunnel. Gimana? lebih simpel daripada nyari proxy khan? 🙂

Punyaku :

Apdet!! 3:40 PM

Ternyata bukti menunjukkan bahwa aku kuper semakin jelas. Kang Zam udah pernah nulis tentang beginian di blognya. Huwaa……

Artikel terkait :

http://blog.matriphe.com/index.php/2007/01/19/browsing-via-ssh-tunneling/
http://www.adhamsomantrie.com/v6/blog.php?page=65
http://blog.rafi.or.id/index.php/2006/10/28/browsing-aman-dengan-compressed-ssh-tunnel/