لینوکس

نحوه استفاده از DM-Crypt برای ایجاد یک ظرفیت رمزگذاری شده در VPS اوبونتو

مقدمه
امنیت باید دغدغه اصلی برای هر نوع داده ذخیره شده در رایانه قابل دسترسی به اینترنت باشد. در حالی که هر ارائه دهنده با ویژگی ذخیره سازی باید از اطلاعات خود محافظت کند، این امر تا جایی محقق میشود که دسترسی غیرمجاز از طریق نقص نرم افزار روی سرور مجازی، مهندسی اجتماعی و بسیاری راه های دیگر رخ ندهد. به طور خلاصه، شما باید مالکیت رمزگذاری و امنیت اطلاعاتی که نمی توانید از عدم افشای آن مطمئن باشید را در اختیار بگیرید.
روشهای زیادی برای رمزگذاری محتوا در یک سیستم لینوکس وجود دارد. بسیاری از این گزینه ها به رمزگذاری پارتیشن های جداگانه ، دستگاه ها یا سیستم های فایلی متکی هستند. در صورت کار با سیستمی مانند VPS ممکن است گزینه مناسبی نباشد. با این حال گزینه های دیگری نیز وجود دارد ، مانند ایجاد فایلی که به عنوان یک دستگاه به منظور ذخیره داده های رمزگذاری شده عمل می کند.
در این راهنما از ابزارهای dm-crypt برای ایجاد یک فایل رمزگذاری شده بزرگ استفاده می کنیم که می تواند برای ذخیره داده های حساس ما استفاده شود. سپس می توانید این فایل را به صورت پارتیشن معمولی سوار کنید. ما این موضوع را به عنوان مثال در اوبونتو 12.04 VPS نشان خواهیم داد ، اما رویه های مشابه باید برای توزیع های دیگر قابل پیاده سازی باشد.
ایده پایه
Dm-crypt یک مکانیزم رمزگذاری در سطح هسته است که امکان رمزنگاری دیسک شفاف را ممکن میسازد. این بدان معنی است که فایل ها بلافاصله و بدون هیچ گونه کار اضافی پس از نصب ، در دسترس هستند.
در حالی که اکثر این برنامه ها به رمزگذاری موارد در سطح پارتیشن تکیه می کنند ، ما می توانیم با استفاده از فایلی که به عنوان هدف نقشه برداری سیستم قرار داده ایم، این ویژگی را تغییر دهیم. ما این کار را با قرار دادن فایل به عنوان دستگاه حلقه انجام می دهیم. سپس می توانید داده ها را در این “دستگاه” نصب شده دقیقاً مانند هر پارتیشن یا دستگاه دیگر ذخیره کنید.
هنگام بررسی اجرای هر نوع رمزگذاری ، باید برخی از جوانب مثبت و منفی را وزن کنید. اول از همه ، همیشه یک عملکرد درگیر با رمزگذاری وجود دارد. ممکن است مهم باشد یا نباشد ، و توصیه می کنیم ابتدا قبل از اجرای تست ها در مقیاس بزرگتر ، یک فایل کوچک ایجاد کنید.
نکته دیگر بازیابی است. رمزگذاری به واسطه عملکرد اصلی خود ، بازیابی را مشکل تر می کند. اگر رمزعبور خود را فراموش کرده باشید ، داده های شما به طور موثر برای همیشه از بین می روند. اگر هدر LUKS شما رونویسی یا آسیب دیده باشد ، داده های شما برای همیشه از بین می روند. اگر سیستم شما در حال بوت شدن نیست و شما نیاز به دسترسی به اطلاعات در فایل رمزگذاری شده خود دارید، برای دستیابی به دسترسی مجبور هستید مراحل پیچیده تری را طی کنید.
هنگام تصمیم گیری در مورد رمزگذاری داده ها ، باید در مورد احتمال از دست دادن آن اطلاعات در صورت بروز اشتباه آگاه باشید. شما قطعاً باید از هر یک از داده ها نسخه پشتیبان تهیه کنید و dm-crypt اطلاعات زیادی در مورد چگونگی انجام این کار در این لینک ارائه می دهد.
نصب ابزارهای dm-crypt
در حالی که عملکرد سطح هسته باید در توزیع شما موجود باشد ، ابزارهای دردسترس واقعی احتمالاً به طور پیش فرض نصب نشده اند. تمام دستورات موجود در این راهنما به صورت root انجام می شود.
ما می توانیم با به روزرسانی ایندکس پکیج محلی و نصب ابزارهای dm-crypt ، ابزارهای لازم را بدست آوریم:
apt-get update
apt-get install cryptsetup

این باعث می شود همه وابستگی های لازم و امکانات کمکی مورد نیاز برای کار با یک حجم DM-crypt افزایش یابد.
یک فایل خالی غیر پراکنده ایجاد کنید
برای ذخیره داده های رمزگذاری شده خود، باید فایلی را ایجاد کنیم که به عنوان دستگاه ذخیره سازی ما عمل کند.
ما می خواهیم یک فایل خالی ایجاد کنیم، اما نمی توانیم یک فایل پراکنده داشته باشیم ، که در هنگام ایجاد، اندازه کامل فایل را در اختیار قرار میدهد. ما می توانیم این کار را از طرق مختلف انجام دهیم.
ساده ترین و سریعترین راه برای انجام این عملیات با دستور fallocate است. این دستور فوراً مقدار دیسک مورد نظر شما را برای یک فایل اختصاص می دهد و نام آن را به شما می دهد.
به عنوان مثال، برای ایجاد یک فایل 512MB در هوم دیرکتوری کاربر اصلی، می توانیم تایپ کنیم:
fallocate -l 512M /root/test1

این کار فوق العاده سریع است ، اما یک ویژگی منفی نیز دارد که داده های قدیمی و حذف شده قبلی را که قبلاً توسط آن بلوک ها با داده صفر یا تصادفی استفاده می شود، بازنویسی نمی کند. این ویژگی احتمالاً رای اهداف شما مطلوب نخواهد بود زیرا ما نمی خواهیم مردم بتوانند بگویند کدام قسمت از فایل داده های رمزگذاری شده روی آن نوشته شده است.
جایگزین دیگر استفاده از دستور فراگیر dd است. ما می توانیم با استفاده از شبه دستگاه / dev / zero برای کل منطقه ای که در اختیار فایل ما قرار دارد ، zero ها را بنویسیم. با تایپ کردن چیزی مثل دستور زیر می توانیم فایل مشابه فایل فوق ایجاد کنیم:
dd if=/dev/urandom of=/root/test3 bs=1M count=512

اگر در عوض ، می خواهید داده های تصادفی را بنویسید، که باید از داده های رمزگذاری شده که در واقع برای آن نوشته خواهد شد تبعیت کند، می توانید به جای آن از یکی از شبه دستگاههای تصادفی استفاده کنید. این کار بسیار بیشتر طول خواهد کشید ، به خصوص اگر شما یک فایل بزرگ را اختصاص می دهید ، اما استفاده از دستگاه های تصادفی احتمالاً بهترین راه برای تهیه فایل برای این منظور است:
dd if=/dev/zero of=/root/test2 bs=1M count=512

استفاده از شبه دستگاه/dev/random تصادفی روشی حتی مطمئن تر برای انجام این کار است باز هم زمان تر خواهد بود:
dd if=/dev/random of=/root/test4 bs=1M count=512

ایجاد یک کانتینر LUKS با رمز dmدر فایل
قبل از اینکه فایلی را که تازه ایجاد کرده ایم قالب بندی کنیم ، باید یک پارتیشن LUKS را درون فایل ایجاد کنیم. LUKS یا همان Linux Unified Key Setup یک استاندارد برای رمزگذاری دیسک است. و لایه اساسی است که همه داده های دیگر ما در بالای آن قرار می گیرند.
ابزارهای dm-crypt روشی بسیار آسان برای ایجاد این لایه ارائه می دهند. ما می توانیم کانتینر را با این دستور بسازیم.
cryptsetup -y luksFormat / root / test1
ما باید تأیید کنیم که شما مایل به نوشتن مطالب فایل هستید. فایلی را که به آن ارجاع داده اید دو بار بررسی کنید تا به طور تصادفی فایل اشتباه را بازنویسی نکنید. پس از تأیید ، برای ادامه “yes” را وارد کنید.
از شما خواسته می شود پسوردی را که برای رمزگشایی داده ها لازم است ، تنظیم کنید. به یاد داشته باشید: اگر این گذرواژه را گم کنید ، هر داده ذخیره شده در سیستم فایل که ایجاد خواهیم کرد از بین می رود. با اطمینان خاطر این رمز را در جایی ذخیره کنید که گم نشود یا حتماً آن را به خاطر بسپارید. گزینه -y به ما امکان می دهد رمز عبور را تأیید کنیم تا مطمئن شویم که اشتباه نکرده ایم.
اگر هم اکنون فایل را بررسی کنیم ، می بینیم که اکنون به عنوان فایل رمزگذاری شده LUKS شناخته شده است:
فایل / root / test1
test1: فایل رمزگذاری شده LUKS ، ver 1 [aes، cbc-essiv: sha256، sha1] UUID: 1851db36-3223-4ee1-8e3e-cc65c49e05f3
اکنون که کانتینری در بالای فایل خود ساخته ایم ، می توانیم کانتینرها را به این شکل باز کنیم:
cryptsetup luksOpen / path / to / LUKS / فایل mapping_name
در مثال ما ، از فایل / root / test1 استفاده می کنیم و نام آن را volume1 می گذاریم:
cryptsetup luksOpen / root / test1 volume1
باید رمز عبوری را که برای فایل تنظیم کرده اید ارائه دهید ، که برای رمزگشایی آن لازم است
این رمز دستگاه LUKS را باز می کند ، و در صورت ایجاد فایلی در / dev / Mapper / volume1 آن را با نامی که ما تهیه می کنیم منطبق میکن. اساساً فایل را به عنوان یک دستگاه محلی با حلقه برگشتی باز می کند تا بقیه سیستم هم اکنون بتواند مانند یک وسیله واقعی ، فایل را اداره کنند.
ایجاد و نصب سیستم فایل
اکنون که یک کانتینر LUKS ایجاد کردیم و به عنوان یک وسیله معمولی در سیستم ما باز شده است ، می توانیم عملیات منظم دستگاه را بر روی آن انجام دهیم.
ابتدا باید یک سیستم فایل را در دستگاه خود قالب بندی و ایجاد کنیم. می توانید سیستم فایل مورد نظر خود را انتخاب کنید. ما از یک سیستم فایل استاندارد Ext4 استفاده خواهیم کرد، اما شما می توانید از هر سیستم فایل که سرور مجازی شما برای کارکرد عادی با آن پیکربندی شده است استفاده نمایید.
برای اهداف ما، دستوری که ما می خواهیم از آن استفاده کنیم به صورت زیر است:
mkfs.ext4 -j / dev / Mapper / volume1
اکنون یک سیستم فایل در بالای کانتینر LUKS ما نوشته شده است که در فایل ما موجود است. از آنجا که مانند یک دستگاه کنترل می شود ، مرحله بعدی ما به طور منطقی نصب دستگاه است.

بیایید یک مکان نصب ایجاد کنیم که معقول به نظر برسد:
mkdir /mnt/files
اکنون ، فقط باید سیستم فایل خود را نصب کنیم:
mount /dev/mapper/volume1 /mnt/files

اکنون می توانید فایل ما را به عنوان بخشی از سیستم فایل های موجود مشاهده کنید:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 59G 2.7G 54G 5% /
udev 2.0G 12K 2.0G 1% /dev
tmpfs 791M 216K 791M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
/dev/mapper/volume1 486M 2.3M 459M 1% /mnt/files

می بینید که برخی از فضای موجود در فایل ما توسط رمزگذاری و سیستم فایل بالای آن گرفته شده است. اگر چه همچنان بیشتر فضای خود را داریم.
اگر موقعیت مکانی که فایل خود نصب کرده ایم را بررسی کنیم ، می بینیم که دقیقاً مانند هر سیستم فایل Ext4 دیگری ارائه شده است:
cd /mnt/files
ls
lost+found

دایرکتوری بازیابی نرمال lost+found ایجاد شده است. اکنون می توانیم داده هایی را در این مکان بنویسیم ، و آن داده ها در فایل ما جای داده و رمزگذاری می شوند. به عنوان مثال ، فقط می توانیم دیرکتوری / etc خود را بگیریم و آن را در محل نصب کپی کنیم:
cp -r /etc/* /mnt/files

حذف سیستم فایل و بستن کانتینر LUKS
پس از اتمام نوشتن یا خواندن داده های خود، ما سیستم فایل را با استفاده از روش های عادی حذف می کنیم:
cd
umount /mnt/files

با این کار مکان / dev / mapper / volt1 از نقطه اتصال ما در /mnt/filesجدا می شود:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 59G 2.7G 54G 5% /
udev 2.0G 12K 2.0G 1% /dev
tmpfs 791M 216K 791M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm

با این حال ، فایل ما هنوز به عنوان / dev / Mapper / vol1 در سیستم باز و در دسترس هستند.
ls /dev/mapper/
control volume1

دستگاه کنترل وسیله ای است که برای ایجاد دستگاه های نقشه برداری دیگر استفاده می شود. ما با خیال راحت می توانیم این مسئله را نادیده بگیریم.
برای بستن فایل volume1 و ایمن سازی محتویات آن ، باید فایل را ببندیم ، در اصل نقشه دستگاه را از فایل خارج می کنیم. این بدان معنی است که شما تا زمانی که رمز عبور را دوباره ارائه ندهید ، دیگر قادر به دسترسی به محتوای فایل نخواهید بود:
cryptsetup luksClose volume1

اگر دایرکتوری نقشه برداری دستگاه خود را بررسی کنیم ، خواهیم دید که دستگاه volume1 ما حذف شده است:
ls /dev/mapper
control

حجم ما اکنون حذف شده است ، کانتینر LUKS بسته شده است ، و داده های ما کاملاً رمزگذاری شده و در پشت رمز عبور ما ایمن شده است.
روش استفاده سرراست
برای جدا کردن مراحل اولیه ایجاد از استفاده روزانه ، به سرعت فرایندی را که شما برای استفاده از فایل نیاز دارید اجرا میکنیم.
اکنون که فایل LUKS را دارید ، وقتی می خواهید از آن استفاده کنید، می توانید فایل LUKS را به سادگی باز کنید:
cryptsetup luksOpen / root / test1 volume1
شما می توانید نام دیگری را در اینجا به غیر از اسم اولیه انتخاب کنید ، که فقط تا زمانی که فایل باز باشد اهمیت خواهد داشت. رمز volume را وارد کنید.
پس از آن ، دستگاهی را که نقشه برداری شده است نصب کنید:
mount /dev/mapper/volume1 /mnt/files

اکنون می توانید به محتوای فایل دسترسی داشته باشید و بخوانید یا بنویسید.
پس از اتمام، مجبورید دوباره دستگاه را از آن جدا کنید:

umount /mnt/files

پس از حذف دستگاه ، می توانید دوباره فایل LUKS را برای رمزگذاری داده ها ببندید:
cryptsetup luksClose volume1
نتیجه
اکنون می توانید یک فایل رمزگذاری شده را برای ذخیره اطلاعات حساس خود داشته باشید. به یاد داشته باشید که غالباً بین عملکرد و سهولت استفاده و امنیت رقابتی وجود دارد. همچنین این را بخاطر بسپارید که هرگز نباید پسوردی که وارد کرده اید را فراموش کنید زیرا مطلقا راهی برای بازیابی آن وجود ندارد.
اگرچه این تنها ملاحظات لازم برای محافظت از داده های شما نیست، امیدوارم بتوانید این موضوع را به جعبه ابزار خود اضافه کنید تا امنیت روی سرورهای لینوکس تان بیشتر شود.

 

از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :

چگونه می توان با کتابخانه (library) درخواست ها در پایتون شروع به کار کرد

نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04

نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose در اوبونتو 18.04

نحوه بهینه سازی درخواست های MySQL با ذخیره سازی ProxySQL در اوبونتو 16.04

نحوه استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18.04

چگونه می توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظیم كرد (شروع سریع)

چگونه می توان از رول های ansible برای انتزاع محیط زیرساختی خود استفاده کرد

نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18.04

نحوه تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه می توان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو 18.4 تنظیم کرد

نحوه استقرار و مدیریت DNS با استفاده از DNSControl در Debian 10

چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7 تنظیم كرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی


https://vpsgol.net/product/vps-germany/

https://vpsgol.net/product/vps-usa/

https://vpsgol.net/product/vps-france/

https://vpsgol.net/product/vps-canada/

https://vpsgol.net/product/vps-poland/

https://vpsgol.net/product/vps-netherlands/

https://vpsgol.net/product/vps-england/