Satu hal yang perlu diingat ketika meletakkan partisi Anda adalah mode kegagalan. Biasanya pertanyaan itu berbentuk: "Apa yang terjadi ketika partisi x terisi?" Voretaq7 tersayang mengemukakan situasi dengan penuh /
sehingga menyebabkan sejumlah masalah sulit didiagnosis. Mari kita lihat beberapa situasi yang lebih spesifik.
Apa yang terjadi jika partisi Anda menyimpan log sudah penuh? Anda kehilangan data audit / pelaporan dan kadang-kadang digunakan oleh penyerang untuk menyembunyikan aktivitas mereka. Dalam beberapa kasus, sistem Anda tidak akan mengautentikasi pengguna baru jika tidak dapat merekam acara masuk mereka.
Apa yang terjadi pada sistem berbasis RPM ketika /var
penuh? Manajer paket tidak akan menginstal atau memperbarui paket dan, tergantung pada konfigurasi Anda, mungkin gagal secara diam-diam.
Mengisi partisi itu mudah, terutama ketika pengguna mampu menulisnya. Untuk bersenang-senang, menjalankan perintah ini dan melihat seberapa cepat Anda dapat membuat file besar cukup: cat /dev/zero > zerofile
.
Selain mengisi partisi juga, ketika Anda menempatkan lokasi pada titik pemasangan yang berbeda, Anda juga dapat menyesuaikan opsi pemasangannya.
Apa yang terjadi ketika /dev/
tidak dipasang dengan noexec
? Karena /dev
biasanya diasumsikan dipelihara oleh OS dan hanya berisi perangkat itu sering (dan terkadang masih) digunakan untuk menyembunyikan program jahat. Meninggalkan noexec
memungkinkan Anda melakukan peluncuran biner yang tersimpan di sana.
Untuk semua alasan ini, dan banyak lagi, banyak panduan pengerasan akan membahas partisi sebagai salah satu langkah pertama yang harus dilakukan. Bahkan, jika Anda sedang membangun server baru cara mempartisi disk, hal ini hampir persis merupakan hal pertama yang harus Anda putuskan, dan seringkali yang paling sulit untuk diubah nanti. Ada kelompok yang disebut Pusat Keamanan Internet yang menghasilkan sekumpulan panduan konfigurasi yang mudah dibaca. Anda mungkin dapat menemukan panduan untuk Sistem Operasi spesifik Anda dan melihat setiap spesifik yang 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 mencegah mereka saling mempengaruhi dan / atau membatasi apa yang dapat dilakukan pada partisi tertentu. Ambil opsi /tmp
misalnya. Apa yang dikatakannya adalah bahwa tidak ada node perangkat yang dapat dibuat di sana, tidak ada program yang dapat dieksekusi dari sana, dan bit set-uid tidak dapat diatur pada apa pun. Sesuai sifatnya, /tmp
hampir selalu dapat ditulis oleh dunia dan seringkali merupakan tipe khusus dari sistem file yang hanya ada di memori. Ini berarti bahwa seorang penyerang dapat menggunakannya sebagai titik pementasan yang mudah untuk menjatuhkan dan mengeksekusi kode jahat, kemudian menabrak (atau hanya me-reboot) sistem akan menghapus semua bukti. Karena fungsi dari /tmp
tidak memerlukan fungsi itu, kami dapat dengan mudah menonaktifkan fitur dan mencegah situasi itu.
Tempat penyimpanan log, /var/log
dan /var/log/audit
diukir untuk membantu melindungi mereka dari kelelahan sumber daya. Selain itu, auditd dapat melakukan beberapa hal khusus (biasanya di lingkungan keamanan yang lebih tinggi) ketika penyimpanan lognya mulai terisi. Dengan menempatkannya di partisi ini deteksi sumber daya ini bekerja lebih baik.
Agar lebih verbose, dan kutip mount(8)
, inilah yang digunakan oleh opsi di atas:
noexec Jangan izinkan eksekusi langsung dari sembarang binari pada sistem file yang di-mount. (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 biarkan bit set-user-identifier atau set-group-identifier berlaku. (Ini tampaknya aman, tetapi sebenarnya agak tidak aman jika Anda telah menginstal suidperl (1).)
Dari perspektif keamanan, ini adalah opsi yang sangat baik untuk diketahui karena mereka akan memungkinkan Anda untuk menempatkan perlindungan pada sistem file itu sendiri. Dalam lingkungan yang sangat aman Anda bahkan dapat menambahkan noexec
opsi /home
. Ini akan mempersulit pengguna standar Anda untuk menulis skrip shell untuk memproses data, katakanlah menganalisis file log, tetapi itu juga akan mencegah mereka dari mengeksekusi biner yang akan meningkatkan hak istimewa.
Juga, perlu diingat bahwa direktori home default pengguna root adalah /root
. Ini berarti ia akan berada di sistem /
file, bukan di /home
.
Berapa banyak yang Anda berikan untuk setiap partisi dapat sangat bervariasi tergantung pada beban kerja sistem. Server tipikal yang saya kelola jarang membutuhkan interaksi orang dan karena itu /home
partisi tidak perlu terlalu besar. Hal yang sama berlaku untuk /var
karena cenderung menyimpan data yang agak fana yang sering dibuat dan dihapus. Namun, server web biasanya menggunakan /var/www
sebagai taman bermainnya, yang berarti bahwa perlu juga pada partisi yang terpisah atau /var/
perlu dibuat besar.
Di masa lalu saya merekomendasikan yang berikut sebagai baseline.
# 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 sesuai dengan tujuan sistem, dan bagaimana lingkungan Anda beroperasi. Saya juga merekomendasikan menggunakan LVM dan menentang mengalokasikan seluruh disk. Ini akan memungkinkan Anda untuk dengan mudah tumbuh, atau menambahkan, partisi jika hal-hal seperti itu diperlukan.