Pages

Kamis, 15 Maret 2018

KOMPUTASI PARAREL


PARALLELISM CONCEPT

  1. PENGERTIAN KOMPUTASI PARALEL
Secara umum Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika, kimia dan lain-lain.
Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan diolah secara parallel.
Di dalam komputasi parallel ada yang dinamakan dengan pemrograman parallel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan (komputasi paralel), baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi.
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Pada system komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini computer parallel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.
Prosesor dan memori ini didalam mesin paralel dapat dihubungkan (interkoneksi) secara statis maupun dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system (sistem memori terdistribusi). Sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan antar prosesor dan memori.
Terdapat dua hukum yang berlaku dalam komputasi parallel processing. yaitu:
a)     Hukum Amdahl
Amdahl berpendapat, “Peningkatan kecepatan secara paralel akan menjadi linear, melipatgandakan kemampuan proses sebuah komputer dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan sebuah masalah.”
b)     Hukum Gustafson
Pendapat yang dikemukakan Gustafson hampir sama dengan Amdahl, tetapi dalam pemikiran Gustafson, sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan

        2. TUJUAN KOMPUTASI PARALEL
Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan ( dalam waktu yang sama ), semakin banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.
Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.

           3. PERBEDAAN KOMPUTASI TUNGGAL DAN KOMPUTASI PARAREL
Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:
a.      SISD (Single Instruction, Single Data) adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
b.      SIMD(Single Instruction, Multiple Data) menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
c.      MISD(Multiple Instruction, Single Data) menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.
d.     MIMD( Multiple Instruction, Multiple Data) menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
Berikut ini adalah gambar perbedaan antara komputasi tunggal dan parallel komputasi :
·       komputasi tunggal/serial


·       komputasi parallel


               4. HUBUNGAN KOMPUTASI MODERN DENGAN PARALEL PROCESSING
Hubungan antara komputasi modern dan parallel processing sangat berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Dengan begitu peningkatan kinerja atau proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer adalah processor. Sedangkan parallel processing adalah penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan banyak processor) agar kinerja computer semakin cepat.
Kinerja komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.

Sumber :

Selasa, 23 Januari 2018

Konfigurasi Firewall dan Proxy pada CentOS


Pendahuluan

     sebelum mengetahui cara konfigurasi Firewall / Proxy pada CentOS, yuk kita mengenal dulu sedikit penjelasan mengenai firewall dan Proxy. secara garis beras firewall berguna untuk mengontrol data dan melindungi keamanan jaringan, sedangkan proxy sendiri adalah pidak ketiga yang berfungsi sebagai penghubung antara client kepada server lain yang berada diinternet. untuk lebih jelasnya langsung liat ajh yuk penjelasan masing-masing :

Pengertian Firewall
     
    Firewall adalah jenis alat keamanan jaringan yang mengendalikan lalu lintas jaringan masuk dan keluar sesuai dengan aturan yang telah ditetapkan sebelumnya. Kita bisa menggunakan firewall dan langkah-langkah keamanan lainnya untuk melindungi server kita dari serangan dan serangan hacker.
     Pendeknya Firewall adalah sebuah sistem yang dirancang untuk membatasi atau mengatur akses dari dan ke jaringan lokal atau sistem komputer.firewall disini bisa berupa hardware dan software atau gabungan dari keduanya.

Cara kerja Firewall

     Firewall bekerja memfilter data berdasar model pembagian layer TCP/IP dan OSI . tiap jenis firewall beroperasi membaca paket data danmemfilternya dilevel layer yang berbeda.maka dari itu kamu perlu tau pembagian layer TCP/IP dan OSI sebagai modal memahami pemffilteran paket data dalam jaringan . Layer terendah yang bisa digunakan firewall untuk memfilter paker data adalah layer 3 (Network /Internet Protocol [IP]) firewall akan menggunakan informasi IP header yang ada disetiap paket utnuk menentukan apakah paket akan diijinkan/diblock.


     Ketika komputer saling berkomunikasi ,komputer akan menggunakan IP address sebagai identitas agar saling mengenal,membentuk session, menggunakan protokol tertentu sesuai kebutuhan dan menggunakan port number tertentu  sebagai jalan pertukaran data. kedua komputer akan membentuk sesi dan mulai saling berkomunikasi dengan mengirim dan menerima data.
Fungi Firewall
     Banyak sekali fungsi dari firewall bergantung dari jenis dan tujuan firewall dibuat.Disini akan dijelaskan secara umum fungsi firewall yang sering digunakan dalam dunia IT
  • Mengatur Remote Login
  • Menyembunyikan Resource jaringan local intranet
  • Menangkal serangan aktiv dari internet
  • Membatasi akses internet
Pengertian Proxy

       Proxy Server merupakan sebuah server yang ditaruh diantara sebuah aplikasi klien dan aplikasi server yang dihubungi. Sebuah aplikasi klien bisa berupa browser web, FTP klien, dan lainnya. Sedangkan aplikasi server bisa berupa sebuah server web, server FTP dan lainnya. Proxy Server yang ditaruh di antara aplikasi klien dan aplikasi server tersebut, dapat digunakan untuk mengendalikan maupun memonitor terhadap lalu-lintas paket data yang melewatinya.

Cara kerja Proxy server

     Sebenarnya prinsip kerja proxy server sangatlah sederhana, saat user menggunakan layanan suatu proxy lalu meminta file atau data yang terdapat di public server (internet) maka proxy akan meneruskannya ke internet jadi seolah-olah proxy tersebut yang memintanya. Dan saat proxy server telah mendapatkan apa yang diminta oleh user, proxy akan memberikan respon kepada user jadi seolah-olah dialah public servernya.

Fungsi proxy
Berikut di bawah ini adalah beberapa fungsi proxy:
1. Fungsi conecting sharing
    Salah satu fungsi proxy adalah sebagai connecting sharing yaitu sebagai penghubung atau perantara pengambilan data dari suatu alamat IP dan diantarkan ke alamat IP lainnya ataupun kepada IP komputer user.
2. Fungsi filtering
     Terdapat beberapa proxy yang dilengkapi dengan firewall yang dapat memblokir beberapa atau sebuah alamat IP yang tidak diinginkan, sehingga beberapa website tidak dapat diakses dengan memakai proxy tersebut. Itulah salah satu fungsi dari proxy sebagai filtering. 
3. Fungsi caching
   Dan fungsi proxy yang lainnya yaitu sebagai fungsi caching, disini maksudnya proxy juga dilengkapi dengan media penyimpanan data dari suatu web, dari query ataupun permintaan akses user. Misalnya permintaan untuk mengakses suatu web dapat lebih cepat jika telah ada permintaan akses ke suatu web pada pemakai proxy sebelumnya. Itulah fungsi proxy sebagai chacing.

Konfigurasi Firewall
     pada konfigurasi firewall kali ini kita menggunakan iptables, Jika Anda menggunakan CentOS 7, Anda harus melihat konfigurasi firewalld, yang menggabungkan fungsionalitas iptables dan ip6tables, meskipun mungkin masih menggunakan iptables sama saja.
Ikuti Langkah-langkah dibawah ini :
    Pada CentOS dan varian Red Hat lainnya iptables sering hadir dengan beberapa peraturan yang telah dikonfigurasikan, periksa peraturan iptable saat ini dengan menggunakan perintah berikut :
sudo iptables -L
    Ini akan mencetak daftar tiga rantai, input , forward dan output , seperti contoh tabel kosong contoh output di bawah ini.
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
 
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
 
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
      Chain menunjukkan lalu lintas mana aturan di setiap daftar akan diterapkan, input untuk koneksi apa pun yang datang ke server awan Anda, output adalah lalu lintas yang tertinggal dan forward untuk melewati semua. Setiap rantai juga memiliki pengaturan policy yang menentukan bagaimana lalu lintas ditangani jika tidak sesuai dengan aturan tertentu, secara default sudah diatur untuk accept .
Menambahkan Aturan
     Firewall biasanya dapat dikonfigurasi dengan salah satu dari dua cara, baik menetapkan aturan default untuk menerima lalu memblokir lalu lintas yang tidak diinginkan dengan aturan tertentu, atau dengan menggunakan aturan untuk menentukan lalu lintas yang diizinkan dan memblokir hal lainnya. Yang terakhir ini sering merupakan pendekatan yang disarankan, karena memungkinkan lalu lintas yang menghalangi secara pre-emptively, daripada harus secara sadar menolak koneksi yang seharusnya tidak mencoba mengakses server awan Anda.
     Untuk mulai menggunakan iptables, Anda harus terlebih dahulu menambahkan aturan untuk lalu lintas masuk yang diizinkan untuk layanan yang Anda butuhkan. Iptables dapat melacak keadaan koneksi, jadi gunakan perintah di bawah ini untuk memungkinkan koneksi yang dapat terus berlanjut.
sudo iptables -A INPUT -m conntrack --kststate ESTABLISHED, RELATED -j ACCEPT
     Anda dapat memeriksa bahwa aturan itu ditambahkan dengan menggunakan sudo iptables yang sama -L seperti sebelumnya. Selanjutnya, biarkan lalu lintas ke port tertentu untuk mengaktifkan koneksi SSH dengan yang berikut
sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
      ssh di perintah menterjemahkan ke nomor port 22, yang menggunakan protokol secara default. Struktur perintah yang sama dapat digunakan untuk memungkinkan lalu lintas ke port lain juga. Untuk mengaktifkan akses ke server web HTTP, gunakan perintah berikut
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT     
     Setelah menambahkan semua aturan yang diizinkan yang Anda butuhkan, ubah kebijakan masukan agar terhapus.
sudo iptables -P INPUT DROP
     Sekarang jika Anda me-restart server Anda semua konfigurasi iptables ini akan dihapus. Untuk mencegah hal ini, simpan aturan ke file.
sudo iptables-save> / etc / sysconfig / iptables
   itulah langkah-langkah konfigurasi firewall menggunakan iptables yang berguna untuk mengijinkan dan menghapus lalu lintas jaringan.
Konfigurasi Proxy
     pada konfigurasi kali ini saya menggunakan proxy squid yang proxy digunakan oleh berbagai organisasi dan penyedia internet untuk mengurangi bandwidth dan untuk meningkatkan response time.
Langkah 1: Menentukan layanan dan port yang digunakan pada server Anda
     Saya berasumsi bahwa server ini hanya akan meng-host blog WordPress, dan tidak akan digunakan sebagai router atau menyediakan layanan lainnya (misalnya, surat, FTP, IRC, dll.).
     Di sini, kita membutuhkan layanan berikut:
  • HTTP (TCP pada port 80)
  • HTTPS (TCP pada port 443)
  • SSH (TCP pada port 22 secara default, dapat diubah untuk tujuan keamanan)
  • NTP (UDP di port 123)
  • DNS (TCP dan UDP pada port 53)
  • ping (ICMP)
    Semua port lain yang tidak perlu akan diblokir.
Langkah 2: Mengkonfigurasi aturan iptables
     Iptables mengendalikan lalu lintas dengan daftar aturan. Ketika paket jaringan dikirim ke server kami, iptables akan memeriksa mereka dengan menggunakan setiap aturan secara berurutan dan melakukan tindakan yang sesuai. Jika aturan dipenuhi, aturan lainnya akan diabaikan. Jika tidak ada aturan yang terpenuhi, iptables akan menggunakan kebijakan default.
     Semua lalu lintas bisa dikategorikan sebagai INPUT, OUTPUT, dan FORWARD.
  • Lalu lintas INPUT bisa jadi normal atau berbahaya, harus diijinkan selektif.
  • Lalu lintas OUTPUT biasanya dianggap aman dan harus diizinkan.
  • Lalu lintas FORWARD tidak berguna dan harus diblokir.
     Sekarang, mari kita atur aturan iptables sesuai kebutuhan kita. Semua perintah berikut harus dimasukkan dari terminal SSH Anda sebagai root.
     Periksa peraturan yang ada:
iptables -L -n
     Siram semua peraturan yang ada:
iptables -F; iptables -X; iptables -Z
     Karena perubahan pada konfigurasi iptables akan segera berlaku, jika Anda salah mengonfigurasi aturan iptables, Anda mungkin tersingkir dari server Anda. Anda dapat mencegah pemblokiran yang tidak disengaja dengan perintah berikut. Ingatlah untuk mengganti [Your-IP-Address]dengan alamat IP publik atau alamat IP Anda sendiri (misalnya, 201.55.119.43 atau 201.55.119.0/24).
iptables -A INPUT -s [Your-IP-Address] -p tcp --dport 22 -j ACCEPT
     Biarkan semua loopback (lo) lalu lintas dan jatuhkan semua lalu lintas ke 127.0.0.0/8 selain lo:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -d 127.0.0.0/8 -j REJECT
     Blokir beberapa serangan umum:
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
     Terimalah semua koneksi inbound yang terjalin:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
     Izinkan lalu lintas masuk HTTP dan HTTPS:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
     Izinkan koneksi SSH:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
     Izinkan koneksi NTP:
iptables -A INPUT -p udp --dport 123 -j ACCEPT
     Izinkan keluar DNS:
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
     Izinkan ping:
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
     Akhirnya, tetapkan kebijakan default:
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
Langkah 3: Simpan konfigurasi
     Setiap perubahan yang kami buat di atas telah diterapkan, namun tidak permanen. Jika kita tidak menyimpannya ke hard disk, mereka akan hilang begitu sistem di-reboot.
     Simpan konfigurasi iptables dengan perintah berikut:
service iptables save
     Perubahan kami akan disimpan dalam file /etc/sysconfig/iptables. Anda dapat meninjau atau memodifikasi aturan dengan mengedit file tersebut.
#catatan
  • Jika Anda belum menyimpan peraturan modifikasi iptables Anda, Anda dapat me-restart server Anda dari antarmuka situs Vultr, maka perubahan Anda akan terjatuh.
  • Jika Anda telah menyimpan perubahan Anda, Anda dapat masuk ke server Anda melalui konsol dari antarmuka situs Vultr, dan memasukkan iptables -Fsemua aturan iptables. Kemudian Anda bisa mengatur peraturan lagi.