Senin, 08 November 2010

Belajar Linux - Mengamankan Service SSH

SSH yaitu sebuah daemon untuk meremote sebuah komputer dari jauh dalam hal ini biasanya server yang akan diremote. Biasanya administrator sebuah server tidak bisa selalu ada ditempat maka ia menggunakan ssh untuk bisa meremote server tersebut dari jauh , mungkin dari rumahnya. Tetapi bila service ssh ini tidak dikonfigurasi dengan baik maka bisa menjadi senjata makan tuan dan digunakan oleh orang lain untuk meng hack server tersebut.

Bila kita membicarakan soal keamanan server maka mungkin ssh merupakan service yang paling banyak disukai para hacker karena melalui ssh mereka dapat masuk ke shell konsole dan dapat melakukan perintah untuk mengambil alih server tersebut. Maka apabila hacker melihat server yang akan ia hack membuka port ssh nya maka dia akan senang sekali dan itulah yang pertama akan ia serang. Jadi ssh merupakan pintu pertama pengamanan server anda dari serangan melalui network/internet.

Sekarang pertanyaannya bagaimana kita bisa mengamankan service tersebut. Pertama-tama kita harus tahu terlebih dahulu apakah SSH itu. OpenSSH merupakan sebuah aplikasi remote login yang dikembangkan untuk menggantikan rlogin dan rsh ,dengan ssh keamanan remote lebih tinggi karena menggunakan komunikasi yang terenkripsi antara dua host. Untuk lebih detailnya bisa anda cari sendiri di om google karena bila dijelaskan disini tentu akan panjang sekali. Untuk bisa melakukan ssh maka kita perlu menginstall aplikasi ssh-server dan ssh-client, ssh-server untuk host yang akan diremote dan ssh-client untuk meremote host. Tetapi biasanya semua distribusi linux biasanya sudah membundel ssh pada default instalasinya. Bila ssh belum terinstalai pada komputer anda maka gunakan manajemen paket pada distribusi linux yang anda gunakan untuk menginstall aplikasi ssh dari CD atau DVD instalasinya.

Nah setelah aplikasi ssh telah terinstall pada komputer anda sekarang kita mengkonfigurasinya agar aman dari tangan-tangan jahil yang mencoba masuk ke server kita menggunakan ssh. Oke sekarang kita buka file konfigurasi ssh pada "⁄etc⁄ssh⁄sshd.conf" , buka file tersebut dengan editor kesayangan anda. Karena saya menggunakan Fedora Core maka file tersebut berada di "⁄etc⁄ssh⁄sshd.conf" , mungkin berbeda pada distro lainnya tetapi biasanya ada pada direktori "⁄etc⁄ssh⁄" . Oke sudah dibuka file tersebut ,sekarang coba dibaca-baca dulu sebentar untuk melihat konfigurasinya mungkin saja anda bisa mengerti dan melakukan konfigurasi sesuai dengan keinginan anda. Jangan lupa backup dahulu file tersebut agar bila nantinya anda salah mengkonfigurasi masih ada file aslinya.

[root@www ~]# cp ⁄etc⁄ssh⁄sshd_config ⁄etc⁄ssh⁄sshd_config.old

Lalu buka file ⁄etc⁄ssh⁄sshd.conf
[root@www ~]# vi ⁄etc⁄ssh⁄sshd_config

Sudah belum baca-bacanya karena sekarang kita akan mengkonfigurasi file ini. Sekarang yang pelru diamankan adalah mencegah untuk login remote melalaui ssh dengan menggunakan user root kenapa kita melakukan ini , sekarang coba kita pikirkan apabila kita mencoba masuk ke server orang lain melalui ssh tentu kita perlu sebuah user yang ada pada server tersebutagar bisa login iya apa iya, kita pasti tidak tahu nama-nama user yang ada pada server tersebut bukan tetapi pasti ada satu user yang pasti ada pada server tersebut yang juga ada pada setiap server yang menggunakan linux sebagai OS nya, ya anda benar root pasti ada maka seorang hacker pasti akan mencoba user root pertama kali karena hanya user tersebut yang dia tahu yang pasti ada pada server. Apabila kita tidak mencegah dan membiarkan root bisa login melalui ssh maka mungkin saja hacker akan menggunakan user tersebut dan menggunakan brute force untuk mencari tahu passwordnya. Oleh karena itu jangan biarkan root bisa login melalui ssh. Udah ah penjelasannya sekarang konfigurasinya, pada file sshd.conf cari parameter PermitRootLogin parameter ini untuk menkonfigurasi apakah root bisa login atau tidak. Pada Fedora Core secara default parameter tersebut di comment dan default valuenya adalah yes jadi root bisa login menggunakan ssh. Mungkin pada distro lain default valuenya berbeda seperti pada Ubuntu default valuenya no. Jadi kita perlu mengubah parameter tersebut untuk mencegah root login , cari parameter ini pada file sshd.conf
#PermitRootLogin yes

Uncomment baris tersebut dan ubah valuenya menjadi no seperti ini
PermitRootLogin no

Sekarang coba restart service ssh anda dan coba ssh komputer anda dengan user root bila tidak bisa maka anda berhasil .Konfigurasi yang kedua yaitu membatasi inputan password salah , bila kita remote komputer melalui ssh bila password kita salah maka kita pasti disuruh mencoba lagi kita bisa membatasi inputan tersebut agar hacker tidak bisa menggunakan brute force untuk mengcrack password kita. Untuk bisa menset inputan password tersebut cari parameter berikut pada file sshd.conf
#MaxAuthTries 6

Secara default kita bisa input password 6 kali bila salah kita bisa merubah valuenya dengan uncomment parameter tersebut dan beri value dengan angka yang anda inginkan seperti ini
MaxAuthTries 3

Selanjutnya untuk lebih aman lagi kita harus membatasi user yang bisa melakukan ssh ke server kita karena user dalam komputer kita banyak dan hanya user tertentu saja yang bisa login ssh dan belum lagi user system⁄aplikasi jadi kita harus membatasi user yang bisa ssh. Untuk bisa melakukan itu tambah kan baris berikut pada bagian bawah file sshd.conf
AllowUsers namauser1 namauser2

Ganti namauser1 dan namauser2 dengan user yang anda inginkan, ingat user tersebut harus ada pada komputer anda. Anda juga bisa memblock user yang anda tidak inginkan untuk login ssh dengan menambahkan parameter berikut pada baris terakhir file sshd.conf
DenyUsers namauser1 namauser2

Jangan lupa ganti namauser1 dan namauser2 dengan user yang anda inginkan. Perlu saya tambahkan apabila anda mengunakan AllowUsers maka user lain yang tidak disebutkan pada parameter tersebut akan di deny dan apabila anda menggunakan DenyUsers maka user lain yang tidak disebutkan pada parameter tersebut akan bisa login jadi anda hanya perlu menggunakan satu parameter saja.
Kita juga bisa menset waktu dari user untuk user bisa meremote komputer kita jadi user akan automatic logout apabila telah logni melebihi waktu yang telah kita set. Untuk bisa memnegset waktunya cari parameter berikut ini
#LoginGraceTime 2m

Uncomment baris tersebut lalu ubah valuenya sesuai dengan yang anda inginkan seperti berikut ini saya menset waktu 1 jam untuk user dapat login
LoginGraceTime 60m

Lanjut lagi sekarang kita akan memanipulasi port uang digunakan ssh agar hacker tidak tahu yang masih cupu tidak tahu bahwa service ssh kita terbuka. Secara default port ssh adalah 22 tetapi kita bisa merubahnya menjadi nomor sesuai dengan yang kita inginkan. Untuk bisa mengubahnya cari parameter berikut ini
#Port 22

Uncomment baris tersebut dan ubah valuenya menjadi nomor port yang anda inginkan seperti ini saya akan memberi value 9000.
Port 9000

Maka sekarang ssh anda berjalan pada port 9000 kalo enggak percaya coba anda scan komputer anda dengan nmap
[root@www ~]# nmap localhost

Coba cari port 22 enggak ada kan adanya port 9000
Mungkin hanya ini saja komfigurasi yang bisa saya berikan anda bisa mencari sendiri konfigurasi lainnya dengan membaca manual pagenya ssh dengan perintah
[root@www ~]# man ssh

Lain waktu kita akan membahas bagaimana membuat user yang login menggunakan shell yang kita buat sendiri jadi user tidak bisa menggunakan perintah-perintah yang bisa dilakuakan pada shel biasa kita menset perintah-perintah pada shel yang kita buat tersebut.

Tidak ada komentar:

Posting Komentar