Sabtu, 10 Agustus 2024


 

LINUX FUNDAMENTAL


#Penjelasan Virtualisasi

Apa itu virtualisasi?

    Virtualisasi adalah teknologi yang memungkinkan satu perangkat keras fisik (seperti server atau komputer) untuk menjalankan beberapa sistem operasi atau lingkungan secara bersamaan, seolah-olah setiap lingkungan tersebut berjalan di perangkat keras yang terpisah. Ini dilakukan dengan menggunakan perangkat lunak yang disebut hypervisor atau virtual machine monitor (VMM) untuk membuat dan mengelola mesin virtual (virtual machines atau VM).

Dalam konteks ini, satu komputer fisik dapat menjalankan beberapa VM, masing-masing dengan sistem operasi dan aplikasi mereka sendiri, tanpa saling mempengaruhi. Virtualisasi memungkinkan penggunaan sumber daya komputer yang lebih efisien, fleksibilitas dalam pengelolaan, dan isolasi antara aplikasi atau sistem yang berbeda.


Konsep dasar tentang virtualisasi

Hypervisor: Perangkat lunak atau firmware yang menciptakan dan mengelola mesin virtual. Hypervisor membagi sumber daya server fisik (CPU, memori, penyimpanan, jaringan) dan mengalokasikannya ke VM sesuai kebutuhan.

 Mesin Virtual (VM): Lingkungan perangkat lunak yang meniru server fisik lengkap. Setiap VM memiliki sistem operasi, aplikasi, dan konfigurasinya sendiri.

 Host: Server fisik yang menjalankan hypervisor dan mesin virtual.


Jenis-jenis virtualisasi server

Virtualisasi Penuh (Full Virtualization): Hypervisor berjalan langsung di atas perangkat keras server fisik. VM sepenuhnya terisolasi satu sama lain dan dari host.

Paravirtualisasi: VM dimodifikasi untuk bekerja sama dengan hypervisor, meningkatkan kinerja tetapi mengurangi kompatibilitas. 

Virtualisasi Tingkat Sistem Operasi (OS-Level Virtualization): Beberapa instance sistem operasi yang terisolasi berjalan pada kernel yang sama.


Manfaat virtualisasi server

Pemanfaatan Sumber Daya yang Efisien: Mengurangi jumlah server fisik yang dibutuhkan, menghemat ruang, daya, dan pendinginan. 

Fleksibilitas dan Skalabilitas: VM dapat dengan mudah dibuat, dihapus, dipindahkan, atau dikloning sesuai kebutuhan. 

Peningkatan Ketersediaan: VM dapat dengan cepat dipulihkan ke server lain jika terjadi kegagalan perangkat keras. 

Pengujian dan Pengembangan yang Lebih Mudah: VM menyediakan lingkungan yang terisolasi untuk menguji aplikasi dan konfigurasi baru. 

Penghematan Biaya: Mengurangi biaya perangkat keras, energi, dan pemeliharaan.


Penerapan virtualisasi server

Konsolidasi Server: Menggabungkan beberapa server fisik ke dalam VM yang lebih sedikit. 

Disaster Recovery: Membuat replika VM untuk pemulihan cepat jika terjadi bencana. 

Cloud Computing: Menyediakan infrastruktur virtual sebagai layanan (IaaS). 

Lingkungan Pengembangan dan Pengujian: Membuat lingkungan virtual yang terisolasi untuk pengembangan dan pengujian perangkat lunak.


Contoh perangkat lunak virtualisasi server

-VMware vSphere/ESXi 

 -Microsoft Hyper-V 

 -Citrix XenServer 

 -KVM (Kernel-based Virtual Machine) 

 -Oracle VM VirtualBox (untuk penggunaan desktop) 

 -Oracle VBox


#Pengenalan linux

Apa itu linux?

    Linux adalah sistem operasi berbasis open-source yang pertama kali dikembangkan oleh Linus Torvalds pada tahun 1991. Linux mirip dengan sistem operasi lainnya seperti Windows atau macOS.


 Apa itu kernel linux?

    Kernel adalah inti dari sistem operasi yang bertanggung jawab untuk mengelola sumber daya perangkat keras, seperti CPU, memori, dan perangkat input/output. Kernel Linux dikenal karena stabilitas, keamanan, dan kemampuannya untuk berjalan di berbagai perangkat keras, mulai dari komputer desktop hingga server, perangkat embedded, dan bahkan smartphone.


Filosofi Open Source

    Linux adalah proyek open source, yang berarti kode sumbernya tersedia secara bebas untuk dilihat, dimodifikasi, dan didistribusikan oleh siapa saja. Hal ini mendorong kolaborasi dan inovasi dari komunitas pengembang global.


Apa saja keunggulan linux

Gratis dan Open Source: Tidak ada biaya lisensi, dan Anda bebas menggunakan, memodifikasi, dan mendistribusikan Linux sesuai kebutuhan Anda. 

Keamanan: Linux dikenal karena tingkat keamanannya yang tinggi, dengan pembaruan keamanan yang sering dirilis untuk mengatasi kerentanan. 

Stabilitas: Linux sangat stabil dan jarang mengalami crash atau masalah kinerja. 

Fleksibilitas: Linux dapat disesuaikan untuk berbagai kebutuhan, dari server hingga desktop, perangkat embedded, dan superkomputer. 

Komunitas yang Kuat: Komunitas Linux yang besar dan aktif memberikan dukungan, dokumentasi, dan pengembangan perangkat lunak yang berkelanjutan.


Distro linux

    Distro Linux (distribusi Linux) adalah sistem operasi lengkap yang dibangun di atas kernel Linux dan menyertakan berbagai perangkat lunak tambahan, seperti lingkungan desktop, aplikasi, utilitas, dan alat manajemen sistem. Setiap distro Linux memiliki karakteristik, tujuan, dan pengguna yang berbeda.

Ubuntu: Distro yang ramah pengguna, ideal untuk pemula dan pengguna desktop. 

Debian: Distro yang stabil dan konservatif, sering digunakan untuk server. 

Fedora: Distro yang inovatif dan mutakhir, sering digunakan oleh pengembang. 

CentOS: Distro yang stabil dan kompatibel dengan Red Hat Enterprise Linux (RHEL), sering digunakan untuk server perusahaan.

Linux Mint: Distro yang berbasis Ubuntu dengan antarmuka yang lebih tradisional dan mudah digunakan. 

Arch Linux: Distro yang fleksibel dan dapat disesuaikan, populer di kalangan pengguna tingkat lanjut.


#Command line linux

Manajemen Folder

cd = Masuk/keluar directory 

mkdir = membuat directory 

rmdir = menghapus directory 

Is = menampilkan isi directory 

pwd = menampilkan di directory mana kita berada


Manajemen File

touch = membuat file tanpa content 

echo/vim/vi/nano = membuat file dengan content 

cat = menampilkan isi konten file 

head = menampilkan isi 10 baris pertama sebuah file 

tail = menampilkan isi 10 baris terakhir sebuah file 

rm = menghapus file 

cp = menyalin file dan directory 

mv = memindahkan/merename file dan directory


Manajemen Package

    Manajemen Package adalah proses pengelolaan perangkat lunak pada sistem komputer dengan cara mengelola pemasangan, pembaruan, dan penghapusan perangkat lunak atau packet-packet yang berbentuk aplikasi atau service.

APT=Advanced Package Tool atau APT merupakan sistem manajemen paket yang umum digunakan pada distribusi Linux berbasis Debian, Termasuk Ubuntu


APT COMMAND

apt upgrade = mengupgrade paket yang sudah terinstall 

apt update = mengupdate daftar paket dari repositori 

apt install = menginstall packet baru 

apt remove/purge = menghapus packet 

apt list --installed = menampilkan list packet yang terinstall


Manajemen user dan group

adduser = Menambahkan user baru dengan password 

useradd = Menambahkan user baru tanpa password 

passwd = Menambahkan/mengganti password user 

deluser = Menghapus user 

groupadd = Menambahkan group baru 

delgroup = Menghapus group


Hak Akses

Readable ( r ) = Mengizinkan pengguna untuk melihat isi file 

Writeable( w ) = Mengizinkan pengguna untuk mengubah isi file atau direktori 

Executable( x ) = Mengizinkan pengguna untuk menjalankan file sebagai progam


Kategori pengguna

Pemilik (Owner) = pengguna yang memiliki file atau direktori 

Grup (Group) = Grup pengguna yang dapat mengakses file atau direktori 

Lainya (Others) = Semua pengguna lainya yang tidak termasuk dalam kategori diatas


Mengubah Hak Akses Menggunakan Notasi Simbolis 

“chmod [kategori][tindakan][hak] nama_file_atau_direktori”


Mengubah Hak Akses Menggunakan Notasi Oktal 

Nilai Oktal hak akses :

 ‘r’ = 4  ‘w’ = 2  ‘x’ = 1 

“chmod 755 nama_file”

angka 755 berarti = Pemilik memiliki hak baca,tulis,dan eksekusi Grup memiliki hak baca dan eksekusi Lainya memiliki hak baca dan eksekusi


IP Address

1. Buka file konfigurasi netplan dengan perintah “sudo nano /etc/netplan/50-cloud-init.yaml” 

2. Edit file tersebut untuk menambahkan konfigurasi IP statis, Contoh konfigurasi seperti disamping 

3. Setelah selesai simpan file (ctrl+x0 untuk menyimpan, ctrl+x untuk keluar) 4. Terapkan konfigurasi dengan perintah “sudo netplan apply”



#Cara instalasi vbox dan ubuntu

1. Instalasi VirtualBox

Langkah 1: Unduh VirtualBox

Langkah 2: Instal VirtualBox

  • Buka file installer yang telah diunduh.
  • Ikuti wizard instalasi dengan mengklik "Next".
  • Pilih komponen yang ingin diinstal (secara default, semua komponen biasanya terpilih).
  • Jika muncul peringatan mengenai jaringan, klik "Yes".
  • Klik "Install" dan tunggu hingga proses instalasi selesai.
  • Klik "Finish" untuk menyelesaikan instalasi dan membuka VirtualBox.

2. Unduh Ubuntu ISO

  • Buka situs resmi Ubuntu.
  • Pilih versi Ubuntu yang diinginkan (misalnya Ubuntu 22.04 LTS).
  • Klik "Download" untuk mengunduh file ISO.

3. Buat Virtual Machine (VM) di VirtualBox

Langkah 1: Buka VirtualBox

  • Jalankan VirtualBox yang telah diinstal.

Langkah 2: Buat Virtual Machine Baru

  • Klik "New" untuk membuat VM baru.
  • Isi nama VM (misalnya, "Ubuntu 22.04").
  • Pilih "Type" sebagai Linux dan "Version" sebagai Ubuntu (64-bit).
  • Klik "Next".

Langkah 3: Atur RAM

  • Pilih jumlah RAM yang akan digunakan oleh VM. Minimal 2 GB (2048 MB), tetapi disarankan 4 GB (4096 MB) atau lebih jika tersedia.
  • Klik "Next".

Langkah 4: Buat Hard Disk Virtual

  • Pilih "Create a virtual hard disk now" dan klik "Create".
  • Pilih "VDI (VirtualBox Disk Image)" sebagai format hard disk dan klik "Next".
  • Pilih "Dynamically allocated" (agar disk berkembang sesuai kebutuhan) dan klik "Next".
  • Tentukan ukuran hard disk (minimal 25 GB) dan klik "Create".

4. Instal Ubuntu di Virtual Machine

Langkah 1: Atur Ubuntu ISO sebagai Bootable Disk

  • Klik kanan pada VM yang baru saja dibuat, lalu pilih "Settings".
  • Pergi ke tab "Storage".
  • Di bawah "Controller: IDE", klik ikon CD dengan tanda plus untuk menambahkan file ISO.
  • Pilih "Choose a disk file" dan arahkan ke file ISO Ubuntu yang telah diunduh.
  • Klik "OK".

Langkah 2: Jalankan Virtual Machine

  • Pilih VM Ubuntu di VirtualBox dan klik "Start".
  • VM akan boot dari ISO dan menampilkan installer Ubuntu.

Langkah 3: Instalasi Ubuntu

  • Pilih bahasa yang diinginkan, lalu klik "Install Ubuntu".
  • Pilih "Normal installation" dan centang pilihan "Download updates while installing Ubuntu" serta "Install third-party software".
  • Klik "Continue".

Langkah 4: Partisi Disk

  • Pilih "Erase disk and install Ubuntu" (disk virtual, bukan disk fisik, jadi aman).
  • Klik "Install Now" dan konfirmasi dengan klik "Continue".

Langkah 5: Konfigurasi Akun

  • Isi informasi seperti zona waktu, nama pengguna, dan password.
  • Klik "Continue" dan tunggu proses instalasi selesai.

Langkah 6: Restart VM

  • Setelah instalasi selesai, klik "Restart Now".
  • Eject ISO dari Storage di pengaturan VirtualBox jika VM meminta ISO lagi saat booting.

Langkah 7: Masuk ke Ubuntu

  • Setelah restart, Anda akan melihat layar login Ubuntu.
  • Masukkan password yang telah dibuat, dan Anda siap menggunakan Ubuntu di VirtualBox.

#Cara kerja web server

1. Menerima Permintaan (Request) dari Klien

  • Ketika Anda mengetik URL di browser dan menekan enter, browser akan membuat permintaan HTTP ke web server yang sesuai dengan URL tersebut.
  • Permintaan ini biasanya berupa permintaan untuk sebuah halaman web, seperti index.html, atau untuk sumber daya lain seperti gambar, video, atau file CSS/JavaScript.

2. Memproses Permintaan

  • Setelah menerima permintaan, web server akan memprosesnya dengan langkah-langkah berikut:
    • Parsing URL: Web server menganalisis URL untuk menentukan konten apa yang diminta oleh klien. Misalnya, jika URL mengarah ke example.com/about, web server akan mencari halaman about.html atau about.php.
    • Pencarian Konten: Web server kemudian mencari konten yang diminta di sistem file-nya. Jika konten tersebut adalah file statis (seperti HTML atau gambar), server akan mencarinya di direktori yang sesuai.
    • Eksekusi Skrip: Jika permintaan adalah untuk halaman dinamis (misalnya, halaman PHP atau aplikasi Python), web server akan meneruskan permintaan tersebut ke interpreter skrip atau framework aplikasi web (seperti Apache yang bekerja dengan PHP atau Nginx dengan FastCGI).

3. Mengirimkan Respons (Response) ke Klien

  • Setelah konten ditemukan atau skrip dieksekusi, web server mengemas hasilnya ke dalam respons HTTP.
  • Respons HTTP terdiri dari:
    • Status Code: Misalnya, 200 (OK) jika permintaan berhasil, 404 (Not Found) jika konten tidak ditemukan, atau 500 (Internal Server Error) jika ada masalah pada server.
    • Headers: Berisi informasi tambahan seperti tipe konten (Content-Type: text/html), panjang konten (Content-Length), dan sebagainya.
    • Body: Isi dari respons, biasanya berupa HTML, JSON, XML, atau file lain yang diminta.

4. Mengirimkan Data ke Klien

  • Web server kemudian mengirimkan respons tersebut kembali ke browser.
  • Browser menerima respons, membaca header, dan menampilkan konten (seperti halaman web) kepada pengguna.

5. Penanganan Permintaan Tambahan

  • Jika halaman web yang dikirim berisi referensi ke sumber daya lain (misalnya gambar, stylesheet, atau skrip), browser akan mengirim permintaan tambahan ke web server untuk setiap sumber daya ini.
  • Proses yang sama diulangi untuk setiap permintaan baru.

6. Logging dan Monitoring

  • Web server biasanya mencatat setiap permintaan yang diterima dalam file log. Informasi ini berguna untuk analisis, debugging, dan monitoring performa server.

Jenis Web Server Populer

  • Apache HTTP Server: Salah satu web server yang paling banyak digunakan, terutama di sistem operasi Linux.
  • Nginx: Web server yang cepat dan efisien, sering digunakan untuk situs dengan trafik tinggi.
  • Microsoft IIS (Internet Information Services): Web server buatan Microsoft yang sering digunakan di lingkungan Windows.

 


INSTALL NGINX MARIADB & PHP

- Perintah untuk memperbarui daftar package di repository

$ sudo apt-get update && sudo apt-get upgrade -y

- Perintah untuk menginstall nginx mariadb dan php

$ sudo apt-get install nginx mariadb-server php8.1-fpm

php-mysql -y

- Perintah mengecek versi php

$ php -v


CEK STATUS NGINX MARIADB & PHP

lakukan perintah sudo systemctl status nginx untuk mengecek status service nginx, apabila nginx belum running atau active. gunakan perintah sudo systemctl enable nginx dan sudo systemctl start nginx untuk memulai service nginx. Lakukan hal yang sama pada php8.1-fpm dan mysql












INSTAL NGINX

untuk menguji apakah nginx sudah berjalan dapat menggunakan browser. jalankan 192.168.12.45 di browser kalian, ganti 192.168.12.45 dengan ip masing masing. untuk mengetahui ip bisa menggunakan hostname -I (i kapital).














SCRIPT PHP

kembali ke mesin virtual dan jalankan

perintah :

- sudo nano /var/www/html/info.php

dan ketik <?php phpinfo(); ?>, lalu simpan










SET PHP

jalankan perintah : - sudo nano

/etc/nginx/sites-available/default

lalu hapus tagar pada bagian : - location ~ \.php$ { - include snippets/fastcgi-php.conf - fastcgi_pass

unix:/run/php/php8.1-fpm.sock

- lalu pada “}” yang bawah










HASIL SCRIPT PHP

mulai ulang service nginx dengan

perintah : sudo systemctl restart nginx

lalu buka browser dan jalankan

192.168.12.45/info.php, ganti

192.168.12.45 dengan ip masing masing










KONFIGURASI MARIADB

kembali ke mesin virtual dan jalankan perintah sudo mysql untuk masuk ke mysql dengan akses root. Kemudian edit user root dengan perintah ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘1234’; (pada bagian root dan password dapat diganti sesuai keinginan masing masing) kemudian gunakan perintah FLUSH PRIVILEGES untuk menyegarkan perubahan. lalu EXIT










KONFIGURASI MARIADB

lakukan uji coba login menggunakan user dan password yang baru dengan perintah sudo mysql -u root -p dan masukan password yang telah dibuat tadi. lalu buat database dengan perintah CREATE DATABASE student_db; database ini yang akan menjadi tempat tabel yang berisi data yang akan digunakan.








BUAT USER DI MARIADB

gunakan CREATE USER ‘student’@’localhost’ IDENTIFIED BY ‘12345’; untuk membuat user baru. lalu berikan semua hak akses student_db ke user yang telah dibuat dengan GRANT ALL PRIVILEGES ON student_db.* TO 'student'@'localhost'; lalu gunakan perintah FLUSH PRIVILEGES; untuk menyegarkan perubahan. lalu EXIT







CREATE TABLE MARIADB

Gunakan mysql -u student -p untuk masuk sebagai user student. lalu

masuk ke dalam database student_db dengan USE student_db; lalu buat

tabel student seperti berikut:

CREATE TABLE student ( id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR (100) NOT NULL, username VARCHAR (50) NOT

NULL, password VARCHAR (255) NOT NULL);










INSERT USER MARIADB

Masukkan data pada table student dengan perintah :

INSERT INTO student (name,username,password) VALUES (‘STUDENT 1’, ‘student1’, MD5(‘12345’)); lalu EXIT. (MD5(‘12345’) digunakan untuk mengenkripsi 12345, jadi ketika login tetap gunakan 12345)



SET MYSQL.PHP

buat file php yang digunakan untuk mengambil data dari database dengan

perintah :

sudo nano/var/www/html/mysql.php

tulis perintah yang ada pada gambar. untuk lebih jelasnya ada pada slide

selanjutnya. atau dapat mengunduh script melalui link dibawah ini :

https://drive.google.com/file/d/1r1DnAwkjioc5bsu2lu85__KcAOfapvSV/view?u

sp=sharing













HASIL KONFIGURASI NGINX MARIADB & PHP

restart service nginx dan coba akses 192.168.12.45/mysql.php

menggunakan browser kalian dan coba untuk login menggunakan

username dan password yang ada pada tabel student








#Firewall ufw

UFW (Uncomplicated Firewall) adalah antarmuka atau alat yang disederhanakan untuk mengelola firewall pada sistem operasi berbasis Linux, khususnya yang menggunakan iptables sebagai backend. UFW dirancang untuk memudahkan pengguna dalam mengonfigurasi firewall tanpa harus berurusan dengan perintah iptables yang kompleks.

1. Fungsi dan Tujuan UFW

  • Pengelolaan Akses Jaringan: UFW memungkinkan pengguna untuk dengan mudah mengontrol lalu lintas jaringan yang masuk dan keluar dari komputer atau server. Pengguna dapat menetapkan aturan untuk mengizinkan atau menolak lalu lintas berdasarkan alamat IP, port, dan protokol.
  • Kemudahan Penggunaan: Salah satu tujuan utama UFW adalah menyederhanakan proses manajemen firewall. Dengan UFW, pengguna tidak perlu memahami seluk-beluk iptables yang bisa sangat teknis dan kompleks.
  • Keamanan: Dengan mengontrol lalu lintas yang masuk dan keluar dari sistem, UFW membantu melindungi sistem dari akses yang tidak sah, serangan DDoS, dan ancaman keamanan lainnya.

2. Cara Kerja UFW

  • Backend Iptables: UFW bekerja sebagai antarmuka yang lebih ramah pengguna untuk iptables. Setiap aturan yang ditetapkan melalui UFW diterjemahkan menjadi aturan iptables yang sebenarnya.
  • Aturan Sederhana: Pengguna dapat menambahkan, menghapus, atau melihat aturan firewall menggunakan perintah UFW yang sederhana. Misalnya, untuk mengizinkan lalu lintas pada port tertentu, pengguna hanya perlu menggunakan satu perintah singkat.
  • Profil Aplikasi: UFW mendukung penggunaan profil aplikasi, yang memungkinkan pengguna mengaktifkan atau menonaktifkan akses untuk aplikasi tertentu dengan mudah, tanpa harus mengetahui port atau protokol yang digunakan aplikasi tersebut.

INSTALL UFW

Perintah Menginstall ufw
‘“sudo apt install ufw -y”
Mengaktifkan Service ufw
“sudo ufw enable”
Cek status ufw
“sudo ufw status”
Pastikan Status: active







ALLOW DENY UFW

“sudo ufw allow 80”

Untuk mengizinkan port http

“sudo ufw allow 443”

Untuk mengizinkan port https

“sudo ufw deny 23”

Untuk menolak port telnet

“sudo ufw enable”

Untuk menyimpan konfigurasi ufw

“sudo ufw status”

Untuk melihat rule ufw










Allow Ip tertentu

“sudo ufw allow from 192.168.12.49

to any port 22”

Untuk mengizinkan ip tersebut untuk

mengakses port ssh

“sudo ufw deny 22”

Untuk menolak semua ip yang ingin

mengakses port ssh kecuali yang

telah diizinkan

“sudo ufw enable” Simpan konfigurasi










HASIL UFW

uji coba menggunakan ip yang telah diberikan izin untuk mengakses port ssh, apabila konfigurasi benar maka hasil akan seperti disamping, jika gagal maka akan muncul pesan connection refused










1 komentar:

Cara Pasang Debian12 di virtualbox dan install wordpress di debian12  1. Download ISO Debian 12 Unduh file ISO Debian 12 dari situs resmi De...