GNU/Linux >> Belajar Linux >  >> Linux

Cara paling aman untuk mempartisi linux?

Harap diingat Tritunggal Mahakudus dari Keamanan Informasi:C(onfidentiality), I(ntegrity), dan A(availability). Jadi ketika kita berbicara tentang pengerasan konfigurasi, Anda perlu mempertimbangkan teknologi yang Anda gunakan, informasi yang dilindungi, bagaimana informasi digunakan dalam organisasi, dan ancamannya. Berdasarkan jawaban tersebut, dan mungkin jawaban lainnya, Anda dapat mulai menentukan penyewa mana yang paling penting dan apa yang menjadi fokus.

Pada tingkat sistem file Anda biasanya paling tertarik pada Integritas dan Ketersediaan. Kerahasiaan informasi mungkin harus ditangani pada lapisan yang berbeda, tetapi cara Anda meletakkan sistem file dan cara Anda menggunakannya harus memastikan bahwa informasi tersebut dapat dipercaya dan selalu tersedia saat dibutuhkan.

Satu hal yang perlu diingat saat menata partisi Anda adalah mode kegagalan. Biasanya pertanyaan itu berbentuk:"Apa yang terjadi bila partisi x mengisi?"

Apa yang terjadi jika partisi Anda yang menyimpan OS penuh? Hal-hal aneh terkadang terjadi saat / mengisi. Terkadang sistem hang. Terkadang tidak ada sesi login baru yang dapat terjadi. Terkadang sistem menolak untuk boot.

Dari semua mode kegagalan yang satu ini adalah yang paling sulit untuk dicirikan secara ketat karena gejalanya paling mungkin berubah berdasarkan OS, versi kernel, konfigurasi, dll. Beberapa sistem file, terutama baris ext, mencadangkan sejumlah ruang ketika sistem file dibuat. Ruang yang dicadangkan ini hanya dapat digunakan oleh pengguna root dan dimaksudkan agar administrator sistem tetap dapat beroperasi dan membersihkan ruang.

Apa yang terjadi jika partisi Anda menyimpan log penuh? Anda kehilangan data audit/pelaporan dan terkadang digunakan oleh penyerang untuk menyembunyikan aktivitas mereka. Dalam beberapa kasus, sistem Anda tidak akan mengautentikasi pengguna baru jika tidak dapat merekam aktivitas login mereka.

Apa yang terjadi pada sistem berbasis RPM saat /var penuh? Manajer paket tidak akan menginstal atau memperbarui paket dan, bergantung pada konfigurasi Anda, mungkin gagal secara diam-diam.

Mengisi partisi itu mudah, terutama bila pengguna mampu menulisnya. Untuk bersenang-senang, jalankan perintah ini dan lihat seberapa cepat Anda dapat membuat file yang cukup besar:cat /dev/zero > zerofile .

Selain mengisi partisi, saat Anda menempatkan lokasi di titik pemasangan yang berbeda, Anda juga dapat menyesuaikan opsi pemasangannya.

Apa yang terjadi bila /dev/ tidak dipasang dengan noexec ? Sejak /dev biasanya dianggap dikelola oleh OS dan hanya berisi perangkat yang sering (dan terkadang masih) digunakan untuk menyembunyikan program jahat. Meninggalkan noexec memungkinkan Anda meluncurkan binari yang disimpan di sana.

Untuk semua alasan ini, dan lebih banyak lagi, banyak panduan pengerasan akan membahas partisi sebagai salah satu langkah pertama yang harus dilakukan. Faktanya, jika Anda sedang membangun server baru, cara mempartisi disk hampir persis pertama barang yang Anda miliki untuk memutuskan, dan seringkali yang paling sulit untuk diubah nanti. Ada grup yang disebut Pusat Keamanan Internet yang menghasilkan kumpulan panduan konfigurasi yang mudah dibaca. Anda mungkin dapat menemukan panduan untuk Sistem Operasi khusus Anda dan melihat hal spesifik apa pun yang mungkin mereka katakan.

Jika kita melihat RedHat Enterprise Linux 6, skema partisi yang disarankan adalah ini:

# Mount point           Mount options
/tmp                    nodev,nosuid,noexec
/var                    
/var/tmp                bind (/tmp)
/var/log
/var/log/audit
/home                   nodev
/dev/shm                nodev,nosuid,noexec

Prinsip di balik semua perubahan ini adalah untuk mencegahnya saling memengaruhi dan/atau membatasi apa yang dapat dilakukan pada partisi tertentu. Ambil opsi untuk /tmp Misalnya. Apa yang dikatakan adalah bahwa tidak ada node perangkat yang dapat dibuat di sana, tidak ada program yang dapat dijalankan dari sana, dan bit set-uid tidak dapat diatur pada apa pun. Sesuai sifatnya, /tmp hampir selalu dapat ditulis dunia dan seringkali merupakan jenis sistem file khusus yang hanya ada di memori. Ini berarti bahwa penyerang dapat menggunakannya sebagai titik pementasan yang mudah untuk menjatuhkan dan mengeksekusi kode berbahaya, kemudian menabrak (atau hanya me-reboot) sistem akan menghapus semua bukti. Sejak fungsi /tmp tidak memerlukan fungsi apa pun, kami dapat dengan mudah menonaktifkan fitur dan mencegah situasi tersebut.

Tempat penyimpanan log, /var/log dan /var/log/audit diukir untuk membantu melindungi mereka dari kehabisan sumber daya. Selain itu, auditd dapat melakukan beberapa hal khusus (biasanya di lingkungan keamanan yang lebih tinggi) saat penyimpanan lognya mulai terisi. Dengan menempatkannya di partisinya, deteksi sumber daya ini bekerja lebih baik.

Agar lebih bertele-tele, dan kutip mount(8) , inilah tepatnya opsi yang digunakan di atas:

noexec Jangan izinkan eksekusi langsung dari binari apa pun pada sistem file yang terpasang. (Sampai saat ini masih dimungkinkan untuk menjalankan binari menggunakan perintah seperti /lib/ld*.so/mnt/binary. Trik ini gagal sejak Linux 2.4.25 / 2.6.0.)

nodev Jangan menafsirkan karakter atau memblokir perangkat khusus pada sistem file.

nosuid Jangan izinkan bit set-user-identifier atau set-group-identifier untuk diterapkan. (Tampaknya ini aman, tetapi sebenarnya agak tidak aman jika Anda telah menginstal suidperl(1).)

Dari sudut pandang keamanan, ini adalah opsi yang sangat baik untuk diketahui karena memungkinkan Anda memberikan perlindungan pada sistem file itu sendiri. Di lingkungan yang sangat aman, Anda bahkan dapat menambahkan noexec pilihan untuk /home . Ini akan mempersulit pengguna standar Anda untuk menulis skrip shell untuk memproses data, misalnya menganalisis file log, tetapi juga akan mencegah mereka mengeksekusi biner yang akan meningkatkan hak istimewa.

Juga, perlu diingat bahwa direktori home default pengguna root adalah /root . Ini berarti akan ada di / sistem file, bukan di /home .

Berapa tepatnya yang Anda berikan untuk setiap partisi dapat sangat bervariasi tergantung pada beban kerja sistem. Server tipikal yang saya kelola jarang membutuhkan interaksi orang dan dengan demikian /home partisi tidak perlu terlalu besar sama sekali. Hal yang sama berlaku untuk /var karena cenderung menyimpan data yang agak singkat yang sering dibuat dan dihapus. Namun, server web biasanya menggunakan /var/www sebagai taman bermainnya, artinya harus ada di partisi terpisah juga atau /var/ perlu dibuat besar.

Di masa lalu saya telah merekomendasikan yang berikut ini sebagai garis dasar.

# Mount Point       Min Size (MB)    Max Size (MB)
/                   4000             8000
/home               1000             4000
/tmp                1000             2000
/var                2000             4000
swap                1000             2000
/var/log/audit       250

Ini perlu ditinjau dan disesuaikan dengan tujuan sistem, dan bagaimana lingkungan Anda beroperasi. Saya juga akan merekomendasikan menggunakan LVM dan tidak mengalokasikan seluruh disk. Ini akan memungkinkan Anda untuk dengan mudah mengembangkan, atau menambahkan, partisi jika diperlukan.


Pemisahan menjadi satu atau beberapa partisi sebenarnya bukan masalah keamanan tetapi keandalan . Idenya adalah jika salah satu partisi Anda rusak, Anda akan kehilangan konten itu partisi, tetapi partisi lainnya baik-baik saja. Juga, jika Anda mengisi partisi itu, maka partisi lain tidak terpengaruh. Setiap partisi dapat memiliki sistem filenya sendiri, dan tidak semua jenis sistem file setara dalam hal kinerja dalam berbagai konteks (walaupun sebagian besar sistem file sebagian besar akan sama baiknya satu sama lain dalam sebagian besar konteks). Pada beberapa PC, proses boot mungkin mengalami kesulitan mengakses lebih jauh dari beberapa gigabyte pertama disk karena kekhasan historis arsitektur ini, yang terlalu mengerikan untuk diingat di sini; jadi, /boot sering kali lebih baik disetel sebagai partisi terpisah dengan ukuran terbatas dan terletak pertama kali di disk.

Jika Anda ingin menerapkan enkripsi tingkat partisi, Anda mungkin mengalami masalah jika Anda mengenkripsi terlalu banyak -- yaitu, kode yang melakukan dekripsi harus ditempatkan di luar dari partisi tersebut. Ini sangat bergantung pada produk enkripsi yang sebenarnya (beberapa dapat menyematkan kode dekripsi di bootloader).

Perhatikan bahwa semakin Anda membagi disk Anda menjadi beberapa partisi, semakin tidak fleksibel semuanya. Ketika sebuah partisi terisi, itu penuh dan tetap seperti itu, bahkan jika partisi lain memiliki ruang kosong (LVM dapat membantu mengatasinya, jadi Anda mungkin ingin mengatakan "ya" ketika penginstal OS menanyakan apakah Anda ingin menggunakan LVM) . Semakin banyak partisi yang Anda buat, semakin besar kemungkinan dan kesulitan masalah ini.

Jalan yang mudah dan aman adalah membiarkan penginstal OS memilih partisi yang menurutnya paling baik. Jangan terus mengubah ukuran partisi sampai Anda memiliki pengetahuan dan pengalaman yang tepat tentang apa yang diperlukan. Jangan lupa untuk melakukan backup secara rutin. Diharapkan, setelah beberapa bulan, Anda ingin menginstal ulang OS Anda untuk "melakukannya dengan benar", dan itu bukanlah ide yang buruk, jadi jangan khawatir. Ini adalah alat pembelajaran, bukan server yang akan diproduksi.


Saya akan melihat ini dengan cara yang berbeda dari responden lain sejauh ini:jika Anda melihat banyak eksploitasi, maka semua ancaman mungkin terjadi dan mem-sandbox sistem tempat Anda melakukannya sebanyak mungkin tampaknya merupakan tindakan pencegahan yang berguna. Xen adalah salah satu cara mudah untuk melakukannya. Itu dapat menggunakan gambar disk pada sistem file lain, tetapi jika Anda tahu Anda akan menggunakannya, saya sarankan untuk meninggalkan partisi disk yang terpisah (dan pastikan partisi tersebut tidak di-automount pada Dom0 Anda).

Saya tidak tahu seberapa baik Kali bekerja sebagai Xen Dom0. Ubuntu setidaknya tampaknya memiliki masalah. Anda mungkin mempertimbangkan untuk menyisakan ruang untuk XenServer atau build Xen Dom0 khusus lainnya. [Sunting:Saya tidak yakin seperti apa netbook akhir-akhir ini, tetapi saya menduga XenServer tidak benar-benar menargetkan mereka ... Mungkin distribusi lain yang lebih sederhana yang bekerja dengan baik dengan Xen sebagai Dom0. Anda mungkin dapat menyiapkan penginstalan Kali yang berjalan sendiri atau sebagai DomU jika melihat eksploit adalah tugas yang kurang umum.]

Pada sistem BSD saya pernah mendengar tentang metode pengerasan yang melibatkan partisi untuk me-mount sebanyak mungkin read only dan menggunakan flag yang tidak dapat diubah. Saya berasumsi setidaknya ada beberapa sistem Linux di mana pengaturan serupa dimungkinkan, namun sepertinya Kali berbasis Debian dan menurut saya Anda tidak dapat melakukannya di Debian [edit:kecuali jika Anda memasang FS yang dapat ditulisi itu, yang masih canggung untuk dipertahankan dari waktu ke waktu]. Bagaimanapun, saya tidak akan menyarankan ini untuk mesin tujuan umum dan hanya menampilkannya jika Anda lebih tertarik pada semua cara partisi dapat digunakan. Untuk tujuan Anda, tempatkan ancaman pada sistem yang dapat Anda hapus dan buat ulang dengan mudah.


Linux
  1. Linux – Apa yang Harus Dilakukan Saat Desktop Linux Membeku?

  2. Linux – Cara Render Grafis Paling Ringan Gentoo?

  3. Apa cara yang benar untuk menginstal jdk di linux

  1. Bagaimana cara melihat perintah linux yang paling sering saya gunakan?

  2. Apa yang harus dilakukan ketika desktop Linux membeku?

  3. Berapa ukuran yang disarankan untuk partisi Linux /boot?

  1. Apa itu pengguna Linux?

  2. Apa momen terpenting dalam sejarah Linux?

  3. Cara mempartisi disk di Linux