Keamanan Jaringan LINUX
Keamanan jaringan menjadi semakin penting dengan semakin banyaknya
waktu yang dihabiskan orang untuk berhubungan. Mengganggu keamanan
jaringan sering lebih mudah daripada fisik atau lokal, dan lebih umum.
Terdapat sejumlah alat yang baik untuk membantu keamanan jaringan, dan semakin banyak disertakan dalam distribusi Linux.
Packet Sniffers
Salah satu cara umum yang digunakan penyusup untuk memperoleh akses
ke banyak sistem di jaringan anda adalah dengan menggunakan sebuah
packet sniffer pada host yang telah diganggu. Sniffer ini mendengarkan
port Ethernet untuk hal-hal seperti "Password" dan "Login" dan "su"
dalam aliran paket dan kemudian mencatat lalu lintas setelahnya. Dengan
cara ini, penyerang memperoleh password untuk sistem yang bahkan tidak
mereka usahakan untuk dibongkar. Password teks biasa adalah sangat
rentan terhadap serangan ini.
Contoh: host A telah diganggu. Penyerang menginstal sebuah
sniffer. Sniffer mencatat login admin ke host B dari host C. Ia
memperoleh password personal admin ketika ia login ke B. Kemudian, admin
melakukan 'su' untuk mengatasi suatu masalah. Mereka sekarang memiliki
password root untuk Host B. Kemudian admin membolehkan seseorang telnet
dari rekeningnya ke host Z di site lain. Sekarang penyerang memiliki
password/login di host Z.
Di masa sekarang, penyerang bahkan tidak perlu mengganggu sebuah
sistem untuk melakukan hal ini, mereka dapat membawa laptop atau pc ke
suatu gedung dan menyadap ke jaringan anda.
Dengan menggunakan ssh atau metode password terenkripsi lainnya
dapat mencegah serangan ini. Hal-hal seperti APOP untuk rekening pop
juga dapat mencegah serangan ini. (Login pop normal sangat rentan untuk
hal ini, sama seperti segala sesuatu yang mengirim password teks biasa
melalui kabel).
Pelayanan sistem dan tcp_wrappers
Segera setelah anda menaruh sistem Linux anda di sembarang jaringan,
hal pertama yang harus dilihat adalah pelayanan yang butuh anda
tawarkan. Pelayanan-pelayanan yang tidak perlu anda tawarkan seharusnya
ditiadakan sehingga anda memiliki satu hal yang tidak perlu
dikhawatirkan dan penyerang memiliki satu hal kurangnya untuk mencari
lubang.
Terdapat sejumlah cara untuk meniadakan pelayanan dalam Linux.
Anda dapat melihat pada file /etc/inetd.conf dan melihat pelayanan apa
yang ditawarkan oleh inetd anda. Tiadakan segala yang tidak anda
butuhkan dengan mengkomentari mereka (taruh # di awal baris), dan
kemudian mengirimkan proses inetd anda sebuah SIGHUP.
Anda dapat pula menghilangkan (atau mengkomentari)
pelayanan-pelayanan di file /etc/services. Hal ini berarti client lokal
anda tidak akan menemukan pelayanan (contoh, jika anda menghilangkan
ftp, dan berusaha dan ftp ke site remote dari mesin tersebut maka akan
gagal dengan pesan pelayanan yang tidak dikenal). Tidaklah berharga
untuk menghilangkan pelayanan, karena tidak memberikan keamanan
tambahan. Jika orang lokal ingin menggunakan ftp bahkan yang telah anda
komentari, mereka ingin membuat client mereka menggunakan port ftp umum
dan masih dapat bekerja baik.
Beberapa pelayanan yang ingin anda biarkan ada adalah:
- ftp
- telnet
- mail, seperti pop-3 atau imap
- identd
- time
Jika anda tahu anda tidak ingin menggunakan beberapa paket tertentu,
anda dapat menghapusnya. rpm -e dalam distribusi Red Hat akan menghapus
seluruh paket. Dalam debian dpkg akan melakukan hal yang sama.
Sebagai tambahan, anda benar-benar ingin meniadakan utilitas
rsh/rlogin/rcp, termasuk login (digunakan oleh rlogin), shell (digunakan
oleh rcp), dan exec (digunakan oleh rsh) dari dimulai dalam
/etc/inetd.conf. Protokol-protokol ini sangat tidak aman dan menjadi
penyebab eksploit dahulu.
Anda perlu memeriksa /etc/rc.d/rcN.d, dengan N adalah run level
sistem anda dan melihat apakah pelayanan dimulai dalam direktori
tersebut tidak dibutuhkan. File dalam /etc/rc.d/rcN.d sebenarnya adalah
link simbolik ke direktori /etc/rc.d/init.d. Mengganti nama file dalam
direktori init.d memiliki efek meniadakan seluruh link simbolik dalam
/etc/rc.d/rcN.d. Jika anda hanya ingin meniadakan pelayanan untuk
runlevel tertentu, ganti nama file yang sesuai dengan huruf kecil.
Jika anda memiliki file rc bergaya BSD, anda mungkin ingin memeriksa /etc/rc* untuk program-program yang tidak anda butuhkan.
Kebanyakan distribusi Linux menyertakan tcp_wrappers "wrapping"
seluruh pelayanan tcp. Sebuah tcp_wrappers (tcpd) dipanggil dari inetd
selain dari server sebenarnya. tcpd kemudian memeriksa host yang
membutuhkan pelayanan dan kemudian mengeksekusi atau menolak akses
server sebenarnya dari host tersebut. tcpd memungkinkan anda membatasi
akses ke pelayanan tcp anda. Anda perlu membuat /etc/hosts.allow dan
menambahkan hanya host yang membutuhkan akses ke pelayanan mesin anda.
Jika anda adalah pemakai dialup rumahan, kami menyarankan anda
menolak seluruhnya. tcpd juga mencatat usaha yang gagal untuk mengakses
pelayanan, sehingga ini dapat memberi anda ide bahwa anda sedang
diserang. Jika anda menambahkan pelayanan baru, anda harus pasti
mengkonfigurasinya untuk menggunakan tcp_wrappers berbasis TCP. Sebagai
contoh, pemakai dial-up normal dapat mencegah orang luar koneksi ke
mesin anda, namun masih memiliki kemampuan untuk menerima surat, dan
membuat hubungan jaringan ke Internet. Untuk melakukan ini, anda mungkin
menambahkan perintah berikut ke /etc/hosts.allow:
ALL: 127.
Dan tentu saja /etc/hosts.deny akan berisi:
ALL: ALL
yang akan mencegah koneksi eksternal ke mesin anda, namun masih memungkinkan anda dari dalam berhubungan ke server di Internet.
Memverifikasi Informasi DNS Anda
Memelihara informasi DNS tentang seluruh host di jaringan anda agar
tetap baru dapat membantu meningkatkan keamanan. Bilamana ada host yang
tidak dijinkan terhubung ke jaringan anda, anda dapat mengenalinya
dengan tidak adanya masukan DNS. Banyak pelayanan dapat dikonfigurasi
untuk tidak menerima koneksi dari host yang tidak memiliki masukan DNS
yang valid.
8.4 identd
identd adalah program kecil yang umumnya berjalan di inetd. Ia
mencatat pelayanan tcp apa yang dijalankan pemakai, dan kemudian
melaporkannya kepada yang meminta.
Banyak orang salah mengerti kegunaan identd, sehingga
meniadakannya atau memblok seluruh site yang memintanya. identd ada
bukan untuk membantu remote site. Tidak ada cara untuk mengetahui jika
data yang anda peroleh dari remote identd benar atau tidak. Tidak ada
autentikasi dalam permintaan identd.
Lalu mengapa anda ingin menjalankannya? Karena ia membantu anda,
dan adalah titik data lain dalam penelusuran. Jika identd anda tidak
terganggu, maka anda mengerti ia memberi tahu remote site nama pemakai
atau uid orang-orang yang menggunakan pelayanan tcp. Jika admin pada
remote site datang kepada anda dan memberitahu pemakai anda berusaha
menghack ke site mereka, anda dapat secara mudah mengambil tindakan
terhadap pemakai tersebut. Jika anda tidak menjalankan identd, anda
harus melihat banyak catatan, memperkirakan siapa yang ada pada saat
itu, dan secara umum membutuhkan waktu yang lebih banyak untuk
menelusuri pemakai.
identd yang disertakan dalam banyak distribusi lebih mudah
dikonfigurasi daripada yang diperkirakan orang. Anda dapat meniadakan
identd untuk pemakai tertentu (mereka dapat membuat file .noident), anda
dapat mencatat seluruh permintaan identd (Saya menyarankannya), anda
bahkan dapat memiliki identd mengembalikan uid daripada nama pemakai
atau bahkan NO-USER.
SATAN, ISS, dan Scanner Jaringan Lainnya
Terdapat sejumlah paket software berbeda yang melakukan penelusuran
berdasarkan port dan pelayanan mesin atau jaringan. SATAN dan ISS adalah
dua yang paling dikenal. Software ini berhubungan ke mesin sasaran
(atau seluruh mesin sasaran di suatu jaringan) di semua port yang ada,
dan berusaha menentukan pelayanan apa yang sedang berjalan. Berdasarkan
informasi ini, anda dapat menemukan mesin yang rentan terhadap
eksploitasi tertentu pada server.
SATAN (Security Administrators Tool for Analyzing Networks)
adalah sebuah penelusur port dengan antara muka web. Ia dapat
dikonfigurasi untuk melakukan pemeriksaan ringan, menengah, atau berat
pada mesin atau pada jaringan mesin. Akan merupakan ide yang baik untuk
memperoleh SATAN dan memeriksa mesin atau jaringan anda, dan membenahi
masalah-masalah yang ditemukan. Pastikan anda memperoleh SATAN dari
sun-site atau FTP atau web site yang bereputasi. Terdapat salinan Troya
SATAN yang didistribusikan di net.
http://www.trouble.org/~zen/satan.html
ISS
(Internet Security Scanner) adalah penelusur berdasarkan port yang
lain. Ia lebih cepat daripada SATAN, dan mungkin lebih baik untuk
jaringan yang besar. Namun demikian, SATAN memberikan lebih banyak
informasi.
Abacus-Sentry adalah penelusur port komersil dari www.psionic.com. Lihat informasi lebih lanjut di homepagenya.
http://www.psionic.com
Mendeteksi
penelusuran port.
Terdapat beberapa alat yang dirancang untuk memberitahu anda adanya
probe SATAN dan ISS dan software penelusuran lainnya. Namun demikian,
dengan pemakaian tcp_wrappers yang liberal dan memastikan untuk melihat
file log anda secara berkala, anda dapat mengetahui probe tersebut.
Bahkan pada setting terendah, SATAN masih meninggalkan jejak pada log di
sistem Red Hat.
Sendmail, qmail dan MTA
Salah satu pelayanan penting yang dapat anda sediakan adalah server
surat. Sayangnya, ia juga sangat rentan diserang, karena banyaknya tugas
yang harus dilakukan dan dibutuhkannya ijin khusus.
Jika anda menggunakan sendmail, penting untuk menjaga versi anda
agar up to date. Sendmail memiliki sejarah panjang di eksploitasi
keamanan. Selalu pastikan anda menjalankan versi terbaru.
http://www.sendmail.org
Jika
anda bosan mengupgrade versi sendmail anda setiap minggu, anda dapat
mempertimbangkan beralih ke qmail. qmail dirancang dengan perhatian pada
keamanan sejak awalnya. Ia cepat dan stabil dan aman.
http://www.qmail.org
Serangan Denial of Service
Serangan denial of service adalah saat ketika penyerang berusaha
menggunakan beberapa sumber daya hingga terlalu sibuk untuk menjawab
permintaan yang resmi, atau menolak pemakai resmi mengakses mesin anda.
Serangan-serangan semacam ini meningkat dengan cepat pada
tahun-tahun belakangan ini. Beberapa yang populer dan terbaru
ditampilkan di bawah ini. Perhatikan bahwa yang baru selalu muncul
setiap saat, sehingga ini hanya merupakan contoh. Baca list Linux
security dan list serta archive bugtraq untuk informasi terkini.
- SYN Flooding - SYN flooding adalah serangan denial of service jaringan. Ia mengambil keuntungan dari "loophole" dalam koneksi TCP yang tercipta. Kernel Linux terbaru (2.0.30 ke atas) memiliki beberapa pilihan konfigurasi untuk mencegah serangan SYN flood dari menolak orang akses ke mesin atau pelayanan anda. Lihat bagian keamanan kernel untuk pilihan perlindungan kernel yang tepat.
- Pentium "F00F" Bug - Ini baru ditemukan bahwa serangkaian kode assembly yang dikirim ke prosesor asli Intel Pentium akan mereboot mesin. Ini mempengaruhi setiap mesin dengan prosesor Pentium (bukan klon, atau Pentium Pro atau PII), tidak tergantung pada sistem operasi yang dijalankan. Kernel Linux 2.0.32 ke atas memiliki pemecahan atas bug ini, mencegahnya mengunci mesin anda. Kernel 2.0.33 memiliki versi perbaikan atas hal ini, dan disarankan daripada 2.0.32. Jika anda menggunakan Pentium, anda harus upgrade sekarang!
- Ping Flooding - Ping flooding adalah serangan denial of service brute force sederhana. Penyerang mengirim "flood" paket ICMP ke mesin anda. Jika mereka melakukan ini dari host dengan bandwidth yang lebih baik daripada milik anda, mesin anda tidak akan mampu mengirim sesuatu ke jaringan. Variasi serangan ini, disebut "smurfing" mengirim paket ICMP ke host dengan IP kembalian mesin anda, memungkinkan mereka membanjiri anda dengan sedikit terdeteksi. Anda dapat menumukan informasi lebih jauh tentang serangan "smurf" di http://www.quadrunner.com/~chuegen/smurf.txt Jika anda diserang ping flood, gunakan alat seperti tcpdump untuk menentukan asal paket (atau tampaknya berasal), kemudian hubungi provider anda dengan informasi ini. Ping flood dapat secara mudah dihentikan di level router atau dengan menggunakan firewall.
- Ping o' Death - Serangan Ping o' Death disebabkan lebih besarnya paket ICMP ECHO REQUEST yang datang daripada yang dapat ditangani struktur data kernel . Oleh karena mengirim sebuah paket "ping" besar (65.510 byte) ke banyak sistem akan membuat mereka hang atau bahkan crash, masalah ini secara cepat disebut "Ping o' Death". Ini telah lama diperbaiki, dan tidak perlu dikhawatirkan lagi.
- Teardrop / New Tear - Salah satu eksploit terbaru yang melibatkan bug yang ada di kode fragmentasi IP pada platform Linux dan Windows. Telah diperbaiki dalam kernel versi 2.0.33, dan tidak membutuhkan pilihan pada saat kompilasi untuk menggunakan perbaikan. Linux tampaknya tidak rentan terhadap eksploitasi "new tear".
Keamanan NFS (Network File System)
NFS adalah protokol file sharing yang paling banyak digunakan. Ia
memungkinkan server menjalankan nfsd dan mountd untuk mengekspor seluruh
filesystem ke mesin lain dengan dukungan nfs filesystem pada kernelnya
(atau beberapa dukungan client jika mereka bukan mesin Linux). Mountd
mencatat filesystem yang termount di /etc/mtab, dan dapat
menampilkannya.
Banyak site menggunakan NFS untuk bertugas sebagai direktori home
untuk pemakai, sehingga tak peduli mesin apa yang dimasuki, mereka akan
selalu memiliki file-filenya.
Terdapat sedikit "keamanan" dibolehkan dalam mengekspor
filesystem. Anda dapat membuat peta nfsd pemakai root remote (uid=0) ke
pemakai nobody, membatasi akses total ke file-file yang diekspor. Namun
demikian, karena pemakai individu memiliki akses ke file-file mereka
(atau paling tidak uid yang sama), superuser remote dapat login atau su
ke rekening mereka dan memiliki akses total ke file-file mereka. Ini
hanya penghalang kecil bagi seorang penyerang yang memiliki akses untuk
melakukan mount filesystem remote anda.
Jika harus menggunakan NFS, pastikan anda mengekspor ke
mesin-mesin yang anda butuh untuk ekspor saja. Jangan pernah mengekspor
seluruh direktori root anda, ekspor hanya direktori yang perlu anda
ekspor.
Lihat NFS HOWTO untuk informasi lebih jauh tentang NFS.
NIS (Network Information Service) (dahulu YP)
Network Information Service (dahulu YP) adalah suatu cara
mendistribusikan informasi ke sekelompok mesin. Master NIS menyimpan
tabel informasi dan mengkonversinya ke file peta NIS. Peta ini kemudian
melayani jaringan, memungkinkan mesin klien NIS untuk memperoleh login,
password, direktori home dan informasi shell (seluruh informasi di file
/etc/passwd standar). Hal ini memungkinkan pemakai merubah password
mereka sekali dan berlaku pula di seluruh mesin dalam domain NIS.
NIS tidak seluruhnya aman. Ia tidak pernah dimaksudkan demikian.
Ia dimaksudkan untuk berguna dan sederhana. Setiap orang dapat menduga
nama domain NIS anda (di setiap tempat di Net) dapat memperoleh salinan
file passwd, dan menggunakan Crack dan John the Ripper terhadap password
pemakai anda. Juga, adalah mungkin untuk menipu NIS dan melakukan
berbagai trik kotor. Jika anda harus menggunakan NIS, pastikan anda
paham bahayanya
Firewall
Firewall adalah suatu cara untuk membatasi informasi yang dibolehkan
masuk dan keluar dari jaringan lokal anda. Umumnya host firewall
terhubung ke Internet dan LAN lokal anda, dan akses LAN anda ke Internet
hanya melalui firewall. Dengan demikian firewall dapat mengendalikan
apa yang diterima dan dikirim dari Internet dan LAN anda.
Terdapat beberapa tipe dan metode setting firewall. Mesin-mesin
Linux dapat menjadi firewall yang baik dan murah. Kode firewall dapat
dibangun langsung ke dalam kernel 2.0 atau lebih tinggi. Alat ipfwadm
user space memungkinkan anda merubah tipe lalu lintas jaringan yang anda
bolehkan secara on the fly. Anda dapat pula mencatat tipe lalu lintas
jaringan tertentu.
Firewall adalah teknik yang sangat berguna dan penting dalam
mengamankan jaringan anda. Penting untuk menyadari bahwa anda tidak
boleh pernah berpikir bahwa dengan memiliki firewall, anda tidak perlu
mengamankan mesin-mesin di baliknya. Ini kesalahan fatal
0 komentar:
Posting Komentar