Skip to content

Network Service

Ketika kita menggunakan linux, kita juga akan sering berhubunga dengan network services. Memliki kompoten pada network service sangat peting. Dalam dunia yang saling terhubung, kita harus memliki pengetahuan dan mampu menghubungkan setiap komputer melalui jaringan, transfer file, menganalisa lalulintas jaringan, dan bagaimana mengkonfigurasi seperti service untuk mengidentifikasi potensi kerentanan pada saat melakukan pnetration testing. Pengetahuan tersebut juga dapat mendongkrak pengetahun tentang network security sebagaimana yang telah kita pelajari sebelumnya dengan service, cara membuat dan mengkonfigurasinya, systemd

Bayangkan kita sedang malkukan penetration testing pada sebuah Linux host dan kita menemukan celah kerentanan dimana user linux tersebut terhubung ke server lain menggunakan FTP server yang tidak di unecnrypted. Dengan demikian kita dapat mendeteksi kredensial dari user dalam bentuk text yang jelas(tidak di uncrypted)

SSH

Secure Shell (SSH) adalah sebuah network protocol yang dapat melakukan transmisi data dan perintah (Command) dengan aman melalui network. Protokol ini banyak digunakan untuk me-remote sytem dengan aman dan mentransfer file dengan aman. Untuk terhubung ke our host atau remote host linux via SSH harus SSH Server service harus tersedia dan running.

SSH Server yang paling sering digunakan adalah OpenSSH server. Package tersebut free dan open-source dan implementasi dari protoko SHH yang mampu secara aman mengirim data atau perintah via jaringann.

Install OpenSSH
maruffarras@BrownTofu:~/Documents/Notes/kertas-pena$ sudo apt install openssh-server

Untuk mengecek apakah service ssh server sudah berjalan atau tidak gunakan command systemctl, telah di catatan di Task scheduling

Server ssh status

maruffarras@BrownTofu:~/Documents/Notes/kertas-pena$ systemctl status ssh
 ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-03-07 08:36:44 WIB; 2 days ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 1068 (sshd)
      Tasks: 1 (limit: 14180)
     Memory: 2.2M
        CPU: 130ms
     CGroup: /system.slice/ssh.service
             └─1068 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups

SSH Loging in

SSH terhubung dan menulis log ke dalam target tertentu yang dispesifikasikan saat login. ssh username@hostname[:port]. port bawaan dari SSH adalah 22, jika port tidak dirubah pada konfigurasi /etc/ssh/sshd_config makatidak perlu menuliskan port saat login ssh.

maruffarras@BrownTofu:~$ ssh maruffarras@192.168.1.68
maruffarras@192.168.1.68's password: 
Welcome to Ubuntu 21.10 (GNU/Linux 5.13.0-52-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 updates can be applied immediately.

Last login: Tue Mar  7 16:45:33 2023 from 192.168.1.19

setelah anda berhasil login ke target host menggunakan ssh, maka session anda akan terecord oleh target host. Untuk melihat siapa yang sedang login kedalam host gunakan perintah who

maruffarras@BrownTofu:~$ who
maruffarras tty2         2023-03-07 08:43 (tty2)
maruffarras pts/5        2023-03-09 16:38 (192.168.1.68)
maruffarras pts/6        2023-03-09 16:41 (192.168.1.75)
Contah diatas ada dua mesin yang terhubung ke komputer saya, juga tercatat alamat IPnya. Dikatakn diawal, ssh menulis semua log kedalam target host. Lalu bagaimana untuk melihat log ?

Untuk melihat log dari ssh service kita dapat menggunakan command journalctl1.

maruffarras@BrownTofu:$ journalctl -u ssh.service

OpenSSH dapat dikonfigurasi dan dikostumasi dengan meng-edit file /etc/ssh/sshd_config. Dalam file ini kita dapat mengatur seperti maximum number of concurrent connections, mengatur penggunaan password untuk login atau menggunakan key, pengecheckan key, pengaturan port dan lainnya.

NFS

Netwokr File System adalah sebuah network protokol yang dibuat oleh Sun Microsystem pada tahun 1084 .NFS digunakan untuk meyimpan dan menelola file-file pada remote system seperti kita menyimpannya pada sistem lokal. Protokol tersebut mudah dan efesin dalam memenejemeni file-file lintas jaringan. Sebagai contoh, administrator menggunakan Nfs untuk menyimpan dan mengelola file-file secara terpusat (misalkan linux dan windows) agar memudahkan kolaborasi dan pengelolaan data. Untuk linux ada beberapa NFS server, termasuk NFS-UTILS (Ubuntu), NFS-Ganesha (Solaris), dan OpenNFS (Redhat Linux).

Fungsi dari protokol ini selain dari berbagi dan pengelolan data-data secara efesian untuk mereplikasi file systems antara server. Namun juga memliki fitur seperti access control, real-time file transfer, dan dapat diakses oleh banyak pengguna secara simultan. Kita dapat menggunakan service ini seperti FTP (File Transfer Protocol)

Pada catatan sesi ini saya hanya mencatat dari sumber Hack The Box section Network Services, untuk melihat catatan saya dari sumber lain yang lebih lengkap tentang NFS dapat merujuk ke additional note

Instalasi NFS

Biasanya, pada ubuntu NFS sudah terinstall, namun jika belum maka install package nfs-kernel-server

sudo apt install nfs-kernel-server -y

Check status NFS service

Untuk melihat status service dari NFS gunakan command systemctl

maruffarras@BrownTofu:~$ systemctl status nfs-kernel-server.service
 nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2023-03-10 11:21:05 WIB; 3h 52min ago
    Process: 214602 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
    Process: 214603 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
   Main PID: 214603 (code=exited, status=0/SUCCESS)
        CPU: 11ms

Konfigurasi NFS

Kita dapat mengkongurasi NFS melalui file konfigurasi /etc/exports. File ini menspesifikasikan direktori mana yang harus di share dan user atau system mana yang dapat memliki akses ke file sharing tersebut. File tersebut juga dapat mengkonfigurasi kecepatan transfer dan penggunaan encryption. NFS Access Right menentukan siapa yang memliki akses dan direktorimana yang dibagikan. Dibawha ini adalah daftar hak ases yang dikonfigurasi didalam NFS.

Permissions Description
rw Gives users and systems read and write permissions to the shared directory.
ro Gives users and systems read-only access to the shared directory.
no_root_squash Prevents the root user on the client from being restricted to the rights of a normal user.
root_squash Restricts the rights of the root user on the client to the rights of a normal user.
sync Synchronizes the transfer of data to ensure that changes are only transferred after they have been saved on the file system.
async Transfers data asynchronously, which makes the transfer faster, but may cause inconsistencies in the file system if changes have not been fully committed.

Membuat NFS Share

zz

/etc/exports
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

/home/maruffarras/Arduino/faris_gerbang_manual  192.168.1.27(rw,sync,no_root_squash)
/home/maruffarras/Arduino/faris_gerbang_manual  172.17.0.2(ro,sync,no_root_squash)

Disini saya membuat dua baris konfigurasi untuk memberikan siap yang mendapatkan akses dan lokasi serta opsi-opsi mengenai hak ases. Disini saya memberikan akses pada '/home/maruffarras/Arduino/faris_gerbang_manual' pada alamat IP 192.168.1.27 dan 172.17.0.2.

Mount NFS Share

Oke sekarang saya akan mounting ke ubuntu dokcer saya. Kita menggunakan command mount untuk memasang external sharing folder dari NFS yang baru saja kita buat. Untuk mounting, ada beberapa cara, insyaAllah sesi ini hanya akan menggunakan dua cara. Lebih lanjut tentang mount lihat di additional note

Cara pada catatan ini

  1. Menggunakan opsi mount --all untuk memasang berdasarkan konfigurasi pada /etc/fstab
  2. Sama menggunaka command mount namun langsung dispesifikasikan device dan mount pointnya.
Menggunakan opsi --all

Opsi --all memasang (mounting) semua file system pada setiap baris pada file /etc/fstab

/etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
192.168.1.68:/home/maruffarras/Arduino/faris_gerbang_manual /home nfs
root@ubuntu-2:/home# mount --all
Mensepsifikasikan langsung pada command mount
root@ubuntu-2:/home# mount 192.168.76.110:/home/maruffarras/Arduino/faris_gerbang_manual mount_place

Daftar mounting file system

Untuk melihat daftar lokasi mount yang ada pada system gunakan perintah

root@ubuntu-2:/home# mount -l


  1. Untuk mempelajari tentang perintah journalctl dapat menujuke additional note journalctl