Agus Setiawan's Blog

Life with UNIX/Linux

Archive for the ‘SSH’ Category

Amankan Service SSH

without comments

Skenario :

saya ada pertanyaan tentang SSH dg port yang ga default.. default port SSH 22, waktu saya install server,,saya ganti ke 8246 dg  tujuan biar saat di scan port pake nmap/port scanner dari luar port- nya ga keliatan.. dan saya gunaain firewall dg skema :

1. allow semua traffic yg out dari server
2. allow in port http 80
3. allow in port ssh 8246
4. allow in port ftp 21
5. allow in port https 443
6. block all

ketika saya nmap server tersebut dari komputer lain,,,port yang open  cuman ada http 80,ftp 21,https 443..  kemudian saya gunaain nettool buat scan server tersebut..dan semua  port yang open kelihatan termasuk ssh 8246

kira-kira menurut rekan2 apakah saya salah configure firewall atau memang seharusnya port ssh yang ga default tetep keliatan sebagai open  port di nettool?  berarti,,klo memang masih keliatan sebagai open port seperti  diatas..fungsi buat ngrubah port default buat apa?

setelah beberapa hari mempelajari SSH,,ada beberapa poin penting yang saya dapet dari googling…dan pertanyaan2 kemaren dari saya sudah mulai terjawab..

untuk lebih mempermudah bacanya saya bahas dalam bentuk tanya jawab saja :

1. mengapa kita perlu mengubah port default SSH?
jawab : tujuan kita mengubah default port SSH untuk meminimalisasi serangan otomatis yang dilakukan oleh botnet, dimana botnet ini akan secara otomatis mencari port default SSH yaitu 22 dan melakukan attempt ke SSH Server yang default port-nya 22, botnet akan mencoba login dengan username dan password secara acak, hal ini sangat memungkinkan sebuah botnet masuk ke Server kita jika kita tidak mengubah default port SSH

2. apakah jika sudah kita ubah tidak akan terlihat sebagai port yang ‘open’?

jawab : tetap akan terlihat sebagai ‘open’ port, ini tergantung dari kemampuan tool yang digunakan untuk melakukan scan port  ketika kita menggunakan port scanner, scanner port akan mencari port yang ‘open’. dengan mengubah port default SSH 22 menjadi port yang lain akan membingungkan attacker untuk melakukan serangan, sehingga bisa saja hal ini mengakibatkan kesalahan penggunaan tool hacker untuk melakukan serangan, misal kita ubah port SSH jadi 21,,hal ini bagi attacker akan dikira sebagai service ftp,,

3. apakah ada ketentuan dalam pengubahan port SSH?
jawab : ga ada ketentuan khusus, yang ada jika memang port itu ga dipakai,,,bisa saja kita pakai untuk SSH. berarti sebelumnya kita musti ngecek port yang ga kepakai.. tapi direkomendasikan untuk menggunakan port-port yang unused yaitu diatas 1024 dan dibawah 65537

4. bagaimana cara mengetahui sebuah port itu sudah diapakai atau belum?
jawab : kita bisa menggunakan command lsof -i:port
sampel:
# lsof -i:80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE NODE NAME
httpd    2816   root    3u  IPv6  14383       TCP *:http (LISTEN)
httpd    2820 apache    3u  IPv6  14383       TCP *:http (LISTEN)
httpd    2821 apache    3u  IPv6  14383       TCP *:http (LISTEN)
httpd    2822 apache    3u  IPv6  14383       TCP *:http (LISTEN)
httpd    2823 apache    3u  IPv6  14383       TCP *:http (LISTEN)
httpd    2824 apache    3u  IPv6  14383       TCP *:http (LISTEN)
httpd    2933 apache    3u  IPv6  14383       TCP *:http (LISTEN)
httpd   21922 apache    3u  IPv6  14383       TCP *:http (LISTEN)

# lsof -i:21
COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
inetd   2659 root    6u  IPv4  13059       TCP *:ftp (LISTEN)

# lsof -i:22
COMMAND  PID    USER   FD   TYPE DEVICE SIZE NODE NAME
sshd    2666    root    3u  IPv6  13095       TCP *:ssh (LISTEN)
sshd    4362    root    3r  IPv6 387789       TCP local.org:ssh->192.168.111.21:

proshare2 (ESTABLISHED)
sshd    4364 admin    3u  IPv6 387789       TCP local.org:ssh->

# lsof -i:23

5. bagaimana cara mengamankan SSH Server kita?

jawab : disini ada beberapa cara yang bisa dilakukan :
- ubah port default SSH sesuai yang direkomendasikan diatas
Port 4215
- disable direct root login, maksudnya user root tidak diijinkan login secara langsung ke server via SSH, jadi kita musti login sebagai user biasa dan kemudian su ke root
PermitRootLogin no
- buatlah user spesifik yang bisa login ke SSH
AllowUsers Dwi
- deny terhadap user yang login tanpa password
PermitEmptyPasswords no
- perkecil waktu logingracetime-nya, ini disetting untuk disconnect server terhadap user setelah beberapa waktu tidak bisa login
LoginGraceTime 30s
-
perkecil MaxAuthTries-nya, ini digunakan untuk disconnect server terhadap user yang beberapa kali gagal login
MaxAuthTries 2
- gunakan tool pendukung pengaman service SSH, seperti sshutout, port-knocking, dsb.

6. Referensi
http://seeksadmin.com/blog/server-administation/linux-servers/basic-ssh-security/
http://forums.freebsd.org/archive/index.php/t-989.html
http://www.foogazi.com/2006/11/29/modify-ssh-to-maximize-security/
http://www.itworld.com/nls_unixssh0500506
http://timarcher.com/?q=node/46

Written by Agus Setiawan

September 13th, 2009 at 10:10 am

Posted in SSH, Ubuntu

Login SSH Tanpa Password

without comments

Cara ini untuk mempermudah dalam hal administrasi server dalam jumlah yang banyak. Misal ada server 1 sampai 5. Nah, biar login ke server2 itu semua dari salah satu server jadi mudah, kita cukup mengaktifkan service SSH di semua servernya. Dengan begitu kita bisa login lebih secure jika dibandingkan dengan telnet. Tapi, default SSH ini mengharuskan kita untuk login dengan username dan password. Pada tulisan kali ini, saya mencoba menuliskan bagaimana agar pada saat kita login SSH dari server ke salah satu server lainnya tanpa menginputkan password.

Lakukan ini di server lokal :

- generate key

#ssh-keygen -t rsa

- copy key tadi ke server remote

#scp ~/.ssh/id_rsa.pub server:~/.ssh/client.pub

- masukin key ke file authorized keys

#ssh server “cat ~/.ssh/client.pub >> ~/.ssh/authorized_keys”

- aktifkan autentikasi dengan key di /etc/ssh/sshd_config dan login ke ssh remote

#ssh server-remote

Written by Agus Setiawan

September 12th, 2009 at 4:04 pm

Posted in SSH