Secure Shell, Secure Copy & Secure FTP

Secure Shell (ssh) adalah suatu protokol yang memfasilitasi sistem komunikasi yang aman diantara dua sistem yang menggunakan arsitektur client/server, serta memungkinkan seorang user untuk login ke server secara remote. Berbeda dengan telnet dan ftp yang menggunakan plain text, SSH meng-enkripsi data selama proses komunikasi sehingga menyulitkan penyusup/intruder yang mencoba mendapatkan password yang tidak dienkripsi. Fungsi utama aplikasi ini adalah untuk mengakses mesin secara remote. Bentuk akses remote yang bisa diperoleh adalah akses pada mode teks maupun mode grafis/X apabila konfigurasinya mengijinkan.

SSH dirancang untuk menggantikan service-service di sistem unix/linux yang menggunakan sistem plain-text seperti telnet, ftp, rlogin, rsh, rcp, dll). Untuk menggantikan fungsi ftp dapat digunakan sftp (secure ftp), sedangkan untuk menggantikan rcp (remote copy) dapat digunakan scp (secure copy).

Dengan SSH, semua percakapan antara server dan klien di-enkripsi. Artinya, apabila percakapan tersebut disadap, penyadap tidak mungkin memahami isinya. Bayangkan seandainya Anda sedang melakukan maintenance server dari jauh, tentunya dengan account yang punya hak khusus, tanpa setahu Anda, account dan password tersebut disadap orang lain, kemudian server Anda dirusak setelahnya.

Implementasi SSH yang banyak dipakai saat ini adalah OpenSSH, aplikasi ini telah dimasukkan kedalam berbagai macam distribusi linux. Redhat Linux versi 9 sudah menyediakan program tersebut dalam format RPM.

 

Fitur-fitur SSH

Protokol SSH menyediakan layanan sebagai berikut :

  • Pada saat awal terjadinya koneksi, client melakukan pengecekan apakah host yang dihubungi sudah terdaftar pada client atau tidak.
  • Client mengirimkan proses autentifikasi ke server menggunakan teknik enkrisp 128 bit.
  • Semua data yang dikirimkan dan diterima menggunakan teknik enkripsi 128 bit sehingga sangat sulit dibaca tanpa mengetahui kode enkripsinya.
  • Client dapat memforward aplikasi Xwindows / X11 ke server, layanan ini dibuat .

 

  1. Instalasi SSH Server dengan perintah

     

    root@ubuntu:/# apt-get install openssh-server openssh-client

    

  1. Untuk mengaktifkan service ssh gunakan perintah:

 

root@ubuntu:/#/etc/init.d/ssh restart

 

  1. Ujicoba ssh dengan menggunakan putty. Pastikan putty telah terinstal dengan baik. Masukkan ip server pada bagian hostname.

 

 

Masukkan user dan password server.

 

Jika benar maka akan dihasilkan tampilan seperti di bawah ini.

 

 

  1. Untuk mengkonfigurasi ssh gunakan perintah

root@ubuntu:/home/nabiha# pico /etc/ssh/sshd_config

 

# Package generated configuration file

# See the sshd_config(5) manpage for details

 

# What ports, IPs and protocols we listen for

Port 22

# Use these options to restrict which interfaces/protocols sshd will bind to

#ListenAddress ::

#ListenAddress 0.0.0.0

Protocol 2

# HostKeys for protocol version 2

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

HostKey /etc/ssh/ssh_host_ecdsa_key

#Privilege Separation is turned on for security

UsePrivilegeSeparation yes

 

# Lifetime and size of ephemeral version 1 server key

KeyRegenerationInterval 3600

ServerKeyBits 768

 

# Logging

SyslogFacility AUTH

LogLevel INFO

 

# Authentication:

LoginGraceTime 120

PermitRootLogin yes

StrictModes yes

 

RSAAuthentication yes

PubkeyAuthentication yes

#AuthorizedKeysFile %h/.ssh/authorized_keys

 

# Don’t read the user’s ~/.rhosts and ~/.shosts files

IgnoreRhosts yes

# For this to work you will also need host keys in /etc/ssh_known_hosts

RhostsRSAAuthentication no

# similar for protocol version 2

HostbasedAuthentication no

# Uncomment if you don’t trust ~/.ssh/known_hosts for RhostsRSAAuthentication

#IgnoreUserKnownHosts yes

 

# To enable empty passwords, change to yes (NOT RECOMMENDED)

PermitEmptyPasswords no

 

# Change to yes to enable challenge-response passwords (beware issues with

# some PAM modules and threads)

ChallengeResponseAuthentication no

 

# Change to no to disable tunnelled clear text passwords

#PasswordAuthentication yes

 

# Kerberos options

#KerberosAuthentication no

#KerberosGetAFSToken no

#KerberosOrLocalPasswd yes

#KerberosTicketCleanup yes

 

# GSSAPI options

#GSSAPIAuthentication no

#GSSAPICleanupCredentials yes

 

X11Forwarding yes

X11DisplayOffset 10

PrintMotd no

PrintLastLog yes

TCPKeepAlive yes

#UseLogin no

 

#MaxStartups 10:30:60

#Banner /etc/issue.net

 

# Allow client to pass locale environment variables

AcceptEnv LANG LC_*

 

Subsystem sftp /usr/lib/openssh/sftp-server

 

# Set this to ‘yes’ to enable PAM authentication, account processing,

# and session processing. If this is enabled, PAM authentication will

# be allowed through the ChallengeResponseAuthentication and

# PasswordAuthentication. Depending on your PAM configuration,

# PAM authentication via ChallengeResponseAuthentication may bypass

# the setting of “PermitRootLogin without-password”.

# If you just want the PAM account and session checks to run without

# PAM authentication, then enable this but set PasswordAuthentication

# and ChallengeResponseAuthentication to ‘no’.

UsePAM yes

 

 

  1. Log aktif ssh dapat dilihat dengan cara

root@ubuntu:/# tail -f /var/log/auth.log

Nov 7 01:39:01 ubuntu CRON[2674]: pam_unix(cron:session): session closed for user root

Nov 7 01:52:33 ubuntu sshd[2721]: Invalid user admin from 192.168.237.10

Nov 7 01:52:34 ubuntu sshd[2721]: pam_unix(sshd:auth): check pass; user unknown

Nov 7 01:52:34 ubuntu sshd[2721]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.237.10

Nov 7 01:52:36 ubuntu sshd[2721]: Failed password for invalid user admin from 192.168.237.10 port 16589 ssh2

Nov 7 01:52:40 ubuntu sshd[2721]: pam_unix(sshd:auth): check pass; user unknown

.