ما در این آموزش قصد داریم شما را با روش های جالبی برای تولید پسورد به صورت تصادفی تصادفی در لینوکس و همچنین رمزنگاری و رمزگشایی آن ها آشنا کنیم. قطعا امنیت یکی از مهمترین پارامترهاییست که امروزه در دنیای دیجیتال مورد توجه است. چرا که هر چه میگذرد اهمیت حضور در فضای مجازی بر همگان آشکار تر شده و طبیعتا این حضور میطلبد که لوازم آن که مهمترینش امنیت است مورد توجه قرار بگیرد.
امروزه شما نمیتوانید رمزهای عبور خود را روی یک کاغذ بنویسید و در گاوصندوق خانه یا محل کار خود قرار دهید. چرا که دسترسی به آن برای شما خیلی سخت خواهد بود. به همین منظور شما باید ابزار این کار را برای خود داشته باشید و بتوانید با سرعت و دقت بالا به رمزهای عبور خود دسترسی داشته و آن ها را با خیالی آسوده روی کامپیوتر خود ذخیره نمائید. لینوکس یک سیستم عامل فوق العاده برای کمک به شما جهت رسیدن به این هدف است.
برای آگاه شدن از روش های تولید، رمزنگاری و رمزگشایی از پسوردهای تصادفی با ما همراه باشید.
آموزش مرتبط
تولید رمزهای عبور تصادفی و یکتا
دستور pwgen
شما میتوانید با استفاده از دستور pwgen رمزهای عبور تصادفی برای خود ایجاد کنید. برای استفاده از آن ابتدا باید آن را روی ماشین خود نصب کنید.
1 |
root@arshatech:~# apt install pwgen |
1 |
[root@arshatech ~]# yum install pwgen |
1 |
[root@arshatech ~]# dnf install pwgen |
بعد از نصب آن میتوانید با وارد کردن دستور pwgen رمزهای عبور تصادفی خود را ایجاد کنید. بعنوان مثال برای تولید یک رمز عبور تصادفی به طول ۱۰ کاراکتر میتوانید از دستور زیر استفاده نمائید:
1 |
root@arshatech:~# pwgen 10 1 |
1 |
Saagheiz7j |
همچنین برای تولید ۵ رمز عبور تصادفی ۱۰ کاراکتری میتوانید به صورت زیر عمل کنید:
1 |
root@arshatech:~# pwgen 10 5 |
1 |
jie6aikeeF bi4iCh4yoR quee4eNgee rooR7vaequ iech3Bie2v |
شما حتی میتوانید یک رمز عبور یکتای ۵۰ کاراکتری نیز برای خود تولید کنید:
1 |
root@arshatech:~# pwgen 50 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
sheoj9na6oigh4mirae2IjohGaeh4ce2ahleiba5aishooquoh ohv9phaeteng3phei1oM0ixatae9ohzahphophoPeif8FooHie ohvahV7Aem8Gie9ahk5iew1gahpieC3iechae2ieZaivah4uiw un6eeNgelee9ieh5cuchi3AequahM4shiw7AhTh3Naenaeyeej kiageng3ohthu5zeeR5axaeca6uiFooghoreec1ooh1sie5coo the1EonaiveB8shie1mo6xahPeed4Ohl9eefai4deiwaeCofae aefahjohYoh0quamoo0Ieb1rahsie1hu9thoophoo4ahV2ohm3 ool6Loo0eiphoh5Xei0leir2aing3yaeb0ohv7Ooch0icohJo1 eipoh3xohyahhiiphaeS0aijah9Chaegi1aiS1sishai5eF3go waraeph4aiT9uw5aiquaixeiphiesucah0eizo2jie3aequ7sh saimo1Fa5hai1Eechoowajei0he0iew5rafee3naes4oewoYoo cheechusengion5phaeNgaey4Pe4Hee9uk4eifaiBiadaes9ph pae7eis5eiNgooveeFohpha5moveitix8eibe2quood3ugh6to aTh5io3quohSaigh6faiH4AithieruaJohghorasaezali2eed doGohkukaa2ieniexahlahX8sohnooghaigheebuMahju8liek xahs0yu7ieghuoCeicho4see4iegeipho9ohB0We5ootahShai Eevashaishoo9oceghamahg2youP2aip1muushui4Iur4kae3f zepiitheequ6iquahw9Aigahlie2cheibu3Chi8pheivaisoCh dieW1nah9vo2ail1sheic7cahth6fei6oaQueelaequ1aig8ti tufeen5Udeeph3lay1Ai7aenu3gahth7iishahhaimahYeixe8 |
نکته: شما میتوانید از سوئیچ s- (حرف کوچک) برای پیچیده تر کردن پسوردهای تصادفی تولید شده نیز استفاده کنید. در مثال بعد این سوئیج مورد استفاده قرار گرفته است.
حال میخواهیم شما را با یک روش بسیار جذاب با استفاده از دستورهای لینوکسی آشنا کنیم که بوسیله آن بتوانید برای کاربران با تعداد زیاد رمزهای عبور مطمان و یکتا تولید کنید. فرض کنید شما یک ارائه دهنده خدمات میزبانی وب (هاست پروایدر) هستید. با استفاده از دستور زیر میتوانید یوزرهایی که در سیستم ثبت نام کرده اند را شناسایی کنید:
ما در این روش با تلفیق دستورهای لینوکسی به شما آموزش میدهیم که ابتدا کاربران خود در سرور را شناسایی کنید و آن ها را در یک فایل ذخیره نمائید. برای دریافت لیست کاربران سرور خود از اسکریپت زیر استفاده نمائید:
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/bash # arshatech.com # arshatech.com/blog # Extract users from your server for each in `ls -d /home/*`; do if grep -q $each /etc/passwd; then echo $each | awk -F/ '{print $3}' >> users.lst fi done |
بعد از اجرای این اسکریپت یک فایل برای شما با نام users.lst ایجاد میشود که در هر سطر آن نام یک کاربر درج شده است. بعنوان مثال خروجی فایل به صورت زیر می باشد:
1 2 |
root@arshatech:~# bash get-users.sh root@arshatech:~# cat users.lst |
1 2 3 4 5 6 7 8 9 10 |
alex alice bob claire julia lisa sally evan kevin phil |
حال میخواهیم به هر یک از کاربران یک رمز عبور ۱۵ رقمی تخصیص دهیم. برای این کار میتوانید از دستور زیر استفاده کنید:
1 |
root@arshatech:~# for i in $( cat users.lst ); do pwgen -s -1 15 1 | sed "s/^/$i /"; done |
1 2 3 4 5 6 7 8 9 10 |
alex UHwCVGAbKi8YsEF alice BQKsoffGQ3Lyhzj bob NNY9sJpcqM9SDHa claire 0nLu5hbEaLsU7VE julia bk5YT1ErbrZltKL lisa enWPRPugGUeLlf9 sally nbUwIvRnK4Lr3Sn evan BNx8mBAcNHdABir kevin uK5HIt12zupjmil phil 0uuOG6WtjRXGdu0 |
و حالا میتوانید با خیالی آسوده پسوردهای تولید شده را به کاربران خود تخصیص دهید.
دستور makepasswd
یکی دیگر از دستورهایی که میتوانید بوسیله آن رمزهای عبور تصادفی و یکتا برای خود تولید کنید استفاده از دستور makepasswd است. برای نصب این ابزار به روش زیر عمل کنید:
1 |
root@arshatech:~# apt install makepasswd |
1 |
[root@arshatech ~]# yum install makepasswd |
1 |
[root@arshatech ~]# dnf install makepasswd |
اجرای دستور makepasswd به طور پیش فرض یک پسورد ۸ کاراکتری تولید میکند:
1 |
root@arshatech:~# makepasswd |
1 |
9avFpC4f |
حال اگر میخواهید به عنوان مثال یک رمز عبور ۱۵ کاراکتری ایجاد کنید از دستور زیر استفاده نمائید:
1 |
root@arshatech:~# makepasswd --char 15 |
1 |
7IbbC8EFqS06LTf |
برای تولید ۱۰ پسورد ۱۵ کاراکتری نیز میتوانید به صورت زیر عمل کنید:
1 |
root@arshatech:~# makepasswd --char 15 --count 10 |
1 2 3 4 5 6 7 8 9 10 |
p7063qJnWDdDo3x zvp2FPzD0mm1Nrn F3GyjPbUCw9PqNS TNXUyaQp1goL6cv JSFqwuMcDPAsg1n nCRXS7gE6hAEGDW 9gmTLgG0C6nb65g Ecv5HEEQ4LtrBYP qCwLtSI6s2XKgvm y3v8EWjcJdo7NV9 |
اگر میخواهید برای سناریو بالا یعنی فایل users.lst به هر کاربر با استفاده از دستور makepasswd یک پسورد ۱۵ کاراکتری تخصیص بدهید میتوانید از دستور زیر استفاده کنید:
1 |
root@arshatech:~# for i in $( cat users.lst ); do makepasswd --char 15 | sed "s/^/$i /"; done |
1 2 3 4 5 6 7 8 9 10 |
alex TrJqrenpsEewYCY alice EvUagGLJHPvAyse bob g2Gd822RjwnGM9U claire xA15Wn0Ux94TdBh julia 3yqV4movjX5NcGz lisa 7MLe43TFsvXg5TE sally yqpNWrFNuDaPfwQ evan 6Ax2AQN2HtWU7nA kevin Pe3DtKQ7ousd4na phil TnErCGprhS7gdcD |
استفاده از دستور mkpasswd
mkpasswd نیز ابزاری دیگر برای تولید پسوردهای تصادفی در لینوکس است که با نصب makepasswd روی سیستم شما ایجاد میشود. برای استفاده از این دستور شما ابتدا باید مفهوم salt را بدانید.
salt به عبارت ساده یک داده ی تصادفیست که که بعنوان یک مقدار ورودی برای تولید یک رمزعبور پیچیده تر مورد استفاده قرار میگیرد و میتواند الگوی تولید پسورد را پیچیده تر سازد.
حال در دستور زیر قصد داریم تا یک پسورد را با salt تولید کنیم. برای این کار از دستور mkpasswd استفاده میکنیم. بعد از زدن دستور مورد نظر رمزعبور خود را به سیستم میدهیم و سیستم با استفاده از یک salt تصادفی آن را رمز میکند.
1 2 |
root@arshatech:~# mkpasswd Password: |
بعد از زدن دستور بالا ما عبارت arshatech را بعنوان رمز عبور مورد نظر به دستور دادیم و خروجی زیر را دریافت کردیم:
1 |
vzE2QVyFaWDjI |
همچنین میتوانید دستور بالا را به صورت زیر نیز وارد کنید که ما این روش را به شما توصیه نمیکنیم. چرا که رمز شما در ترمینال به صورت متن ساده وارد خواهد شد:
1 |
root@arshatech:~# mkpasswd arshatech |
1 |
BcZjISM85UggE |
اگر میخواهید خودتان یک salt تعریف کنید یک رشته دو کاراکتری را میتوانید بعنوان salt به دستور بدهید:
1 |
root@arshatech:~# mkpasswd arshatech -s gF |
1 |
gFU801KG7VPiU |
حال هر چه قدر دستور بالا را که تکرار کنید خروجی یکیست و تفاوتی نخواهد کرد.
استفاده از دستور openssl
شما میتوایند یک رشته را نیز به کمک دستور openssl رمز کنید. برای این کار میتوانید از دستور زیر استفاده نمائید:
1 |
root@arshatech:~# echo "Arshatech-test-string" | openssl enc -aes-256-cbc -a -salt -pass pass:arshatech |
1 |
U2FsdGVkX1/nF1DyALTRg91ZtAGCNxHnlgVzCyHZEtIYz/MM8Zv4R8q3wnTEaugV |
دستور بالا یک رمز عبور با نام arshatech را گرفته و رشته Arshatech-test-string را با استفاده از الگوریتم aes-256-cbc رمز میکند.
اگر میخواهید پسورد مورد نظر خود را در ترمینال وارد نکنید بعد از زدن دستور زیر دو باز از شما رمز عبور مورد نظرتان را میگیرد:
1 2 3 |
root@arshatech:~# echo "Arshatech-test-string" | openssl enc -aes-256-cbc -a -salt enter aes-256-cbc encryption password: Verifying - enter aes-256-cbc encryption password: |
ما در دستور بالا دو بار از رشته arshatech بعنوان رمز عبور استفاده کردیم و خروجی زیر را دریافت نمودیم:
1 |
U2FsdGVkX184kxq0x/UDkDWMlcFk/oUS1ix9a/kkR31FBGQ6ODme4DRhvj64eq8e |
حال اگر بخواهید کد رمزشده بدست آمده از دستور بالا را باز کنید و آن را رمز گشایی نمائید میتوانید از دستور زیر استفاده کنید:
1 |
root@arshatech:~# echo U2FsdGVkX1/nF1DyALTRg91ZtAGCNxHnlgVzCyHZEtIYz/MM8Zv4R8q3wnTEaugV | openssl enc -aes-256-cbc -a -d -salt -pass pass:arshatech |
1 |
Arshatech-test-string |
همچنین در صورتی که میخواهید رمز عبور خود را در ترمینال وارد نکنید از دستور زیر استفاده نمائید:
1 2 |
root@arshatech:~# echo U2FsdGVkX184kxq0x/UDkDWMlcFk/oUS1ix9a/kkR31FBGQ6ODme4DRhvj64eq8e | openssl enc -aes-256-cbc -a -d -salt enter aes-256-cbc decryption password: |
با وارد نمودن رمز عبور که در اینجا رشته arshatech میباشد خروجی زیر را دریافت خواهید کرد:
1 |
Arshatech-test-string |
امیدواریم که این آموزش برای شما مفید بوده باشد و شما بتوانید بوسیله آن با خیالی راحت تر به تولید پسوردهای تصادفی، رمزگذاری و رمزگشایی از آن ها بپردازید.