شما برای مطالعه این مقاله فقط 10 دقیقه وقت نیاز دارید

file-encryption-in-linux

رمزگذاری فایل و دایرکتوری در لینوکس

5/5 - (1 امتیاز)

با اینکه امنیت لینوکس یکی از اصلی ترین امتیازات آن است ولی همه ما می دانیم که این امنیت همیشه ۱۰۰ درصد نیست. پس اگر به فکر این هستید که درصد امنیت دایرکتوری ها و فایل های حساس خود را در برابر دسترسی های غیرمجاز ارتقا دهید، طبیعی است که به فکر آشنایی با رمزگذاری فایل و دایرکتوری در لینوکس باشید.

برای رمزگذاری فایل های لینوکس می توانید از ابزارهای مبتنی بر خط فرمان مثل GnuPG و Gpgtar یا ابزارهای گرافیکی مثل GNOME EncFS کمک بگیرید که هر کدام سینتکس و روش خاص خود را دارند.

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

۱. GnuPG – رمزگذاری فایل در لینوکس

ابزار GnuPG که به Pretty Good Privacy هم معروف است، یکی از ابزارهای فوق العاده برای حفظ امنیت اطلاعات محسوب می شود.

این ابزار ۲ ایده متفاوت برای رمزگذاری فایل ها در نظر گرفته است:

  •  می توانید برای فایل یا دایرکتوری موردنظر خود یک جفت کلید عمومی – خصوصی ایجاد کنید که کلید عمومی برای رمزگذاری فایل و کلید خصوصی هم برای رمزگشایی مجدد آن استفاده می شود.
  • با استفاده از آپشن c، یک پسورد برای فایل ایجاد کنید تا هر موقع که خواستید به این فایل دسترسی پیدا کنید، ابتدا رمز را وارد کنید.

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

توزیع های مبتنی در دبیان مثل اوبونتو

sudo apt install gnupg

توزیع های مبتنی بر REHL مثل Centos

sudo yum install gnupg

آرچ لینوکس

sudo pacman -Sy gnupg

OpenSUSE

sudo zypper install gnupg

حالا که مطمئن هستید سیستم شما از ابزار GnuPG بهره مند است، وقت استفاده از آن برای رمزگذاری فایل در لینوکس است.

البته همین ابتدای کار توجه داشته باشید که اگر می خواهید از ابزار GnuPG برای رمزگذاری یک دایرکتوری استفاده کنید، اول باید آن را به یک فایل فشرده تبدیل کنید و سپس عملیات رمزگذاری را روی آن اعمال کنید. برای این کار می توانید از دستور tar در لینوکس استفاده کنید.

رمزگذاری فایل با استفاده از پسورد

  • با استفاده از دستور cd در مسیر فایل موردنظر قرار بگیرید.
  • اسم کامل فایل موردنظر را در دستور زیر لحاظ کنید و آن را اجرا کنید:
gpg -c file.txt
  • رمز موردنظر را پاپ اپ ظاهر شده وارد کنید و اینتر را بزنید.وارد کردن پسورد برای رمزگذاری فایل و دایرکتوری در لینوکس با GnuPG
  • رمز را مجدداً وارد کنید تا توسط ابزار تایید شود.

وارد کردن مجددرمزحالا دیگر فایل موردنظر شما رمزگذاری شده است و پسوند gpg هم به آن اضافه شده است.

اگر بخواهید آن را با دستوری مثل cat باز کنید، با یک سری اطلاعات بی معنی و تصادفی روبرو خواهید شد.

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

rm file.txt

برای رمزگشایی فایل با GnuPG هم می توانید از دستور زیر استفاده کنید:

gpg -d file.txt.gpg

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

ولی در اکثر مواقع، قابلیت کش این ابزار فعال می شود و بدون اینکه شما رمز را وارد کنید، فایل رمزگشایی می شود. مدت زمان ذخیره پسورد در کش محدود است و احتمالاً در حالت پیش فرض ۶۰۰ ثانیه است.

در این صورت، اگر به امنیت فایل های خود اهمیت می دهید و می خواهید هر بار موقع رمزگشایی فایل، نیاز به وارد کردن دستی پسورد باشد، می توانید تنظیمات فایل پیکربندی GnuPG را به شکل دلخواه تغییر دهید.

نحوه تغییر زمان کش پسورد در GnuPG

  • فایل پیکربندی این ابزار را باز کنید:
sudo nano ~/.gnupg/gpg-agent.conf
  • دو خط زیر را را به آن اضافه کنید:

default-cache-ttl 1

max-cache-ttl 1

  • به ترتیب دکمه ترکیب CTRL + O و CTRL + X را فشار دهید تا این فایل ذخیره شده و ویرایشگر هم بسته شود.
  • سپس با وارد کردن دستور زیر، این ابزار را ریستارت کنید:
echo RELOADAGENT | gpg-connect-agent

از این به بعد، هر موقع که خواستید به فایل محافظت شده با ابزار GnuPG دسترسی پیدا کنید، حتماً باید رمز آن را وارد کنید.

حالا می توانید با دستوراتی مثل cat به فایل موردنظر دسترسی پیدا کنید چون رمزگشایی شده است:

cat file.txt

رمزگذاری فایل با کلید عمومی – خصوصی

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

  • با اجرای دستور زیر یک جفت کلید عمومی و خصوصی ایجاد کنید:
gpg --full-generate-key 

این ابزار از شما ۵ سوال می پرسد:

۱. نوع رمزگذاری

عدد ۱ که همان RSA است را انتخاب کنید.

۲. اندازه کلید

هر چقدر اندازه کلید بیشتر باشد، امنیت آن بالاتر است.

۳. تاریخ انقضای کلید

این تاریخ با تعداد هفته (w)، ماه (m) و سال (y) مشخص می شود و اگر می خواهید کلید موردنظر تاریخ انقضایی نداشته باشد، کافیست عدد 0 را وارد کنید.

۴. اسم کلید 

۵. آدرس ایمیل

این ایمیل صرفاً جهت شناسایی کلید است و قرار نیست پیام ایمیلی به آن ارسال شود.

در آخر، یک کامنت هم درخواست می شود که می توانید آن را خالی بگذارید و اینتر را بزنید.وارد کردن اطلاعات لازم برای ایجاد کلید

بعد از اینکه به این سوالات پاسخ دادید، باید یک رمز قوی هم برای محافظت از این کلید خصوصی تنظیم کنید.پسورد دسترسی به کلید GnuPG

* فراموش نکنید که این پسورد برای رمزگشایی فایل ضروری است.

  • بعد از اینکه در مسیر فایل موردنظر قرار گرفتید، با دستور زیر می توانید آن را رمزگذاری کنید:
gpg -r email-address -e file.txt

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

  • اکنون می توانید فایل اصلی را حذف کنید:
rm file.txt

اگر قصد رمزگشایی فایل gpg را دارید، می توانید از دستور زیر استفاده کنید:

gpg -d file.txt.gpg

سپس، رمزی که برای آن مشخص کرده بودید را وارد کنید و روی ok کلیک کنید.

تکنیک کش پسورد برای این روش هم فعال است و اگر می خواهید هر بار موقع رمزگشایی فایل، وارد کردن رمز ضروری باشد، می توانید همان دو خط کد که در بخش بالایی بررسی کردیم را به فایل پیکربندی اضافه کنید.

۲. Gpgtar – فشرده سازی و رمزگذاری فایل و دایرکتوری در لینوکس

ابزار Gpgtar یک حالت ترکیبی از دستور GnuPG و tar است و این امکان را به شما می دهد که چند فایل یا دایرکتوری را به صورت یکجا فشرده و رمزگذاری کنید.

پس دیگر مثل GnuPG نیازی نیست که ابتدا دایرکتوری را به صورت جداگانه با tar فشرده کنید و آن را با ابزار Gpgtar رمزگذاری کنید.

اگر سیستم شما مجهز به ابزار GnuPG است، این ابزار هم به طور پیش فرض روی سیستم شما نصب است چون این دو ابزار از هم جدا نیستند.

اگر هم متوجه شدید که نمی توانید از Gpgtar استفاده کنید، می توانید از دستورات نصب GnuPG در توزیع های مختلف لینوکس استفاده کنید.

حالا نوبت به رمزگذاری دایرکتوری با Gpgtar می رسد:

* مثال این ابزار را با دایرکتوری آموزش می دهیم چون بهتر است ببینید پروسه فشرده سازی و رمزگذاری به صورت همزمان انجام می شوند.

  • با دستور cd در مسیر دایرکتوری موردنظر قرار بگیرید.
کلیک کنید  نحوه نصب آلمالینوکس (AlmaLinux)؛ تنها در 6 گام

اگر هم نمی خواهید ریسک کنید، می توانید یک دایرکتوری جدید ایجاد کنید و یک فایل متنی ساده به آن اضافه کنید:

mkdir top-secret

echo "this is a secret" > top-secret/secret.txt
  • با اجرای دستور زیر، فایل را رمزگذاری کنید:
gpgtar --encrypt --symmetric --output top-secret.gpg top-secret

این دستور، دایرکتوری top-secret را با الگوریتم symmetric key رمزگذاری می کند و فایل خروجی top-secret.gpg را ایجاد می کند.

حتی می توانید اسم چند فایل یا دایرکتوری را در دستور encrypt لحاظ کنید تا gpgtar، یک فایل فشرده از آنها ایجاد کند و سپس رمزگذاری کند.

gpgtar --encrypt --symmetric --output top-secret.gpg top-secret file1.txt file2.txt

بعد از اجرای این دستور، پسورد درخواست می شود که باید یک پسورد قوی در نظر بگیرید تا امنیت دایرکتوری بالاتر باشد.

  • پسورد را دو بار وارد کنید تا تایید شود.

نحوه رمزگشایی فایل encrypted با gpgtar هم به صورت زیر است:

  • ابتدا باید یک دایرکتوری مخصوص رمزگشایی با اسم دلخواه ایجاد کنید:
mkdir decrypted
  • سپس دستور زیر را اجرا کنید تا محتویات فایل رمزگذاری شده را در این دایرکتوری جاگذاری کنید:
gpgtar --decrypt --directory decrypted top-secret.gpg

حالا با استفاده از دستورات cd و ls می توانید محتویات دایرکتوری decrypted را بررسی کنید.

۳. دستور zip – فشرده سازی رمز دار فایل 

همانطور که می دانید دستور zip برای فشرده سازی فایل ها و دایکتوری ها استفاده می شود که می توانید آپشن password را هم به آن اضافه کنید تا فایل فشرده شما با یک پسورد محافظت شود.

این ابزار در اکثر توزیع های لینوکس از قبل نصب است ولی اگر متوجه شدید که سیستم شما مجهز به این ابزار نیست می توانید از دستور زیر استفاده کنید:

توزیع های مبتنی در دبیان مثل اوبونتو

sudo apt install zip

توزیع های مبتنی بر REHL مثل Centos

sudo yum install zip

آرچ لینوکس

sudo pacman -Sy zip

OpenSUSE

sudo zypper install zip

بعد از نصب zip، وقت فشرده سازی فایل ها و دایرکتوری های موردنظر شماست.

  • با دستور ls و cd در مسیر فایل ها/دایرکتوری های موردنظر خود قرار بگیرید.
  • دستور زیر را اجرا کنید:
zip --password your_password archive_file.zip filename1 filename2

در قسمت your_password رمز موردنظر را وارد کنید و اسم فایل فشرده خروجی را با پسوند .zip وارد کنید. سپس اسم فایل ها و دایرکتوری هایی که می خواهید را وارد کنید.

بعد از اجرای دستور بالا، یک فایل فشرده به اسم archive_file دارید که هر وقت خواستید می توانید با اجرای دستور زیر آن را از حالت فشرده خارج کنید. البته به شرط اینکه رمز آن را به درستی وارد کنید.

unzip archive_file.zip

۴. mcrypt – رمزگذاری فایل در لینوکس با الگوریتم دلخواه

ابزار mcrypt از الگوریتم های مختلفی برای رمزگذاری فایل پشتیبانی می کند و شما می توانید الگوریتم موردنظر برای رمزگذاری را خودتان مشخص کنید. 

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

mcrypt --list

DES ،TripleDES ،Blowfish و AES جزو الگوریتم هایی هستند که توسط این ابزار پشتیبانی می شوند.

بعد از انتخاب الگوریتم، نوبت به رمزگذاری فایل می رسد.

  • پس با استفاده از دستورات ls و cd در مسیر فایل موردنظر قرار بگیرید.
  • دستور رمزگذاری را به صورت زیر اجرا کنید:
mcrypt -a algorithm_name filename

بعد از اجرای این دستور، از شما یک رمز درخواست می شود که باید آن را وارد کنید و کلید Enter را فشار دهید. یک بار دیگر هم باید رمز را وارد کنید تا ابزار mcrypt این رمز را برای فایل موردنظر شما تایید کند.

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

mcrypt -d filename.nc

رمزی که برای فایل تعیین کرده بودید را وارد کنید تا بتوانید به محتویات آن دسترسی پیدا کنید.

۵. EncFS – ایجاد فایل سیستم رمزگذاری شده در لینوکس

EncFS برنامه ای است که با استفاده از آن می توانید یک دایرکتوری مخصوص ایجاد کنید و هر فایل و دایرکتوری که می خواهید رمزگذاری کنید را به آن اضافه کنید تا به طور خودکار رمزگذاری شود.

در واقع، این دستور با دو دایرکتوری مجزا سروکار دارد. یکی از آنها برای قرار دادن فایل های موردنظر است و دایرکتوری دیگر هم به طور خودکار، کپی های رمزگذاری شده آن فایل ها را ایجاد می کند.

برای شروع استفاده از EncFS، ابتدا باید آن را نصب کنید:

توزیع های مبتنی در دبیان مثل اوبونتو

sudo apt install encfs

توزیع های مبتنی بر REHL مثل Centos

sudo yum install encfs

آرچ لینوکس

sudo pacman -Sy encfs

OpenSUSE

sudo zypper install encfs

حالا بیایید نحوه رمزگذاری فایل ها با encfs را شروع کنیم:

  • ابتدا دو دایکتوری encrypt و decrypt را ایجاد کنید.
mkdir -p /encrypt

mkdir -p /decrypt
  • سپس با دستور encfs، فایل سیستم مجازی رمزگذاری را ایجاد کنید:
encfs /encrypt /decrypt
  • بعد از اجرای آن، از شما یک پسورد درخواست می شود که باید آن را وارد کرده و مجدداً تکرار کنید تا تایید شود.

این دستور با استفاده از دو دایکتوری encrypt و decrypt یک فایل سیستم مجازی ایجاد می کند و در مسیر decrypt/ مانت می کند.

اگر بعد از این کار، دستور df -h را بررسی کنید، می توانید فایل سیستم مربوط به decrypt را ببینید.فایل سیستم مانت شده برای رمزگذاری فایل و دایرکتوری در لینوکس

برای نشان دادن عملکرد encfs، ابتدا در فولدر decrypt یک فایل به اسم دلخواه ایجاد کنید:

cd decrypt

echo "this is a top secret" > top-secret.txt

حالا اگر مسیر encrypt را بررسی کنید، یک فایل با اسم و اطلاعات رمزگذاری شده وجود دارد.   

اکنون باید دایرکتوری اصلی که بدون رمزگذاری است را unmount کنید تا محتوای آن برای کاربران عادی بدون پسورد قابل مشاهده نباشد.

fusermount -u decrypt

اگر الان فولدر decrypt را بررسی کنید، خبری از فایل نیست ولی فولدر encrypt حاوی حالت رمزگذاری شده آن است.

اما برای دسترسی مجدد به محتوای اصلی یا اضافه کردن فایل/دایرکتوری جدید به فولدر decrypt، باید عمل remount را انجام دهید.

پس دستور زیر را مجدداً اجرا کنید:

encfs /encrypt /decrypt

رمزی که برای آن تعیین کرده بودید را وارد کنید تا این محدودیت رمزگذاری حذف شود.

ابزار EncFS دارای یک رابط گرافیکی به اسم GNOME EncFS Manager است که با استفاده از آن می توانید عملیات مربوط به EncFS را به صورت تصویری و واضح تر جلو ببرید.

برای استفاده از این ابزار، ابتدا باید آن را نصب کنید.

توزیع های مبتنی در دبیان مثل اوبونتو

sudo apt install gnome-encfs-manager

توزیع های مبتنی بر REHL مثل Centos

sudo yum install gnome-encfs-manager

حالا اگر از منوی برنامه های سیستم، ابزار GNOME EncFS را جستجو کنید می توانید برنامه مربوط به آن را پیدا کنید.

  • بعد از اینکه برنامه را باز کردید، با صفحه اصلی مواجه می شوید.
  • برای ایجاد یک فایل سیستم مجازی رمزگذاری، روی + کلیک کنید.
  • در فیلد اول، مسیر فولدری را که می خواهید محتوای رمزگذاری شده را در آن نگهداری کنید، وارد کنید.
  • در فیلد دوم هم مسیر فولدر اصلی برای اضافه کردن فایل/دایرکتوری را مشخص کنید.
  • در بخش password هم رمز را وارد کرده و آن را تکرار کنید.
  • در آخر، روی create کلیک کنید تا این فایل سیستم مجازی ایجاد شود.ایجاد فایل سیستم برای رمزگذاری با رابط گرافیکی

حالا اگر فولدر رمزگذاری را در برنامه مدیریت فایل باز کنید، با یک سری فایل رمزگذاری شده روبرو می شوید.

  • برای mount یا unmount کردن محتوای فولدرهای فایل سیستم مجازی می توانید تیک مربوط به آنها بردارید یا آن را علامت بزنید.مانت و آنمانت فایل سیستم در encfs

* با هر بار علامت زدن کادر مربوط به mount، رمز درخواست می شود که باید رمزی که تعیین کرده بودید را وارد کنید.وارد کردن رمز فایل سیستم برای دسترسی به محتویات آن

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

سخن آخر

رمزگذاری فایل و دایرکتوری در لینوکس یکی از مهم ترین کارها برای حفظ امنیت اطلاعات حساس در برابر دسترسی های غیرمجاز است. برای این کار می توانید از ابزارهای مبتنی بر خط فرمان و گرافیکی مختلفی استفاده کنید که هر کدام سبک و سیاق خاص خود را دارند.

مطالب مشابهی که شاید علاقمند باشید

من زهرا پیرجانی دانشجوی رشته نرم افزار هستم. علاقه ای که به یادگیری مطالب جدید دارم باعث شد که انگیزم برای فعالیت در حوزه تولیدمحتوا بیشتر شود. تمام تلاشم این است که با درک کامل موضوع، محتوایی ساده و کامل تهیه کنم که برای همه علاقمندان مفید و کاربردی باشد. یادگیری مطالب جدید و آموزش اونها به بقیه، بهترین کاری هست که می توانم برای رشد خودم و همچنین کمک به رشد علاقمندان به مباحث مورنظر انجام بدم.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید