Sunday 31 December 2023

PostgreSQL : Membuat Server Database PostgreSQL pada Ubuntu Server 22.04 [Quick Start]

PostgreSQL : Membuat Server Database PostgreSQL pada Ubuntu Server 22.04 [Quick Start]

RDBMS atau sistem manajemen basis data relasional adalah jenis sistem basis data yang menyimpan dan mengelola data dalam bentuk tabel yang terhubung satu sama lain melalui kunci utama dan kunci asing.

PostgreSQL, sering disebut sebagai "Postgres," adalah sistem manajemen basis data relasional (RDBMS) yang sangat populer dan banyak digunakan dalam berbagai sistem pada saat ini. PostgreSQL adalah proyek open-source, yang berarti sumber kode-nya dapat diakses oleh siapa saja. Hal ini memberikan fleksibilitas bagi pengguna untuk mengonfigurasi dan mengadaptasikan sistem sesuai kebutuhan mereka tanpa biaya lisensi.

Tutorial ini akan menjelaskan BAGAIMANA CEPATnya kita bisa membuat server database pada Ubuntu Server 22.04 menggunakan PostgreSQL dari proses instalasi, konfigurasi dasar seperti menambahkan user baru dan database, dan juga praktik terbaik untuk backup dan restore database.

Untuk mengikuti tutorial ini, kamu membutuhkan server Ubuntu yang sudah dilakukan konfigurasi dasar dengan mengikuti Konfigurasi Dasar pada Ubuntu Server.
Baca juga :

Konfigurasi Dasar Pada Ubuntu Server 20.04 

1. Instalasi PostgreSQL

Untuk menginstal PostgreSQL, pertama-tama kita lakukan update package lokal server menggunakan perintah :

sudo apt update

Kemudian, kita install postgresql menggunakan package -contrib yang akan menambahkan beberapa utilitas dan fungsi tambahan menggunakan perintah :

sudo apt install postgresql postgresql-contrib

Setelah proses instalasi selesai, kita periksa apakah service postgresql sudah berjalan. Kita bisa cek menggunakan perintah :

sudo systemctl status postgresql

Output :
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2023-12-30 15:21:00 UTC; 23s ago
   Main PID: 3881 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4680)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

Dec 30 15:21:00 databasesaurus systemd[1]: Starting PostgreSQL RDBMS...
Dec 30 15:21:00 databasesaurus systemd[1]: Finished PostgreSQL RDBMS.


2. Setup Default User postgres

Proses instalasi PostgreSQL akan secara otomatis membuat user bernama postgres yang terkait dengan role default Postgres. Ada beberapa cara untuk menggunakan user ini untuk mengakses PostgreSQL. Salah satu caranya adalah dengan menggunakan perintah sudo -i -u, sebelumnya kita perlu menambahkan user postgres kedalam sudoers group, caranya dengan menggunakan perintah :

sudo visudo

Kemudian input konfigurasi seperti dibawah ini :

postgres ALL:(ALL) NOPASSWD: ALL

Setelah selesai, tekan CTRL + X dan ketikan Y untuk menyimpan konfigurasinya.

Selanjutnya kita bisa masuk sebagai user postgres menggunakan perintah :

sudo -i -u postgres

Untuk mengakses terminal query postgresql, kita bisa ketikan perintah :

psql

Selanjutnya kita bisa melakukan pergantian password untuk user postgres di database menggunakan query ALTER ;

ALTER USER postgres WITH PASSWORD '12345';

Pada tahap ini, kalian bisa menambahkan user baru sesuai kebutuhan kalian menggunakan perintah ;

sudo createuser --interactive

Output :
Enter name of role to add: arief
Shall the new role be a superuser? (y/n) y


3. Membuat Database

Disini kita akan membuat database dengan nama dvd, untuk membuat database kita bisa menggunakan 2 cara yaitu lewat terminal server dan lewat terminal query ;

Untuk membuat database lewat terminal server, ketikan perintah ;

createdb dvd

Kemudian untuk membuat database lewat terminal query, kalian bisa menggunakan query CREATE DATABASE ;

CREATE DATABASE dvd;


4. Import Database dari File External

Bayangkan kita ada di suatu kondisi dimana, kita perlu melakukan setup database server untuk keperluan development sebuah aplikasi dan memerlukan database dummy untuk digunakan. Sekarang ini kita bisa mendapatkan database dummy dengan mudah, salah satunya adalah pada website postgresqltutorial, kalian bisa mendownload file database dummy yang digunakan pada tutorial ini pada websitenya.

Setelah didownload, kita perlu mengupload file archive .tar kedalam server, kalian bisa menggunakan software sftp untuk mengupload file archive tadi ke server.

Setelah filenya diupload ke server, kita perlu memindahkan file dummy tadi kedalam home directory postgres yang ada di /var/lib/postgresql. Untuk melakukannya kita bisa menggunakan perintah ;

sudo mv dvdrental.tar /var/lib/postgresql/

Pastikan bahwa file dummy sudah pindah ke home directory postgres ;

ls

Output :
12  dvdrental.tar

Selanjutnya kita ubah ownership file dummynya ke user postgres ;

sudo chown postgres:postgres dvdrental.tar

Kita pastikan bahwa ownershipnya sudah berubah ;

ls -lh

Output :
total 2.8M
drwxr-xr-x 3 postgres postgres 4.0K Dec 30 15:21 12
-rw-rw-r-- 1 postgres postgres 2.8M May 12  2019 dvdrental.tar

Disini kita akan mengimport database dari file archive .tar kedalam database dvd yang sudah kita buat tadi. Untuk melakukannya kita bisa menggunakan perintah :

pg_restore -h localhost -U postgres -d dvd -v dvdrental.tar

Fungsi pg_restore akan melakukan koneksi ke database untuk proses import ini, kita akan diminta untuk menginput password untuk user postgres yang sudah kita ubah tadi menggunakan query ALTER.

Output :
pg_restore: connecting to database for restore
Password:

Setelah proses import database selesai, kita bisa memeriksa apakah proses import berhasil dengan masuk ke terminal query dan masuk ke database dvd menggunakan query :

\c dvd

Output :
You are now connected to database "dvd" as user "postgres".

Selanjutnya kita bisa periksa table dari database dvd menggunakan query :

\dt

Output :
             List of relations
 Schema |     Name      | Type  |  Owner
--------+---------------+-------+----------
 public | actor         | table | postgres
 public | address       | table | postgres
 public | category      | table | postgres
 public | city          | table | postgres
 public | country       | table | postgres
 public | customer      | table | postgres
 public | film          | table | postgres
 public | film_actor    | table | postgres
 public | film_category | table | postgres
 public | inventory     | table | postgres
 public | language      | table | postgres
 public | payment       | table | postgres
 public | rental        | table | postgres
 public | staff         | table | postgres
 public | store         | table | postgres
(15 rows)


5. Backup pg_dump dan Restore pg_restore

Dalam proses belajar posgtresql, rasanya kurang jika tidak membahas tentang 2 fungsi penting ini yaitu pg_dump dan pg_restore.

pg_dump digunakan untuk membuat cadangan (dump) dari satu atau beberapa basis data PostgreSQL.
pg_restore digunakan untuk mengembalikan (restore) basis data PostgreSQL dari cadangan yang dibuat dengan pg_dump.
Disini kita akan melakukan backup dari database dvd menggunakan fungsi pg_dump, adapun perintah yang digunakan adalah :

pg_dump -h localhost -U postgres -F c -f db.dump dvd

Perintah pg_dump diatas akan menghasilkan file backup bernama db.dump

Selanjutnya kita akan melakukan restore database menggunakan file db.dump. Sebelumnya kita perlu membuat 1 database baru lagi, disini kita membuat database dengan nama dvd_restore menggunakan query :

CREATE DATABASE dvd_restore;

Kemudian kita bisa lakukan restore database dari file db.dump menggunakan perintah :

pg_restore -h localhost -U postgres -d dvd_restore -v db.dump

Setelah proses restore selesai, kita bisa periksa apakah prosesnya berhasil dengan masuk ke terminal query dan melihat table dari database dvd_restore.

\c dvd_restore

Setelah terkoneksi dengan database dvd_restore, kita bisa cek table-tablenya.

\dt

Output :
             List of relations
 Schema |     Name      | Type  |  Owner
--------+---------------+-------+----------
 public | actor         | table | postgres
 public | address       | table | postgres
 public | category      | table | postgres
 public | city          | table | postgres
 public | country       | table | postgres
 public | customer      | table | postgres
 public | film          | table | postgres
 public | film_actor    | table | postgres
 public | film_category | table | postgres
 public | inventory     | table | postgres
 public | language      | table | postgres
 public | payment       | table | postgres
 public | rental        | table | postgres
 public | staff         | table | postgres
 public | store         | table | postgres
(15 rows)


Kesimpulan :

Sekarang kamu berhasil membuat sebuah server database postgresql menggunakan Ubuntu Server 22.04.

Saturday 11 June 2022

Konfigurasi LEMP Stack pada Server CentOS 7

lemp stack centos thumbnail

Pada tutorial ini kita akan membahas tentang konfigurasi LEMP Stack pada Server CentOS 7.

LEMP Server, singkatan dari Linux, Nginx, MySQL, PHP/Perl/Python, adalah setup yang sangat populer untuk Server CentOS 7. Dengan menggunakan beberapa aplikasi tambahan, CentOS dapat menjadi server sistem yang cukup andal. MySQL digunakan sebagai database dengan tambahan phpMyAdmin untuk sistem pengelolaannya, lalu Nginx digunakan sebagai server web itu sendiri dan PHP/Perl/Phyton digunakan untuk memproses konten yang dinamis.

Thursday 2 June 2022

Konfigurasi Dasar pada Server CentOS 7

basic konfig centos thumbnail

Pada tutorial ini kita akan membahas tentang konfigurasi dasar pada server CentOS 7.

Ketika pertama kali mengoperasikan server CentOS 7, kita diharuskan untuk melakukan konfigurasi dasar pada server kita. Tujuannya agar server kita menjadi lebih aman dan memudahkan kita dalam pengelolaan server. Ada 4 konfigurasi dasar yang menurut kami harus dilakukan pada server CentOS 7 ini, diantaranya adalah :
  1. Update Sistem
  2. Create New User
  3. Enable EPEL Repository
  4. Install UFW Firewall
  5. Setting SSH Key

Tuesday 10 May 2022

Konfigurasi Apache Mod_Rewrite pada Ubuntu Server 20.04

module-rewrite-thumbnail

Pada tutorial ini kita akan membahas tentang konfigurasi modul Rewrite pada service Apache Ubuntu Server 20.04

Modul Rewrite adalah sebuah modul pada service Apache yang berfungsi untuk memanipulasi sebuah URL pada webserver. Sederhananya, modul Rewrite ini akan menyesuaikan url pada sebuah website, agar url yang digunakan terlihat rapi, bersih dan SEO friendly.
Secara default, Apache tidak secara otomatis mengaktifkan modul ini, jadi disini kita akan melakukan beberapa konfigurasi agar modul rewrite ini bisa kita gunakan.
Implementasi dari modul rewrite ini akan berbentuk file .htaccess yang biasanya ada didalam folder sebuah website. File .htaccess sendiri akan berisikan script rule sederhana yang disesuaikan pada framework atau bahasa yang digunakan pada proses pembangunan website tersebut. Pada tutorial ini, kita akan melakukan konfigurasi modul rewrite pada apache web server yang berisikan website yang dibuat dengan framework Codeigniter 4.

Kalian bisa buka dokumentasi dari framework yang kalian gunakan dan cari bagian setup apache web server. Dibawah ini adalah dokumentasi dari framework Codeigniter 4, terlihat pada bagian Apache Web Server dijelaskan bagaimana cara untuk menggunakan mod_rewrite menggunakan simple rule. Pada konfigurasi ini, kita akan menggunakan script .htaccess versi lengkapnya.

codeigniter-4-documentation

Kita mulai proses konfigurasi modul rewrite ini.

1. Aktifkan Modul Rewrite
Untuk mengaktifkan modul rewrite, gunakan perintah :

sudo a2enmod rewrite

Selanjutnya, restart service apache menggunakan perintah :

sudo systemctl restart apache2

2. Konfigurasi site-enable Apache
Selanjutnya, kita perlu melakukan konfigurasi pada site-enable Apache agar bisa melakukan fungsi URL rewrite yang nantinya akan di jalankan oleh file .htaccess.

Ketikan perintah :
sudo nano /etc/apache2/sites-enabled/000-default.conf

Output
<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

Di dalam file konfigurasi diatas, tambahkan script dibawah ini setelah string <VirtualHost *:80> :

<Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow, deny
    Allow from All
</Directory>

Kemudian save pengaturan konfigurasi yang sudah kita setting. Tekan CTRL+X untuk melakukan penyimpanan konfigurasi, lalu konfirmasi dengan mengetik Y, lalu terakhir tekan Enter untuk kembali ke terminal utama server. Selanjutnya kita lakukan restart kembali pada service Apache.
3. File .htaccess
Selanjutnya, kita buat file .htaccess, kalian bisa langsung membuat file .htaccess ini didalam folder website atau project kalian. Disini kita akan membuat file .htaccess pada directory html, diluar folder website atau project, untuk membuat file .htaccess gunakan perintah :

sudo nano /var/www/html/.htaccess

Lalu kita buat rule mod_rewrite dengan mengetikan script dibawah ini :

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

Setelah script diatas sudah diketikan, kita save konfigurasinya, tekan CTRL+X untuk melakukan penyimpanan konfigurasi, lalu konfirmasi dengan mengetik Y, lalu terakhir tekan Enter untuk kembali ke terminal utama server.

Setelah itu kalian bisa pindahkan file .htaccess ke dalam folder website atau project kalian.
Kesimpulan :
Dengan mengaktifkan mod_rewrite ini, kita dapat meningkatkan keamanan website sekaligus merapihkan URL website agar terlihat rapi, bersih dan SEO friendly.

Sebagai perbandingan, berikut adalah contoh URL website yang belum menggunakan modul rewrite :

https://website.com/posts.php?year=2022&month=05&day=09&title=mod-rewrite-apache

Sedangkan, dibawah ini adalah contoh URL website yang sudah menggunakan modul rewrite :

https://website.com/2022/05/09/mod-rewrite-apache

Sekian untuk tutorial cara melakukan konfigurasi modul rewrite pada Ubuntu Server 20.04, semoga ilmu yang kalian dapat dari tutorial ini bisa bermanfaat untuk kalian semua. Terima kasih.

Project Deployment on Ubuntu Web Server : Simple Landing Page

deploy-landing-page-thumbnail

Pada tutorial ini kita akan melakukan deploy project berupa Landing Page sederhana ke dalam Ubuntu Web Server yang sudah kita setting pada tutorial sebelumnya, jadi pastikan bahwa kalian sudah membaca post kami sebelumnya.
Baca juga :
How To Install Ubuntu Server 20.04 On Virtual Box
Konfigurasi Dasar Pada Ubuntu Server 20.04
Konfigurasi SSH Key Pada Ubuntu Server 20.04
Konfigurasi LAMP Server Pada Ubuntu Server 20.04
Project deployment disini, kita akan menggunakan fungsi clone dari github. Project yang akan kita clone ke dalam web server bisa kalian lihat pada link dibawah ini :


Dalam prosesnya, kita akan melakukan sedikit ubahan pada konfigurasi service apache, kemudian melakukan clone dari repository github, lalu menyesuaikan file config pada folder projectnya, baru kemudian kita lakukan test dengan mengakses website tersebut. Untuk website disini akan kita akses menggunakan ip address/folder project.

1. Konfigurasi Apache Server
Pertama, kita akan melakukan ubahan pada konfigurasi service apache dengan menambahkan beberapa rule dibawah ini :

<Directory />
    Options FollowSymLinks
    Allow Override None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
    Allow from All
</Directory>

<Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
    Allow from All
</Directory>

Buka konfigurasi service apache dengan mengetikan perintah :

sudo /etc/apache2/apache2.conf

Kemudian cari komentar dengan tagar :

# access here, or in any related virtual host

Ketikan script diatas ke dalam terminal konfigurasi apache seperti gambar dibawah ini :

apache.conf rule script
Harap diperhatikan, untuk semua rule yang dibuat didalam file konfigurasi apache2.conf ini bersifat "cache sensitive", jadi besar-kecilnya huruf akan berpengaruh pada servicenya nanti. Jadi pastikan bahwa kalian mengetikan rule konfigurasi diatas sesuai dengan yang kami berikan.
Setelah script konfigurasi sudah diketik, kalian bisa tekan CTRL+X untuk melakukan penyimpanan konfigurasi, lalu konfirmasi dengan mengetik Y, lalu terakhir tekan Enter untuk kembali ke terminal utama server dan lakukan restart pada service apache.

sudo systemctl restart apache2

Kemudian cek juga status konfigurasi dari service apache, pastikan bahwa service apache berjalan dengan benar :

sudo apachectl configtest

Jika balasan dari sistem adalah "Syntax OK", berarti apache server kita sudah berjalan dengan konfigurasi yang kita buat. Tetapi jika balasan dari system berisi "Syntax Error", kalian cek lagi pada konfigurasi apache2.conf, pastikan tidak ada typo atau kesalahan pengetikan pada rulenya.

2. Git Clone
Selanjutnya, kita akan clone project website landing page ke dalam server, diawal post ini kita sudah menyiapkan project yang akan kita clone ke dalam server. Pastikan kalian mengetahui link repository dari project yang akan kalian clone.

Sebelumnya kita akses terlebih dahulu directory html pada server dengan mengetikan perintah :

cd /var/www/html

Lanjut dengan melakukan clone pada folder html, ketikan perintah dengan format :

git clone https://link-repository-project.git

Disini kita mengetikan perintah :

git clone https://github.com/mmarcec007/landing-page-ci.git

Setelah itu tunggu proses clone ini sampai selesai.

3. config.php
Setelah proses clone sudah selesai, terakhir kita akan melakukan ubahan pada file config.php yang ada didalam folder project landing page.

Kita akses terlebih dahulu directorynya, ketikan perintah :

cd /var/www/html/landing-page-ci/application/config

Kemudian kita lakukan ubahan pada file config.php dengan mengetikan :

sudo nano config.php

Perhatikan pada string :

$config['base_url'] = 'http://localhost/Codeigniter';

config.php-base-url

Ubah URL localhost menggunakan alamat ip server kalian /landing-page-ci.

Contoh :
$config['base_url'] = 'http://192.168.43.14/landing-page-ci';

Kemudian tekan CTRL+X untuk melakukan penyimpanan konfigurasi, lalu konfirmasi dengan mengetik Y, lalu terakhir tekan Enter untuk kembali ke terminal utama server dan lakukan restart pada service apache.

Test :
Kita coba akses website yang sudah kita deploy tadi. Buka browser favorit kalian masing-masing dan ketikan url ip-server/landing-page-ci

landing-page-website

Terlihat pada gambar diatas, website bisa diakses dan kita berhasil melakukan deploy project berupa landing page sederhana ke dalam server kita.

Sekian untuk tutorial project deployment ini, yang dimana kita berhasil melakukan deploy project landing page sederhana ke Ubuntu Server 20.04, semoga ilmu yang kalian dapat dari tutorial ini bisa bermanfaat untuk kalian semua. Terima kasih.

Sunday 8 May 2022

Konfigurasi SSH Key pada Ubuntu Server 20.04

ssh-key-thumbnail

Pada tutorial ini kita akan membahas tentang konfigurasi kunci SSH pada Ubuntu Server 20.04

SSH atau Secure Shell adalah sebuah protokol jaringan terenkripsi untuk komunikasi dengan antarmuka command line. Khusus untuk server, terlebih jika kalian bekerja dengan Server Ubuntu, kalian akan menghabiskan banyak waktu bergelut dengan terminal command line server yang terhubung melalui ssh.

Saturday 7 May 2022

Konfigurasi Dasar pada Ubuntu Server 20.04

Pada tutorial ini kita akan membahas tentang konfigurasi dasar pada Ubuntu Server 20.04.

Setelah pada tutorial sebelumnya kita sudah belajar cara instalasi ubuntu server yang kita lakukan pada virtual machine, selanjutnya kita perlu melakukan beberapa konfigurasi dasar agar ubuntu server bisa di aman untuk dioperasikan. Konfigurasi yang perlu kita lakukan diantaranya adalah :

  1. Update Sistem
  2. Setting SSH Security
  3. Setting Firewall
  4. Setting Time Zone

Mari kita mulai konfigurasinya.

Baca juga :
How To Install Ubuntu Server 20.04 On Virtual Box

1. Update sistem
Untuk melakukan update sistem, ketikan perintah :

sudo apt update

Disini akan dilakukan pengecekan package apa saja yang updatenya sudah tersedia, jika proses pengecekan sudah selesai baru kita lakukan upgrade dengan mengetikan perintah :

sudo apt upgrade

Akan muncul konfirmasi untuk melanjutkan proses upgrade ini, ketikan Y untuk melanjutkan prosesnya lalu tunggu proses upgrade ini sampai dengan selesai.

Selanjutkan akan muncul konfigurasi untuk open-ssh server, pilh opsi keep the local version currently installed lalu tekan Enter dan tunggu proses instalasinya sampai selesai.

2. SSH Security
Disini kita akan merubah sedikit pengaturan pada ssh security, tujuannya agar user root tidak bisa login menggunakan ssh, jadi hanya user utama yang dapat login menggunakan ssh.

Ketikan perintah :

sudo nano /etc/ssh/sshd_config

Kemudian buka beberapa pengaturan ssh dengan menghapus tanda # pada rule securitinya dan lakukan perubahan pada rulenya sesuai dengan parameter dibawah ini :

#Authentication :
PermitRootLogin
no
MaxAuthries 6
MaxSession 10

#To disable tunneled clear text passwords, change to no here :
PasswordAuthentication yes
PermitEmptyPassword no

Konfigurasi diatas hanyalah pengaturan dasar untuk service SSH pada server, untuk keamanan lanjutan menggunakan public/private key bisa kalian baca disini.
3. Setting Firewall
Secara default, pengaturan ufw atau firewall pada Ubuntu Server dalam keadaan disable, jadi kita harus mengenable firewall pada server kita menggunakan perintah :

sudo ufw enable

Untuk melakukan disable pada firewall bisa menggunakan perintah :

sudo ufw disable

Untuk mengecek status dari firewall bisa menggunakan perintah :

sudo ufw status verbose

Output
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
  • Deny (incoming), menolak semua koneksi yang masuk kecuali yang masuk ke allow list
  • Allow (outgoing), mengijinkan semua koneksi yang keluar
  • Disabled (routed), mendisabled semua koneksi yang masuk atau keluar, kecuali yang sudah disetting di allow list seperti subnet atau ip tertentu
Kita bisa melakukan setting firewall berdasarkan nama service, ip address (host/subnet), port, dan protocol (tcp/udp) menggunakan format perintah seperti dibawah ini :

sudo ufw allow nama_service_ip_port_protocol

Allow service SSH :
sudo ufw allow OpenSSH

Allow koneksi masuk dari IP tertentu, bisa host atau subnet.

IP Host :
sudo ufw allow 192.168.1.10 to any port

Subnet :
sudo ufw allow 192.168.1.0/24

Allow service FTP menggunakan port 21 dan protocol TCP :
sudo ufw allow 21/tcp

Untuk menolak/deny koneksi yang masuk menggunakan firewall bisa menggunakan format perintah :

sudo ufw deny nama_service_ip_port_protocol

Untuk menghapus rule firewall gunakan format perintah :

sudo ufw delete allow nama_service

Untuk mereset firewall kembali ke settingan default :

sudo ufw reset

Pengaturan yang perlu kita lakukan pada firewall kita adalah, membuat rule allow untuk beberapa service dibawah ini :
  1. Open SSH
  2. Http
  3. Https
  4. Ftp
  5. Apache
4. Setting Time Zone
Terakhir kita buat pengaturan untuk time zone pada server kita, tujuannya agar settingan waktu pada server sama dengan waktu local kita.

Pertama, kita cari zona waktu yang sesuai dengan tempat kita yang tersedia pada pengaturan server, gunakan perintah :

sudo timedatectl list-timezones

Disini kita akan menyesuaikan pengaturan waktu server kita dengan zona waktu jakarta, gunakan perintah :

sudo timedatectl set-timezone Asia/Jakarta

Setelah itu kita bisa cek pengaturan zona waktu server menggunakan perintah :

sudo timedatectl

Itu tadi bagaimana cara untuk melakukan konfigurasi dasar pada Ubuntu Server, konfigurasi dasar ini wajib kita lakukan agar server aman untuk dioperasikan, aman dalam artian server hanya bisa diakses oleh kita selaku sysadmin dan bisa dioperasikan dalam server sudah siap untuk dilakukan konfigurasi lebih lanjut seperti, konfigurasi LAMP Server sebagai tempat untuk website atau aplikasi berbasis web yang tutorialnya bisa kalian baca disini.
Sekian untuk tutorial cara untuk melakukan konfigurasi dasar pada Ubuntu Server 20.04, semoga ilmu yang kalian dapat dari tutorial ini bisa bermanfaat untuk kalian semua. Terima kasih.

Thursday 5 May 2022

Konfigurasi LAMP Server pada Ubuntu Server 20.04

Pada tutorial ini kita akan membahas tentang konfigurasi LAMP Server pada Ubuntu Server 20.04

LAMP Server, singkatan dari Linux, Apache, MySQL, PHP/Perl/Python, adalah setup yang sangat populer untuk Ubuntu Server. Dengan menggunakan beberapa aplikasi tambahan, Ubuntu dapat menjadi server sistem yang cukup andal. MySQL digunakan sebagai database dengan tambahan PHPMyAdmin untuk sistem pengelolaannya, lalu Apache digunakan sebagai server web itu sendiri dan PHP/Perl/Phyton digunakan untuk memproses konten yang dinamis.