Jumat, 03 Desember 2010

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.

DEFINISI
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
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 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.
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)
  • 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 

Cara mendapatkan / konfigurasi

Banyak distribusi akan datang dengan klien SSH terinstal secara default. Untuk mendapatkan server pada distro berbasis Debian yang dapat Anda lakukan:
  • sudo apt-get install openssh-server
Pengguna arch dapat menginstal server / klien dengan:
  • sudo pacman -S openssh

Konfigurasi SSH Server

Banyak kali distro untuk konfigurasi default SSH akan bekerja, tapi saya sarankan Anda membuat beberapa perubahan. Biasanya file config adalah dalam: ‘/etc/ssh/sshd_config’

Membuat ssh lebih aman

Seperti semua servis mendengarkan pada port terbuka. ada risiko. Berikut adalah beberapa perubahan konfigurasi yang dapat Anda buat untuk mengurangi beberapa risiko:

Nonaktifkan SSH protokol 1

Perubahan pertama saya akan membuat adalah untuk menonaktifkan SSH usang dari 1 protokol terhubung ke server. Protokol ini hampir tidak pernah digunakan dalam klien SSH modern lagi karena manusia rentan terhadap serangan di tengah. Untuk memastikan bahwa tidak ada klien SSH yang Anda gunakan jatuh kembali ke protokol ini yang terbaik adalah kita nonaktifkan.
Pastikan Anda memiliki baris ini di konfigurasi anda:
  • Protocol 2

Tambahkan AllowUsers Tag

Secara default server SSH sering ditetapkan untuk memungkinkan semua pengguna untuk mengakses dari jarak jauh. Hal ini lebih aman untuk menentukan pengguna mana yang kita akan memberikan akses ke sistem ini. Hal ini sangat berguna untuk kondisi multiuser mesin, namun bahkan satu mesin pengguna bisa mendapatkan keuntungan dari tag ini sebagai generik account pengguna dapat secara tidak sengaja diciptakan.
Hanya dengan tambahkan baris ini pada konfigurasi anda:
  • AllowUsers (namapengguna1) (namapengguna2)
Dimana (namapengguna1) dan (namapengguna2) adalah username yang diizinkan meremote akses ssh
Nonaktifkan (disable) Root Login
SSH brute force serangan sering mengandalkan username ‘root‘. Dengan tidak menonaktifkan root login Anda memberikan penyerang setengah informasi yang mereka butuhkan untuk mendapatkan akses. Mereka sudah tahu username semua yang mereka perlu lakukan adalah menebak password yang benar. Lebih baik untuk menjaga hal yag terduga.
Bagaimana jika saya perlu melakukan sesuatu sebagai root?
Menonaktifkan login root hanya mencegah login awal menjadi root.
Anda masih dapat beralih user untuk root atau menggunakan sudo pernah dikonfirmasi dengan user biasa.
Untuk menonaktifkan login root pastikan anda telah mengatur ini:
  • PermitRootLogin no

Kunci otentikasi berbasis (Key based authentication)

Langkah pertama adalah untuk membuat kunci (key) pada mesin lokal.
Untuk membuat key RSA lakukan (Anda juga dapat melakukan DSA):
  • ssh-keygen-t rsa
Maka anda perlu menyalin kunci publik ke server jauh dengan melakukan:
  • ssh-copy-id pengguna@remotebox
Atau Anda dapat melakukannya dengan cara lama:
  • scp ~/.ssh/id_rsa.pub user@remotebox:.ssh/authorized_keys

Nonaktifkan password autentikasi (Disable password authentication)

Setelah Anda telah berhasil diuji otentikasi berbasis kunci Anda Anda dapat menonaktifkan otentikasi berbasis password.
Hal ini menjamin bahwa semua upaya akses SSH harus mengotentikasi dengan kunci bukan sandi.
Ini semua menghilangkan serangan skrip otomatis terhadap SSH.
  • PasswordAuthentication no
Mengubah port default
Baris pertama pertahanan untuk menggagalkan skrip otomatis adalah dengan hanya mengubah port default SSH server Anda. Ini keamanan melalui ketidakjelasan. Ada beberapa cara untuk mendeteksi SSH pada semua port tetapi memindahkan port ssh server Anda dapat secara drastis mengurangi spam ditolak login di log Anda.
Hanya mengubah port ke sesuatu yang lain seperti:
Port 223

Port knocking

Port knocking adalah cara yang bagus untuk membuka port secara remote dengan mengirim urutan tertentu atau “ketukan” ke server jauh.
Setelah ketukan yang benar dikirim, server akan membuka port ke alamat IP tertentu.

hosts.deny/allow

Berikut adalah beberapa aturan umum untuk menolak / mengizinkan akses SSH dengan menggunakan host file.
Biarkan semua orang terhubung dengan Anda.
  • sshd: ALL
ATAU Anda dapat membatasi untuk ip tertentu
  • sshd: 192.168.0.1
ATAU membatasi untuk rentang IP (IP range)
  • sshd: 10.0.0.0/255.255.255.0
ATAU membatasi dengan mencocokan IP (IP matching)
  • sshd: 192.168.1.
Personalisasi SSH
Saya ingin menambahkan sentuhan pribadi pada pesan SSH hari ini, (motd -  message of the day) .
Saya biasanya akan menambahkan nama server dan beberapa rincian lainnya.
Ini akan membantu membedakan yang menghubungkan server saya ketika saya menemukan diri saya sendiri melakukan koneksi ke semua jenis server sepanjang hari.
Biasanya saya menggunakan program yang disebut, ‘figlet‘ untuk menampilkan nama server saya.
Figlet adalah sebuah aplikasi yang akan mengkonversi teks ke ascii seni dalam berbagai font.
Mengakses SSH dari Dunia Luar
Sekarang bahwa Anda memiliki SSH Anda dan berjalan dan Anda dapat berhasil tersambung ke komputer lain di rumah Anda sudah waktunya untuk mendapatkannya terhubung ke internet untuk remote akses. Jika Anda tidak di belakang NAT Anda mungkin sudah ditetapkan dan bagian ini tidak berlaku untuk Anda, namun sekarang kebanyakan orang di belakang NAT semacam firewall yang membatasi panggilan masuk lalu lintas ke port tertentu kecuali Anda melakukan port forwarding.
Karena terdapat banyak jenis router saya tidak dapat memberikan rincian tentang bagaimana anda pergi tentang port forwarding, namun, ada situs Web yang memiliki hampir setiap router dibayangkan dengan petunjuk tentang cara men-setup port forwarding, portforward.com.
Banyak dari Anda juga akan memiliki alamat IP yang berubah (dinamis).
Hal ini membuat koneksi ke server jauh yang sangat sulit seperti yang Anda perlu tahu apa alamat IP.
Untungnya, ada layanan gratis seperti DynDNS yang akan memberi Anda statis nama domain yang akan diperbarui setiap kali IP berubah.
Bagaimana jika saya terjebak di belakang sebuah perusahaan / universitas firewall dan tidak bisa port forwarding?
Jangan takut, Anda dapat melewati dengan reverse SSH tunneling, tetapi untuk melakukan ini, Anda akan memerlukan komputer yang tengah menjalankan SSH kepada publik.
Ini juga bagaimana layanan seperti, “Go to my pc” bekerja di belakang firewall.

Tidak ada komentar:

Posting Komentar