You are on page 1of 44

Tugas WAN

TELNET, SSH & RPC


Oleh:
Naila Zahiroh 9938719705
Rika Arsita 9938719701

SMK Negri 8 Malang


2008 - 2011
KATA PENGANTAR

Puji syukur kami panjatkan kehadirat Tuhan Yang Maha Kuasa,


karena atas limpahan rahmat, taufik, serta hidayah-Nya kami dapat
menyelesaikan Kumpulan makalah dengan baik.

Karya ini yang merupakan hasil pengamatan. Kami persembahkan


kepada Bapak lupa kami ucapkan terima kasih yang sebesar-besarnya
kepada:

Pihak yang membantu kami.

Banyak kekurangan dalam makalah ini dan apabila terdapat


kesalahan tulisan / ejaan harap dimaklumi, namun kami sangat
mengharapkan kritik dan saran dari pembaca sekalian demi kesempurnaan

Semoga makalah ini dapat bermanfaat bagi pembaca pada


umumnya dan penulis pada khususnya.

Malang, 31 Mei 2010

PENYUSUN

2
DAFTAR ISI

Kata Pengantar ........................................................ 2


Daftar ISI ................................................................ 3

TELNET (Telecommunication Network)


Definisi ....................................................................................... 4
Penggunaan lain dari telnet ...................................................... 5
tenet server ............................................................................... 7
installasi telnet server .............................................................. 8
konfigurasi telnet server .............................................................. 8
kegunaan / fungsi service ........................................................... 10
kelebihan & kelemahan ........................................................... 10

SSH (Secure Shell)


Definisi ...................................................................................... 11
sejarah ...................................................................................... 11
penggunaan ............................................................................... 13
Peringatan keamanan ............................................................... 16
Mengamankan SSH dari upaya BRUTE FORCE ........................ 16
Membuat Autentikasi SSH Tanpa Password ........................ 24

RPC (Remote Procedure Call)


Definisi ...................................................................................... 28
Protokol Message RPC .............................................................. 29
Fitur dalam RPC .................................................................. 30
Remote Procedure Call dengan SunRPC ............................. 35
Kelemahan dan Eksploitasi RPC ........................................ 40
Kelemahan RPC pada Sistem Operasi Windows ....................... 40

Daftar Pustaka ......................................................................... 44

3
TELNET

Definisi Telnet
Telnet (Telecommunication Network) adalah sebuah protokol jaringan yang digunakan
di koneksi Internet atau Local Area Network. TELNET dikembangkan pada 1969 dan
distandarisasi sebagai IETF STD 8, salah satu standar Internet pertama. TELNET memiliki
beberapa keterbatasan yang dianggap sebagai risiko keamanan.

Telnet memungkinkan kita untuk menghubungkan “terminal” kita dengan host remote
yang berada di luar jaringan. Pada masa ARPANET sebelum workstation grafis atau personal
komputer ditemukan, setiap orang menggunakan terminal yang terhubung dengan mainframe
atau minicomputer melalui koneksi serial. Setiap terminal memiliki keyboard sebagai masukan
dan monitor untuk keluaran, tanpa memiliki CPU sendiri, semua proses dijalankan di mainframe
atau minicomputer. Telnet biasanya digunakan untuk “remote login” dari PC ke PC lain dalam
jaringan. Remote login semacam ini memungkinkan anda untuk menggunakan aplikasi yang
berada dalam sistem remote. Remote login semacam ini hanya menyediakan koneksi text only,
biasanya dalam bentuk command line prompt, seakan-akan anda duduk di terminal yang
terhubung pada mesin remote.

RPC adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses
yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya
eksekusi kode pada sistem yang jauh ( remote system ). RPC mengasumsi keberadaan dari low-
level protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi
suatu program. Protokol RPC dibangun diatas protokol eXternal Data Representation (XDR),
yang merupakan standar dari representasi data dalam komunikasi remote. Protokol XDR
mengubah parameter dan hasil dari tiap servis RPC yang disediakan. Protokol RPC mengijinkan
pengguna (users) untuk bekerja dengan prosedur remote sebagaimana bekerja dengan prosedur
lokal. Prosedur panggilan remote (remote procedure calls) didefinisikan melalui rutin yang
terkandung didalam protokol RPC. Tiap message dari panggilan akan disesuaikan dengan

4
message balikan. Protokol RPC sendiri sebenarnya adalah suatu protokol untuk ”meneruskan
pesan” yang mengimplemntasikan protokol non-RPC lain seperti panggilan remote batching dan
broadcasting. Protokol ini juga mendukung adanya prosedur callback dan select subroutine pada
sisi server.

Untuk masuk ke mesin remote, gunakan perintah:

% telnet <hostname>

Jika host merespon, Anda akan mendapatkan prompt login. Berikan nama pengguna dan kata
sandi Anda. Hanya itu. Anda akan berada pada shell sekarang. Untuk berhenti dari sesi telnet
Anda, gunakan perintah exit atau logout.

Peringatan :

Telnet tidak mengenkripsi informasi yang dikirimkannya. Semua dikirimkan dalam


bentuk plain text, termasuk kata sandi. Tidak disarankan untuk menggunakan telnet melalui
Internet. Gunakan Secure Shell. Ini akan mengenkripsi semua trafik dan tersedia secara gratis.

Penggunaan lain dari telnet


Setelah Anda diyakinkan untuk tidak menggunakan protokol telnet untuk login ke
komputer remote, kami akan menampilkan beberapa cara untuk menggunakan telnet.

Anda juga bisa menggunakan telnet untuk terhubung pada sebuah host pada port tertentu.

% telnet <hostname> [port]

Hal ini terkadang bisa berguna ketika Anda perlu menguji layanan tertentu, dan Anda
membutuhkan kontrol penuh terhadap perintah, dan Anda perlu melihat apa yang sedang terjadi.
Anda bisa menguji atau menggunakan server SMTP, POP3 HTTP, dan sebagainya secara
interaktif.

5
Pada gambar berikut, Anda akan melihat bagaimana Anda bisa telnet pada sebuah server HTTP
pada port 80, dan mendapatkan sedikit informasi dasar.

Melakukan telnet ke sebuah server web

% telnet store.slackware.com 80
Trying 69.50.233.153...
Connected to store.slackware.com.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 25 Apr 2005 20:47:01 GMT
Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d
Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT
ETag: "193424-c0-3e9fda6e"
Accept-Ranges: bytes
Content-Length: 192
Connection: close
Content-Type: text/html

Connection closed by foreign host.


%

Anda dapat melakukan cara yang sama pada protokol plain-text yang lain, sepanjang Anda
mengetahui port yang digunakan, dan perintahnya.

6
TELNET SERVER

Prinsip Kerja Telnet Server

Pada gambar terlihat, jika suatu user ingin menjalankan aplikasi Telnet ke komputer lain,
maka program aplikasi pada user tersebut berfungsi sebagai client. Client membangun koneksi
TCP ke server, komputer tempat user ingin berkomunikasi. Server harus menerima koneksi TCP
dari client dan kemudian me-relay data antara koneksi TCP dan sistem operasi lokal. Pada
kenyataanya server mengerjakan sesuatu yang lebih komplek, karena harus menangani banyak
koneksi secara konkuren. Biasanya satu proses server master akan menunggu koneksi baru dan
membentuk slave baru untuk menangani setiap koneksi. Pada gambar disamping, server Telnet
merepresentasikan master server yang menangani request baru,juga tidak menunjukkan slave
yang sedang menangani koneksi. Pseudo terminal disini digunakan untuk menerangkan entry
point sistem operasi yang mengijinkan aplikasi misalnya Telnet server berjalan.

7
Instalasi Telnet Server

• Ubuntu
Nama paketnya telnetd.
Ø Install : “ apt-get install telnetd ” lalu mengaktifkannya menggunakan fasilitas inetd,
mencoba dengan inetutils-inetd.
Ø Install : “ apt-get install inetutils-inetd lalu edit file /etc/inetd.conf ”.
Tambahkan line berikut :

telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd

catatan: ada inetd terdapat daemon2 yang lain, remark daemon yang lain jika tidak ingin
menjalankannya lalu restart /etc/init.d/inetutils-inetd restart.
netstat -tanp muncul listen port 23.

Konfigurasi Telnet Server

§ Login ke sistem Linux sebagai root.


Buatlah user baru untuk persiapak akses telnet server
# groupadd temanku
# useradd andri –g temanku
# passwd andri
# useradd anton –g temanku
# passwd anton
§ Cek apakah program telnet server sudah terinstal. Jika sudah, langsung kerjakan langkah no-7
§ Jalankan perintah rpm –qa | grep telnet, tulis hasilnya !
§ Dari hasil diatas ada berapa banyak program telnet yang terinstall ??
§ Dan apakah dalam daftar sudah ada program telnet-server ??
§ Jalankan perintah rpm –qa | grep telnet-server , tulis hasilnya, jika kosong berarti belum ada
telnet server yang terinstall.

8
Uji Coba dari Local Host

# telnet localhost

Jika terdapat pesan sbb. berarti kedua service tersebut


belum berhasil.
§ Untuk menguji coba apakah
# telnet localhostTrying 127.0.0.1…telnet : unable to
connect to remote host Connection Refused telnet server sudah berjalan dengan

Jika tidak berhasil kemungkinan sbb : baik atau tidak jalankan perintah sbb.
:Service telnet masih didisable, edit file berikut ini (jalankan
perintah berikut)
§ Jika proses instalasi berhasil
# vi /etc/xinetd.d/telnet
akan ada pesan sbb.
pada baris disable = yes diganti disable = no
§ > # telnet localhostRed Hat
selanjutnya restart xinetd dengan perintah :
Linux release 9 (Shrike)login: student
# /etc/init.d/xined restart
Password: ******
Port yang dipakai telnet dipakai yang lain, jalankan
perintah berikut : § Telnet dari komputer client
# /etc/init.d/sendmail stop ke server
> # telnet localhostRed Hat Linux release 9 (Shrike)login: Berikan teman anda informasi
student Password: ******
tentang IP PC anda, username dan
password untuk login ke komputer anda
(berikan user dan password yang anda
# ping 10.252.108.100 ---- cek konektivitas
buat pada langkah 2). Misalkan PC anda
# telnet 10.252.108.100
mempunyai IP 10.252.108.100, maka dari
$ username : agus
PC teman anda lakukan perintah sbb.
$ passwd : ********

$ hostname ---- catat hostnamenya


K
$ whoami

$ pwd ---- catat home direktorinya

$ finger ---- catat siapa saja yang login

$ finger > dataku ---- cek : boleh write ?

$ hostname > namapc

$ pwd

$ exit ---- kembali ke PC client

9
Kegunaan / Fungsi Service

Telnet server memungkinkan kita untuk mengendalikan komputer secara jarak jauh.
Istilahnya telnet server adalah trojan server kecil yang terintegrasi bersama dengan sistem
operasi.

Kelebihan Telnet Server

Keuntungan memakai telnet server adalah user interface yang ramah, yaitu Anda
memberikan perintah jarak jauh (istilahnya remote) seolah-olah anda mengeksekusi perintah
pada command line pada komputer Anda.

Kelemahan Telnet Server

Kerugiannya adalah penggunaan NTLM authentication tanpa enkripsi sehingga


memudahkan pencurian password oleh sniffers. Kalau Anda adalah administrator sistem, saya
sarankan Anda menggunakan SSH pada Linux daripada Telnet Server untuk
mengkonfigurasikan sistem Anda.

10
SSH (Secure Shell)

Definisi SSH

Secure Shell atau SSH adalah protokol jaringan yang memungkinkan pertukaran data
melalui saluran aman antara dua perangkat jaringan. Terutama banyak digunakan pada sistem
berbasis Linux dan Unix untuk mengakses akun shell, SSH dirancang sebagai pengganti Telnet
dan shell remote tak aman lainnya, yang mengirim informasi, terutama kata sandi, dalam bentuk
teks sederhana yang membuatnya mudah untuk dicegat. Enkripsi yang digunakan oleh SSH
menyediakan kerahasiaan dan integritas data melalui jaringan yang tidak aman seperti Internet.

SSH menggunakan kriptografi kunci publik untuk mengotentikasi komputer remote dan
biarkan komputer remote untuk mengotentikasi pengguna, jika perlu. SSH biasanya digunakan
untuk login ke mesin remote dan mengeksekusi berbagai perintah, tetapi juga mendukung
tunneling, forwarding TCP port dan X11 connections; itu dapat mentransfer file menggunakan
terkait SFTP atau SCP protocols. SSH menggunakan klien-server model. Yang standar TCP port
22 telah ditetapkan untuk menghubungi server SSH. Sebuah klien program SSH ini biasanya
digunakan untuk membangun koneksi ke SSH daemon untuk dapat diremote. Keduanya biasanya
terdapat pada sistem operasi modern, termasuk Mac OS X, Linux, FreeBSD, Solaris dan
OpenVMS. Tersedia versi berpemilik, freeware dan open source untuk berbagai tingkat
kerumitan dan kelengkapan.

Sejarah SSH

Pada tahun 1995, Tatu Ylönen, seorang peneliti di Helsinki University of Technology,
Finlandia, merancang versi pertama protokol (sekarang disebut SSH-1) karena didorong oleh
peristiwa serangan pembongkaran sandi di jaringan universitas. Tujuan dari pembuatan SSH
adalah untuk menggantikan fungsi rlogin, TELNET, dan rsh protokol, yang tidak memberikan
otentikasi kuat atau menjamin kerahasiaan. Ylönen merilis SSH sebagai freeware pada bulan Juli

11
1995, dan tool tersebut berkembang dengan cepat untuk mendapatkan popularitas. Menjelang
akhir 1995, basis pengguna SSH telah tumbuh hingga 20.000 pengguna di lima puluh negara.

Pada bulan Desember 1995, Ylönen mendirikan SSH Communications Security untuk
memasarkan dan mengembangkan SSH. Versi asli dari software yang digunakan SSH adalah
berbagai potongan perangkat lunak bebas, seperti GNU libgmp, tetapi versi yang dikeluarkan
oleh Secure SSH Communications semakin berkembang menjadi perangkat lunak berpemilik.

Pada tahun 1996, sebuah versi revisi protokol dirancang, SSH-2, yang tidak cocok
dengan SSH-1. Fitur SSH-2 mencakup kedua fitur keamanan dan peningkatan perbaikan atas
SSH-1. Keamanan yang lebih baik, misalnya, datang melalui algoritma pertukaran kunci Diffie-
Hellman dan pemeriksaan dengan integritas yang kuat melalui kode otentikasi pesan. Fitur baru
dari SSH-2 mencakup kemampuan untuk menjalankan sejumlah sesi shell melalui satu koneksi
SSH.

Pada tahun 1998 ditemukan kerentanan yang digambarkan dalam 1,5 SSH sehingga
memungkinkan masuknya konten yang tidak sah ke dalam aliran data SSH terenkripsi karena
integritas data tidak mencukupi perlindungan dari CRC-32 yang digunakan dalam protokol versi
ini. Sebuah perbaikan (SSH Compentation Attack Detector) diperkenalkan ke dalam banyak
implementasi.

Pada tahun 1999, pengembang menginginkan versi perangkat lunak bebas untuk tersedia
kembali seperti rilis 1.2.12, yang lebih tua dari program ssh asli, yang terakhir dirilis di bawah
lisensi open source. OSSH Björn Grönvall ini kemudian dikembangkan berdasarkan basis kode
ini. Tak lama kemudian, para pengembang OpenBSD menggunakan kode Grönvall untuk
melakukan pengembanga yang lebih luas di atasnya, sehingga terciptalah OpenSSH, yang
dimasukkan dalam rilis OpenBSD 2.6. Dari versi ini, sebuah cabang "portable" dibentuk untuk
dapat memportingkan OpenSSH pada sistem operasi lain.

Diperkirakan, sejak tahun 2000, terdapat lebih dari 2.000.000 pengguna SSH.

12
Pada tahun 2005, OpenSSH adalah satu-satunya aplikasi ssh yang paling populer, yang
diinstal secara default dalam sejumlah besar sistem operasi. Sementara itu, OSSH telah menjadi
usang.

Pada tahun 2006, protokol SSH-2 yang telah disebutkan di atas, diusulkan untuk menjadi
Standar Internet dengan penerbitan oleh IETF "secsh" work group dari RFC (lihat referensi).

Pada tahun 2008 sebuah kelemahan kriptografi ditemukan pada SSH-2 yang
memungkinkan pengambilan sampai 4 byte plaintext dari aliran data SSH tunggal di bawah
kondisi khusus. Namun hal ini telah diperbaiki dengan mengubah mode enkripsi standar
OpenSSH 5,2.

Penggunaan SSH
SSH adalah sebuah protokol yang dapat digunakan untuk berbagai aplikasi. Beberapa
aplikasi di bawah ini mungkin membutuhkan fitur-fitur yang hanya tersedia atau yang
kompatibel dengan klien atau server SSH yang spesifik. Sebagai contoh, menggunakan protokol
SSH untuk mengimplementasikan VPN adalah dimungkinkan, tapi sekarang hanya dapat dengan
implementasi server dan klien OpenSSH.

• untuk login ke shell pada remote host (menggantikan Telnet dan rlogin)
• untuk mengeksekusi satu perintah pada remote host (menggantikan rsh)
• untuk menyalin file dari server lokal ke remote host. Lihat SCP, sebagai alternatif untuk
rcp
• dalam kombinasi dengan SFTP, sebagai alternatif yang aman untuk FTP transfer file
• dalam kombinasi dengan rsync untuk mem-backup, menyalin dan me-mirror file secara
efisien dan aman
• untuk port forwarding atau tunneling port (jangan dikelirukan dengan VPN yang rute
paket antara jaringan yang berbeda atau menyambung dua wilayah broadcast menjadi
satu)

13
• untuk digunakan sebagai VPN yang terenkripsi penuh. Perhatikan bahwa hanya
OpenSSH server dan klien yang mendukung fitur ini
• untuk meneruskan X11 melalui beberapa host
• untuk browsing web melalui koneksi proxy yang dienkripsi dengan klien SSH yang
mendukung protokol SOCKS
• untuk mengamankan mounting direktori di server remote sebagai sebuah sistem file di
komputer lokal dengan menggunakan SSHFS
• untuk mengotomasi remote monitoring dan pengelolaan server melalui satu atau lebih
dari mekanisme seperti yang dibahas di atas

Arsitektur SSH

SSH-2 protokol memiliki arsitektur internal (didefinisikan dalam RFC 4.251) pada lapisan
terpisah dengan baik. Yaitu:

• Lapisan transportasi (RFC 4253). Lapisan ini menangani pertukaran kunci awal dan
server otentikasi dan set up enkripsi, kompresi dan integritas verifikasi. Lapisan ini
memperlihatkan ke lapisan atas sebuah antarmuka untuk mengirim dan menerima paket
teks terang hingga masing-masing 32.768 byte (atau lebih yang diperbolehkan oleh
implementasi). Lapisan transportasi juga mengatur ulang pertukaran kunci, biasanya
setelah 1 GB data yang ditransfer atau setelah 1 jam telah berlalu, tergantung mana yang
lebih cepat.
• Lapisan otentikasi pengguna (RFC 4252). Lapisan ini menangani otentikasi klien dan
menyediakan sejumlah metode otentikasi. Otentikasi client-driven: ketika seseorang
diminta untuk memasukkan password, mungkin diminta oleh klien SSH, bukan
servernya. Server hanya menanggapi permintaan otentikasi klien. Metode otentikasi
pengguna yang sering digunakan meliputi:
o password: sebuah metode untuk otentikasi password secara langsung, termasuk
fasilitas yang memungkinkan sandi untuk diubah. Metode ini tidak
diimplementasikan pada semua program.

14
o kunci publik: sebuah metode untuk otentikasi berbasis kunci publik, biasanya
mendukung setidaknya pasangan kunci DSA atau RSA, pada implementasi lain
juga mendukung sertifikat X.509.
o keyboard-interactive (RFC 4256): sebuah metode serbaguna di mana server akan
mengirimkan satu atau lebih prompt untuk memasukkan informasi sehingga klien
menampilkannya dan mengirimkan kembali tanggapan oleh pengguna. Digunakan
untuk menyediakan otentikasi password sekali-waktu seperti S/Key atau SecurID.
Digunakan oleh beberapa konfigurasi OpenSSH dimana PAM bertindak sebagai
penyedia otentikasi host yang mendasar agar secara efektif dapat menyediakan
otentikasi password, namun kadang-kadang menyebabkan kegagalan untuk login
dengan klien yang hanya mendukung metode otentikasi password biasa.
o metode otentikasi GSSAPI yang menyediakan sebuah skema extensible untuk
melakukan otentikasi SSH menggunakan mekanisme eksternal seperti Kerberos 5
atau NTLM, menyediakan satu kemampuan sign on untuk sesi SSH. These
methods are usually implemented by commercial SSH implementations for use in
organizations, though OpenSSH does have a working GSSAPI implementation.
Metode ini biasanya digunakan pada implementasikan SSH komersial untuk
digunakan dalam organisasi, meskipun OpenSSH memang memiliki implementasi
kerja GSSAPI.
• Lapisan koneksi. Lapisan ini mendefinisikan konsep kanal, kanal permintaan dan
permintaan global menggunakan layanan yang disediakan SSH. Sebuah koneksi SSH
dapat melayani beberapa kanal secara bersamaan, masing-masing mentransfer data dalam
dua arah. Permintaan kanal tersebut digunakan untuk menyambungkan saluran data
spesifik secara out-of-band, seperti perubahan ukuran jendela terminal atau exit code dari
sebuah proses server-side. Klien SSH meminta sebuah port server-side untuk diteruskan
menggunakan sebuah permintaan global. Jenis saluran standar yang tersedia adalah:
o shell untuk terminal, SFTP dan request exec (termasuk transfer SCP)
o direct-tcpip untuk koneksi klien-ke-server yang diteruskan
o forwarded-tcpip for server-to-client forwarded connections forwarded-tcpip untuk
koneksi server-ke-klien yang diteruskan

15
• SSHFP DNS record (RFC 4255) menyediakan sidik jari kunci publik untuk membantu
memverifikasi keaslian host.

Fungsi lapisan transportasi sendiri sebanding dengan TLS; lapisan otentikasi pengguna sangat
extensible dengan metode otentikasi khusus; dan lapisan sambungan menyediakan kemampuan
untuk membuat banyak sesi sekunder ke dalam satu koneksi SSH, sebuah fitur yang sebanding
dengan BIP dan tidak tersedia di TLS.

Peringatan keamanan
Sejak SSH-1 memiliki kelemahan desain yang melekat dan membuatnya rentan
(misalnya, terhadap serangan man-in-the-middle), sekarang umumnya dianggap usang dan harus
dihindari pengguannya dengan menonaktifkan fallback ke SSH-1 secara eksplisit. Sementara
server dan klien modern telah mendukung SSH-2, beberapa organisasi masih menggunakan
perangkat lunak tanpa dukungan untuk SSH-2, dan dengan demikian SSH-1 tidak selalu dapat
dihindari.

Dalam semua versi SSH, penting untuk memverifikasi kunci publik sebelum
menerimanya secara valid. Menerima seorang kunci publik atttacker sebagai kunci publik yang
valid memiliki efek membuka password yang ditransmisikan dan memungkinkan serangan man
in-the-middle.

Mengamankan SSH dari upaya BRUTE FORCE

Demi Keamanan Server Kita Dari Serangan Para Attacker yg biasanya Selalau
Menggunakan SSH Sebagai pintu Awal Untuk Masuk Kedalam Sistem kita,tentunya menjadi
kewajiban seorang admin untuk Menghalau berbagai Upaya Itu.

Ada beberapa cara yg biasa dilakukan orang untuk mengamankan SSH dari berbagai serangan yg
salah satunya adalah dengan mengedit file /etc/ssh/sshd_config. Sebelum melakukan konfigurasi

16
pada file /etc/ssh/sshd_config pastikan SSH sudah terinstall pada distribusi linux anda,dan untuk
Distro Opensuse yang saya pakai itu udah otomatis terinstall.

Kemudian edit file /etc/ssh/sshd_config dengan menggunakan editor kesayangan anda misalnya
VIM #vim /etc/ssh/sshd_config

coba cari opsi :

LoginGraceTime 2m
PermitRootLogin no
MaxAuthTries 3

LoginGraceTime Merupakan opsi yg digunakan untuk memberikan batas waktu login dari
user,jadi silakan ubah opsi tersebut sesuai keinginan anda.
Contoh SSH Login

Dalam contoh ini kita akan membuat sebuah SSH Login session ke mesin deploy.magnet-id.com
dengan IP Address 117.103.57.23.

• Jalankan Putty
• Ketik hostname atau IP Address pada kolom hostname, sesuaikan port dan pilih
connection type SSH
• Masukkan nama Session yang anda inginkan (untuk di load di kemudian hari) dan klik
Save

17
Putty SSH Session Setup

• Masih di Putty Configuration, masuk ke Connection>Data (di sebelah kiri) dan masukkan
Auto Login username, dalam contoh ini adalah root. Setelah itu kembali ke Session
(depan dan klik Save)

18
Putty Configuration Auto Login

• Sampai dengan tahap ini, apabila anda meload save session dan klik open (atau double
click pada saved session) maka anda akan langsung diminta untuk memasukkan
password untuk root, karena pada saved session tersebut anda sudah memasukkan
username root sebagai autologin username.

19
Setup Key Pair (Private dan Public)

• Kita akan membuat key pair dengan menggunakan Puttygen, jalankan program Puttygen
• Pilih SSH 2 – RSA pada type of key to generate dan masukkan 1024 pada number of bits
in a generated key

20
Type of Key

• Arahkan pointer mouse ke daerah kosong pada saat anda mengklik generate untuk
menambah randomness.

Generate Key

• Setelah key digenerate silahkan save Public Key dan Private Key ke direktori khusus dan
nama khusus misalnya tes-publik.txt dan tes-private.ppk, mohon diperhatikan bahwa
private key harus kita simpan dalam format .ppk

21
Save Public dan Private Key

• Pastikan bahwa anda bisa melakukan login dengan menggunakan key pair, masuk ke
konfigurasi session anda di Putty, load save session sebelumnya (jangan di open), Pilih
Connection>SSH>Auth (di sebelah kiri, browse ke file private key anda, kembali ke
depan, dan Save Session tersebut kemudian open.

22
Attached Private Key

• Masuk ke mesin anda dengan autentikasi password biasa karena key kita belum diakui,
kita harus terlebih dahulu memasukkan Public Key yang kita generate sebelumnya.

PermitRootLogin no Merupakan opsi untuk mengijinkan user root bisa login ke ssh atau tidak
dengan memberikan nilai yes atau no pada opsi tersebut.sebaiknya berikan nilai no, agar user
tidak dapat login sebagai root ke ssh anda.

23
MaxAuthTries 3 untuk memberikan batas jumlah kesalahan yang di perbolehkan pada saat user
melakukan login, hal ini sangat berguna untuk menghindari attacker melakukan brute force pada
server anda.dimana user hanya dibiarkan melakukan kesalahan pengetikan password sesuai
dengan yg telah di tentukan pada opsi tersebut.

Jika anda menginginkan user tertentu saja yang boleh login ke ssh anda tambahkan opsi
AllowUsers pada akhir baris diikuti nama user yg di perbolehkan login.

Membuat Autentikasi SSH Tanpa Password

Komunikasi antar proses dalam MPICH (ch_p4) dilakukan melalui koneksi yang
dibangun dengan RSH. Jika ingin menggunakan koneksi yang lebih aman, SSH dapat digunakan
sebagai pengganti RSH.

Satu masalah yang akan ditemui adalah masalah autentikasi. Saat proses ingin dijalankan
di mesin lain, maka user harus melakukan autentikasi di mesin tersebut dengan memasukkan
password. Jika mesin yang digunakan ada banyak, maka proses memasukkan password akan
menjadi satu masalah tersendiri.

Proses autentikasi pada SSH dapat diganti dengan metode lain, yaitu dengan
menggunakan private/public key. Private key yang ada dapat diatur apakah memiliki passphrase
atau tidak. Dengan meniadakan passphrase, autentikasi SSH dapat dilakukan tanpa perlu
mengetikkan password.

Berikut ini adalah caranya.

1. Buatlah private/public key dengan menjalankan perintah berikut.


2. $ ssh-keygen -t rsa

Ikuti saja konfigurasi default.

3. Masuk ke direktori ~/.ssh

24
4. $ cd ~/.ssh
5. Set public key yang berhak mengakses komputer dengan cara memasukkan public key ke
dalam file authorized_keys. Kali ini, public key yang dimasukkan adalah public key
yang baru saja dibuat.
6. $ cp id_rsa.pub authorized_keys
7. Uji koneksi SSH
8. $ ssh localhost

Seharusnya autentikasi SSH tanpa password sudah dapat dilakukan.

Menyimpan Public Key di Server

Masuk ke dalam mesin kita melalui login biasa, kita akan menyimpan public key yang telah kita
generate sebelumnya di dalam server kita

view sourceprint?

1.cd /root/

2.mkdir ~/.ssh

3.vi ~/.ssh/authorized_keys2

Masukkan publik key kita dalam satu baris; dalam kasus ini;

view sourceprint?

1.ssh-rsa
AAAAB3NzaC1yc2EAAAABJQAAAIEAus97/+R0rDL/wWqRs+RiB+VNEHf4YQ8LAmYda63n+oD1wc4Gx
rRNd49qb2zCHOR7k3OJgUWNO3/PuCSS+G1qyRebYtQbX6XuRoqjpmyR91y64pbqFmbUrREUPbaSn4
1HFSIoW6Sg1Kj312t/K0ov3hBbExfUveaG1N12m8y3HR0= tes@host.com

Ubah permission file key tersebut agar hanya bisa dibaca tulis oleh user tersebut

view sourceprint?

1.chmod 600 ~/.ssh/authorized_keys2

25
Buka session SSH dengan menggunakan attached key, apabila konfigurasi berhasil maka anda
akan ditanyakan passphare, dan bukan password. Artinya public key telah digunakan sebagai
metoda otentikasi untuk SSH Session anda.

Passphrase SSH

Disable Login Username dan Password

Jalankan prosedur ini apabila anda ingin mengoptimalkan pengamanan SSH Mesin anda, mohon
dipastikan bahwa autentikasi dengan menggunakan key pair telah berhasil dilakukan pada
langkah sebelumnya.

Masuk ke dalam box anda, edit / modifikasi konfigurasi sshd anda, pada CentOS 5.2;

view sourceprint?

1.vi /etc/ssh/sshd_config

Sesuaikan direktif berikut

view sourceprint?

1.Protocol 2

26
2.PasswordAuthentication no

3.UsePAM no

Restart service sshd

view sourceprint?

1.service sshd restart

Dengan demikian SSH pada server anda tidak dapat lagi diakses melalui otentikasi username dan
password.

Autologin Passphrase

Autologin dapat digunakan dengan menggunakan pageant, namun demikian pageant harus
berjalan pada background proses, misalkan kita memanggil private key yang kita simpan untuk
berjalan pada background proses, silahkan browse ke tempat private key anda disimpan dan
double click, program pageant akan berjalan dengan passphrase private key terload, sehingga
ketika anda membuka session tidak akan ditanyakan passhrase kembali.

Pageant Save Passphrase

27
RPC ( Remote Proceure Call )

Definisi RPC

Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk
mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah
server harus menyediakan layanan remote procedure. Pendekatan yang dilakuan adalah sebuah
server membuka socket, lalu menunggu client yang meminta prosedur yang disediakan oleh
server. Bila client tidak tahu harus menghubungi port yang mana, client bisa me- request kepada
sebuah matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan port apa
yang digunakan oleh prosedur yang diminta client. RPC adalah satu teknik komunikasi
interproses yang memungkinkan perangkat lunak client dan server untuk berkomunikasi. Sebuah
Open Group’s Distributed Computing Environment (DCE), yang merupakan spesifikasi untuk
remote prosedur call dan interoperable dengan sistem DCE-based RPC yang lain, seperti untuk
sistem operasi HP-UX dan IBM AIX UNIX–based. RPC dirancang untuk mengurangi isu-isu
kerumitan pada kompleksitas di OS dengan menyediakan suatu antar muka yang umum antar
aplikasi. RPC bertindak sebagai suatu middle untuk komunikasi-komunikasi client/server. RPC
dirancang untuk membuat client/server interaksi lebih aman dan lebih mudah seperti keamanan,
sinkronisasi, dan data mengalirkan menangani, ke dalam suatu standar yang umum.

RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan


paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak
remote procedure. RPC menggunakan socket untuk berkomunikasi dengan proses lainnya. Pada
sistem seperti SUN, RPC secara default sudah ter- install kedalam sistemnya, biasanya RPC ini
digunakan untuk administrasi sistem. Sehingga seorang administrator jaringan dapat mengakses
sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.

Klien dan Server


Klien adalah komputer atau proses yang mengakses suatu servis/layanan atau resources
dari proses atau komputer pada suatu jaringan. Server adalah komputer yang menyediakan

28
servis/layanan dan resources, dan yang mengimplementasikan servis jaringan. Tiap servis pada
network adalah susunan dari program remote, dan tiap program remote mengimplementasi
prosedur remote. Semua prosedur berikut parameternya dan hasilnya didokumentasi secara
spesifik pada protokol suatu program.

Protokol Message RPC


Protokol Message RPC didefinisikan dengan menggunakan deskripsi data eXternal Data
Representation ( XDR ) yang meliputi struktur, enumerasi dan union. Pembahasan lebih lanjut
akan diterangkan pada bab berikutnya mengenai implementasi RPC.
Protokol Message ini membutuhkan faktor-faktor pendukung sebagai berikut :
1. Spesifikasi yang unik untuk tiap prosedur call
2. Respon message yang sesuai untuk tiap message yang diminta
3. Otentifikasi klien untuk tiap layanan dan sebaliknya
Protokol Message RPC memiliki dua ( 2 ) struktur yang berbeda, yaitu call message dan reply
message. Tiap klien yang akan melakukan RPC pada suatu server di jaringan akan menerima
balasan (reply) berupa hasil dari eksekusi prosedur tersebut. Dengan menggunakan spesifikasi
yang unik untuk tiap prosedure remote, maka RPC dapat mencocokkan message balasan untuk
tiap call message yang diminta klien.

Call Message
Tiap call message pada RPC mengandung nilai-nilai unsigned integer yang digunakan untuk
mengidentifikasi prosedur remote yang diminta. Nilai-nilai ini adalah :
1. Nomor Program
2. Nomor Versi dari Program7
3. Nomor Prosedur

Reply Message

Reply message yang dikirimkan oleh server jaringan bervariasi tergantung apakah call messages
yang diminta klien diterima atau ditolak. Reply message mengandung informasi yang
digunakan untuk membedakan kondisi-kondisi yang diminta sesuai dengan call messages.
Informasi ini antara lain :

29
1. RPM mengeksekusi call message dengan sukses
2. Implementasi remote tidak sesuai dengan protokol yang digunakan.
Versi yang lebih rendah atau tinggi akan ditolak.
3. Program remote tidak tersedia pada sistem remote
4. Program remote tidak mendukung versi yang diminta klien
5. Nomor prosedur yang diminta tidak ada.

Fitur dalam RPC


RPC memiliki fitur - fitur sebagai berikut : batching calls, broadcasting calls, callback
procedures dan using the select subroutine.

Batching Calls

Fitur Batching calls mengijinkan klien untuk mengirim message calls ke server dalam
jumlah besar secara sequence ( berurutan ). Batching menggunakan protokol streaming byte
seperti TCP / IP sebagai mediumnya. Pada saat melakukan batching, klien tidak menunggu
server untuk memberikan reply terhadap tiap messages yang dikirim, begitu pula dengan server
yang tidak pernah mengirimkan messages reply. Fitur inilah yang banyak digunakan klien,
karena arsitektur RPC didesain agar pada tiap call message yang dikirimkan oleh klien harus ada
proses menunggu balasan dari server. Oleh karena itu maka pihak klien harus dapat mengatasi
error yang kemungkinan terjadi karena pihak klien tidak akan menerima peringatan apabila
terjadi error pada message yang dikirim.

Broadcasting Calls
Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data ke jaringan dan
menunggu balasan dari network. Fitur ini menggunakan protokol yang berbasiskan paket data
seperti UDP/IP sebagai mediumnya. Broadcast RPC membutuhkan layanan port mapper RPC
untuk mengimplementasikan fungsinya.

Callback Procedures
Fitur Callback Procedures mengijinkan server untuk bertindak sebagai klien dan
melakukan RPC callback ke proses yang dijalankan oleh klien.

30
Menggunakan select Subrutin

Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalam antrian untuk
melihat apakah mereka siap untuk dibaca (diterima) atau ditulis (dikirim), atau mereka dalam
kondisi ditahan sementara. Prosedur ini mengijinkan server untuk menginterupsi suatu aktivitas,
memeriksa datanya, dan kemudian melanjutkan proses aktivitas tersebut.

Otentifikasi RPC
Proses otentifikasi adalah proses yang digunakan untuk mengidentifikasi server dan klien
pada RPC. Untuk setiap prosedur remote yang dilakukan protokol RPC menyediakan slot yang
dipakai sebagai parameter otentifikasi yang berfungsi agar pemanggil (caller) dapat memberikan
identitasnya kepada server. Parameter otentifikasi ini dibuat di paket klien. Otentifikasi RPC
terdiri atas beberapa bagian. Berikut ini adalah bagian-bagian pada otentifikasi RPC :

1. Protokol Otentifikasi RPC


Protokol Otentifikasi RPC disediakan sebagai bagian dari protokol RPC. Untuk setiap
prosedur remote, semuanya diotentifikasi oleh paket RPC pada server. Parameter yang
digunakan adalah respon verifier. Sedangkan pada pihak klien, setiap paket RPC diberikan
parameter otentifikasi dan parameter yang digunakan adalah credential dan verifier.

2. Otentifikasi NULL
Otentifikasi NULL digunakan pada sistem dimana pemanggil (caller) RPC tidak
mengetahui identitasnya sendiri dan server tidak membutuhkan identitas pemanggil.

3. Otentifikasi UNIX
Otentifikasi Unix digunakan pada prosedur remote di sistem UNIX. Jenis otentifikasi ini
dibagi dua (2) yaitu otentifikasi pada sisi klien dan otentifiksi pada sisi server. Pada sisi klien,
otentifikasi ini akan membuat otentifikasi handle dengan AIX permissions agar dapat berasosiasi
dengan parameter credentials pada sistem UNIX. Sedangkan pada sisi server, server harus dapat
menentukan tipe otentifikasi yang diberikan oleh pemanggil RPC. Penentuan dukungan terhadap
tipe otentifikasi akan memberikan reply yang berbeda.

31
4. Otentifikasi Data Encryption Standard ( DES )
Otentifikasi DES membutuhkan keyserv daemon yang harus berjalan baik di sisi server
maupun klien. Tiap pengguna pada sistem ini harus memiliki kunci public ( public key yang
disahkan pada database kunci publik oleh Administrator jaringan tersebut.

5. Protokol Otentifikasi DES


Protokol Otentifikasi DES meliputi protokol penanganan DES pada proses otentifikasi
RPC. Protokol ini mencakup 64-bit blok data DES yang terenkripsi dan menentukan panjang
maksimum untuk user name pada jaringan yang digunakan.

6. Enkripsi Diffie-Hellman
Enkripsi Diffie-Hellman digunakan pada pembuatan kunci public pada otentifikasi DES
dengan menggunakan 192-bit kunci. Enkripsi ini memiliki dua buah variable konstan, yaitu
BASE dan MODULUS yang digunakan pada protokol otentifikasi DES. RPC berhubungan
hanya dengan proses otentifikasi, tidak dengan kontrol akses terhadap services/layanan
individual yang diberikan. Tiap layanan mengimplementasikan peraturan mengenai kontrol akses
masing-masing. Subsistem otentifikasi pada paket RPC bersifat open-ended, artinya beberapa
otentifikasi dapat diasosiasikan pada RPC klien.

32
RPC suatu metoda yang powerfull, cepat, efisien dan aman untuk komunikasi antar
proses yang memungkinkan pertukaran data pada proses yang berbeda. Proses bisa berada di
komputer yang sama, LAN atau Internet.

Arsitektur RPC at Windows 2003

Proses RPC

33
RPC Support NT Protocol

Port Assignment

34
Remote Procedure Call dengan SunRPC

Salah satu implementasi RPC (Remote Procedure Call) adalah dengan menggunakan SunRPC.
Dalam tutorial kali ini, saya akan mencontohkan pembuatan program sederhana yang
menggunakan SunRPC.

Service yang disediakan oleh program adalah operasi matematika dasar, yaitu penjumlahan,
pengurangan, perkalian, pembagian, dan pencarian modulo.

Pendefinisian Service

Sebelum program yang menggunakan RPC dibuat, kita harus mendefinisikan fungsi-fungsi atau
prosedur-prosedur apa saja yang akan dibuat.

Berikut ini adalah definisi service yang akan kita buat.

struct angka {
int a;
int b;
};

program TAMBAHAN {
version TAMBAHANVER {
int tambah(angka) = 1;
int kurang(angka) = 2;
int kali(angka) = 3;
float bagi(angka) = 4;
int mod(angka) = 5;
} = 1;
} = 99;

Simpan text di atas ke dalam sebuah file bernama tambah.x. Sekarang jalankan program rpcgen
untuk mengubah file tersebut menjadi client dan server stub.

35
rpcgen tambah.x

Setelah program di atas dijalankan, akan terbentuk empat buah file baru. Yaitu:

1. tambah_clnt.c
2. tambah_svc.c
3. tambah.h
4. tambah_xdr.c

Semua file tadi akan digunakan dalam pembuatan program client dan server RPC.

Pembuatan Server

Program server akan mengimplementasikan fungsi-fungsi pada server stub. Dalam program kali
ini, ada lima buah fungsi yang harus diimplementasikan, yaitu:

1. int * tambah_1_svc(angka *, struct svc_req *)


2. int * kurang_1_svc(angka *, struct svc_req *)
3. kali_1_svc(angka *, struct svc_req *)
4. bagi_1_svc(angka *, struct svc_req *)
5. mod_1_svc(angka *, struct svc_req *)

Daftar fungsi-fungsi itu dapat dilihat pada file tambah.h.

Berikut ini adalah implementasi fungsi yang akan kita buat.

#include <rpc/rpc.h>
#define _RPCGEN_SVC
#include "tambah.h"

int * tambah_1_svc(angka *input, struct svc_req *req) {


static int hasil;

hasil = input->a + input-> b;


return &hasil;
}

36
int * kurang_1_svc(angka *input, struct svc_req *req) {
static int hasil;

hasil = input->a - input->b;


return &hasil;

int * kali_1_svc(angka *input, struct svc_req *req) {


static int hasil;

hasil = input->a * input-> b;


return &hasil;
}

float * bagi_1_svc(angka *input, struct svc_req *req) {


static float hasil;

hasil = (float)input->a / (float)input->b;


return &hasil;
}

int * mod_1_svc(angka *input, struct svc_req *req) {


static int hasil;

hasil = input->a % input->b;


return &hasil;
}

Simpan source code di atas ke dalam file tambah_server.c. Setelah itu, lakukan kompilasi.

gcc -o tambah_server tambah_server.c tambah_svc.c tambah_xdr.c

Pembuatan Client

Program yang akan menjadi client, dapat menggunakan prosedur yang dijadikan sebagai remote
procedure seolah-olah prosedur/fungsi tersebut menjadi bagian dari program client.

37
Berikut ini adalah source code dari program client yang akan kita buat.

#include <rpc/rpc.h>
#define _RPCGEN_CLNT
#include "tambah.h"

int main(int argc, char **argv) {


CLIENT *cl;
int *hasil;
float *hasil_float;
struct angka input;

if (argc < 2) {
printf("Masukkan alamat komputer yang menyediakan service.\n");
printf("Contoh: %s localhost\n\n", argv[0]);
exit(1);
}

cl = clnt_create(argv[1], TAMBAHAN, TAMBAHANVER, "tcp");


if (cl == NULL) {
clnt_pcreateerror(argv[1]);
exit(1);
}

cl->cl_auth = authunix_create_default();

input.a = 2;
input.b = 2;

printf("%d + %d = %d\n", input.a, input.b, *tambah_1(&input, cl));


printf("%d - %d = %d\n", input.a, input.b, *kurang_1(&input, cl));
printf("%d * %d = %d\n", input.a, input.b, *kali_1(&input, cl));
printf("%d / %d = %d\n", input.a, input.b, *bagi_1(&input, cl));
printf("%d %% %d = %d\n", input.a, input.b, *mod_1(&input, cl));

38
Simpan source code di atas ke dalam file tambah_client.c. Setelah itu lakukan kompilasi.

gcc -o tambah_client tambah_client.c tambah_clnt.c tambah_xdr.c

Lapisan RPC

Bagian antar-muka (interface) dari RPC dibagi menjadi 3 lapisan / bagian (layer) yaitu :

1. Lapisan Tertinggi (Highest Layer)


Lapisan ini merupakan lapisan yang sangat bersentuhan langsung dengan sistem operasi, mesin
dan jaringan tempat RPC berjalan. Layer ini umumnya banyak digunakan pada pembuatan dan
pemprograman RPC karena penggunaan layer ini sama saja dengan penggunaan RPC. Banyak
servis / layanan pada layer ini yang berhubungan langsung dengan informasi yang banyak
dibutuhkan, misalnya fungsi rnuser() yang berguna untuk memberikan informasi jumlah user /
pengguna pada sistem remote.

Berikut ini jenis-jenis servis lainnya yang banyak digunakan pada layer ini :
Rutin Deskripsi
rnusers mengembalikan jumlah user pada sistem remote
rusers mengembalikan informasi mengenai user tertentu
havedisk memeriksa keberadaan disk pada mesin remote
rstats melihat kinerja dari kernel remote
rwall menulis untuk menentukan mesin remote tertentu
yppasswd mengupdate password dari user dalam Yellow Pages.

2. Lapisan Menengah (Intermediate Layer)


Lapisan ini merupakan implementasi dari RPC sesungguhnya. Pada layer ini, seorang user tidak
harus berhubungan dengan soket, sistem operasi atau implementasi lo-level lainnya. Pada layer
ini, seorang user hanya melakukan proses remote pada suatu mesin. Layer ini merupakan layer
yang digunakan untuk semua program RPC.
Pada layer ini terdapat rutin-rutin mengenai ”registerrpc()”, ”callrpc”, dan scv run. Dua rutin
yang disebut pertama adalah rutin-rutin yang fundamental. ”registerrpc() digunakan untuk
memperoleh nomor unik dari tiap prosedur identifikasi dalam tiap sistem. Sedangkan ”callrpc()”

39
digunakan untuk mengeksekusi prosedur remote. Implementasi layer diatasnya dilakukan pada
layer ini.

3. Lapisan Terendah (Lowest Layer)


Lapisan ini merupakan lapisan yang mengatur tentang soket dan sistem call. Lapisan ini tidak
memberikan data dan servis secara detail untuk dapat digunakan. Umumnya program yang
dibuat untuk lapisan ini merupakan program yang paling efisien. Permasalahan yang timbul pada
sistem ini berkaitan dengan penyesuaian implementasi RPC untuk sistem operasi yang berbeda.

Kelemahan dan Eksploitasi RPC


Tujuan utama penggunaan protokol RPC adalah untuk mempermudah komunikasi dalam
pembangunan aplikasi klien - server yang terdistribusi. Namun dalam perkembangannya, seiring
dengan perkembangan sistem operasi, protokol ini banyak disalah-gunakan. Hal ini terkait
dengan kelemahan protokol ini yang dimanfaatkan oleh pihak-pihak tertentu untuk mendapatkan
keuntungan atau sekedar untuk mengacaukan sistem yang berlaku. Tindakan ini disebut juga
dengan eksploitasi RPC.

Kelemahan RPC pada Sistem Operasi Windows

Sistem operasi Microsoft Windows adalah salah satu sistem operasi yang mendukung
protocol RPC. Sebagai sistem operasi yang paling banyak digunakan di seluruh dunia baik untuk
PC Desktop maupun server, sistem operasi Windows menjadi salah satu sistem operasi yang
banyak dijadikan target mulai dari serangan virus, worm, sampai trojan. Protokol RPC juga tidak
luput menjadi sasaran serangan oleh pihak yang tidak bertanggung jawab. Alasan penyerangan
pada protokol ini disebabkan karena kemudahan ketergantungan sistem operasi Windows pada
servis/layanan RPC. Banyak layanan pada sistem operasi ini yang didesain untuk bergantung
pada layanan RPC, baik digunakan maupun tidak. Dan sayangnya, pengguna sistem operasi ini
tidak dapat mengdisfungsikan layanan RPC. Pengguna bisa saja menggunakan firewall untuk
memblok port RPC, namun karena system operasi Windows terlalu bergantung pada mekanisme
RPC sebagai fungsi dasarnya maka hal ini kadang-kadang tidak berhasil. Bahkan sebagai studi

40
kasus, pada sistem operasi Windows Server 2003 terdapat kelemahan pada fungsi RPC itu
sendiri ( Informasi lengkapnya dapat dilihat pada tabel kelemahan sistem operasi ini pada
lampiran ). Kelemahan protokol RPC pada sistem operasi ini terletak pada fungsi RPC yang
berhubungan dengan pertukaran message melalui protokol TCP/IP. Hal ini mempengaruhi
bagian antar-muka Distributed Component Object Model (DCOM) yang berhubungan dengan
RPC, yang akan mendengarkan ( listen ) port-port RPC yang tersedia. DCOM adalah protokol
yang berfungsi untuk mengaktifkan komponen pada perangkat lunak ( software ) agar dapat
berkomunikasi langsung dengan jaringan. Protokol ini didesain untuk penggunaan jaringan multi
tranport termasuk protokol Internet misalnya HTTP. RPC melalui HTTP v1 ( pada sistem operasi
WIndows NT 4.0, Windows 2000 ) dan v2 ( Windows XP, Windows Server 2003 ) mempunyai
suatu fitur baru yaitu mendukung protokol transportasi RPC yang mengijinkan RPC untuk
beroperasi melalui port TCP 80 dan 443. Hal ini menyebabkan komunikasi antara klien dan
server dapat dilakukan walaupun dalam pengawasan server proxy dan firewall. COM Internet
Services ( COM ) mengijinkan DCOM untuk melakukan RPC melalui HTTP untuk komunikasi
DCOM klien dan DCOM server. Port Portmap 111 adalah nomor port yang paling banyak
diakses, namun umumnya nomor port ini telah difilter oleh firewall. Kecenderungan lain
berpindah pada nomor port lain yang dapat digunakan untuk mengirim pesan tertentu yang telah
dimanipulasi, seperti port 135, 139, 445, 593 pada remote komputer. Melalui port-port ini maka
seorang user dapat melakukan permintaan yang dapat mengekploitasi dengan menjalankan kode
dengan hak sistem lokal. Berikut ini tabel protokol yang sering dimanfaatkan pada ekploitasi
RPC :
Urutan Protokol yang digunakan oleh Endpoint Mapper Port TCP atau UDP

ncacn ip tcp TCP/135


ncacn ip udp UDP/135
ncacn np pipe emapper TCP/139 dan TCP/445
ncacn http TCP/593
ncacn http dengan servis COM Internet aktif TCP/180

Masalah ini semuanya disebabkan oleh kelemahan pada servis RPCSS. Servis ini
berhubungan dengan aktivasi DCOM. Kegagalan terjadi pada penanganan messages yang salah
sehingga mempengaruhi aktivasi DCOM yang mendengarkan port UDP 135, 137, 138, 445 dan
port TCP 135, 139, 445, 593. Ditambah port 80 dan 443 ( CIS atau RPC over HTTP ) jika

41
diaktikan. Dengan kesalahan ini, maka seorang klien dapa menggunakan kegagalan ini untuk
mengeksekusi kode yang dapat dijalankan pada server.

Implementasi Eksploitasi RPC


Pada implementasi ini digunakan beberapa tools yang digunakan untuk melakukan
eksploitasi pada RPC. Pada contoh kasus ini, implementasi dilakukan pada Local Area Network
( LAN ) dengan host yang menggunakan sistem operasi Microsoft Windows XP. Eksekusi
eksploitasi ini dibagi menjadi beberapa tahap. Tahap pertama adalah deteksi system yang
memiliki kelemahan ( vulnerability ). Tahap kedua adalah penyerangan terhadap system tersebut.
Biasanya pada tahap ini digunakan program yang didesain khusus untuk mengeksploitasi RPC.
Pada contoh kasus ini digunakan program bernama ”Kaht”. Tahap terakhir adalah tahap eksekusi
kode pada sistem yang telah ter-remote. Pada tahap ini, seorang penyerang dapat melakukan apa
saja mulai dari pembuatan account user dengan hak administrator sampai pengambilan data pada
sistem.

Deteksi Sistem
Tools yang digunakan pada tahap ini adalah RPCScan v.2.03 buatan Foundstone.inc dan
digunakan pada sistem operasi Microsoft Windows. Sebetulnya tujuan awal penggunaan
perangkat ini adalah untuk mendeteksi sistem yang memiliki kelemahan keamanan bagi para
Administrator, namun dapat dipakai untuk tujuan lain. Software ini dapat mendetaksi sistem
operasi yang memiliki kelemahan yaitu pada layanan DCOM (Distributed Component Object
Model). Sesuai dengan penjelasan pada bagian sebelumnya, layanan DCOM merupakan
komponen yang berhubungan dengan servis RPC.

42
Sistem yang memiliki Kelemahan

Sistem yang masih mengaktifkan layanan DCOM akan diberi status ”Vulnerable” dan sebaliknya
akan diberi status ”DCOM Disabled”( Figure 3.1). Batasan pen-scan-an pada perangkat ini
terbatas pada jaringan dengan protokol IP v4. Namun mengingat masih banyaknya sistem yang
menganut protokol ini, maka implementasi pengecekan sistem dapat terjadi pada siapa saja.
Serangan akan ditujukan pada sistem dengan keterangan Vulnerable.

43
DAFTAR PUSTAKA

IlmuKomputer.Com
Wikipedia.co.id
Scribd.com
http://artikel.magnet-id.com/category/pengelolaan-linux/
http://guru.sman3kuningan.sch.id/nurdin/?p=14
http://www.scribd.com/doc/8950660/Skripsi-Teknik-Informatika

44

You might also like