Butuh Lisensi
atau fleksibilitas?
Bagaimana Menginstall dan Mengamankan eGroupWare
Bagaimana Menginstall dan Mengamankan eGroupWare
eGroupWare, kenapa
e
?
Silahkan menentukan sendiri, kami tidak dapat memilih satu diantara sekian banyak! enterprise, extended, extreme … groupware
2
Bagaimana Menginstall dan Mengamankan eGroupWare
Penulis dan penerbit telah mempersiapkan buku ini dengan matang, akan tetapi tidak ada jaminan dalam bentuk apapun dan mengasumsikan tidak ada tanggung jawab untuk kesalahan. Diasumsikan tidak ada bentuk penipuan jika terjadi kerusakan baik yang tidak disengaja maupun konsekuensi dalam penggunaan informasi atau program yang tertulis disini. Dokumen ini diterbitkan dibawah : Creative Commons Attribution-ShareAlike License
Untuk informasi tentang ijin penggunaan materi dari hasil karya ini, harap kirimkan permintaan Anda ke Reiner Jung
[email protected] Linux adalah merek dagang dari Linus Torvalds Red Hat, Red Hat Network, RPM adalah are merek dagang atau merek dagang yang terdaftar dari RedHat Inc. di Amerika Serikat dan negara lain SSH dan Secure Shell adalah merek dagang dari SSH Communication Security Inc. Microsoft dan Windows keduanya adalah merek dagang terdaftar atau merek dagang milik Microsoft Corporation di Amerika Serikat dan/atau negara lain Merek dagang dan hak cipta lain menjadi hak pemiliknya masing-masing
expl0it labs menawarkan pemaketan dan pengembangan keamanan open source expl0it press bertanggung jawab untuk penerbitan HOWTO, white paper dan lain-lain expl0it consulting menawarkan konsultasi keamanan dalam skala enterprise
Tanggal Publikasi 5-Jan-05
3
Bagaimana Menginstall dan Mengamankan eGroupWare
Daftar Isi Daftar Isi ......................................................................................................................................................................................4 1
Pengantar ..........................................................................................................................................................................8 1.1
Apa yang dibahas buku ini? .........................................................................................................................................8
1.2
Siapa yang harus membacanya? ...............................................................................................................................8
1.3
Konvensi Dokumen..........................................................................................................................................................9
1.4
Tentang Penulis ................................................................................................................................................................9
2
Kebutuhan untuk Installasi eGroupWare ......................................................................................................................10
3
HOWTO Installasi Kilat .....................................................................................................................................................11
4
Migrasi Installasi dari phpGroupWare ke eGroupWare ..............................................................................................16
5
Mengupdate eGroupWare ............................................................................................................................................17
6
5.1
Kapan Anda harus update?....................................................................................................................................... 17
5.2
Mengupdate installasi eGroupWare......................................................................................................................... 17
5.3
Memporting setting Anda ke versi header.inc.php baru...................................................................................... 18
Instruksi Installasi .............................................................................................................................................................19 6.1
Mendownload Paket ................................................................................................................................................... 19
6.2
Kenapa paket yang ditandai dengan GPG dan md5sum diperlukan?............................................................ 19
6.2.1
Menginstall kunci GPG untuk tar.gz.gpg, tar.bz2.gpg dan zip.gpg ............................................................... 19
6.2.2
Memverifikasi kunci GPG ........................................................................................................................................ 20
6.2.3
Menginstall kunci GPG untuk paket RPM ............................................................................................................ 21
6.3
Bagaimana saya memvalidasi paket? .................................................................................................................... 22
6.4
Menginstall paket pada server Anda ....................................................................................................................... 23
6.4.1
Menginstall paket tak bertanda pada server Anda ......................................................................................... 23
6.4.2
Menginstall paket bertanda GPG pada server Anda ...................................................................................... 23
6.4.3
Menginstall paket RPM pada server Anda ......................................................................................................... 24
6.4.4
Membangun ulang paket untuk path RPM lain................................................................................................. 24
6.4.5
Menginstall dengan installer Bitrock pada Windows......................................................................................... 25
6.4.6
Menginstall dengan installer Bitrock pada Linux ................................................................................................ 25
6.4.6.1
Menggunakan GUI untuk menginstall eGroupWare................................................................................ 25
6.4.6.2
Menggunakan perintah baris untuk menginstall eGroupWare.............................................................. 26
6.4.7 7
Menginstall dari CVS................................................................................................................................................ 27
Keamanan Dasar Server ................................................................................................................................................28 7.1
Mempartisi filesystem ................................................................................................................................................... 28
7.2
Platform server............................................................................................................................................................... 28
7.2.1
Menguji server Anda untuk layanan yang dijalankan dan port yang terbuka............................................ 29
7.2.1.1
Port yang diperlukan server eGroupWare.................................................................................................. 29
7.2.1.2
Penindai Port (Portscanner)........................................................................................................................... 30
7.2.1.3
Output dari sebuah portscanner ................................................................................................................. 30
7.2.1.4
Menonaktifkan layanan/server yang tidak diperlukan ........................................................................... 30
7.2.2
Menguninstall software yang tidak diperlukan pada server Anda ................................................................ 31
7.2.3
Menguji rootkits pada server Anda ...................................................................................................................... 32
7.2.3.1
Pengujian lokal untuk keberadaan rootkit dengan chkrootkit............................................................... 32
4
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.3.2
Contoh penggalan Chkrootkit ..................................................................................................................... 33
7.2.3.3
Menginstall chkrootkit versi RPM .................................................................................................................. 33
7.2.3.4
Menginstall chkrootkit dari file tar.gz ........................................................................................................... 34
7.2.4
Administrasi server yang aman ............................................................................................................................. 35
7.2.4.1
Menghubungkan ke server Anda melalui session yang aman .............................................................. 35
7.2.4.2
Bekerja dengan pasangan kunci SSH ......................................................................................................... 36
7.2.4.2.1
Menciptakan pasangan kunci secure shell ......................................................................................... 36
7.2.4.2.2
Menyalin kunci publik ke server .............................................................................................................. 36
7.2.4.2.3
Peralatan ssh-add ..................................................................................................................................... 37
7.2.4.2.4
Mengamankan SSH client Anda ............................................................................................................ 37
7.2.4.2.5
Mengamankan SSHD Anda .................................................................................................................... 37
7.2.5
Menginstall software untuk memonitor log server Anda .................................................................................. 37
7.2.6
Intrusion detection environment ........................................................................................................................... 38
7.2.6.1
Menginstall AIDE.............................................................................................................................................. 38
7.2.6.2
File konfigurasi AIDE aide.conf ..................................................................................................................... 39
7.2.6.3
Menciptakan sebuah file cronjob untuk menjalankan AIDE secara otomatis.................................... 41
7.2.6.4
Contoh laporan AIDE ..................................................................................................................................... 43
7.2.6.5
Menciptakan database baru setelah perubahan ................................................................................... 44
7.2.7
Keamanan Daemon................................................................................................................................................ 44
7.2.8
Firewall........................................................................................................................................................................ 44
7.2.8.1
Merencanakan firewall.................................................................................................................................. 44
7.2.8.2
Bagaimana menciptakan aturan firewall .................................................................................................. 45
7.2.8.3
Contoh script firewall...................................................................................................................................... 46
7.2.8.4
Menginstall script firewall............................................................................................................................... 52
7.2.8.5
Aalisa file log firewall ...................................................................................................................................... 53
7.3
Keamanan Aplikasi Web ............................................................................................................................................. 53
7.3.1
Menginstall ModSecurity......................................................................................................................................... 54
7.3.2
Setup Dasar ............................................................................................................................................................... 54
7.3.3
Menguji ModSecurity............................................................................................................................................... 55
7.3.4
Contoh log ModSecurity......................................................................................................................................... 56
7.4
Optimisasi dan Mengamankan web server Apache ............................................................................................ 57
7.4.1
Modul yang direkomendasikan untuk diaktifkan............................................................................................... 57
7.4.2
Opsi konfigurasi Apache lainnya .......................................................................................................................... 58
7.5
eAccelerator ................................................................................................................................................................. 58
7.5.1
Kebutuhan................................................................................................................................................................. 58
7.5.1.1
Tugas awal untuk RedHat Enterprise Linux 3 .............................................................................................. 58
7.5.2
Kompatibilitas ........................................................................................................................................................... 59
7.5.3
Installasi Kilat.............................................................................................................................................................. 59
7.5.4
Interface Web........................................................................................................................................................... 61
7.6
Mengamankan installasi PHP ..................................................................................................................................... 62
7.7
Menciptakan sertifikat web server............................................................................................................................. 63
7.7.1
Bergabung dengan CA Cert ................................................................................................................................. 64
7.7.2
Menciptakan permintaan penandatanganan sertifikat Anda....................................................................... 64
5
Bagaimana Menginstall dan Mengamankan eGroupWare
7.7.2.1
Merubah file openssl.cnf................................................................................................................................ 64
7.7.2.2
Menciptakan kunci server Anda dan permintaan penandatanganan .............................................. 65
7.7.2.3
Mengirimkan permintaan ke CA Anda ...................................................................................................... 66
7.7.2.4
Menginstall sertifikat server............................................................................................................................ 66
7.8
Web server ..................................................................................................................................................................... 67
7.9
Mengamankan SQL server.......................................................................................................................................... 67
7.10
Backup dan mengembalikan database Anda!..................................................................................................... 68
7.10.1
Menentukan solusi backup Anda .................................................................................................................... 68
7.10.2
Backup database MySQL .................................................................................................................................. 69
7.10.2.1
Membackup database MySQL secara manual................................................................................... 69
7.10.2.2
Membackup MySQL dengan tugas cron harian ................................................................................ 69
7.10.2.3
Mengembalikan database MySQL......................................................................................................... 70
7.10.3
Membackup database PostgreSQL ................................................................................................................ 71
7.10.3.1
Membackup database PostgreSQL secara manual........................................................................... 71
7.10.3.2
Menciptakan tugas cron untuk script PostgreSQL ............................................................................... 71
Shell script backup PostgreSQL....................................................................................................................................... 71 7.10.3.3 8
Setting eGroupWare .......................................................................................................................................................73 8.1
9
Mengembalikan database PostgreSQL................................................................................................. 72
Menciptakan database Anda................................................................................................................................... 73
8.1.1
Menciptakan database MySQL ............................................................................................................................ 73
8.1.2
Menciptakan database PostgreSQL .................................................................................................................... 73
8.2
Bagaimana memulai setup? ...................................................................................................................................... 74
8.3
Pengujian installasi eGroupWare ............................................................................................................................... 75
8.4
Menciptakan header.inc.php.................................................................................................................................... 75
8.5
Setup / Config Admin .................................................................................................................................................. 76
8.5.1
Langkah 1 – Simple Application Management - Ciptakan database Anda .............................................. 77
8.5.2
Step 2 – Konfigurasi .................................................................................................................................................. 78
8.5.2.1
Menciptakan folder files ................................................................................................................................ 78
8.5.2.2
Mengedit konfigurasi aktual ......................................................................................................................... 78
8.5.3
Step 3 – Setting Account Pengguna Anda ......................................................................................................... 81
8.5.4
Step 4 – Mengelola Bahasa.................................................................................................................................... 81
8.5.5
Step 5 –Mengelola Aplikasi .................................................................................................................................... 81
Log In ke eGroupWare ...................................................................................................................................................82
10
Troubleshooting...........................................................................................................................................................83 10.1
Lupa password admin ................................................................................................................................................. 83
10.2
Pengguna Admin atau pengguna lain diblokir...................................................................................................... 83
10.3
Database error: lock(Array, write) failed .................................................................................................................. 83
10.4
Memeriksa hak akses file ............................................................................................................................................. 83
10.5
Tidak bisa melewati halaman Check Install (#1).................................................................................................... 83
10.6
Tidak bisa melewati halaman Check Install (#2).................................................................................................... 84
10.7
Windows: fudforum/3814******9): Permission denied ............................................................................................. 84
10.8
Sitemgr: mkdir(./sitemgr-link): Permission denied .................................................................................................... 84
10.9
Error 1250 (Client does not support authentication protocol requested by server .................................. 85
6
Bagaimana Menginstall dan Mengamankan eGroupWare
10.10
Menciptakan account admin tetapi tidak bisa login ...................................................................................... 85
10.11
Loop ketika menciptakan database ................................................................................................................... 86
10.12
Menguji dengan modul apa PHP terkompilasi................................................................................................. 86
10.13
Kesalahan mbstring saat installasi..................................................................................................................... 86
10.14
Pesan kesalahan PHP include path..................................................................................................................... 86
11
Peta Software ..............................................................................................................................................................88
12
Dokumentasi yang Berguna......................................................................................................................................93
13
Contoh script konfigurasi ...........................................................................................................................................93 13.1
AIDE ................................................................................................................................................................................. 93
13.2
Backup............................................................................................................................................................................ 93
13.3
Iptables ........................................................................................................................................................................... 94
14
Yang harus dilakukan dan PerubahanTo-do and Change Log ............................................................................95 14.1
Daftar yang harus dilakukan untuk dokumen ini .................................................................................................... 95
14.2
Perubahan pada buku ................................................................................................................................................ 96
15
Kontributor Dokumen .................................................................................................................................................98
16
Humanly-Readable License ......................................................................................................................................99
17
Index ..........................................................................................................................................................................100
7
Bagaimana Menginstall dan Mengamankan eGroupWare
1
Pengantar
eGroupWare adalah sebuah paket groupware yang diprogram dalam PHP. eGroupWare adalah software open source yang dapat diinstall pada sebagian besar sistem, seperti Windows, Mac, Unix, BSD dan Linux. Ia didesain untuk berjalan dengan software yang sudah ada (seperti database mail server Anda). Target dari eGroupWare adalah untuk memenuhi kebutuhan lingkungan enterprise dalam paket groupware sambil mempertahankan keamanan dan modularitas dari software open source. eGroupWare mencakup semua aplikasi yang diperlukan untuk menginstall sebuah lingkungan office yang lengkap. Visi jangka panjang dari eGroupWare adalah kebutuhan 80 persen dari pegawai bisnis dapat terpenuhi melalui groupware.
1.1
Apa yang dibahas buku ini?
Buku ini akan membahas installasi dan langkah-langkah keamanan yang harus diikuti ketika Anda menginstall eGroupWare pada organisasi Anda. Installasi eGroupWare sendiri hanyalah bagian kecil dari apa yang harus dilakukan untuk mendapatkan solusi yang aman dari groupware – Anda juga harus melakukan beberapa tugas, seperti membagi strategi update, merencanakan installasi firewall Anda, dan mengkonfigurasi sistem Anda sehingga aman dari para penyusup. Buku ini juga memberikan gambaran singkat tentang perbedaan yang mungkin Anda jumpai ketika menginstall eGroupWare pada beberapa platform sistem operasi; namun, karena kemungkinan konfigurasi sistem operasi dan software yang sangat berbeda, pembahasan tidaklah komprehensif. Silahkan berkonsultasi dengan dokumentasi sistem atau kirimkan pertanyaan kepada mailing list pengembang eGroupWare yang bersangkutan jika Anda membutuhkan bantuan.
1.2
Siapa yang harus membacanya?
Pengguna eGroupWare yang berpengalaman dan tidak berpengalaman harus membaca buku ini. Pengguna harus memiliki tingkat pengetahuan yang cukup tentang sistem operasinya, karena buku ini tidak akan membahas dasar-dasar sistem operasi secara detail. Namun, buku ini akan memberi Anda petunjuk yang berguna tentang bagaimana Anda dapat mendapatkan lingkungan sistem operasi yang lebih aman dan baik. Pengguna tingkat lanjut akan menemukan contoh script yang dapat dikustomisasi (seperti iptables atau aide) yang dapat dimodifikasi sesuai selera untuk menyesuaikan kebutuhan mereka.
8
Bagaimana Menginstall dan Mengamankan eGroupWare
1.3
Konvensi Dokumen
Manual ini menggunakan jenis huruf, style, dan ikon yang berbeda untuk merepresentasikan hal yang berbeda. Berikut ini adalah konvensi style yang digunakan.
cursive Teks Cursive merepresentasikan operasi perintah baris (command line ).
script Font jenis ini menunjukkan isi konfigurasi atau file script.
Ikon
Wizard menunjukkan Anda kepada area download di http://www.example.com/files. Pada tempat
ini, Anda akan menemukan beberapa contoh file konfigurasi yang dapat Anda modifikasi untuk memenuhi kebutuhan Anda. Ikon Information berarti bahwa direktori /var/www/html/egrouopware/phpgwapi berisi dokumentasi tambahan untuk topik aktual (path Anda mungkin berbeda).
Ikon Note adalah pengingat yang cukup membantu.
Ikon Warning mengindikasikan hal penting yang harus Anda perhatikan
Ikon Caution menunjukkan hal yang sangat penting yang harus Anda lakukan!
1.4
Ikon
Penguin menunjukkan kegiatan yang harus Anda lakukan pada sistem operasi Linux atau Unix.
Ikon
Windows menunjukkan kegiatan yang harus Anda lakukan pada sistem operasi Windows.
Tentang Penulis
Reiner Jung telah bekerja sebagai konsultan IT dan manajer proyek freelance selama lebih dari 14 tahun. Dia telah berpengalaman dengan sistem operasi klasik, seperti Netware, Windows, dan Unix, tetapi belakangan dia memilih untuk bekerja dengan OpenBSD dan Linux. Pada tahun 2004 dia mendirikan perusahaan konsultasi keamanannya sendiri, expl0it, yang berbasis di Eropa dan Amerika Selatan.
9
Bagaimana Menginstall dan Mengamankan eGroupWare
2
Kebutuhan untuk Installasi eGroupWare
Daftar berikut ini akan memberikan gambaran singkat tentang apa yang Anda butuhkan untuk menjalankan eGroupWare. Anda tidak membutuhkan kompiler untuk menginstall eGroupWare. eGroupWare terbentuk dari file PHP, HTML dan citra.
Apa yang Anda butuhkan untuk Menjalankan
Contoh software
eGroupWare Anda membutuhkan sebuah sistem operasi
Linux, Unix, *BSD
seperti :
MAC
Periksa Kebutuhan
WIN NT / 2000 / XP eGroupWare membutuhkan web server.
IIS
Berikut ini beberapa contohnya:
Roxen Apache 1.3 or 2.0
eGroupWare membutuhkan database:
MYSQL MS-SQL PostgreSQL
Jika Anda hendak mengirimkan email dengan
Exim
eGroupWare maka Anda membutuhkan SMTP
Postfix
server seperti:
Sendmail
Jika Anda hendak menggunakan eGroupWare
Cyrus
sebagai mail client POP atau IMAP Anda
Courier
membutuhkan server korespondensi seperti :
Dovecot UW-IMAP
eGroupWare membutuhkan PHP:
PHP > 4.1 diperlukan. PHP > 4.2 direkomendasikan.
10
Bagaimana Menginstall dan Mengamankan eGroupWare
3
HOWTO Installasi Kilat
HOWTO ini akan memberikan pengantar singkat tentang langkah-langkah yang diperlukan untuk menginstall eGroupWare. Installasi eGroupWare dapat dilakukan kurang dari 10 menit. Namun, kecuali Anda menginstall eGroupWare secepat mungkin adalah sebuah kebutuhan mutlak, Anda sangat direkomendasikan untuk membaca keseluruhan buku ini untuk memastikan bahwa sistem Anda telah diset dengan benar dan aman. 1)
Download paket eGroupWare dari area download Sourceforge1. Saat ini, paket eGroupWare disediakan dalam format zip, tar.gz, bz2 dan rpm. Beberapa distribusi Linux dan Unix, seperti Mandrake, Debian, Gentoo, SUSE dan FreeBSD menyediakan paket terkustomisasi yang didesain untuk bekerja dengan distribusi mereka (misalnya, mereka akan memperbaiki path installasi dari paket dan memastikan ketergantungan sudah terpenuhi).
2)
Install paket pada server Anda dalam root webserver (direkomendasikan) atau pada direktori lain yang hendak Anda gunakan. Paket RPM dari Sourceforge akan menggunakan /var/www/html sebagai path installasinya.
[root@server tmp]# rpm –ivh eGroupWare-x.x.xx.xxx-x.rpm Untuk menginstall jenis paket lain dari eGroupWare, salin paket ke direktori root web server, berpindahlah ke direktori tersebut, dan uraikan paket.
[root@server tmp]# cd /var/www [root@server www]#tar xzvf eGroupWare-x.x.xx.xxx-x.tar.gz
Dengan menggunakan program seperti Winzip2, unzip file ke sembarang folder yang berada di bawah root web server Anda. Dengan kata lain, folder yang Anda pilih harus dapat diakses dari Internet. Pastikan Anda mempertahankan struktur folder ketika Anda mengurai file zip (opsi “keep folder names” harus diberi tanda
pada
WinZip
pada
dialog
Extract)
dan
installasi
Anda
akan
tampak
seperti
ini:
D:\websites\websiteAnda\eGroupWare\(semua file dalam paket zip eGroupWare). 1 http://www.sf.net/projects/egroupware 2 http://www.winzip.com
11
Bagaimana Menginstall dan Mengamankan eGroupWare
3)
Ubahlah hak akses file pada installasi eGroupWare Anda. Gunakan chown dan chmod untuk melakukannya (lihat manual chown dan chmod jika Anda membutuhkan bantuan). Pemilik dan grup yang memiliki file tergantung dari sistem operasi Anda. Mungkin Anda ingin agar root menjadi pemilik dan web server sebagai grup pemilik. Cobalah menggunakan flag rekursif untuk kedua perintah ini untuk menjadikannya lebih mudah. - Pengguna Admin Anda harus memiliki hak baca dan tulis. - Pengguna yang menjalankan web server harus memiliki hak baca saja. Pengguna web server hanya membutuhkan hak tulis pada folder fudforum.
Tentukan hak akses yang sesuai untuk file-file eGroupware. Pengguna Administratif membutuhkan paling tidak hak baca dan tulis.
12
Bagaimana Menginstall dan Mengamankan eGroupWare
Pengguna Web (Internet Guest Account) membutuhkan hak baca.
Pengguna Web membutuhkan hak baca dan tulis pada FUDFORUM saja! 4)
Pastikan bahwa web server dan database server diaktifkan.
5)
Arahkan browser ke URL http://
/egroupware/setup. Tergantung dari setup web server, Anda mungkin perlu menambahkan “index.php” ke daftar dokumen default Anda. Anda mungkin harus menambahkan tanda “/” pada URL diatas.
6)
Script pengujian installasi akan berjalan secara otomatis. - Tunggu hingga script selesai, lalu perbaiki kesalahan yang muncul. - Setelah memperbaiki kesalahan, panggil ulang file untuk memastikan installasi Anda kembali. - Ketika tidak ada kesalahan yang tersisa, geser ke bawah dan klik “Return to Setup.”
Anda mungkin mengalami beberapa hal yang tidak terselesaikan dengan sempurna. Misalnya, setting register_globals = on pada file PHP.ini Anda (biasanya di C:\WINNT) mungkin harus dirubah. Beberapa script membutuhkan setting ini dalam keadaan aktif dan beberapa membutuhkannya dalam keadaan non aktif. Jika Anda menonaktifkannya, bagian lain dari website yang menggunakan PHP mungkin tidak bekerja. Solusinya adalah dengan menentukan sesuai rekomendasi eGroupWare (off) dan periksa situs lain Anda. Jika mereka tidak lagi bekerja dengan benar, set nilai kembali ke on. Harap diperhatikan: eGroupWare tidak membutuhkan setting ini harus bernilai off! Ekstensi database MsSQL (Microsoft) juga tidak akan diaktifkan jika Anda menggunakan MySQL!
13
Bagaimana Menginstall dan Mengamankan eGroupWare
Ketika semua konflik terselesaikan Anda bisa klik pada “continue to the Header Admin.” 7)
Jalankan konfigurasi Header Admin. - Isilah semua field. Server Root – “root” dari installasi eGroupWare Anda ,contoh D:\websites\websiteAnda\eGroupWare. Include Root – Samakan dengan Server Root, contoh D:\websites\websiteAnda\eGroupWare (Harap diperhatikan: Ini bukan alamat .com Anda atau FQDN lainnya, Ini adalah path direktori aktual ke installasi eGroupWare Anda.)
Jangan lupakan password. Password akan dienkripsi dan tidak dapat dikembalikan.
Pilih opsi untuk “Download” file header.inc.php dan simpanlah kedalam direktori root dan installasi eGoupWare Anda (contoh /var/www/html/egroupware). Berilah hak baca file ini kepada web server.
Pilihlah opsi untuk “Download” file header.inc.php yang baru saja Anda buat, dan simpan ke direktori root dari installasi eGroupWare Anda (jika Anda memiliki akses ke server), atau upload melalui FTP ke direktori tersebut. - Klik continue 8)
Login ke Setup/Config Admin.
14
Bagaimana Menginstall dan Mengamankan eGroupWare
9)
Ciptakan Database / Table Anda. - Isi form dengan username dan password root database untuk membuat database secara otomatis - Lanjutkan untuk membuat database - Periksa ulang installasi - Lanjutkan untuk membuat tabel
Ini akan menjadi sangat mudah jika Anda mengetahui nama dan password untuk MySQL server Anda. Isi semua informasi dan “Create Database.” Ketika Anda klik pada “Re-check My Installation” Anda mungkin melihat bahwa Anda “have no applications installed” dan diberikan opsi untuk “install the core tables and the admin and preferences applications.” Lanjutkan dan install tabel-tabel tersebut. *Catatan bagian “TROUBLE SHOOTING”– jika Anda menerima kesalahan. 10) Edit Konfigurasi Aktual. - Ciptakanlah sebuah direktori diluar root web server dan berikan webserver hak untuk membaca, menulis, dan mengeksekusi pada direktori ini. Sebagai contoh, ketika root web server Anda adalah /var/www/html, Anda bisa menciptakan folder dibawah /var/www/files
Hal ini berarti menciptakan sebuah folder/direktori yang tidak berada dibawah pohon direktori D:\websites\websiteAnda\eGroupWare.
Sebagai
contoh,
harus
jika
membuat
installasi
“root”
direktori/folder
ada
pada
ini
pada
D:\websites\websiteAnda\eGroupWare,
Anda
D:\websites\websiteAnda\direktori_baru.
Setelah direktori/folder tercipta, pastikan pengguna Web
memiliki hak baca, tulis, dan eksekusi pada direktori/folder ini. 11) Ciptakan Pengguna Admin Anda. - Jangan gunakan account ini sebagai account utama dan sehari-hari. Account ini hanya digunakan sebagai pengguna cadangan dan untuk installasi awal saja. 12) Mengelola Bahasa. - Install bahasa yang hendak Anda gunakan. 13) Mengelola Aplikasi. - Uninstall aplikasi yang tidak hendak Anda gunakan 14) Login ke eGroupWare. Arahkan browser Anda ke http://namaserverAnda/egroupware
15
Bagaimana Menginstall dan Mengamankan eGroupWare
4
Migrasi Installasi dari phpGroupWare ke eGroupWare
Download paket yang dibutuhkan dari halaman kami dan install seperti yang dijelaskan pada bagian 2. Salin file header.inc.php dari direktori phpGroupWare ke direktori eGroupWare Anda dan edit baris berikut pada header.inc.php (path Anda mungkin berbeda): Dari:
define('PHPGW_SERVER_ROOT','/var/www/html/phpgroupware'); define('PHPGW_INCLUDE_ROOT','/var/www/html/phpgroupware'); Menjadi:
define('PHPGW_SERVER_ROOT','/var/www/html/egroupware'); define('PHPGW_INCLUDE_ROOT','/var/www/html/egroupware'); Arahkah Browser Anda ke URL https://www.domain.com/egroupware/setup Login ke Setup/Config Admin Login Klik Edit Current Configuration dan rubahlah isi dari field ketiga (Enter the location…) menjadi : /egroupware Itu saja… Selamat bersenang-senang!
16
Bagaimana Menginstall dan Mengamankan eGroupWare
5
Mengupdate eGroupWare
5.1
Kapan Anda harus update?
Proyek eGroupWare mengeluarkan beberapa jenis rilis: perbaikan kesalahan minor, perbaikan kesalahan major, keamanan dan versi baru. keamanan
dipublikasikan
Anda harus update secepatnya ketika ada rilis keamanan dipublikasikan. secara
resmi
ketika
peneliti
eksternal
menemukan
sebuah
masalah
Rilis dan
mempublikasikannya. Ketika tim pengembang sendiri yang menemukan sebuah masalah keamanan, perbaikan akan disertakan pada rilis berikutnya, namun tidak dipublikasikan pada mailing lists! Hal ini untuk menjaga pengguna yang tidak terlalu sering membacanya, karena pengguna yang jahat akan menemukan eksploitasi dan menggunakannya. Jika kecacatan semacam ini dipublikasikan pada mailing list, ini akan memberikan pengetahuan kepada pengguna yang jahat untuk mengambil keuntungan dari eksploit. Anda tidak perlu mengupdate eGroupWare ketika sebuah rilis hanyalah berupa perbaikan kesalahan minor dan jika Anda tidak mengalami gejala-gelaja kesalahan. Rilis perbaikan kesalahan minor tidak menyertakan perbaikan keamanan, dan biasanya hanya memecahkan masalah yang sangat spesifik. Update untuk eGroupWare ketika perbaikan kesalahan major atau rilis versi major yang dipublikasikan sangat direkomendasikan. Rilis ini bisa berisi perbaikan kesalahan yang tidak dipublikasikan.
5.2
Mengupdate installasi eGroupWare Sebelum Anda memulai mengupdate installasi Anda, buatlah cadangan dari file dan database eGroupWare. 1)
Download paket dari halaman sourceforge3.
2)
Install paket pada server Anda: Untuk paket RPM lakukan:
[root@server tmp]# rpm –Uvh eGroupWare* Untuk paket tar.gz, pindahlah ke direktori root web server (diatas installasi eGroupWare):
[root@server tmp]# cd /var/www/html [root@server html]# tar xzvf eGroupWare-x.xx.xxx-x.tar.gz 3 http://www.sf.net/projects/egroupware
17
Bagaimana Menginstall dan Mengamankan eGroupWare
Untuk paket tar.bz2, pindahlah ke direktori root web server (diatas installasi eGroupWare):
[root@server tmp]# cd /var/www/html [root@server html]# tar xjvf eGroupWare-x.xx.xxx-x.tar.bz2 Dimungkinkan untuk mengupdate dari CVS.
Update dari CVS hanya versi stabil dan bukan dari versi
pengembangan!
[root@server tmp]# cd /var/www/html/egroupware [root@server egroupware]# cvs update –r Version-1_0_0-branch -Pd 3)
Login ke Setup/Config Admin.
4)
Jika diperlukan, eGroupWare akan memberitahu bahwa Anda harus mengupdate tabel database Anda.
5)
Periksa update yang diperlukan pada langkah 4, Advanced Application Management.
5.3
Memporting setting Anda ke versi header.inc.php baru 1)
Setelah update, Anda akan melihat pesan berikut: You need to port your settings to the new header.inc.php version.
2)
Bukalah https://serverAnda/egroupware/setup. - Geser kebawah hingga "Checking the eGroupWare Installation" - Konfirmasikan dengan menekan Continue untuk menuju Header Admin
3)
Login dengan username dan password yang sesuai.
4)
Jika diperlukan, ubahlah setting.
5)
Simpan file.
18
Bagaimana Menginstall dan Mengamankan eGroupWare
6
Instruksi Installasi
6.1
Mendownload Paket Anda bisa mendownload paket dari: http://sourceforge.net/project/showfiles.php?group_id=78745
Kami menyediakan paket-paket berikut ini pada area download Sourceforge: *.tar.gz *.tar.bz2 *.zip Paket ini ditandai dengan kunci gpg untuk alasan keamanan: *.tar.gz.gpg *.tar.bz2.gpg *.zip.gpg Paket ini bekerja pada Windows dan menawarkan installer grafis: egroupware*windows-installer.exe Paket ini bekerja pad Linux dan menawarkan installer grafis dengan X-Windows: egroupware*linux-installer.bin RPMs ini bekerja pada Red Hat dan sebagian besar distribusi berbasis RPM: eGroupWare*noarch.rpm Paket eGroupWare-all-apps*.noarch.rpm berisi semua paket yang tersedia. Paket lain menyediakan semua aplikasi dalam paket terpisah.
6.2
Kenapa paket yang ditandai dengan GPG dan md5sum diperlukan?
Kadangkala hackers menyerang server pengembangan untuk merubah paket yang didownload, dan menyertakan trojan horse, sniffer, dan sebagainya kedalam paket. Paket yang ditandai akan memvalidasi integritas paket sebelum Anda menjalankan dan menginstall aplikasi pada server Anda 6.2.1
Menginstall kunci GPG untuk tar.gz.gpg, tar.bz2.gpg dan zip.gpg
Install kunci GPG yang sesuai dengan paket tar.gz.gpg, tar.bz2.gpg, zip.gpg, md5sum-eGroupWareversion.txt.asc RPM. Pada Linux Anda bisa menggunakan perintah berikut untuk mengimport kunci sehingga Anda bisa memvalidasi paket tar.gz.gpg, tar.bz2.gpg, zip.gpg and md5sum*.asc.
[root@server root]# gpg --keyserver blackhole.pca.dfn.de --recv-keys 0xD9B2A6F2
19
Bagaimana Menginstall dan Mengamankan eGroupWare
6.2.2
Memverifikasi kunci GPG
Jika Anda hendak memvalidasi paket, Anda harus mempercayai (trust) kunci tersebut. Jika Anda tidak melakukannya, Anda akan menerima sebuah kesalahan bahwa kunci tidak dipercaya setiap kali. Tampilkan semua kunci yang ada. Anda harus bisa melihat kunci yang diimport disini:
[root@server root]# gpg --list-keys gpg: Warning: using insecure memory! gpg: please see http://www.gnupg.org/faq.html for more information /root/.gnupg/pubring.gpg
-------------------------------pub 1024D/D9B2A6F2 2002-12-22 Reiner Jung sub 1024g/D08D986C 2002-12-22 Sekarang edit kunci dengan nomor kunci D9B2A6F2
[root@server root]# gpg --edit-key D9B2A6F2 gpg (GnuPG) 1.0.7; Copyright (C) 2002 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: Warning: using insecure memory! gpg: please see http://www.gnupg.org/faq.html for more information gpg: checking the trustdb gpg: no ultimately trusted keys found pub 1024D/D9B2A6F2 created: 2002-12-22 expires: never
trust: -/-
sub 1024g/D08D986C created: 2002-12-22 expires: never (1). Reiner Jung Anda bisa (tetapi tidak harus) menguji fingerprint dari kunci. Fingerprint dari kunci adalah: BBFF 354E CA1F 051E 932D 70D5 0CC3 882C D9B2 A6F2
Command> fpr pub 1024D/D9B2A6F2 2002-12-22 Reiner Jung Fingerprint: BBFF 354E CA1F 051E 932D 70D5 0CC3 882C D9B2 A6F2 Now you can sign the key Command>trust pub 1024D/D9B2A6F2 created: 2002-12-22 expires: never
trust: f/-
sub 1024g/D08D986C created: 2002-12-22 expires: never (1). Reiner Jung
20
Bagaimana Menginstall dan Mengamankan eGroupWare
Please decide how far you trust this user to correctly verify other users' keys (by looking at passports, checking fingerprints from different sources...)? 1 = Don't know 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully 5 = I trust ultimately i = please show me more information m = back to the main menu Your decision? 5 Do you really want to set this key to ultimate trust? yes pub 1024D/D9B2A6F2 created: 2002-12-22 expires: never
trust: u/-
sub 1024g/D08D986C created: 2002-12-22 expires: never (1). Reiner Jung Please note that the shown key validity is not necessary correct unless you restart the program. Now you can check the key at the prompt with “check” or quit the session. 6.2.3
Menginstall kunci GPG untuk paket RPM Untuk mengimport kunci yang diperlukan untuk memvalidasi paket RPM, carilah kunci D9B2A6F2 pada halaman web server kunci berikut : http://www.dfn-pca.de/eng/pgpkserv/
Klik link pada “D9B2A6F2.” Pada jendela baru, salin teks, termasuk baris berikut:
----BEGIN PGP PUBLIC KEY BLOCK--------END PGP PUBLIC KEY BLOCK----Simpan salinan pada sebuah file dengan nama:
EGROUPWARE-GPG-KEY Lalu import kunci:
[user@server tmp]$ rpm --import EGROUPWARE-GPG-KEY
21
Bagaimana Menginstall dan Mengamankan eGroupWare
6.3
Bagaimana saya memvalidasi paket?
Jika Anda hendak menguji md5sum dari sebuah paket, lakukan langkah-langkah berikut (langkah yang dijelaskan disini adalah untuk sistem Linux): Download file md5sum-eGroupWare-version.txt.asc dari halaman download Sourceforge. Validasi file md5sum-eGroupWare-version.txt.asc:
[user@server tmp]$ gpg --verify md5sum-eGroupWare-version.txt.asc Cari nilai md5sum dari paket:
[user@server tmp]$ md5sum eGroupWare-x.x.xx.xxx-x.tar.gz 41bee8f27d7a04fb1c3db80105a78d03 eGroupWare-x.x.xx.xxx-x.tar.gz Buka file md5sum file untuk melihat nilai asli md5sum (md5sum dibawah hanyalah contoh):
user@server tmp]$ less md5sum-eGroupWare-x.x.xx.xxx-x.txt.asc -----BEGIN PGP SIGNED MESSAGE----Hash: SHA1 md5sum from file eGroupWare-x.x.xx.xxx.tar.gz is: 41bee8f27d7a04fb1c3db80105a78d03 - --------------------------------------md5sum from file eGroupWare-x.x.xx.xxx.tar.bz2 is: 3c561e82996349d596540f476b9624f2 - --------------------------------------md5sum from file eGroupWare-x.x.xx.xxx.zip is: c3bb1f67ca143236e8603c6995e82db0 -----BEGIN PGP SIGNATURE----Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE/WM2wDMOILNmypvIRAm5GAJ0e6IlnellZU0quVQxWOP/pF+QGpwCgptbH O02LpinLNqnr6epxt9vB9sw= =OBcn -----END PGP SIGNATURE----Disini kita melihat bahwa kunci pada file md5sum dan hasil pengujian checksum pada perintah baris adalah sama, sehingga paket tidak berubah setelah dibentuk.
22
Bagaimana Menginstall dan Mengamankan eGroupWare
Untuk menguji nilai checksum untuk paket tar.gz.gpg, tar.bz2.gpg atau zip.gpg, ketikkan pada perintah baris dari sistem Linux Anda:
[user@server tmp]$ gpg --verify eGroupWare-x.x.xx.xxx-x.tar.gz.gpg Untuk menguji nilai checksum dari paket RPM, ketikkan pada perintah baris dari sistem Linux Anda:
[user@server tmp]$ rpm --checksig eGroupWare-all-apps-x.x.xx.xxx-x.noarch.rpm
6.4 6.4.1
Menginstall paket pada server Anda Menginstall paket tak bertanda pada server Anda
Untuk menginstall paket non-RPM tak bertanda, lakukan langkah-langkah berikut: Pindahlah ke dokumen root web server Anda (atau dimanapun Anda hendak menginstall paket)
[user@server tmp]$ cd /var/www/html Uraikan paket pada folder ini. Jika Anda meletakan paket pada direktori /tmp, Anda bisa menginstallnya dengan satu diantara perintah berikut, tergantung dari paket yang Anda miliki:
[user@server tmp]$ tar xzvf /tmp/eGroupWare-x.xx.xxx-x.tar.gz [user@server tmp]$ tar xjvf /tmp/eGroupWare-x.xx.xxx-x.tar.bz2 [user@server tmp]$ unzip /tmp/eGroupWare-x.xx.xxx-x.zip 6.4.2
Menginstall paket bertanda GPG pada server Anda
Untuk menginstall paket non-RPM yang bertanda GPG, lakukan langkah-langkah berikut: Pisahkan paket dari kunci GPG:
[user@server tmp]$ gpg -o eGroupWare-X.XX.XXX-X.tar.gz -decrypt eGroupWare-X.XX.XXX-X.tar.gz.gpg Pindahlah ke dokumen root web server (atau dimanapun Anda hendak menginstall paket)
[user@server tmp]$ cd /var/www/html
23
Bagaimana Menginstall dan Mengamankan eGroupWare
Uraikan paket pada folder ini. Jika Anda meletakan paket pada direktori /tmp, Anda bisa menginstallnya dengan satu diantara perintah berikut, tergantung dari paket yang Anda miliki:
[user@server html]$ tar xzvf /tmp/eGroupWare-x.x.xxx-x.tar.gz [user@server tmp]$ tar xjvf /tmp/eGroupWare-x.xx.xxx-x.tar.bz2 [user@server tmp]$ unzip /tmp/eGroupWare-x.xx.xxx-x.zip 6.4.3
Menginstall paket RPM pada server Anda
Untuk menginstall paket RPM pada server Anda, lakukan langkah berikut: Uji apakah RPM valid:
[user@server tmp]$ rpm --checksig /tmp/eGroupWare-x.x.xxx-x.noarch.rpm Install paket:
[user@server tmp]$ rpm -ivh /tmp/eGroupWare-all-apps-x.x.xxx-x.noarch.rpm Jika root web server bukan /var/www/html/ Anda bisa menginstall RPM ke path lain. Untuk melakukannya, gunakan perintah berikut.
[user@server tmp]$ rpm -ivh –prefix /server_baru_Anda/eGroupWare-all-apps-x.x.xxx-x.noarch.rpm 6.4.4
Membangun ulang paket untuk path RPM lain
Anda bisa membangun ulang paket RPM untuk SUSE LINUX. Download file *.src.rpm dan ketik
[user@server tmp]$ rpmbuild -–rebuild eGroupWare-x.xx.xxx-x.src.rpm Ini akan menciptakan sebuah paket dengan path installasi “/srv/www/htdocs” untuk Anda. Paket akan diletakkan pada /usr/src/packages/RPMS/noarch.
24
Bagaimana Menginstall dan Mengamankan eGroupWare
6.4.5
Menginstall dengan installer Bitrock pada Windows
Installasi dengan installer grafis sangatlah mudah dan dapat diselesaikan dalam 6 langkah. Klik installer Windows untuk memulai installasi. Pilih bahasa Anda. Klik forward pada layar selamat datang. Anda harus menerima perjanjian lisensi dan klik forward.
Pilihlah direktori installasi untuk installasi eGroupWare Anda, misalnya f:\webapp Setelah installasi selesai, Anda bisa membaca file Readme atau menyelesaikan proses installasi. 6.4.6
Menginstall dengan installer Bitrock pada Linux
Installer Bitrock dapat berjalan pada X-Windows atau dari perintah baris. 6.4.6.1 Menggunakan GUI untuk menginstall eGroupWare Bukalah sebuah jendela terminal pada window manager Anda untuk memulai installer. Pindahlah ke folder dimana Anda mendownload paket, lalu berikan hak execute pada paket dan jalankan proses installasi.
[user@server tmp]$ chmod 700 egroupware-x-linux-installer.bin [user@server tmp]$ ./egroupware-x-linux-installer.bin
25
Bagaimana Menginstall dan Mengamankan eGroupWare
Installasi dengan installer grafis sangatlah mudah dapat dapat diselesaikan dalam 7 langkah. Pilih bahasa. Klik forward pada layar selamat datang. Anda harus menyetujui perjanjian lisensi dan klik forward. Anda bisa merubah direktori installasi dari /var/www/html ke direktori lain
Setelah installasi selesai, Anda bisa melihat Readme atau menyelesaikan proses installasi. File Readme mencakup beberapa informasi penting dan sangat direkomendasikan untuk dibaca. 6.4.6.2 Menggunakan perintah baris untuk menginstall eGroupWare Proses installasi dari perintah baris hampir sama dengan GUI. Anda harus membuat paket dapat dieksekusi dan menjalankan paket biner. Anda melihat prompt yang sama dengan installer GUI.
---------------------------------------------------------------------------Welcome to the eGroupWare Setup Wizard ---------------------------------------------------------------------------Please read the following License Agreement. You must accept the terms of this agreement before continuing with the installation. Press [Enter] to continue : The eGroupWare software is distributed under the Terms of GPL and LGPL. It is free of Charge Redistribution is allowed. Do you accept this license? [Y/n]: n
26
Bagaimana Menginstall dan Mengamankan eGroupWare
6.4.7
Menginstall dari CVS
Untuk menginstall paket dari CVS, lakukan langkah berikut: Pindahlah ke dokumen root web server (atau dimanapun Anda hendak menginstall paket):
[root@server tmp]# cd /var/www/html [root@server html]# cvs –d:pserver:[email protected]: /cvsroot/egroupware login [root@server html]# cvs –z3 –d:pserver:[email protected]: /cvsroot/egroupware co egroupware (Perintah diatas harus diketik dalam satu baris)
[root@server html]# cd egroupware [root@server egroupware]# cvs co all [root@server egroupware]# cvs update –Pd Pengenalan yang cukup bagus mengenai penggunaan CVS pada Open Source Development dapat ditemukan pada buku Open Source Development with CVS4
4 http://cvsbook.red-bean.com/OSDevWithCVS_3E.pdf
27
Bagaimana Menginstall dan Mengamankan eGroupWare
7
Keamanan Dasar Server
7.1
Mempartisi filesystem
Installasi standar *nix seringkali hanya terdiri dari 2 partisi, /boot dan /.
Ini adalah resiko keamanan dan
ketersediaan pada server Anda. Terdapat beberapa exploit dan serangan berbeda yang tersedia dimana seorang hacker dapat, misalnya menggunakan sistem /tmp untuk mengkompilasi sebuah exploit atau menjalankan serangan symlink, atau seorang penyerang dapat mematikan server Anda dengan membanjiri hard disk dengan log atau email. Untuk menyiapkan diri dari serangan seperti ini, Anda harus memilih skema partisi yang memiliki lebih dari 2 partisi. Skema partisi yang bagus seharusnya dicontohkan pada file /etc/fstab file berikut : LABEL=/
/
ext3
defaults
11
LABEL=/boot
/boot
ext3
defaults
12
LABEL=/home
/home
ext3
defaults
12
LABEL=/opt
/opt
ext3
defaults
12
LABEL=/usr
/usr
ext3
defaults
12
LABEL=/var
/var
ext3
defaults
12
LABEL=/var/www/files
/var/www/files
ext3
defaults
12
LABEL=/var/log
/var/log
ext3
defaults
12
LABEL=/var/mail
/var/mail
ext3
defaults
12
LABEL=/tmp
/tmp
ext2
auto,noexec,nosuid,rw
/dev/hda11
swap
swap defaults
12
00
Jika Anda juga menyimpan pengguna “normal” pada server yang sama, gunakan opsi mount usrquota dan grpquota. Hal ini mencegah seorang user mengiri home direktori menacapai kapasitasnya.
7.2
Platform server
Terdapat banyak cara untuk mengamankan platform server Anda. Ukuran keamanan paling penting yang bisa Anda lakukan adalah memastikan installasi up-to-date. Pertimbangkanlah untuk bergabung dengan mailing list [email protected].
Ini adalah tempat kami mempublikasikan rilis baru juga
update keamanan untuk eGroupWare.
28
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.1
Menguji server Anda untuk layanan yang dijalankan dan port yang terbuka Port yang terbuka mengindikasikan bahwa server Anda menawarkan sebuah layanan untuk publik. Ini bisa berupa Fileserver, DNS Server, Telnet server, X server atau salah satu layanan lainnya. Semakin
banyak port yang terbuka akan menyediakan seorang penyerang dengan semakin banyak cara yang dapat dilakukan exploit untuk mendapatkan akses ke layanan yang berjalan untuk mendapatkan kontrol. Server Anda harus membuka port dan layanan yang diperlukan saja untuk menjalankan eGroupWare. Jika Anda membutuhkan port lain untuk terbuka yang tidak diperlukan oleh eGroupWare, maka Anda harus mengamankan installasi dengan sebuah firewall atau TCP wrapper. Jika dimungkinkan, hanya ijinkan layanan yang menggunakan Secure Socket Layer (SSL) pada server eGroupWare Anda. 7.2.1.1 Port yang diperlukan server eGroupWare Port yang diperlukan: Port Web server:
HTTP/80
Port Web server SSL:
HTTPS/443
Administrasi Remote, Secure Shell:
SSH/22
Jika Anda harus menjalankan sebuah E-Mail server pada mesin yang sama, maka Anda akan membutuhkan beberapa port lagi yang terbuka. Jika Anda bisa menjalankan E-Mail server pada mesin yang terpisah, maka lakukanlah. Anda juga membutuhkan port tambahan untuk E-Mail server: Email Server MTA:
SMTP/25
Email Server MTA:
SMTPS/465
Untuk mengambil E-Mail dari server Anda dengan sebuah program client (seperti eGroupWare client), Anda membutuhkan sebuah daemon POP3 atau IMAP yang membutuhkan paling tidak salah satu dari port berikut: IMAP server:
IMAP/143
IMAP server SSL:
IMAPS/993
POP-3:
POP-3/110
POP-3 melalui SSL:
POP-3/995
Jika Anda memblokir port dengan sebuah firewall, harap diingat bahwa Anda harus mengijinkan beberapa trafik keluar. Ini termasuk NTP, DNS lookups, dan sebagainya. Kesimpulan: Port terbuka yang dipelrukan minimal (non-SSL):
22, 80, 443
Port terbuka yang diperlukan maksimal (termasuk E-Mail server):
22, 25, 80, 110, 143, 443, 465,
993, 995 Rekomendasi minimal (hanya SSL, tanpa E-Mail server):
22, 443
Rekomendasi maksimal (hanya SSL, dengan E-Mail server):
22, 25, 443, 993, 995
29
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.1.2 Penindai Port (Portscanner) Terdapat beberapa peralatan yang tersedia yang mengijinkan Anda untuk menguji port terbuka pada komputer Anda. Salah satunya yang tersedia pada *NIX dan Windows adalah Nmap, yang dapat ditemukan pada : http://www.insecure.org/nmap. Install Nmap pada mesin Anda dan periksa port yang terbuka pada server Anda. 7.2.1.3 Output dari sebuah portscanner Berikut adalah contoh output dari hasil scan Nmap terhadap sebuah server . Nmap menunjukkan port yang terbuka pada server.
[root@server root]# nmap -sV serverAnda.com Starting nmap 3.45 ( http://www.insecure.org/nmap/ ) at 2003-09-17 00:48 CEST Interesting ports on xxx.xxx.xx.xxx: (The 1651 ports scanned but not shown below are in state: closed) PORT
STATE
SERVICE
VERSION
22/tcp open
ssh
OpenSSH 3.1p1 (protocol 2.0)
80/tcp open
http
Apache httpd 1.3.27 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6b PHP/4.1.2 mod_perl/1.26)
137/tcp filtered netbios-ns 138/tcp filtered netbios-dgm 139/tcp filtered netbios-ssn 443/tcp open
ssl
OpenSSL
Nmap run completed -- 1 IP address (1 host up) scanned in 23.000 seconds 7.2.1.4 Menonaktifkan layanan/server yang tidak diperlukan Jika Nmap menemukan layanan yang aktif pada server yang tidak Anda butuhkan, nonaktifkan. Setelah Anda restart, layanan seharusnya tidak berjalan lagi. Pada installasi Red Hat Anda bisa menggunakan perintah berikut untuk menghentikan dan menonaktifkan sebuah layanan:
[root@server home]# service nama_layanan stop [root@server home]# chkconfig –level 345 nama_layanan off Pada installasi berbasis Debian Anda bisa menggunakan peralatan berikut:
Server:~# /etc/init.d/ nama_layanan stop Server:~# rcconf
30
Bagaimana Menginstall dan Mengamankan eGroupWare
Pada installasi berbasis SuSE Anda bisa menggunakan perintah berikut:
Server:~# /etc/init.d/nama_layanan stop Server:~# chkconfig nama_layanan off 7.2.2
Menguninstall software yang tidak diperlukan pada server Anda
Sebagian distribusi sistem operasi secara default menginstall banyak software yang tidak dibutuhkan. Untuk alasan keamanan, Anda harus menghapus software ini dari server Anda. Software yang tidak diperlukan terkadang menyertakan sesuatu seperti ftp clients dan wget. Jika Anda tidak ingin mengkompilasi dari source, Anda juga harus menghapus gcc, file header, dan file source. Untuk melihat paket yang terinstall pada distribusi Linux berbasis RPM, lakukan:
[root@server home]# for i in `rpm –qa`; do rpm –qi $i >> rpm_packages; done [root@server home]# less rpm_packages Hapus semua paket yang tidak Anda butuhkan:
[root@server home]# rpm –e package Untuk melihat paket yang terinstall pada Linux berbasis Debian, Debian menawarkan banyak peralatan. Contoh:
Server:~# aptitude
31
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.3
Menguji rootkits pada server Anda
Untuk Linux/*nix terdapat dua produk open source di pasaran untuk mendeteksi rootkit. Sangat disarankan untuk menginstall sebuah penguji rootkit pada server Anda. Anda bisa memilih antara chkrootkit5 dan rootkit hunter6. 7.2.3.1 Pengujian lokal untuk keberadaan rootkit dengan chkrootkit Chkrootkit adalah sebuah alat untuk menguji keberadaan sebuah rootkit secara lokal. Chkrootkit sudah dicoba pada: Linux 2.0.x, 2.2.x dan 2.4.x, FreeBSD 2.2.x, 3.x, 4.x and 5.x, OpenBSD 2.x dan 3.x., NetBSD 1.5.2, Solaris 2.5.1, 2.6 dan 8.0, HP-UX 11, True64 dan BSDI. Paket ini berisi: •
chkrootkit: Sebuah shell script yang menguji binary sistem terhadap modifikasi rootkit. File berikut yang akan diuji: aliens asp bindshell lkm rexedcs sniffer wted w55808 scalper slapper z2 amd basename biff chfn chsh cron date du dirname echo egrep env find fingerd gpm grep hdparm su ifconfig inetd inetdconf init identd killall ldsopreload login ls lsof mail mingetty netstat named passwd pidof pop2 pop3 ps pstree rpcinfo rlogind rshd slogin sendmail sshd syslogd tar tcpd tcpdump top telnetd timed traceroute vdir w write
•
ifpromisc.c: menguji apakah interface jaringan berada dalam mode promiscuous.
•
chklastlog.c: menguji untuk penghapusan log terakhir.
•
chkwtmp.c: menguji untuk penghapusan wtmp.
•
check_wtmpx.c: menguji untuk penghapusan wtmpx. (hanya Solaris)
•
chkproc.c: menguji keberadaan trojan LKM.
•
chkdirs.c: menguji keberadaan LKM.
•
strings.c: pengubahan string yang cepat
Anda bisa mendownload chkrootkit sebuah paket RPM terkompile atau sebagai tar.gz dengan meng-klik slaah satu dari link berikut (tahan Ctrl ketika Anda meng-klik):
chkrootkit.tar.gz 7 chkrootkit RPM 8
5 http://www.chkrootkit.org 6 http://www.rootkit.nl 7 http://www.chkrootkit.org 8 http://www.expl0it.de/rpms/security/chkrootkit/
32
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.3.2 Contoh penggalan Chkrootkit Checking `timed'... not found Checking `traceroute'... not infected Checking `vdir'... not infected Checking `w'... not infected Checking `write'... not infected Checking `aliens'... no suspect files Searching for sniffer's logs, it may take a while... nothing found Searching for HiDrootkit's default dir... nothing found Searching for t0rn's default files and dirs... nothing found Searching for t0rn's v8 defaults... nothing found Searching for Lion Worm default files and dirs... nothing found Searching for RSHA's default files and dir... nothing found Searching for RH-Sharpe's default files... nothing found Searching for Ambient's rootkit (ark) default files and dirs... nothing found 7.2.3.3 Menginstall chkrootkit versi RPM chkrootkit Versi RPM seharusnya berjalan dengan semua distribusi berbasis RPM. Download dari alamat diatas dan install dengan perintah:
[root@server tmp]# rpm –ivh chkrootkit-x.xx-x.i386.rpm Setelah installasi, Anda bisa memodifikasi file chkrootkit_cronfile untuk menyesuaikan kebutuhan Anda. Langkah ini tidak penting, tetapi akan membuat laporan Anda menjadi lebih unik.
[root@server tmp]# vi /etc/cron.daily/chkrootkit_cronfile
#!/bin/sh cd /usr/bin ./chkrootkit 2> /dev/null | mail –s “chkrootkit output” root Rubah nilai berikut: “chkrootkit output” to “chkrootkit serverku output” root to [email protected]
33
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.3.4 Menginstall chkrootkit dari file tar.gz Uraikan dan install Chkrootkit
[root@server tmp]# cp chkrootkit.tar.gz /usr/local; rm chkrootkit.tar.gz [root@server tpm]# cd /usr/local/ [root@server local]# tar xzvf chkrootkit.tar.gz [root@server local]# mv chkrootkit-x.xx chkrootkit [root@server local]# chown –R root.root chkrootkit [root@server chkrootkit]# cd chkrootkit [root@server chkrootkit]# make sense Untuk membuat chkrootkit mengirimkan laporan, Anda mempunyai dua kemungkinan: membuat chkrootkit_cronfile atau tambahkan sebuah baris pada file crontab. Untuk membuat chkrootkit_cronfile:
[root@server cron.daily]# vi chkrootkit_cronfile
#!/bin/sh cd /usr/local/chkrootkit ./chkrootkit 2> /dev/null | mail –s “chkrootkit serverku output” alamat_email_Anda Alternatifnya, tambahkan file crontab dengan baris berikut:
0 1 * * * s
root
(cd /usr/local/chkrootkit; ./chkrootkit 2>&1 | mail –
"chkrootkit output" alamat_email_Anda)
Sekarang chkrootkit akan mengirimkan sebuah laporan pada email diatas.
34
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.4
Administrasi server yang aman
Jika Anda hendak mengadministrasi server Anda dengan aman, guanakn SSH (secure shell). Dengan SSH, semua koneksi akan dienkripsi, dimana protokol seperti telnet dan ftp, account dan password pengguna dikirimkan tanpa enkripsi (dalam format teks biasa). Transfer informasi account dan password dapat di-sniff oleh seorang penyerang jika berada dalam format teks biasa. Dengan password hasil sniffing, seorang hacker dapat login ke account Anda. Jika dimungkinkan, hanya gunakan koneksi SSHv2 dan jangan gunakan SSHv1. SSHv1 mempunyai sebuah cacat yang dapat mengijinkan informasi terenkripsi didekripsi oleh seorang penyerang. Juga, jangan gunakan account root untuk login ke server remote. Terhubunglah ke server remote dengan account normal dan gunakan su atau sudo untuk kegiatan administratif pada server. 7.2.4.1 Menghubungkan ke server Anda melalui session yang aman Jika server Anda mendukung koneksi SHH, maka akan sangat mudah untuk mengaturnya secara remote. Anda hanya perlu terhubung ke server dengan client SSH Anda.
Pada saat pertama kali Anda terhubung ke server dengan SSH, Anda akan mendapatkan pesan kesalahan seperti ini. Anda harus setuju dengan peringatan untuk melanjutkan koneksi ke server.
[user@client home]$ ssh serverAnda The authenticity of host serverAnda (100.178.76.207)' can't be established. RSA key fingerprint is 7e:8e:55:8b:49:57:5d:41:40:ab:93:64:18:af:60:ea. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'serverAnda’ (RSA) to the list of known hosts. Menghubungkan ke server untuk administrasi secara remote:
[user@client home]$ ssh serverAnda Menyalin file ke server Anda dengan secure copy (scp):
[user@client home]$ scp fileAnda.txt serverAnda:/home/ Anda juga bisa menggunakan sftp untuk bekerja dengan “secure ftp client”:
[user@client home]$ sftp serverAnda
Pada beberapa komputer, fungsi sftp dinonaktifkan secara default (misalnya pada beberapa versi Debian). Jika Anda hendak mengaktifkannya, Anda harus menambahkan baris berikut pada sshd_config server Anda.
35
Bagaimana Menginstall dan Mengamankan eGroupWare
Pada sistem Debian tambahkan baris berikut:
subsystem sftp /usr/lib/sftp-server Pada sistem RedHat tambahkan baris berikut:
subsystem sftp /usr/libexec/openssh/sftp-server 7.2.4.2 Bekerja dengan pasangan kunci SSH Menggunakan pasangan kunci SSH mempunyai dua keuntungan. Pertama Anda tidak harus menuliskan password setiap kali Anda terhubung ke server, dan kedua lebih aman. Ketika Anda menggunakan pasangan kunci, Anda bisa mengijinkan penggunaan authentikasi dengan password yang berbeda dari account Anda pada server. Anda membutuhkan pasangan kunci yang terpisah untuk setiap user yang ingin Anda gunakan untuk terhubung ke server. 7.2.4.2.1 Menciptakan pasangan kunci secure shell Anda harus menciptakan pasangan kunci ssh pada sisi client seperti berikut:
[user@client home]$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /user/.ssh/id_dsa. Your public key has been saved in /user/.ssh/id_dsa.pub. The key fingerprint is: f0:00:f7:95:e9:73:37:11:aa:e8:06:3e:60:9e:0d:25 user@yourserver 7.2.4.2.2 Menyalin kunci publik ke server Anda harus menyalin kunci public Anda (*.pub) dari client lokal ke server:
[user@client home]$ scp .ssh/id_dsa.pub useratserver@serverAnda:/home/usernameAnda/ Install kunci publik pada server Anda:
[user@client home]$ ssh serverAnda [user@server home]$ cat id_dsa.pub >> .ssh/authorized_keys [user@client home]$ chmod 600 .ssh/authoritzed_keys Sekarang, jika Anda terkoneksi ke server, server akan menanyakan password yang Anda gunakan ketika menciptakan pasangan kunci SSH. Jika Anda tidak ingin menuliskan setiap kali Anda terhubung ke server, Anda bisa menggunakan ssh-add.
36
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.4.2.3
Peralatan ssh-add
Jika Anda terhubung ke server Anda (atau server yang berbeda) dengan sering, Anda bisa menggunakan ssh-add untuk menyimpan password dari kunci ssh Anda. Maka Anda cukup mengetikkan passwordnya sekali dan akan disimpan secara permanen:
[user@client home]$ ssh-add Enter passphrase for /home/userAnda/.ssh/id.dsa: Identify added: /home/userAnda/.ssh/id.dsa (/home/userAnda/.ssh/id.dsa) 7.2.4.2.4
Mengamankan SSH client Anda
Terdapat satu baris penting pada file konfigurasi dari SSH client. Pastikan baris ini ada pada file ssh_config Anda:
Protocol 2 Ini akan mengijinkan koneksi yang menggunakan protokol SSH versi 2 saja. 7.2.4.2.5
Mengamankan SSHD Anda
Untuk daemon SSH Anda bisa menggunakan nilai berikut untuk menjadikannya lebih aman:
Protocol 2 PermitRootLogin no PubKeyAuthentication yes PasswordAuthentication no PermitEmptyPassword no 7.2.5
Menginstall software untuk memonitor log server Anda
Menganalisa file log adalah keharusan untuk setiap administrator. Ketika Anda tidak memonitor file log Anda tidak mempunyai kesempatan melihat masalah keamanan atau kejanggalan. Terdapat beberapa produk di pasaran yang dapat membantu Anda menganalisa file log Anda:
logcheck 9 logwatch 10 logsurfer 11 Logcheck sangatlah direkomendasikan. Logcheck bekerja pada Linux, BSD, Sun, dan HP-UX. Ia sangat mudah untuk diinstall dan menghasilkan laporan yang bersih. Untuk menginstall logcheck ketikkan perintah berikut dari direktori logcheck setelah Anda menguraikan file: 9 http://sourceforge.net/project/showfiles.php?group_id=80573&release_id=161261 10 http://www2.logwatch.org:81/tabs/download/ 11 http://www.cert.dfn.de/eng/logsurf/
37
Bagaimana Menginstall dan Mengamankan eGroupWare
[root@server logcheck-1.1.1]# make linux Untuk menjalankannya secara otomatis, Anda harus menambahkan sebuah baris pada file crontab Anda. Pada RedHat, file ini adalah /etc/crontab. Buka file (Anda mungkin harus membukanya dengan mengetikkan “crontab –e”) dan tambahkan baris berikut::
00 * * * * root /bin/sh /usr/local/etc/logcheck.sh
Edit script shell logcheck untuk menambahkan penerima dari laporan log. Penerima adalah nilai dari variabel SYSADMIN pada script.
[root@egroupware logcheck-1.1.1]# vi /usr/local/etc/logcheck.sh Untuk menerima laporan yang lebih detail, pengguna yang mahir dapat mengedit file berikut:
logcheck.violations logcheck.violations.ignore logcheck.hacking logcheck.ignore 7.2.6
Intrusion detection environment
Install sebuah intrusion detection environment untuk mempertahankan integritas file sistem dan mendeteksi perubahan pada server Anda. Terdapat beberapa solusi pada sistem berbasis *nix. Osiris bekerja pada *nix dan Windows. AIDE 12 Osiris13 Tripwire 14 Samhain 15 Dari software diatas, AIDE adalah yang paling mudah untuk disetup. 7.2.6.1 Menginstall AIDE Sebagian besar distribusi menyertakan AIDE dan Anda bisa menginstallnya dengan peralatan standar seperti RPM atau apt-get. AIDE bergantung pada paket mhash, yang harus Anda install juga. Ketika tidak ada paket yang tersedia untuk platform Anda, Anda harus mengkompilasinya dengan
./configure make 12 http://sourceforge.net/projects/aide/ 13 http://osiris.shmoo.com 14 http://www.tripwire.org/
38
Bagaimana Menginstall dan Mengamankan eGroupWare
make install
7.2.6.2 File konfigurasi AIDE aide.conf Anda harus mengkonfigurasi file aide.conf sehingga semua file penting pada server Anda akan diuji dan mengurangi peringatan palsu. Simpan /etc/aide.conf, /usr/sbin/aide dan /var/lib/aide/aide.db.gz pada lokasi yang aman, misalnya pada media read-only terpisah (seperti CD-ROM). Alternatifnya, simpan fingerprint MD5 atau tanda GPG pada file tersebut pada lokasi yang aman, sehingga Anda mempunyai jaminan bahwa tidak seorangpun telah memodifikasi file tersebut.
# Contoh file konfigurasi untuk AIDE. @@define DBDIR /var/lib/aide # Lokasi database yang akan dibaca. database=file:/mnt/floppy/aide.db.gz # Lokasi database yang akan ditulis. database_out=file:@@{DBDIR}/aide.db.new.gz # Apakah akan meng-gzip output ke database gzip_dbout=yes # Default. verbose=5 report_url=file:/var/log/aide.log report_url=stdout # Aturan default. # #p:
permissions
#i:
inode:
#n:
number of links
#u:
user
#g:
group
#s:
size
#b:
block count
#m:
mtime
#a:
atime
#c:
ctime
15 http://www.samhain-labs.org/
39
Bagaimana Menginstall dan Mengamankan eGroupWare
#S:
check for growing size
#md5:
md5 checksum
#sha1:
sha1 checksum
#rmd160: rmd160 checksum #tiger:
tiger checksum
#haval:
haval checksum
#gost:
gost checksum
#crc32:
crc32 checksum
#R:
p+i+n+u+g+s+m+c+md5
#L:
p+i+n+u+g
#E:
Empty group
#>:
Growing logfile p+u+g+i+n+S
# Anda bisa menciptakan aturan seperti ini. NORMAL = R+b+sha1 DIR = p+i+n+u+g # Berikutnya tentukan direktori/file yang Anda inginkan pada database. /boot
NORMAL
/bin
NORMAL
/sbin
NORMAL
/lib
NORMAL
/opt
NORMAL
/usr
NORMAL
/root
NORMAL
# Hanya periksa hak akses, inode, user dan group untuk /etc, tetapi # sertakan beberapa file penting. /etc
p+i+u+g
!/etc/mtab /etc/exports
NORMAL
/etc/fstab
NORMAL
/etc/passwd
NORMAL
/etc/group
NORMAL
/etc/gshadow
NORMAL
/etc/shadow
NORMAL
Jalankan "aide --init" untuk membangun database.
[root@server root]# /mnt/floppy/aide –init Salin /var/lib/aide/aide.db.new.gz ke lokasi aman
[root@server root]# cp /var/lib/aide/aide.db.new.gz /mnt/floppy/var/lib/aide/aide.db.gz
40
Bagaimana Menginstall dan Mengamankan eGroupWare
Uji sistem Anda untuk ketidakkonsistenan dengan database AIDE. Sebelum menjalankan pengujian manual, pastikan binary AIDE dan database belum dimodifikasi tanpa sepengetahuan Anda.
[root@server root]# /mnt/floppy/aide --check 7.2.6.3 Menciptakan sebuah file cronjob untuk menjalankan AIDE secara otomatis File ini disertakan pada paket AIDE Debian, sehingga jika Anda menginstall AIDE dari paket deb Anda tidak perlu membuat file ini lagi. File yang ditampilkan dibawah adalah sebuah contoh file yang telah dimodifikasi untuk RedHat / Fedora Linux. Ketika Anda hendak membuat sebuah file cron untuk distribusi lainnya, Anda mungkin harus merubah path.
#!/bin/sh PATH="/bin:/usr/sbin:/usr/bin" LOGFILE="/var/log/aide.log" CONFFILE="/etc/aide.conf" ERRORLOG="/var/log/error.log" [ -f /usr/sbin/aide ] || exit 0 MAILTO=”usernameAnda” DATABASE=`grep "^database=file:/" $CONFFILE | head -1 | cut -d: -f2` LINES=”1000” FQDN=`hostname -f` DATE=`date +"at %X on %x"` [ -z "$MAILTO" ] && MAILTO="root" if [ ! -f $DATABASE ]; then ( echo "Fatal error: The AIDE database does not exist!" echo "This may mean you haven't created it, or it may mean that someone has removed it." ) | /bin/mail -s "Daily AIDE report for $FQDN" $MAILTO exit 0 fi aide --check >$LOGFILE 2>$ERRORLOG (cat << EOF; This is an automated report generated by the Advanced Intrusion Detection Environment on $FQDN ${DATE}. EOF if [ -s $LOGFILE ]; then 41
Bagaimana Menginstall dan Mengamankan eGroupWare
loglines=`wc -l $LOGFILE | awk '{ print $1 }'` if [ ${loglines:=0} -gt $LINES ]; then echo echo "TRUNCATED (!) output of the daily AIDE run:" echo
"Output
is
$loglines
lines,
truncated
to
$LINES." head -$LINES $LOGFILE echo "The full output can be found in $LOGFILE." else echo "Output of the daily AIDE run:" cat $LOGFILE fi else echo "AIDE detected no changes." fi if [ -s $ERRORLOG ]; then errorlines=`wc -l $ERRORLOG | awk '{ print $1 }'` if [ ${errorlines:=0} -gt $LINES ]; then echo "TRUNCATED (!) output of errors produced:" echo "Error output is $errorlines lines, truncated to $LINES." head -$LINES $ERRORLOG echo "The full output can be found in $ERRORLOG." else echo "Errors produced:" cat $ERRORLOG fi else echo "AIDE produced no errors." fi ) | /bin/mail -s "Daily AIDE report for $FQDN" $MAILTO Tidak direkomendasikan untuk menjalankan pengujian AIDE tanpa memverifikasi AIDE secara berkala. Sebagai tambahan, AIDE tidak mengimplementasikan proteksi password atau enkripsi untuk filenya sendiri.
42
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.6.4 Contoh laporan AIDE Laporan yang dihasilkan AIDE menunjukkan kepada Anda semua perubahan pada file sistem Anda. Silahkan membandingkan dengan perubahan yang telah Anda lakukan (menginstall sebuah update atau merubah konfigurasi server Anda).
This is an automated report generated by the Advanced Intrusion Detection Environment on egroupware at 05:27:16 PM on 02/14/2004. Output of the daily AIDE run: AIDE found differences between database and filesystem!! Start timestamp: 2004-02-14 17:27:16 Summary: Total number of files=34691,added files=2,removed files=0,changed files=5 Added files: added:/etc/cron.daily/aide added:/var/log/error.log Changed files: changed:/etc/aide.conf changed:/root changed:/root/.viminfo changed:/root/.bash_history changed:/root/chkrootkit-0.44-1.i386.rpm Detailed information about changes: File: /etc/aide.conf Inode
: 89090
, 89173
Directory: /root Mtime
: 2004-02-14 16:35:58
, 2004-02-14 17:27:12
Ctime
: 2004-02-14 16:35:58
, 2004-02-14 17:27:12
File: /root/.viminfo Size
: 6683
, 6513
Mtime
: 2004-02-14 16:35:58
, 2004-02-14 17:27:12
Ctime
: 2004-02-14 16:35:58
, 2004-02-14 17:27:12
Inode
: 111362
, 111363
MD5
: UM0erzXMWPEdiCgKV/t91g==
, l9E0UBQu7PKTCJiS3b2Fzw==
SHA1
: jNlzWrSY/Q4zk3Rd7dnpyth2a0Y=
, R1wFnTg2scWSaRnn47zcZ+syS3E=
File: /root/.bash_history Size Mtime
: 14824 : 2004-02-14 16:16:30
, 14872 , 2004-02-14 16:48:32
43
Bagaimana Menginstall dan Mengamankan eGroupWare
Ctime
: 2004-02-14 16:16:30
, 2004-02-14 16:48:32
MD5
: zlVCx+39n8XLd3/ip757vA==
, nCs18yzJdwDD/BfsUssuhQ==
SHA1
: Al8brD3i+B6P2RMxpn6IaC+I5fE=
, bWBEjLA0Hnt6XXTszkzKi8gaTZQ=
File: /root/chkrootkit-0.43-1.i386.rpm Permissions: -rw-r--r--
, -rw-r-----
Ctime
, 2004-02-14 16:51:06
: 2004-01-26 13:43:35 AIDE produced no errors.
7.2.6.5 Menciptakan database baru setelah perubahan Setelah laporan Anda diverifikasi Anda harus membuat database baru dan menyimpan database pada lokasi yang aman. Jalankan update dari database setelah semua laporan telah diverifikasi!
[root@server root]# /mnt/floppy/aide --init [root@server root]# cp /var/lib/aide/aide.db.new.gz /mnt/floppy/var/lib/aide/aide.db.gz 7.2.7
Keamanan Daemon
Jalankan daemon yang diperlukan pada lingkungan chroot pada *nix. Gunakan TCP Wrapper atau xinetd untuk mengamankan daemon Anda. 7.2.8
Firewall
Aktifkan firewall pada server eGroupWare untuk memproteksi komputer Anda. Beberapa port harus dibuka tetapi dengan sebuah firewall (misalnya IPTABLES), Anda bisa memproteksi sistem Anda terhadap spoofing, ping flooding, dan penyerangan lainnya. 7.2.8.1 Merencanakan firewall Hal pertama yang harus Anda lakukan adalah menentukan layanan yang Anda butuhkan. Port yang digunakanoleh layanan ini harus dibuka pada script firewall Anda. Ciptakan sebuah tabel sederhana yang Anda isi dengan layanan yang harus berjalan. Kami melakukannya untuk installasi eGroupWare Protokol
Port
Deskripsi
HTTP
80
Protokol ini kita perlukan untuk terhubung ke eGW
HTTPS
443
Sama seperti diatas
SMTP
25
Menjalankan Mail server internal dan mengirimkan mail
SMTPS
465
Sama seperti diatas
IMAP
143
Kami hanya mengijinkan koneksi ke IMAP eksternal
IMAPS
993
Masuk
Keluar
Kami hanya mengijinkan koneksi ke IMAPS eksternal
44
Bagaimana Menginstall dan Mengamankan eGroupWare
Kami hanya mengijinkan koneksi ke POP3 eksternal
POP3
995
DNS
53
Kami hanya mengijinkan koneksi ke POP3S eksternal
SSH
22
Kami harus memiliki akses konsol
NTP
37
Network Time Protocoll, untuk waktu server
CVS
2401
Kami ingin mengupdate eGW dengan CVS
RedHat Network
443
Kami menggunakan RedHat Network
7.2.8.2 Bagaimana menciptakan aturan firewall Terdapat banyak kemungkinan untuk menciptakan sebuah set aturan untuk firewall berbasis IPTABLES Anda. Banyak orang menggunakan editor sederhana untuk membuat aturan firewall atau menuliskan langsung pada perintah baris. Saya menggunakan VIM untuk menuliskan aturan firewall; orang lain menggunakan ed, mc, joe, atau emacs. Yang ditampilkan disini adalah dua solusi lain yang dapat digunakan untuk menciptakan set aturan firewall. Banyak lagi yang tersedia dan dapat ditemukan dengan mencari di Internet. Salah satu metode untuk menciptakan set aturan firewall berbasis iptables adalah dengan shorewall 16. Firewall Shoreline, atau yang lebih dikenal "Shorewall", adalah sebuah peralatan tingkat tinggi untuk mengkonfigurasi Netfilter. Anda menggambarkan kebutuhan firewall/gateway menggunakan masukan dalam sebuah file konfigurasi. Shorewall membaca file konfigurasi tersebut dan dengan bantuan utilitas iptables Shorewall mengkonfigurasi Netfilter untuk menyesuaikan kebutuhan Anda. Ketika Anda memilih menggunakan peralatan berbasis grafis untuk menulis aturan Anda, maka Anda bisa menggunakan firewall builder 17. Firewall Builder adalah peralatan konfigurasi dan manajemen firewall yang bersifat multi-platform. Alat ini terdiri dari GUI dan kumpulan kompiler aturan untuk platform firewall yang berbeda-beda. Firewall Builder menggunakan pendekatan berbasis objek, yang membantu administrator mengelola sebuah database dari objek jaringan dan mengijinkan pengeditan aturan menggunakan operasi drag-dan-drop.
16 http://www.shorewall.net/ 17 http://www.fwbuilder.org/
45
Bagaimana Menginstall dan Mengamankan eGroupWare
7.2.8.3 Contoh script firewall Berbasis pada informasi yang kita buat pada bagian 7.2.8.1, sebuah script firewall yang berfungsi pada server RedHat/Fedora tampak seperti berikut. Anda harus menentukan nilai untuk IP_ADDRESS_ANDA pada script! Jangan lupa atau Anda akan terblokir!
#!/bin/sh IPTABLES="/sbin/iptables" MODPROBE="/sbin/modprobe" NETWORK_DEVICE="eth0" OWN_IP_ADDR="SET_IP_ADDRESS_Anda_DISINI" LOOPBACK="lo" THE_SOURCEFORGE_CVS_SERVER_IP_ADDRESS="66.35.250.207" IMAP_SERVER_ADDRESS_EXTERN="x.x.x.x" POP_SERVER_ADDRESS="x.x.x.x" NTP_SERVER_1_ADDRESS=`cat /etc/ntp.conf | grep ^server | cut -d " " -f 2 | head -n 1` NTP_SERVER_2_ADDRESS=`cat /etc/ntp.conf | grep ^server | cut -d " " -f 2 | tail -n 1` REDHAT_NETWORK_IP_ADDRESS="209.132.177.100" PRIVAT_PORTS="1:1023" NON_PRIVAT_PORTS="1024:65535" $MODPROBE ip_tables # Ignore ping to broadcast address 46
Bagaimana Menginstall dan Mengamankan eGroupWare
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts # Deactivate source routing for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do echo 0 > $i done # Enable TCP-SYN cookies echo 1 > /proc/sys/net/ipv4/tcp_syncookies # Drop ICMP-redirect for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do echo 0 > $i done # Don't send ICMP-redirects for i in /proc/sys/net/ipv4/conf/*/send_redirects; do echo 0 > $i done # Log packages with not possible addresses for i in /proc/sys/net/ipv4/conf/*/log_martians; do echo 1 > $i done # Ignore packages when response should send over other interface for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $i done # Delete all existing chains $IPTABLES --flush $IPTABLES -t nat --flush $IPTABLES -t mangle --flush # Loopback Device $IPTABLES -A INPUT -i $LOOPBACK -j ACCEPT $IPTABLES -A OUTPUT -o $LOOPBACK -j ACCEPT # As standard policy, we drop all packages $IPTABLES --policy INPUT DROP $IPTABLES --policy OUTPUT DROP $IPTABLES --policy FORWARD DROP # Delete User Chains 47
Bagaimana Menginstall dan Mengamankan eGroupWare
$IPTABLES --delete-chain $IPTABLES -t nat --delete-chain $IPTABLES -t mangle --delete-chain # accept packets that belong to sessions that have previously been proven ok: $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -m state --state INVALID -j LOG --log-prefix "INVALID input: " $IPTABLES -A INPUT -m state --state INVALID -j DROP $IPTABLES -A OUTPUT -m state --state INVALID -j LOG --log-prefix "INVALID output: " $IPTABLES -A OUTPUT -m state --state INVALID -j DROP # SCAN PROTECTION for the server # ALL BITS DELETED $IPTABLES -A INPUT -p TCP --tcp-flags ALL NONE -j DROP # SYN and FIN set together $IPTABLES -A INPUT -p TCP --tcp-flags SYN,FIN SYN,FIN -j DROP # SYN and RST set together $IPTABLES -A INPUT -p TCP --tcp-flags SYN,RST SYN,RST -j DROP # FIN and RST set together $IPTABLES -A INPUT -p TCP --tcp-flags FIN,RST FIN,RST -j DROP # FIN and no needed ACK $IPTABLES -A INPUT -p TCP --tcp-flags ACK,FIN FIN -j DROP # PSH and no needed ACK $IPTABLES -A INPUT -p TCP --tcp-flags ACK,PSH PSH -j DROP # URG and no needed ACK $IPTABLES -A INPUT -p TCP --tcp-flags ACK,URG URG -j DROP # ICMP Controll and Status Messages # Log and Drop icmp fragmentet packages $IPTABLES -A INPUT -i $NETWORK_DEVICE --fragment \ 48
Bagaimana Menginstall dan Mengamankan eGroupWare
-p icmp -m limit --limit 2/s $IPTABLES -A INPUT --fragment -p icmp -j DROP $IPTABLES -A INPUT -i $NETWORK_DEVICE -p icmp --icmp-type \ source-quench -d $OWN_IP_ADDR -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p icmp \ -s $OWN_IP_ADDR --icmp-type source-quench -j ACCEPT $IPTABLES -A INPUT -i $NETWORK_DEVICE -p icmp --icmp-type \ parameter-problem -d $OWN_IP_ADDR -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p icmp -s $OWN_IP_ADDR \ --icmp-type parameter-problem -j ACCEPT $IPTABLES -A INPUT -i $NETWORK_DEVICE -p icmp --icmp-type \ destination-unreachable -d $OWN_IP_ADDR -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p icmp -s $OWN_IP_ADDR \ --icmp-type destination-unreachable -j DROP
$IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p icmp -s $OWN_IP_ADDR \ --icmp-type fragmentation-needed -j ACCEPT # Allow traceroute to our server $IPTABLES -A INPUT -i $NETWORK_DEVICE -p icmp \ --icmp-type time-exceeded -d $OWN_IP_ADDR -j ACCEPT # Allow ping to our server $IPTABLES -A INPUT -i $NETWORK_DEVICE -p icmp \ --icmp-type echo-request -d $OWN_IP_ADDR \ -m limit --limit 1/s -j ACCEPT # Allow ping from our server to a other destination $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p icmp \ -s $OWN_IP_ADDR --icmp-type echo-request -j ACCEPT # HTTP server $IPTABLES -A INPUT -i $NETWORK_DEVICE
-p TCP \
--dport http --sport $NON_PRIVAT_PORTS \ -m state --state NEW -j ACCEPT
49
Bagaimana Menginstall dan Mengamankan eGroupWare
$IPTABLES -A INPUT -i $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS --dport https \ -m state --state NEW -j ACCEPT # We need outgooing http for news feeds and comics $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS --dport http \ -m state --state NEW -j ACCEPT # SMTP Server $IPTABLES -A INPUT -i $NETWORK_DEVICE
-p TCP \
--dport smtp -m state --state NEW -j ACCEPT $IPTABLES -A INPUT -i $NETWORK_DEVICE -p TCP \ --dport smtps -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p TCP --dport smtp \ -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p TCP --dport smtps \ -m state --state NEW -j ACCEPT
# IMAP Server $IPTABLES -A INPUT -i $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS --dport imap \ -m state --state NEW -j ACCEPT $IPTABLES -A INPUT -i $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS --dport imaps \ -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS -d $IMAP_SERVER_ADDRESS_EXTERN --dport \ imap -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS \ -d $IMAP_SERVER_ADDRESS_EXTERN \ --dport imaps -m state --state NEW -j ACCEPT # POP Server $IPTABLES -A INPUT -i $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS --dport pop3 \ -m state --state NEW -j ACCEPT 50
Bagaimana Menginstall dan Mengamankan eGroupWare
$IPTABLES -A INPUT -i $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS --dport pop3s \ -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS \ -d $POP_SERVER_ADDRESS --dport pop3 \ -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS \ -d $POP_SERVER_ADDRESS --dport pop3s \ -m state --state NEW -j ACCEPT # DNS Server $IPTABLES -A INPUT -i $NETWORK_DEVICE -p TCP \ --dport domain -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p UDP \ --dport domain -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p TCP \ --sport $NON_PRIVAT_PORTS --dport domain \ -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p UDP \ --sport $NON_PRIVAT_PORTS --dport domain \ -m state --state NEW -j ACCEPT # NTP Server for NTP_SERVER in $NTP_SERVER_1_ADDRESS $NTP_SERVER_2_ADDRESS ; do $IPTABLES -A OUTPUT -o $NETWORK_DEVICE -p UDP \ -d $NTP_SERVER --dport timeserver \ -m state --state NEW -j ACCEPT done # SSH Server $IPTABLES -A INPUT -i $NETWORK_DEVICE -p TCP \ --dport ssh -m state --state NEW -j ACCEPT # RedHat Network $IPTABLES -A OUTPUT -o $NETWORK_DEVICE \ -p TCP --sport $NON_PRIVAT_PORTS \ -d $REDHAT_NETWORK_IP_ADDRESS --dport https \ 51
Bagaimana Menginstall dan Mengamankan eGroupWare
-m state --state NEW -j ACCEPT # CVS Server $IPTABLES -A OUTPUT -o $NETWORK_DEVICE \ -p TCP --sport $NON_PRIVAT_PORTS –d\ $THE_SOURCEFORGE_CVS_SERVER_IP_ADDRESS \ --dport cvspserver -m state --state NEW -j ACCEPT # Log all other INPUT traffic $IPTABLES -A INPUT -i $NETWORK_DEVICE \ -m limit --limit 2/s -j LOG --log-level info # Log all other OUTPUT traffic $IPTABLES -A OUTPUT -o $NETWORK_DEVICE \ -m limit --limit 2/s -j LOG --log-level info 7.2.8.4 Menginstall script firewall Ketika Anda telah menulis script firewall Anda, Anda harus menguploadnya ke server (menggunakan scp atau sftp, sebagai contoh). Salin script firewall (pada RedHat) ke folder berikut dan tentukan hak akses.
[root@server tmp]# cp egroupware_iptables.sh /etc/sysconfig/ [root@server tmp]# chown root.root /etc/syconfig/egroupware_iptables.sh [root@server tmp]# chmod 500 /etc/syconfig/egroupware_iptables.sh Sekarang Anda bisa memulai script IPTABLES Anda. Periksa apakah aturan telah diload dan ujilah.
[root@server tmp]# /etc/syconfig/egroupware_iptables.sh [root@server tmp]# iptables –L Chain INPUT (policy DROP) target
prot opt source
destination
ACCEPT
all -- anywhere
anywhere
ACCEPT
all -- anywhere
anywhere
state RELATED,ESTABLISHED
DROP
all -- anywhere
anywhere
state INVALID
DROP
tcp -- anywhere
anywhere
tcp flags:FIN,SYN,RS T,PSH,ACK,URG/NONE
DROP
tcp -- anywhere
anywhere
tcp flags:FIN,SYN/FI N,SYN
DROP
tcp -- anywhere
anywhere
tcp flags:SYN,RST/SY N,RST
<<<--- SNIP ----- SNIP --->>> ACCEPT
tcp -- anywhere
anywhere
tcp spts:1024:65535 dpt:http state NEW
52
Bagaimana Menginstall dan Mengamankan eGroupWare
ACCEPT
tcp -- anywhere
anywhere
tcp spts:1024:65535 dpt:https state NEW
ACCEPT
tcp -- anywhere
anywhere
tcp dpt:ssh state NE W
Ketika script telah bekerja, Anda bisa menyimpan aturan firewall yang telah diload dengan perintah berikut:
[root@server tmp]# iptables save 7.2.8.5 Aalisa file log firewall Sangatlah mudah untuk mengaktifkan pencatatan (logging) pada sebuah firewall ketika Anda tidak menggunakan sebuah peralatan untuk menganalisa log firewall. Namun, tidak mungkin menerima alarm atau peringatan dari firewall “in time” ketika Anda mengaudit file secara manual. Satu peralatan yang secara otomatis menganalisa log firewall Anda adalah fwlogwatch
18.
Fwlogwatch
adalah sebuah peralatan open source sebagai penganalisa log firewall/IDS dan pendeteksi penyerangan yang interaktif.
7.3
Keamanan Aplikasi Web
Dengan software keamanan aplikasi web Anda bisa mengamankan aplikasi berbasis web seperti eGroupWare dari SQL injection, Cross Side Scripting dan serangan lainnya. Terdapat beberapa aplikasi di pasar untuk web server Apache dan IIS. Dua peralatan yang bersifat open source adalah : ModSecurity 19(untuk Apache Web server 1.3x dan 2.x) IISShield 20(untuk Internet Information Server) ModSecurity adalah sebuah aplikasi open source untuk pendeteksian penyusupan dan mesin pencegahan untuk aplikasi web (intrusion detection and prevention engine). Dia beroperasi secara embedded dalam web server, berfungsi sebagai payung yang handal – melindungi aplikasi dari serangan. ModSecurity mendukung Apache 1.3x dan Apache 2.x. 18 http://fwlogwatch.inside-security.de/ 19 http://www.modsecurity.org/ 20 http://www.kodeit.org/products/iisshield/default.html
53
Bagaimana Menginstall dan Mengamankan eGroupWare
7.3.1
Menginstall ModSecurity
Uraikan arsip source mod_security:
[root@server tmp]# tar xzvf mod_security-x.x.x.tar.gz Pindah ke direktori mod_security:
[root@server tmp]# cd mod_security-x.x.x/apache2 Anda bisa mengkompilasi modul sebagai modul Apache DSO (Dynamic Shared Object) atau statis pada web server. Jika Anda mengkompilasi secara statis, Anda juga harus mengkompilasi ulang Apache. Hal ini mungkin akan meningkatkan performa namun tidak signifikan. Contoh berikut ini menunjukkan bagaimana mengkompilasi ModSecurity sebagai modul DSO:
[root@server apache2]# apxs -cia mod_security.c Pada Redhat, tambahkan baris berikut pada file httpd.conf Anda dibawah bagian dimana modul diload:
[root@server mod_security-1.7.4]# vi /etc/httpd/conf/httpd.conf Include /etc/httpd/conf.d/mod_security.conf Anda harus merestart Apache web server untuk mengaktifkan ModSecurity:
[root@server mod_security-1.7.4]# apachectl stop [root@server mod_security-1.7.4]# apachectl start 7.3.2
Setup Dasar
ModSecurity menyertakan beberapa contoh file setup untuk membantu Anda dengan konfigurasinya. Anda bisa mengkonversi aturan pada Snort untuk digunakan pada ModSecurity. Contoh aturan Snort dapat ditemukan pada server proyek atau Anda bisa mengkonversinya sendiri. .
# Turn the filtering engine On or Off SecFilterEngine On # Make sure that URL encoding is valid SecFilterCheckURLEncoding On # The audit engine works independently and # can be turned On of Off on the per-server or # on the per-directory basis.
"On" will log everything,
# "DynamicOrRelevant" will log dynamic requests or violations, # and "RelevantOnly" will only log policy violations SecAuditEngine RelevantOnly # The name of the audit log file 54
Bagaimana Menginstall dan Mengamankan eGroupWare
SecAuditLog logs/audit_log SecFilterDebugLog logs/modsec_debug_log SecFilterDebugLevel 0 # Should mod_security inspect POST payloads SecFilterScanPOST On # Action to take by default SecFilterDefaultAction "deny,log,status:500" # Prevent path traversal (..) attacks SecFilter "\.\./" # Weaker XSS protection but allows common HTML tags SecFilter "<[[:space:]]*script" # Very crude filters to prevent SQL injection attacks SecFilter "delete[[:space:]]+from" SecFilter "insert[[:space:]]+into" SecFilter "select.+from" # Require HTTP_USER_AGENT and HTTP_HOST headers SecFilterSelective "HTTP_USER_AGENT|HTTP_HOST" "^$"
Berhati-hatilah! Konfigurasi ModSecurity bergantung pada modul lain yang Anda gunakan. Anda harus men-tune-up konfigurasi Anda ketika Anda menerima kesalahan. Hanya gunakan filter yang diperlukan untuk web server Anda. Sebagai contoh, jika Anda menjalankan server berbasis Linux, Anda tidak perlu menguji atau menggunakan aturan untuk Windows. 7.3.3
Menguji ModSecurity
Anda bisa menjalankan pengujian singkat dari fungsionalitas ModSecurity. Pindahlah ke direktori ModSecurity dan jalan kan beberapa contoh pengujian:
[root@server tests]# ./run-test.pl AlamatIPAnda 09-directory-traversal-in-parameters.test 11-xss-attack.test 13-sql-injection.test Test "09 Directory traversal in parameters": Failed (status = 406) Test "11 XSS attack": Failed (status = 406) Test "13 SQL injection": Failed (status = 406)
55
Bagaimana Menginstall dan Mengamankan eGroupWare
7.3.4
Contoh log ModSecurity
Ini adalah contoh log dari pengujian diatas: Request: xxx.xxx.xxx.xxx - - [[21/Feb/2004:20:40:29 +0100]] "GET /cgi-bin/modsec-test.pl?p=../../tmp/file.txt HTTP/1.0" 406 352 Handler: cgi-script ---------------------------------------GET /cgi-bin/modsec-test.pl?p=../../tmp/file.txt HTTP/1.0 Host: xxx.xxx.xxx.xxx :80 User-Agent: mod_security regression test utility Connection: Close mod_security-message: Access denied with code 406. Pattern match "\.\./" at THE_REQUEST. mod_security-action: 406 HTTP/1.0 406 Not Acceptable Content-Length: 352 Connection: close Content-Type: text/html; charset=iso-8859-1 ======================================== Request: xxx.xxx.xxx.xxx - - [[21/Feb/2004:20:40:29 +0100]] "GET /cgi-bin/modsec-test.pl?p=<script>alert('Bang!') HTTP/1.0" 406 352 Handler: cgi-script ---------------------------------------GET /cgi-bin/modsec-test.pl?p=<script>alert('Bang!') HTTP/1.0 Host: xxx.xxx.xxx.xxx:80 User-Agent: mod_security regression test utility Connection: Close mod_security-message: Access denied with code 406. Pattern match "<( |\n)*script" at THE_REQUEST. mod_security-action: 406 HTTP/1.0 406 Not Acceptable Content-Length: 352 Connection: close Content-Type: text/html; charset=iso-8859-1 ======================================== Request: xxx.xxx.xxx.xxx - - [[21/Feb/2004:20:40:29 +0100]] "GET /cgi-bin/modsec-test.pl?p=DELETE%20FRoM+users HTTP/1.0" 406 352 Handler: cgi-script ---------------------------------------GET /cgi-bin/modsec-test.pl?p=DELETE%20FRoM+users HTTP/1.0
56
Bagaimana Menginstall dan Mengamankan eGroupWare
Host: xxx.xxx.xxx.xxx User-Agent: mod_security regression test utility Connection: Close mod_security-message: Access denied with code 406. Pattern match "delete[[:space:]]+from" at THE_REQUEST. mod_security-action: 406 HTTP/1.0 406 Not Acceptable Content-Length: 352 Connection: close Content-Type: text/html; charset=iso-8859-1
7.4
Optimisasi dan Mengamankan web server Apache
Untuk mengamankan web server Anda harus menonaktifkan modul yang tidak diperlukan. Aktifkan hanya yang Anda perlukan untuk menjalankan aplikasi web Anda. Menjalankan Apache dengan modul yang lebih sedikit akan meningkatkan performanya. 7.4.1
Modul yang direkomendasikan untuk diaktifkan
Berikut ini gambaran singkat tentang apa yang harus Anda jalankan pada Apache 2 dengan eGroupWare. Semua modul yang lain dapat dan harus dinonaktifkan. Optimisasi web server Apache web tidak untuk pemula! Ketika Anda menonaktifkan beberapa modul pada httpd.conf Anda harus memberi komentar beberapa opsi lain. Sangat direkomendasikan untuk menghentikan dan menjalankan ulang Apache untuk setiap kali modul yang Anda buang. Pastikan Anda tidak menerima pesalahan kesalahan setiap kali melakukannya. mod_access.so mod_auth.so mod_include.so mod_log_config.so mod_expires.so mod_deflate.so mod_headers.so mod_unique_id.so mod_setenvif.so mod_mime.so mod_negotiation.so mod_dir.so mod_alias.so
57
Bagaimana Menginstall dan Mengamankan eGroupWare
7.4.2
Opsi konfigurasi Apache lainnya
Anda bisa menyembunyikan informasi tentang web server Apache Anda untuk alasan keamanan. Terdapat beberapa kemungkinan untuk Apache 1.3 dan Apache 2.x. Variabel ServerTokens pada file httpd.conf harus memiliki nilai OS, dan variabel ExtendedStatus harus bernilai OFF. ServerSignature harus bernilai OFF, direktori manual /var/www/manual menjadi Deny from all. Ketika Anda tidak membutuhkan cgi-bin nonaktifkanlah. AddHandler untuk type-map INCLUDES, beri tanda komentar dengan simbol # pada awal baris. Pada /var/www/error set Order deny,allow ke Deny from all. Direktori /server-status dan /server-info harus tidak bisa dibaca oleh publik untuk alasan keamanan.
7.5
eAccelerator
eAccelerator adalah sebuah akselerator, optimator, enkoder, dan cache konten dinamik untuk PHP open source yang gratis. Software ini meningkatkan performa dari script PHP dengan meng-cachenya dalam kondisi yang terkompilasi, sehingga overhead proses kompilasi hampir sepenuhnya dihilangkan. Ia juga menggunakan beberapa optimisasi untuk meningkatkan waktu eksekusi script PHP. eAccelerator akan mengurangi beban server dan meningkatkan kode PHP Anda antara 1-10 kali. Untuk informasi tentang eAccelerator kunjungi developer homepage 21.
7.5.1
Kebutuhan
phpize dibutuhkan untuk membangun script configure. Periksa keberadaan phpize debfab search atau locate. Pada Fedora Linux Anda harus menginstall php-devel untuk mengkompilasi eAccelerator. RedHat Enterprise Linux 3 dirilis tanpa paket phpize. Anda harus mengkompilasi ulang paket PHP dan membangun dua paket devel. 7.5.1.1 Tugas awal untuk RedHat Enterprise Linux 3 Untuk membangun paket devel PHP Anda membutuhkan paket berikut. bzip2-devel curl-devel db4-devel expat-devel freetype-devel gd-devel gdbm-devel gmp-devel pspelldevel httpd-devel libjpeg-devel, libpng-devel pam-devel libstdc++-devel libxml2-devel ncurses-devel openssl-devel zlib-devel pcre-devel imap-devel Paket pcre-devel dan imap-devel tidak ditawarkan oleh RedHat dan Anda harus membangunnya sendiri. Download paket srpm ke server Anda, salin ke /usr/src/redhat/SRPMS, dan bangun paket devel:
[root@server SRPM]#rpmbuild –rebuild pcre-x.x-xx.src.rpm [root@server SRPM]#rpmbuild –rebuild imap-x.x-xx.src.rpm Pindah ke direktori RPM dan install paket RPM devel pada server Anda:
[root@server SRPM]#cd /usr/src/redhat/RPM/i386 [root@server i386]#rpm –ivh pcre-devel-x.x-xx.i386 imap-devel-xxxxx-x.rpm Install paket PHP src RPM pada server Anda dan pindahlah ke direktori SPEC:
[root@server SRPM]#cd /usr/src/redhat/SPEC 21 http://sourceforge.net/projects/eaccelerator/
58
Bagaimana Menginstall dan Mengamankan eGroupWare
Anda harus mengedit file php.spec file dengan vi atau vim Setelah baris 55 tambahkan baris berikut pada file:
%package devel Group: Development/Libraries Summary: Files needed for building PHP extensions. %description devel The php-devel package contains the files needed for building PHP extensions.
If you need to compile your own PHP extensions, you will
need to install this package. Ubahlah baris berikut dari:
$RPM_BUILD_ROOT%{_bindir}/{phptar,pearize,php-config,phpextdist,phpize} Menjadi:
$RPM_BUILD_ROOT%{_bindir}/{phptar,pearize} Hapus baris ini:
rm -rf $RPM_BUILD_ROOT%{_includedir} \ $RPM_BUILD_ROOT%{_libdir}/php Tambahkan blok ini setelah bagian %files pertama:
%files devel %defattr(-,root,root) %{_bindir}/php-config %{_bindir}/phpize %{_bindir}/phpextdist %{_includedir}/php %{_libdir}/php Simpan file, lalu bangun paket baru
[root@server SPECS]# rpmbuild –bb php.spec Hanya install paket php-devel pada server Anda! 7.5.2
Kompatibilitas
Versi ini telah sukses diuji pada PHP 4.1.0-4.3.2 pada RedHat Linux 7.0, 7.3, dan 8.0; RedHat ES dan AS; dan Windows dengan Apache 1.3 dan 2.0. 7.5.3
Installasi Kilat Mengkompilasi eAccelerator:
export PHP_PREFIX=”/usr” $PHP_PREFIX/bin/phpize
59
Bagaimana Menginstall dan Mengamankan eGroupWare
./configure –enable-mmcache=shared –with-php-config= $PHP_PREFIX/bin/php-config make Anda harus menentukan prefix dimana PHP terinstall pada perintah "export". Nilainya dapat berupa "/usr" "/usr/local", atau sesuatu yang lain.
Menginstall eAccelerator:
make install Mengkonfigurasi eAccelerator: eAccelerator dapat diinstall sebagai ekstensi Zend atau PHP. Anda harus mengedit file php.ini (biasanya /etc/php.ini) Untuk menginstall sebagai ekstensi Zend:
zend_extension=”/usr/lib/php4/eaccelerator.so” eaccelerator.shm_size=“16“ eaccelerator.cache_dir=“/tmp/eaccelerator“ eaccelerator.enable=“1“ eaccelerator.optimizer=“1“ eaccelerator.check_mtime=“1“ eaccelerator.debug=”0” eaccelerator.filter=”” eaccelerator.shm_max=”0” eaccelerator _ttl=”0” eaccelerator.shm_prune_period=”0” eaccelerator.shm_only=”0” eaccelerator.compress=”1” Jika Anda menggunakan versi thread-safe dari PHP Anda harus menggunakan “zend_extensions_ts” ketimbang “zend_extension”
Untuk menginstall sebagai ekstensi PHP:
extension=”eaccelerator.so” eaccelerator.shm_size=“16“ eaccelerator.cache_dir=“/tmp/eaccelerator“ eaccelerator.enable=“1“ eaccelerator.optimizer=“1“ eaccelerator.check_mtime=“1“ eaccelerator.debug=”0” eaccelerator.filter=”” eaccelerator.shm_max=”0” eaccelerator _ttl=”0” eaccelerator.shm_prune_period=”0” eaccelerator.shm_only=”0” eaccelerator.compress=”1” eaccelerator.content
60
Bagaimana Menginstall dan Mengamankan eGroupWare
Menciptakan direktori cache:
mkdir /tmp/eaccelerator chmod 0777 /tmp/eaccelerator 7.5.4
Interface Web
eAccelerator dapat dikelola melalui script interface web mmcache.php, sehingga Anda perlu meletakkan file ini pada web site Anda. Untuk alasan keamanan, sangat direkomendasikan untuk membatasi penggunaan script ini hanya untuk IP lokal Anda. Sejak versi 2.3.18 interface admin dapat diproteksi dengan password. Untuk menghasilkan password, jalankan file mmcache_password.php dari perintah baris dan ikuti perintahnya. Menciptakan password eAccelerator:
[root@server eaccelerator***]# php –q eaccelerator_password.php Changing password for eAccelerator Web Interface (eaccelerato.php) Enter admin name: cacheadminname New admin password: yourpassword Retype new admin password: yourpassword Tambahkan baris berikut pada php.ini Anda dan restart HTTPD
eaccelerato.admin.name="cacheadminname" eaccelerato.admin.password="$1$0ScD9gkb$nOEmFerNMvQ576hELeLrG0"
61
Bagaimana Menginstall dan Mengamankan eGroupWare
7.6
Mengamankan installasi PHP
Amankan direktori web server Anda sehingga hanya dapat terlihat oleh user web server Anda.
;;;;;;;;;;;;;;;;;;; ; Language Options ; ;;;;;;;;;;;;;;;;;;; ; open_basedir, if set, limits all file operations ; to the defined directory ; and below.
This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file. open_basedir = var/www/html:/var/www/files:/tmp:/usr/share/pear:/usr/bin/crontab ; Decides whether PHP may expose the fact that it is installed on the server e.g. by adding its signature to the Web server header). ; It is no security threat in any way, but it makes it possible to ; determine whether you use PHP on your server or not. expose_php = Off ;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; max_execution_time = 30 ; Maximum execution time of each script, inseconds memory_limit = 24M ; Maximum amount of memory a script may consume (8MB) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Error handling and logging ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Print out errors (as a part of the output).
For production web sites,
; you're strongly encouraged to turn this feature off, and use error ; logging instead (see below).
Keeping display_errors enabled on a
; production web site may reveal security information to end users, such ; as file paths on your Web server, your database schema or other ; information. display_errors = Off ; Even when display_errors is on, errors that occur during PHP's startup ; sequence are not displayed.
It's strongly recommended to keep
; display_startup_errors off, except for when debugging. display_startup_errors = Off 62
Bagaimana Menginstall dan Mengamankan eGroupWare
; Log errors into a log file (server-specific log, stderr, ; or erro_ log (below)) As stated above, you're strongly advised to use error logging in place ; of error displaying on production web sites. log_errors = On ; Store the last error/warning message in $php_errormsg (boolean). track_errors = Off ; Log errors to syslog (Event Log on NT, not valid in Windows 95). error_log = syslog ;;;;;;;;;;;;;;;;;;; ; Data Handling ; ;;;;;;;;;;;;;;;;;;; register_globals = OFF
Akan lebih aman untuk menentukan paths untuk session.save_path dan upload_tmp_dir pada file php.ini dan menyertakannya pada pembatasan open_basedir.
7.7
Menciptakan sertifikat web server
Untuk menjaga privasi Anda, Anda bisa menggunakan sertifikat server ketika Anda terkoneksi ke server eGroupWare Anda. Dengan sebuah sertifikat, Anda bisa terhubung ke web server Anda dengan koneksi yang terenkripsi (menggunakan https ketimbang http). Tanpa koneksi https, orang lain dapat men-sniff password Anda dan informasi pribadi lainnya. Anda memiliki beberapa kemungkinan ketika membuat sertifikat web server: 1.) Menciptakan Otoritas Sertifikat Anda dan menandai sendiri sertifikat server Anda (Kepercayaan rendah) 2.) Menggunakan Otoritas Sertifikat non-Profit. CAcert 22 (Kepercayaan tinggi) 3.) Menggunakan Otoritas Sertifikat komersial. Thawte 23 Verisign 24 (Kepercayaan tinggi)
22 https://www.cacert.org 23 http://www.thawte.com 24 http://www.verisign.com
63
Bagaimana Menginstall dan Mengamankan eGroupWare
Jika Anda hendak menggunakan Otoritas Sertifikat komersial, silahkan langsung membuat kunci_server_Anda dan permintaan penandatanganan 7.7.1
Bergabung dengan CA Cert
Langkah pertama untuk mendapatkan sertifikat server adalah bergabung dengan CAcert. Buka browser Anda dan buka URL berikut: https://www.cacert.org. Ikuti link pada sisi kiri untuk bergabung dengan CAcert. Lanjutkan dengan pendaftaran. Isilah semua informasi yang diperlukan untuk mendapatkan account pribadi pada CAcert. Setelah Anda mengirimkan password Anda, Anda kaan menerima instruksi lebih lanjut via Email. 7.7.2
Menciptakan permintaan penandatanganan sertifikat Anda
Pada installasi server Anda harus menciptakan kunci server dan permintaan penandatanganan sertifikat (certificate signing request). 7.7.2.1 Merubah file openssl.cnf Anda perlu melakukan perubahan pada file openssl.cnf hanya jika Anda hendak menggunakan sertifikat dari Otoritas Sertifikat non-profit (CAcert). Pada Debian Linux Anda akan menemukan file pada /usr/lib/ssl/ dan pada Red Hat pathnya ada pada /usr/share/ssl/ Periksa file openssl.cnf Anda untuk penggalan berikut. Baris terpenting adalah yang diberi komentar atau perubahan pada nilai stateOrProvinceName.
[root@server ssl]# vi openssl.cnf
# For the CA policy [ policy_match ] countryName
= match
stateOrProvinceName
= optional
organizationName
= match
organizationalUnitName
= optional
commonName
= supplied
emailAddress
= optional
[ req_distinguished_name ] countryName
= Country Name (2 letter code)
countryName_default
= GB
countryName_min
= 2
countryName_max
= 2
stateOrProvinceName
= State or Province Name (full name)
localityName
= Locality Name (eg, city) 64
Bagaimana Menginstall dan Mengamankan eGroupWare
0.organizationName
= Organization Name (eg, company)
organizationalUnitName
= Organizational Unit Name (eg, section)
7.7.2.2 Menciptakan kunci server Anda dan permintaan penandatanganan Untuk mendapatkan sebuah sertifikat, Anda harus menciptakan sebuah kunci server dan permintaan penandatanganan sertifikat. 1.) Menciptakan kunci server. Kunci server disimpan oleh Debian pada folder /etc/ssl/certs/ dan pada Red Hat di /etc/httpd/conf/ssl.csr/ Perintah berikut menciptakan kunci server yang diproteksi password. Jika Anda tidak memiliki akses konsol ke server Anda, JANGAN menciptakan kunci yang terproteksi password. Server Anda akan menunggu password pada saat boot dan tidak akan berjalan sampai Anda memberikan password. Jika Anda memiliki akses konsol, gunakan kunci yang terproteksi password! Ini lebih aman.
[root@server ssl]# /usr/bin/openssl genrsa -des3 1024 > /etc/httpd/conf/ssl.key/server.key Generating RSA private key, 1024 bit long modulus .......++++++ ................................................................++++++ e is 65537 (0x10001) Enter PEM pass phrase: Untuk menciptakan kunci tanpa terproteksi password:
[root@server ssl]# /usr/bin/openssl genrsa 1024 > /etc/httpd/conf/ssl.key/server.key Ubahlah hak akses untuk kunci Anda:
[root@server ssl]# chmod go-rwx /etc/httpd/conf/ssl.key/server.key
2.) Sekarang Anda harus membuat permintaan penandatanganan sertifikat Anda. Harap diingat untuk merubah path ke kunci server Anda.
[root@server ssl]# /usr/bin/openssl req -new -key /etc/httpd/conf/ssl.key/server.key -out /etc/httpd/conf/ssl.csr/server.csr Using configuration from /usr/share/ssl/openssl.cnf Enter PEM pass phrase:
65
Bagaimana Menginstall dan Mengamankan eGroupWare
System menanyakan password kepada Anda, yang Anda berikan pada saat membuat kunci. Jika Anda membuat kunci tanpa password, password tidak dibutuhkan.
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [GB]:DE State or Province Name (full name) []: Locality Name (eg, city) [Newbury]: Organization Name (eg, company) [My Company Ltd]:egroupware.org Organizational Unit Name (eg, section) []: Common Name (your name or server's hostname) []:egroupware.org Email Address []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: In your folder, you will find a new file named server.csr. This file has to be sent to your certificate authority. 7.7.2.3 Mengirimkan permintaan ke CA Anda Permintaan penandatanganan sertifikat harus dikirimkan ke otoritas sertifikat. Disini kami mengirimnya ke CAcert. 1.
Buka Browser dan buka URL berikut.https://www.cacert.org.
2.
Ikuti link Server Certificate -> Login.
3.
Tambahkan domain baru.
4.
Konfirmasikan email yang dikirimkan ke Anda.
5.
Ikuti link Certificates -> Requests.
6.
Salin seluruh isi file serverAnda.csr pada kotak teks.
7.
Setujuilah proses.
7.7.2.4 Menginstall sertifikat server. Setelah mengirimkan CSR, Anda akan mendapatkan email dari CA Anda dengan sertifikat yang telah ditandatangani. Seluruh isi body Email harus disalin ke sebuah file bernama server.crt pada server. Setelah menyimpan file, Anda harus merestart web server Anda.
66
Bagaimana Menginstall dan Mengamankan eGroupWare
7.8
Web server
Amankan direktori web server Anda, sehingga mereka hanya tampak oleh user web server Anda.
[root@server html]# chown -R root:webserveruser egroupware [root@server html]# find egroupware -type d -exec chmod 550 {} \; [root@server html]# find egroupware -type f -exec chmod 440 {} \; Kami menganjurkan Anda mengamankan direktori Apache Anda. Tambahkan baris berikut pada httpd.conf:
Order allow,deny Deny from all
7.9
Mengamankan SQL server MySQL Pastikan database Anda berjalan dan dijalankan secara otomatis saat server boot Ketika Anda menginstall MySQL server Anda untuk pertama kali, jangan lupa untuk menentukan password root MySQL server. Password pada installasi standar adalah KOSONG. Ketika Anda tidak menentukan password root untuk MySQL server, setiap orang dengan akses shell dapat login ke MySQL server tanpa password!. Untuk menentukan password MySQL gunakan perintah berikut:
[root@server html]# mysqladmin –u root password ‘password-baru’ MySQL server menyertakan database test. Database ini tidak diperlukan pada lingkungan produksi. Drop database ini.
[root@server html]# mysql –u root –p Enter Password: mysql>drop database test; Query OK, 0 rows affected (0,03 sec) Untuk database MySQL tambahkan parameter berikut untuk memastikan bahwa MySQL server hanya dapat diakses via localhost. Pindah ke /etc/my.cnf dan tambahkan baris berikut:
67
Bagaimana Menginstall dan Mengamankan eGroupWare
[mysqld] bind-address=127.0.0.1
7.10 Backup dan mengembalikan database Anda! Groupware adalah software kritis pada lingkungan IT Anda. Jika Anda kehilangan software groupware dengan semua informasinya (informasi kalender, kontak, informasi dasar, tiket bermasalah, dan sebagainya.) merupakan sebuah bencana bagi perusahaan atau Anda sendiri. Database, direktori yang digunakan oleh eGroupWare diluar root dari web server’s dan file header.inc.php diperlukan untuk mengembalikan installasi eGroupWare dari dasar. Terdapat peralatan backup professional di pasaran untuk mem-backup installasi eGroupWare Anda. Jika Anda tidak memiliki akses ke peralatan ini, beberapa cara sederhana untuk melakukan backup akan ditunjukkan. Anda bisa menggunakan aplikasi backup yang ditawarkan eGroupWare. Aplikasi ini akan bekerja untuk installasi tunggal eGroupWare pada server – tetapi apa yang Anda lakukan jika ada beberapa installasi yang perlu Anda backup? Bagaimana jika web server down? Untuk alasan ini, Anda juga harus menguasai bagaimana membackup dari perintah baris. 7.10.1
Menentukan solusi backup Anda
Strategi backup Anda bergantung pada waktu yang diperlukan untuk menginstall groupware server baru: berapa lama pengguna dapat “hidup” tanpa software groupware dan informasi yang disediaknnya. Kebutuhan Pengguna tanpa
YA dapat
software
TIDAK
hidup
groupware
lebih dari 6 jam? Ukuran
database
dan
file
kurang dari beberapa ratus megabyte? Anda
memiliki
cadangan
yang
server dapat
diinstall software groupware sementara
server
utama
diperbaiki? Anda bisa menginstall server lengkap,
termasuk
sistem
operasi di rumah / sendiri? Jika Anda menjawab salah satu atau lebih pertanyaan dengan TIDAK, Anda harus menggunakan solusi backup professional dan bukannya script sederhana yang kami sediakan untuk backup server Anda. Terdapat banyak
68
Bagaimana Menginstall dan Mengamankan eGroupWare
solusi komersial yang tersedia namun juga terdapat solusi open source yang dapat membackup server secara lengkap (seperti bacula 25). 7.10.2
Backup database MySQL
7.10.2.1 Membackup database MySQL secara manual Untuk membackup database secara manual, Anda bisa menggunakan perintah:
[root@server html]# mysqldump –u AdminMysqlAnda -p - -opt database > /directory/database.sql Ketika Anda menggunakan mysqldump tanpa flag –opt, backup lengkap akan ditulis ke memory lalu ke file! Ini bisa menjadi masalah jika Anda membackup database yang besar. 7.10.2.2 Membackup MySQL dengan tugas cron harian Salin script ini ke direktori /etc/cron.daily (atau dimanapun script cron harian Anda seharusnya diletakkan pada distribusi Anda) dan buatlah agar dapat dieksekusi.
#!/bin/sh # The name from the database which you want to backup db_name="NamaDBAnda" # The username to connect the database dbusername="PenggunaDBAnda" # The password to connect the database dbuserpassword="PasswordDBAnda" # The directorty outside the webserver root we must backup. # Please provide the complete path to this directory files_directory="/var/www/files" # The path to the egroupware root, as example /var/www/html/egroupware webserver_root="/var/www/html/egroupware" # In which directory you want to store the backup backup_directory="/direktori/backup/Anda " # Path to the backup log log=/var/log/db_backup # The name under which we store the backup 25 http://www.bacula.org/
69
Bagaimana Menginstall dan Mengamankan eGroupWare
backup=$backup_directory/$db_name-`date +%Y%m%d%H%M`.sql echo `date`": starting backup of DB $db_name to $backup" >>$log # create the DB backup mysqldump
--user=$dbusername
--password=$dbuserpassword
--opt
$db_name
2>>$log > $backup # zip the backup file bzip2 $backup 2>&1 >> $log echo `date`": backup of DB $db_name finished" >>$log # bzip the directory outside the webserver root tar cjvf $backup_directory/files-`date +%Y%m%d%H%M`.bz2 $files_directory # Copy the header.inc.php file to the backup directory cp
$webserver_root/header.inc.php
$backup_directory/header.inc.php-`date
+%Y%m%d%H%M` # Delete backups which are older than X days cd $backup_directory find . -name "$db_name-*.sql.bz2" -mtime +14 | \ xargs --no-run-if-empty rm –f find . -name 'files-*.bz2' -mtime +14 | xargs --no-run-if-empty rm -f find . -name 'header.inc.php-*' -mtime +14 | \ xargs --no-run-if-empty rm -f
7.10.2.3 Mengembalikan database MySQL Untuk mengembalikan database Anda, Anda harus menciptakan database dan mengembalikan data dari file backup Anda:
[root@server html]# mysqladmin –u AdminMysqlAnda –p create databaseAnda [root@server html]# mysql –u AdminMysqlAnda –p < /directory/database.sql
70
Bagaimana Menginstall dan Mengamankan eGroupWare
7.10.3
Membackup database PostgreSQL
7.10.3.1 Membackup database PostgreSQL secara manual Untuk membackup database secara manual, jalankan perintah berikut:
[root@server html]# su – postgres -bash-2.05b$ pg_dump –C –d –F t –b database -f /directory/database.tar 7.10.3.2 Menciptakan tugas cron untuk script PostgreSQL Anda harus menciptakan tugas cron untuk user postgres untuk menjalankan shell script backup harian. [root@server html]# crontab –u postgres –e Tambahkan baris berikut pada file dan simpan. Ini akan menjalankan script backup Anda pada jam 10 Malam. 0 22 * * * /bin/bash /path/to/the/backup/script Shell script backup PostgreSQL
#!/bin/bash # The name from the database which you want to backup db_name="NamaDBAnda" # The directorty outside the webserver root we must backup. # Please provide the complete path to this directory files_directory="/var/www/files" # The path to the egroupware root, as example /var/www/html/egroupware webserver_root="/var/www/html/egroupware" # In which directory you want to store the backup backup_directory="/direktori/backup/Anda " # Path to the backup log log=”/var/log/db_backup” # The name under which we store the backup backup=$backup_directory/$db_name-`date +%Y%m%d%H%M`.tar echo `date`": starting backup of DB $db_name to $backup" >>$log # Clean and analyse a PostgreSQL database /usr/bin/vacuumdb --d $db_name --analyze 71
Bagaimana Menginstall dan Mengamankan eGroupWare
# create the DB backup pg_dump --create --inserts --format=t --blobs $db_name --file $backup 2>>$log # bzip the directory outside the webserver root tar cjvf $backup_directory/files-`date +%Y%m%d%H%M`.bz2 $files_directory # Copy the header.inc.php file to the backup directory cp
$webserver_root/header.inc.php
$backup_directory/header.inc.php-`date
+%Y%m%d%H%M` # Delete backups which are older than X days cd $backup_directory find . -name "$db_name-*.tar" -mtime +14 | xargs --no-run-if-empty rm -f find . -name 'files-*.bz2' -mtime +14 | xargs --no-run-if-empty rm -f find . -name 'header.inc.php-*' -mtime +14 | \ xargs --no-run-if-empty rm -f
7.10.3.3 Mengembalikan database PostgreSQL Untuk mengembalikan database PostgreSQL Anda bisa menjalankan perintah berikut sebagai user postgres.
[root@server html]# su – postgres -bash-2.05b$ pg_restore -f /directory/database.tar –F t –d database
72
Bagaimana Menginstall dan Mengamankan eGroupWare
8 8.1
Setting eGroupWare Menciptakan database Anda eGroupWare dapat menciptakan database secara otomatis untuk Anda. Saat ini, hal ini bekerja untuk database MySQL, MSSQL dan PostgreSQL! Jika Anda menginginkan agar eGroupWare untuk menciptakan
database Anda secara otomatis, silahkan melanjutkan ke bagian 8.5.1. 8.1.1
Menciptakan database MySQL
Menciptakan database dan user yang dapat terhubung. Menciptakan database:
[root@server html]# mysqladmin –u AdminMysqlAnda –p create databaseAnda Enter password: Membuat user dan memberikan hak DB:
[root@server html]# mysql –u AdminMysqlAnda –p Enter password: mysql> grant all on egroupware.* to egroupwaredbuser@localhost identified by “password” 8.1.2
Menciptakan database PostgreSQL Validasi bahwa koneksi ke database Anda sudah dimungkinkan. Dari account ROOT pindahlah ke account postgres:
[root@server html]# su - postgres Edit file postgresql.conf:
-bash-2.05b$ cd data -bash-2.05b$ vi postgresql.conf File Anda harus tampak seperti contoh berikut:
#Connection Parameter tcpip_socket = true #ssl = false #max_connections = 32 port = 5432
73
Bagaimana Menginstall dan Mengamankan eGroupWare
Edit file pg_hba.conf sehingga tampak seperti contoh kami:
# TYPE DATABASE USER IP_ADDRESS MASK AUTH_TYPE AUTH_ARGUMENT local egroupware trust host egroupwaredbname all 127.0.0.1 255.255.255.255 md5
Nilai USER tampak pada PostgreSQL 7.3.X keatas.
Restart PostgreSQL server dan tes konektivitas:
[root@server html]# /etc/init.d/postgresql restart [root@server html]# su - postgres bash-2.05b$ psql -h localhost template1 Tutup konektivitas database:
template1=# \q
Setting database PostgreSQL. Menciptakan user yang memiliki akses ke DB eGroupWare:
bash-2.05b$ createuser NamaUserDBAnda –P Jawab pertanyaan berikut dengan yes:
bash-2.0.5b$ Shall the new user be allowed to create databases? (y/n) Y bash-2.0.5b$ Shall the new user be allowed to create more new users? (y/n) N Menciptakan database eGroupWare baru:
bash-2.05b$ createdb -U NamaUserDBAnda namaDBAnda
8.2
Bagaimana memulai setup?
Arahkan Browser Anda ke URL server Anda untuk memulai menu setup: https://www.serverAnda.com/egroupware/setup Anda akan secara otomatis diarahkan ke pengujian installasi eGroupWare, yang merupakan langkah berikutnya.
74
Bagaimana Menginstall dan Mengamankan eGroupWare
8.3
Pengujian installasi eGroupWare
Jika file header.inc.php tidak ditemukan, eGroupWare menjalankan sebuah pengujian untuk memverifikasi beberapa parameter konfigurasi pada file php.ini dan sistem lokal Anda.
Pengujian akan menampilkan
kesalahan dan peringatan yang akan membantu Anda memecahkan masalah konfigurasi. Kesalahan ditampilkan dengan tanda silang dan harus diselesaikan oleh Anda! Peringatan dapat diabaikan, tetapi sebaiknya diperbaiki. Misalnya, Anda mungkin melihat peringatan dari check for safe_mode. Jika Anda tahu bagaimana mengkonfigurasi pembatasan safe mode maka tidak menjadi masalah bagi Anda, namun bagi pengguna baru, terkadang lebih baik untuk menonaktifkan fungsi ini.
8.4
Menciptakan header.inc.php
Sebagian besar bagian pada header.inc.php sudah sangat jelas. Menu ini tersedia pada bahasa lain selain Inggris, namun mungkin belum diterjemahkan ke bahasa Anda. Saat ini eGW mendukung MySQL, PostgreSQL dan MSSQL. Dukungan MaxDB untuk eGroupware sedang dikerjakan Dengan kotak Domain, Anda bisa mensetting lebih dari satu installasi eGroupWare. Sebagai contoh, Anda bisa memiliki installasi untuk karyawan Anda bekerja dan installasi yang terpisah untuk pelatihan. Jika Anda membuat database secara manual, seperti pada langkah 6.1, Anda telah memberikan nama database, user, dan password. Jika Anda ingin agar setup eGroupWare menciptakan database secara otomatis, Anda harus menyediakan nilainya disini. Jika Anda mampu, batasi akses ke halaman setup eGroupWare!. Ini akan menjaga installasi dari serangan seperti brute force. Anda bisa memproteksi akses berdasarkan alamat IP (183.12.34.87), atau subnet (192.168.0) atau nama host (namahostku.jaringanku.org)
75
Bagaimana Menginstall dan Mengamankan eGroupWare
Nilai berikut menjelaskan database yang Anda gunakan dan digunakan untuk eGroupWare dan database user yang dapat terhubung ke database eGroupWare. Jangan gunakan database administrator untuk terhubung ke database. Ciptakan user yang terpisah! DH Host
Jika DB Anda berjalan pada mesin yang sama dengan mesin eGroupWare, nilainya menjadi localhost. Anda juga bisa menggunakan server terpisah untuk menjalankan DB.
DB Name
Nama database yang ingin Anda buat pada DB Server Anda.
DB User
User
yang
digunakan
eGroupWare
untuk
terkoneksi ke database. DB Password
Password dari user DB.
DB Type
Jenis DB Anda.
Download file created header.inc.php yang dibuat ke mesin lokal, lalu salin ke direktori root eGroupWare dan ubahlah hak aksesnya sehingga hanya web server yang memiliki hak baca ke file ini.
[user@server tmp]$ scp header.inc.php ServerEGWAnda:/tmp [user@server tmp]$ ssh ServerEGWAnda [user@youregwserver user]$ su – Password: [root@server root]# mv /tmp/header.inc.php /var/www/html/egroupware; chmod 400 /var/www/html/egroupware/header.in.php; chown apache /var/www/html/egroupware/header.in.php Lanjutkan pada browser Anda untuk ke langkah berikutnya.
8.5
Setup / Config Admin
Setelah Anda selesai menciptakan file header.inc.php dan melanjutkan ke langkah berikutnya, Anda akan menemukan dua prompt login. Log in ke Setup/Config Admin Login dengan nama user dan password yang Anda sediakan pada langkah sebelumnya (8.4)
76
Bagaimana Menginstall dan Mengamankan eGroupWare
8.5.1
Langkah 1 – Simple Application Management - Ciptakan database Anda
Disini Anda memiliki dua kemungkinan: Jika Anda ingin menciptakan database Anda pada langkah ini secara otomatis, maka lanjutkan ke create your database.
Jika Anda telah membuat database secara manual,
lanjutkan ke create your tables. Menciptakan database Anda:
Isilah form berikut untuk menciptakan database secara otomatis: DB root username
NamaRootDBAnda
DB Password
PasswordRootDBAnda
Klik “Create Database.”
Klik Re-Check My Installation:
Jika Anda tidak mendapati kesalahan, Anda bisa menginstall tabel. Klik Install:
Sekarang, lihat statusnya. Jika Anda tidak mendapati kesalahan, lanjutkan dengan Re-Check My Installation:
77
Bagaimana Menginstall dan Mengamankan eGroupWare
8.5.2
Step 2 – Konfigurasi
Sebagian besar dari langkah ini sudah sangat jelas. Hanya beberapa informasi yang sering kurang dipahami yang dijelaskan disini. 8.5.2.1 Menciptakan folder files Anda harus menciptakan direktori files secara manual pada shell prompt. eGroupWare akan menyimpan attachments dari Infolog, file yang tersimpan pada modul Filemanager, dan beberapa file lain pada direktori ini. Direktori ini harus diluar root web server Anda! Jika Anda tidak tahu dimana root web server Anda, lihat pada file httpd.conf atau jalankan perintah berikut pada Linux:
[root@server www]$ cat /etc/httpd/conf/httpd.conf | grep ^DocumentRoot DocumentRoot “/var/www/html” Ciptakan direktori files:
[root@server www]$ mkdir /var/www/files Anda harus memberikan hak akses baca dan tulis kepada web server terhadap direktori ini:
[root@server www]$ chown –R apache.apache /var/www/files [root@server www]$ chmod –R 0700 /var/www/files 8.5.2.2 Mengedit konfigurasi aktual Path Information Masukkan nilai yang diperlukan pada Path information Direktori tmp diperlukan untuk menyimpan session dan informasi lain dari installasi eGroupWare Anda.
Ketika Anda menjalankan installasi eGroupWare
pada lingkungan
change root (chroot) atau dengan pembatasan open_basedir pada php.ini, path dari direktori tmp harus tetap dengan pembatasan ini juga. Path lengkap untuk file user dan group harus berada diluar root web server untuk alasan keamanan. Tidak mungkin untuk memiliki direktori ini pada root web server Anda!
78
Bagaimana Menginstall dan Mengamankan eGroupWare
Masukkan lokasi URL eGW. Jika Anda hendak menggunakan koneksi HTTPS dan HTTP, gunakan /egroupware (jika Anda hendak memaksa HTTPS maka gunakan https://domainAnda/egroupware). Harap tidak merubah image type selection order dari nilai defaultnya (yang bisa berbeda dari contoh berikut). Ini dapat merusak desain UI.
Host information Masukkan nama host dari server Anda. Nilainya harus berupa nama DNS valid atau alamat IP yang akan dijalankan oleh installasi. Ketika installasi eGroupWare terletak dibelakang Proxy Server (seperti SQUID) dan Anda hendak menggunakan aplikasi yang terhubung ke situs remote Internet, seperti judul berita atau stock, Anda harus menentuka nilai proxy.
Authentication/Accounts Terdapat beberapa jenis authentikasi yang ada: SQL, SQL/SSL, LDAP, Mail, HTTP, NIS dan PAM. Pilih jenis yang hendak Anda gunakan untuk mengauthentikasi pengguna eGroupWare Anda. Pilih jenis enkripsi untuk password pengguna.
Password pengguna akan disimpan dalam bentuk
terenkripsi pada database Anda. Ketika Anda hendak menggunakan satu pohon LDAP untuk installasi eGroupWare terpisah untuk authentikasi, Anda bisa menggunakan account prefix. Gunakan nama user yang case-sensitive untuk keamanan yang lebih baik.
79
Bagaimana Menginstall dan Mengamankan eGroupWare
If using LDAP Jika Anda tidak menggunakan LDAP, tidak perlu mengisi kotak ini. Jika Anda hendak menggunakan LDAP, silahkan melihat phpgwapi/doc/ldap/README.
Mcrypt settings (requires the mcyrpt PHP extension) Tidak semua distribusi mempunyai mcrypt yang terkompilasi kedalamnya secara default, sehingga Anda harus mengujinya. Juga, Anda harus mencoba beberapa algoritma dan mode untuk melihat mana yang bekerja paling baik dengan eGroupWare dengan versi PHP mcrypt yang ada.
Additional settings Nilai standard disini sudah OK.
80
Bagaimana Menginstall dan Mengamankan eGroupWare
Setelah Anda selesai, simpan konfigurasi Anda. 8.5.3
Step 3 – Setting Account Pengguna Anda
Disini Anda menciptakan account admin eGroupWare. Jangan gunakan nama user admin seperti admin, administrator, root, dan sebagainya. Untuk password admin, gunakan huruf, angka, dan karakter spesial. Jangan ciptakan account Demo pada lingkungan produksi! 8.5.4
Step 4 – Mengelola Bahasa
Bahasa standar yang akan diinstall adalah Inggris dan bahasa yang Anda aktifkan sebagai default dalam browser Anda (jika bukan Inggris). Dimungkinkan untuk menginstall bahasa lain. Anda bisa mengkonversi system-charset Anda secara otomatis, misalnya dari ISO-8859-1 ke UTF-8. 8.5.5
Step 5 –Mengelola Aplikasi
Pada installasi standard, semua aplikasi akan terinstall. Untuk menguninstall semua aplikasi, beri tanda pada Remove untuk aplikasi dan klik Save. Jika Anda menerima pesan kesalahan tentang ketergantungan (dependency), Anda mungkin harus menginstall aplikasi lain. Misalnya, felamimail membutuhkan emailadmin.
81
Bagaimana Menginstall dan Mengamankan eGroupWare
9
Log In ke eGroupWare Setelah Anda selesai mensetting eGroupWare, Anda bisa log in. Buka http://domainAnda/egroupware (atau https://domainANda/egroupware). Langkah pertama sebagai admin adalah bukalah admin interface dan setting konfigurasi situs, pengguna, dan group, setting email, dan informasi lainnya.
82
Bagaimana Menginstall dan Mengamankan eGroupWare
10 Troubleshooting
10.1 Lupa password admin Saya lupa password admin saya dan tidak bisa login dengan pengguna admin ke eGroupWare!
Buka http://serverAnda.com/egroupware/setup Log in ke Setup/Config Admin Login Buat acocunt admin baru.
10.2 Pengguna Admin atau pengguna lain diblokir Saya tidak bisa login lagi ke eGroupWare saya. Saya mendapatkan: Blocked, to many attempts. Apa yang bisa saya lakukan?
Menggunakan konfigurasi standar, Anda harus menunggu 30 menit agar bisa login lagi. Inia adalah fasilitas keamanan – jangan menonaktifkannya!
10.3 Database error: lock(Array, write) failed Database error: lock(Array, write) failed MySQL Error 1044 (Access denied for user '@localhost' to database 'groupware') Function: db::halt / db::lock / config::save_repository / sessions::sessions_ / session_sessions / createobject / include / include session halted
Periksa hak akses database Anda. Pengguna Anda tidak memiliki semua hak yang diperlukan.
10.4 Memeriksa hak akses file Kesalahan ini muncul ketika saya menjalankan script Check Installation: Checking file-permissions of ./phpgwapi/images for not worldwritable: hri/users drwx---rwx ./phpgwapi/images is world writeable!!!
Ubah hak akses pada direktori phpgwapi/images sehingga tidak dapat dibaca oleh umum: chmod 700 images
10.5 Tidak bisa melewati halaman Check Install (#1) Tidak terdapat peringatan atau kesalahan......Saya menginstall header.inc.php dengan nilai yang benar, tetapi saya kembali ke halaman check_install.php...
83
Bagaimana Menginstall dan Mengamankan eGroupWare
Periksa apakah web server memiliki hak baca pada file header.inc.php dan file berada pada root eGroupWare.
10.6 Tidak bisa melewati halaman Check Install (#2) Kami menginstall eGroupWare pada Linux yang juga terinstall proxy server didalamnya. Client menggunakan Microsoft Internet Explorer yang memiliki referensi ke proxy server, meskipun proxy server seharusnya dilewati (options->connection->proxy->advanced settings). Kami tidak bisa meng-upload attachments lebih besar dari 1 Mb. Semuanya di php.ini dan httpd.conf sudah diterapkan, namun kami masih tidak bisa mengupload >1 MB
Proxy server kadangkala harus dikonfigurasi untuk mengijinkan stream yang melaluinya lebih besar dari nilai default. Sebagai contoh, pada Squid, Anda harus merubah "request_body_max_size" dari nilai defaultnya 1MB. contoh: request_body_max_size 20 MB
10.7 Windows: fudforum/3814******9): Permission denied Warning: mkdir(D:\Websites\yourwebsite\egroupware\fudforum/3814******9): Permission denied in D:\Websites \egroupware\fudforum\setup\default_records.inc.php on line 114 ERROR: Failed to create D:\Websites\yourwebsite\egroupware\fudforum/38145******, please create this directory manually and chmod it 777SiteMgr demo site installed
Ciptakan direktori 3814****** dibawah Direktori D:\Websites\websiteAnda\egroupware\fudforum dan berikan hak baca dan tulis. Harap diperhatikan: Angka “3814******” menjadi CRC32 dari domain Anda, sehingga akan berbeda untuk setiap mesin." **Ini diambil dari file D:\websites\websiteAnda\fudforum\setup\readme– “The \fudforum\setup\index.php file will need to create several files inside the web browseable fudforum\ directory. This will require you to grant write permissions to the web-server to several files and directories (installer will complain about them, if they are not writable). The simplest solution is to temporary give the fudforum/ directory full access permissions and then restore to normal permissions (read and write) once the installation process is complete. If you wish to save a few megabytes of space, once the forum is installedyou can remove the base/ directory, it is no longer needed.”
10.8 Sitemgr: mkdir(./sitemgr-link): Permission denied Warning: mkdir(./sitemgr-link): Permission denied in D:\Websites\calvarycentral\egrouptest\egroupware\sitemgr\setup\default_records.inc.php on line 165
84
Bagaimana Menginstall dan Mengamankan eGroupWare
Can't mkdir(./sitemgr-link) !!!sitemgr/sitemgr-link copied to eGroupWare dir and sitemgr-link NOT installed, you need to copy it from egroupware/sitemgr/sitemgr-link to egroupware/sitemgr-link and install
Salin folder sitemgr-link dari \egroupware\sitemgr\ yang diciptakan eGroupWare dan letakkan pada folder root D:\Websites\websiteAnda\egroupware. Ini akan mengijinkan Anda untuk menginstall dari link “Manage Applications” pada halaman /egroupware/setup/index.php.
10.9 Error 1250 (Client does not support authentication protocol requested by server Jika Anda menggunakan MySQL versi 4.1 atau yang lebih tinggi, Anda telah mendapatkan kesalahan database untuk mensetting eGW, Ini mungkin akan menyelesaikan masalah: MySQL 4.1 secara default menggunakan protokol authentikasi password baru yang tidak kompatibel dengan rilis aktual dari eGroupWare. Jika Anda mencoba untuk mengijinkan eGroupWare menciptakan database untuk Anda menggunakan pengguna root MySQL, maka akan gagal dengan pesan kesalahan berikut: Error 1250 (Client does not support authentication protocol requested by server ...
Untuk mengatasinya, Anda harus mengedit konfigurasi MySQL dengan memulainya dengan opsi --old-passwords atau menambahkan berikut pada file my.ini: #Use old password encryption method (needed for 4.0 and older clients). old-passwords Sekarang update password user MySQL dengan perintah berikut: mysql> SET PASSWORD FOR -> 'some_user'@'some_host' = OLD_PASSWORD('mypass');
10.10 Menciptakan account admin tetapi tidak bisa login Saya mencipakan account admin pad setting tetapi ketika saya hendak login, saya mendapatkan nama user atau password yang salah. Dengan account demo, saya bisa login.
Beberapa nama user tidak diperbolehkan sebagai nama user eGroupWare. Mereka akan diblokir jika Anda menggunakannya sebagai nama user. root, bin, daemon, adm, lp, sync, shutdown, halt, ldap, mail, news, uucp, operator, games, gopher, nobody, xfs, pgsql, mysql, postgres, oracle, ftp, gdm, named, alias, web, sweep, cvs, qmaild, qmaill, qmaillog, qmailp, qmailq, qmailr, qmails, rpc, rpcuser, amanda, apache, pvm, squid, ident, nscd, mailnull, cyrus, backup
85
Bagaimana Menginstall dan Mengamankan eGroupWare
10.11 Loop ketika menciptakan database Saya mendapati loop tanpa henti ketika menciptakan database saat setting
Silahkan mencoba dengan browser lain. Beberapa versi Internet Explorer menyebabkan masalah ini.
10.12 Menguji dengan modul apa PHP terkompilasi Saya mempunyai masalah selama percobaan menginstall egroupware pada komputer saya. Pesannya adalah: Checking extension mssql is loaded or loadable: False Saya merubah php.ini dan saya menambahkan baris :extension=php_mssql.dll Tetapi ketika saya mencoba menguji installasi, jendela baru muncul: Unknown():Unable to load dynamic library'./php_mssql.dll'-The specified module could not be found
Masalah ini muncul karena PHP tidak bisa menemukan file bernama php_mssql.dll pada direktori installasinya (default C:\php). Lakukan langkah-langkah berikut: 1. Start->Run->cmd. Pada command prompt, pindahlah ke direktori PHP (C:\PHP, menggunakan path yang sesuai pada sistem Anda). 2. Ketikkan php -v , tekan Enter dan ingat versi PHP Anda. 3. Buka http://www.php.net/releases.php dan download paket zip (Windows binary) dari versi PHP Anda. 4. Ekstrak paket zip ke sebuah folder. Pindahlah ke direktori tersebut, lalu pada subfolder extensions. Salin file php_mssql.dll ke direktori PHP Anda.
10.13 Kesalahan mbstring saat installasi Saat script pengujian installasi, saya mendapati kesalahan tentang mbstring yang tidak ada, atau kesalahan serupa..
Gunakan perintah berikut dari perintah baris untuk mencari tahu apa yang terkompilasi pada PHP pada distribusi Anda: php –m
10.14 Pesan kesalahan PHP include path Saya mendapatkan pesan kesalahan seperti ini: Checking php.ini: include_path contain .: ini_get('include_path')='./:/usr/local/lib/php' include_path need to contain "." - the current directory
86
Bagaimana Menginstall dan Mengamankan eGroupWare
include_path = .:./:/usr/local/lib/php
87
Bagaimana Menginstall dan Mengamankan eGroupWare
11 Peta Software
AIDE, Advanced Intrusion Detection System Platform
Linux / BSD / *nix
Lisensi
GPL
Homepage
sourceforge.net/projects/aide
Download RPM
Lihat pada distribusi Anda
DEB
Debian Project
tar.gz
AIDE Project file server
Proyek Apache Web server Platform
Linux / BSD / Win / lainnya
Lisensi
Apache Software License
Homepage
httpd.apache.org
Download RPM
Lihat pada distribusi Anda
DEB
Debian Project
tar.gz
Apache Project file server
Win
Apache Project file server
Bacula – The Network Backup Solution Platform
Linux / BSD / Win / lainnya
Lisensi
GPL / LGPL
Homepage
www.bacula.org
Download RPM
sourceforge.net bacula project
DEB
sourceforge.net bacula project
tar.gz
sourceforge.net bacula project
Win
sourceforge.net bacula project
88
Bagaimana Menginstall dan Mengamankan eGroupWare
Proyek chkrootkit Platform
Linux / BSD
Lisensi
BSD-Like
Homepage
www.chkrootkit.org
Download RPM
creativix chkrootkit page
tar.gz
chkrootkit project
eAccelerator Platform
Linux / BSD / Win / lainnya
Lisensi
GPL
Homepage
sourceforge.net/projects/eaccalerator
Download tar.gz
eAccelerator project
tar.bz2
eAccelerator project
zip
eAccelerator project
Proyek eGroupWare Platform
Linux / BSD / WIN / lainnya
Lisensi
GPL
Homepage
www.egroupware.org
Download RPM
sourceforge.net eGroupWare project
tar.gz
sourceforge.net eGroupWare project
tar.bz2
sourceforge.net eGroupWare project
zip
sourceforge.net eGroupWare project
ElyCA project Platform
Linux / BSD
Lisensi
GPL
Homepage
www.elyca.org
Download tar.gz
sourceforge.net eGroupWare project
firewall builder Platform
Linux / BSD/ Mac
Lisensi
GPL
Homepage
www.fwbuilder.org
Download RPM
fwbuilder project
DEB
Debian project
tar.gz
fwbuilder project
89
Bagaimana Menginstall dan Mengamankan eGroupWare
fwlogwatch Platform
Linux / BSD/ lainnya
Lisensi
GPL
Homepage
fwlogwatch.inside-security.de
Download RPM
fwlogwatch project
DEB
fwlogwatch project
tar.gz
fwlogwatch project
tar.bz2
fwlogwatch project
Proyek logwatch Platform
Linux / BSD/ other
Lisensi
GPL
Homepage
www.logwatch.org
Download RPM
logwatch project
tar.gz
logwatch project
Proyek logcheck Platform
Linux / BSD/ other
Lisensi
GPL
Homepage
sourceforge project page
Download tar.gz
logcheck project
ModSecurity Platform
Linux / BSD / WIN / lainnya
Lisensi
GPL
Homepage
www.modsecurity.org
Download tar.gz
ModSecurity project
zip
ModSecurity project
NMAP Platform
Linux / BSD / WIN / lainnya
Lisensi
GPL
Homepage
www.nmap.org
Download RPM
NMAP project
tar.gz
NMAP project
tar.bz2
NMAP project
zip
NMAP project
90
Bagaimana Menginstall dan Mengamankan eGroupWare
Proyek OpenSSH Platform
Linux / BSD
Lisensi
GPL
Homepage
www.openssh.org
Download RPM
OpenBSD project fileserver
tar.gz
OpenBSD project fileserver
Proyek Osiris Platform
Linux / BSD/Win/Mac
Lisensi
GPL
Homepage
osiris.shmoo.com
Download tar.gz
Osiris project
Win EXE
Osiris project
Proyek PHP Platform
Linux / BSD / WIN /lainnya
Lisensi
The PHP License
Homepage
www.php.net
Download RPM
Lihat pada distribusi Anda
tar.gz
php project
tar.bz2
php project
zip
php project
Rootkit Hunter Platform
Linux / BSD / Mac
Lisensi
GPL
Homepage
http://www.rootkit.nl/projects/rootkit_hunter.html
Download RPM
packages external build
tar.gz
rootkit hunter homepage
Proyek Roxen web server Platform
Linux / BSD /WIN / other
Lisensi
GPL
Homepage
www.roxen.com/products/web server
Download Paket linux akan diinstall dengan sebuah shell script
91
Bagaimana Menginstall dan Mengamankan eGroupWare
Shorewall Platform
Linux
Lisensi
GPL
Homepage
www.shorewall.net
Download RPM
Lihat pada distribusi Anda
DEB
Debian project
tar.gz
shorewall project
92
Bagaimana Menginstall dan Mengamankan eGroupWare
12 Dokumentasi yang Berguna
Open Source Development with CVS Platform
All
License
GPL
Format
PDF
Homepage
http://cvsbook.red-bean.com/OSDevWithCVS_3E.pdf
Advanced Bash Scripting Guide Platform
All
License
Open Publication License
Format
PDF / HTML
Homepage
http://www.tldp.org/LDP/abs/abs-guide.pdf
13 Contoh script konfigurasi 13.1 AIDE AIDE, Advanced Intrusion Detection System cron script http://egroupware.org/scripts/aide_cronjob md5sum d79a50428563764fea29f1c604f5d838 AIDE, contoh file konfigurasi http://egroupware.org/scripts/aide.conf
13.2 Backup Script cron backup MySQL http://egroupware.org/scripts/mysql_backup_cronjob.sh md5sum e9902eb3303665dbdc6c8cb654c51e0f Script cron backup PostgreSQL http://egroupware.org/scripts/postgresql_backup_cronjob.sh md5sum b067023f0cec4ae09676c538524256e3
93
Bagaimana Menginstall dan Mengamankan eGroupWare
13.3 Iptables Script sederhana iptables firewall (contoh dari dokumen ini untuk pengguna tingkat lanjut) http://egroupware.org/scripts/advanced_user_egroupware_iptables.sh md5sum 3244f125e811e79c7a618231dc6a497f Script Iptable firewall tingkat lanjut Versi Inggris http://egroupware.org/scripts/egroupware_iptables.sh md5sum ee87dc2718c99057f1a4ffe76c2b73f2 Versi Portugis http://egroupware.org/scripts/br_egroupware_iptables.sh md5sum 06284428564e69e7486d5f609c19104b
94
Bagaimana Menginstall dan Mengamankan eGroupWare
14 Yang harus dilakukan dan PerubahanTo-do and Change Log 14.1 Daftar yang harus dilakukan untuk dokumen ini Untuk dokumen versi 0.6: •
MaxDB
•
Snort-inline
•
Melatih pengguna
•
Greylisting untuk mail server
•
Kustomisasi eGroupare
•
Dimana harus menginstall groupware
•
Installasi dan kustomisasi Osiris
•
Installasi Firewall logwatch dan penggunaan
•
Perencanaan awal untuk installasi eGroupWare
•
Installasi SMTP server dan konfigurasi
•
Installasi IMAP / POP server dan konfigurasi
•
Perlindungan Anti Virus dan Spam untuk mail server/gateway
•
Menghubungkan Road warrior ke groupware (OpenVPN)
Untuk dokumen versi 0.7: •
Ekstensi Windows/Mac
•
Installasi dan konfigurasi sertifikat dan otoritas ElyCA
•
Tuning Installasi MySQL
•
Menginstall server LDAP dan mengkonfigurasi OpenLDAP / Email / SMTP pada *nix.
•
Netscape Directory Server
•
Netscape Certificate Management System
Selebihnya setelah rilis ini: •
mod_log_forensic untuk Apache.
•
Menyembunyikan versi ssh.
•
Dukungan Fedora (YUM, RPM-apt).
•
Menambahkan psad ke HOWTO keamanan.
•
Installasi sXad dan konfigurasi.
•
Bastille Linux / LSAD.
95
Bagaimana Menginstall dan Mengamankan eGroupWare
14.2 Perubahan pada buku * Minggu 05 Desember 2004 Reiner Jung 0.5 - Memperbaiki kesalahan pada pembatasan File pada Apache (Keamanan) - Contoh file konfigurasi Aide - Kapan Anda harus update - Troubleshooting diperluas - Menginstall eGroupWare dengan installer bitrock - Update cvs ke versi stabil - Pengaturan filesystem dari server - Membatasi akses ke setup - Firewall Merencanakan sebuah firewall Bagaimana menciptakan aturan firewall Contoh script firewall Menginstall script firewall Analisa file log Firewall Contoh file firewall untuk didownload - File Config untuk didownload - Backup dan mengembalikan database Anda Menentukan solusi backup Membackup database MySQL secara manual Membackup MySQL dengan jadwal cron harian Mengembalikan database MySQL Anda Script backup MySQL untuk didownload Membackup database PostgreSQL secara manual Script backup Postgresql Membuat jadwal cron untuk PostgreSQL Mengembalikan database PostgreSQL Anda Script backup PostgreSQL untuk didownload - Menginstall eGroupWare dengan installer Windows Bitrock * Kamis 18 Mei 2004 Reiner Jung 0.4 - Lisensi berubah ke creative commons - Membangun paket SuSE dari source RPM - Keamanan dan Optimisasi Apache - Enkripsi SQL untuk password user dimungkinkan - Setup menyediakan account prefix untuk installasi LDAP - Select pada setup case sensitive username - Troubleshooting ditambahkan - Mengamankan eGroupWare dengan ModSecurity - update file header.inc.php - Mengamankan installasi PHP diupdate
96
Bagaimana Menginstall dan Mengamankan eGroupWare
Pembatasan basedir yang terbuka menonaktifkan log kesalahan - Setup IDS (Intrusion Detection System) Lanjut - Merubah Installasi Cepat menjadi Installasi Kilat dan memperluasnya - Installasi kilat menyertakan Windows - Menginstall logfile analyser (logcheck) - Turck-mmcache extended Bagaimana menginstall mmcache pada RedHat Enterprise Linux Kebutuhan untuk menginstall mmcache * Minggu 22 November 2003 Reiner Jung 0.3 - Update eGroupWare Update dengan paket Update dari CVS - Menginstall dari RPM ke path lain seperti /var/www/html - Peta Software Menambahkan software dan lisensi dari semua bagian dari dokumen 03 - Beberapa kesalahan pengetikan diperbaiki Kesalahan Penulisan kunci GPG diperbaiki - Verifikasi kunci GPG ditambahkan - Menciptakan sertifikat https - Mengamankan installasi PHP * Jumat 16 September 2003 Reiner Jung 0.2 - Beberapa kesalahan pengetikan diperbaiki Memperbaiki kesalahan pada dokumentasi installasi CVS dan mmcache - how to chkrootkit ditambahkan Contoh Checkrootkit Pengujian Installasi rootkit RPM Pengujian Installasi rootkit tar.gz - uji server Anda untuk layanan yang tidak dibutuhkan / port yang terbuka Port yang dibutuhkan server eGW portscanner Output dari portscanner Menonaktifkan layanan/server yang tidak dibutuhkan - menguninstall software yang tidak dibutuhkan - mengamankan administrasi (ssh/sshd) Menghubungkan server Anda dengan secure session Bekerja dengan pasangan kunci ssh Menciptakan pasangan kunci yang aman Menyalin kunci publik ke server Peralatan ssh-add, mengamankan ssh client Anda Mengamankan sshd Anda
97
Bagaimana Menginstall dan Mengamankan eGroupWare
15 Kontributor Dokumen
Orang-orang berikut ini telah berkontribusi pada HOWTO “Bagaimana Menginstall dan Keamanan”: Terjemahan Brazil Portugis:
Roger de Souza Moraes, Leandro Arruda, Renato Cintra, Tales Costa
Perancis:
Patrice Lallement (v0.3)
Spanyol:
Oscár Manuel Gómez Senovilla
Indonesia:
Willy Sudiarto Raharjo
Traditional Chinese:
Finjon Kiang
Pembuktian dan Perbaikan kata-kata Inggris:
Jeff Mitchell (v0.4, 0.5) Geltmar von Buxhoeveden (v0.3)
Penulis Kedua Versi Windows
John W. Brown
Karyaseni dan Prepress
Andreas Krause
98
Bagaimana Menginstall dan Mengamankan eGroupWare
16 Humanly-Readable License
Attribution-ShareAlike 2.0 You are free: •
to copy, distribute, display, and perform the work
•
to make derivative works
•
to make commercial use of the work
Under the following conditions:
Attribution. You must give the original author credit.
Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one.
•
For any reuse or distribution, you must make clear to others the license terms of this work.
•
Any of these conditions can be waived if you get permission from the author.
Your fair use and other rights are in no way affected by the above. This is a human-readable summary of the Legal Code (the full license) 26.
26 http://creativecommons.org/licenses/by-sa/2.0/legalcode
99
Bagaimana Menginstall dan Mengamankan eGroupWare
17 Index
A
Firewall builder.............................................................. 45 Firewall logfile analyse.................................................. 53
AIDE ........................................................................38, 93 AIDE cronjob .................................................................41 AIDE init ........................................................................40
Firewall planning........................................................... 44 Firewall script ................................................................ 46 fwlogwatch .................................................................... 53
AIDE report ....................................................................43 aide.conf .........................................................................39
H
Apache modules .............................................................57
Header Admin................................................................ 14
Apache security ..............................................................57
header.inc.php.......................................................... 18, 75
Application security........................................................53 B
I IIShield .......................................................................... 53
Backup............................................................................93
Install ModSecurity ....................................................... 54
Backup solutions ............................................................68
Installing from CVS....................................................... 27
Basic Server Security......................................................28
Intrusion detection ......................................................... 38
Bitrock installer ..............................................................25
Iptables .......................................................................... 94
C CACert............................................................................63
Iptables example script .................................................. 46 K
Certificate .......................................................................63
Key for the RPM............................................................ 21
Certificate install.............................................................66
Keyserver....................................................................... 21
Certificate signing request ..............................................64
L
Chkrootkit.......................................................................32 Chkrootkit tar.gz.............................................................34 chkrootkit_cronfile..........................................................34
LDAP............................................................................. 80 Log files......................................................................... 37 Logcheck ....................................................................... 37
D Database backup .............................................................68 DB Host ..........................................................................76
Logsurfer ....................................................................... 37 Logwatch ....................................................................... 37 M
DB name .........................................................................76 DB password ..................................................................76 DB type...........................................................................76 DB user...........................................................................76 Dynamic Shared Object..................................................54
md5sum ......................................................................... 22 Migrating from phpGroupWare..................................... 16 MMCache ...................................................................... 58 ModSecurity .................................................................. 53 ModSecurity log ............................................................ 56
E EGROUPWARE-GPG-KEY..........................................21 F
ModSecurity testing....................................................... 55 MsSQL .......................................................................... 10 MySQL ........................................................ 10, 67, 69, 73 MySQL backup ............................................................. 69
Firewall...........................................................................44 100
Bagaimana Menginstall dan Mengamankan eGroupWare
MySQL cronjob..............................................................69
SMTP server .................................................................. 10
MySQL restore ...............................................................70
SQL server..................................................................... 67
N
SSH................................................................................ 35 SSH key pair create ....................................................... 36
Nmap ..............................................................................30 O Open ports ......................................................................29 P Partitioning .....................................................................28 PHP security ...................................................................62 phpize .............................................................................58 Portscanner .....................................................................30 Portscanner output ..........................................................30
SSH key pairs ................................................................ 36 SSH public key .............................................................. 36 ssh-keygen ..................................................................... 36 T Thawte ........................................................................... 63 Tripwire ......................................................................... 38 Turck MMCache............................................................ 58 U Updating eGroupWare................................................... 17
PostgreSQL.........................................................10, 71, 73 V R Verisign ......................................................................... 63 Rootkit hunter.................................................................32 Running services ............................................................29 S
W Web server............................................................... 10, 67 Web server certificate.................................................... 63
Samhain ..........................................................................38 Setup / Config Admin.....................................................76 Shoorewall......................................................................45
101
Bagaimana Menginstall dan Mengamankan eGroupWare
Kesalahan:
102