Kamis, 13 Maret 2008

Tips Untuk Mengamankan Server Anda

Untuk mengamankan server anda, maka anda harus mengetahui untuk tujuan apa server tersebut digunakan, sehingga anda dapat menggambil langkah-langkah yang harus dilakukan dan menentukan daemon apa saja yang harus diaktifkan, hal-hal yang tidak boleh dilakukan dari workstation.

Akhirnya selamat membaca dan bekerja lebih baik.

Salam,

Hendra & Susan Dewichan


Menghindari masalah

by Ghost_Rider

Pada bagian saya akan memberikan 4 buah contoh yang harus anda lakukan pada sistem anda:

- shell provider
- Mail server
- Web server
- Standalone box

Pada bagian ini option untuk standalone tidak akan didiskusikan dengan alasan yang sudah jelas.

Pertama kita lihat apa saja yang harus dilakukan pada shell provider.

Shell provider

Pada server jenis ini anda akan memiliki banyak pemakai pada server, yang mungkin saja memberikan id dan password account shell kepada teman mereka, dan ini dapat menjadi lingkungan yang mengerikan bagi sysadmin.

Service yang berjalan:

- FTP
- SSH
- TELNET

Tip:

  • Jangan memperbolehkan root untuk login secara remote
  • Buang, atau paling tidak ganti password untuk account default.
  • Jangan memperbolehkan pemakai ftp anonymous untuk login, demikian juga untuk root, dan user berkemampuan tinggi lainnya untuk login dengan ftp, bin, daemon, dan pseudo user lainnya dari root.
  • Periksa semua file dengan SUID bit, dan periksa halaman manual mereka, jika dikatakan mereka dapat dijalankan tanpa SUID bit hilangkan saja. File seperti at, mount, umount selalu tanpa SUID bit. Jika pada sistem anda ada, hilangkan saja
  • Chroot() user pada home masing-masing ketika login dengan ftp.
  • Gunakan password shadow
  • Hapus su dari sistem anda dan gunakan sudo sebagai pengantinya, jika anda benar-benar ingin anda atau hanya anda saja sebagai sysadmin buang saja keduanya
  • Jangan memperbolehkan user biasa menggunakan perintah seperti, mount, umount, uname,
    netstat, w, who, dan yang lain yang dapat memberikan informasi tentang mesin anda kalau benar-benar tidak dibutuhkan.
  • Gunakan npasswd sebagai penganti passwd, atau gunakan vpass dengan passwd
  • Instalasi Crack (ingat untuk set permission ke rwx------) dan sekali seminggu jalankan suatu check pada password dari sistem anda. Ingat bahwa hal tersebut dapat makan waktu beberapa jam atau beberapa hari kalau sistem anda memiliki user yang banyak, tetapi anda perlu ingat bahwa hal tersebut dapat membuat sistem anda menjadi aman. Set cron untuk menjalankannya dan report dengan mail.
  • Jika anda ingin password yang aman, dan crypt() dengan long password menggunakan ppgen (password generator) yang mana akan mengenerate password untuk user.
  • Peringatkan user tentang kemungkinan serangan secara social engineering.
  • Buat user sering mengganti password mereka
  • Sering tampilkan pesan seperti "Host ini senantiasa mencatat segala aktifitas yang dilakukan user, segala usaha illegal akan dituntut secara hukum" pada login prompt dan motd. Adalah baik untuk melakukan hal ini, hal ini tidak akan mengamankan sistem anda, tetapi membuat penyerang berpikir dua kali.

URL:

sudo (ftp://ftp.courtesan.com/pub/sudo/)
npasswd (ftp://ftp.cc.utexas.edu/pub/npasswd/)
ppgen (ftp://coast.cd.purdue.edu/pub/tolls/unix/ppgen/)
crack (http://www.users.dircon.co.uk/~crypto/)

Mail server

Sebenarnya kita dapat berpikir bahwa server jenis ini tidak berbahaya seperti suatu Shell provider, tetapi itu adalah tidak benar, suatu Mail Server kadang-kadang lebih berbahaya dari pada shell provider. Mengapa? karena daemon sendmail benar-benar banyak mengandung bug, POP3 dapat di brute force untuk mendapatkan password dari user, dan bahkan jika host ini tidak memperbolehkan login secara remote? Jadi ada mulai membayangkannya sebagai suatu lingkungan yang kacau, itu adalah baik, keterbukaan mata anda ke suatu yang nyata.

Services yang berjalan:

- SMTP
- POP3

Tip:

  • Coba gunakan daemon qmail sebagai penganti sendmail.
  • Periksa jika perintah vrfy dan expn, mungkin ada, jika tidak ada disable mereka.
  • Pada POP3, jika mungkin, tentukan lock account jika suatu jangka waktu usaha login tetap gagal. Ingat untuk menggunakan mekanisme auto-unlock, misalnya setelah 30 menit account di lock. Jika tidak ada pilihan lain anda dapat senatiasa login ke account yang sedang di serang, dan tidak ada orang lain dapat melakukan login sampai anda logout (Saya berbicara tentang login pada pop3).


Web server

Web server merupakan salah satu yang paling banyak diserang oleh script kiddies, segala sesuatu yang ingin mereka lakukan adalah melakukan "31337 defacings" dengan berkata sperti ini "I 0wN yOuR AsS bItCh", mengunakan ekspoit yang diambil dari bugtraq. Bagi Web Server jenis kiddiots adalah yang paling berbahaya, tetapi ingat, mereka hanya berhasil jika anda malas melakukan upgrade dan patch hole. Scenario lainnya adalah serangan DoS setelah mereka gagal dengan sejumlah eksploit. Solusi untuk hal ini adalah -- FIREWALL

Services yang berjalan:

- www-http
- ftp (most of the times)

PENTING: Jika anda memiliki suatu web server dengan daemon ftp dan anda memperbolehkan upload ke direktori, INGAT chroot() ftp dan chroot() http PADA DIREKTORI YANG BERBEDA, mereka tidak dapat mengakses satu sama yanglain. Kecuali scripts dapat mengupload ke root pada server anda.

Tip:

  • Jika anda mengunakan script CGI periksa bahwa script CGI tersebut tidak memiliki kelemahan, jika ada hapus saja.
  • Jika menggunakan suatu world writable ftp directory seperti /incoming periksalah secara berkala, misalnya setiap 3 hari, atau setiap minggu, jangan lebih dari 1 minggu, setelah periode tersebut hapuslah segala sesuatu yang berada didalam direktori tersebut.
  • Jangan menjalankan daemon http sebagai root, mungkin anda berkata bahwa port lebih rendah dari 1023 (yang standar) harus berjalan sebagai root, ya benar mereka harus di jalankan sebagai root, tetapi mereka dapat diturunkan permissionnya seperti pada apache. Gunakan suatu user khusus untuk httpd, tentukan /bin/false dan shell dari user dan tempatkan namanya dalam file /etc/ftpusers.

Daftar CGI Script yang memiliki kelemahan

CATATAN: Ini bukan merupakan daftar yang lengkap.

- phf - htmlscript - view-source
- Count.cgi - pfdisplay - campas
- test-cgi - perl.exe - nph-test-cgi
- php.cgi - wwwboard.pl
- handlers - www-sql
- webgais - service.pwd
- websendmail - users.pwd
- webdist.cgi - aglimpse
- faxsurvey - man.sh

Catatan Akhir

Saya berharap tulisan ini memberikan oritentasi yang baik tentang bagaimana mengamankan sistem anda atau jaringan terhadap penyerang. Sesuatu yang perlu diingat adalah "Untuk melindungi diri, anda perlu melihatnya dari sisi penyerang" sisikan waktu untuk membaca petunjuk, tulisan tentang jaringan dari kelompok diskusi seperti comp.security.unix, comp.security.announce dan comp.os.linux.security. Anda akan belajar dari masalah orang lain, percayalah.

Tidak ada komentar: