WordPress Auto-Backup via SSH

This script will enable you to backup your WordPress websites automatically. Just put it in a crontab / automatic scheduling software somewhere.

Also available on Pastebin : https://pastebin.com/nZ2fiL8j

Enjoy.

#!/bin/bash

# wordpress-auto-backup.sh

### THIS SCRIPT ASSUMES THE FOLLOWING
# 1/ You can do SSH password-less login to the server
# How : https://easyengine.io/tutorials/linux/passwordless-authentication-ssh/
# 2/ You have created a correct ~/.my.cnf file
# How : https://easyengine.io/tutorials/mysql/mycnf-preference/

### RUNTIME PARAMETERS
# wordpress-auto-backup.sh <server address> <home directory> <backup directory>

### HOW IT WORKS 
# 1/ SSH to server
# 2/ read wp-config file & get details
# 3/ create backup_dir/web
# 4/ rsync home_dir backup_dir/web 
# 5/ backup database to backup_dir/web/today.mysql
# 6/ compress backup_dir/web to backup_dir/backup_today.bz2 

### choose backup retention
# backup retention: weekly
today=`date +%A`
# backup retention: monthly
#today=`date +%d`

compressor1='gzip'
compressor2='pbzip2'

#============= START BACKUP =======================

# to help making this code more readable
server=$1
home_dir=$2
backup_dir=$3

# get the variables
ssh $server "cat $home_dir/wp-config.php" > /tmp/$server$today.txt

db_name=`cat /tmp/$server$today.txt | grep DB_NAME | cut -d"'" -f 4`

db_user=`cat /tmp/$server$today.txt | grep DB_USER | cut -d"'" -f 4`

db_pass=`cat /tmp/$server$today.txt | grep DB_PASSWORD | cut -d"'" -f 4`

db_host=`cat /tmp/$server$today.txt | grep DB_HOST | cut -d"'" -f 4`

table_prefix=''
table_prefix=`cat /tmp/$server$today.txt | grep table_prefix | cut -d"'" -f 2`

# debug
#echo $db_name $db_user $db_pass $db_host $table_prefix


# delete temporary file
rm /tmp/$server$today.txt

# backup database
ssh $server "mysqldump -h $db_host -u $db_user --password=\"$db_pass\" $db_name \$(mysql -h $db_host -u $db_user --password=\"$db_pass\" -D $db_name -Bse \"show tables like '$table_prefix%'\") > $home_dir/db-$today.mysql"

# compress database dump
ssh $server "$compressor1 $home_dir/db-$today.mysql"

# download everything 
mkdir $backup_dir/web/
rsync -avuz $server:$home_dir/* $backup_dir/web/

# make backup file
tar cvf $backup_dir/$server-$today.tar $backup_dir/web/

$compressor2 $backup_dir/$server-$today.tar &

# clean up
ssh $server "rm $home_dir/db-$today.mysql.gz"

# done !


Chuck Norris Facts – Science Version

:: Chuck Norris counted to infinity… Twice.

Chuck Norris knows the last digit of pi.

According to Einstein's theory of relativity, Chuck Norris can actually roundhouse kick you yesterday.

Chuck Norris roundhouse kicks don't really kill people. They wipe out their entire existence from the space-time continuum.

Human cloning is outlawed because if Chuck Norris were cloned, then it would be possible for a Chuck Norris roundhouse kick to meet another chuck Norris roundhouse kick. Physicists theorize that this contact would end the universe.

It is scientifically impossible for Chuck Norris to have had a mortal father. The most popular theory is that he went back in time and fathered himself.

Chuck Norris destroyed the periodic table, because Chuck Norris only recognizes the element of surprise.

It is believed dinosaurs are extinct due to a giant meteor. That's true if you want to call Chuck Norris a giant meteor.

There is no theory of evolution. Just a list of animals Chuck Norris allows to live.

Chuck Norris’ roundhouse kick is so powerful, it can be seen from outer space by the naked eye.

Chuck Norris has already been to Mars; that's why there are no signs of life there.

Scientists have estimated that the energy given off during the Big Bang is roughly equal to 1CNRhK (Chuck Norris Roundhouse Kick)

Chuck Norris can divide by zero.

Thousands of years ago Chuck Norris came across a bear. It was so terrified that it fled north into the arctic. It was also so terrified that all of its decendents now have white hair.

The First Law of Thermodynamics states that energy can neither be created nor destroyed… unless it meets Chuck Norris.

The chemical formula for the highly toxic cyanide ion is CN-. These are also Chuck Norris' initials. This is not a coincidence.

Aliens DO indeed exist. They just know better than to visit a planet that Chuck Norris is on.

We live in an expanding universe. All of it is trying to get away from Chuck Norris.

The Manhattan Project was not intended to create nuclear weapons, it was meant to recreate the destructive power in a Chuck Norris Roundhouse Kick. They didn't even come close.

Chuck Norris' pulse is measured on the richter scale.

Chuck Norris can sneeze with his eyes open.

Earth's emergency defence plan in case of alien invasion is Chuck Norris.

Chuck Norris can split the atom. With his bare hands.

Post imported by Google+Blog for WordPress.

HTI – Hizbut Tahrir Indonesia, Mengajak Untuk Memberontak

:: Di sebuah grup Whatsapp pernah ada kawan yang menyatakan bahwa HTI adalah kelompok pemberontak. Nampaknya ybs mendapat kesimpulan tsb antara lain dari artikel terlampir ini : http://web.archive.org/web/20140722222518/http://hizbut-tahrir.or.id/2014/07/21/hti-seru-militer-ambil-kekuasaan-untuk-tegakkan-khilafah/

Diserukan kepada para jenderal yang beragama Islam, untuk melakukan kudeta (mengambil kekuasaan) – dan lalu menyerahkannya pada HTI.

Dan kemudian ditebarkan janji-janji manis, bahwa Khilafah ala HTI akan menyelesaikan semua masalah yang sudah ada selama bertahun-tahun dengan mudah saja.

Bahkan dengan #sombong menyatakan, bahwa akan mengalahkan Israel hanya dalam waktu 1 hari.

Walaupun fakta sudah membuktikan, bahwa bahkan berbagai peperangan yang dilakukan oleh Rasulullah saw sekalipun kadang butuh waktu berhari-hari. Apa mereka mengira mereka ini lebih baik daripada utusan Allah ?

====
Sifat pemberontak seperti ini bertentangan dengan sangat banyak perintah Nabi saw, untuk taat kepada pemimpin.

Ini adalah antara lain sifat kaum Khawarij, seperti yang dipaparkan oleh imam Hasan al Bashri :


Seorang lelaki dari kaum khawarij mendatangi Hasan Al Bashri rahimahullah, si khawarij ini bertanya kepada beliau,

"Apa pendapatmu mengenai khawarij?"

Hasan Al Bashri menjawab,
"Mereka adalah para pencari dunia."

Lelaki itu berkata,
"Mengapa engkau berkata demikian, tidakkah kau tahu bahwa salah seorang di antara mereka itu rela berjalan (untuk memerangi penguasa yang tidak adil) dengan tombaknya hingga patah tombak tersebut, ia bahkan pergi meninggalkan keluarga dan anaknya."

Hasan Al Bashri berkata,
"Coba jawab pertanyaanku mengenai penguasa ini, adakah dia melarangmu untuk sholat, menunaikan zakat, haji dan umrah?"

Lelaki itu menjawab,
"Tidak."

Hasan Al Bashri kemudian menjawab,
"Aku melihat bahwa ia menahan dunia darimu, sehingga kau pun memeranginya karena menginginkan dunia tersebut."

البصائر و الدخائر لأبي حيان
١٥٦/١

Post imported by Google+Blog for WordPress.

I/O Load Monitoring

:: A few days ago a client of mine complained about slowdown on his website. I checked his server, and later noticed that the server seemed to be burdened with heavy I/O operations.

When checked with tools such as "top", the row showing "%wa" (meaning: I/O wait) was very high. Normally < 10%, it was ranging from 50% up to 98% instead.

This is a very alarming information. Because the server is using SSD disks 🙂 so its I/O (input/output) should be #really fast. Not bogged down like this.

I checked the daemons (server software) such as Apache, MySQL, Varnish, etc – and they were all idling. None were busy.

So the I/O load came from somewhere else. Probably from the hypervisor (physical server) itself. Which means it's a possible hardware problem.

Because the datacenter has concluded that it was not a "noisy neighbour" – another VM (virtual machine) in the same physical server that's hogging all the I/O resources. Pretty much all of them were idling, just like mine.

===
However I'll need some data to convince the datacenter to do hardware check on its SSD storage cluster. So I wrote this little bash script : http://pastebin.com/SxxuaVy4

The script logs server's I/O status into a CSV (Excel) format. So it can be very easily graphed later.

Using iostat tool, it probed the server's current I/O load.
Then the script is executed every minute, by running in as a cronjob.

You may notice that iostat is executed with "-d 1 3" parameter. Which means "run 3 times, with 1 second delay in between"

This is because iostat's first run always cause a spike in I/O load 🙂 so the numbers would be inaccurate. I noticed the numbers tend to stabilize after the 3rd run, so I set it up that way.

===
Of course, you can very easily modify this script to monitor something totally different 🙂 just change the iostat / head / tail / cut part to something else – voila.

===
Attached is a graph created from one of the log. The X axis is timestamp, in military format (24 hours)

I submitted the logs to the datacenter.

It convinced them to do checks on the storage cluster – and voila, they found some degraded disks in that cluster 🙂

===
Damaged disks replaced, storage cluster rebuilt – and everyone lives happily ever after ? 🙂 Fingers crossed. Happy ending !

Post imported by Google+Blog for WordPress.

Kita Bisa Lawan Hoax

:: Gambar terlampir ini memberikan harapan 🙂 bukti bahwa kita #bisa melawan hoax. Lingkaran di sebelah kiri menampilkan hanya 2 titik oranye, para aktivis anti hoax – namun, sudah cukup untuk nyaris melenyapkan titik ungu; yaitu berita hoax 😀

Ini adalah hasil penelitian Professor Filippo Menczer dan koleganya. Sangat relevan dengan situasi di Indonesia, yaitu dimana mayoritas hoax menyebar melalui komunitas-komunitas tertutup di BBM atau Whatsapp.

Tanpa aktivis anti hoax, maka akan terjadi lingkaran di sebelah kanan – virus hoax bebas merajalela.

Mari bersama-sama kita BISA melawan hoax. (y)

Sumber : http://theconversation.com/misinformation-on-social-media-can-technology-save-us-69264

Post imported by Google+Blog for WordPress.

Happy Ending

:: Di tahun 2013, dibahas tentang perburuan sebuah penyakit misterius, yang membunuhi anak-anak di India sejak 1995 🙁 setiap bulan Mei :O :O https://mobile.nytimes.com/2013/07/14/world/africa/as-mystery-illness-stalks-its-young-india-intensifies-search-for-a-killer.html Bagaimana mereka mati-matian bekerja keras untuk mengungkap sumber penyakit yang misterius ini.

Di tahun 2017, akhirnya muncul kabar gembira : mereka sudah berhasil menemukan penyebabnya 😀 yaitu, buah leci (lychee) :O :O :O

Siapa sangka ?? 🙂 ternyata buah leci bisa membunuh anak kecil 🙁

Ternyata ada 3 kondisi yang kebetulan muncul di setiap bulan Mei :

(1) Pohon leci berbuah, dan dimakan oleh anak-anak

(2) Anak-anak banyak yang kekurangan gizi : salah satu dampaknya adalah kadar gula darah yang rendah.

(3) Buah leci mengandung racun Hypoglycin & MCPG : keduanya membuat tubuh sulit mengubah glukosa/gula menjadi gula darah.

Poin 2 ditambah poin 3, membuat sebagian anak-anak yang memakan buah leci menjadi drop kadar gula darahnya sampai ke tingkat yang fatal 🙁

====
Masalah ini jadi kini bisa diatasi dengan mengajarkan 2 hal kepada para orang tua :

(1) Anak-anak harus mendapat asupan gizi yang cukup

(2) Batasi konsumsi buah leci oleh anak-anak

Alhamdulillah, kini jumlah kasus ini jadi drop dengan sangat signifikan 😀 <3

=====
Berkat metode investigasi yang ilmiah, bukan cuma berdasarkan perasaan, maka misteri yang sudah ada selama 20 tahun ini akhirnya jadi bisa dipecahkan dalam waktu sekitar 2 tahun.

Salut kepada para pahlawan yang telah menyelamatkan nyawa anak-anak ini 🙂 semoga kita bisa tiru teladan mereka (y)

https://mobile.nytimes.com/2017/01/31/world/asia/lychee-litchi-india-outbreak.html

Dangerous Fruit: Mystery of Deadly Outbreaks in India Is Solved – NYTimes.com

Post imported by Google+Blog for WordPress.

*Install old packages with Debian Snapshot *

:: snapshot.debian.org is a wayback machine that allows access to old packages based on dates and version numbers. It consists of all past and current packages the Debian archive provides. I found out about this service when a customer needed to use an older version of PHP, and I couldn't find a way to cleanly do this. Thanks to Debian Snapshot, it's now done & running.

I began by finding out the exact version of PHP and Apache packages that needs to be installed.

===
The client asked for PHP version 5.3, so I browsed to http://snapshot.debian.org/package/php5/

Found that the most up to date version is 5.3.10-2,
so I browsed to its folder : http://snapshot.debian.org/package/php5/5.3.10-2/

It shows date & time of 2012-02-21 04:16:01
so I added the following line to /etc/apt/sources.list :

—-
# PHP 5.3.10-2 packages
deb http://snapshot.debian.org/archive/debian/20120221T041601Z/ unstable main
—-

Note the date & time format on that line.

Now we need to install Apache version 2.22.2-1 – why this particular version?
Answer: because this is the version required by PHP 5.3.10-2 package; it will complain if any other version are installed. So yeah that's pretty easy to figure out 🙂

Using similar technique, I found out the line for Apache2 packages :

—-
# Apache 2.22.2-1 packages
deb http://snapshot.debian.org/archive/debian/20120202T040408Z/ unstable main
—-

Now let's do the installation process itself :

===========
# remove current PHP packages
sudo apt-get remove –purge `dpkg -l | grep php | grep -w 5.5 | awk '{print $2}' | xargs`
# remove current Apache packages
sudo apt-get remove –purge `dpkg -l | grep apache | grep -w 2 | awk '{print $2}' | xargs`

# update package database
apt-get update

# this is the setting required to be able to use Debian Snapshot
apt-get -o Acquire::Check-Valid-Until=false update

# now we can specify the exact version
apt-get install php5=5.3.10-2 libapache2-mod-php5=5.3.10-2 php5-cli=5.3.10-2 php5-common=5.3.10-2 php5-gd=5.3.10-2 php5-mcrypt=5.3.10-2 php5-mysql=5.3.10-2 php5-pgsql=5.3.10-2 apache2=2.2.22-1 apache2-mpm-prefork=2.2.22-1 apache2-suexec=2.2.22-1 apache2-utils=2.2.22-1 apache2.2-common=2.2.22-1 apache2.2-bin=2.2.22-1

/etc/init.d/apache2 restart
===========

If the commands does not work, maybe it's formatting problem – you can refer instead to my Pastebin here : http://pastebin.com/r2qBtbs4

Hope you find these useful (y)

Post imported by Google+Blog for WordPress.

Create a SSL certificate containing 100 domains

:: From time to time, I need to create SSL certificates for hundreds, or even thousands of subdomains. This is because Let's Encrypt does not support "Wildcard SSL certificate" yet 🙂

Needless to say, I hit their limits pretty quickly ! 😀 ha ha
https://letsencrypt.org/docs/rate-limits/

So I looked around, and thankfully found a solution : SAN (Subject Alternative Name) certificate.

Basically you can create a single SSL certificate, which contains 100 domains in it. Cool 🙂 another great feature from Let's Encrypt ! (y)

====
To make it easy for me (since I'm such a lazy sysadmin, LOL) I created a script to automate the creation of these SAN certificates :

http://pastebin.com/PBP7i8rN

Feel free to use it too. Hope you find it useful.

====
# !/bin/bash

# specify the location of Let's Encrypt tool
# and its parameters
certbot='/usr/bin/certbot –agree-tos –email my@email.com –apache –redirect –expand –renew-by-default -n '

# put the domain names in this file
vhost=( `cat "domain-list.txt" `)

# loop variables
ssl_exec="${certbot}"
n=1

#################### START ##########################

for t in "${vhost[@]}"
do

ssl_exec="${ssl_exec} -d $t "
let "n++"

# every 100th domain,
# create a SSL certificate for these 100 domains
# (SAN = Subject Alternative Name certificate)
if (( n == 100 )); then

$ssl_exec
# echo $ssl_exec

# reset the loop variables
ssl_exec="${certbot}"
n=1
fi

done

# create SSL certificate for the rest of the domains
$ssl_exec
# echo $ssl_exec

Post imported by Google+Blog for WordPress.

Lampu Anti Nyamuk : Heles

:: Selama beberapa minggu ini, saya membeli berbagai jenis lampu anti nyamuk & memasangnya di rumah saya. Merek HELES tipe yang cukup ringkas ini ternyata sukses membunuh sangat banyak nyamuk 🙂 nampak di foto terlampir.

Alat pembunuh nyamuk listrik seperti ini punya kelebihan yang #signifikan : bebas racun.

Anak-anak dan keluarga kita jadi selamat dari paparan racun anti nyamuk; apakah yang berbentuk aerosol, maupun obat bakar. Alat ini bersih & ramah lingkungan.

Dari pengalaman selama ini, nampaknya berikut ini adalah cara penggunaan yang benar :

(1) Hidupkan 24 jam : alat-alat ini cukup hemat listrik, kisaran 5-10 watt. Biarkan hidup terus, karena ada nyamuk yang aktif di pagi / siang hari juga.

(2) Taruh di tempat GELAP : perhatikan foto terlampir. Menaruh di tempat yang terang bisa membuat hasilnya turun drastis, bahkan tidak sama sekali.

(3) Taruh pada ketinggian yang tepat : jangan taruh di tempat yang terlalu tinggi. Perhatikan bagaimana di rumah Anda, setinggi apa biasanya nyamuk yang beterbangan.

(4) Taruh di tempat yang sering dilewati / nampak nyamuk di sekitarnya.

Dengan melakukan langkah-langkah itu, maka mudah-mudahan rumah Anda jadi bisa segera bebas dari nyamuk.

Alat ini bisa dibeli di Ace hardware, dan juga berbagai lapak online seperti Tokopedia :

https://www.tokopedia.com/sumberbaru-toko/heles-hl3107-super-mosquito-killer-lampu-anti-nyamuk-strum-ultraviolet

PERHATIAN : karena alat ini cepat membunuh banyak nyamuk, maka musti agak sering dibersihkan.

Nyamuk yang mati akan menempel di batang besi di dalamnya. Tadi pagi saya membuka alat ini, sudah #penuh semuanya menempel mayat nyamuk, sehingga tentu saja tidak bisa membunuh lagi.

Semoga bermanfaat.

Post imported by Google+Blog for WordPress.

AC Double Evaporator

:: Tadi siang datang teknisi Sharp untuk memeriksa AC di kamar saya yang sudah cukup lama tidak dingin. Padahal kami rajin melakukan "servis AC"

Ternyata, AC kami menggunakan "double evaporator" – ada 2 coil pendingin di satu AC ini. Nah, yang biasa dibersihkan selama ini ternyata hanya satu yang di depan – sedangkan yang kedua di belakangnya tidak pernah dibersihkan, ha ha 😀

Tinggal dibayangkan sendiri bagaimana kotornya evaporator yang kedua itu :O Cukup lama teknisi Sharp bekerja membereskannya.

Alhamdulillah, kini AC kami sudah dingin kembali (y) Terimakasih banyak Sharp atas customer service nya yang sangat baik.

Jadi silakan cek AC Anda jika tidak dingin lagi – apakah ternyata tipe double evaporator juga ? Jika ya, apakah selama ini teknisi AC hanya membersihkan salah satunya saja ? Mungkin Anda senasib juga dengan saya 🙂

Semoga bermanfaat.
.

Post imported by Google+Blog for WordPress.

Skripsi dengan rujukan online

:: Seorang kenalan saya posting di Facebook, bahwa kampus ybs melarang mahasiswa menggunakan rujukan online, dan skripsi yang merujuk ke materi di Internet akan dia coret.

Saya jadi teringat, bahwa di tahun 2000, saya jadi mahasiswa S2 pertama di Birmingham City University yang menggunakan berbagai blog sebagai sumber rujukannya :

http://kambing.ui.ac.id/bebas/v15/thesis/sufehmi/sufehmi-thesis-ncp.zip

Termasuk konsultasi dengan pembimbing saya, tentang bagaimana cara menggunakan Oxford citation style untuk rujukan elektronik / bukan buku atau hardcopy.

Beliau awalnya cukup kaget karena ada banyak rujukan saya yang bukan dari buku 🙂 melainkan dari berbagai situs blog.

Namun, setelah melihat bahwa isi di situs-situs rujukan itu sangat bagus, dan membahas berbagai topik baru (sehingga, belum ada bukunya) – maka beliau langsung setuju, dan tidak mempermasalahkannya sama sekali 😀

Terimakasih Dr. Michael Boyd, karena telah berkenan membantu saya menyelesaikan skripsi yang nyeleneh ini 🙂 bahkan setelah mengaku bahwa belum pernah menemukan skripsi seperti ini sebelumnya (y)
Terimakasih

Post imported by Google+Blog for WordPress.

Bone-conduction Wireless Bluetooth Headset

:: Sekitar tahun 2003, saya membeli headset Philips yang wireless 🙂 koneksinya via Infrared. Ya, jika kehilangan LoS (Line of Sight), suaranya langsung lenyap 😀 hahaha. Headsetnya juga cukup berat, teknologi baterai zaman dahulu, sehingga agak melelahkan untuk dipakai lama. Maka cukup kaget ketika saya menemukan headset ini, kecil ringan tahan lama dan wireless via Bluetooth 🙂 dan, tidak menutup kuping kita 😀 karena, menghantarkan suaranya melalui #tulang. Nah. Lho ?

Penasaran, langsung saya pesan dari situs AliExpress ini. Tiba dalam waktu sekitar 2 minggu, bebas pajak karena harganya dibawah $ 50 (y)
Langsung saya coba. Kesan yang saya dapatkan :

(1) Ringkas & praktis : bebas kabel 🙂 ringan, dan mudah sekali digunakan. Juga cukup nyaman.

(2) Baterainya tahan cukup lama 🙂 ditulis 6 jam, tapi saya pakai sepanjang hari, tetap terus hidup, sampai ketika saya charge malam hari sebelum tidur.

(3) Tombol-tombol yang ada (MFB (multi function button) dan volume) mudah dijangkau dan digunakan.

(4) Kuping tidak tertutup : jadinya tetap bisa mendengarkan situasi sekitar kita 🙂

(5) Suara cukup bagus (y)

(6) Microphone nya bagus ! 😀 ya, ada mic di headset ini, tidak kelihatan ya ? 😉 saya sudah berkali-kali test pakai untuk menelpon, lawan bicara saya sama sekali tidak tahu bahwa saya tidak bicara di handphone 😉 mantap sekali (y)

Poin 4 penting untuk beberapa kasus, seperti pengendara sepeda ? Bukan sekali dua kali saya menemukan yang menggunakan earphone, berbahaya sekali 🙁 satu indra mereka jadi tidak bisa ikut waspada memperhatikan potensi bahaya, meningkatkan resiko kecelakaan.

Poin 5, terus terang saja, jelas tidak bisa sebaik headphone / earphone, karena, suara di sekitar kita masih tetap bisa kita dengar 🙂
Jadi ada tradeoff disini, antara kebebasan kuping kita, dengan kualitas suara.

Namun saya cukup puas, kualitasnya lebih bagus daripada ekspektasi saya. Apalagi jika lingkungan sekitar kita cukup tenang.

Jika tertarik, silakan bisa langsung dibeli via situs AliExpress sbb : https://www.aliexpress.com/item/Bone-Conduction-Wireless-Bluetooth-Stereo-Headset-Sport-Bluetooth-Neck-strap-Earphone-Headphone-Handsfree-For-Running-SmartPhone/32721055367.html

Semoga bermanfaat.
.

Post imported by Google+Blog for WordPress.

Using Let's Encrypt SSL certificate with Pound

:: Let's Encrypt certificates have a particular advantage over its competitors – it can be #automatically renewed. When you manage a lot of servers, this can be a serious time-saving feature.

Pound is a very lightweight reverse-proxy software, which can also act as a SSL endpoint. Means that it will accept the encrypted (HTTPS) traffic, decrypt it, and then forward the result to the webserver at the backend. It's quite helpful to offload this from the webserver.

Here's how to do both (auto-renew Let's Encrypt SSL certificate on Pound), starting from a configuration snippet for /etc/pound/pound.cfg :

=========
ListenHTTPS
Address 0.0.0.0
Port 443
AddHeader ""X-Forwarded-Proto: https""
HeadRemove ""X-Forwarded-Proto""
HeadRemove ""X-Forwarded-For""

Cert "/etc/letsencrypt/live/mywebsite.com/mywebsite.pem"

### avoid poodle security attack
Disable SSLv3
Disable SSLv2

### hardening SSL with strong ciphers, disabling weak ones
Ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:-RC4:EECDH+aRSA+RC4:EECDH+RC4:EDH+aRSA+RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:RC4+SHA"

SSLAllowClientRenegotiation 0
SSLHonorCipherOrder 1

End
========

That config should be able to score (at least an) A from Qualys SSL Labs' website : https://www.ssllabs.com/ssltest/

Here's the script to do the auto-renewal, don't forget to set the cronjob so this is run twice every day on off-peak times :

=========
#!/bin/bash

# renew certificate
/root/tools/certbot/certbot-auto renew

# merge private key with certificate
# to make it readable by Pound

cp /etc/letsencrypt/live/mywebsite.com/privkey.pem /etc/letsencrypt/live/mywebsite.com/mywebsite.pem

cat /etc/letsencrypt/live/mywebsite.com/cert.pem >> /etc/letsencrypt/live/mywebsite.com/mywebsite.pem

# restart Pound
/etc/init.d/pound restart
=========

Have fun with these !

Credits:

(1) Eko Juniarto for suggesting to restart Pound after the renewal process.

(2) Fahri Reza for informing that Let's Encrypt advocates running auto-renewal not once – but twice a day. Eg: in case of an emergency, etc

Post imported by Google+Blog for WordPress.

Bulk Apache2 VHOST / Virtual Hosts Setup

:: Over the years I've created many script to assist me in my work, because I'm lazy a smart guy 🙂 one of those script is this little gem to create hundreds of virtual hosts (vhosts) in Apache2 very quickly.

Just follow these simple steps :

(1) Put the vhost names in a file called vhosts-list.txt, one vhost / domain at each line

(2) Make sure the content of vhost_docroot variable is correct.

(3) Make sure the content of vhost_template variable is correct.

And that's it 🙂 it can even setup the SSL certificates for them 🙂 just make sure the "certbot" line is unremarked.

Have fun !

http://pastebin.com/gkTeHPDN

[Bash] bulk-create-apache2-vhosts.sh ; revision: 20160704 – Pastebin.com

Post imported by Google+Blog for WordPress.

Toleransi Antar Umat

:: Walikota Jaksel baru-baru ini melarang kegiatan ibadah di sebuah ruko di Pasar Minggu, karena melanggar izin & ditolak oleh warga. Surat untuk GBKP (Gereja Batak Karo Protestan) Pasar Minggu tersebut dikirim juga ke Gubernur DKI, Ahok.

Penolakan warga terhadap rumah ibadah bisa terjadi. Karena warga juga punya hak, termasuk hak untuk hidup dengan nyaman, tidak mengalami keresahan.
Karena #toleransi itu 2 arah : harus dilakukan oleh kedua belah pihak, tidak bisa jika salah satunya tidak peduli.

Bahkan di negara maju sekalipun, warga sekitar berhak untuk menolak rumah ibadah, yang mengganggu kehidupan mereka. Seperti yang terjadi di sebuah #Masjid di Irlandia, tepatnya di Liffey road, Dublin – Inggris : http://www.thesundaytimes.co.uk/sto/news/world_news/article171926.ece

Karena mengganggu kehidupan mereka sehari-hari, maka masjid ini ditutup oleh Pemda disitu. Dan menurut saya itu sudah benar; memalukan sekali jika memang benar jamaah Masjid tersebut menyebabkan kesusahan bagi para tetangganya. Dan gagal menjalin #silaturahmi yang baik.

Di zaman rezim Ahok ini, GBKP Pasar Minggu tidak bisa menggunakan alasan bahwa ada masalah dengan aparat, mempersulit izin IMB rumah ibadah mereka. Laporan masalah dengan aparat kini bahkan bisa dilakukan via Smartphone (app Qlue), dan langsung ada tindakan dalam hitungan hari. Urusan berbagai surat izin juga kini selesai dalam hitungan hari, kadang jam.

Berarti memang ada masalah antara mereka dengan warga sekitar. Sebetulnya orang Indonesia itu bisa diajak bicara baik-baik, tinggal buat acara pertemuan, kesampingkan ego – dan lalu jadi pendengar yang baik.
Maka, mudah-mudahan jadi bisa mulai terjalin hubungan yang saling memahami satu dengan lainnya.

Kalau malah membangkang & terus melakukan hal-hal yang meresahkan, tentu saja tidak akan selesai masalahnya.

Toleransi itu perlu dilakukan oleh kedua belah pihak. Tidak bisa hanya dituntut terus menerus dari salah satunya.

Semoga bisa segera dilakukan solusi untuk masalah ini.

http://news.detik.com/berita/3311478/ini-surat-wali-kota-jaksel-larang-peribadatan-gbkp-pasar-minggu

Post imported by Google+Blog for WordPress.

Cloud & Keamanan Data

:: Pagi ini saya mendapatkan kisah sedih sebuah startup, yang kehilangan semua datanya di salah satu provider Cloud yang terkenal, yaitu Digital Ocean : http://istofani.com/wp/digital-ocean-sebuah-mimpi-buruk/ , dan kemudian solusinya adalah pindah ke provider Cloud lainnya. Namun, jika begini saja, maka ybs musti siap-siap untuk kehilangan datanya, lagi :O

Ini adalah akibat dari terlalu gembar-gembor tentang teknologi Cloud, sehingga, orang awam jadi salah paham 🙁
Pada mengira bahwa Cloud itu seperti semacam solusi super tanpa masalah sama sekali. Padahal, kadang justru masalahnya bisa lebih banyak lagi.

=====
KONSEP BACKUP DATA

Faktanya simpel : tidak ada perangkat komputer yang reliable 100%

Semua perangkat komputer itu pasti suatu hari akan rusak 🙂 Komputer itu cuma alat buatan manusia, dia bukan Tuhan yang Maha Kuasa 🙂

Karena ini adalah suatu kepastian, maka, kita musti siap untuk itu.
Failure to plan is planning to fail.

——
Konsep backup / pengamanan data itu mudah, walaupun pelaksanaannya memang tidak selalu demikian & cenderung membosankan 🙂 namun ya musti dilakukan jika ingin data kita aman :

(1) There's no such thing as "too many backup" : pernah ada sebuah institusi yang membackup datanya dengan 5 cara.

Suatu hari, servernya rusak. Maka mereka kemudian berusaha mengembalikan data mereka dari backup.

Ternyata, 4 buah backup mereka bermasalah :V karena berbagai sebab. Perusahaan ini diselamatkan oleh backup mereka yang nomor 5 🙂 (y)

(2) Check the backup : pastikan bahwa backup dari data Anda itu memang bisa digunakan untuk memulihkan data Anda 🙂 menilik kasus yang dibahas di poin 1 diatas, salah satu masalahnya adalah data backup ternyata disimpan di cartridge tape yang sebetulnya sudah rusak – cuma bisa ditulis, namun, tidak bisa dibaca :V tidak disangka sama sekali.

Kasus lainnya juga cukup mengenaskan, seperti backup otomatis yang terus berjalan setiap hari – namun sebetulnya tidak menyimpan apapun, karena ternyata lokasi penyimpanannya sudah penuh :V

Dan berbagai kasus lainnya – selalu periksa backup data Anda.

(3) Offsite backup : ada orang yang melakukan backup data di laptopnya ke #sdcard di laptop itu juga 🙂 dan lalu suatu hari laptop tersebut dicuri 🙁 habislah sudah.

Offsite backup, cadangan data di lokasi yang berbeda, itu bukan paranoid. Ini adalah kebutuhan, hal yang perlu dilakukan, jika Anda ingin memastikan keamanan data Anda.

Sama juga dengan perusahaan, jika server Anda ada di DigitalOcean, dan lalu Anda backup datanya di DigitalOcean juga – dan suatu hari DigitalOcean mengalami masalah 🙂 apakah kira-kira data Anda selamat ? 🙁 tentu saja tidak.

Pastikan bahwa backup data Anda sudah berada di lokasi yang berbeda dan aman.

========
Cloud bukan silver bullet, solusi seperti sihir yang serba bisa. Cloud itu adalah solusi untuk beberapa hal, namun, Anda tetap perlu memahami cara kerjanya. Jika ingin selamat selama penggunaannya.

Semoga bermanfaat.

========
BAHAN BACAAN :

http://www.hanselman.com/blog/TheComputerBackupRuleOfThree.aspx

The Computer Backup Rule of Three
I’m ALWAYS pounding people to backup. I will continue. BACKUP YOUR STUFF. If you care about it, back it up. Let’s talk. …

Post imported by Google+Blog for WordPress.

Sholat & Anak-anak Kita

:: Siang ini sholat Jum'at diramaikan oleh tangisan balita di belakang saya 🙂 terdengar dia menangis minta digendong oleh bapaknya. Namun, bapaknya terus sholat, sehingga tidak lama kemudian, tangisannya berubah menjadi #histeris :O haduh, kasihan sekali saya mendengarnya. Terus demikian, sampai akhirnya sholat Jumat pun selesai.

Alhamdulillah saya sih tidak pusing mendengar tangisan balita ini, namun, orang lain belum tentu. Dan tentu saja kasihan anak kecil yang belum paham, kenapa bapaknya tidak mengacuhkan dia ? Kenapa dia dibiarkan begitu saja…. :O

Padahal sebetulnya bergerak dalam sholat itu tidak apa dalam kondisi tertentu 🙂 Saat darurat, misalnya mendadak ada ular masuk; maka kita musti bunuh / amankan dulu – lalu lanjut lagi sholat (tanpa perlu mengulang dari awal). Dan termasuk yang dibolehkan bergerak dalam sholat itu adalah untuk mengurus anak 🙂 seperti menggendongnya.

Rasulullah saw itu terkenal sebagai lelaki yang amat penyayang, dan terlebih lagi pada anak-anak kecil.

Suatu hari pernah beliau sholat berjamaah di masjid, bersama cucunya juga; dan kemudian para sahabat kebingungan 🙂 karena salah satu sujudnya amat, sangat lama. Selesai sholat, mereka pun menanyakan tentang itu kepada beliau :

Rasulullah saw bersabda, "Bukan begitu… Hanya saja, cucuku ini naik ke atas punggungku. Dan aku tidak ingin menurunkannya dengan segera hingga dia merasa puas (bermain / berada di atas punggungku)" 😀 <3 (HR Ahmad, Nasai, dan Hakim)

Ya, Nabi Muhammad saw adalah idola & teladan saya dalam soal menyayangi anak-anak 🙂

Mudah-mudahan makin banyak para bapak (dan ibu) yang mengetahui tentang ini, sehingga tidak lagi cemas & khawatir untuk mengurus anaknya bahkan ketika sedang sholat 🙂 (y)

=====
Kejadian siang ini sekaligus adalah peringatan kepada para Imam, bahwa ketika memimpin sholat, dia musti ingat dengan jamaah nya juga dan berbagai kebutuhan mereka. Dan bukannya cuma asyik menikmati merdu suaranya sendiri. :v

Nabi Muhammad saw terkenal sebagai sosok yang ramah & penyabar, sangat jarang marah. Salah satu kejadian yang menyebabkan kemarahan beliau, dan marah besar pula, adalah hal ini ; Imam yang #zalim dalam memimpin sholat :

Abu Al Mas'ud Al Anshari meriwayatkan, bahwa seorang sahabat berkata: "Wahai Rasulullah, aku hampir tidak sanggup shalat yang dipimpin seseorang dengan bacaannya yang panjang."

Maka aku belum pernah melihat Nabi shallallahu 'alaihi wasallam memberi peringatan dengan lebih #marah dari yang disampaikannya hari itu seraya bersabda:

"Wahai manusia, kalian membuat orang lari menjauh. Maka barangsiapa shalat mengimami orang-orang, ringankanlah ! Karena diantara mereka ada orang sakit, orang lemah dan orang yang punya keperluan" (HR Bukhari)

Semoga kita semua bisa menjadi Imam / pemimpin yang baik, peduli & menyayangi jamaah / bawahan kita, amin.

=====
Rujukan :

Dari Abu Qatâdah al-Anshari Radhiyallahu anhu , ia berkata : saya melihat Rasûlullâh Shallallahu ‘alaihi wa sallam shalat mengimami para Sahabat sambil menggendong Umamah bin Abi al-Ash, anak Zaenab puteri Beliau Shallallahu ‘alaihi wa sallam, di atas bahunya, maka apabila ruku Beliau meletakkannya dan apabila selesai sujud Beliau menggendongnya kembali." (HR Bukhari & Muslim)

https://upload.wikimedia.org/wikipedia/commons/e/e4/Dark_vignette_Al-Masjid_AL-Nabawi_Door800x600x300.jpg

upload.wikimedia.org/wikipedia/commons/e/e4/Dark_vignette_Al-Masjid_AL-Nabawi_Door800x600x300.jpg

Post imported by Google+Blog for WordPress.