Sharing seputar Dunia Tkj dan Blogging ^^

Showing posts with label SysAdmin. Show all posts
Showing posts with label SysAdmin. Show all posts

Sunday, July 2, 2017

Cara Mudah Membatasi IP dengan Nginx


Salah satu upaya untuk penanganan masalah keamanan server adalah dengan membatasi IP tertentu mana saja yang boleh diakses dan IP mana saja yang tidak boleh.

Sebagai contoh misalnya kita mau membatasi siapa-siapa saja yang boleh mengakses phpMyadmin atau halaman administrasi dari suatu web yang terlah kita bangun.

Pada tulisan kali ini, penulis mencoba memberikan sedikit tips dan trik bagaimana membatasi IP tertentu dengan menggunakan Nginx di GNU/Linux.

Persiapan

Asumsi tulisan ini adalah Anda sudah memasang Nginx dan sudah menerapkannya pada server Anda. Jika belum, bisa mencari artikel terkait pemasangan Nginx di linuxku.com

Cara Pengunaan

Untuk menggunakannya kita hanya perlu merubah konfigurasi Nginx. Adapun untuk berkas konfigurasi Nginx, umumnya terletak pada:
/etc/nginx/nginx.conf
Atau jika Anda menggunakan server block pada GNU/Linux distribusi Debian, Ubuntu serta derivatifnya, ia terletak pada:
/etc/nginx/sites-availables/default
Di sini kita menggunakan dua metode yakni Blacklist dan Whitelist. Perbedaan antara keduanya adalah blacklist hanya memblokir IP terdaftar, sedangkan whitelist membuka dari IP terdaftar, dengan kata lain blok semua kecuali yang terdaftar.

Kedua metode tersebut bebas mau gunakan mana yang menurut Anda terbaik, yang jelas dalam tulisan ini penulis hanya memberikan sedikit contoh sederhana.

Metode Blacklist

server {
    ...
   location /admin {
      allow all;
      deny 10.0.0.0/8;
      deny 192.168.0.1;
      ...
   }
   ...
}

Metode Whitelist

server {
    ...
   location /admin {
      allow 10.0.0.0/8;
      allow 123.168.0.1;
      deny all;
      ...
   }
   ...
}
Langkah terakhir yakni kita restart Nginx nya dengan cara berikut:
$ sudo service nginx restart
Atau bagi Anda pengguna Systemd
$ sudo systemctl restart nginx

Saturday, March 18, 2017

Memasang Let's Encrypt dan Nginx di Ubuntu 16.04


Artikel sebelumnya sebetulnya di sini sudah pernah membahas cara pemasangan Let's Encrypt. Penulis menuliskan kembali karena ada perbedaan cara pemasangan Let's Encrypt tersebut khusus pada versi Ubuntu 16.04 LTS. Di versi tersebut Let's Encrypt telah masuk dalam repositori resmi Ubuntu. Sehingga kita tidak perlu lagi meng-clone atau pull dari GitHub Let's Encrypt pada saat pemasangannya.
Langsung saja kita mulai. Sebelum memulai pastikan Anda sudah memasang Nginx.
$ sudo apt-get update
$ sudo apt-get install nginx-full
Kemudian baru kita pasang Let's Encryptnya:
$ sudo apt-get install letsencrypt
Jika sudah semua terpasang. Langkah selanjutnya kita sunting pengaturan default Nginx atau virtualhost kita. Jika Anda menggunakan semacam server-block pada beberapa domain, Anda tinggal ganti saja sesuai virtualhost Anda tersebut. Pada contoh tulisan ini, kita gunakan penganturan default saja.
$ sudo nano /etc/nginx/sites-available/default
Lalu tambahkan:
location ~ /.well-known {
                allow all;
  }
Secara default, direktori Nginx terletak di /var/www/html. Ini artinya nanti pada saat meng-generated let's encrypt, ia akan menciptakan direktor .well-known di /var/www/html, menjadi /var/www/html/.well-known.

Jika sudah keluar dari nano, dan kita cek dahulu, apakah pengaturan yang kita sunting sudah benar atau belum, caranya:
$ sudo nginx -t 
Jika kita tidak menemukan kalimat galat (error), langsung saja kita restart Nginx-nya.
$ sudo systemctl restart nginx
Kemudian kita buat sertifikatnya:

$ sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d linuxku.com -d www.linuxku.com
Setelah itu Anda akan diminatai memasukan alamat surel (email).
Jika sudah tekan tombol TAB, dan OK. Sampai keluar konfirmasi seperti gambar di bawah ini:
Jika sudah selesai dan sukses, kita akan menerima pesan seperti gambar di bawah ini:
Untuk mengatifkan SSLnya kita perlu menambahkan kode berikut, di /etc/nginx/sites-available/default:
$ sudo nano /etc/nginx/sites-available/default 
listen 443 ssl;
ssl on;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;

ssl_certificate /etc/letsencrypt/live/linuxku.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/linuxku.com/privkey.pem;
Keluar dari nano, dan lakukan pengecekan Nginx kembali, untuk memastikan kode kita sudah valid atau belum.
$ sudo nginx -t 
Jika kita tidak menemukan kalimat galat (error), langsung saja kita restart Nginx-nya.
$ sudo systemctl restart nginx
Coba sekarang kita tes:

Selesai sekarang kita sudah dapat menggunakan HTTPS dengan sertifikat Let's Encrypt.

Semoga bermanfaat :D

Tuesday, December 6, 2016

Memasang Google Drive Cli di Server


Google drive adalah layanan cloudstorage milik Google, salah satu kelebihan google drive adalah kita diberikan layanan storage gratis berkapasitas 15 GB, juga google drive ini terintegrasi dengan layanan Google lainnya, seperti gmail.

Kita bisa gunakan google drive untuk mengunggah atau mengunduh berkas atau folder melalui browser. Adanya google drive client memberikan kemudahan kita dalam mensinkronisasi berkas yang berada dalam komputer kita ke server Google, tanpa harus melakukan pengunggahan, dan akan sangat berguna jika Anda ingin mengunggah banyak berkas atau berkas yang dalam jumlah besar.

Google drive client hadir diberbagai sistem operasi baik Windows, MacOS dan bahkan Android, terkecuali untuk GNU/Linux, Anda hanya bisa menggunakan alternatif yakni Insync.

Nah, bicara mengenai GNU/Linux yang tidak disediakan google drive client oleh Google. Kita akan menggunakankan alternatif lain, tidak menggunakan Insync, melainkan menggunakn Google drive CLI, bisa kita terapkan di server kita sebagai media backup.

Hadirnya tulisan ini, penulis akan membahas mengenai Google drive CLI yang mana telah penulis gunakan untuk membackup berkas penting dalam server, agar nantinya bisa disinkronisasikan ke komputer atau laptop penulis di rumah.

Langsung saja kita, mulai. Pertama-tama unduh terlebih dahulu Google Drive CLI Anda di:

https://github.com/prasmussen/gdrive

Pilih disesuaikan dengan arsitektur GNU/Linux mana yang Anda gunakan, jika Anda menggunakan 64bit unduh:

https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download

Jika 32bit unduh:

https://docs.google.com/uc?id=0B3X9GlR6EmbnLV92dHBpTkFhTEU&export=download

Perhatiaan dikarenakan tautan di atas bersumber dari google drive, kita tidak bisa memanfaatkan curl atau wget, Anda unduh manual di komputer Anda, lalu kemudian baru diunggah di server. Cara mengunggahnya, bisa gunakan scp saya mencontohkan menggunakn gdrive CLI 32bit:
$ scp gdrive-linux-386 akun@10.10.10.1:/home/akun
Atau gunakan artikel di bawah ini:
  1. http://www.linuxku.com/2016/09/cara-menyalin-berkas-di-server-tanpa.html
  2. http://www.linuxku.com/2016/05/menyalin-berkas-di-server-tanpa-root.html
Kemudian, Anda login server Anda dengan ssh. Jika Anda mengunggah menggunakan scp, lakukan perintah berikut:
$ sudo cp ~/gdrive-linux-386 /usr/bin/gdrive
$ sudo chmod +x /usr/bin/gdrive
Jika tidak, Anda bisa langsung unggah ke /usr/bin/gdrive, dan chmod +x.

Berikut ini daftar cara menggunakan gdrive CLI:

Untuk pertama kalinya, kita harus memberikan authorization akun kita ke gdrive CLI tersebut. Caranya Anda harus login dulu gmail Anda, kemudian ketik:
$ gdrive list
Lalu Anda akan diminati mengklik tautan untuk proses otorisasi akun, seperti gambar di bawah ini:
Kemduian klik allow:
Dan dapatkan kode verifkasinya:

Masukan kode verifikasi Anda:
Dan Anda akan melihat list dari gdrive Anda:
Jika sudah seperti gambar di atas artinya Anda telah sukses. Apa langkah selanjutnya?

Langkah selanjutnya adalah Anda bisa mengunduh berkas yang ada di google drive Anda, atau mengunggah atau singkronisasi. Anda bisa lihat caranya dengan mengetik: gdrive help.

Sampai di sini dulu, nantikan artikel selanjutnya pembahasan kita mengenai cara otomatis backup server ke google drive. Semoga bermanfaat :)

Thursday, December 1, 2016

Menginstall Hugo di Ubuntu 16.04



Minggu lalu kita telah membahas tentang salah satu staticgen yang cukup paling dikenal dan digunakan oleh para pemula staticgen yakni Jekyll. Sekarang kita akan membahas salah satu staticgen lainnya yang bernama Hugo.

Apa itu Hugo? Hugo adalah static site generator yang ditulis dengan bahasa Go (GoLang). Seperti halnya Jekyll, Hugo juga digunakan untuk pembuatan situs statis baik untuk personal web, portofolio, atau blog. Hugo diklaim lebih cepat dalam proses generatingnya dibandingkan dengan staticgen lainnya, dikarenakan Hugo ditulis dengan bahasa Go.
Tidak perlu banyak pembahasa tentang teori atau pengertian Hugo, Anda bisa membacanya sendiri dalam dokumentasi resminya, kita fokus ke pemasangan Hugonya saja.

Pertama-tama pastikan Anda sudah memasang Go, jika belum kita tidak akan bisa menggunakan Hugo.
$ curl -O https://storage.googleapis.com/golang/go1.7.3.linux-amd64.tar.gz
Kemudian kita ekstrak
$ tar xvzf go1.7.3.linux-amd64.tar.gz
Lalu kita pindahkan direktori go:
$ sudo mv go /usr/local
$ sudo chown -R root:root /usr/local/go
Kemudian kita set Path Go, agar dapat diakses secara langsung:
$ nano ~/.bashrc
Masukan skrip ini di akhir berkas:
export GOPATH=$HOME/go 
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
Jika sudah, jangan lupa buat direktori Go di /home.
$ mkdir ~/go
$ source ~/.bashrc
Dan sekarang baru kita pasang Hugonya:
$ go get -u -v github.com/spf13/hugo
Jika sudah selesai Anda berhasil memasang Hugo, sekarang kita akan coba buat situs sederhana menggunakan Hugo.

Pertama-tama buat situs Anda misalnya bernama linuxku:
$ hugo new site linuxku
Lalu kita buat postingan pertama.
$ cd linuxku
$ hugo new post/selamat-datang.md
Sebelum memulai secara default Hugo tidak menyertakan tema, jadi hanya web polosan tanpa adanya tema. Jika Anda ingin mencari tema silahkan klik tautan di bawah ini:

http://themes.gohugo.io/

Jika Anda menginginkan memasang semua tema, bisa lakukan perintah berikut:
$ git clone --depth 1 --recursive https://github.com/spf13/hugoThemes.git themes
Dalam contoh di tutorial ini, penulis mengambil tema bernama hugo-theme-bootstrap4-blog, berikut cara pemasangannya:
$ git clone https://github.com/alanorth/hugo-theme-bootstrap4-blog.git themes/hugo-theme-bootstrap4-blog
Lalu kemudian kita sunting config.toml:
$ nano config.toml
Anda isikan seperti berikut:
languageCode = "en-us"
title = "Linuxku - Seluruh Catatan Tentang GNU/Linux"
theme = "hugo-theme-bootstrap4-blog"
baseurl = "http://linuxku.com/"
Kemudian ubah draf menjadi false dari postingan:
$nano content/post/selamat-datang.md
draft = false 
Langkah terakhir, Anda bisa langsung menjalankan seperti berikut:
$ sudo hugo server --baseURL=http://linuxku.com/ --port=80 --appendPort=false --bind=192.168.2.10
Hasilnya seperti gambar di bawah ini:
Semoga bermanfaat :)

Saturday, November 26, 2016

Memasang Jekyll di Ubuntu 16.04

 
Jekyll adalah suatu static site generator yang simpel, yang mana dapat menghasilkan suatu situs atau blog personal. Ia ditulis dengan bahasa pemrograman Ruby. Sebagai dengan namanya static site atau situs statis, Jekyll tidaklah memerlukan database, baik untuk penanganan masalah mengaturan situs, tema, ataupun konten semua serba berkas dengan berbagai macam format. Untuk berkas konten, kita menulis dengan metode markdown, kemudian tema Jekyll menggunakan Liquid, dan pengaturan situs, ia menggunakan Yaml.

Pada tulisan kali ini, penulis akan memberikan tutorial tentang cara bagaimana memasang Jekyll di Ubuntu 16.04. Fokus tulisan ini hanyalah praktek bagaimana memasangnya. Penulis tidak menjelaskan secara menyeluruh atau mendetail apa itu Jekyll atau Static Site Generator. Anda bisa membacanya di Wikipedia.

Perlu diketahui bahwa tutorial ini kita memasang jekyll secara manual yakni menggunakan Ruby Packet Manager dengan nama gem. Mengapa menggunakan cara manual? Bukankan dari official repository ada? Penulis bermaksud agar kita menggunakan jekyll yang terbaru karena mengikuti gem, bukan mengikuti packet manager Ubuntu yakni apt-get.

Langsung saja kita mulai praktek, pertama-tama Anda login terlebih dahulu server Anda dengan SSH, lalu kita sinkronisasikan database agar paket yang tersedia dalam local cache, terbaharui oleh repository.
$ sudo apt update
Kemudian kita pasang Ruby:
$ sudo apt install ruby ruby-dev
Selanjutnya kita butuh dependensi untuk mengkompil, dengan demikian kita dapat menggunakan jekyll terbaru dari gem (manajer paket Ruby).
$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev autoconf libc6-dev ncurses-dev automake libtool
Lalu kemudian baru kita pasang jekyll tersebut melalui manejer paket Ruby yakni gem.
$ sudo gem install jekyll bundler
Jika proses pemasangan sudah selesai, langsung saja kita buat jekyll kita dengan cara:
$ jekyll new nama_blog_anda
Selesai Anda bisa langsung menjalankan jekyll tanpa harus memasang web server lagi.
$ cd blog
$ jekyll serve
Anda bisa langsung memanggilnya dari browser, disesuaikan dengan alamat yang diberikan jekyll tersebut:
Perhatikan! Secara default jekyll memberikan port lain seperti port 4000, jika Anda ingin menggunakan port 80 dan menggunakan domain Anda, bisa langsung gunakan perintah di bawah ini:
$ jekyll serve -H linuxku.com -P 80
Mudah bukan? Semoga bermanfaat :)

Tuesday, November 22, 2016

Install Memcached Menerapakannya di PHP7 + Nginx di Ubuntu 16.04


Tutorial kali ini kita akan membahas mengenai bagaimana cara memasang memcache yang kita terapkan pada PHP versi 7 tentu dengan php-fpm di web server Nginx di server berbasis Ubuntu 16.04.

Memcached memiliki tujuan tujuan penggunaan teknologi ini yakni untuk turbo meningkatkan kinerja situs Anda serta mengurangi beban server berat dengan menghindari request yang sering ke database. Memcached adalah proses yang me-listen secara default pada port 11211.

Tidak berpanjang lebar langsung saja kita praktek. Asumsi tulisan ini Anda susah memasang Nginx, PHP7 dan php-fpm serta Nginx sudah dapat mengeksekusi PHP7.

Sebelum memulai ada baiknya kita singkronisasikan terlebih dahulu database pada repository dalam sistem.
$ sudo apt-get update -y
Kemudian baru kita pasang memcached tersebut:
$ sudo apt install memcached php-memcached
Kemudian kita aktifkan memcached tersebut
$ sudo phpenmod memcached 
Jika sudah coba kita cek apakah Memcache sudah di load oleh PHP atau belum dengan cara:
$ php -i | grep memcache

Atau kita buatkan skrip php nya:
$ sudo nano /var/www/html/info.php
Lalu masukan skrip berikut:
<?php
phpinfo();

Kita tes dengan skrip PHP dengan nama misalnya tes.php. Langsung kita buat di:
$ sudo nano /var/www/html/tes.php
Dan isikan skrip seperti di bawah ini:
<?php
$mem = new Memcached();
$mem->addServer("127.0.0.1", 11211);
 
$result = $mem->get("blah");
 
if ($result) {
    echo $result;
} else {
    echo "Tidak ada key, coba Anda refresh browser Anda";
    $mem->set("blah", "Berhasil tersimpan di Memcached") or die("Tidak dapat menyimpan apapun di memcached...");
}

Jika berhasil ia akan menampilkan pesan berhasil. Mudah bukan? Semoga bermanfaat :)