Kategori
Cisco CyberOps

Linux Overview [2/2]

The Linux File System

The File System Types in Linux

Ada banyak jenis sistem file yang berbeda, bervariasi dalam sifat kecepatan, fleksibilitas, keamanan, ukuran, struktur, logika, dan banyak lagi. Terserah administrator untuk memutuskan jenis sistem file mana yang paling sesuai dengan sistem operasi dan file yang akan disimpannya.

Tabel tersebut mencantumkan beberapa jenis sistem file yang umum ditemukan dan didukung oleh Linux.

Linux File SystemDescription
ext2 (second extended file system)ext2 was the default file system in several major Linux distributions until supplanted by ext3.Almost fully compatible with ext2, ext3 also supports journaling (see below).ext2 is still the file system of choice for flash-based storage media because its lack of a journal increases performance and minimizes the number of writes.Because flash memory devices have a limited number of write operations, minimizing write operations increases the device’s lifetime.However, contemporary Linux kernels also support ext4, an even more modern file system, with better performance and which can also operate in a journal-less mode.
ext3 (third extended file system)ext3 is a journaled file system designed to improve the existing ext2 file system.A journal, the main feature added to ext3, is a technique used to minimize the risk of file system corruption in the event of sudden power loss.The file systems keeps a log (or journal) of all the file system changes about to be made.If the computer crashes before the change is complete, the journal can be used to restore or correct any eventual issues created by the crash.The maximum file size in ext3 file systems is 32 TB.
ext4 (fourth extended file system)Designed as a successor of ext3, ext4 was created based on a series of extensions to ext3.While the extensions improve the performance of ext3 and increase supported file sizes, Linux kernel developers were concerned about stability issues and were opposed to adding the extensions to the stable ext3.The ext3 project was split in two; one kept as ext3 and its normal development and the other, named ext4, incorporated the mentioned extensions.
NFS (Network File System)NFS is a network-based file system, allowing file access over the network.From the user standpoint, there is no difference between accessing a file stored locally or on another computer on the network.NFS is an open standard which allows anyone to implement it.
CDFS (Compact Disc File System)CDFS was created specifically for optical disk media.
Swap File SystemThe swap file system is used by Linux when it runs out of RAM.Technically, it is a swap partition that does not have a specific file system, but it is relevant to the file system discussion.When this happens, the kernel moves inactive RAM content to the swap partition on the disk.While swap partitions (also known as swap space) can be useful to Linux computers with a limited amount of memory, they should not be considered as a primary solution.Swap partition is stored on disk which has much lower access speeds than RAM.
HFS Plus or HFS+ (Hierarchical File System Plus)A file system used by Apple in its Macintosh computers.The Linux kernel includes a module for mounting HFS+ for read-write operations.
APFS (Apple File System)An updated file system that is used by Apple devices. It provides strong encryption and is optimized for flash and solid-state drives.
Master Boot Record (MBR)Located in the first sector of a partitioned computer, the MBR stores all the information about the way in which the file system is organized.The MBR quickly hands over control to a loading function, which loads the OS.

Mounting adalah istilah yang digunakan untuk proses menetapkan direktori ke partisi. Setelah operasi pemasangan berhasil, sistem file yang terdapat pada partisi dapat diakses melalui direktori yang ditentukan. Dalam konteks ini, direktori disebut titik pemasangan untuk sistem file itu. Pengguna Windows mungkin akrab dengan konsep serupa; huruf penggeraknya.

Output perintah menunjukkan output dari perintah mount yang dikeluarkan di Cisco CyberOPS VM.

Saat dikeluarkan tanpa opsi, mount mengembalikan daftar sistem file yang saat ini dipasang di komputer Linux. Sementara banyak sistem file yang ditampilkan berada di luar cakupan kursus ini, perhatikan sistem file root (disorot). Sistem file root diwakili oleh simbol “/” dan menyimpan semua file di komputer secara default. Juga ditunjukkan dalam output bahwa sistem file root diformat sebagai ext4 dan menempati partisi pertama dari drive pertama (/ dev/sda1).

Linux Roles and File Permissions

Di Linux, sebagian besar entitas sistem diperlakukan sebagai file. Untuk mengatur sistem dan menegakkan batasan di dalam komputer, Linux menggunakan izin file. Izin file dibangun ke dalam struktur sistem file dan menyediakan mekanisme untuk menentukan izin pada setiap file. Setiap file di Linux membawa izin filenya, yang menentukan tindakan yang dapat dilakukan pemilik, grup, dan orang lain dengan file tersebut. Hak izin yang mungkin adalah Baca, Tulis, dan Jalankan. Perintah ls dengan parameter -l mencantumkan informasi tambahan tentang file.

Pertimbangkan output dari perintah ls -l di output perintah.

Outputnya menyediakan banyak informasi tentang file space.txt.

Bidang pertama dari output menampilkan izin yang terkait dengan space.txt (-rwxrw-r–). Izin file selalu ditampilkan dalam urutan Pengguna, Grup, dan Lainnya.

File space.txt di memiliki izin berikut:

  • Tanda hubung (-) berarti ini adalah file. Untuk direktori, tanda hubung pertama adalah “d”.
  • Set karakter pertama adalah untuk izin pengguna (rwx). Pengguna, analis, yang memiliki file dapat Membaca, Menulis, dan menjalankan file.
  • Kumpulan karakter kedua adalah untuk izin grup (rw-). Grup, staf, yang memiliki file dapat Membaca dan Menulis ke file.
  • Kumpulan karakter ketiga adalah untuk izin pengguna atau grup lainnya (r–). Pengguna atau grup lain di komputer hanya dapat Membaca file.

Bidang kedua menentukan jumlah tautan keras ke file (nomor 1 setelah izin). Tautan keras membuat file lain dengan nama berbeda yang ditautkan ke tempat yang sama di sistem file (disebut inode). Ini berbeda dengan tautan simbolik, yang dibahas di halaman berikutnya.

Bidang ketiga dan keempat menampilkan masing-masing pengguna (analis) dan grup (staf) yang memiliki file.

Bidang kelima menampilkan ukuran file dalam byte. File space.txt memiliki 253 byte.

Kolom keenam menampilkan tanggal dan waktu modifikasi terakhir.

Bidang ketujuh menampilkan nama file.

Gambar tersebut menunjukkan perincian izin file di Linux.

Gunakan nilai oktal untuk menentukan izin.

BinaryOctalPermissionDescription
0000No access
0011–xExecute only
0102-w-Write only
0113-wxWrite and Execute
1004r–Read only
1015r-xRead and Execute
1106rw-Read and Write
1117rwxRead, Write and Execute

Izin file adalah bagian mendasar dari Linux dan tidak dapat dilanggar. Pengguna hanya memiliki hak atas file yang diizinkan oleh izin file. Satu-satunya pengguna yang dapat mengesampingkan izin file di komputer Linux adalah pengguna root. Karena pengguna root memiliki kekuatan untuk mengesampingkan izin file, pengguna root dapat menulis ke file apa pun. Karena semuanya diperlakukan sebagai file, pengguna root memiliki kendali penuh atas komputer Linux. Akses root sering kali diperlukan sebelum melakukan tugas pemeliharaan dan administratif. Karena kekuatan pengguna root, kredensial root harus menggunakan kata sandi yang kuat dan tidak dibagikan kepada siapa pun selain administrator sistem dan pengguna tingkat tinggi lainnya.

Tautan keras adalah file lain yang menunjuk ke lokasi yang sama dengan file aslinya. Gunakan perintah ln untuk membuat tautan keras. Argumen pertama adalah file yang ada dan argumen kedua adalah file baru. Seperti yang ditunjukkan pada output perintah, file space.txt ditautkan ke space.hard.txt dan bidang tautan sekarang menunjukkan 2.

Kedua file menunjuk ke lokasi yang sama di sistem file. Jika Anda mengubah satu file, yang lain juga berubah. Perintah echo digunakan untuk menambahkan beberapa teks ke space.txt. Perhatikan bahwa ukuran file untuk space.txt dan space.hard.txt meningkat menjadi 257 byte. Jika Anda menghapus space.hard.txt dengan perintah rm (hapus), file space.txt masih ada, sebagaimana diverifikasi dengan perintah more space.txt.

Tautan simbolik, juga disebut symlink atau tautan lunak, mirip dengan tautan keras yang menerapkan perubahan pada tautan simbolik juga akan mengubah file asli. Seperti yang ditunjukkan pada output perintah di bawah ini, gunakan opsi perintah ln -s untuk membuat tautan simbolik.

Perhatikan bahwa menambahkan baris teks ke test.txt juga menambahkan baris ke mytest.txt. Namun, tidak seperti tautan keras, menghapus file text.txt asli berarti mytext.txt sekarang ditautkan ke file yang sudah tidak ada lagi, seperti yang ditunjukkan dengan lebih banyak perintah mytest.txt dan ls -l mytest.txt.

Meskipun tautan simbolik memiliki satu titik kegagalan (file yang mendasarinya), tautan simbolik memiliki beberapa manfaat dibandingkan tautan keras:

  • Menemukan tautan keras lebih sulit. Tautan simbolis menunjukkan lokasi file asli dalam perintah ls -l, seperti yang ditunjukkan pada baris terakhir keluaran pada keluaran perintah sebelumnya (mytest.txt -> test.txt).
  • Tautan keras terbatas pada sistem file tempat tautan itu dibuat. Tautan simbolis dapat menautkan ke file di sistem file lain.
  • Tautan keras tidak dapat ditautkan ke direktori karena sistem itu sendiri menggunakan tautan keras untuk menentukan hierarki struktur direktori. Namun, tautan simbolik dapat ditautkan ke direktori.

Working with the Linux GUI

X Window System

Antarmuka grafis yang ada di sebagian besar komputer Linux didasarkan pada Sistem X Window. Juga dikenal sebagai X atau X11, X Window adalah sistem windowing yang dirancang untuk menyediakan kerangka dasar untuk GUI. X menyertakan fungsi untuk menggambar dan memindahkan jendela pada perangkat tampilan dan berinteraksi dengan mouse dan keyboard.

X berfungsi sebagai server yang memungkinkan pengguna jarak jauh menggunakan jaringan untuk terhubung, memulai aplikasi grafis, dan membuka jendela grafis pada terminal jarak jauh. Sementara aplikasi itu sendiri berjalan di server, aspek grafisnya dikirim oleh X melalui jaringan dan ditampilkan di komputer jarak jauh.

Perhatikan bahwa X tidak menentukan antarmuka pengguna, meninggalkannya ke program lain, seperti manajer jendela, untuk mendefinisikan semua komponen grafis. Abstraksi ini memungkinkan fleksibilitas dan penyesuaian yang hebat karena komponen grafis seperti tombol, font, ikon, batas jendela, dan skema warna semuanya ditentukan oleh aplikasi pengguna. Karena pemisahan ini, GUI Linux sangat bervariasi dari distribusi ke distribusi. Contoh window manager adalah Gnome dan KDE. Meskipun tampilan dan nuansa window manager bervariasi, komponen utamanya tetap ada.

Angka tersebut menampilkan Manajer Jendela Gnome.

Gambar ini menampilkan KDE Windows Manager.

The Linux GUI

Meskipun sistem operasi tidak memerlukan GUI untuk berfungsi, GUI dianggap lebih ramah pengguna daripada CLI. GUI Linux secara keseluruhan dapat dengan mudah diganti oleh pengguna. Karena banyaknya distribusi Linux, bab ini berfokus pada Ubuntu ketika membahas Linux karena merupakan distribusi yang sangat populer dan ramah pengguna.

Ubuntu Linux menggunakan Gnome 3 sebagai GUI defaultnya. Tujuan Gnome 3 adalah membuat Ubuntu lebih ramah pengguna. Tabel mencantumkan komponen UI utama Unity.

Gambar tersebut menunjukkan lokasi beberapa fitur Desktop Ubuntu Gnome 3.

UI ComponentDescription
Apps MenuThe Apps Menu shows icons for the apps that are installed on the system.A right-click menu provides shortcuts that allow starting or configuring the apps.The system search box is available from Activities View.
Ubuntu DockThis is a dock on the left side of the screen that serves as an application launcher and switcher for app favorites.Click to launch an application and when the application is running, click again to switch between running applications.If more than one instance of an application is running, Launcher will display all instances.Right-click any application that is hosted on the launcher to see details about that the application.
Top BarThis multipurpose menu bar contains a menu for the application that currently has the focus.It displays the current time and indicates whether there are new system messages.It also provides access to the Activity desktop view and the system Status Menu.
Calendar and System Message TrayClick the day and time to see the full appointment calendar and any current system messages.Access the appointment calendar from here to create new appointments.
ActivitiesSwitch to application view to switch to or close running applications.A powerful search tool is available here that will find apps, files, and values within files.Allows switching between workspaces.
Status MenuAllows configuration of the network adaptor and other running devices.The current user can logoff or change their settings.System configuration changes can be made here.The workstation can be locked or shutdown from here.

Working on a Linux Host

Installing and Running Applications on a Linux Host

Banyak aplikasi pengguna akhir adalah program kompleks yang ditulis dalam bahasa yang dikompilasi. Untuk membantu proses instalasi, Linux sering menyertakan program yang disebut manajer paket. Paket adalah istilah yang digunakan untuk merujuk pada suatu program dan semua file pendukungnya. Dengan menggunakan manajer paket untuk menginstal paket, semua file yang diperlukan ditempatkan di lokasi sistem file yang benar.

Manajer paket bervariasi tergantung pada distribusi Linux. Misalnya, pacman digunakan oleh Arch Linux sementara dpkg (paket Debian) dan apt (Alat Pengemasan Lanjutan) digunakan di distribusi Linux Debian dan Ubuntu. Untuk kursus ini, kita akan menggunakan pengelola paket pacman.

Output perintah menunjukkan output dari beberapa perintah apt-get yang digunakan dalam distribusi Debian.

Perintah apt-get update digunakan untuk mendapatkan daftar paket dari repositori paket dan memperbarui database paket lokal. Perintah apt-get upgrade digunakan untuk memperbarui semua paket yang saat ini diinstal ke versi terbarunya.

Keeping the System Up to Date

Also known as patches, OS updates are released periodically by OS companies to address any known vulnerabilities in their operating systems. While companies have update schedules, the release of unscheduled OS updates can happen when a major vulnerability is found in the OS code. Modern operating systems will alert the user when updates are available for download and installation, but the user can check for updates at any time.

The following table compares Arch Linux and Debian / Ubuntu Linux distribution commands to perform package system basic operations.

TaskArchDebian / Ubuntu
Install a package by namepacman -Sapt install
Remove a package by namepacman -Rsapt remove
Update a local packagepacman -Syyapt-get update
Upgrade all currently installed packagespacman -Syuapt-get upgrade

GUI Linux juga dapat digunakan untuk memeriksa dan menginstal pembaruan secara manual. Di Ubuntu misalnya, untuk menginstal pembaruan Anda akan mengklik Dash Search Box, ketik pembaruan perangkat lunak, lalu klik ikon Pembaruan Perangkat Lunak, seperti yang ditunjukkan pada gambar.

Processes and Forks

Proses adalah contoh yang berjalan dari program komputer. Sistem operasi multitasking dapat menjalankan banyak proses secara bersamaan.

Forking adalah metode yang digunakan kernel untuk memungkinkan suatu proses membuat salinan dirinya sendiri. Proses membutuhkan cara untuk membuat proses baru dalam sistem operasi multitasking. Operasi fork adalah satu-satunya cara untuk melakukannya di Linux.

Forking penting karena berbagai alasan. Salah satunya terkait dengan skalabilitas proses. Apache, server web populer, adalah contoh yang bagus. Dengan forking sendiri, Apache mampu melayani sejumlah besar permintaan dengan sumber daya sistem yang lebih sedikit daripada server berbasis proses tunggal.

Ketika sebuah proses memanggil garpu, proses pemanggil menjadi proses induk, dengan proses yang baru dibuat disebut sebagai anaknya. Setelah percabangan, prosesnya, sampai batas tertentu, merupakan proses independen; mereka memiliki ID proses yang berbeda tetapi menjalankan kode program yang sama.

Tabel mencantumkan tiga perintah yang digunakan untuk mengelola proses.

CommandDescription
psUsed to list the processes running on the computer at the time it is invoked.It can be instructed to display running processes that belong to the current user or other users.While listing processes does not require root privileges, killing or modifying other user’s processes does.
topUsed to list running processes, but unlike pstop keeps displaying running processes dynamically.Press q to exit top.
killUsed to modify the behavior of a specific process.Depending on the parameters, kill will remove, restart, or pause a process.In many cases, the user will run ps or top before running kill.This is done so the user can learn the PID of a process before running kill.

Output perintah menunjukkan output dari perintah teratas pada komputer Linux.

Malware on a Linux Host

Malware Linux termasuk virus, Trojan horse, worm, dan jenis malware lainnya yang dapat memengaruhi sistem operasi. Karena sejumlah komponen desain seperti struktur sistem file, izin file, dan pembatasan akun pengguna, sistem operasi Linux umumnya dianggap lebih terlindungi dari malware.

Meskipun bisa dibilang lebih terlindungi, Linux tidak kebal terhadap malware. Banyak kerentanan telah ditemukan dan dieksploitasi di Linux. Ini berkisar dari perangkat lunak server hingga kerentanan kernel. Penyerang dapat mengeksploitasi kerentanan ini dan mengkompromikan target. Karena Linux adalah open source, perbaikan dan patch sering tersedia dalam beberapa jam setelah ditemukannya masalah tersebut.

Jika program jahat dijalankan, itu akan menyebabkan kerusakan, terlepas dari platformnya. Vektor serangan Linux yang umum adalah layanan dan prosesnya. Kerentanan sering ditemukan di server dan kode proses yang berjalan di komputer yang terhubung ke jaringan. Versi lama dari server web Apache dapat berisi kerentanan yang belum ditambal yang dapat dieksploitasi oleh penyerang, misalnya. Penyerang sering menyelidiki port terbuka untuk menilai versi dan sifat server yang berjalan pada port tersebut. Dengan pengetahuan itu, penyerang dapat meneliti jika ada masalah yang diketahui dengan versi tertentu dari server tertentu untuk mendukung serangan tersebut. Seperti kebanyakan kerentanan, menjaga komputer diperbarui dan menutup layanan dan port yang tidak digunakan adalah cara yang baik untuk mengurangi peluang serangan di komputer Linux.

Keluaran perintah menunjukkan penyerang menggunakan perintah Telnet untuk menyelidiki sifat dan versi server web (port 80).

Penyerang telah mengetahui bahwa server yang dimaksud menjalankan nginx versi 1.12.0. Langkah selanjutnya adalah meneliti kerentanan yang diketahui dalam kode nginx 1.12.0.

Catatan: Anda akan mempelajari lebih lanjut tentang serangan ini nanti di kursus.

Rootkit Check

Rootkit adalah jenis malware yang dirancang untuk meningkatkan hak istimewa pengguna yang tidak sah atau memberikan akses ke bagian perangkat lunak yang biasanya tidak diizinkan. Rootkit juga sering digunakan untuk mengamankan backdoor ke komputer yang disusupi.

Instalasi rootkit dapat dilakukan secara otomatis (dilakukan sebagai bagian dari infeksi) atau penyerang dapat menginstalnya secara manual setelah merusak komputer. Rootkit bersifat merusak karena mengubah kode kernel dan modulnya, mengubah operasi paling mendasar dari OS itu sendiri. Dengan tingkat kompromi yang begitu dalam, rootkit dapat menyembunyikan intrusi, menghapus trek instalasi apa pun, dan bahkan mengutak-atik alat pemecahan masalah dan diagnostik sehingga keluarannya sekarang menyembunyikan keberadaan rootkit. Sementara beberapa kerentanan Linux melalui sejarah telah memungkinkan instalasi rootkit melalui akun pengguna biasa, sebagian besar kompromi rootkit memerlukan akses root atau administrator.

Karena sifat dasar komputer dikompromikan, deteksi rootkit bisa sangat sulit. Metode deteksi tipikal sering kali mencakup booting komputer dari media tepercaya seperti live CD sistem operasi diagnostik. Drive yang disusupi dipasang dan, dari kumpulan alat sistem tepercaya, alat diagnostik tepercaya dapat diluncurkan untuk memeriksa sistem file yang disusupi. Metode pemeriksaan meliputi metode berbasis perilaku, pemindaian tanda tangan, pemindaian perbedaan, dan analisis dump memori.

Penghapusan rootkit bisa rumit dan seringkali tidak mungkin, terutama dalam kasus di mana rootkit berada di kernel; instalasi ulang sistem operasi biasanya merupakan satu-satunya solusi nyata untuk masalah tersebut. Rootkit firmware biasanya memerlukan penggantian perangkat keras.

chkrootkit adalah program berbasis Linux populer yang dirancang untuk memeriksa komputer untuk rootkit yang diketahui. Ini adalah skrip shell yang menggunakan alat Linux umum seperti string dan grep untuk membandingkan tanda tangan dari program inti. Itu juga mencari perbedaan saat melintasi sistem file /proc membandingkan tanda tangan yang ditemukan di sana dengan output ps.

Meskipun bermanfaat, perlu diingat bahwa program untuk memeriksa rootkit tidak 100% dapat diandalkan.

Output perintah menunjukkan output dari chkrootkit pada Linux Ubuntu.

Piping Commands

Meskipun alat baris perintah biasanya dirancang untuk melakukan tugas yang spesifik dan terdefinisi dengan baik, banyak perintah dapat digabungkan untuk melakukan tugas yang lebih kompleks dengan teknik yang dikenal sebagai perpipaan. Dinamakan setelah karakter yang menentukan, pipa (|), perpipaan terdiri dari perintah rantai bersama-sama, memberi makan output dari satu perintah ke input yang lain.

Misalnya, perintah ls digunakan untuk menampilkan semua file dan direktori dari direktori tertentu. Perintah grep membandingkan pencarian melalui file atau teks mencari string yang ditentukan. Jika ditemukan, grep menampilkan seluruh isi folder tempat string ditemukan.

Kedua perintah, ls dan grep, dapat disalurkan bersama-sama untuk menyaring keluaran ls. Ini ditunjukkan dalam output dari ls -l | perintah grep host dan ls -l | perintah file grep.

Ref : [1][2][3]