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 :)

Saturday, November 19, 2016

Install OpenCart di Nginx


OpenCart adalah aplikasi e-Commerce berbasis PHP dengan sistem CMS (content management system), yang mana ia cukup banyak digunakan untuk pembuatan situs pembelanjaan online.

Tulisan kali ini penulis akan memberikan cara tentang bagaimana pemasangan OpenCart di web server yang menggunakan Nginx. Kita akan belajar memasang OpenCart tersebut secara manual dengan bermodalkan CLI (command line interface) saja.
Langsung saja kita mulai praktek, Anda login server Anda via SSH. Pertama-tama kita pasang git terlebih dahulu.
$ sudo apt-get install git
Kemudian pastikan Anda sudah memasang paket php Curl dan Mcrypt, cara pemasangannya ada sebagai berikut:
$ sudo apt-get install php5-curl php5-mcrypt
$ sudo php5enmod mcrypt
$ sudo service php5-fpm restart
Jika Anda pengguna Ubuntu 16.04 ganti kata php5 dengan php7.0.
Kemudian kita buat directory di /srv/http/:
$ sudo mkdir -p /srv
$ sudo mkdir -p /srv/http
Lalu kita clone OpenCart dari GitHub:
$ cd /srv/http
$ sudo git clone https://github.com/opencart/opencart.git
$ cd opencart
Kemudian kita ubah ownernya pada directory upload:
Jika Anda pengguna Debian, Ubuntu dan derivatifnya:
$ sudo chown www-data:www-data -R upload
Jika Anda pengguna Centos, Fedora, RHEL dan derivatifnya:
$ sudo chown nginx:nginx -R upload
Kemudian kita buat virtualhost. Penulis menyarankan gunakan pemetaan virtualhost seperti Debian, Anda bisa mencontohnya pada artikel linuxku.com sebelumnya yakni:

http://www.linuxku.com/2016/05/menerapkan-virtualhost-untuk-keperluan.html

Kita buat virtualhost berikut:
$ sudo nano /etc/nginx/sites-available/opencart
Isi seperti skrip di bawah ini:
server {
 listen 80;

# Jika Anda ingin menggunakan https uncomment di bawah ini
# listen 443;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
#
# ssl_session_timeout 5m;
#
# ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
# ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
# ssl_prefer_server_ciphers on;
 
 root /srv/http/opencart/upload;
 index index.php index.html index.htm
 server_name opencart.local;

 location / {
          try_files $uri $uri/ /index.php?$args;
 }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_intercept_errors on;

        # Hilangkan tanda pagar di samping bagi Anda Pengguna Ubuntu 16.04
 # fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 # Bagi Anda pengguna Ubuntu 14.04
 fastcgi_pass unix:/var/run/php5-fpm.sock;
 
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

   location ~ /\.ht {
 deny all;
   }
}
Perhatian skrip di atas hanya khusus pengguna Ubuntu 14.04 atau 16.04 jika Anda ingin menggunakan skrip di atas untuk distro lainnya harap ubah pada bagian fastcgi disesuai dengan distro Anda.

Kemudian kita aktifkan virtualhostnya:
$ sudo ln -s /etc/nginx/sites-available/opencart /etc/nginx/sites-enabled/
Lalu kita restart Nginx:
$ sudo service nginx retart
Sekarang kita beranjak ke database, kita buat database beserta usernamenya.
$ mysql -u root -p'Password Anda'
Kemudian lakukan perintah seperti di bawah ini:
mysql> create database opencart_db;
mysql> create user opencart_db_user@localhost identified by 'Password Anda';
mysql> grant all privileges on opencart_db.* to opencart_db_user@localhost;
mysql> flush privileges;
mysql> \q
Lalu kemudian kita buat config opencartnya.
$ cd /srv/http/opencart/upload
$ sudo cp config-dist.php config.php
$ sudo cp admin/config-dist.php admin/config.php
$ sudo chown www-data:www-data -R *
Jika sudah langsung saja Anda akses, dicontoh tutorial ini penulis menggunakan domain opencart.local, jadi kita bisa langsung akses ke tautan http://opencart.local/

Pastikan pengaturan Anda sudah seperti gambar di bawah ini:
Langsung saja klik Continue, dan isikan username, password beserta database yang telah kita buat sebelumnya:

Kemudian kita buat username, password dan email untuk login.
Klik continue, dan OpenCart telah berhasil kita pasang.

Langkah terkahir yakni kita menghapus direktori install:
$ sudo rm -rf /srv/http/opencart/install
Selesai sudah OpenCart kini telah terpasang di server Anda, semoga bermanfaat :)

Tuesday, November 8, 2016

Menyembunyikan Versi Nginx dari Public


Memperbaharui suatu aplikasi adalah hal yang cukup penting demi mendapatkan fitur baru dan juga demi menambal kerentanan, bugs atau masalah pada versi sebelumnya. Akan tetapi memperbaharui aplikasi terkadang juga malah menimbulkan masalah baru, oleh karenanya terkadang kita juga tetap membiarkannya sampai benar-benar stabil.

Menjaga atau melindungi web server seperti Nginx adalah penting dilakukan, dan salah satu cara melindunginya yakni kita update secara berkala. Juga salah satu melindungi Nginx adalah menyembunyikan versinya ketika terjadi error dari suatu website, Nginx menampilkan versinya secara public. Hal ini perlu kita sembunyikan, mengapa? Karena dengan menampilkan versinya, hingga orang lebih mudah meretas kerentanan Nginx, tinggal liat versinya saja dan mencari tahu kelemahan dari versi tersebut.

Tutorial kali ini, penulis akan membahas tentang bagaimana cara menyembunyikan versi Nginx dari public. Perlu diketahui, tutorial ini dapat digunakan oleh distro manapun, akan tetapi penulis mempraktekan tutorial ini di Ubuntu Server 14.04.

Langsung saja kita mulai praktek, pertama-tama Anda login SSH Anda dan masuk kepengaturan Nginx.

Secara umum pengaturan Nginx seperti berikut:
$ nano /etc/nginx/nginx.conf
Jika Anda pengguna Ubuntu atau Debian gunakan nano sebagai editornya, jika Anda pengguna distro lain, gunakan vi atau vim.

Jika sudah langsung Anda cari kata " server_tokens " (tanpa petik dua), ubah menjadi " off " (tanpa petik dua).
server_tokens off; 
Lihat seperti gambar di bawah ini:
Jika sudah, langsung tutup nano atau vi atau vim Anda dan simpan. Lalu kita restart Nginx kita dengan cara berikut:
$ sudo service nginx restart
Khusus Anda pengguna Systemd
$ sudo systemctl restart nginx
Jika sudah langsung saja Anda tes dengan browser dan masukan direktori sembarang sampai Nginx error, maka hasilnya akan seperti gambar di bawah ini:

Mudah bukan? Semoga bermanfaat :)

Saturday, November 5, 2016

Install dan Konfigurasi Centos Web Panel (CWP)


Menggunakan Control Panel pada suatu server atau VPS dapat meringankan waktu Anda untuk memasangan software segala sesuatu yang dibutuhkan, untuk membangun suatu web hosting misalnya, webserver seperti Apache atau Nginx, mail server, DNS server, database server, FTP server dan lain sebagainya. Memasang seluruh software tersebut secara manual satu per-satu dapat menghabiskan banyak waktu dan juga memiliki peluang untuk gagal mengkonfigurasi. Oleh karena itu kita membutuhkan suatu control panel yang mana fungsi utamanya yakni "menghemat waktu".

Tulisan kali ini, penulis akan memperkenalkan suatu control panel yang free lagi open source dan powerful bernama Centos Web Panel atau disingkat dengan CWP. Apa itu CWP? CWP adalah suatu control panel yang powerful berbasis web yang free lagi open source, yang mana diciptakan didesain untuk newbie yang ingin membangun suatu web hosting dengan mudah, juga dengan CWP dapat mengambil alih atau mengatur seluruh kegunaan server dalam tampilan web, oleh kerenanya kita tidak perlu lagi mengatur server melalui SSH console.

Sesuai dengan namanya CWP hadir hanya untuk Centos saja. Juga CWP saat ini hadir hanya untuk pengguna Centos 5 dan 6. Bagi Anda pengguna Centos 7, ia masih tahap pengembangan.

Pada tutorial ini, penulis mencontohkan dengan menggunakan Centos 6.8 32bit, jika Anda pengguna Centos 6 dalam versi minor lainnya seperti versi 6.8 ke bawah atau pengguna 64bit, tutorial ini akan tetap dapat dipergunakan, karena memang CWP hanya butuh saat ini versi Centos 5 atau 6. Langsung saja kita mulai praktek memasangnya!

Pertama-tama pastikan repository server telah terupdate.
$ sudo yum update
Kemudian kita masuk ke direktori /usr/local/src dan unduh skrip instalasi CWP tersebut
$ cd /usr/local/src
$ sudo su
# wget http://centos-webpanel.com/cwp-latest
Setelah selesai kita mengunduh skrip CWP, langsung saja kita pasang CWP nya.
# sh cwp-latest
Maka proses installasi akan berjalan, ia akan memasang seluruhnya dari mulai webserver, database server dan lain sebagainya. Lihat gambar di bawah ini:
Tunggu sampai proses selesai, proses instalasi akan memakan waktu yang cukup lama dikarenakan CWP memasang seluruh kebutuhan web server. Jika sudah selesai, sekarang kita reboot seperti gambar di bawah ini. Sebelum reboot pastikan Anda sudah mencatat username dan password yang tertera, seperti gambar di bawah ini:
Langsung saja Anda buka dari browser Anda CWP tersebut:
Login dengan root dan password root Anda, hasilnya akan seperti gambar di bawah ini:
Jika ada beberapa pesan peringatan (Warning) seperti contoh gambar di atas, Anda bisa langsung klik tombol nya, ia akan otomatis terpasang.

Luar biasa bukan? Semoga bermanfaat. :)

Tuesday, November 1, 2016

Implementasi uWSGI dan Nginx Sebagai Server Python Apps di Ubuntu


Sebelumnya kita telah membahas tentang Nginx sebagai webserver yang menjalankan skrip PHP.

Pada tulisan kali ini kita akan membahas tentang bagaimana cara menjalankan skrip python di web server dengan menggunakan Nginx. Saya tidak membahas tentang teori, fokus pada tulisan ini hanyalah praktek.
Langsung saja kita mulai praktek. Pertama-tama kita pasang dahulu Python dan Nginx di Ubuntu.
$ sudo apt-get update
$ sudo apt-get install python-dev python-pip nginx
Lalu kita pasang virtualenv dengan pip.
$ sudo pip install virtualenv
$ sudo pip install uwsgi
Sebagai contoh kita buat direktori di /home dengan nama mypy:
$ mkdir ~/mypy/
$ cd ~/mypy
Kemudian kita buat virtualenv.
$ virtualenv myapp
Lalu buat skrip python sederhana
$ nano ~/mypy/wsgi.py
Dan isikan skrip python itu seperti di bawah ini:

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return ["<h1 style='color:blue'>Halo Linuxku.com!</h1>"]
Lalu coba kita jalankan:
$ uwsgi --socket 0.0.0.0:8080 --protocol=http -w wsgi
Jika sudah seperti gambar di bawah ini, berarti kita susah sukses memasang uWSGI.
Langkah selanjutnya kita buat uWSGI tersebut jalan di deamon. Berikut ini saya sediakan hanya skrip untuk Ubuntu 14.04 yang mana menggunakan Upstart.

Buat berkas myapp.ini
$ nano ~/mypy/myapp.ini
Lalu isikan seperti berikut:
[uwsgi]
module = wsgi:application

master = true
processes = 5

socket = myapp.sock
chmod-socket = 664
vacuum = true

die-on-term = true
Dan kita buat skrip untuk Upstart:
$ sudo nano /etc/init/myapp.conf 
Masukan skrip berikut:

description "uWSGI instance to serve myapp"

start on runlevel [2345]
stop on runlevel [!2345]

setuid ali
setgid www-data

script
    cd /home/ali/mypy
    . myapp/bin/activate
    uwsgi --ini myapp.ini
end script
Dan coba kita jalankan
$ sudo start myapp
Jika sudah seperti gambar di bawah ini:
Berati sudah sukses. Lalu kemudian coba kita implentasikan di Nginx:
$ sudo nano /etc/nginx/sites-available/default
Kemudian isikan seperti berikut:
server {
    listen 80;
    server_name server_domain_or_IP;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/home/ali/mypy/myapp.sock;
    }
}
Pastikan konfigurasi Nginx berjalan dengan sempurna, coba kita cek terlebih dahulu dengan:
$ sudo nginx -t
Jika sudah beres langsung saja kita restart Nginx
$ sudo service nginx retart
Sekarang Anda bisa langsung akses skrip python Anda di browser seperti gambar berikut:

Semoga bermanfaat :)

Tuesday, October 25, 2016

Memasang Htop untuk Monitoring Process pada Server

Mengetahui atau mengecek suatu proses apa saja yang berjalan pada sebuah server merupakan suatu kegiatan yang penting, guna untuk menjaga agar server tetap berjalan dengan segaimana mestinya. Atau untuk sekedar mengetahui proses apa yang menggagu hingga membebani server.

Tulisan-tulisan sebelumnya kita telah membahas beberapa aplikasi untuk memonitoring server, mulai dari memonitoring database sampai web server. Kebanyakan tulisan sebelumnya berupa GUI, oleh karena itu pada kesempatan kali ini penulis akan memberikan sedikit pengetahu mengenai bagaimana cara memontoring server via CLI.

Yakni kita gunakan htop. Apa itu htop? Htop adalah tool atau aplikasi interaktif yang berfungsi untuk monitoring proses sistem pada Linux. Tool ini bekerja dengan menampilkan daftar lengkap dari proses sistem yang sedang berjalan dan juga tentunya mudah untuk digunakan dalam menangani proses sistem yang berjalan seperti mematikan (kill) salah satu proses yang sedang berjalan. Bagi Anda pengguna GNU/Linux mungkin sudah cukup mengenal perintah top, yakni perintah bawaan dari GNU Core. Nah htop ini mirip seperti top akan tetapi lebih banyak memiliki fitur dibandingkan top.

Langsung saja untuk memasang htop cukup lakukan perintah di bawah ini:

Pengguna Ubuntu/Debian
$ sudo apt-get install htop
Pengguna Centos/Fedora/RHEL
-------------- Pengguna RHEL/CentOS 7 --------------
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# rpm -ihv rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

-------------- Pengguna RHEL/CentOS 6 --------------
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -ihv rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

-------------- Pengguna RHEL/CentOS 5 --------------
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm -ihv rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

-------------- Pengguna Fedora 21 ke bawah --------------
# yum install htop 

-------------- Pengguna Fedora 21 hingga ke atas --------------
# dnf install htop  
Jika sudah memasang htop, langsung saja Anda ketik htop, dan akan menampilkan seperti gambar di bawah ini:
Anda bisa melihat sendiri penggunaanya sangat mudah bukan? Anda cukup menekan tombol F1 sampai dengan F10 disesuaikan dengan perintah. Contoh jika Anda ingin menutup suatu aplikasi yang menurut Anda berat, langsung saja tekan tombol F9 lalu Enter, dan aplikasi tersebut akan tertutup secara paksa (kill).

Saturday, October 15, 2016

Memblokir Semua Port Kecuali Port Tertentu dengan iptables

  
Salah satu cara mengamankan suatu server adalah dengan menutup seluruh port baik yang masuk ataupun yang keluar, lalu membuka beberapa port yang dianggap penting seperti port SSH, http/https, dan lain sebagainya.

Tulisan kali ini, kita akan membahas tentang bagaimana cara memblokir seluruh port, kecuali port tertentu yang dibuka dengan memanfaatkan iptables.

Seperti yang telah kita ketahui bahwa iptables merupakan aplikasi standard untuk penanganan firewall di GNU/Linux. Oleh karena itu, tulisan ini berarti dapat Anda implementasikan di seluruh distro GNU/Linux.
Tulisan sebenarnya hanyalah pengembangan dari tulisan sebelumnya yakni:
http://www.linuxku.com/2012/09/membatasi-akses-port-port-tertentu.html

Pertama-tama kita harus selalu flush terlebih dahulu, untuk memastikan semua sudah terdefinisikan atau belum:
# iptables -F
Kemudian pastikan loopback tidak terblokir:
# iptables -A INPUT -i lo -p all -j ACCEPT
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Kemudian baru kita buat rules bahwa port tertentu saja yang boleh. Contoh di sini penulis membuka 3 port, yakni 22 untuk SSH, 80 untuk httpp, dan 443 untuk https.
# iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Langkah terakhir
# iptables -A INPUT -j DROP
Mudah bukan? Jika Anda masih merasa kesulitan, saya sarankan gunakan UFW saja. Anda bisa membaca tulisan mengenai UFW pada postingan sebelumnya.

Semoga bermanfaat.

Thursday, October 13, 2016

Memasang Composer di GNU/Linux



Composer adalah sebuah aplikasi untuk mengatur keperluan dependensi di PHP, dengan ini mempermudah kita menambahkan, menguduh, mengimpor PHP library ke project yang kita buat. Cara kerja Composer mirip seperti apt-get (Ubuntu), yum (Fedora), pacman (Archlinux), dan lain sebagainya.

Tutorial kali ini, penulis akan berbagi tulisan mengenai cara pemasangan Composer dengan cara manual. Pada dasarnya dibeberapa distro Composer telah disediakan dalam offcial repository. Nah tutorial kali ini, penulis memberikan sedit tips trick cara memasang Composer yang berlaku disemua distro GNU/Linux.


Langsung saja kita praktek. Sebelumnya pastikan Anda telah memasang:
  1. Memasang Curl.
  2. Memasang PHP CLI.
Jika kedua kriteria di atas sudah ada langsung saja Anda lakukan perintah di bawah ini:
$ curl -sS https://getcomposer.org/installer -o composer-setup.php
$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Jika sudah selesai, coba Anda eksekusi
$ composer


Jika sudah tampil seperti gambar di atas, artinya Anda sudah sukses.
Apa langkah selanjutnya? Coba buat misalnya proyek PHP menggunakan PHP Framework laravel:
$ composer create-project --prefer-dist laravel/laravel test
Semoga bermanfaat. :)