Rabu, 19 Oktober 2011

SSH SFTP SCP . Beda SSH dan TELNET

Guuuuuuyyyyyzzz .. yuuuk belajar lagi .. kali ini saya akan nge post  tentang SSH SFTP SCP dan beda SSH dan TELNET ..

kita muali dari awal aja yuk langsung \(^_^)/


Apa itu SSH?

Jadi apa yang SSH dan mengapa saya harus peduli? Yah, SSH singkatan dari secure shell dan merupakan cara untuk terhubung ke mesin remote. SSH *nix sangat populer di kalangan pengguna karena keduanya dapat diandalkan, aman, dan mudah beradaptasi. SSH juga mudah untuk menginstal dan cukup lurus ke depan.
-Mengapa SSH?
Tidak seperti FTP dan SSH protokol lain yang aman, semua transaksi akan dienkripsi sehingga mereka tidak dapat disniffing. Tidak seperti SSH FTP username / password kombinasi tidak dikirim dalam bentuk teks. SSH telah dienkripsi dari awal. Hal ini penting karena banyak pengembang web akan sering menggunakan FTP untuk mentransfer file ke server mereka tidak tahu bahwa seseorang dapat dengan mudah meng-sniffing jaringan untuk password mereka. Dengan SSH dengan program seperti scp dan jauh lebih aman sshfs cara untuk mentransfer file ke remote mesin.

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.

SFTP

SFTP (Secure File Transfer Protocol) adalah proses transfer file yang menggunakan protokol SSH. Disini saya akan membahas bagaimana caranya mengkonfigurasi SFTP pada Ubuntu. Konfigurasi SFTP dengan konfigurasi pada terminal.
  • Buatlah sebuah group untuk user. Misalnya sftponly
pras@zones:~$ sudo groupadd sftponly
  • Setelah itu tambah user ke group tersebut
pras@zones:~$ sudo adduser pras sftponly

  • Install open-ssh jika belum terinstall dengan mengetikkan
pras@zones:~$ sudo apt-get install openssh-server

  • Setelah itu setting konfigurasi
pras@zones:~$ sudo nano /etc/ssh/sshd_config

  • Edit default
Subsystem sftp /usr/lib/openssh/sftp-server
menjadi
Subsystem sftp internal-sftp

  • Kemudian di bagian bawah tambahkan
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

  • Untuk dapat diakses ketikkan
pras@zones:~$ sudo chown root.root /home/pras

  • Untuk login sebagai user ketikkan
pras@zones:~$ sudo usermod -d / pras

SCP

Secure Copy atau SCP merupakan fasilitas untuk melakukan transfer data secara terenkripsi dari satu komputer ke komputer lainnya. Protokol ini berjalan pada port 22, dan membutuhkan akses shell (apabila linux) pada kedua server.
Karena paket data yang ditransfer terlebih dahulu dienkripsi, maka akan terjadi degradasi kecepatan transfer data tersebut, sekitar 60-70% lebih lambat dari pada apabila menggunakan FTP ataupun wget dari HTTP.
Berikut beberapa contoh penggunaan SCP untuk melakukan transfer data; Gantikan username dengan username anda di pc remote dan ip.address.pc.remote dengan ip address pc remote. Sesuaikan juga informasi path dan nama file dengan kondisi anda.

Kopi “file.txt” dari komputer remote ke komputer lokal kita;

1.scp username@ip.address.pc.remote:/path/di/pc/remote/file.txt /path/pc/lokal/
Kopi “file.txt” dari komputer lokal ke komputer remote;
1.scp /path/pc/lokal/file.txt username@ip.address.pc.remote:/path/di/pc/remote/
Kopi direktori “dirlokal” di pc local ke dalam direktori “dirremote”  di pc remote
1.scp -r /path/pc/lokal/dirlokal username@ip.address.pc.remote:/path/di/pc/remote/dirremote
Kopi “file.txt” di pc remote A ke pc remote B
1.scp username@ip.address.pc.A:/path/pc/A/file.txt username@ip.address.pc.B:/path/di/pc/B/
Mengkopi secara recursive isi direktori dapat dilakukan dengan *, begitu juga denga multiple file dapat dilakukan melalui filter regex lainnya.

Beda SSH dan Telnet

Disini dapat kita lihat SSH memberikan alternatif yang secure terhadap remote session tradisional dan file transfer protocol seperti telnet dan relogin. protokol SSH mendukung otentikasi terhadap remote host, yang dengan demikian meminimalkan ancaman pemalsuan identitas client lewat IP address spoofing maupun manipulasi DNS. Aplikasi seperti Telnet tidak menggunakan enkripsi sedangkan SSH dilengkapi dengan enkripsi.

Sebab itulah SSH(Secure Shell) dapat memberi keamanan yang lebih daripada Telnet atau relogin. Banyak orang menggunakan Telnet sebagai aplikasi jaringanmereka. Sebenarnya hal tersebut kurang begitu aman sebab dalam proses mengirim atau menerima data memungkinkan sesion kita terlihat dalam bentuk text. Sehingga orang yang jahil yang masuk ke network kita dapat mengetahui username, password, atau perintah-perintah yang kita baca.


Tidak ada komentar:

Posting Komentar