Konfigurasi Lengkap Server Debian 12

  

Download Debian 12 Bookworm CD Netinst disini dan DVD disini

A. Konfigurasi IP address

Melihat ip :

ip a

Mengedit konfigurasi ip address

nano /etc/network/interfaces


Edit dan tambahkan konfigurasi berikut

auto enp0s3
iface enp0s3 inet dhcp
auto enp0s8
iface enp0s8 inet static
address 192.168.10.1/24

Menyimpan konfigurasi ( ctrl + x -> y -> enter )
Merestart konfigurasi IP

systemctl restart networking


B. Mengkonfigurasi repository

nano /etc/apt/sources.list

Jika menggunakan DVD, Anda gunakan perintah berikut :

apt-cdrom add

Anda bisa menambahkan daftar repository lokal Indonesia.

Tambahkan tulisan berikut ini ke dalam editor

deb http://kebo.pens.ac.id/debian/ bookworm main contrib

Jika Anda menggunakan repositori lokal offline bisa ganti alamat url dengan alamat IP

deb http://10.10.10.1/debian/ bookworm main contrib

Selanjutnya lakukan update repository untuk mendapatkan pembaharuan

apt-get update

Jika terjadi gagal/error update repository, coba reboot system operasi

reboot


C. Install Web server (apache2)

apt install apache2 -y


E. DNS SERVER (bind9)

Misal :
Nama Domain : lksjatim.org
IP Server : 192.168.10.1

1. Install bind9

apt-get install bind9 bind9utils dnsutils

2. Masuk ke directory /etc/bind

cd /etc/bind

3. Edit file named.conf.default-zones

nano named.conf.default-zones

4. Tambahkan sintaks berikut di baris terakhir

zone"lksjatim.org"{
    type master;
    file"/etc/bind/";
};
zone"10.168.192.in-addr.arpa"{
    type master;
    file"/etc/bind/www.127";
};


5. Copy db.local menjadi www.local

cp db.local www.local

# File ini disebut forward lookup zone

6. Copy db.127 menjadi www.127

cp db.local www.127

# File ini disebut reverse lookup zone

7. Lanjut edit file www.local

nano www.local

Ganti localhost dengan nama domain kita lksjatim.org

@       IN      SOA     lksjatim.org. root.lksjatim.org. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      lksjatim.org.
@       IN      A       192.168.10.1
@       IN      A       192.168.10.1
NS      IN      A       192.168.10.1
www     IN      A       192.168.10.1
mail    IN      A       192.168.10.1



8. Lanjut edit file www.127

nano www.127

Ganti localhost dengan nama domain kita lksjatim.org

@       IN      SOA     lksjatim.org. root.lksjatim.org. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      lksjatim.org.
10      IN      PTR     lksjatim.org.



9. Lakukan restart bind9

systemctl restart bind9

10. Tes di server debian :

nslookup lksjatim.org

11. Setting resolv.conf

nano /etc/resolv.conf

edit atau tambahkan

nameserver 192.168.10.1

domain lksjatim.org

12. Tes di computer client

Setting IP Address Gateway dan DNS sesuai IP Server: 

IP Address : 192.168.10.2/24
Gateway : 192.168.10.1
DNS : 192.168.10.1

12. Buka browser kemudian ketik alamat http://lksjatim.org

F. Mail server

1. Install menggunakan dovecot

apt install postfix dovecot-imapd dovecot-pop3d -y

Untuk konfigurasi ketik

sudo dpkg-reconfigure postfix

2. Ikuti langkah-langkah selanjutnya

  • Pertama pilih Internet Site
  • System mail name isi dengan nama domain misalnya lksjatim.org
  • Pada bagian Root and postmaster.... kosongkan saja.
  • Pada Other destionations to accept ..... biarkan default.
  • Force synchronous updates no
  • Pada bagian Local networks tambahkan dengan IP network dan 0/0 dibelakang 128 (tambahkan spasi) 
  • Misal : 192.168.10.0/24 [::ffff:127.0.0.0]/104 [::1]/128 0/0
  • Use procmail for local delivery no
  • Mailbox size limit 0
  • Local address extension character "+"
  • Internet Protocol ipv4

3. Pengaturan Postfix

nano /etc/postfix/main.cf


Edit bagian ini

myhostname = lksjatim.org


Tambahkan pada baris bagian paling bawah

home_mailbox = Maildir/


4. Pengaturan dovecot

nano /etc/dovecot/dovecot.conf

Hilangkan hashtag (#) pada bagian listen dan edit sehingga menjadi

listen = *

5. Buka dan edit bagian berikut, hilangkan hashtag (#) :

nano /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = no


6. Selanjutnya lakukan edit juga bagian ini (hilangkan #):

nano /etc/dovecot/conf.d/10-main.conf

mail_location = maildir:~/Maildir


Berikan comment (#) di mail_location di bawahnya

#mail_location = mbox:~/mail:INBOX=/var/mail/%u

7. Tambah user :

adduser user1

adduser user2

8. Membuat directory penyimpanan Maildir

maildirmake.dovecot /etc/skel/Maildir

9. Restart postfix

systemctl restart postfix

10. Restart dovecot

systemctl restart dovecot


11. Mengirim email dari user1 ke user2 ketik perintah berikut :

telnet 192.168.56.2 25
atau
telnet lksjatim.org 25

Trying 192.168.56.2...
Connected to 192.168.56.2.
Escape character is '^]'.
220 lksjatim.com ESMTP Postfix (Debian/GNU)
mail from: user1
250 2.1.0 Ok
rcpt to: user2
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Halo, ini email dari user1
.
250 2.0.0 Ok: queued as 3A613616
quit
221 2.0.0 Bye
Connection closed by foreign host.


12. Melihat inbox email di user2 ketik perintah berikut :

telnet 192.168.56.2 110
atau
telnet lksjatim.org 110

Trying 192.168.56.2...
Connected to 192.168.56.2.
Escape character is '^]'.
+OK Dovecot (Debian) ready.
user user2
+OK
pass user2
+OK Logged in.
stat
+OK 1 384
retr 1
+OK 384 octets
Return-Path: <user1@lksjatim.com>
X-Original-To: user2
Delivered-To: user2@lksjatim.com
Received: from unknown (unknown [192.168.56.2])
        by lksjatim.com (Postfix) with SMTP id 446E4954
        for <user2>; Mon, 13 Jan 2025 02:57:46 -0800 (PST)
Message-Id: <20250113105752.446E4954@lksjatim.com>
Date: Mon, 13 Jan 2025 02:57:46 -0800 (PST)
From: user1@lksjatim.com

Halo, ini email dari user1
.
quit


G. Install roundcube


1. Terlebih dahulu install mariadb-server sebagai database

apt install mariadb-server -y

2. Selanjutnya install roundcube

apt install roundcube -y

3. Masuk dan edit file berikut

nano /etc/roundcube/config.inc.php

$config['imap_host'] = 'lksjatim.org'; // isi dengan nama domain utama
$config['imap_server'] = 'lksjatim.org:25';  // isi dengan nama domain utama dan port 25 untuk SMTP server
$config['smpt_user'] = ''; // dikosongkan
$config['smpt_pass'] = ''; // dikosongkan


4. Buat VirtualHost di Apache

cd /etc/apache2/sites-available

5. Copy file 000-default.conf menjadi mail.conf

cp 000-default.conf mail.conf

Tambahkan kode ini 

ServerName mail.lksjatim.org

DocumentRoot /usr/share/roundcube

6. Mengaktifkan file config

a2ensite mail.conf

systemctl reload apache2

7. Untuk melakukan pengetesan webmail buka alamat berikut di browser

http://mail.lksjatim.org

Untuk pengujian, nonaktifkan nameserver 8.8.8.8 pada /etc/resolv.conf


H. SSH SERVER

1. Install paket ssh :

apt-get install openssh-server -y

2. Setting konfigurasi :

nano /etc/ssh/sshd_config

3. Ubah port 22 : port 1734

4. Hapus tanda pagar (#) pada baris ini dan edit

PermitRootLogin yes

reboot


I. DHCP SERVER

1. Install DHCP Server

apt-get install isc-dhcp-server

2. Edit file dhcpd.conf

nano /etc/dhcp/dhcpd.conf

3. Cari baris “A Slightly different" dan edit


subnet 172.10.10.0 netmask 255.255.255.0{
  range 172.10.10.100 172.10.10.200;
  option domain-nameserver 172.10.10.1;
  option routers 172.10.10.1;
  option broadcast-address 172.10.10.255;
  default-lease-time 600;
  max-lease-time;
}

4. Edit pengaturan interface ethernet

nano /etc/default/isc-dhcp-server

5. Ubah berikut

INTERFACESv4="enp0s8";

systemctl restart isc-dhcp-server


K. Konfigurasi SSL (HTTPS)

1. Install openssl dan ssl-cert

apt-get install openssl ssl-cert

2. Selanjutnya buat folder ssl untuk meletakkan sertifikat SSL

mkdir /etc/apache2/ssl

3. Masuk ke direktori ssl

cd /etc/apache2/ssl

4. Kemudian buat sertifikat di folder yang sudah kita buat

openssl req -x509 -newkey rsa:2048 -keyout apache.key -out apache.crt -nodes -days 365

Country Name (2 letter code) [AU]: ID 
State or Province Name (full name) [Some-State]: East Java
Locality Name (eg, city) []: Tulungagung
Organization Name (eg, company) [Internet Widgits Pty Ltd]: SMK NU
Organizational Unit Name (eg, section) []: TKJ
Common name (e.g. server FQDN or YOUR name) []: Anton Arizal 
Email Address []: antonarizal@gmail.com

5. Aktifkan model ssl dengan perintah

a2enmod ssl

6. Selanjutnya masuk ke directory /etc/apache2/sites-available dengan perintah

cd /etc/apache2/sites-available

7. Setelah itu konfigurasi file default-ssl.conf dengan mengetikkan perintah 

nano default-ssl.conf

8. Cari kata SSLCertificateFile dan SSLCertificateKeyFile. Kedua file tersebut arahkan ke file yang sudah kita buat tadi yaitu apache.key dan apache.crt. yaitu /etc/apache2/ssl/apache.key dan /etc/apache2/ssl/apache.crt

SSLCertificateFile      /etc/apache2/ssl/apache.crt

SSLCertificateKeyFile   /etc/apache2/ssl/apache.key


9. Selanjutnya aktifkan file default-ssl.conf dengan perintah 

a2ensite default-ssl.conf

 10. Lakukan reload apache2 dengan perintah

sytemctl reload apache2 


11. Buka browser di client kemudian ketika alamat : https://lksjatim.org

Referensi :

https://medium.com/tekaje-id/debian-10-http-secure-dengan-apache2-dan-ssl-5a1d5767a5

Penjelasan tentang SSL :

openssl req → Menggunakan OpenSSL untuk membuat permintaan sertifikat (Certificate Signing Request/CSR).
-x509 → Membuat sertifikat self-signed langsung tanpa harus melalui otoritas sertifikat (CA).
-newkey rsa:2048 → Membuat kunci privat RSA baru dengan panjang 2048-bit.
-keyout apache.key → Menyimpan kunci privat ke file apache.key.
-out apache.crt → Menyimpan sertifikat yang dihasilkan ke file apache.crt.
-nodes → Tidak mengenkripsi kunci privat, sehingga tidak meminta kata sandi setiap kali digunakan.
-days 365 → Menentukan masa berlaku sertifikat selama 365 hari.

L. Install Database Server 

apt install mariadb-server -y

Catatan :

Login ke database MySql

mysql -u -root -p

Membuat database

create database nama_database

Menampilkan database 

show databases

Membuat user

create user 'nama_user'@'localhost' identified by '123456'

Mengatur hak akses

grant all privileges on nama_database.* to 'nama_user'@'localhost';

flush privileges 


J. PHPMYADMIN

Phpmyadmin digunakan untuk melakukan pengelolaan database melalui web

Sebelumnya install mariadb-server

Kemudian install phpmyadmin

apt-get install phpmyadmin

Masuk ke mysql

sudo mysql -u root -p

buat username dan password mysql

mysql> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password';

Note: admin adalah nama username untuk login ke phpmyadmin
Buat hak akses untuk untuk username admin :


mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Keluar dari mysql

mysql> exit

Edit file /etc/apache2/apache2.conf

Tambahkan kode berikut di baris akhir

Include /etc/phpmyadmin/apache.conf

Simpan kemudian restart apache2

systemctl restart apache2

Buka di browser http://192.168.10.1/phpmyadmin

K. Load Balancing (HAProxy)

1. Install HAProxy

apt install haproxy -y


2. Edit Konfigurasi di nano /etc/haproxy/haproxy.cfg

nano /etc/haproxy/haproxy.cfg

3. Tambahkan konfigurasi

frontend http_front
    bind *:80
    default_backend web_servers
backend web_servers
    balance roundrobin
    server web1 192.168.10.11:80 check
    server web2 192.168.10.12:80 check
    server web3 192.168.10.13:80 check

4. Restart haproxy

systemctl restart haproxy
systemctl enable haproxy

K. Pengaturan Firewall

Jenis-jenis port dalam jaringan

  1. FTP (21)
  2. SSH (22)
  3. TELNET (23)
  4. SMTP (25)
  5. DNS (53)
  6. TFTP (69)
  7. HTTP (80)
  8. POP3 (110)
  9. IMAP (143)
  10. HTTPS (443)

Block Port yang masuk

iptables –A INPUT –p tcp –-dport 21 –j DROP

Block IP yang masuk

iptables –A INPUT –s 192.168.10.1 –j DROP

Mengijinkan port yang masuk

iptables –A INPUT –p tcp –-dport 21 –j ACCEPT

Menghapus semua konfigurasi IPTables

iptables –X

iptables –F

Perintah Linux Lain

  1. passwd : mengganti password
  2. CTR+K = menghapus 1 baris
  3. dpkg -l = melihat list aplikasi yg diinstall
  4. ssh user1@192.168.10.1

Posting Komentar

Lebih baru Lebih lama