Halaman

Kamis, 09 Juni 2011

Enkripsi

Enkripsi adalah proses mengacak data sehingga tidak dapat dibaca oleh pihak lain. Pada kebanyakan proses enkripsi, Anda harus menyertakan kunci sehingga data yang dienkripsi dapat didekripsikan kembali. Ilmu yang mempelajari teknik enkripsi disebut kriptografi. Gambaran sederhana tentang enkripsi, misalnya mengganti huruf a dengan n, b dengan m dan seterusnya. Model penggantian huruf sebagai bentuk enkripsi sederhana ini sekarang tidak dipergunakan secara serius dalam penyembunyian data. ROT-13 adalah program yang masih suka dipergunakan. Intinya adalah mengubah huruf menjadi 23 huruf didepannya. Misalnya b menjadi o dan seterusnya. Pembahasan enkripsi akan terfokus pada enkripsi password dan enkripsi komunikasi data

Enkripsi Password

Password di Linux dibuat dengan menggunakan metode tingkat lanjut dalam enkripsi, yakni DES (Data Encryption Standard). Menurut Federal Processing Standards Publication 46-2, DES didefinisikan sebagai ;

Sebuah algoritma matematika untuk menjalankan enkripsi (enchypering) dan dekripsi (dechypering) informasi koding binary. Enkripsi mengkonversikan data menjadi bentuk yang sulit ditebak, disebut chyper. Proses dekripsi cypher mengkonversikan data kedalam bentuk aslinya, disebut plain-text. (terjemahan bebas)
Enkripsi dan dekripsi dilakukan tergantung pada kunci (key). Kunci ini dibuat berdasarkan masukan dari user pada saat mengetikkan password terdiri dari binary 64 digit. Jika password yang diketikkan kurang dari binary 64 digit, maka DES akan menambahkannya secara otomatis. Dari binary 64 digit, 56 dipergunakan untuk enkripsi, dan 8 dipergunakan untuk cek kesalahan (error checking). Saat seorang penyusup (atau siapa saja) akan melakukan crack terhadap password di Linux, mereka biasanya mempergunakan kamus (dictionary attack). Saat melakukan crack, penyusup akan mengambil kata-kata dari kamus, kemudian mengenkripsinya dengan DES. Dalam proses ini, kata demi kata diberikan secara terus menerus, kemudian diproses sebagaimana Linux memproses passwordnya. Hasilnya akan dicocokkan dengan daftar yang ada di /etc/passwd. Jika cocok, program cracker akan memberitahukan kepada penyusup, bahwa password sudah berhasil ditemukan.
Untuk meningkatkan keamanan password dalam jaringan Anda, baca kembali sub bab tentang Discretionary Access Control.

Enkripsi komunikasi data

Di dalam Internet (atau intranet) data yang dikirimkan dari satu komputer ke komputer lainnya, pasti melewati komputer-komputer lain. Ambil contoh, pada saat Anda memasukkan password untuk mengecek account email di hotmail, data akan dikirim dalam bentuk teks biasa melewati beberapa host sebelum akhirnya diterima oleh hotmail. Pernahkah Anda berfikir bahwa salah satu dari komputer yang dilewati oleh data Anda dipasangi program sniffer?
Sniffer adalah program yang membaca dan menganalisa setiap protokol yang melewati mesin di mana program tersebut diinstal. Secara default, sebuah komputer dalam jaringan (workstation) hanya mendengarkan dan merespon paket-paket yang dikirimkan kepada mereka. Namun demikian, kartu jaringan (network card) dapat diset oleh beberapa program tertentu, sehingga dapat memonitor dan menangkap semua lalu lintas jaringan yang lewat tanpa peduli kepada siapa paket tersebut dikirimkan.
Kembali ke contoh tadi, jalankan traceroute untuk mengetahui berapa banyak host/komputer yang dilewati data Anda. Lakukan test berikut pada saat komputer sedang online.
# traceroute www.hotmail.com

1  * * nas1-3.cbn.net.id (202.158.2.228)  1610.03 ms

 2  nas1-rtif.cbn.net.id (202.158.2.225)  129.58 ms  119.94 ms  119.881 ms

 3  * 203.127.108.137 (203.127.108.137)  620.031 ms  679.721 ms

 4  202.160.250.29 (202.160.250.29)  639.809 ms  629.684 ms  710.019 ms

 5  202.160.250.6 (202.160.250.6)  619.77 ms  939.703 ms  819.83 ms

 6  S-0-0-0-explorer.ix.singtel.com (202.160.255.214)  849.86 ms  829.723 ms  829.886 ms

 7  s4-1-0.paloalto-cr13.bbnplanet.net (4.0.17.249)  810.22 ms  901.074 ms  818.614 ms

 8  p2-2.paloalto-nbr2.bbnplanet.net (4.0.2.221)  819.889 ms  799.684 ms  809.797 ms

 9  p2-0.paloalto-cr1.bbnplanet.net (4.0.6.78)  809.877 ms  819.611 ms  839.936 ms

10  p0-0.mshotmail.bbnplanet.net (4.0.24.14)  809.757 ms  889.695 ms  849.887 ms

11  * * *

12  law5-rsp-c.hotmail.com (216.32.183.14)  870.029 ms  879.73 ms  869.859 ms

13  lc2.law5.hotmail.com (209.185.243.135)  929.954 ms *  870.017 ms


Catatan :

Pada mesin Windows Anda juga dapat melakukan tes serupa dengan menjalankan perintah tracert pada prompt. Misal c:\>tracert www.hotmail.com

Untuk menjaga data yang dikomunikasikan, Anda dapat menerapkan beberapa  program enkrisi komunikasi data. Di antaranya yang terkenal adalah secure shell (ssh), dan secure socket layer (SSL).

Secure Shell (SSH)

Menurut RFC (Request For Comment) dari Secure Shell (SSH):

Secure Shell adalah program yang melakukan loging terhadap komputer lain dalam jaringan, mengeksekusi perintah lewat mesin secara remote, dan memindahkan file dari satu mesin ke mesin lainnya.
Algoritma enkripsi yang didukung oleh SSH di antaranya BlowFish (BRUCE SCHNEIER), Triple DES (Pengembangan dari DES oleh IBM), IDEA (The International Data Encryption Algorithm), dan RSA (The Rivest-Shamir-Adelman). Dengan berbagai metode enkripsi yang didukung oleh SSH, Anda dapat menggantinya secara cepat jika salah satu algoritma yang Anda terapkan mengalami gangguan.

Instalasi SSH

Saat ini SSH dalam bentuk kode sumber dapat diperoleh dihttp://www.ssh.fi, sedangkan binarynya untuk klien dan server dapat Anda peroleh dihttp://www.replay.com. Beberapa paket program utama yang dijadikan satu paket dalam SSH suite adalah :

  1. make-ssh-known-host Skrip Perl yang membuat database dari host-host yang otomatis dibuat berdasarkan domain.
  2. scp The Secure Shell Copy Program, mengamankan penggAndaan data dari satu komputer ke komputer lainnya. Data ditransfer dalam bentuk enkripsi oleh SSH.
  3. ssh The Secure shell client, program yang bekerja seperti telnet. Perintah dapat Anda jalankan secara remote sebagaimana telnet bekerja.
  4. ssh-add Menambahkan kunci (key) baru terhadap autentikasi ssh-agent
  5. ssh-agent Digunakan untuk autentikasi lewat jaringan dengan model RSA.
  6. sshd Secure shell server, secara default bekerja pada port 22.
  7. ssh-keygen Program pembuat kunci (key generator) untuk ssh.
Untuk instalasinya mempergunakan langkah-langkah standar dalam kompilasi dan instalasi program yang berbentuk kode sumber. $ gunzip ssh-1.2.27 | tar xvf -
$ cd ssh-1.2.27
$ ./configure
$ make
$ su
password :
# make install
 
Selesai proses instalasi, Anda dapat mulai mengedit file konfigurasi untuk SSH :

  • /etc/sshd_config (File konfigurasi server)
  • /etc/ssh_config (File konfigurasi klien)

    Konfigurasi Server

    Secara default, /etc/sshd_config Anda akan tampak sebagai berikut :
    Port 22

    ListenAddress 0.0.0.0

    HostKey /etc/ssh_host_key

    RandomSeed /etc/ssh_random_seed

    ServerKeyBits 768

    LoginGraceTime 600

    KeyRegenerationInterval 3600

    PermitRootLogin yes

    IgnoreRhost no

    StrictModes yes

    QuietMode no

    X11Forwarding yes

    X11DisplayOffset 10

    FascistLogging no

    PrintMod yes

    KeepAlive yes

    SyslogFacility DAEMON

    RhostsAuthentication no

    RhostsRSAAuthentication yes

    PasswordAuthentication yes

    PermitEmptyPasswords yes

    UserLogin no

    # Checkmail no

    #PidFile /u/zappa/.ssh/pid

    # AllowHosts *.our.com friend.other.com

    # DenyHosts lowsecurity.theirs.com *.evil.org evil.org

    # Umask 022

    #SilentDeny yes

    Sebagai referensi dalam mengedit konfigurasi tersebut, berikut penjelasan tentang fungsi-fungsi dari beberapa parameter yang perlu :

    Table: Parameter /etc/sshd_config
    Parameter/etc/sshd_config Parameter Penjelasan
    AllowGroups [groups] Digunakan untuk mengontrol grup yang dapat memanfaatkan fasilitas SSH. Antar grup dipisahkan dengan spasi. Misal AllowGroups root user
    AllowHosts [hosts] Dipergunakan untuk mengontrol host-host yang dapat mengakses layanan SSH. Host dapat diberikan dalam bentuk nama atau nomor IP. Misalnya AllowHosts *.pasarrumput.com 192.168.11.1
    AllowTCPForwarding Dipergunakan untuk menentukan apakah TCP forwarding diperbolehkan. Secara default di set yes.
    CheckMail Digunakan untuk menentukan apakah user yang sedang login dengan ssh diberitahu jika ada email masuk atau tidak. Secara default diset yes.
    DenyGroups Digunakan untuk mengontrol grup yang tidak diperbolehkan untuk memanfaatkan fasilitas SSH. Sebagaimana AllowGroup, parameter ini menggunakan spasi untuk memisahkan grup satu dengan lainnya.
    DenyHosts Untuk mengontrol host-host yang tidak diperbolehkan untuk mengakses layanan SSH.
    FascistLogging Untuk menentukan apakah sshd menjalankan aktivitas logging
    HostKey Untuk menentukan letak file kunci dari host. Secara default file kunci ada di /etc/ssh_host_key
    IdleTimeout Untuk menentukan waktu pemutusan layanan jika ada session yang tidak melakukan aktivitas.
    IgnoreRhosts Untuk menentukan apakah sshd membaca file .rhosts atau tidak.
    KeepAlive Untuk menentukan apakah sshd mengirimkan pesan bahwa layanan masih berjalan atau tidak
    LoginGraceTime Untuk menentukan waktu jeda saat user bisa login kembali akibat kegagalan login pada sesi sebelumnya
    PermitEmptyPassword Untuk menentukan apakah diperbolehkan atau tidak user mengirimkan password kosong
    PermitRootLogin Untuk menentukan apakah root dapat log in dengan ssh, dan jika diperbolehkan apakah masih perlu autentikasi password
    PrintMod Untuk menentukan apakah sshd perlu menyampaikan motd (message of the day) saat user login
    RSAAuthentication Untuk menentukan apakah sshd menggunakan autentikasi model RSA
    ServerkeyBits Untuk menentukan berapa bit yang dipakai sebagai kunci untuk server
    SilentDeny Untuk menentukan sshd menolak terhadap suatu session tanpa pemberitahuan sama sekali
    StrictModes Untuk menentukan sshd mengecek hak akses file terhadap home direktori sebagai pertimbangan untuk menerima atau menolak suatu login
    X11Forwarding Untuk
       

    Untuk menjalankan sshd, cukup ketikkan sshd sebagai root.
    # sshd
    Ada beberapa pilihan dalam menjalankan sshd. Pilihan ini diketikkan sebagai prefiks saat menjalankan sshd. Misal :
    # sshd -g 60 (menjalankan sshd dengan timeout untuk klien 60 detik)

    Table: Pilihan saat menjalankan sshd
    Pilihan (prefiks) Fungsi
    -b [bits] Dipergunakan untuk menentukan berapa bit yang dipergunakan sebagai kunci. Secara default dipakai 768 bits.
    -d Dipergunakan untuk menjalankan dalam modus DEBUG. Ini berguna untuk mengamati proses server yang sedang berjalan.
    -f [config-file] Dipergunakan untuk menentukan file config yang lain selain yang ditunjuk secara default (/etc/sshd_config)
    -g [timeout] Dipergunakan untuk menentukan timeout jika ada pengguna yang meminta sebuah sesi tetapi tidak melakukan autentikasi. Defaultya 600 detik. Disarankan untuk mengeset ke 60 detik.
    -h [host-key] Dipergunakan untuk menentukan alternatif lain dari file host key. Defaulntya adalah /etc/ssh_host_key.
    -i Dipergunakan untuk menjalankan sshd dari inetd. Namun oleh pembuatnya disarankan untuk tidak dijalankan lewat inetd. Hal ini disebabkan karena sshd harus membuat key untuk tiap sesi, sehingga mempengaruhi kinerja daemon lain yang dijalankan lewat inetd.
    -k Dipergunakan untuk mengeset waktu, berapa lama sshd harus membuat (generating) kunci (session key) yang baru. Defaultnya adalah sekali dalam sejam. Jika diset 0 maka sshd tidak akan pernah membuat session key yang baru.
    -p [port] Dipergunakan untuk menentukan port alternatif bagi sshd. Defaultnya adalah port 22.
    -q Dipergunakan untuk mematikan logging (tidak melakukan pencatatan terhadap aktifitas sshd.
       

    Untuk klien, ssh mempergunakan file /etc/ssh_config. Secara default file tersebut berisi :
    # This is ssh client systemwide configuration file. This file provides 
    # default for users, and the values can be changed in per-user #configuration 
    # files or on yhe command line.

     

    # configuration data is parsed as follows: 
    # 1. Command line options 
    # 2. User- specificc file 
    # 3. Systemwide file 
    # Any configuration value is only change the first time it is set. 
    # Thus, host-specific definitistion should be at the beginning of the 
    # configuration file, and defaults at the the end.

     

    # Sitewide defaults for various options

     

    # Host * 
    #   ForwardAgent yes 
    #   ForwardX11 yes 
    #   RhostsAuthentication yes 
    #   RhostRSAAuthentication yes 
    #   RSAAuthentication yes 
    #   TISAuthentication no 
    #   PasswordAuthentication yes 
    #   FallBackToRsh yes 
    #   UserRSH no 
    #   BatchMode no 
    #   StrictHostKeyChecking no 
    #   IdentifyFile -/.ssh/identity 
    #   Port 22 
    #   Chiper idea 
    #   EscapeChar -

    Tabel berikut menjelaskan parameter yang dipergunakan dalam file ssh_config

    Table: Parameter ssh_config (untuk klien ssh)
    Pilihan Fungsi
    BatchMode [yes/no] Dipergunakan untuk meminta username dan kata kunci pada saat koneksi dimulai.
    Cipher [cipher] Dipergunakan untuk menentukan metode enkripsi. Pilihannya adalah idea, des, 3des (triple DES), blow-fish, arcfour, dan none.
    ClearA11Forwadings Dipergunakan untuk meminta agar ssh meneruskan untuk membaca beberapa file konfigurasi dalam satu sesi.
    Compression [yes/no] Dipergunakan untuk meminta ssh menggunakan kompresi selama sesi berjalan.
    Compressionlevel [0-9] Dipergunakan untuk menentukan level kompresi. Semakin kecil nomornya, kompresi semakin cepat, tapi kualitas lebih jelek. Paling besar adalah 9, memberikan kompresi dengan kualitas bagus, tapi memperlambat kinerja.
    ConnectAttempts [#] Dipergunakan untuk menentukan berapa kali ssh akan mencoba berkoneksi kembali saat sebuah sesi tidak berhasil di inisialisasikan.
    EscapeChar [charracter] Dpergunakan untuk menentukan karakater Escape.
    FallBackToRsh [yes/no] Dipergunakan untuk menentukan apakah ssh harus berpindah ke rsh jika koneksi ke ssh server tidak berhasil.
    ForwardAgent [yes/no] Dipergunakan untuk menentukan apakah koneksi dengan program autentikasi lain akan diteruskan atau tidak.
    ForwardX11 [yes/no] Dipergunakan untuk meneruskan sesi X11 secara otomatis.
    GetewayPorts [yes/no] Dipergunakan untuk menentukan apakah host remote dapat tersambung secara lokal lewat port yang meneruskannya.
    Hostname [hostname] Dipergunakan untuk menentukan nama host yang login secara default.
    Identityfile [file] Dipergunakan untuk menetukan file alternatif identitas RSA. Defaultnya adalah .ssh/identity.
    KeepAlive [yes/no] Dipergunakan untuk menentukan apakah klien ssh mengirimkan pesan secara terus menerus kepada server remote.
    KerberosAuthentication Dipergunakan untuk menentukan ssh memakai autentikasi Kerberos 5.
    KerberosTgtPassing Dipergunakan untuk menentukan ssh memakai Kerberos ticket passing.
    LocalForwading Port host:port Dipergunakan untuk menentukan ssh meneruskan port lokal kepada host remote.
    PasswordAuthentication [yes/no] Dipergunakan untuk menentukan ssh memakai autentikasi basis password.
    PasswordPromptHost [yes/no] Dipergunakan untuk menentukan apakah host remote diperlihatkan dalam prompt login.
    PasswordLogin [yes/no] Dipergunakan untuk menentukan ssh memperlihatkan host remote pada saat autentikasi.
    Port [port] Dipergukan untuk menentukan port alternatif.
    RhostsAuthentication Dipergunakan untuk menentukan apakah autentikasi rhost dapat dipergunakan. Jangan dipergunakan tanpa alasan yang kuat, sebab rhost kurang aman.
    RhostsRSAAuthentication Dipergunakan untuk menentukan ssh memakai autentikasi rhost dan RSA pada saat koneksi dimulai.
    SrictHostKeyChecking Dipergunakan untuk menentukan apakah ssh menambahkan secara otomatis host key baru ke host file. Pilihannya adalah yes, no, dan ask.
       

    Klien windows dapat memmanfaatkan SSH dengan mempergunakan program telnet Tera Term Pro + TTSSH for Windows. Secara default Tera Term Pro tidak mendukung ssh, untuk itu perlu ditambahkan program TTSSH for Windows. Terra Term Pro dapat diperoleh di 
    http://hp.vector.co.jp/authors/VA002416/teraterm.html. Sedangkan TTSSH dapat diperoleh di
    http://www.zip.com.au/roca/ttssh.html.

    SSL (Secure Socket Layer)

    SSL merupakan salah satu metode enkripsi dalam komunikasi data yang dibuat oleh Netscape Communication Corporation. Sebagaimana yang dijelaskan dalam SSL Protocol Internet Draft (The SSL Protocol, Version 3.0 oleh ALAN O. FREIER dan PAUL C. KOCHER, dapat Anda buka di http://home.netscape.com/eng/ssl3/ssl-toc.html.

    SSL adalah Protokol berlapis. Dalam tiap lapisannya, sebuah data terdiri dari panjang, deskripsi dan isi. SSL mengambil data untuk dikirimkan, dipecahkan kedalam blok-blok yang teratur, kemudian dikompres jika perlu, menerapkan MAC, dienkripsi, dan hasilnya dikirimkan. Di tempat tujuan, data didekripsi, verifikasi, dekompres, dan disusun kembali. Hasilnya dikirimkan ke klien di atasnya. (terjemahan bebas).
    SSL hanya mengenkripsikan data yang dikirim lewat http. Bagaimana SSL berjalan dapat digambarkan sebagai berikut :
  • Pada saat koneksi mulai berjalan, klien dan server membuat dan mempertukarkan kunci rahasia, yang dipergunakan untuk mengenkripsi data yang akan dikomunikasikan. Meskipun sesi antara klien dan server diintip pihak lain, namun data yang terlihat sulit untuk dibaca karena sudah dienkripsi.
  • SSL mendukung kriptografi public key, sehingga server dapat melakukan autentikasi dengan metode yang sudah dikenal umum seperti RSA dan Digital Signature Standard (DSS).
  • SSL dapat melakukan verifikasi integritas sesi yang sedang berjalan dengan menggunakan algoritma digest seperti MD5 dan SHA. Hal ini menghindarkan pembajakan suatu sesi.
Lebih lanjut artikel yang saya sarankan untuk dibaca untuk mengetahui lebih dalam tentang SSL (semuanya berbahasa Inggris) :
  1. Analysis of the SSL 3.0Protocol,DAVID WAGNER dan BRUCE SCHENEIDER
    http://www.counterpane.com/ssl.html
  2. Introducing SSL and Certificates, menjelaskan keuntungan sertifikasi SSL; 
    http://www.ultranet.com/fhirsch/Papers/cook/ssl_intro.html
  3. Securing Communications on the Intranet and Over the Internet, TAHEL ELGAMAL, JEFF TREUHAFT, danFRANK CHEN, Netscape Communications Corporation; 
    http://www.go-digital.net/whitepapers/securecomm.html
  4. The Secure Socket Layer Protocol and Applications, ALLAN SCHIFFMAN, Terisa Systems,Inc; 
    http://www.terisa.com:80/presentations/ams/ssl/index.htm
     

    SSL dengan Apache

    Menambahkan SSL kedalam apache membutuhkan prosedur yang cukup rumit. Sebelum Anda memulainya, pastikan bahwa Anda benar-benar membutuhkan. SSL biasa dipakai untuk aplikasi e-commerce untuk verifikasi keabsahan kartu kredit atau untuk formulir yang berisi data penting. Jika memang Anda belum berencana untuk menggunakannya, lewati saja bagian ini, dan coba nanti jika Anda menginginkanya.
    Program yang dibutuhkan :
  5. Apache 1.2.6 atau lebih
  6. SSLeay ; ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-0.8.1b.tar.gz
  7. Patch SSL untuk Apache; ftp://ftp.ox/ac/uk/pub/crypto/SSL/Apache-SSL/, sebagai contoh
    apache_1_2_6+ssl_1_17.tar.gz
Catatan:

Jika Apache sudah terinstall dalam komputer Anda, maka perlu dijalankan instalasi ulang, agar patch SSL bisa dimasukkan.
Proses pertama, ekstrak dan instal program SSLeay $ cp SSLeay-0.8.1b.tar.gz /usr/src

$ cd /usr/src

$ tar -zxvf SSLeay-0.8.1b.tar.gz

$ cd /SSLeay-0.8.1b

$ perl ./Configure linux-elf


Catatan:

Configure Linux-elf hanya berjalan hanya untuk mesin Linux. Untuk mengetahui pilihan-pilihan configure-nya jalankan perintah # perl ./Configure
$ make
$ make rehash

$ make install

Proses selanjutnya adalah ekstrak dan instal Patch SSL untuk Apache ke dalam direktori sumber Apache.
# cp apache_1_2_6+SSL_1_17.tar.gz /usr/src/apache-1.2.6

# cd /usr/src/apache-1.2.6

# tar -zxvf apache_1_2_6+SSL.tar.gz

Yang akan diekstrak adalah :

  • ben.pgp.key.asc- Kunci PGP dari penyusun program
  • EXTRAS.SSL - dokumentasi tambahan fitur
  • LICENSE.SSL - Lisensi Apache SSL
  • Md5sums - MD5 checksums untuk file-file yang diekstrak
  • Md5sums.asc - tandatangan md5sums dari penyusun program
  • README.SSL - dokumentasi pengenalan singkat
  • SECURITY- Artikel tentang keamanan dari sistem SSL
  • Src/apache_ssl.c - Modul tambahan untuk Apache
  • SSLconf/conf/access.conf - file konfigurasi akses untuk apache yang masih kosong
  • SSLconf/conf/httpd.conf - Contoh file httpd.conf (file konfigurasi untuk Apache)
  • SSLconf/conf/mime.types - contoh file konfigurasi mime.types
  • SSLpatch- File patch yang akan dipergunakan.
Setelah file diekstrak, jalankan patch SSL # patch -p1 < SSLpatch
Lalu pindah ke/usr/src/apache-1.2.6/src, kopikan fileConfiguration.tmpl menjadiconfiguration. Edit file configuration, dan ganti variabel SSL_BASE untuk menunjuk ke direktori SSLeay yang sebelumnya telah diinstall.
# cp Configuration.tmpl /usr/src/apache-1.2.6/src

# cd /usr/src/apache-1.2.6/src

# pico Configuration.tmpl

Ganti baris # SSL_BASE= /u/ben/cork/scuzzy-ssleay6 menjadi
SSL_BASE=/usr/src/SSLeay-0.8.1b

TekanCtrl-Xuntuk menyimpan, dan jalankan program make untuk apache.
# make
Pastikan bahwa prosedur yang dijalankan telah berjalan dengan benar. Cek apakah make telah membuat file httpsd. Jika ada, maka semuanya berjalan dengan baik.
Setelah itu, edit file sertifikasi SSL yang terletak di /usr/local/ssl/lib. Nama filenya ssleay.cnf. Sesuaikan isiannya dengan kebutuhan Anda, dan jalankan make certificate.
# make certificate
Proses ini akan menghasilkan file httpsd.pem yang terletak di /usr/src/apache_1.2.6/SSLconf/conf.
Selanjutnya, sebelum Apache dijalankan, Anda perlu cek terlebih dahulu file konfigurasi httpsd (sebagaimana file konfigurasi Apache yang telah dibahas sebelumnya, yakni httpd.conf, access.conf dan srm.conf). Cek parameter-paremeter yang berkaitan dengan SSL, seperti contoh berikut :
SSLCACertificatePath /var/httpd/conf

SSLCACertificateFile /var/httpd/conf/httpsd.pem

SSLCertificateFile /var/httpd/conf/httpsd.pem

SSLLogFile /var/httpd/logs/ssl.log

SSLCacheServerPort 8080

SSLCacheServerPath /usr/src/SSLeay-0.8.1b

SSLSessionCacheTimeout 10000

Untuk menjalankan Servernya dengan menunjuk file konfigurasi yang telah dibuat, cukup jalankan perintah :
# httpsd -f  /var/httpd/conf/httpd.conf

Logging

Linux memiliki fasilitas logging yang sangat komprehensif. Untuk yang baru saja bermigrasi ke Linux, mungkin belum terbiasa memanfaatkan logging. Pada sistem operasi non UNIX, kebanyakan meminimalkan logging, bahkan tidak ada sama sekali.
Logging adalah prosedur di mana sebuah sistem operasi atau aplikasi merekam setiap kejadian dan menyimpan rekaman tersebut untuk dapat dianalisa di kemudian hari. Kejadian yang direkam ini bisa saja menyangkut sistem operasi, atau khusus program-program tertentu saja.
Semua file log di Linux disimpan dalam direktori /var/log. Beberapa program/file log yang penting adalah :

lastlog

Berisi rekaman kapan user login terakhir kali. Yang ditampilkan adalah nama login, port dan waktu login terakhir kali. Untuk memanggilnya cukup ketikkan lastlog, dan berikut contoh outputnya.
# lastlog

Username         Port     From             Latest

root             tty1                      Tue Jul  3 18:55:24 +0700 2000

bin                                        **Never logged in**

daemon                                     **Never logged in**

adm                                        **Never logged in**

lp                                         **Never logged in**

sync                                       **Never logged in**

shutdown                                   **Never logged in**

halt                                       **Never logged in**

mail                                       **Never logged in**

alias                                      **Never logged in**

qmaild                                     **Never logged in**

qmaill                                     **Never logged in**

qmailp                                     **Never logged in**

qmailq                                     **Never logged in**

qmailr                                     **Never logged in**

qmails                                     **Never logged in**

xfs                                        **Never logged in**

postfix                                    **Never logged in**

sofyan                                     **Never logged in**

mysql                                      **Never logged in**

spawn            tty1                      Tue Jul  3 18:56:10 +0700 2000

last

Berisi rekaman user yang pernah login dengan mencarinya pada file /var/log/wtmp, sejak file tersebut dibuat.
# last

spawn    pts/0                         Tue Jul  3 18:57   still logged in  

spawn    tty1                          Tue Jul  3 18:56   still logged in  

root     tty1                          Tue Jul  3 18:55 - 18:56  (00:00)   

spawn    pts/0                         Tue Jul  3 18:08 - 18:57  (00:48)   

spawn    :0                            Tue Jul  3 18:07 - 18:55  (00:47)   

reboot   system boot  2.2.12           Tue Jul  3 18:07          (01:55)   

spawn    pts/0                         Tue Jul  3 09:31 - down   (04:18)   

spawn    :0                            Tue Jul  3 09:30 - 13:49  (04:18)   

spawn    pts/0                         Tue Jul  3 08:37 - 09:31  (00:54)   

spawn    :0                            Tue Jul  3 08:36 - 09:30  (00:54)   

spawn    pts/0                         Mon Jul  2 21:42 - 08:37  (10:54)   

spawn    :0                            Mon Jul  2 21:42 - 03:19  (05:37)   

reboot   system boot  2.2.12           Mon Jul  2 21:41          (16:08)   

spawn    pts/0                         Mon Jul  2 21:38 - down   (00:01)   

spawn    :0                            Mon Jul  2 21:38 - down   (00:01)   

root     tty1                          Mon Jul  2 21:30 - down   (00:09)   

reboot   system boot  2.2.12           Mon Jul  2 21:30          (00:09)   

root     tty1                          Mon Jul  2 21:26 - down   (00:02)   

reboot   system boot  2.2.12           Mon Jul  2 21:24          (00:04)   

root     tty1                          Mon Jul  2 21:03 - down   (00:06)   

reboot   system boot  2.2.12           Sun Jul  1 22:14          (10:38)   

spawn    pts/0                         Sun Jul  1 14:31 - down   (02:52)   

spawn    :0                            Sun Jul  1 14:31 - 17:24  (02:52)   

reboot   system boot  2.2.12           Sun Jul  1 14:30          (02:54)   

spawn    pts/0                         Sun Jul  1 12:04 - down   (00:02)   

spawn    :0                            Sun Jul  1 12:03 - 12:06  (00:02)   

reboot   system boot  2.2.12           Sun Jul  1 12:02          (00:03)   

 

wtmp begins Sun Jul  1 11:59:03 2000

xferlog

Mencatat semua informasi yang pernah login di ftp daemon. Data yang ditampilkan berupa waktu saat ini, durasi transfer file, host yang mengakses (baik nomor IP maupun nama host), jumlah file yang ditransfer, nama file, tipe transfer (Binary atau ASCII), perintah khusus yang diberikan (jika file dikompres atau tar), arah transfer (incoming, outgoing), modus akses (anonymous, guest, atau user resmi), nama user, layanan, metode otentikasi, dan user ID.
# less /var/log/xferlog

access_log

Berisi rekaman untuk layanan http (HyperText Transfer Protocol) atau layanan web server. Access_log biasanya terdiri dari Nomor IP dari pengakses, jam dan tanggal akses, printah atau permintaan, dan kode status.
# less /var/log/ access_log

error_log

Berisi rekaman pesan kesalahan atas service http atau web server. Error_log terdiri dari jam dan waktu, tipe kesalahan, alasan kesalahan, layanan, dan perintah yang dijalankan berikutnya (kadang-kadang).
# less /var/log/error_log

messages

Rekaman kejadian sistem dan kernel, ditangani oleh dua daemon;

  • syslogd merekam semua program yang dijalankan. Untuk mengkonfigurasikannya dapat mempergunakan syslog.conf.
  • klogd, menerima dan merekam pesan kernel
File messages dapat dilihat di /var/log/messages. Berikut contohnya : # less /var/log/messages

Deteksi Penyusupan (Intrusion Detection)

Deteksi penyusupan adalah aktivitas untuk mendeteksi penyusupan secara cepat dengan menggunakan program khusus yang otomatis. Program yang dipergunakan biasanya disebut sebagai Intrusion Detection System (IDS).
Tipe dasar dari IDS adalah:

  • Rule-based systems - berdasarkan atas database dari tanda penyusupan atau serangan yang telah dikenal. Jika IDS mencatat lalulintas yang sesuai dengan database yang ada, maka langsung dikategorikan sebagai penyusupan.
  • Adaptive systems - mempergunakan metode yang lebih canggih. Tidak hanya berdasarkan database yang ada, tapi juga membuka kemungkinan untuk mendeteksi terhadap bentuk bentuk penyusupan yang baru.
Bentuk yang sering dipergunakan untuk komputer secara umum adalah rule-based systems. Pendekatan yang dipergunakan dalam rule-based systems ada dua, yakni pendekatan pencegahan (preemptory) dan pendekatan reaksi (reactionary). Perbedaannya hanya masalah waktu saja. Pendekatan pencegahan, program pendeteksi penyusupan akan memperhatikan semua lalu lintas jaringan. Jika ditemukan paket yang mencurigakan, maka program akan melakukan tindakan yang perlu. Pendekatan reaksi, program pendeteksi penyusupan hanya mengamati file log. Jika ditemukan paket yang mencurigakan, program juga akan melakukan tindakan yang perlu.
Beberapa contoh program IDS di antaranya:

  1. chkwtmp Program yang melakukan pengecekan terhadap entri kosong. Dalam arti, wtmp mencatat sesuatu tapi isinya kosong. Program ini dapat diperoleh di 
    http://sunsite.ics.forth/gr/pub/systools/chkwtmp/chkwtmp-1.0.tar.gz.
  2. tcplogd Program yang mendeteksi stealth scan. Stealth scan adalah scaning yang dilakukan tanpa harus membuat sebuah sesi tcp. Sebuah koneksi tcp dapat terbentuk jika klien mengirimkan paket, dan server mengirimkan kembali paketnya dengan urutan tertentu, secara terus menerus sehingga sesi tcp dapat berjalan. Stealth scan memutuskan koneksi tcp sebelum klien menerima kembali jawaban dari server. Scaning model ini biasanya tidak terdeteksi oleh log umum di Linux. Tcplogd dapat diperoleh di http://www.kalug.net/tcplogd.
  3. hostsentry Program yang mendeteksi login anomali. Anomali disini termasuk perilaku aneh (bizzare behaviour), anomali waktu (time anomalies), dan anomali lokal (locale anomalies). Versi beta dari program ini dapat diperoleh di http://www.psionic.com/abacus/hostsentry.
 
 
 
 

 
 
 

Tidak ada komentar:

Posting Komentar