اگر شما داده مهمی روی ماشین خود دارید که میخواهید یک لایه ای از امنیت در آن برقرار کنید یا میخواهید آن ها را روی شبکه منتقل کنید بهتر است آن ها را رمز کنید. ما در این آموزش به شما خواهیم گفت که چگونه داده های خود در یک فایل یا دایرکتوری را با استفاده از دستور tar آرشیو کرده و سپس آنها را به کمک دستور openssl رمز نمائید.
رمز گذاری بر روی فایل در لینوکس
ابتدا لازم است بدانید ایجاد یک فایل آرشیو شده در لینوکس بوسیله دستور tar چگونه انجام میشود. اگر شما فایل با نام simple داشته باشید و بخواهید از آن آرشیو تهیه کنید باید به صورت زیر عمل نمائید:
1 |
root@arshatech:~# tar cvfz simple.tar.gz simple |
بعد از اجرای دستور فوق فایل simple.tar.gz ایجاد میشود. اگر دایرکتوری باشد نیز از همان دستور بالا میتوان استفاده کرد.
در مثال بالا مقادیر عبارتند از:
- c: برای ایجاد یک آرشیو جدید استفاده میشود.
- v: برای نمایش خروجی حین درست کردن آرشیو است.
- f: برای فشردگی آرشیو ایجاد شده مورد استفاده قرار میگیرد.
- z: برای تولید فایل آرشیو فشرده با فرمت gzip مورد استفاده قرار میگیرد.
حال اگر بخواهید همان فایل آرشیو را رمز کنید باید دستور بالا را با کمک openssl به اجرا در بیاورید:
1 2 3 4 |
root@arshatech:~# tar cvfz - simple | openssl enc -e -aes256 -out secured.tar.gz simple enter aes-256-cbc encryption password: Verifying - enter aes-256-cbc encryption password: |
بعد از اجرا می بایست دو بار رمز عبور مورد نظر خود را وارد کنید.
اما در مثال بالا و هنگام اجرای دستور openssl مقادیر زیر مورد استفاده قرار میگیرد:
- enc: برای رمزنگاری هنگام استفاده از دستور openssl مورد استفاده قرار میگیرد.
- e-: این سوئیج برای رمزکردن فایل ورودی مورد استفاده قرار میگیرد.
- aes256-: الگوریتم رمزنگاری ست.
- out-: برای نام گذاری فایل خروجی مورد استفاده قرار میگیرد.
حال اگر مشاهده کنید فایل رمزشده با نام secured.tar.gz برای شما ایجاد شده است.
رمزگشایی از فایل ها در لینوکس
بعد از اینکه توانستید یک فایل را در لینوکس با حالت امن رمز کنید حال لازم است پیش از رمزگشایی آن اول بدانیم که چگونه یک فایل آرشیو شده در لینوکس را از حالت آرشیو و فشرده خارج سازیم. میخواهیم در مثال بالا فایل simple.tar.gz را از حالت آرشیو و فشرده خارج سازیم. برای این کار به صورت زیر عمل میکنیم:
1 |
root@arshatech:~# tar xvfz simple.tar.gz |
در مثال بالا سوئیچ x به نشانه استخراج داده از فایل آرشیو شده می باشد.
حال مشاهده میکنید که فایل آرشیو شده با راحتی از حالت آرشیو خارج شده و محتوای آن قابل دیدن است.
اما اگر همان دستور بالا را برای فایل secure.tar.gz که آن را رمز کرده ایم انجام دهیم چه اتفاقی می افاتد؟
1 |
root@arshatech:~# tar xvfz secured.tar.gz |
1 2 3 4 5 |
tar: This does not look like a tar archive gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now |
همانطور که ملاحظه میکنید علاوه بر اینکه فایل باز نشد سیستم اصلا نمیتواند تشخیص دهد که فرمت فایل چیست. با توجه به اینکه فرمت آن tar.gz. می باشد بعد از استفاده از دستور tar سیستم میگوید فایل مورد نظر با فرمت tar.gz. نیست.
یکی از دستورهای پرکاربرد دیگر لینوکس دستور file است. این دستور نوع هر فایلی را در سیستم میتواند تشخیص دهد. پس فرمت فایل های simple.tar.gz و secured.tar.gz را با هم بررسی میکنیم:
1 |
root@arshatech:~# file simple.tar.gz |
1 |
simple.tar.gz: gzip compressed data, from Unix, last modified: Thu Aug 2 14:47:30 2018 |
همانطور که میبینید سیستم تشخیص داده است که فایل بالا یک فایل آرشیو فشرده شده است.
اما:
1 |
root@arshatech:~# file secured.tar.gz |
1 |
secured.tar.gz: data |
ملاحظه میکنید که سیستم صرفا تشخیص داده است که فایل مورد نظر حاوی دیتا است. حتی اعلام نکرده است که شما با یک فایل رمز شده رو به رو هستید.
اما برای رمزگشایی آن باید چه کرد؟
1 |
root@arshatech:~# openssl enc -d -aes256 -in secured.tar.gz | tar xvz simple |
بعد از به اجرا در آوردن دستور فوق فایل simple برای شما رمزگشایی میشود و میتوانید محتویات آن را بررسی کنید.
در مثال بالا و هنگام اجرای دستور openssl مقادیر زیر مورد استفاده قرار میگیرد:
- d-: این سوئیج برای اعلام رمزگشایی از فایل مورد نظر استفاده میشود.
- in-: برای خواندن فایل ورودی مورد استفاده قرار میگیرد.
اگر فایل رمز شده شما یک دایرکتوریست و میخواهید دایرکتوری و محتویات آن را که رمز شده اند رمزگشایی و از حالت آرشیو خارج سازید باید از سوئیج C-(حرف بزرگ) استفاده کنید. پس دستور بالا به صورت زیر تغییر پیدا میکند:
1 |
root@arshatech:~# openssl enc -d -aes256 -in secured.tar.gz | tar xzv -C simple |
اگر شما روی شبکه مشغول نقل و انتقال داده های خود هستید با این روش میتوانید سطح امنیت فوق العاده ای را تجربه نمائید. امیدواریم آموزش رمزنگاری و رمزگشایی فایل ها و دایرکتوری ها در لینوکس با استفاده از دستورهای tar و openssl برای شما مفید بوده باشد.