Home > Informatika, Linux, Networking > Instal dan Konfigurasi sshd di Ubuntu Gutsy Gibbon

Instal dan Konfigurasi sshd di Ubuntu Gutsy Gibbon

January 2nd, 2009 Leave a comment Go to comments

opensshOpenSSH adalah protokol SSH yang bersifat gratis, handal sebagai alat koneksitas jaringan. Banyak pengguna telnet, rlogin, ftp, dan program lainnya mungkin tidak menyadari bahwa password mereka ditransmisikan lewat Internet tanpa enkripsi, tetapi protokol SSH menggunakan enkripsi. OpenSSH mengenkripsi seluruh lalulintas (termasuk username dan password) yang secara efektif mengeliminasi pencurian data, pembajakan koneksi (connection hijacking), dan serangan jaringan lainnya. Sebagai tambahan, OpenSSH menyediakan banyak sekali kemampuan tunneling aman, seperti sebuah varietas metode otentikasi. Untuk informasi detail mengenai OpenSSH bisa dibaca di http://www.openssh.com/

Intinya, dengan ssh kita dapat melakukan remote komputer secara aman karena data-data selama kita berkomunikasi dengan komputer target akan dienkripsi. Jadi jangan khawatir terhadap aksi-aksi hijacking dan aktifitas penetrasi jaringan lainnya. 🙂 Berbeda dengan telnet dan ftp. Pada telnet dan FTP, data tidak dienkripsi sehingga cenderung unsecure.

Instalasi ssh melalui apt-get
1. Install paket ssh, caranya:

sudo apt-get install ssh

2. Nah… kalau sudah terinstall, tinggal edit file /etc/ssh/sshd_config


Langkah-langkah installasi OpenSSH:
1. Install openssh-client

root@komputer01-desktop:/# dpkg -i openssh-client_4.6p1-5ubuntu0.6_i386.deb 
(Reading database ... 89466 files and directories currently installed.)
Preparing to replace openssh-client 1:4.6p1-5ubuntu0.6 (using openssh-client_4.6p1-5ubuntu0.6_i386.deb) ...
Unpacking replacement openssh-client ...
dpkg: dependency problems prevent configuration of openssh-client:
 openssh-client depends on libssl0.9.8 (>= 0.9.8e-5ubuntu3.2); however:
  Version of libssl0.9.8 on system is 0.9.8e-5ubuntu3.
dpkg: error processing openssh-client (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 openssh-client

Ternyata msih kurang file libssl0.9.8. Download dan install. Kalau sudah install libssl0.9.8 dan file dependensi yang dibutuhkan, sekarang install openssh-client lagi.

root@komputer01-desktop:/# dpkg -i openssh-client_4.6p1-5ubuntu0.6_i386.deb 
(Reading database ... 89472 files and directories currently installed.)
Preparing to replace openssh-client 1:4.6p1-5ubuntu0.6 (using openssh-client_4.6p1-5ubuntu0.6_i386.deb) ...
Unpacking replacement openssh-client ...
Setting up openssh-client (1:4.6p1-5ubuntu0.6) ...

2. Install openssh-server

root@komputer01-desktop:/# dpkg -i openssh-server_4.6p1-5ubuntu0.6_i386.deb 
(Reading database ... 89466 files and directories currently installed.)
Preparing to replace openssh-server 1:4.6p1-5ubuntu0.6 (using openssh-server_4.6p1-5ubuntu0.6_i386.deb) ...
Unpacking replacement openssh-server ...
dpkg: dependency problems prevent configuration of openssh-server:
 openssh-server depends on openssh-blacklist; however:
  Package openssh-blacklist is not installed.
dpkg: error processing openssh-server (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 openssh-server

Ternyata masih membutuhkan paket openssh-blacklist. Cari, download, dan install. Caranya sama, pake dpkg -i nama_paket.deb

root@komputer01-desktop:/# dpkg -i openssh-blacklist_0.1-1ubuntu0.7.10.1_all.deb 
(Reading database ... 89472 files and directories currently installed.)
Preparing to replace openssh-blacklist 0.1-1ubuntu0.7.10.1 (using openssh-blacklist_0.1-1ubuntu0.7.10.1_all.deb) ...
Unpacking replacement openssh-blacklist ...
Setting up openssh-blacklist (0.1-1ubuntu0.7.10.1) ...

root@komputer01-desktop:/# dpkg -i openssh-server_4.6p1-5ubuntu0.6_i386.deb 
(Reading database ... 89472 files and directories currently installed.)
Preparing to replace openssh-server 1:4.6p1-5ubuntu0.6 (using openssh-server_4.6p1-5ubuntu0.6_i386.deb) ...
Unpacking replacement openssh-server ...
Setting up openssh-server (1:4.6p1-5ubuntu0.6) ...
 * Restarting OpenBSD Secure Shell server sshd                                                                                                        [ OK ] 

3. Sshd telah berjalan. Untuk mengetes apakah sshd telah berjalan, lakukan remote ssh ke komputer lokal.

root@komputer01-desktop:/# ssh komputer01@192.168.1.3
The authenticity of host '192.168.1.3 (192.168.1.3)' can't be established.
RSA key fingerprint is bf:0c:0d:93:d0:25:13:0d:98:a7:55:66:ad:bb:93:42.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.3' (RSA) to the list of known hosts.
komputer01@192.168.1.3's password: 
Linux komputer01-desktop 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
Last login: Mon Dec 29 18:19:20 2008 from 192.168.1.20
komputer01@komputer01-desktop:~$ 

Remote ssh dari komputer lokal berhasil.

4. Untuk konfigurasi sshd ada di /etc/ssh/sshd_config. Edit file tersebut. Berikut isi file sshd_config yang ada di komputer yang saya install ssh.

# Package generated configuration file
# See the sshd(8) 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
#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

UsePAM yes

Untuk konfigurasi file /etc/ssh/sshd_config bisa dibaca referensi berikut:

Host *

pilihan “Hosts” membatasi semua pilihan dan deklarasi di file konfigurasi menjadi hanya untuk host-host yang cocok dengan setting host yang dimasukkan. setting “*” berarti semua host. dengan opsi ini kita bisa menentukan setting layanan SSH untuk host-host yang berbeda dalam satu file konfigurasi. contoh :

Hosts 192.168.1.15
ForwardAgent no

EscapeChar ~
Hosts 192.168.2.*
ForwardAgent yes

EscapeChar %
Hosts 

dan seterusnya

ForwardAgent no

Menentukan agen autentikasi koneksi mana yang akan di forward ke mesin jark jauh (remote).

ForwardX11 no

Pilihan ini untuk para pemakai xwindow yang ingin secara otomatis mengakses komputer lain dari sistem xwin-nya.

RhostsAuthentication no

Menentukan apakah kita memakai layanan autentikasi berbasis rhosts. sebaiknya jangan diset “yes” karena layanan rhosts tidak aman.

RhostsRSAAuthentication no

Menentukan apakah kita memakai layanan autentikasi berbasis rhosts berbarengan dengan algoritma enkripsi RSA. sebaiknya jangan diset “yes” karena layanan rhosts tidak aman.

RSAAuthentication yes

Menentukan apakah kita memakai autentikasi berbasis algoritma RSA. opsi ini harus selalu diset “yes” agar sesi SSH yang akan diaktifkan lebih aman. algoritma RSA memakai kunci publik dan privat untuk proses autentikasi yang diciptakan dengan program ssh-keygen.

PasswordAuthentication yes

Menentukan dipakai tidaknya sistem autentikasi yang memakai password. agar jauh lebih aman, servis ini harus diset “yes”.

FallBackToRsh no

Jika koneksi dengan memakai daemon ssh gagal, kita secara otomatis akan memakai layanan rsh jika opsi ini diset “yes”. untuk pertimbangan keamanan lebih baik opsi ini diset “no”.

UseRsh no

sebaiknya jangan pernah memakai layanan rsh (remote shell), sangat tidak aman, oleh karenanya opsi ini juga harus diset “no”.

BatchMode no

Menentukan apakah layanan pencarian username dan password saat koneksi diaktifkan atau tidak. opsi ini berguna saat kita memakai skrip utnuk koneksi dan tidak membutuhkan password.

CheckHostIP yes

Untuk mengaktifkan pemeriksaan alamat ip dari host-host yang memakai layanan ssh untuk koneksi ke server. set opsi ini ke “yes” untuk memperkecil kemungkinan terjadinya dns spoofing.

StrictHostKeyChecking no

Menetukan apakah ssh akan secara otomatis menambahkan kunci-kunci baru untuk tiap host dan menyimpannya di file $home/.ssh/, atau tidak. setting “yes” akan memberikan proteksi dari serangan trojan horse. biasanya pada awal setting konfigurasi ssh, opsi ini diset “no”, kemudian setelah host-host yang dikenali oleh ssh server melakukan koneksi dan dicatat ke file-file spesifik untuk tiap host… opsi ini baru diaktifkan atau di set “yes”.

IdentityFile ~/.ssh/identity

Menentukan nama file identitas autentikasi RSA yang akan dipakai. file identitas ini bisa saja lebih dari satu file.

Port 22

Menentukan port koneksi layanan ssh, biasanya port 22.

Ciphers blowfish

Menentukan pilihan cipher yang akan dipakai untuk enkripsi, cipher blowfish akan memakai blok 64 bit dan kunci yang panjangnya sampai 448 bit.

EscapeChar ~

Menentukan karakter untuk keluar dari sesi ssh.

ListenAddress 172.13.1.2

Menentukan alamat IP dimana socket server daemon ssh2 berjalan. nilai default adalah 0.0.0.0; untuk meningkatkan keamanan kita harus menentukan alamat-alamat yang diperlukan saja.

HostKey /etc/ssh/ssh_host_key

Opsi ini menentukan lokasi file kunci privat suatu host.

ServerKeyBits 1024

Menentukan jumlah bit yang dipakai sebagai kunci server. bit-bit ini dipakai ketika daemon ssh berjalan untuk membangkitkan kunci RSA.

LoginGraceTime 600

Menentukan seberapa lama (dalam hitungan detik) sebuah koneksi terkatung-katung sebelum putus jika seorang user tidak berhasil login.

KeyRegenerationInterval 3600

Menentukan seberapa lama (dalam hitungan detik juga) kunci RSA sebuah server berlaku sebelum kunci baru dibuat. hal ini untuk menghindari pemecahan sebuah kunci melalui proses dekripsi.

PermitRootLogin no

opsi ini mengatur ijin login ssh menggunakan akses root suatu host.

IgnoreRhosts yes

Opsi ini menentukan apakah kita memakai file-file rhost atau shost untuk autentikasi. untuk alasan keamanan sebaiknya diset “yes” yang artinya jangan pernah memakai file-file tersebut untuk autentikasi.

IgnoreUserKnownHosts yes

Menentukan dipakai atau tidak-nya file $home/.ssh/ saat RhostsRSAAuthentication.

StrictMode yes

ssh akan memeriksa permission tiap user pada home direktori mereka dan file-file rhosts sebelum login diterima. harus diset “yes” karena terkadang user meninggalkan file mereka dengan permission yang bisa diakses oleh semua orang.

X11Forwarding no

pilihan ini untuk para pemakai xwindow yang ingin secara otomatis mengakses komputer lain dari sistem xwin-nya.

PrintMotd yes

Ketika user login dengan memakai ssh maka daemon ssh2 akan menampilkan isi file /etc/motd. (motd = message of the day)

SyslogFacility AUTH

Menentukan kode fasilitas yang dipakai ketika mencatat (logging) pesan-pesan dari daemon ssh. fasilitas ini menentukan bagian sistem yang akan menghasilkan pesan, pada kasus ini AUTH.

LogLevel INFO

menentukan level yang dipakai ketika mencatat pesan-pesan ssh. (logging)

RhostsAuthentication no

menentukan apakah kita memakai layanan autentikasi berbasis rhosts. sebaiknya jangan diset “yes” karena layanan rhosts tidak aman.

PermitEmptyPassword no

Jangan diset “yes” kalo tidak ingin user memakai koneksi ssh ke server tanpa memberikan password apapun.

AllowUsers admin

menentukan user mana saja yang bisa mengakses ssh, jika lebih dari satu dipisahkan dengan
spasi.

5. Kalau sudah diedit, restart ssh. Perintahnya: /etc/init.d/ssh restart

root@komputer01-desktop:/# /etc/init.d/ssh restart
 * Restarting OpenBSD Secure Shell server sshd                           [ OK ] 

6. Sekarang coba remote dari komputer lokal. Sebelumnya sudah saya ganti untuk portnya menggunakan port 2222.

Port 2222


Gambar 1. Remote dengan putty
7. Kalau dari komputer lokal bisa, sekarang kita remote dari komputer windows. Untuk remote ssh dari windows, bisa menggunakan software remote yaitu putty. Masukkan IP komputer target, dan masukkan portnya sesuai dengan settingan sshd_config, OK.


Gambar 2. Remote dengan putty
Maka akan keluar jendela putty security alert.

Gambar 3. Jendela Putty Security Alert
Pilih Yes. Masukkan username dan paswordnya.

Gambar 4. Input username dan password
8. Untuk mengetes settingan

PermitRootLogin no

Kita remote dengan username root. Apa yang terjadi?

Gambar 5. Remote ssh dengan akses root
Begitu juga dengan remote ssh melalui komputer lokal dengan username root

root@komputer01-desktop:/# ssh root@192.168.1.3 -p 2222
root@192.168.1.3's password: 
Permission denied, please try again.

Alhamdulillah, akhirnya selesai sudah dokumentasi saya tentang instal dan konfigurasi ssh di Ubuntu Gutsy Gibbon. Terima kasih kepada mas Alifera yang ngajarin photoshop, mas Rio yang telah ngijinin nge-lab dan teman-teman yang telah membantu saya. Semoga dokumentasi saya bermanfaat, kalau ada yang salah, mohon koreksinya. 🙂

Referensi:
1. Google
2. http://www.openssh.com/
3. http://anakdalam.blogsome.com/

  1. No comments yet.
  1. No trackbacks yet.

*

Bad Behavior has blocked 80 access attempts in the last 7 days.