Laporan Ujian Praktik Sysadmin

  


A. Konfigurasi DNS

1. Langkah pertama dalam konfigurasi DNS adalah melakukan instalasi paket layanan DNS server. Paket yang digunakan umumnya adalah BIND (Berkeley Internet Name Domain), yang merupakan salah satu software DNS server paling banyak digunakan
dnf install bind bind-utils

2. Setelah proses instalasi selesai, langkah berikutnya adalah mengatur file konfigurasi utama dari layanan DNS, yaitu file konfigurasi BIND. File ini berfungsi untuk mendefinisikan bagaimana server DNS akan bekerja, zona mana yang akan ditangani, serta informasi-informasi penting lainnya seperti direktori penyimpanan data DNS.
nano /etc/named.conf

zone "tkjb-5.lab" {
type master; file "/var/named/tkjb-5.lab.zone"; allow-query { any; }; allow-transfer { none; }; };
zone "30.168.192.in-addr.arpa" {
type master; file "/var/named/30.168.192.in-addr.arpa.zone"; allow-query { any; }; allow-transfer { none; }; }; [ CTRL+O ENTER CTRL+X ]

3. Konfigurasi zona DNS juga perlu dilakukan, baik untuk zona forward (yang mengubah nama domain menjadi alamat IP), maupun zona reverse (yang mengubah alamat IP menjadi nama domain). Untuk itu, dua buah file konfigurasi zona dibuat dan disimpan dalam direktori konfigurasi BIND. File zona tersebut harus berisi informasi seperti nama domain, record alamat IP (A record), dan record lainnya yang sesuai dengan kebutuhan.

nano /var/named/tkjb-5.lab.zone
$TTL 8h @ IN SOA ns1.tkjb-5.lab. admin.tkjb-5.lab. (
2025060101 ; serial number 1d ; refresh period 3h ; retry period 3d ; expire time 3h ) ; minimum TTL IN NS ns1.tkjb-5.lab.
www IN A 172.16.28.12 ns1 IN A 172.16.28.12 mail IN A 172.16.28.12 cms               IN A    172.16.28.12
lms               IN A    172.16.28.12
ftp               IN A    172.16.28.12

[ CTRL+O ENTER CTRL+X ] nano /var/named/30.168.192.in-addr.arpa.zone
$TTL 8h @ IN SOA ns1.tkjb-5.lab. admin.tkjb-5.lab. (
2025060101 ; serial number 1d ; refresh period 3h ; retry period 3d ; expire time 3h ) ; minimum TTL IN NS ns1.tkjb-5.lab.
12 IN PTR ns1.tkjb-5.lab. 12 IN PTR www.tkjb-5.lab.
12                IN PTR  mail.tkjb-5.lab.
12                IN PTR  cms.tkjb-5.lab.
12                IN PTR  lms.tkjb-5.lab.
12                IN PTR  ftp.tkjb-5.lab.

[ CTRL+O ENTER CTRL+X ]

4. Setelah semua konfigurasi selesai, layanan DNS diaktifkan dan diatur agar otomatis berjalan saat sistem menyala. Tidak lupa juga, pengaturan firewall diperbarui agar port DNS (port 53) dapat diakses, baik untuk koneksi UDP maupun TCP.

named-checkzone tkjb-5.lab /var/named/tkjb-5.lab.zone
named-checkzone 30.168.192.in-addr.arpa /var/named/30.168.192.in-addr.arpa.zone
systemctl enable named
systemctl start named
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
chown root:named /var/named/tkjb-5.lab.zone /var/named/30.168.192.in-addr.arpa.zone
chmod 644 /var/named/tkjb-5.lab.zone /var/named/30.168.192.in-addr.arpa.zone
chmod 777 /var/named
systemctl restart named

5. Agar server DNS bisa menggunakan dirinya sendiri untuk melakukan query DNS (loopback), maka dilakukan pengaturan pada file /etc/resolv.conf. File ini berfungsi sebagai penunjuk nameserver default. Dalam file ini, ditambahkan alamat IP dari server DNS yang sedang dikonfigurasi, misalnya 192.168.30.105

6.Selain itu, penyesuaian juga dilakukan pada file /etc/hosts di sistem Red Hat. File ini berfungsi sebagai daftar lokal untuk mencocokkan nama domain dengan IP address. Menambahkan domain dan IP ke dalam file ini dapat mempercepat akses dan membantu proses pengujian lokal sebelum DNS server bekerja sepenuhnya.
192.168.30.105        tkjb-5.lab

7. Setelah semua konfigurasi selesai, dilakukan pengujian dengan cara membuka Command Prompt (CMD) atau Terminal di komputer klien dan mengetikkan perintah untuk menguji resolusi DNS menggunakan nslookup. Jika konfigurasi berhasil, maka domain lokal yang diketik akan memberikan respons berupa alamat IP sesuai dengan yang sudah ditentukan di file zona DNS server.


    Catatan: Jika saat memasukan perintah 'systemctl restart named' dan saat enter ada keterangan berwarna merah kemungkinan di dalam folder named yang /var/named/ ada yang typo. 

B. KONFIGURASI WEB SERVER

1. Langkah pertama dimulai dengan menginstal paket Apache dari repositori resmi Red Hat. Paket ini bernama httpd, yang merupakan nama layanan web server Apache di sistem berbasis Red Hat. Pastikan sistem memiliki akses ke repository lokal atau internet untuk menyelesaikan proses instalasi.
dnf install httpd

2. Setelah instalasi selesai, layanan web server Apache harus diaktifkan agar dapat berjalan otomatis saat sistem dinyalakan. Layanan juga dijalankan untuk mulai menerima permintaan dari browser atau perangkat lain melalui port default HTTP, yaitu port 80.
systemctl enable httpd
systemctl start httpd

3. Secara default, RHEL memiliki sistem keamanan firewall yang membatasi akses ke port tertentu. Maka dari itu, port 80 (untuk HTTP) dan port 443 (jika ingin menggunakan HTTPS) perlu dibuka agar pengguna dari jaringan dapat mengakses web server melalui browser.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

4. Setelah Apache berhasil dijalankan, tahap berikutnya adalah membuat virtual host. Virtual host adalah fitur yang memungkinkan satu server untuk melayani beberapa domain atau situs web yang berbeda. Langkah awal yang dilakukan yaitu membuat sebuah folder baru sebagai direktori untuk menyimpan file HTML dari domain lokal  tkjb-5.lab Folder ini dibuat di dalam /var/www/html, yang merupakan lokasi default penyimpanan website di Apache.

Isi foldernya: 
<VirtualHost *:80>
    ServerName tkjb-5.lab
    DocumentRoot /var/www/html/tkjb-5.lab
    ErrorLog logs/tkjb-5.lab-error.log
    CustomLog logs/tkjb-5.lab-access.log combined
</VirtualHost>

CTRL+O ENTER CTRL+X

5. Setelah konfigurasi selesai, pengguna dapat membuat halaman HTML sederhana yang akan ditampilkan di browser. File HTML biasanya disimpan di dalam direktori /var/www/html, yang merupakan lokasi default penyimpanan halaman web Apache di RHEL.
nano /var/www/html/tkjb-5.lab/index.html
systemctl restart httpd


6. Langkah terakhir adalah melakukan pengujian dengan membuka browser dari komputer lain yang terhubung ke jaringan yang sama. Di kolom alamat, dimasukkan nama domain yang tadi sudah diatur, misalnya tkjb-5.lab. Jika semua konfigurasi berjalan dengan baik, maka halaman HTML yang dibuat akan muncul di browser.

7. Supaya bisa di akses menggunakan cms.tkjb-5.lab. File konfigurasi virtual host dibuat di dalam folder konfigurasi Apache (/etc/httpd/conf.d) dengan nama www.conf. Setelah konfigurasi selesai, layanan web server di-restart agar semua perubahan aktif.
sudo nano /etc/httpd/conf.d/www.conf
<VirtualHost *:80>
    ServerName www.tkjb-5.lab
    DocumentRoot /var/www/html/www

    <Directory /var/www/html/www>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/www_error.log
    CustomLog /var/log/httpd/www_access.log combined
</VirtualHost>
sudo systemctl restart httpd

C. KONFIGURASI MARIADB

1. Langkah pertama adalah install paket MariaDB terlebih dahulu agar layanan database dapat berjalan. 
dnf install mariadb

2. Setelah berhasil terpasang, layanan MariaDB dijalankan dan disetel agar aktif secara otomatis setiap kali sistem menyala.
systemctl start mariadb
systemctl enable mariadb

3. Setelah MariaDB aktif, dilakukan proses konfigurasi awal menggunakan fitur keamanan bawaan. Di tahap ini, pengguna diminta menjawab beberapa pertanyaan untuk mengamankan server database, seperti menghapus user anonim, menonaktifkan akses root dari jarak jauh, menghapus database yang tidak perlu, dan memuat ulang pengaturan hak akses. Untuk bagian ini, semua pilihan yang ditanyakan saat proses mariadb-secure-installation sebaiknya dijawab “yes” atau “y”, agar konfigurasi keamanan maksimal dan sistem tidak memiliki celah yang bisa disalahgunakan.

4. Jika semua proses berjalan dengan baik, maka server MariaDB siap digunakan. Pengguna bisa masuk ke dalam sistem database, membuat database baru, user, dan memberi hak akses sesuai kebutuhan aplikasi.
mysql -u root -p

D. KONFIGURASI PHP

1. Langkah pertama dilakukan dengan langsung memasang seluruh paket PHP versi 8.2.28 yang dibutuhkan. Dalam satu langkah ini, semua komponen utama PHP ikut dipasang, mulai dari yang paling dasar hingga ekstensi penting seperti pengolah gambar, koneksi ke database, komunikasi web, enkripsi, hingga layanan php-fpm.
sudo dnf install -y php php-mysqlnd php-gd php-intl php-curl php-xmlrpc php-soap php-xml php-mbstring php-zip php-opcache php-cli php-fpm

2.Setelah pemasangan selesai, layanan php-fpm diaktifkan agar dapat berjalan di latar belakang dan mendukung eksekusi skrip PHP pada web server. Selanjutnya, file pengujian dibuat dengan nama info.php, berisi skrip dasar PHP untuk menampilkan informasi konfigurasi server. File ini diletakkan di dalam folder root web server, dan diakses melalui browser untuk memastikan bahwa PHP telah berjalan dengan baik.
sudo systemctl enable php-fpm
sudo systemctl start php-fpm

3.File konfigurasi utama PHP (php.ini) disesuaikan agar pengaturan seperti zona waktu (date.timezone) cocok dengan lokasi server, dan pengaturan upload file sesuai kebutuhan. Dan setelah itu restart.
sudo nano /etc/php.ini
CTRL+O ENTER CTRL+X
systemctl restart php-fpm
systemctl restart httpd
4.File khusus dibuat untuk menguji apakah PHP sudah berjalan dengan benar. File ini berisi kode sederhana phpinfo() yang akan menampilkan seluruh informasi tentang konfigurasi PHP di server.
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

5.Setelah itu, folder tempat file web disimpan diberi hak akses supaya bisa dibaca oleh web server. Hal ini dilakukan dengan mengatur kepemilikan folder menjadi milik pengguna apache, serta memberikan hak akses baca dan tulis agar skrip PHP bisa dijalankan.
sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/html

6.Jika file berhasil dibuka di browser, berarti PHP sudah aktif dan terhubung dengan web server.

E. KONFIGURASI MAIL SERVER ( POSTFIX/DOVECOT | TELNET/THUNDERBIRD )
1. Pertama, dipasang dua aplikasi utama: Postfix dan Dovecot. Postfix digunakan untuk mengatur pengiriman email keluar, sedangkan Dovecot menangani akses email masuk dari sisi pengguna menggunakan protokol IMAP atau POP3.
dnf install postfix
dnf install dovecot
systemctl enable postfic
systemctl start postfix
systemctl enable dovecot
systemctl start dovecot

2. Menambahkan Akun Pengguna Dua akun baru, yaitu siswa1 dan siswa2, dibuat agar bisa digunakan untuk pengujian pengiriman dan penerimaan email secara lokal.
useradd siswa1
passwd siswa1
useradd siswa2
passwd siswa2

3.File konfigurasi utama Postfix disesuaikan agar mendukung pengiriman email lokal dan mengenali domain buatan sendiri, misalnya aylaputri.lab. Postfix juga diatur agar hanya bekerja untuk jaringan lokal agar lebih aman.
sudo nano /etc/postfix/main.cf
myhostname = mail.aylaputri.lab
mydomain = aylaputri.lab
myorigin = $myhostname
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, tkjb-5.lab
home_mailbox = Maildir/
mynetworks = 192.168.30.0/24, 127.0.0.0/8
systemctl restart postfix

4.Dovecot dikonfigurasi untuk mengizinkan user login dan mengambil email. Format mailbox disetel agar setiap user memiliki folder email pribadi.
sudo nano /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
sudo nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
sudo nano /etc/dovecot/conf.d/10-master.conf
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
systemctl restart dovecot


5. Mengaktifkan Firewall
firewall-cmd --permanent --add-service=smtp
firewall-cmd --permanent --add-service=imap
firewall-cmd --permanent --add-service=smtps
firewall-cmd --permanent --add-service=imaps
firewall-cmd --reload

6.Sebelum digunakan oleh aplikasi mail client, pengujian awal dilakukan dengan telnet ke port SMTP untuk memastikan server bisa menerima koneksi dan menangani komunikasi email. 

7.Aplikasi Thunderbird digunakan sebagai mail client. Akun siswa1 dan siswa2 dimasukkan ke Thunderbird untuk menguji apakah email bisa terkirim dan diterima.


8. Mengirim Pesan dari siswa1 ke siswa2 dan siswa2 ke siswa1

F. KONFIGURASI CMS ( WORDPRESS )

1. Database dibuat terlebih dahulu di MariaDB. Database ini akan digunakan untuk menyimpan semua data WordPress seperti postingan, user, tema, dan pengaturan lainnya.
sudo mysql -u root -p
CREATE DATABASE wordpress;
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'jaringan2025';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpayla'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2. .File instalasi WordPress diunduh langsung dari situs resminya lalu diekstrak ke dalam folder web, misalnya /var/www/html/wordpress.

cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz

3. Folder WordPress perlu diberikan hak akses kepada user dan grup Apache supaya file bisa dijalankan tanpa masalah.
sudo mv wordpress /var/www/html/
sudo chown -R apache:apache /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress

4.File konfigurasi WordPress diedit untuk menyesuaikan nama database, user, dan password yang sudah dibuat di MariaDB.
cd /var/www/html/wordpress
cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'admin' );
define( 'DB_PASSWORD', 'jaringan2025' );
define( 'DB_HOST', 'localhost' );
sudo systemctl restart httpd
sudo systemctl restart mariadb

5.Membuat Virtual Host Supaya Bisa Diakses Lewat Nama Domain Buat file konfigurasi di "/etc/httpd/conf.d/cms.tkjb-5.lab.conf". File ini mengatur supaya kita bisa akses Nagios lewat alamat http://cms.tkjb-5.lab di browser. Edit File Hosts Tambahkan IP dan domain ke file "/etc/hosts" agar domain lokal dikenali.

nano /etc/httpd/conf.d/cms.tkjb-5.lab.conf
<VirtualHost *:80>
    ServerName cms.tkjb-5.lab
    DocumentRoot /var/www/html/cms.tkjb-5.lab

    <Directory /var/www/html/cms.tkjb-5.lab>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/cms_error.log
    CustomLog /var/log/httpd/cms_access.log combined
</VirtualHost>
sudo nano /etc/hosts
192.168.30.105     cms.tkjb-5.lab
sudo systemctl restart httpd

6.Setelah semua siap, halaman instalasi WordPress bisa dibuka melalui browser dan proses instalasi bisa diselesaikan lewat tampilan web.
username= admin
password= jaringan2025

E. KONFIGURASI MONITORING SERVER

1. Karena Nagios tidak tersedia langsung di repository default RHEL, maka pemasangan dilakukan dengan cara mengunduh (download) kode sumbernya terlebih dahulu dari situs resmi. File yang diunduh berupa arsip .tar.gz yang berisi source code utama Nagios.
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.14.tar.gz
tar -zxvf nagios-4.4.14.tar.gz

2.User khusus dibuat untuk menjalankan layanan Nagios agar tidak mengganggu sistem utama. User ini juga digunakan saat proses kompilasi.
cd nagios-4.4.14
sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd apache
cd /tmp/nagios-4.4.14

3.Source code yang sudah diekstrak dikompilasi (make) dan hasilnya dipasang ke sistem. Setelah itu, konfigurasi web dan service dimasukkan.
./configure --with-command-group=nagcmd
make all

4.Membuat User Web Login User bernama nagiosadmin dibuat untuk bisa masuk ke halaman monitoring di web. Password ditentukan saat proses ini. Instalasi Plugin Nagios Plugin tambahan Nagios diunduh dan dipasang. Plugin ini berguna supaya Nagios bisa ngecek layanan seperti HTTP, Ping, dan lainnya.
cd /opt
wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar -xzf nagios-plugins-2.3.3.tar.gz
cd nagios-plugins-2.3.3
./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
make
make install

5.Membuka Akses Web di Firewall Karena Nagios nanti dibuka lewat browser, maka port 80 diaktifkan dan firewall direload agar bisa diakses.
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

6.Mengaktifkan Service untuk Nagios dan Apache dijalankan dan diatur supaya otomatis aktif kalau server dihidupkan.
systemctl enable httpd
systemctl start httpd
systemctl enable nagios
systemctl start nagios


7. Membuat Virtual Host Supaya Bisa Diakses Lewat Nama Domain Buat file konfigurasi di /etc/httpd/conf.d/monitoring.tkjb-5.lab.conf. File ini mengatur supaya kita bisa akses Nagios lewat alamat http://monitoring.tkjb-5.lab di browser. Edit File Hosts Tambahkan IP dan domain ke file /etc/hosts agar domain lokal dikenali.
sudo nano /etc/httpd/conf.d/monitoring.tkjb-5.lab.conf
<VirtualHost *:80>
    ServerName monitoring.tkjb-5.lab
    DocumentRoot /usr/local/nagios/share

    <Directory "/usr/local/nagios/share">
        Options None
        AllowOverride None
        Require all granted
    </Directory>

    ScriptAlias /cgi-bin/ /usr/local/nagios/sbin/
    <Directory "/usr/local/nagios/sbin">
        Options ExecCGI
        AllowOverride None
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/nagios_error.log
    CustomLog /var/log/httpd/nagios_access.log combined
</VirtualHost>

sudo nano /etc/hosts
192.168.30.105    monitoring.tkjb-5.lab

8.Restart Apache dan Mengakses http://monitoring.tkjb-5.lab lewat browser. Memasukkan user nagiosadmin dan password yang telah dibuat


F. KONFIGURASI LM ( MOODLE )

1. Sebuah database baru dibuat untuk menampung data Moodle. User database juga dibuat dan diberi akses penuh ke database tersebut.
sudo mysql -u root -p
CREATE DATABASE moodle;
CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'passwordku';
GRANT ALL PRIVILEGES ON moodle.* TO 'moodleuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2. Moodle versi terbaru diunduh dari situs resminya, lalu diekstrak ke direktori web server agar bisa diakses lewat browser.
cd /var/www/html
sudo wget https://download.moodle.org/latest.zip
sudo unzip latest.zip

3. Moodle memerlukan folder khusus untuk menyimpan data internal (seperti file upload dan cache). Folder ini dibuat di luar direktori web dan diberi izin akses yang benar. Supaya Moodle bisa berjalan dengan lancar, folder dan file perlu diberi hak akses agar bisa dibaca dan ditulis oleh web server.
sudo mkdir /var/moodledata
sudo chown -R apache:apache /var/moodledata
sudo chmod -R 755 /var/moodledata
sudo systemctl restart httpd
sudo systemctl restart mariadb

4.Membuat Virtual Host Supaya Bisa Diakses Lewat Nama Domain Buat file konfigurasi di /etc/httpd/conf.d/lms.tkjb-5.lab.conf. File ini mengatur supaya kita bisa akses Nagios lewat alamat http://lms.tkjb-5.lab di browser. Edit File Hosts Tambahkan IP dan domain ke file /etc/hosts agar domain lokal dikenali.
nano /etc/httpd/conf.d/lms.tkjb-5.lab.conf
<VirtualHost *:80>
    ServerName lms.tkjb-5.lab
    DocumentRoot /var/www/html/lms

    <Directory /var/www/html/lms>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/lms_error.log
    CustomLog /var/log/httpd/lms_access.log combined
</VirtualHost>
nano /etc/hosts
192.168.30.105    lms.tkjb-5.lab
systemctl restart httpd

5. Setelah semua beres, Moodle bisa dibuka dari browser. Di sana akan muncul tampilan instalasi grafis untuk mengisi data koneksi database dan menyelesaikan instalasi.


6. Menambahkan php_value[max_input_vars] = 5000 di nano /etc/php-fpm.d/www.conf. Setelahnya continue
systemctl restart httpd
systemctl restart php=fpm

7.Membuat user untuk lms.
username= admin
password= 1Ndonesi@

Komentar