Network Adapter pada mesin virtual

Tag

, , , ,

Aplikasi virtualisasi komputer, atau yang biasa disebut dengan “mesin virtual”, mendukung beberapa tipe jaringan yang dapat disesuaikan dengankebutuhan kita. Tipe jaringan itu diantaranya adalah Network Address Translation, Bridged, dan Host Only.

Jenis Network Adapter

Network Address Translation

Network Address Translation, disingkat NAT, adalah cara paling praktis dalam mengakses jaringan eksternal dari sebuah mesin virtual. Biasanya tidak memerlukan konfigurasi lain pada jaringan host dan sistem guest. Untuk alasan ini merupakan modus jaringan default di VirtualBox.

Dengan aktifnya NAT, sebuah mesin virtual bertindak seperti komputer nyata yang terkoneksi dengan internet melalui sebuah router. “Router”, pada kasus ini adalah mesin jaringan  VirtualBox, di mana arus dari dan menuju mesin virtual menjadi transparan. Pada VirtualBox router ini ditempatkan di antara setiap mesin virtual dan host. Pemisahan ini memaksimalkan keamanan sejak mesin virtual default tidak dapat berkomunikasi satu sama lain.

Kekurangan NAT adalah seperti jaringan pribadi di belakang router, mesin virtual tidak terlihat dan tidak terjangkau dari internet luar, Anda tidak dapat menjalankan server dengan cara ini kecuali Anda mengatur port forwarding.

Network frames yang dikirim oleh sistem operasi Guest, diterima oleh mesin NAT pada VirtualBox, dimana yang mengeksekusi TCP/IP data dan mengirim ulang menggunakan sistem operasi host. Untuk aplikasi pada host, atau ke komputer lain di jaringan yang sama sebagai host, terlihat seperti data dikirim oleh aplikasi VirtualBox pada host, menggunakan sebuah alamat IP yang dimiliki host. VirtualBox menunggu balasan untuk paket yang dikirim, mengemas dan mengirim ulang paket tersebut ke mesin guest pada jaringan pribadi itu sendiri.

Bridged Networking

Dengan bridge networking, VirtualBox menggunakan perangkat driver pada komputer host yang menyaring data dari adapter jaringan fisik Anda. Karena itu driver ini disebut driver “net filter”. Hal ini memungkinkan VirtualBox untuk menangkap data dari jaringan fisik dan memasukkan data ke dalamnya, dengan efektif membuat jaringan antarmuka baru dalam perangkat lunak. Ketika guesrmenggunakan seperti antarmuka software baru, yang terlihat untuk sistem host seolah-olah guest secara fisik terhubung ke antarmuka menggunakan kabel jaringan: host dapat mengirim data ke guest melalui antarmuka tersebut dan menerima data dari itu. Ini berarti bahwa Anda dapat mengatur routing atau bridging antara guest dan seluruh jaringan Anda.

Agar ini bekerja, VirtualBox membutuhkan perangkat driver pada sistem host Anda. Cara menjembatani jaringan yang telah sepenuhnya ditulis ulang dengan VirtualBox 2.0 dan 2.1, tergantung pada sistem operasi host. Dari perspektif user, perbedaan utama adalah bahwa konfigurasi yang kompleks tidak lagi diperlukan pada setiap sistem operasi host yang didukung.

Perlu dicatat bahwa bridging antarmuka nirkabel tidak sama dengan bridging untuk antarmuka kabel, karena sebagian besar adapter nirkabel tidak mendukung modus promiscuous. Semua arus harus menggunakan MAC address dari adapter wireless host, dan karena itu VirtualBox perlu mengganti source MAC address di header Ethernet pada paket keluar untuk memastikan jawabannya akan dikirim ke antarmuka host. Ketika VirtualBox melihat paket yang masuk dengan alamat IP tujuan yang dimiliki salah satu adapter mesin virtual, akan menggantikan MAC address tujuan pada header Ethernet dengan MAC address adapter mesin virtual. VirtualBox memeriksa paket ARP dan DHCP untuk mempelajari pengalamatan IP pada mesin virtual.

Host-Only Networking

Host-only networking adalah modus jaringan lain yang ditambahkan dengan versi 2.2 dari VirtualBox. Hal ini dapat dianggap sebagai hybrid antara bridged networking dan internal networking: seperti jaringan bridge, mesin virtual dapat berbicara satu sama lain dan host seolah-olah mereka terhubung melalui switch Ethernet fisik. Seperti dengan jaringan internal, antarmuka jaringan fisik tidak perlu ditambahkan, dan mesin virtual tidak dapat berkomunikasi dengan dunia luar host karena mereka tidak terhubung ke antarmuka jaringan fisik.

Sebaliknya, ketika jaringan host-only digunakan, VirtualBox membuat antarmuka software baru pada host yang kemudian muncul di samping antarmuka jaringan yang ada. Dengan kata lain, dengan bridged networking, sebuah interface fisik yang sudah ada digunakan untuk melampirkan mesin virtual, dan dengan host-only networking, sebuah antarmuka “loopback” baru dibuat pada host. Serta dengan jaringan internal, trafik antara mesin virtual tidak dapat dilihat, trafik di antarmuka “loopback” pada host dapat disadap.

Host-only networking ini sangat berguna untuk peralatan virtual yang telah dikonfigurasikan, di mana beberapa mesin virtual dikirimkan bersama-sama dan dirancang untuk bekerja sama. Misalnya, satu mesin virtual dapat berisi web server dan mesin lain berisi database, dan karena mereka dimaksudkan untuk berkomunikasi satu sama lain, alat dapat menginstruksikan VirtualBox untuk mendirikan sebuah jaringan host-only untuk keduanya. Kedua (bridged) jaringan akan menghubungkan web server ke dunia luar untuk menyajikan data, tapi dunia luar tidak dapat terhubung ke database.

Perbandingan ketiga adapter tersebut

NAT Bridged Host-Only
Performa  tinggi  tinggi  rendah
PC (Host)  Tidak terhubung dengannya Terhubung dengannya Terhubung dengannya
Jaringan  fisik   Tidak terhubung dengannya   Tidak terhubung dengannya Terhubung dengannya
Layanan DHCP  Disediakan  Disediakan  Disediakan pada status ditemukannya DHCP server atau router
Koneksi Internet  Disediakan Tidak disediakan Disediakan

Sumber: i.huffpost.com, electronicgears.weebly.com, http://www.virtualbox.org, electronicgears.weebly.com, superuser.com, serverfault.com dengan pengeditan seperlunya

Iklan

NETSTAT

Tag

, , , ,

Netstat adalah perintah pada aplikasi baris perintah seperti Konsole/Terminal di mayoritas sistem operasi desktop berbasis UNIX, atau command prompt di Windows. Fungsi dari netstat sama seperti aplikasi pengelola tugas (task manager) yang biasa ditemukan pada komputer Windows dan sejumlah perangkat Android. Yang membedakan netstat dan pengelola tugas adalah, pengelola tugas menampilkan proses dan aplikasi yang sedang berjalan pada sebuah sistem komputer, sementara netstat menampilkan layanan jaringan yang sedang berjalan beserta informasi tambahan seperti alamat IP dan nomor portnya.

Berikut adalah salah satu contoh jendela Konsole:

capture-tabel-netstat-tuplen

Dilihat dari screenshot di atas, terdapat sejumlah kolom diantaranya:

  • Proto – berisi protokol yang sedang digunakan. Dalam contoh di atas menggunakan TCP.
  • Recv-Q -berisi jumlah byte data yang terhubung ke soket.
  • Send-Q – berisi jumlah byte data yang telah dikirim kepada layer transport namun belum diakui oleh host.
  • Local Address – berisi alamat IP yang digunakan oleh aplikasi yang sedang berjalan. Jika alamat IP yang dipakai adalah 0.0.0.0 berarti aplikasi telnet dapat diakses oleh semua jaringan.
  • Foreign Address – berisi alamat IP komputer yang terhubung dengan aplikasi tersebut.
  • State – berisi status keadaan socket. Jenisnya bisa bermacam-macam, diantaranya LISTEN, ESTABLISHED, TIME_WAIT, CLOSE_WAIT, dan CLOSE. Untuk keadaan LISTEN berarti socket sudah aktif dan sedang menunggu koneksi yang akan datang.
  • User – berisi user yang bertanggung jawab atas socket tersebut.
  • Inode – berisi nomor tabel inode. Pada tabel inode kita dapat melihat informasi seperti jenis berkas, perizinan, nomor UID dan GID, ukuran file, lokasi file dan informasi lainnya.
  • PID/Program name – berisi ID proses dan nama aplikasi yang memiliki socket tersebut.

User Management

Dalam sistem operasi Linux juga diperlukan manajemen user dan grup. Bayangkan jika dalam suatu perusahaan yang mempunyai ratusan karyawan dan mempunyai beberapa divisi didalamnya. Tentunya manajemen sangat diperlukan untuk hal ini agar lebih mudah dalam mengontrolnya apabila ada karyawan yang ingin membuat akun baru, mengganti password, atau ada karyawan yang resign dan akunnya mesti dihapus.

Dengan adanya manajemen user dan group ini jadinya akan lebih mudah dalam membagi setiap akun user pada tiap-tiap grup menurut divisinya masing masing. Dan juga mengatur hak kepemilikan file pada tiap-tiap user menurut grupnya masing-masing. Dalam pembahasan ini akan dijelaskan bagaimana membuat, memodifikasi, serta menghapus user dan grup di linux.

Manajemen User

Untuk melihat daftar user bisa dilihat didalam file /etc/passwd. Dalam file ini terdapat beberapa informasi mengenai username, password, user ID, group ID, deskripsi, direktori home, dan shell yang digunakan oleh user tersebut, yang dipisahkan dengan tanda “:” (titik dua) pada setiap barisnya.

  • username : ID pengguna bersangkutan
  • password : kata sandi terenkripsi untuk masuk ke account user bersangkutan
  • user ID : angka unik yang dimiliki setiap user
  • group ID : angka unik setiap grup dimana satu atau beberapa user dapat bergabung
  • direktori home : path absolut direktori home setiap user
  • shell : program yang dijalankan secara otomatis

Perintah manajemen user di Linux

  • adduser : berfungsi untuk menambah user baru dalam sistem
  • useradd : berfungsi untuk penambahan user kedalam sebuah grup
  • deluser : menghapus user dari sistem
  • userdel : menghapus user dari suatu grup

TCP/IP

Tag

, , , ,

Transmission Control Protocol/Internet Protocol, disingkat TCP/IP, adalah model jaringan komputer dan rangkaian protokol komunikasi yang digunakan di internet ataupun jaringan komputer yang mirip. Dikenal juga dengan nama suit protokol internet, yaitu dimana TCP/IP bertugas sebagai sekelompok protokol yang mengatur komunikasi data dalam proses tukar-menukar data antar komputer di dalam jaringan internet yang akan memastikan pengiriman data menuju alamat yang benar. Protokol ini tidak dapat berdiri sendiri karena merupakan kumpulan protokol. Protokol ini juga merupakan protokol yang saat ini paling banyak dipakai, karena kemampuannya bekerja dan penerapannya tidak bergantung pada perangkat lunak dan sistem operasi, sehingga apapun perangkat lunak dan sistem operasinya dapat menggunakan protokol ini. Istilah yang diberikan pada perangkat lunak ini disebut TCP/IP stack.

Sejarah

Protokol TCP/IP dikembangkan pada akhir dekade 1970an hingga awal 1980an sebagai sebuah protokol standar untuk menghubungkan beberapa komputer dan jaringan untuk membentuk sebuah jaringan luas yang disebut Wide Area Network (WAN). TCP/IP merupakan sebuah standar jaringan terbuka yang bersifat independen terhadap mekanisme transportasi jaringan fisik yang dipakai, sehingga dapat dipakai dimanapun. Protokol ini menggunakan skema addressing yang sederhana yang disebut IP Address yang mengizinkan hingga ratusan juta komputer untuk dapat saling berhubungan satu sama lain di internet. Protokol ini juga bersifat routable yang berarti protokol ini cocok untuk menghubungkan perangkat dengan platform berbeda untuk membentuk jaringan heterogen.
Protokol TCP/IP selalu berevolusi seiring dengan waktu, mengingat semakin banyaknya kebutuhan terhadap jaringan komputer dan Internet. Pengembangan ini dilakukan oleh beberapa badan, seperti halnya Internet Society, Internet Architecture Board, dan Internet Engineering Task Force. Macam-macam protokol yang berjalan diatas TCP/IP, skema pengalamatan, dan konsep TCP/IP didefinisikan dalam dokumen keluaran IETF yang dikenal sebagai Request for Comments.

Arsitektur TCP/IP

Arsitektur TCP/IP menggunakan model referensi DARPA, yang terkadang juga disebut sebagai DARPA Model, Internet Model atau DoD Model, dimana TCP/IP yang awalnya dikembangkan dari proyek ARPNET Departemen Pertahanan Amerika Serikat ini mengimplementasikan arsitektur berlapis 4. Keempat lapisan ini dapat dipetakan secara tidak langsung terhadap model referensi OSI.

Setiap lapisan yang dimiliki oleh kumpulan protokol TCP/IP diasosiasikan dengan protokolnya masing-masing. Protokol utama dalam protokol TCP/IP adalah sebagai berikut:

  • Protokol lapisan aplikasi : bertanggung jawab untuk menyediakan akses kepada aplikasi terhadap layanan jaringan TCP/IP. Protokol ini mencakup Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS), File Transfer Protocol (FTP), Telnet, Simple Mail Transfer Protocol (SMTP), Simple Network Management Protocol (SNMP), dan protokol lainnya. Dalam beberapa implementasi stackprotokol, seperti Microsoft TCP/IP, protokol-protokol lapisan aplikasi berinteraksi menggunakan antarmuka Windows Sockets (Winsock) atau NetBIOS over TCP/IP (NetBT).
  • Protokol lapisan antar-host : fungsinya untuk pembuatan komunikasi dengan menggunakan sesi koneksi yang bersifat connection-oriented atau broadcast yang bersifat connectionless. Protokol dalam lapisan ini adalah Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP).
  • Protokol lapisan internetwork : bertanggung jawab untuk melakukan pemetaan (routing) dan enkapsulasi paket-paket data jaringan menjadi paket-paket IP. Protokol yang bekerja dalam lapisan ini adalah Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), dan Internet Group Management Control (IGMP).
  • Protokol lapisan antarmuka jaringan : bertanggung jawab untuk meletakkan frame-frame jaringan di atas media jaringan yang dipakai. TCP/IP dapat bekerja dengan banyak teknologi transport, mulai dari teknologi transport dalam LAN (seperti halnya Ethernet dan Token Ring), MAN dan WAN (seperti modem dial-up yang berjalan di atas Public Switched Telephone Network (PSTN), Integrated Services Digital Network (ISDN) serta Asynchronous Transfer Mode (ATM)).

 

Pengalamatan

 

  • Pengalamatan IP : yang berupa alamat logis 32-bit yang formatnya biasanya “www.xxx.yyy.zzz”. Penggunaan subnet mask yang diasosiasikan dengan suatu alamat IP membuat alamat IP tersebut dapat dibagi menjadi dua bagian, yakni Network Identifier (NetID) yang dapat mengidentfikasikan jaringan lokal dalam sebuah internetwork dan Host Identifier (HostID) yang dapat mengidentifikasikan host dalam jaringan tersebut.
  • Fully qualified domain name (FQDN ): Alamat ini merupakan alamat yang direpresentasikan dalam nama alfanumerik yang diekspresikan dalam bentuk <nama_host>.<nama_domain>, di mana <nama_domain> mengindentifikasikan jaringan di mana sebuah komputer berada, dan <nama_host> mengidentifikasikan sebuah komputer dalam jaringan. Pengalamatan FQDN digunakan oleh skema penamaan domain Domain Name System (DNS).

 

Layanan

Berikut ini merupakan layanan tradisional yang dapat berjalan diatas protokol TCP/IP:

  • Pengiriman berkas (file transfer) : File Transfer Protocol (FTP) memungkinkan pengguna komputer yang satu untuk dapat mengirim ataupun menerima berkas ke sebuah host di dalam jaringan. Metode otentikasi yang digunakannya adalah penggunaan nama pengguna (user name) dan password, namun cukup banyak FTP yang dapat diakses tanpa password alias secara anonim (anonymous).
  • Remote login : Network terminal Protocol (telnet) memungkinkan pengguna sebuah komputer dapat melakukan log in ke dalam komputer lain di dalam suatu jaringan secara jarak jauh. Jadi hal ini berarti bahwa pengguna menggunakan komputernya sebagai perpanjangan tangan dari komputer jaringan tersebut.
  • Computer mail : Digunakan untuk menerapkan sistem surat elektronik (e-mail).
  • Network File System (NFS) : Pelayanan akses berkas-berkas yang dapat diakses dari jarak jauh yang memungkinkan klien-klien untuk mengakses berkas pada komputer jaringan, seolah-olah berkas tersebut disimpan secara lokal.
  • Remote execution : Memungkinkan pengguna komputer untuk menjalankan suatu program tertentu di dalam komputer yang berbeda. Biasanya berguna jika pengguna menggunakan komputer yang terbatas, sedangkan ia memerlukan sumber yg banyak dalam suatu sistem komputer. Ada beberapa jenis remote execution, ada yang berupa perintah-perintah dasar saja, yaitu yang dapat dijalankan dalam system komputer yang sama dan ada pula yg menggunakan sistem Remote Procedure Call (RPC), yang memungkinkan program untuk memanggil subrutin yang akan dijalankan di sistem komputer yg berbeda.
  • Name server : yang berguna sebagai penyimpanan basis data nama host yang digunakan pada Internet.

Request for Comments

RFC (Request For Comments) merupakan standar yang digunakan dalam Internet, meskipun ada juga isinya yg merupakan bahan diskusi ataupun omong kosong belaka. Diterbitkan oleh IAB yang merupakan komite independen yang terdiri atas para peneliti dan profesional yang mengerti teknis, kondisi dan evolusi Internet. Sebuah surat yg mengikuti nomor RFC menunjukan status RFC :

  • S: Standard, standar resmi bagi internet
  • DS: Draft standard, protokol tahap akhir sebelum disetujui sebagai standar
  • PS: Proposed Standard, protokol pertimbangan untuk standar masa depan
  • I: Informational, berisikan bahan-bahan diskusi yg sifatnya informasi
  • E: Experimental, protokol dalam tahap percobaan tetapi bukan pada jalur standar.
  • H: Historic, protokol-protokol yg telah digantikan atau tidak lagi dipertimbankan utk standardisasi.

Model Arsitektur

Dikarenakan TCP/IP adalah serangkaian protokol di mana setiap protokol melakukan sebagian dari keseluruhan tugas komunikasi jaringan, maka tentulah implementasinya tak lepas dari arsitektur jaringan itu sendiri. Arsitektur rangkaian protokol TCP/IP mendifinisikan berbagai cara agar TCP/IP dapat saling menyesuaikan.

Karena TCP/IP merupakan salah satu lapisan protokol Model OSI, berarti bahwa hierarki TCP/IP merujuk kepada 7 lapisan OSI tersebut. Tiga lapisan teratas biasa dikenal sebagai “upper level protocol” sedangkan empat lapisan terbawah dikenal sebagai “lower level protocol”. Tiap lapisan berdiri sendiri tetapi fungsi dari masing-masing lapisan bergantung dari keberhasilan operasi layer sebelumnya. Sebuah lapisan pengirim hanya perlu berhubungan dengan lapisan yang sama di penerima (jadi misalnya lapisan data link penerima hanya berhubungan dengan lapisan data link pengirim) selain dengan satu layer di atas atau di bawahnya (misalnya lapisan network berhubungan dengan lapisan transport di atasnya atau dengan lapisan data link di bawahnya).

Model dengan menggunakan lapisan ini merupakan sebuah konsep yang penting karena suatu fungsi yang rumit yang berkaitan dengan komunikasi dapat dipecahkan menjadi sejumlah unit yang lebih kecil. Tiap lapisan bertugas memberikan layanan tertentu pada lapisan diatasnya dan juga melindungi lapisan diatasnya dari rincian cara pemberian layanan tersebut. Tiap lapisan harus transparan sehingga modifikasi yang dilakukan atasnya tidak akan menyebabkan perubahan pada lapisan yang lain. Lapisan menjalankan perannya dalam pengalihan data dengan mengikuti peraturan yang berlaku untuknya dan hanya berkomunikasi dengan lapisan yang setingkat. Akibatnya sebuah layer pada satu sistem tertentu hanya akan berhubungan dengan lapisan yang sama dari sistem yang lain. Proses ini dikenal sebagai Peer process. Dalam keadaan sebenarnya tidak ada data yang langsung dialihkan antar lapisan yang sama dari dua sistem yang berbeda ini. Lapisan atas akan memberikan data dan kendali ke lapisan dibawahnya sampai lapisan yang terendah dicapai. Antara dua lapisan yang berdekatan terdapat interface (antarmuka). Interface ini mendifinisikan operasi dan layanan yang diberikan olehnya ke lapisan lebih atas. Tiap lapisan harus melaksanakan sekumpulan fungsi khusus yang dipahami dengan sempurna. Himpunan lapisan dan protokol dikenal sebagai “arsitektur jaringan”.

Proses Booting pada komputer

Tag

, , , ,

Jika seseorang memiliki perangkat, baik itu desktop, laptop, tablet maupun smartphone, yang dalam keadaan mati dan ingin memakainya, tentu saja orang tersebut harus menyalakannya terlebih dahulu. Selanjutnya perangkat tersebut akan melakukan sebuah proses yang disebut booting. Booting adalah suatu proses yang terjadi saat seseorang menyalakan perangkat, dimana arus listrik baik dari listrik PLN maupun baterai perangkat itu sendiri masuk ke dalam peralatan pada perangkat bersangkutan dan kemudian sistem memeriksa ada atau tidaknya perangkat keras pada komputer atau perangkat tertentu yang terhubung dengan perangkat, agar perangkat dapat berkomunikasi dengan pengguna.

Bagaimanakah tahap-tahap terjadinya proses booting?

Tahap awal pada proses booting yang dilakukan oleh sistem operasi adalah bootstrap loader. Bootstrap loader adalah aplikasi pertama yang dijalankan oleh Basic Input Output System (BIOS) sesaat setelah booting. Bootloader akan memuat kernel yang akan menjalankan sistem operasi, serta bertujuan untuk melacak semua perangkat keras input dan output yang terhubung pada perangkat. Beberapa sistem operasi memiliki bootloader yang berbeda, seperti misalnya boot loader milik Windows berbeda dengan milik Linux.

Secara umum proses tahapan booting adalah sebagai berikut:

  • Saat komputer dihidupkan, memorinya masih kosong. Belum ada instruksi yang dapat dieksekusi oleh prosesor. Oleh karena itu, prosesor dirancang untuk selalu mencari alamat tertentu di BIOS (Basic Input Output System) ROM. Pada alamat tersebut, terdapat sebuah instruksi jump yang menuju kealamat eksekusi awal BIOS. Setelah itu, prosesor menjalankan Power On Self Test(POST), yaitu memeriksa kondisi hardware yang terhubung pada komputer.
  • Setelah itu BIOS akan mencari Video Card. Secara khusus dia mencari BIOS yang dimiliki Video Card. Kemudian BIOS sistem menjalankan BIOS Video Card, kemudian Video Card diinisialisasi.
  • Kemudian BIOS memeriksa ROM pada perangkat keras yang lain, apakah perangkat keras tersebut memiliki BIOS tersendiri atau tidak. Jika iya, maka eksekusi dilakukan juga pada perangkat keras bersangkutan.
  • Pemeriksaan oleh BIOS berlanjut dengan memeriksa besar dan jenis memori. Selanjutnya BIOS memeriksa perangkat keras lain, seperti harddisk. Lalu BIOS mencari disk dimana proses boot dilakukan, yaitu mencari boot sector. Umumnya saat ini boot sector berada di harddisk atau memori internal lainnya, namun beberapa OS Windows lawas dan juga Linux bisa saja memiliki boot sector di perangkat removable, seperti floppy disk atau flashdisk.

SUDO di Linux

Tag

, , , ,

Sudo adalah program yang terdapat di keluarga UNIX yang digunakan untuk menjalankan perintah yang membutuhkan akses akun root. Sudo hanya dapat dipakai oleh user yang sudah terdaftar di file /etc/sudoers. Pada saat dijalankan, sudo akan meminta password user yang menjalankan sudo tersebut, tetapi bisa juga tanpa password atau meminta password root. Secara default password yang dimasukkan tadi akan disimpan dan user tidak perlu lagi susah-susah memasukkan password jika ingin menggunakan sudo.

Kenapa menggunakan sudo?

Di keluarga Unix ada super user, bernama root. Super user ini dapat melakukan apapun terhadap sistem. Melakukan pekerjaan umum dengan menggunakan akun root ini mempunyai resiko yang berbahaya karena jika salah mengetikkan maka akan dapat merusak sistem. Baiknya untuk pekerjaan umum kita menggunakan akun biasa dan menggunakan akun root jika memang sangat diperlukan. Untuk itu sudo diciptakan agar akun biasa dapat menjalankan perintah yang membutuhkan akses dari akun root tanpa harus login lagi dengan akun root. Sudo juga mencatat setiap perintah yang dijalankan dengan menggunakan sudo dan menyimpannya di file /var/log/auth.log. Ini memudahkan kita untuk melakukan track back suatu saat nanti.
Contoh perintah Sudo adalah sudo apt-get install <package> yang digunakan untuk menginstall utilitas atau fitur baru pada sebuah komputer berbasis Linux.

i386, i486, i586, i686, dan i786

Tag

, , , ,

Secara teknis, arsitektur komputer dibagi menjadi 2 yaitu x86 dan x64. Namun untuk x86 sendiri rupanya dibagi lagi menjadi beberapa bagian yaitu i386 yang banyak dipakai, kemudian i486, i586 dan i686. Lantas, apa perbedaan diantara keempatnya?

i386

i386 adalah prosesor yang paling banyak dipakai. Dikenalkan pada tahun 1985 dan menjadi mikroprosesor 32-bit paling populer. Mikroprosesor ini dioptimalisasikan untuk arsitektur 386 dan prosesor di atasnya.
i386 memiliki kembaran dari Advanced Micro Devices (AMD), yaitu AMD386 yang dirilis pada tahun 1991.

i486

i486 adalah sebuah prosesor yang dirilis tahun 1989, dimana penjadwalan (scheduling) tidak diimplementasikan pada arsitektur ini. Kembaran dari prosesor ini adalah AMD486 yang dirilis pada tahun 1993. prosesor ini dioptimalisasikan untuk prosesor 486 keatas.

i586

i586, atau yang dikenal dengan nama Pentium, adalah sebuah prosesor yang dirilis pada tahun 1993. Juga dikenal dengan sebutan P5 sehingga menjadi generasi ke-5 dari arsitektur x86. Pada tahun 1996, Pentium MMX dirilis berdasarkan prosesor ini. Kembaran prosesor ini dari AMD, adalah AMD K5, yang dirilis pada tahun 1996, namun sayangnya instruksi MMX tidak ditemukan pada AMD K5. Prosesor ini dioptimalisasikan untuk arsitektur Pentium atau diatasnya.

i686

i686, juga dikenal sebagai Pentium Pro atau P6, adalah generasi ke-6 dari arsitektur x86. Dirilis pada tahun 1995. Pesaing dari i686, adalah AMD K6 yang dirilis tahun 1997, yang akhirnya diteruskan oleh AMD K6-2 pada tahun 1998. Prosesor ini kompatibel dengan arsitektur i686 dan diatasnya.

i786

i786, dikenal dengan nama Pentium 4, adalah prosesor yang diluncurkan pada tahun 2000. Prosesor ini juga menjadi prosesor pertama yang membawa instruksi SSE2 dan SSE3, yang dipakai untuk mempercepat perhitungan, penterjemahan, pemrosesan media, grafis 3D, permainan, dan lainnya. Fitur utama lainnya seperti Hyperthreading, yang mana 1 CPU fisik dapat bekerja sebagai 2 CPU logikal dan CPU virtual.
Prosesor ini terbagi menjadi dua merek, yaitu Celeron yang dipakai komputer desktop maupun komputer portabel, dan Xeon yang dipakai Workstation dan Server, meski saat ini juga ada komputer desktop dan bahkan laptop yang memakai Xeon. Contoh komputer desktop yang menggunakan prosesor ini adalah Mac Pro berbentuk tabung buatan Apple. Sementara laptop pertama yang menggunakan prosesor Xeon adalah ThinkPad seri P buatan Lenovo.
Pesaing i786, AMD K7 alias Athlon, dirilis pada tahun 1999.

32 bit vs 64 bit

Tag

, , , ,

Mungkin banyak orang belum mengetahui mengenai sistem berbasis 32-bit dan 64-bit. Pada komputer atau laptop Anda yang menggunakan sistem operasi Windows tentu menggunakan antara 32-bit dan 64-bit. Pada umumnya basis-32 bit dan 64-bit memiliki keunggulan dan kelemahan masing-masing. Namun masih banyak orang bingung mengenai perbedaan keduanya. Terkadang ketika membeli laptop, orang belum mengetahui apa yang pantas digunakan untuk sistem operasi 32 bit atau 64 bit tentunya untuk pengguna Windows.

Untuk 32-bit tidak berlaku untuk pengguna Apple, karena perangkat besutan Apple seperti iPhone maupun Mac, sudah menggunakan 64-bit. Hal ini tentu harus Anda pahami perbedaan 32-bit dan 64-bit, lalu apa yang membedakan keduanya? Untuk mengetahuinya, berikut adalah pembahasan yang dapat Anda baca agar mengetahui perbedaan kedua basis yang sering digunakan pada sistem operasi Windows.

Pengertian 32-bit dan 64-bit

Sistem operasi 32-bit merupakan suatu arsitektur pada prosesor komputer yang memiliki register yang berukuran sebesar 32-bit. Sedangkan untuk 64-bit adalah suatu arsitektur pada prosesor yang memiliki register dengan ukuran 64-bit.

Pemrosesan data

Perbedaan 32-bit dan 64-bit terletak pada pemrosesan data yang ada pada CPU. Jika pada komputer yang menggunakan sistem operasi 32-bit, maka data yang diproses dalam sekali siklus pemrosesan hanya sebesar 32-bit saja. Sedangkan untuk komputer atau laptop yang menggunakan sistem operasi seperti Windows 64-bit, maka pemrosesan data yang dilakukan dalam waktu sekali hanya proses dengan memuat jumlah data sebesar 64-bit. Dengan begitu perintah pemrosesan pada Windows 64-bit dapat memuat lebih banyak data ketimbang yang terjadi pada Windows 32-bit.

Beberapa aplikasi yang membutuhkan algoritma perhitungan tinggi, seperti rendering 3D akan berjalan lebih optimal pada sistem 64-bit. Begitu pula program enkripsi juga lebih optimal berjalan di sistem 64-bit.

Dukungan RAM

Perbedaan lainnya adalah batasan RAM yang dapat didukung/dibaca oleh sistem. Jika 32-bit hanya bisa terbaca sampai 4 GB, maka 64-bit bisa membaca sampai 192 GB. Hal ini jelas keuntungan bagi para pengguna komputer ber-RAM besar.

Segi keamanan

Perbedaan lainnya adalah segi keamanan, dimana terdapat fitur PatchGuard yang mencegah adanya malware yang masuk ke kernel. Fitur keamanan lainnya yaitu ASLR yang mencegah sistem dari peretasan, kemudian Mandatory Driver Signing yang mencegah adanya driver yang tidak terdaftar terinstal pada sistem.

SNORT Part 5 – Memasang PulledPork

Tag

, , , ,

PulledPork adalah sebuah script yang berfungsi untuk memperbarui rule Snort secara otomatis.

Sebelum menginstall, install dulu pre-requisites PulledPork, dengan menggunakan perintah berikut:

apt-get install -y libcrypt-ssleay-perl liblwp-useragent-determined-perl

Selanjutnya yaitu menginstall PulledPork. Secara umum caranya dengan mengetikkan seluruh perintah berikut:

cd ~/snort_src
-O pulledpork-0.7.2-196.tar.gz
tar xvfvz pulledpork-0.7.2-196.tar.gz
mv pulledpork-8b9441aeeb7e1477e5be415f27dbc4eb25dd9d59 pulledpork-0.7.2-196
cd pulledpork-0.7.2-196/
sudo cp pulledpork.pl /usr/local/bin
sudo chmod +x /usr/local/bin/pulledpork.pl
sudo cp etc/*.conf /etc/snort
Sebagai alternatif, Anda juga bisa mendownload file .tar.gz melalui browser, lalu mengekstrak file .tar.gz tersebut kemudian folder hasil ekstraknya diubah namanya menjadi “pulledpork-0.7.2-196” lalu letakkan folder berisi file pulledpork tersebut di ~/snort_src, lalu langsung lanjutkan ke perintah “cd pulledpork-0.7.2-196”.
Setelah selesai, dengan menggunakan flag -V, cek apakah PulledPork sudah berjalan dengan mengecek versinya (flag -V umumnya untuk mengecek versi). Perintahnya adalah seperti berikut:
/usr/local/bin/pulledpork.pl -V
Berikut adalah hasil percobaan perintah tersebut di Debian 8:
5.PNG
Selanjutnya yaitu mengkonfigurasi PulledPork untuk mendownload set rule. Ada sejumlah set rule, yakni sekelompok rule, untuk Snort yang dapat didownload oleh PulledPork. Anda dapat mengkonfigurasi PulledPork untuk mengunduh free backlist dari Talos dan set rule buatan komunitas lainnya dari Snort tanpa harus membuat akun Snort.org, dimana akun tersebut gratis dan jika Anda membuat akun di Snort.org, Anda dapat mengunduh rule reguler dan dokumentasi untuk rule-rule tersebut, dimana ketika Anda mendaftar, Anda akan mendapatkan sebuah kode unik yang digunakan untuk mengunduh set rule baru. Kode unik tersebut lebih dikenal dengan istilah Oinkcode. Disini saya rekomendasikan Anda membuat akun snort.org saja dan mendapatkan Oinkcode sebelum melanjutkan. Juga ketika Anda mendapatkan Oinkcode tersebut, simpanlah di tempat yang aman.
Konfigurasi PulledPork dapat dilakukan dengan mengedit file /etc/snort/pulledpork.conf dengan menggunakan editor kesukaan Anda (penulis biasa menggunakan nano). Jika Anda memiliki oinkcode, letakkan oinkcode tersebut pada posisi sesuai dengan template (sebelum pulledpork.conf diedit) pada baris 19 dan 26. Jika Anda belum mendaftar ke akun snort.org, maka sebaiknya baris 19 dan 26 dikomen saja, kemudian uncomment baris 29.
Pada baris lainnya, gantilah menjadi seperti berikut:
Baris 74: rule_path=/etc/snort/rules/snort.rules
Baris 89: local_rules=/etc/snort/rules/local.rules
Baris 92: sid_msg=/etc/snort/sid-msg.map
Baris 96: sid_msg_version=2
Baris 119: config_path=/etc/snort/snort.conf
Baris 133: distro=Ubuntu-12-04
Baris 141: black_list=/etc/snort/rules/iplists/black_list.rules
Baris 150: IPRVersion=/etc/snort/rules/iplists
Kita ingin PulledPork berjalan secara manual pada waktu ini saja untuk membuat ia bekerja. Flag yang dipakai adalah:
  • -l (memasukkan log terperinci ke /var/log)
  • -c /erc/snort/snort.conf (alamat lengkap file pulledpork.conf)

Jalankan perintah berikut:

/usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf -l

PulledPork harus selesai dengan output seperti di bawah ini (memberitahu rule baru yang terunduh). Anda juga bisa mengabaikan warning tentang not running inline, karena ia tidak mempengaruhi konfigurasi kita.

7.PNG

Ketika PulledPork sukses, Anda sekarang dapat melihat snort.rules di /etc/snort/rules.

PulledPork menggabungkan semua rule dalam sebuah file, yaitu file snort.rules di direktori /etc/snort/rules. Anda harus menambah baris berikut di snort.conf, atau rule PulledPork tidak akan dibaca ke memori ketika Snort mulai berjalan:

include $RULE_PATH/snort.rules
Tambahkan baris diatas sebagai baris terakhir dari file snort.conf.
Setelah sukses, kita akan membuat PulledPork berjalan setiap hari. Untuk melakukannya, jalankan perintah berikut:
crontab -e

Tambahkan baris berikut di crontab:

1 04 * * * /usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf -l

Perlu dicatat bahwa Snort harus di reload untuk melihat rule baru. Cara paling mudah yaitu dengan me-restart snort service.

SNORT Part 4 – Memasang Barnyard2

Tag

, , , ,

Seperti yang dijelaskan pada artikel “Pengertian” bahwa Snort memiliki sebuah output system bernama Barnyard. Saat ini versi terbaru adalah versi turunannya yakni Barnyard2. Fungsi dari tool ini adalah untuk menyimpan dan memproses output biner dari snort kedalam database MySQL.

Untuk menginstallnya Anda harus memasang pre-requisites untuk Barnyard2. Perintahnya adalah sebagai berikut:

apt-get install -y mysql-server libmysqlclient-dev mysql-client autoconf libtool

Proses instalasi akan meminta Anda untuk membuat password root untuk mysql. Dalam contoh ini, password yang saya pakai adalah MySqlROOTpassword, namun saya rekomendasikan Anda menggunakan yang berbeda, umumnya kombinasi huruf dan angka yang acak. Kita juga akan membuat akun MySQL Snort, dimana passwordnya adalah MySqlSNORTpassword. Perhatikan perbedaan antara kedua password, jangan sampai tertukar atau terjadi typo.

Kita harus memberitahu Snort bahwa Snort harus meng-outputkan alertnya ke dalam sebuah format biner (ke dalam sebuah berkas) yang mana nantinya Barnyard2 akan dapat memprosesnya. Untuk melakukannya, edit file /etc/snort/snort.conf, dimana setelah baris ke 521 (yang secara default akan dicomment) tambahkan baris berikut:

output unified2: filename snort.u2, limit 128

sehingga nantinya baris 520-521 akan terlihat seperti berikut:

# output unified2: filename merged.log, limit 128, nostamp, mpls_event_types, vlan_event_types}
output unified2: filename snort.u2, limit 128
Selanjutnya kita akan mengunduh dan menginstall Barnyard2. Umumnya caranya seperti berikut:
cd ~/snort_src
-O barnyard2-2-1.14-336.tar.gz
tar zxvf barnyard2-2-1.14-336.tar.gz
mv barnyard2-7254c24702392288fe6be948f88afb74040f6dc9 barnyard2-2-1.14-336
cd barnyard2-2-1.14-336
autoreconf -fvi -I ./m4
Namun terkadang ada sejumlah alasan teknis dalam proses mengunduh menggunakan wget. Anda dapat mendownloadnya langsung melalui browser lalu mengganti nama folder hasil ekstrak dan folder hasil ekstrak tersebut diletakkan di direktori ~/snort_src.
Barnyard2 membutuhkan akses ke pustaka dnet.h, yang biasanya akan terinstall bersamaan dengan package libdumbnet. Namun, Barnyard2 umumnya meminta nama berkas yang berbeda. Buatlah sebuah softlink dari dnet.h ke dumbnet.h sehingga tidak akan terjadi konflik:
sudo ln -s /usr/include/dumbnet.h /usr/include/dnet.h
sudo ldconfig
Berdasarkan versi OS Anda (x86 atau x86-64), Anda mungkin butuh menginstallnya ke MySQL Library yang benar. Jalankan salah satu diantara kedua baris perintah.
Untuk versi x86-64:
./configure –with-mysql –with-mysql-libraries=/usr/lib/x86_64-linux-gnu
Sementara untuk versi x86:
./configure –with-mysql –with-mysql-libraries=/usr/lib/i386-linux-gnu
Sekarang Anda bisa menyelesaikan pembangunan dan memasang Barnyard2 ke /usr/local/bin/barnyard2:
make
sudo make install
Setelah terinstall, langkah selanjutnya yaitu untuk menyalin dan membuat sejumlah berkas yang mana dibutuhkan Barnyard2 supaya bisa jalan:
cd ~/snort_src/barnyard2-2-1.14-336
sudo cp etc/barnyard2.conf /etc/snort
# the /var/log/barnyard2 folder is never used or referenced
# but barnyard2 will error without it existing
sudo mkdir /var/log/barnyard2
sudo chown snort.snort /var/log/barnyard2
sudo touch /var/log/snort/barnyard2.waldo
sudo chown snort.snort /var/log/snort/barnyard2.waldo
Karena Barnyard2 menyimpan alert dalam database MySQL, kita harus membuat databasenya, begitu pula dengan penggunanya. Untuk melakukannya jalankan perintah tersebut untuk membuat database MySQL dan juga penggunanya. Ketika ditanyakan passwordnya, gunakan MySqlROOTpassword untuk root, dan MySqlSNORTpassword untuk Snort.
$mysql -u root -p
mysql> create database snort;
mysql> use snort;
mysql> source ~/snort_src/barnyard2-2-1.14-336/schemas/create_mysql
mysql> CREATE USER ‘snort’@’localhost’ IDENTIFIED BY ‘MySqlSNORTpassword’;
mysql> grant create, insert, select, delete, update on snort.* to ‘snort’@’localhost’;
mysql> exit
Kita juga akan memberitahu Barnyard2 bagaimana caranyamenyambung ke database MySQL. Edit /etc/snort/barnyard2.conf, dan pada bagian paling bawah tambahkan baris ini:
output database: log, mysql, user=snort password=MySqlSNORTpassword dbname=snort host=localhost
Karena password disimpan dalam cleartext di file barnyard2.conf, kita harus mencegah pengguna lain untuk bisa membacanya:
chmod o-r /etc/snort/barnyard2.conf
Sekarang kita akan mengetes bahwa Snort menulis event ke binary log file, dan Barnyard2 membaca log-log tersebut dan memasukannya ke database MySQL. Kita harus memulai kedua program dalam mode daemon dan meng-generate sejumlah event dengan melakukan ping ke sebuah interface, tapi lebih baik mengetes satu saja per waktu.
Jalankan Snort dalam mode alert (perintah yang kita jalankan di bawah ini adalah bagaimana Snort secara normal berjalan ketika kita mengesetnya sebagai daemon, kecuali dengan menggunakan flag -D yang menyebabkan akan dijalankan sebagai daemon).
/usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf -i eth0
Pinglah interface eth0 dari komputer lain, Anda tidak akan melihat output sama  sekali pada layar karena Snort tidak berjalan dengan flag konsol -A seperti sebelumnya. Ketika proses ping terhenti, ketik ctrl-c untuk menghentikan Snort. Anda harusnnya melihat sebuah file baru di direktori /var/log/snort dengan nama snort.u2.nnnnnnnnn (nomornya bisa berbeda karena berdasarkan waktu. Sementara file snort.log.nnnnnnnn adalah file output yang kita buat ketika pertama kali mengetes Snort. Anda dapat menghapus file tersebut jika mau:
15
Sekarang kita menjalankan Barnyard2 dan memberitahunya untuk memproses event di snort.u2.nnnnnnnnn dan memuatnya ke database Snort. Kita akan menggunakan flag-flag tersebut dengan Barnyard2:
  • -c /etc/snort/barnyard2.conf (path ke file barnyard2.conf)
  • -d /var/log/snort (folder berisi output snort)
  • -f snort.u2 (nama file untuk mencari di direktori diatas)
  • -w /var/log/snort/barnyard2.waldo (lokasi berkas bookmark “file waldo”)
  • -u snort (menjalankan Barnyard2 sebagai sebuah user setelah startup)
  • -g snort (menjalankan Barnyard2 sebagai sebuah grup setelah startup)

Jalankan Barnyard2 dengan perintah berikut:

barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo \ -g snort -u snort
Perharikan tanda “slash” pada akhir baris pertama. Seluruh perintah disini adalah perintah satu baris. Anda bisa menyalin kedua baris dan tetap bisa jalan.
Barnyard2 akan segera berjalan (namun Anda harus bersabar, karena ini bisa saja memakan waktu cukup lama. Pengalaman penulis melakukan ini di Debian 8 KDE bahkan hampir stuck), dan ia akan memproses alert pada berkas /var/log/snort/snort.u2.nnnnnnnnnn, menulisnya ke layar dan juga ke database,  dan menunggu sampai event lain muncul di direktori /var/log/snort. Untuk menghentikannya tekan Ctrl+C. Ketika Barnyard2 memproses event, Anda dapat melihat output mirip seperti ini:3-waiting-for-new-data
Ketika Anda menekan Ctrl+C untuk menghentikan barnyard2, maka ia akan mencetak informasi tentang rekaman yang telah diproses.
Sekarang kita akan mengecek database MySQL untuk melihat jika Barnyard2 menulisevent. Jalankan perintah berikut untuk melakukan query database MySQL. Anda akan ditanyakan password pengguna MySQL Snort yaitu MySqlSNORTpassword.
mysql -u snort -p -D snort -e “select count(*) from event”