1. Keamanan Password dan Enkripsi
Salah satu feature keamanan yang penting yang digunakan saat ini adalah
password. Penting bagi anda dan seluruh pemakai anda untuk memiliki password
yang aman dan tidak dapat diterka. Kebanyakan distribusi Linux terbaru
menyertakan program 'passwd' yang tidak membolehkan anda menset password
yang mudah diterka. Pastikan program passwd anda terbaru dan memiliki feature
ini.
Diskusi mendalam tentang enkripsi adalah di luar lingkup dokumen ini, tetapi
pendahuluannya tidak. Enkripsi sangat berguna, mungkin sangat perlu di saat
ini. Terdapat berbagai metode enkripsi data, yang memiliki karateristiknya sendiri.
Kebanyakan unicies (dan Linux bukanlah perkecualian) utamanya menggunakan
algoritma enkripsi satu arah (one-way), disebut DES (Data Encryption Standard)
untuk mengenkripsi password anda. Password terenkripsi ini kemudian disimpan
(umumnya) di /etc/passwd (atau kurang umum) di /etc/shadow. Ketika anda
berusaha login, apapun yang anda ketikkan dienkripsi dibandingkan dengan
masukan dalam file yang menyimpan password anda. Jika cocok, pastilah
passwordnya sama, dan anda dibolehkan mengakses. Meskipun DES merupakan
algoritma enkripsi dua arah (anda dapat menkode dan mendekode pesan, dengan
memberi kunci yang tepat), varian yang digunakan kebanyakan unicies adalah
satu arah. Artinya tidak mungkin membalik enkripsi untuk memperoleh password
dari isi /etc/passwd (atau /etc/shadow). Serangan brute force, seperti "Crack" atau
"John the Ripper" (lihat di bawah) sering dapat digunakan untuk menerka password
meski password anda cukup acak. Modul PAM (lihat di bawah) memungkinkan
anda menggunakan rutin enkripsi yang berbeda dengan password anda (MD5 atau
sejenisnya). Anda dapat ke http://consult.cern.ch/writeup/security/security_3.html
untuk
informasi
bagaimana
memilih
password
yang
baik.
PGP dan Public Key Cryptography
Public Key Cryptography, seperti yang digunakan untuk PGP, melibatkan
kriptografi yang menggunakan satu kunci untuk enkripsi, dan satu kunci untuk
dekripsi. Secara tradisional, kriptografi menggunakan kunci yang sama untuk
enkripsi dan dekripsi. "Kunci pribadi" ini harus diketahui oleh kedua pihak, dan
ditransfer dari satu ke lainnya secara aman.
Enkripsi kunci publik membebaskan kebutuhan untuk secara aman mentransmisi
kunci yang diperlukan untuk enkripsi dengan menggunakan dua buah kunci
berbeda, kunci pribadi dan kunci publik. Kunci publik setiap orang tersedia bagi
2. semua orang untuk melakukan enkripsi, sementara pada saat yang sama setiap
orang menjaga kunci pribadinya untuk mendekripsi pesan terenkripsi dengan
kunci publik yang tepat.
Terdapat keuntungan public key dan private key cryptography, dan anda dapat
membaca tentang perbedaan-perbedaan ini dalam RSA Cryptography FAQ,
didaftarkan pada akhir bagian ini.
PGP (Pretty Good Privacy) didukung dengan baik pada Linux. Versi 2.6.2 dan 5.0
dikenal bekerja dengan baik. Untuk perkenalan tentang PGP dan bagaimana
menggunakan,
silakan
lihat
PGP
FAQ
http://www.pgp.com/service/export/faq/55faq.cgi. Pastikan menggunakan versi
yang dapat digunakan di negara anda, berkaitan dengan pembatasan ekspor oleh
pemerintah AS, enkripsi kuat dianggap sebuah senjata militer, dan terlarang untuk
ditransfer dalam bentuk elektronik ke luar negeri.
Terdapat pula panduan langkah-demi-langkah untuk mengkonfigurasi PGP pada
Linux di
http://mercury.chem.pitt.edu/~angel/LinuxFocus/English/November1997/article7.h
tml. Ditulis untuk versi internasional PGP, tetapi dapat diterapkan secara mudah ke
versi AS. Anda mungkin butuh patch bagi versi terbaru Linux, yang tersedia di
ftp://sunsite.unc.edu/pub/Linux/apps/crypto.
Informasi lebih jauh tentang cryptography dapat dijumpai dalam RSA
Cryptography FAQ, tersedia di http://www.rsa.com/rsalabs/newfaq. Di sini anda
akan menjumpai informasi mengenai istilah seperti "Diffie-Hellman", "public-key
cryptography", "Digital Certificates", dsb.
SSL, S-HTTP, HTTPS dan S/MIME
Seringkali pemakai bertanya mengenai perbedaan-perbedaan antara berbagai
protokol keamanan, dan bagaimana menggunakannya. Meski ini bukan dokumen
enkripsi, merupakan ide yang baik untuk menjelaskan secara singkat setiap
protokol dan di mana mencari informasi yang lebih banyak.
•
SSL : SSL, atau Secure Sockets Layer, adalah metode enkripsi yang
dikembangkan oleh Netscape untuk memberikan keamanan di Internet. Ia
mendukung beberapa protokol enkripsi dan memberikan autentikasi client
dan server. SSL beroperasi pada layer transpor, menciptakan saluran enkripsi
yang aman untuk data, dan dapat mengenkripsi banyak tipe data. Hal ini
dapat dilihat ketika mengunjungi site yang aman untuk melihat dokumen
online aman dengan Communicator, dan berfungsi sebagai dasar
komunikasi yang aman dengan Communicator, juga dengan enkripsi data
3. •
•
Netscape Communication lainnya. Informasi lebih banyak dapat dijumpai di
http://www.consensus.com/security/ssl-talk-faq.html. Informasi mengenai
implementasi keamanan Netscape lainnya dan sebagai titik awal yang baik
untuk
protokol-protokol
ini
tersedia
di
http://home.netscape.com/info/security-doc.html.
S-HTTP : S-HTTP adalah protokol lain yang memberikan pelayanan
keamanan di Internet. Ia dirancang untuk memberikan confidentiality,
authenticity, integrity, dan non-repudiability (tidak dapat dianggap sebagai
orang lain) sementara mendukung banyak mekanisme manajemen kunci
dan algoritma kriptografi melalui pilihan negosiasi antar pihak-pihak yang
terlibat dalam setiap transaksi. S-HTTP terbatas pada software khusus yang
mengimplementasikannya dan mengenkripsi setiap pesan secara individual.
(Dari RSA Cryptography FAQ, hlm. 138)
S/MIME: - S/MIME, atau Secure Multipurpose Internet Mail Extension,
adalah standar enkripsi yang digunakan untuk mengenkripsi surat
elektronik, atau tipe pesan lain di Internet. Ini merupakan standar terbuka
yang dikembangkan RSA, sehingga kemungkinan akan kita jumpai di
Linux suatu hari. Informasi lebih lanjut tentang S/MIME dapat ditemukan
di http://home.netscape.com/assist/security/smime/overview.html.
SSH (Secure Shell), stelnet
SSH dan stelnet adalah program yang memungkinkan anda untuk login ke
sistem remote dan memiliki koneksi yang terenkripsi.
SSH adalah paket program yang digunakan sebagai pengganti yang aman untuk
rlogin, rsh dan rcp. Ia menggunakan public-key cryptography untuk mengenkripsi
komunikasi antara dua host, demikian pula untuk autentikasi pemakai. Ia dapat
digunakan untuk login secara aman ke remote host atau menyalin data antar host,
sementara mencegah man-in-the-middle attacks (pembajakan sesi) dan DNS
spoofing. Ia akan melakukan kompresi data pada koneksi anda, dan komunikasi
X11 yang aman antar host. SSH homepage dapat dijumpai di
http://www.cs.hut.fi/ssh
Anda dapat pula menggunakan SSH dari stasiun kerja Windows anda ke server
SSH Linux. Terdapat beberapa implementasi client Windows yang tersedia gratis,
termasuk satu di http://guardian.htu.tuwien.ac.at/therapy/ssh/ dan juga
implementasi komersil dari DataFellows, di http://www.datafellows.com
SSLeay adalah implementasi bebas protokol Secure Sockets Layer Netscape,
termasuk beberapa aplikasi, seperti Secure telnet, modul untuk Apache, beberapa
database, dan juga beberapa algoritma termasuk DES, IDEA dan Blowfish.
4. Dengan menggunakan pustaka ini, pengganti secure telnet telah diciptakan yang
melakukan enkripsi pada koneksi telnet. Tidak seperti SSH, stelnet menggunakan
SSL, protokol Secure Sockets Layer yang dikembangkan Netscape. Anda dapat
menjumpai Secure telnet dan Secure FTP dengan melihat dulu SSLeay FAQ,
tersedia di :
http://www.psy.uq.oz.au
PAM - Pluggable Authentication Modules
Versi baru distribusi RedHat Linux dikirimkan dengan skema autentikasi yang
terpadu disebut "PAM". PAM memungkinkan anda merubah secara on the fly metode
autentikasi anda, persyaratan, dan menyembunyikan seluruh metode autentikasi
lokal tanpa perlu mengkompilasi ulang biner anda. Konfigurasi PAM adalah di luar
lingkup dokumen ini, tetapi pastikan untuk melihat web site PAM untuk informasi
lebih banyak http://www.kernel.org/pub/linux/libs/pam
Beberapa hal yang dapat anda lakukan dengan PAM:
•
•
•
•
Menggunakan enkripsi non DES untuk password anda. (Membuatnya sulit
untuk didekodekan secara brute force)
Menset batasan sumber daya pada seluruh pemakai anda sehingga mereka
tidak dapat melakukan serangan Denial of Service (jumlah proses, jumlah
memori, dsb)
Memungkinkan shadow password secara on the fly
Membolehkan pemakai tertentu untuk login hanya pada waktu tertentu dari
tempat tertentu.
Dalam beberapa jam setelah instalasi dan konfigurasi sistem anda, anda dapat
mencegah banyak serangan sebelum mereka terjadi. Sebagai contoh, menggunakan
PAM untuk meniadakan pemakain secara system-wide file dot-rhosts dalam
direktori home pemakai dengan menambahkan baris-baris berikut ke
/etc/pam.d/login:
#
# Disable rsh/rlogin/rexec for users
#
login auth required pam_rhosts_auth.so no_rhosts
Cryptographic IP Encapsulation (CIPE)
5. Tujuan utama software ini adalah memberikan fasilitas bagi interkoneksi
subnetwork yang aman (menghadapi eavesdropping, termasuk traffic analysis, dan
faked message injection) melintasi jaringan paket yang tidak aman seperti Internet.
CIPE mengenkripsi data pada level jaringan. Paket-paket yang berjalan antar host
pada jaringan dienkripsi. Mesin enkripsi ditempatkan dekat driver yang mengirim
dan menerima paket.
Tidak seperti SSH, yang mengenkripsi data dengan hubungan, pada level soket.
Koneksi logika antara program yang berjalan di host yang berbeda dienkripsi.
CIPE dapat digunakan dalam tunnelling, dalam rangka menciptakan Virtual
Private Network. Enkripsi level rendah memiliki keuntungan yaitu dapat dibuat
transparan antar dua jaringan yang terhubung dalam VPN, tanpa merubah
software aplikasi.
Ringkasan dari dokumentasi CIPE: Standar-standar IPSEC mendefinisikan
sejumlah protokol yang dapat digunakan (di antara berbagai hal lain) untuk
membangun VPN yang terenkripsi. Namun demikian, IPSEC lebih seperti
himpunan protokol kelas berat dan rumit dengan banyak pilihan, implementasi
seluruh himpunan protokol masih jarang digunakan dan beberapa isu (seperti
manajemen kunci) masih belum terpecahkan. CIPE menggunakan pendekatan
yang lebih sederhana, yaitu banyak hal yang dapat diparameterkan (seperti pilihan
algoritma enkripsi yang digunakan) adalah pilihan tetap pada saat instalasi. Hal
ini membatasi fleksibilitas, namun memungkinkan implementasi yang sederhana
(maka efisien, mudah didebug..).
Informasi
lebih
lanjut
http://www.inka.de/~bigred/devel/cipe.html
dapat
ditemukan
di
Serupa dengan bentuk kriptografi lainnya, ia tidak didistribusikan dengan kernel
secara
default
karena
adanya
pembatasan
ekspor.
Kerberos
Kerberos adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena
di MIT. Ketika pemakai login, Kerberos mengautentikasi pemakai tersebut
(menggunakan password), dan memberikan pemakai suatu cara untuk
membuktikan identitasnya ke server dan host lain yang tersebar di jaringan.
Autentikasi ini kemudian digunakan oleh program seperti rlogin untuk
membolehkan pemakai login ke host lain tanpa password (seperti file .rhosts).
6. Autentikasi juga digunakan oleh sistem surat dalam rangka menjamin bahwa
surat dikirimkan kepada orang yang tepat, dan juga menjamin bahwa pengirim
adalah benar orang yang diklaimnya.
Efek keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah
secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem
agar mempercayai bahwa mereka adalah orang lain. Sayangnya, instalasi Kerberos
sangat sulit, membutuhkan modifikasi atau mengganti berbagai program standar.
Anda dapat menemukan informasi lebih banyak tentang kerberos di
http://www.veritas.com/common/f/97042301.htm dan kodenya dapat ditemukan di
http://nii.isi.edu/info/kerberos/
(Dari: Stein, Jennifer G., Clifford Neuman, dan Jeffrey L. Schiller. "Kerberos: An
Authentication Service for Open Network Systems." USENIX Conference Proceedings,
Dallas,
Texas,
Winter
1998.)
Shadow Passwords
Shadow password adalah suatu cara menjaga password terenkripsi anda dari
pemakai normal. Normalnya, password terenkripsi ini disimpan di file /etc/passwd
dapat dibaca semua pemakai. Mereka lalu dapat menjalankan program penerka
password dan berusaha menentukan passwordnya. Shadow password menyimpan
informasi ini ke file /etc/shadow yang hanya dapat dibaca oleh pemakai yang
berhak. Dalam rangka menjalankan shadow password anda perlu memastikan
bahwa seluruh utilitas anda yang perlu mengakses informasi password dikompilasi
ulang untuk mendukungnya. PAM juga membolehkan anda untuk hanya
memasukkan modul shadow dan tidak perlu mengkompilasi ulang eksekutabel.
Anda dapat mengacu pada Shadow-Password HOWTO untuk informasi lebih lanjut
jika perlu. Tersedia di http://sunsite.unc.edu/LDP/HOWTO/Shadow-PasswordHOWTO.html. Ini sudah kuno, dan tidak dibutuhkan untuk distribusi yang
mendukung
PAM.
Crack dan John the Ripper
Jika untuk beberapa alasan program passwd anda tidak memaksa password yang
tidak mudah diterka, anda mungkin ingin menjalankan program password
cracking dan memastikan password pemakai anda aman.
Program password cracking bekerja berdasarkan ide yang mudah. Mereka mencoba
setiap kata yang ada di kamus, dan kemudian variasi dari kata-kata tersebut.
7. Mereka mengenkripsi satu kata dan membandingkannya dengan password
terenkripsi anda. Jika cocok dicatat.
Terdapat sejumlah program ini...dua yang paling dikenal adalah "Crack" dan "John
the Ripper" http://www.false.com/security/john/. Mereka akan mengambil banyak
waktu cpu anda, tetapi anda seharusnya dapat mengetahui jika penyerang dapat
masuk dengan menggunakan mereka dengan terlebih dulu menjalankan mereka
dan memberitahu pemakai dengan password lemah. Perhatikan bahwa penyerang
harus menggunakan beberapa lubang lain untuk memperoleh file passwd anda,
namun ini lebih umum daripada yang anda pikirkan.
CFS- Cryptographic File System
Cryptographic File System
dan
TCFS
-
Transparent
CFS adalah suatu cara mengenkripsi seluruh sistem file dan memungkinkan
pemakai untuk menyimpan file-file terenkripsi di dalamnya. Ia menggunakan
server NFS yang berjalan pada mesin lokal. rpms tersedia di
http://www.replay.com/redhat/ dan informasi mengenai bagaimana bekerjanya ada
di ftp://ftp.research.att.com/dist/mab
TCFS memperbaiki CFS, menambahkan lebih banyak integrasi dengan sistem file,
sehingga transparan bagi semua pemakai yang menggunakan sistem file yang
terenkripsi. Informasi lebih banyak di http://edu-gw.dia.unisa.it/tcfs/
X11, SVGA dan keamanan tampilan
X11
Penting bagi anda untuk mengamankan tampilan grafis anda untuk mencegah
penyerang melakukan hal-hal seperti : mengambil password anda ketika anda
ketikan tanpa anda ketahui, membaca dokumen atau informasi yang sedang anda
baca, atau bahkan menggunakan lubang untuk memperoleh akses superuser.
Dengan menjalankan aplikasi X remote melalui jaringan dapat pula menjadi
ancaman, memungkinkan sniffer melihat seluruh interaksi anda dengan remote
system.
X memiliki sejumlah mekanisme kendali akses. Yang termudah adalah berdasarkan
host. Anda dapat menggunakan xhost untuk menspesifikasikan host-host mana
saja yang dibolehkan mengakses tampilan anda. Namun ini tidak begitu aman.
Jika seseorang memperoleh akses ke mesin anda mereka dapat xhost + mesin mereka
dan dapat masuk secara mudah. Juga, jika anda membolehkan akses dari mesin
yang tidak terpercaya, siapapun di sana dapat mengganggu tampilan anda.
8. Ketika menggunakan xdm (x display manager) untuk login, anda memperoleh
metode akses yang jauh lebih baik: MIT-MAGIC-COOKIE-1. Cookie 128-bit
dihasilkan dan disimpan dalam file .Xauthority. Jika anda butuh untuk
membolehkan remote mesin mengakses tampilan anda, anda dapat menggunakan
perintah xauth dan informasi dalam file .Xauthority untuk memberikan hanya
akses
koneksi.
Lihat
Remote-X-Apps
mini-howto,
tersedia
di
http://sunsite.unc.edu/LDP/HOWTO/mini/Remote-X-Apps.html
Anda dapat pula menggunakan ssh (lihat ssh di atas) untuk membolehkan koneksi
X yang aman. Keuntungannya adalah tranparan bagi pemakai akhir, dan berarti
tidak ada data yang tidak terenkripsi melalui jaringan.
Silakan lihat Xsecurity man page untuk informasi lebih jauh tentang keamanan X.
Pilihan terbaik adalah menggunakan xdm untuk login ke konsol anda dan
kemudian menggunakan ssh untuk ke remote site yang ingin anda jalankan
program X-nya.
SVGA
Program-program SVGAlib umumnya SUID-root dalam rangka mengakses
hardware video mesin Linux anda. Ini menjadikan mereka sangat berbahaya. Jika
mereka crash, anda biasanya perlu mereboot mesin anda untuk memperoleh konsol
kembali. Pastikan program-program SVGA yang anda jalankan autentik, dan
paling tidak dapat dipercaya. Lebih baik lagi, jangan jalankan mereka sama sekali.
GGI (Generic Graphics Interface Project)
Proyek Linux GGI berusaha memecahkan beberapa masalah dengan antar muka
video pada Linux. GGI akan memindahkan bagian kecil code video ke kernel Linux,
dan kemudian mengendalikan akses ke sistem video. Artinya GGI akan dapat
mengembalikan konsol anda setiap waktu ke keadaan yang baik. Mereka juga akan
memungkinkan kunci atensi yang aman, sehingga anda dapat memastikan bahwa
tidak ada program login kuda Troya berjalan di konsol anda.