Professional Documents
Culture Documents
Keamanan merupakan isu utama dalam jaringan. Apalagi jika seluruh host tersambung ke
Internet. Melindungi jaringan, berarti melindungi setiap host yang ada dalam jaringan,
baik workstation maupun server. Fokus bahasan bab ini adalah melindungi linux server
Anda, baik ancaman dari luar jaringan (misalnya dari Internet), maupun internal jaringan
(ancaman dari salah satu user Anda). Pembahasan hanya menyentuh secara global,
dengan beberapa contoh program yang dapat dipergunakan. Tujuannya adalah untuk
memberikan kerangka berfikir dalam menyusun konsep keamanan dalam jaringan, dan
mempraktekannya lewat beberapa program yang dicontohkan.
• Kecerobohan salah satu pemakai tidak akan berpengaruh terhadap sistem secara
keseluruhan
• Masing-masing pemakai memiliki privacy yang ketat
Untuk itu account root biasanya hanya digunakan saat-saat tertentu saja. Misalnya
perbaikan sistem. Dan biasanya account root dipergunakan pada modus single user.
Dapat Anda bayangkan apa yang terjadi dengan jaringan Anda jika penyusup dari luar
memperoleh akses root.
Root merupakan satu-satunya account yang punya akses penuh ke seluruh sistem. Root
juga dipakai untuk mengadministrasi seluruh sistem, mengganti atribut file, hingga
mengadministrasikan divais. Karena itu, demi keamanan, root biasanya hanya dipakai
untuk perawatan atau perbaikan sistem saja. Untuk mengetahui atribut file :
$ ls -l
total 27
Subsections
• su (Substitute User).
• shadow.
• Pro aktif Password
o passwd+
o anlpasswd
o npasswd
su (Substitute User).
Jangan menggunakan user root untuk penggunaan sehari-hari. Jika memang mendesak,
jalankan program su. Program ini memungkinkan Anda menggunakan account root untuk
sementara. Caranya :
$ su
password :
Setelah Anda isi dengan benar, prompt akan berubah menjadi pagar. Jika telah selesai,
ketik exit
# exit
kembali ke prompt user. Selain su, dapat dipakai pula program sudo, yakni memberikan
beberapa user untuk dapat mengeksekusi program tertentu sebagai root. Konfigurasi
filenya berada di
/etc/sudoers
shadow.
Secara default, instalasi binary slackware, telah mengaktifkan shadow password. shadow
adalah program yang membuat file /etc/passwd menjadi dapat dibaca (readable) tetapi
tidak lagi berisi password, dan sebagai gantinya disimpan di file /etc/shadow.Berikut
contoh tipikal file passwd :
halt:x:7:0:halt:/sbin:/sbin/halt
root:x:0:0::/root:/bin/bash
operator:x:11:0:operator:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
bin:x:1:1:bin:/bin:
ftp:x:404:1::/home/ftp:/bin/bash
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/usr/lib/news:
uucp:x:10:14:uucp:/var/spool/uucppublic:
man:x:13:15:man:/usr/man:
games:x:12:100:games:/usr/games:
guest:x:405:100:guest:/dev/null:/dev/null
nobody:x:65534:100:nobody:/dev/null:
fade:x:1000:103:,,,:/home/fade:/bin/bash
alias:x:7790:2108::/var/qmail/alias:/bin/true
qmaild:x:7791:2108::/var/qmail:/bin/true
qmaill:x:7792:2108::/var/qmail:/bin/true
qmailp:x:7793:2108::/var/qmail:/bin/true
qmailq:x:7794:2107::/var/qmail:/bin/true
qmailr:x:7795:2107::/var/qmail:/bin/true
qmails:x:7796:2107::/var/qmail:/bin/true
Satu baris mencerminkan satu user, lengkap dengan atributnya. Berikut keterangan tiap
field :
Username:password:UserID:GroupID:keterangantambahan:homedirektori:shell
fade:x:1000:103:,,,:/home/fade:/bin/bash
• Username : fade
• Password : x
• User ID (UID) : 1000
• Group ID (GID) : 103
• Keterangan tambahan : -
• Home Direktori : /home/fade
• Shell Default : /bin/bash
Password dalam file ini dapat dibaca oleh setiap user, tapi yang tampak hanya x saja.
Password yang sebenarnya disimpan di file shadow (terenkripsi). Berikut file shadow dari
password diatas :
root:pCfouljTBTX7o:10995:0:::::
halt:*:9797:0:::::
operator:*:9797:0:::::
shutdown:*:9797:0:::::
sync:*:9797:0:::::
bin:*:9797:0:::::
ftp:*:9797:0:::::
daemon:*:9797:0:::::
adm:*:9797:0:::::
lp:*:9797:0:::::
mail:*:9797:0:::::
news:*:9797:0:::::
uucp:*:9797:0:::::
man:*:9797:0:::::
games:*:9797:0:::::
guest:*:9797:0:::::
nobody:*:9797:0:::::
fade:OihQw6GBf4tiE:10995:0:99999:7:::
alias:!:10995:0:99999:7:::
qmaild:!:10995:0:99999:7:::
qmaill:!:10995:0:99999:7:::
qmailp:!:10995:0:99999:7:::
qmailq:!:10995:0:99999:7:::
qmailr:!:10995:0:99999:7:::
qmails:!:10995:0:99999:7:::
Sebagai salinan dari /etc/passwd, shadow menyimpan satu record dalam satu baris yang
dibagi menjadi 9 bagian (dipisahkan oleh titik dua) :
• Nama user
• Password user
• Jumlah hari digantinya password sejak 1 Januari 1970
• Jumlah hari sebelum user diijinkan untuk mengubah password
• Jumlah hari sebelum user dipaksa untuk mengganti password
• Jumlah hari sebelum user diingatkan untuk mengganti password
• Jumlah hari yang tersisa di mana user harus mengganti password sebelum user
tersebut dihapus.
• Jumlah hari dihapusnya password sejak 1 Januari 1970
• Field terakhir dipakai sendiri oleh shadow
chfn
Menggantikan chfn bawaan Linux untuk bisa mengganti
informasi yang tampil di finger.
chsh
Menggantikan chsh bawaan Linux untuk mengganti shell
yang sudah di set secara default
gpasswd Menambah user baru ke dalam grup
groupadd Menambah grup
groupdell Menghapus grup
groupmod Modifikasi grup
grpck
Verifikasi dengan membandingkan antara /etc/group
dan /etc/passwd
id
Menggantikan id standar, berfungsi untuk menampilkan
UID (User ID) pada saat login.
login
Menggantikan login standar, sehingga bisa berinteraksi
dengan shadow untuk autentikasi
newgrp
Menggantikan perintah standar newgrp. User dapat
berganti group dalam satu session, setelah login kembali
passwd
Menggantikan perintah passwd standar, mengingat
shadow punya struktur yang berbeda.
pwck
Sinkronisasi antara /etc/passwd dan /etc/shadow.
Biasa dilakukan setelah menambah password atau user
pwconv
Menyatukan file /etc/passwd lama ke dalam file
shadow yang baru.
Pilihan ini sangat riskan, sebab program semacam crack, dapat menebaknya dengan
mencocokkan kamus yang ada dengan mudah. Bahkan program ini dapat diberikan
pilihan kombinasi. Untuk itu perlu dibuat kebijakan yang baik untuk password.
Catatan :
Crack dapat Anda peroleh di http://www.users.dircon.co.uk/crypto/index.html.
Anda dapat menggunakannya sebagai ujicoba untuk test seberapa jauh keamanan
password dalam jaringan Anda. Dokumentasinya dapat pula Anda peroleh di
http://alloy.net/writings/funny/crack_readme.txt.
Program pembantu dalam cek password di antaranya :
Subsections
• passwd+
• anlpasswd
• npasswd
passwd+
Program yang ditulis oleh Matt Bishop ini mampu meningkatkan logging, dan
mengingatkan user jika mengisi password yang mudah ditebak. passwd+ dapat Anda
peroleh di ftp://ftp.dartmouth.edu/pub/security
anlpasswd
Program ditulis dalam perl oleh Argonne National Laboratory. anlpasswd mempunyai
aturan standar dalam pengisian password. Meski demikian dapat ditambahkan beberapa
aturan yang dibuat sendiri, seperi jumlah minimal, gabungan huruf besar huruf kecil,
gabungan angka dan huruf. anlpasswd dapat Anda peroleh di :
ftp://coast.rs.purdue.edu/pub/tools/unix/anlpasswd/analpasswd-2.3.tar.Z
npasswd
Program sederhana, ditulis oleh CLYDE HOOVER merupakan program pengganti passwd
yang biasa. npasswd dapat Anda peroleh di :
http://www.uetxas.edu/cc/unix/software/npasswd/doc untuk dokumentasi
http://www.utexas.edu/cc/unix/software/npasswd untuk programnya
Subsections
• Tentang Firewall
• Tipe firewall :
• Filter Paket di Linux
o TCP Wrapper sebagai Kontrol Akses
Tentang Firewall
Firewall dapat melakukan bloking terhadap isi paket, misalnya berisi applet Jave,
ActiveX, VBScript, Cookie.
Tipe firewall :
1. Network-Level Firewall
Filter paket dilakukan biasanya dijalankan di router. Filter ini dapat dijalankan
dengan memberlakukan rule set tertentu. Contoh tipikal dari Network-Lever
Firewall adalah TCP Wrappers. Filter paket di Linux akan dibahas pada bagian
selanjutnya.
Catatan :
Contoh tipikal dari Application-Proxy Firewall adalah TIS FWTK (Trusted Information
System Firewall Toolkit), beberapa sumbernya :
http://www.micrognosis.com/nreadwin/fwtk/history.txt ; tentang sejarah TIS
FWTK. http://www.ssc.com/lj/issue25/1024.html ; dokumen "Creating Firewall
using the TIS Toolkit" karangan BENJAMIN EWY.
ftp://ftp.tis.com/pub/firewalls/toolkit/dist ; Program TIS FWTK. Untuk
menginstallnya di Linux, Anda harus mendownload patchnya di
ftp://ftp.tisl.ukans.edu/pub/security/firewalls/fwtkpatches.tgz.
Program paling populer untuk filter paket (dan dimasukkan hampir kesemua distribusi
Linux) adalah TCP Wrappers, dibuat oleh WIETSE VENEMA. Aplikasinya berada di
/usr/sbin/tcpd
Catatan :
Dokumentasi yang dilampirkan pada saat TCP Wrappers ini dipublikasikan dapat Anda
baca di http://www.raptor.com/lib/tcp_wrapper.ps.
Untuk melihat bagaimana TCP Wrappers ini bekerja, lihat sampel /etc/inetd.conf
secara umum :
Jika ada permintaan telnet dari klien, maka inetd akan memanggil program telnetd
untuk melayaninya. Dengan demikian, server akan dijalankan oleh satu buah daemon,
yakni inetd, jika ada permintaan. Masalahnya adalah, program daemon tidak bisa
menyeleksi tiap koneksi yang masuk. Untuk itu dijalankan TCP Wrappers.
Catatan :
Binary Slackware, SuSE dan RedHat secara otomatis sudah menjalankan TCP Wrapper
begitu selesai instalasi.
Dengan TCP Wrapper, tcpd akan memotong permintaan inetd kepada semua service.
Dalam contoh di atas, saat ada user menjalankan telnet di port 25, inetd akan
memanggil telnetd. Tapi sebelum ke telnetd, dipotong dulu oleh tcpd, dicocokkan
dengan beberapa rule set yang telah diatur. Jika memenuhi syarat, akan diteruskan ke
telnetd. Jika tidak, permintaan diputus.
Berikut isi dari inetd.conf yang telah dipasang tcpd (TCP Wrappers)
Subsections
Pada saat selesai instalasi, isi file hosts.allow Anda akan tampak sebagai berikut :
# hosts.allow This file describes the names of the hosts which are
#
# End of hosts.allow.
# hosts.deny This file describes the names of the hosts which are
# End of hosts.deny.
Untuk memasukkan rule set dalam file tersebut, WIETZE VENEMA membuat bahasa
tersendiri yang dituangkan dalam hosts_options. Untuk mengetahui detailnya, Anda
bisa ketikkan :
$ man hosts_options
Inti dari rule set pada kedua file di atas menggunakan format :
Misalnya, Anda ingin memberikan akses hanya untuk mesin dengan nomor ip 1.2.3.4,
dapat menuliskan :
ALL:ALL:DENY
ALL:1.2.3.4:ALLOW
Rule set tersebut, dapat Anda masukkan dalam file /etc/hosts.deny, sehingga file
tersebut menjadi seperti berikut :
#
# hosts.deny This file describes the names of the hosts which are
ALL:ALL:DENY
ALL:1.2.3.4:ALLOW
# End of hosts.deny.
Anda bisa melakukan ujicoba dengan mengakses service pada inetd lewat nomor IP
1.2.3.4 dan nomor IP lain. Lihat perbedaannya, sekaligus mengetes apakah ruleset yang
Anda buat telah berjalan dengan baik.
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.
Subsections
• Enkripsi Password
• Enkripsi komunikasi data
• Secure Shell (SSH)
o Instalasi SSH
o Konfigurasi Server
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 ;
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.
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.
# traceroute www.hotmail.com
11 * * *
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.
Subsections
• Instalasi SSH
• Konfigurasi Server
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
5. ssh-agent
6. sshd
7. ssh-keygen
$ cd ssh-1.2.27
$ ./configure
$ make
$ su
password :
# make install
Selesai proses instalasi, Anda dapat mulai mengedit file konfigurasi untuk SSH :
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
# Umask 022
#SilentDeny yes
Sebagai referensi dalam mengedit konfigurasi tersebut, berikut penjelasan tentang fungsi-
fungsi dari beberapa parameter yang perlu :
AllowTCPForwarding
Dipergunakan untuk menentukan apakah TCP
forwarding diperbolehkan. Secara default di set yes.
Digunakan untuk menentukan apakah user yang sedang
CheckMail login dengan ssh diberitahu jika ada email masuk atau
tidak. Secara default diset yes.
Digunakan untuk mengontrol grup yang tidak
DenyGroups
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
Untuk menentukan apakah root dapat log in dengan ssh,
PermitRootLogin dan jika diperbolehkan apakah masih perlu autentikasi
password
PrintMod
Untuk menentukan apakah sshd perlu menyampaikan
motd (message of the day) saat user login
# sshd
Ada beberapa pilihan dalam menjalankan sshd. Pilihan ini diketikkan sebagai prefiks saat
menjalankan sshd. Misal :
Untuk klien, ssh mempergunakan file /etc/ssh_config. Secara default file tersebut berisi :
# 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 -
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) :
Subsections
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.
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
$ cd /SSLeay-0.8.1b
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
# 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
# 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
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 :
Subsections
• lastlog
• last
• xferlog
• access_log
• error_log
• messages
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
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
# less /var/log/messages
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.
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.
Ringkasan
Dari sini, Anda sudah mulai mempunyai kepedulian yang cukup terhadap keamanan
jaringan Anda. Secara singkat, sudah pelajari bersama bagaimana arsitektur keamanan di
Linux. Jika keamanan sudah diset secara maksimal menurut perspektif kita, maka yang
diperlukan hanyalah kerajinan untuk membaca file-file log yang dibuat oleh Linux.
Meskipun bisa dibilang bahwa jaringan tidak mempunyai data-data keamanan yang
penting, tapi kepedulian terhadap masalah keamanan ini akan memudahkan pekerjaan di
kemudian hari.
Dengan pesatnya perkembangan sistem informasi, maka perlu bagi para pemelihara
jaringan untuk tetap terlibat dalam isu-isu terakhir dalam bidang teknologi. Ketinggalan
terhadap isu bug, virus, dan isu keamanan lainnya, akan membuat jaringan yang dirawat
menjadi rawan akan penyusupan.