Monday 11 November 2013

Mengendalikan Sistem Linux Dari Jarak Jauh

Menangani dua komputer sekaligus atau lebih dan terhubung di jaringan bukanlah persoalan mudah. Dengan bantuan software remote access, Anda dapat menangani sebagian besar tugas administrasi seluruh komputer dari satu komputer saja.

Bayangkan Anda menangani sebu­ah jaringan (LAN) kecil dengan empat komputer (via switch) di rumah. Empat komputer ini ber­ada di ruangan yang berbeda, masing-masing di kamar tidur dan ruang belajar, dan sisanya di ruang kerja pribadi. Pada suatu ketika, Anda memerlukan beberapa file yang tersebar di ketiga PC lainnya sehingga Anda pun harus meng-copy file-file tersebut dari 3 komputer ke komputer yang saat ini sedang gunakan.

Bagaimana cara Anda melakukannya? Kalau dengan cara tradisional, berarti Anda harus mondar mandir di 3 komputer tersebut, mungkin mencari file-filenya terlebih dahulu baru kemudian di-copy. Bisa juga melalui USB Flash Drive (UFD) atau media removable lain.

Apakah cara ini praktis? Tentu saja tidak! Ingat, Anda sudah punya suatu jaringan kecil. Anda bisa memanfaatkannya untuk melakukan pengendalian jarak jauh. Alih-alih beranjak dari kursi Anda dan menuju komputer di ruang sebelah, Anda cukup melakukan pencarian file dan peng-copy-an data dari PC Anda saat ini. Lebih cepat bukan? Tidak hanya itu. Dengan menggunakan program bernama VNC, Anda bahkan dapat melihat layar desktop komputer yang dituju. Serasa be­rada langsung di depan komputer dan bernavigasi di dalamnya!

Praktik kali ini menggunakan dua sis­tem Linux, yaitu Fedora 9 sebagai client dan CentOS 5.3 sebagai server. Komputer client alamat IP-nya 192.168.1.1, sementara client memiliki alamat IP 192.168.1.2. Di­asumsikan jaringan (kabel atau WiFi) te­lah ter-install dengan baik.  Seperti biasa, prompt # menunjukkan pe­rintah yang di­kerjakan sebagai root, sementara prompt $ sebagai user non root.

A. Telnet
Telnet adalah bentuk login jarak jauh yang relatif kuno pada keluarga sistem UNIX. Ciri khasnya adalah komunikasi antara dua komputer dilakukan secara gamblang. Artinya, data yang terkirim dan diterima tidak dienkripsi. Keunggulannya,  prosesnya berlangsung cepat karena data tinggal dikirim apa adanya. Namun, karena tidak terproteksi, data menjadi rawan terkena sniffing (penyadapan).
Semua hal dalam konteks akses remote membutuhkan dua komponen, yaitu program client dan server. Untuk telnet, di server Anda harus memastikan paket RPM telnet-server telah terinstall:

# rpm -qa | grep telnet-server
Apabila tidak muncul output apapun, gunakan yum untuk instalasi. Di sini dianggap Y telah terkonfigurasi menuju repository CentOS secara benar:

# yum install telnet-server

Resolving Dependencies
–> Running transaction check
—> Package telnet-server.i386 1:0.17-39.el5
set to be updated
–> Finished Dependency Resolution

Running Transaction
Installing     : telnet-server
[1/1]
Installed: telnet-server.i386 1:0.17-39.el5
Complete!

Daemon telnet tidak langsung otomatis berjalan, ada konfigurasi tambahan yang harus dilakukan. Edit file /etc/xinetd.d/telnet dan bari baris:
disable        = yes
menjadi:
disable        = no

Selanjutnya, restart xinetd dengan perintah seperti berikut ini.

# /etc/init.d/xinetd restart
Pastikan apakah telnet sudah ter-install di komputer client dengan program yum. Apabila yum belum terinstalasi, ketik:

# yum install telnet
Selanjutnya, lakukan remote login sebagai berikut:

$ telnet 192.168.1.2
Setelah perintah ini, pada layar login akan muncul kurang tampilan seperti berikut ini:

Trying 192.168.1.2…
Connected to 192.168.1.2.
Escape character is ‘^]’.
CentOS release 5.3 (Final)
Kernel 2.6.18-128.el5 on an i686
login:

Masukkan nama user dan password dan kita siap bekerja layaknya berada langsung di depan komputernya. Setelah selesai bekerja, Anda tinggal gunakan perintah “exit” atau “logout” atau tekan [Ctrl]+[D] untuk mengakhiri sesi telnet.
Untuk memastikan service xinetd se­lalu aktif saat booting (karena telnet server bernaung di dalamnya), ketikkan:
# chkconfig –level 2345 xinetd on
Telnet prompt: Contoh prompt dalam koneksi jarak jauh telnet pada distro CentOS.
B. Akses aman lewat SSH
Telah dijelaskan sebelumnya bahwa rsh dan telnet bukan merupakan pilihan yang aman karena komunikasi yang terjalin tidak terenkripsi. Hal ini bisa diatasi jika kita menggunakan SSH (Secure Shell). Sama seperti konsep telnet atau rsh, SSH terdiri atas program client dan server.
Sebelumnya, install terlebih dulu di server, paket openssh-server dengan pe­rintah sebagai berikut.

# yum install openssh-server
Nama openssh mungkin sedikit menggelitik. Secara singkat, “open” berarti implementasi open source dari teknik enkripsi yang dipakai oleh SSH. Secara lepas, juga bisa diartikan bahwa openssh punya keterkaitan dengan salah satu varian UNIX yaitu OpenBSD.

Setelah ter-install, jalankan server SSH:
# /etc/init.d/sshd start

Di sisi client, install paket ssh client:
# yum install openssh-clients

Cobalah melakukan koneksi sederhana dari client ke server:
$ ssh dwi@192.168.1.2
dwi@192.168.1.2’s password:
Last login: Sat Fri 11 13:15:00 2009
from 192.168.1.1
[dwi@server ~]$


Apabila kita ingin melakukan login sebagai user lain, misalnya “john”, maka parameter di atas dapat diganti menjadi “john@192.168.1.2″. Setelah memasukkan password, kita akan dapat bekerja layaknya berada pada komputer server secara langsung.

Kadang kala yang kita butuhkan tidak perlu sampai login dan memunculkan shell, tetapi cukup untuk mengerjakan suatu tugas. Misalnya, kita sekadar ingin mengetahui versi kernel di server, kita bisa ketikkan:
$ ssh dwi@192.168.1.2 uname -r
dwi@192.168.1.2’s password:
2.6.18-128.el5


Bagaimana jika perintah yang ingin kita kerjakan lebih dari satu? Perintah-perintah tersebut bisa kita gabungkan seperti ini:
$ ssh dwi@192.168.1.2 ‘uname -r ;
date ; w’
dwi@192.168.1.2’s password:
2.6.18-128.el5
Sat Fri 11 13:44:51 WIT 2009
13:44:51 up  1:43,  1 user,  load average: 0.12,
0.05, 0.01
USER     TTY      FROM              LOGIN@   IDLE
JCPU   PCPU WHAT
root     pts/0    192.168.1.1      13:14    9:2
9   0.49s  0.49s -bash


Perhatikan bahwa perintah-perintah tersebut diapit oleh tanda petik tunggal dan dipisahkan oleh tanda titik koma.

Menerapkan encryption Remote access ssh mirip seperti telnet, hanya saja ssh menyediakan fasilitas enkripsi sehingga komunikasi menjadi lebih aman dari aktivitas penyadapan.

Remote desktop : Lakukan konfigurasi VNC server melalui menu “System|preference”.Agar koneksi lebih aman, aktifkan fungsi password.
SSH juga mempermudah kita dalam melakukan transfer data. Misalkan di home direktori john ada file bernama “coba.txt” yang ingin dikirim ke server pada direktori /tmp. Di server, kebetulan juga ada account user bernama john juga.
Jadi, lakukan langkah berikut ini.
$ scp /home/john/coba.txt john@192.168.1.2:/
tmp/
john@192.168.1.2’s password:
coba.txt 100%   12KB 12.1KB/s   00:00


Dalam keadaan kita butuh transfer banyak data sekaligus, kita bisa menggunakan menggunakan opsi copy rekursif atau globbing (menggunakan tanda * atau ?).
Contohnya, untuk mengirim seluruh isi folder “data” dan sekaligus membuat folder dengan nama yang sama, ketik:
$ scp -r ~/data dwi@192.168.1.2:~/
dwi@192.168.1.2’s password:
file1.doc                             100% 9572
9.4KB/s   00:00
file2.doc                             100% 8924
8.7KB/s   00:00
file3.doc                             100%   35KB
34.9KB/s   00:00


Contoh lainnya, jika ingin meng-copy file berakhiran odt (open office writer):
$ scp -r ~/data/*.odt mulyadi@192.168.1.2:~/

Mirip telnet, Anda pun bisa memastikan service SSH di server selalu aktif booting Linux dengan perintah:
# chkconfig –level 2345 sshd on

C. Remote desktop via VNC

Apabila sejauh ini kita membahas metode akses yang memunculkan tampilan berbasis teks, sekarang kita beralih pada basis grafik. Nama program yang terkenal untuk hal ini adalah VNC (Virtual Network Computing). Secara mudahnya, dengan VNC Anda bisa melihat tampilan desktop pada komputer remote. Namun tidak hanya itu, hal-hal seperti gerakan mouse juga akan dikirim ke komputer remote dan hasilnya akan ditampilkan dalam layar VNC.

Paket VNC secara umum sudah tersedia pada hampisr semua repository distro Linux. Karena servernya berbasis CentOS, install dengan perintah:
# yum install vnc-server

Selanjutnya, service VNC perlu kita aktifkan. Salah satu caranya adalah dengan masuk ke Xwindow. Apabila Anda menggunakan GNOME, klik “preference | remote desktop” untuk melakukan konfigurasi beberapa opsi di VNC.

Anda pun bisa mengaktifkan “Allow other users to view your desktop” agar orang lain bisa terhubung ke desktop Anda, tetapi hanya bisa menjadi penonton pasif. Selanjutnya, Anda bisa meng­atur:
l “Allow other users to control your desktop” - membuat pengguna remote bisa mengirim perintah keyboard dan mouse via VNC
l “Ask you for confirmation” - akan memunculkan window dialog setiap kali ada koneksi VNC yang masuk. Anda lalu bisa memutuskan hendak mengizinkan atau memutuskan koneksi ini
l “Require the user to enter the password”.

Bisa ditebak ini adalah cara agar koneksi VNC dilindungi oleh password. Masukkan password yang Anda inginkan pada text box, user yang akan terkoneksi akan ditanyai password terlebih dahulu sebelum bisa tersambung.
Setelah selesai melakukan setting, klik “Close”. Pada sisi client, Anda cukup meng-­install VNC viewer-nya:
# yum install vnc

Kini Anda bisa terhubung ke server dengan mengetik:
$ vncviewer 192.168.1.2:0

Perhatikan akhiran :0 setelah alamat IP atau nama host. Ini adalah nomor display dari sistem X Window. Secara default, X Window seperti GNOME akan aktif di nomer display 0, kecuali kita melakukan perubahan tertentu.

Apabila Anda mengaktifkan fungsi password VNC di sisi server, akan muncul tampilan yang menanyakan password tersebut. Kotak username akan dikosongkan karena VNC otomatis akan menampilkan layar sesuai user yang aktif di Xwindow  komputer remote. Selanjutnya, jika Anda mengaktifkan feature konfirmasi, pada komputer server akan muncul kotak dialog. Anda cukup mengklik “Allow” agar client bisa terhubung.

Konfirmasi Apabila Anda memilih untuk mengaktifkan fasilitas konfirmasinya, tampil­an layar seperti ber­ikut ini akan muncul setiap kali ada koneksi baru yang masuk.

Display desktop remote via vnc Contoh tampilan VNC saat menampilkan menu program melalui tombol [F8]

Bagi Anda yang peduli pada keamanan lalu lintas data, ada hal yang perlu diperhatikan. VNC, mirip seperti telnet atau rsh, mengirimkan data dengan relatif gamblang.

Memang struktur komunikasi VNC lebih rumit daripada telnet atau rsh, tetapi masih bisa disadap. Untuk itu, VNC menawarkan fasilitas tunnel via ssh.

Mekanismenya adalah melakukan komunikasi antara VNC server dan client via “terowongan” SSH.
Dengan demikian, data terlindungi dengan proteksi ala SSH.

Untuk bisa melakukan hal ini, syaratnya SSH server dan client harus sudah ter-install dan berjalan di server dan client. Berikutnya, di sisi client Anda cukup menjalankan perintah VNC seperti berikut ini.
$ vncviewer -via 192.168.1.2 192.168.1.2:0

Asumsinya, nama user yang dipakai untuk login di server adalah sama dengan nama user di client. Jika berbeda, Anda bisa tambahkan nama usernya secara eksplisit.
Misalnya untuk login sebagai “dwi”, perintah di atas menjadi:
$ vncviewer -via dwi@192.168.1.2 192.168.1.2:0

Opsi yang digunakan pada perintah tersebut adalah -via dan parameternya adalah nama host atau alamat IP komputer yang dituju. Akan muncul dialog yang menanyakan password SSH:
dwi@192.168.1.2’s password:

Masukkan password user “dwi” pada komputer server. Maka akan muncul pesan berikutnya:
Fri Dec 11 13:36:57 2009
CConn:connected to host localhost port5599


Sampai di sini, proses selanjutnya akan sama seperti saat melakukan koneksi VNC biasa.
Untuk meyakinkan Anda bahwa koneksi dilakukan secara aman, periksa de­ngan perintah:
# netstat -atupn | grep EST
tcp        0      0 192.168.1.1:39872           192.1
68.1.2:22              ESTABLISHED 23037/ssh
tcp        0   1104 127.0.0.1:5599              127.0.
0.1:34332             ESTABLISHED 23037/ssh
tcp        0      0 127.0.0.1:34332             12
7.0.0.1:5599              ESTABLISHED 23031/
vncviewer


Perhatikan bahwa VNC tidak melakukan koneksi secara langsung ke server, melainkan terhubung ke ssh lokal terlebih dahulu. Baru kemudian, koneksi ini diteruskan ke server.

D. Troubleshooting koneksi
Apabila muncul pesan kesalahan, seperti:
telnet: connect to address x.x.x.x : No route to host

Kemungkinan besar koneksi telah diblokir oleh sistem firewall di sisi server atau komputer yang dituju. Periksa dengan menggunakan pe­rintah:
# iptables -L -n -v

Contohnya pada koneksi telnet, jika Anda tidak menemukan tampilan baris seperti berikut ini.
ACCEPT     tcp  –  *      *       0.0.0.0/0  0.0.0.0/0
state NEW tcp dpt:23


Besar kemungkinan koneksi ke port 23 (port yang digunakan oleh telnet server) telah diblokir. Perhatikan kata ACCEPT dan  tcp dpt:23 yang menunjukkan agar koneksi ke port TCP nomer 23 diberi izin oleh sistem firewall.

Untuk membuka blokir ini, cara paling mudah adalah sementara menonaktifkan firewall:
# /etc/init.d/iptables stop

Setelah selesai melakukan akses, aktifkan kembali firewall:
# /etc/init.d/iptables start

Anda pun bisa memanipulasi tabel iptables. Misalnya, untuk membuka koneksi SSH, edit file/etc/sysconfig/iptables dan tambahkan baris berikut:
-A RH-Firewall-1-INPUT -m state –state NEW
-m tcp -p tcp –dport 22 -j ACCEPT


Kira-kira sebelum baris paling akhir. Lalu, jalankan perintah:
# /etc/init.d/iptables restart

Sesuaikan nomor port (parameter dari dport) dengan service yang ingin Anda buka. Berikut ini daftar nomor portnya:
VNC: 5900
rsh/rexec/rlogin: 512, 513, 514
ssh : 22
telnet: 23

Izin akses Apabila akses Anda terblokir, lakukan setting di iptables agar koneksi ke port yang bersangkutan diizinkan.

0 comments:

Post a Comment

◄ Newer Post Older Post ►
 

Copyright 2012 Ivan Andhika Muslim Seo Elite by BLog Ivan | Blogger Templates