FreeBSD нь өгөгдөлд зөвшөөрөгдөөгүй хандах хандалтын эсрэг маш сайн шууд хамгаалалтуудыг санал болгодог. Файлын зөвшөөрлүүд болон Mandatory Access Control (MAC) буюу Албадмал Хандалт Хяналт (Бүлэг 17, Mandatory Access Control буюу Албадмал Хандалтын хяналт-г үзнэ үү) нь компьютер ассан, үйлдлийн систем идэвхтэй байх үед зөвшөөрөлгүй гуравдагч нөхдүүдийг өгөгдөлд хандахаас хамгаалахад тусалдаг. Гэхдээ хэрэв халдагч компьютерт физик хандалт олж аван компьютерийн хатуу хөтчийг өөр систем уруу зөөн эмзэг өгөгдлийг хуулж шинжилгээ хийж чадах бол үйлдлийн системийн мөрдүүлдэг зөвшөөрлүүд нь хамааралгүй болох юм.
Халдагч хэрхэн хатуу диск эсвэл унтраасан компьютерийг эзэмшсэнээс үл хамаарч
FreeBSD дээрх GEOM Based Disk Encryption (gbde)
буюу GEOM дээр тулгуурласан дискний шифрлэлт болон geli
криптограф дэд системүүд нь компьютерийн файлын системүүд дээрх өгөгдлийг
бүр чухал эх үүсвэрүүд бүхий, зорилгодоо хүрэхээр ихээхэн чармайсан халдагчдаас
хамгаалж чадах юм. Зөвхөн тухайн файл бүрийг шифрлэдэг ярвигтай шифрлэлтийн
аргуудаас ялгаатай нь gbde
болон geli
нь бүх файлын системүүдийг харагдаж мэдэгдэхгүйгээр шифрлэдэг. Хатуу дискний
хавтгайд цэвэр текст хэзээ ч бичигддэггүй.
root
болно
gbde-г тохируулахад супер хэрэглэгчийн эрхүүдийг шаарддаг.
%
su -
Password:Цөмийн тохиргооны файлдаа gbde(4) дэмжлэгийг нэмнэ
Дараах мөрийг цөмийн тохиргооны файлдаа нэмнэ:
options GEOM_BDE
Цөмөө Бүлэг 9, FreeBSD цөмийг тохируулах нь-д тайлбарласны дагуу дахин бүтээнэ.
Шинэ цөм уруугаа дахин ачаална.
Цөмийг дахин бүтээхээс өөр нэг арга нь kldload
ашиглаж gbde(4)-г ачаалах явдал юм:
#
kldload geom_bde
Дараах жишээ нь таныг өөрийн систем уруу шинэ хатуу хөтөч нэмж
ганц шифрлэгдсэн хуваалтыг агуулна гэж тооцдог. Энэ хуваалт нь
/private
гэж холбогдох болно.
gbde нь
/home
болон /var/mail
-г
бас шифрлэхэд ашиглагддаг боловч энэ нь энэ танилцуулгын хүрээнээс хальж
илүү төвөгтэй заавруудыг шаарддаг.
Шинэ хатуу хөтчийг нэмнэ
Шинэ хөтчийг систем уруу Хэсэг 19.3, «Диск нэмэх»-д тайлбарласны дагуу нэмнэ. Энэ жишээн
дээр шинэ хатуу хөтчийн хуваалт /dev/ad4s1c
гэж нэмэгдсэн байгаа. /dev/ad0s1
төхөөрөмжүүд нь жишээ систем дээр байгаа стандарт FreeBSD хуваалтуудыг
харуулж байна.*
#
ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4gbde
цоож файлуудыг агуулах санг үүсгэнэ
#
mkdir /etc/gbde
gbde цоож файл нь шифрлэгдсэн хуваалтуудад хандахад gbde-д шаардагдах мэдээллийг агуулдаг. Цоож файлд хандах боломжгүй бол gbde нь шифрлэгдсэн хуваалтын агуулсан өгөгдлийг хөндлөнгийн их хүч шаардсан оролцоогүйгээр буцааж тайлж чадахгүй юм. Үүнийг програм хангамж дэмждэггүй. Шифрлэгдсэн хуваалт бүр тусдаа цоож файл ашигладаг.
gbde
хуваалтыг эхлүүлнэ
gbde хуваалт ашиглагдаж эхлэхээсээ өмнө эхэлж тохируулагдсан байх шаардлагатай. Энэ эхний тохируулга нь зөвхөн нэг удаа хийгдэх ёстой:
#
gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock
gbde(8) нь загварт төрөл бүрийн тохиргооны сонголтуудыг зааж өгөх боломжийг танд өгч таны засварлагчийг онгойлгох болно. UFS1 эсвэл UFS2-той ашиглахын тулд sector_size-г 2048 гэж заана:
gbde(8) нь өгөгдлийг аюулгүй болгоход хэрэглэгдэх ёстой нэвтрэх үгийг хоёр удаа бичихийг танаас хүснэ. Нэвтрэх үг нь хоёуланд нь адил байх ёстой. gbde-ийн таны өгөгдлийг хамгаалах чадвар таны сонгосон нэвтрэх үгийн чанараас бүхэлдээ хамаарна. [9]
gbde init
тушаал нь таны
gbde хуваалтад зориулж цоож файлыг
үүсгэх бөгөөд энэ жишээн дээр /etc/gbde/ad4s1c.lock
гэж хадгалагдсан байна. gbde цоож файлууд
нь /etc/rc.d/gbde
эхлүүлэх скриптээр
зөв танигдахын тулд «.lock» гэж төгсөх ёстой.
gbde цоож файлууд нь шифрлэгдсэн хуваалтуудын агуулгатай цуг нөөцлөгдөх ёстой. Зөвхөн цоож файлыг устгах нь шийдсэн халдагч gbde хуваалтыг буцааж тайлахаас хамгаалж чаддаггүй бөгөөд цоож файлгүйгээр хууль ёсны эзэмшигч нь шифрлэгдсэн хуваалт дээрх өгөгдөлд gbde(8) болон түүнийг зохиогчийн ерөөсөө дэмждэггүй, их хүч шаардсан ажиллагаагүйгээр хандаж чадахгүй болох юм.
Шифрлэгдсэн хуваалтыг цөмд залгана
#
gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock
Шифрлэгдсэн хуваалтыг эхэлж тохируулж байх үед таны сонгосон нэвтрэх
үгийг оруулахыг танаас асуух болно. Шинэ шифрлэгдсэн төхөөрөмж
/dev
дотор
/dev/device_name.bde
гэж гарч
ирнэ:
#
ls /dev/ad*
/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bdeШифрлэгдсэн төхөөрөмж дээр файлын систем үүсгэнэ
Шифрлэгдсэн төхөөрөмж цөмд залгагдсаны дараа та энэ төхөөрөмж дээр
файлын систем үүсгэж болно. Шифрлэгдсэн төхөөрөмж дээр файлын
систем үүсгэхийн тулд newfs(8)-г ашиглана. Хуучин UFS1
файлын системийг эхлүүлснээс шинэ UFS2 файлын системийг эхлүүлэх нь
хамаагүй хурдан учраас newfs(8)-г -O2
тохируулгатай хэрэглэхийг зөвлөдөг.
#
newfs -U -O2 /dev/ad4s1c.bde
newfs(8) тушаал нь төхөөрөмжийн нэрэндээ
гэж
өргөтгөлөөр танигдах залгагдсан gbde
хуваалт дээр хийгдэх ёстой.*
.bde
Шифрлэгдсэн хуваалтыг холбоно
Шифрлэгдсэн файлын системд зориулж холбох цэгийг үүсгэнэ.
#
mkdir /private
Шифрлэгдсэн файлын системийг холбоно.
#
mount /dev/ad4s1c.bde /private
Шифрлэгдсэн файлын систем байгаа эсэхийг шалгана
Шифрлэгдсэн файлын систем одоо df(1)-д харагдаж ашиглахад бэлэн болох ёстой.
%
df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1037M 72M 883M 8% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 8.1G 55K 7.5G 0% /home
/dev/ad0s1e 1037M 1.1M 953M 0% /tmp
/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr
/dev/ad4s1c.bde 150G 4.1K 138G 0% /privateАчаалалт бүрийн дараа ямар ч шифрлэгдсэн файлын системүүдийг
ашиглаж эхлэхээсээ өмнө цөмд дахин залгаж, алдааг нь шалгаж холбож болно.
Шаардлагатай тушаалуудыг root
хэрэглэгч
ажиллуулах ёстой гэж үздэг.
gbde
хуваалтыг цөмд залгана
#
gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock
Шифрлэгдсэн gbde хуваалтыг эхэлж тохируулж байх үед таны сонгосон нэвтрэх үгийг оруулахыг танаас асуух болно.
Файлын систем дээр алдааг шалгана
Шифрлэгдсэн файлын системүүд нь автоматаар холбогдохын тулд
/etc/fstab
файлд одоохондоо
жагсаагдах боломжгүй учир файлын системүүд дээр алдаа байгаа эсэхийг
шалгаж тэдгээрийг холбохоос өмнө fsck(8)-г гараар ажиллуулах ёстой.
#
fsck -p -t ffs /dev/ad4s1c.bde
Шифрлэгдсэн файлын системийг холбоно
#
mount /dev/ad4s1c.bde /private
Шифрлэгдсэн файлын систем одоо ашиглахад бэлэн боллоо.
Шифрлэгдсэн хуваалтыг автоматаар залган шалгаж холбох скриптийг үүсгэж болох боловч аюулгүй байдлын шалтгаанаас болоод скрипт нь gbde(8) нууц үгийг агуулсан байх ёсгүй. Харин эдгээр скриптүүдийг гараар ажиллуулж нууц үгийг консол эсвэл ssh(1)-ээр оруулахыг зөвлөдөг.
Өөр нэг арга нь rc.d
скрипт байдаг. Энэ
скриптийн нэмэлт өгөгдлүүдийг rc.conf(5)-оор дамжуулж болно,
жишээ нь:
Энэ нь gbde нэвтрэх үгийг ачаалах үед оруулахыг шаарддаг. Зөв нэвтрэх үгийг бичсэний дараа gbde шифрлэгдсэн хуваалт автоматаар холбогдох болно. Энэ нь gbde-г зөөврийн компьютер дээр хэрэглэж байгаа үед их ашигтай байдаг.
gbde(8) нь 128-bit AES-ийг CBC горимд ашиглан сектор ачааг шифрлэдэг. Диск дээрх сектор бүр өөр өөр AES түлхүүрээр шифрлэгддэг. Секторын түлхүүрүүд хэрэглэгчийн оруулсан нэвтрэх үгээс хэрхэн гаргагддаг зэрэг gbde-ийн криптограф дизайны талаар дэлгэрэнгүйг gbde(4)-ээс үзнэ үү.
sysinstall(8) нь gbde-шифрлэгдсэн
төхөөрөмжүүдтэй нийцгүй байдаг. Бүх
төхөөрөмжүүдийг
sysinstall(8) эхлүүлэхээс өмнө цөмөөс салгасан байх ёстой бөгөөд
ингэхгүй бол энэ нь төхөөрөмжүүдийг шалгаж эхлэхдээ сүйрэх болно. Бидний жишээн
дээр ашиглагдсан шифрлэгдсэн төхөөрөмжийг салгахдаа дараах тушаалыг
ашиглана:*
.bde
#
gbde detach /dev/ad4s1c
Мөн vinum(4) нь geom(4) дэд системийг ашигладаггүйг анхаараарай, та gbde-г vinum эзлэхүүнүүдтэй ашиглаж болохгүй.
Шинэ криптограф GEOM ангилал geli
гэж бий. Үүнийг одоогоор
Pawel Jakub Dawidek <pjd@FreeBSD.org>
хөгжүүлж байгаа болно. geli
нь
gbde
-ээс өөр бөгөөд энэ нь өөр боломжуудыг
санал болгож криптограф үйлдэлдээ өөр схемийг ашигладаг.
geli(8)-ийн хамгийн чухал боломжууд бол:
crypto(9) тогтолцоог ашигладаг —
криптограф тоног төхөөрөмж бэлэн болоход geli
түүнийг автоматаар ашигладаг.
Олон криптограф алгоритмуудыг дэмждэг (одоогоор AES, Blowfish, болон 3DES).
root хуваалтыг шифрлэх боломжийг олгодог. Шифрлэгдсэн root хуваалтад хандахад хэрэглэгддэг нэвтрэх үгийг систем ачаалахад асуудаг.
Бие биеэндээ хамааралгүй хоёр түлхүүрүүдийг ашиглахыг зөвшөөрдөг (өөрөөр хэлбэл «key» болон «company key»).
geli
нь хурдан байдаг. Энгийн сектороос сектор уруу
шифрлэлтийг хийдэг.
Мастер түлхүүрүүдийг нөөцлөх ба сэргээхийг зөвшөөрдөг. Хэрэглэгч өөрийн түлхүүрүүдийг устгах хэрэгтэй болоход нөөцөөс түлхүүрүүдийг сэргээж өгөгдөлд дахин хандах боломжтой болох юм.
Дискийг санамсаргүй, нэг удаагийн түлхүүрээр залгахыг зөвшөөрдөг — энэ нь swap хуваалтууд болон түр зуурын файлын системүүдэд ашигтай байдаг.
geli
-ийн илүү боломжуудыг geli(8)-ийн
гарын авлагын хуудаснаас олж болно.
Дараагийн алхмууд нь geli
-ийн дэмжлэгийг FreeBSD цөмд
хэрхэн идэвхжүүлэхийг тайлбарлах бөгөөд шинэ geli
шифрлэлт үзүүлэгчийг хэрхэн үүсгэх болон ашиглах талаар өгүүлэх болно.
Цөмд өөрчлөлтүүд шаардлагатай учраас супер хэрэглэгчийн эрхүүд хэрэгтэй болно.
Цөмд geli
дэмжлэгийг
нэмэх нь
Дараах мөрийг цөмийн тохиргооны файлд нэмнэ:
Цөмөө Бүлэг 9, FreeBSD цөмийг тохируулах нь-д тайлбарласны дагуу дахин бүтээнэ.
Мөн geli
модулийг ачаалах үед дуудаж болно.
Дараах мөрийг /boot/loader.conf
файлд
нэмнэ:
geli(8) нь одоо цөмд дэмжигдсэн байх ёстой.
Мастер түлхүүр үүсгэх нь
Дараах жишээ нь түлхүүр файлыг хэрхэн үүсгэх талаар тайлбарлах бөгөөд
энэ нь /private
доор
холбогдсон шифрлэгдсэн үзүүлэгчийн Мастер түлхүүрийн хэсэг болон
ашиглагдах болно. Түлхүүр файл нь Мастер түлхүүрийг шифрлэхэд
хэрэглэгдэх зарим санамсаргүй өгөгдлийг өгөх болно. Мастер түлхүүр нь
нэвтрэх үгээр бас хамгаалагдах болно. Үзүүлэгчийн секторын хэмжээ
4kB том байх болно. Мөн энэ хэлэлцүүлэг нь geli
үзүүлэгчийг хэрхэн залгаж түүн дээр файлын систем үүсгэх, хэрхэн түүнийг
холбож ажиллах болон төгсгөлд нь хэрхэн салгах талаар тайлбарлах
болно.
Илүү сайн ажиллагааг хангахын тулд секторын том хэмжээг (4kB ч юм уу) ашиглахыг зөвлөдөг.
Мастер түлхүүр нь нэвтрэх үгээр хамгаалагдах бөгөөд түлхүүр файлд зориулагдсан
өгөгдлийн эх нь /dev/random
байх болно.
Бидний үзүүлэгч гэж нэрлэдэг /dev/da2.eli
-ийн
секторын хэмжээ 4kB байх болно.
#
dd if=/dev/random of=/root/da2.key bs=64 count=1
#
geli init -s 4096 -K /root/da2.key /dev/da2
Enter new passphrase:
Reenter new passphrase:Нэвтрэх үг болон түлхүүр файлыг хоёуланг нь заавал ашиглах шаардлагагүй; Мастер түлхүүрийг нууцлах аль ч аргыг тусад нь ашиглаж болно.
Хэрэв түлхүүр файл «-» гэж өгөгдсөн бол стандарт оролтыг ашиглана. Энэ жишээ нь нэгээс олон түлхүүр файлыг хэрхэн ашиглаж болох талаар харуулж байна.
#
cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2
Үзүүлэгчийг үүсгэсэн түлхүүрийн тусламжтай залгах нь
#
geli attach -k /root/da2.key /dev/da2
Enter passphrase:Шинэ цэвэр текст төхөөрөмж
/dev/
гэж нэрлэгдэх болно.da2
.eli
#
ls /dev/da2*
/dev/da2 /dev/da2.eliШинэ файлын системийг үүсгэх нь
#
dd if=/dev/random of=/dev/da2.eli bs=1m
#
newfs /dev/da2.eli
#
mount /dev/da2.eli /private
Шифрлэгдсэн файлын систем df(1)-д харагдаж ашиглахад бэлэн болох ёстой:
#
df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 248M 89M 139M 38% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr
/dev/ad0s1d 989M 1.5M 909M 0% /tmp
/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var
/dev/da2.eli 150G 4.1K 138G 0% /privateҮзүүлэгчийг холбосныг салгаж залгасныг болиулах
Шифрлэгдсэн хуваалт дээрх ажил хийгдэж дуусаад
/private
хуваалт
хэрэггүй болох үед geli
шифрлэгдсэн
хуваалтыг холбосноо салган цөмд залгаснаа бас салгах нь зүйтэй
юм.
#
umount /private
#
geli detach da2.eli
geli(8)-ийг хэрэглэх тухай дэлгэрэнгүй мэдээллийг гарын авлагын хуудаснаас олж болно.
geli
нь geli
-ийн
хэрэглээг хялбаршуулахад ашиглаж болох rc.d
скрипттэй цуг ирдэг. geli
-г rc.conf(5)-оор
тохируулах жишээг дараахаас харж болно:
Энэ нь /dev/da2
-г
Мастер түлхүүр файл нь /root/da2.key
-д байрлах
geli
үзүүлэгч гэж тохируулах бөгөөд
үзүүлэгчийг залгаж байхдаа geli
нь
нэвтрэх үгийг ашиглахгүй (хэрэв -P
сонголт
geli init
хийгдэх үед өгөгдсөн тохиолдолд энэ нь
ашиглагдах боломжтой). Систем нь geli
үзүүлэгчийг цөмөөс систем унтрахаас өмнө салгах болно.
rc.d
-г тохируулах талаар дэлгэрэнгүй мэдээлэл
энэхүү гарын авлагын rc.d
хэсэгт байгаа болно.
[9] Амархан тогтоож болох аюулгүй нэвтрэх үгийг хэрхэн сонгох талаар зөвлөгөөнүүдийг Diceware Passphrase вэб хуудаснаас үзнэ үү.
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар
<questions@FreeBSD.org>
хаягтай холбоо барихаасаа өмнө
баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал
<doc@FreeBSD.org>
хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал
<admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.