Tuesday, 24 March 2015

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

INSTALASI SSH
Instalasi dari aplikasi client dan server OpenSSH sederhana. Untuk menginstal aplikasi client OpenSSH pada sistem Ubuntu Anda, gunakan perintah ini di prompt terminal :
  • sudo apt-get install openssh-client
Untuk menginstal aplikasi server OpenSSH, dan file dukungan terkait, gunakan perintah ini di prompt terminal :

  • sudo apt-get install openssh-server
Paket openssh-server juga dapat dipilih untuk menginstal selama proses instalasi Server Edition. Kemudian kita coba ssh dengan teman kita.

Cara 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 autentication)

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
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.
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.


SSHOpenSSHPortforwarding

Port forwarding atau port mapping pengalihan (redirection) koneksi dari suatu IP:Port ke IP:Port yang lain.  Ini artinya adalah semua koneksi yang ditujukan ke IP:Port asal akan dialihkan ke IP:Port tujuan seolah-olah client sedang menghubungi IP:Port tujuan secara langsung.

Sumber :