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.
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 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.html. 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.
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.
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)
Bersama dengan CIPE, dan berbagai bentuk lain data enkripsi, terdapat pula implementasi IPSEC untuk Linux. IPSEC adalah sebuah usaha oleh IETF untuk menciptakan komunikasi yang aman secara kriptografi di tingkat jaringan IP, yang juga memberikan autentikasi, integritas, kendali akses, dan konfidensial. Informasi mengenai IPSEC dan draft Internet dapat dijumpai di IETF Homepage. Anda dapat pula menemukan link ke berbagai protokol yang mencakup manajemen kunci, dan sebuah mailing list dan arsip.
Implementasi Linux, yang sedang dikembangkan di Universitas Arizona, menggunakan kerangka kerja berbasis obyek untuk mengimplementasikan protokol jaringan yang disebut x-kernel, dan dapat dijumpai di http://www.cs.arizona.edu/xkernel/hpcc-blue/linux.html. Secara sederhana, x-kernel adalah metode penyerahan pesan pada tingkat kernel, yang memudahkan dalam implementasi.
Sama seperti berbagai bentuk kriptografi lainnya, x-kernel tidak didistribusikan dengan kernel secara default karena adanya pembatasan ekspor.
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.
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
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:
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
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 dapat ditemukan di http://www.inka.de/~bigred/devel/cipe.html
Serupa dengan bentuk kriptografi lainnya, ia tidak didistribusikan dengan kernel secara default karena adanya pembatasan ekspor.
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). 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 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-Password-HOWTO.html. Ini sudah kuno, dan tidak dibutuhkan untuk distribusi yang mendukung PAM.
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. 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 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/
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.
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.
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.
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. http://synergy.caltech.edu/~ggi/