جمعه ۰۷ اردیبهشت ۰۳

نحوه تاييد صحت رمز عبور با Apache در اوبونتو 18.04

۵ بازديد

مقدمه
به عنوان يك مدير وب ، ممكن است محدود كردن برخي قسمت هاي يك وب سايت براي بازديد كنندگان ، چه به طور موقت و چه به صورت دائمي ، ارزشمند باشد. در حالي كه برنامه هاي وب ممكن است روش هاي تأييد صحت و اجازه قانوني خود را ارائه دهند ، مي توانيد به خود وب سرور مجازي نيز اعتماد كنيد تا دسترسي را محدود كنيد.
اين آموزش به شما مالكيت هاي محافظت از رمز عبور در وب سرور مجازي Apache كه روي اوبونتو 18.04 در حال اجرا است را مي آموزد تا امنيت بيشتري براي سرور مجازي شما فراهم مي كند.
پيش نيازها
براي تكميل اين آموزش ، به دسترسي به سرور مجازي اوبونتو 18.04 نياز داريد.
علاوه بر اين ، قبل از شروع به تنظيمات زير نياز خواهيد داشت:
• كاربر sudo روي سرور مجازي خود: با دنبال كردن راهنماي تنظيم اوليه سرور مجازي Ubuntu 18.04 مي توانيد يك كاربر با امتيازات sudo ايجاد كنيد.
• سرور مجازي وب Apache2: اگر قبلاً آن را راه اندازي نكرده ايد ، آموزش نحوه نصب وب سرور مجازي Apache در Ubuntu 18.04 مي تواند شما را راهنمايي كند.
• سايتي كه با SSL ايمن شده باشد: نحوه تنظيم اين كار بستگي به اين دارد كه شما يك نام دامنه براي سايت خود داشته باشيد يا نه.
o اگر نام دامنه داريد ، مي توانيد سايت خود را با Let’s Encrypt كه گواهي نامه هاي رايگان و قابل اعتماد ارائه مي دهد ، ايمن كنيد. براي تنظيم ، دستورالعمل Let’s Encrypt براي Apache را دنبال كنيد.
o اگر دامنه نداريد و فقط از اين پيكربندي براي آزمايش يا استفاده شخصي استفاده مي كنيد ، مي توانيد به جاي آن از يك گواهي خود امضا شده استفاده كنيد. اين همان رمزگذاري را ارائه مي دهد اما بدون اعتبار دامنه. براي راه اندازي Apache ، راهنماي SSL خود امضا شده را دنبال كنيد.
وقتي همه اينها فراهم شد ، به عنوان كاربر sudo وارد سرور مجازي خود شويد و ادامه كارهاي زير را انجام دهيد.
مرحله 1 – نصب بسته امكانات Apache
بياييد با بروزرساني سرور مجازي و نصب بسته اي كه به آن نياز خواهيم داشت ، شروع كنيم. براي تكميل اين آموزش ، ما از ابزاري به نام htpasswd ، بخشي از بسته apache2-utils ، براي ايجاد فايل و مديريت نام كاربري و كلمه عبور مورد نياز براي دسترسي به محتواي محدود استفاده خواهيم كرد.
⦁ $ sudo apt update

⦁ $ sudo apt install apache2-utils

با استفاده از اين نصب ، اكنون به دستور htpasswd دسترسي داريم.
مرحله 2 – ايجاد فايل رمز عبور
دستور htpasswd به ما امكان مي دهد يك فايل رمز عبور ايجاد كنيم كه Apache بتواند از آن براي تأييد اعتبار كاربران استفاده كند. براي اين منظور يك فايل مخفي با نام .htpasswd در ديركتوري پيكربندي / etc / apache2 خود ايجاد خواهيم كرد.
اولين باري كه از اين ابزار استفاده مي كنيم ، براي ايجاد رمز عبور مشخص شده بايد گزينه -c را اضافه كنيم. يك نام كاربري (در اين مثال sammy ) در انتهاي دستور براي ايجاد يك ورودي جديد در فايل مشخص مي كنيم:
⦁ $ sudo htpasswd -c /etc/apache2/.htpasswd sammy

از شما خواسته مي شود رمز عبور را براي كاربر تهيه و تأييد كنيد.
آرگومان -c را براي هر كاربر ديگري كه مايل به اضافه كردن آن هستيد ، كنار بگذاريد تا فايل را رونويسي نكنيد:
⦁ $ sudo htpasswd /etc/apache2/.htpasswd another_user
اگر محتويات فايل را مشاهده كنيم ، مي توانيم نام كاربري و رمز عبور رمزگذاري شده براي هر ركورد را مشاهده كنيم:
⦁ $ cat /etc/apache2/.htpasswd
Output
sammy:$apr1$.0CAabqX$rb8lueIORA/p8UzGPYtGs/
another_user:$apr1$fqH7UG8a$SrUxurp/Atfq6j7GL/VEC1

اكنون كاربران و رمزهاي عبور خود را با فرمتي داريم كه Apache مي تواند آنها را بخواند.
مرحله 3 – پيكربندي تاييد صحت گذرواژه Apache
در اين مرحله ، بايد Apache را پيكربندي كنيم تا اين فايل را قبل از ارائه محتواي محافظت شده ما بررسي كند. ما مي توانيم اين كار را از دو طريق انجام دهيم: يا مستقيماً در فايل هاست مجازي يك سايت يا با قرار دادن فايل هاي .htaccess در دايركتوري هايي كه نياز به محدوديت دارند. به طور كلي بهتر است از فايل هاست مجازي استفاده كنيد ، اما اگر نياز داريد كه كاربران غير root بتوانند محدوديت دسترسي خود را مديريت كنند ، محدوديت هاي موجود در كنترل نسخه را در كنار وب سايت بررسي كنيد ، يا يك برنامه وب با استفاده از فايل هاي .htaccess براي اهداف ديگر داشته باشيد. گزينه دوم را بررسي كنيد.
گزينه اي را انتخاب كنيد كه متناسب با نياز شما باشد.
گزينه 1: پيكربندي كنترل دسترسي در تعريف هاست مجازي (ارجح)
گزينه اول ويرايش پيكربندي Apache و افزودن محافظت از رمز عبور به فايل هاست مجازي است. به طور كلي عملكرد بهتري خواهد داشت زيرا از انرژي گذاشتن براي خواندن فايل هاي پيكربندي توزيع شده جلوگيري مي كند. اين گزينه نياز به دسترسي به پيكربندي دارد ، كه هميشه در دسترس نيست ، اما وقتي دسترسي داشته باشيد ، انجام آن توصيه مي شود.
با باز كردن فايل هاست مجازي كه مي خواهيد محدوديتي براي آن ايجاد كنيد ، شروع كنيد. به عنوان مثال ، ما از فايل پيش فرض ssl.conf استفاده خواهيم كرد كه هاست مجازي پيش فرض نصب شده از طريق بسته آپاچي اوبونتو را در اختيار شما قرار مي دهد. فايل را با يك ويرايشگر متن خط فرمان مانند nano باز كنيد:
⦁ $ sudo nano /etc/apache2/sites-enabled/default-ssl.conf
در آن ، با كامنت هاي تهي شده ، فايل بايد چيزي شبيه به اين باشد:
/etc/apache2/sites-enabled/default-ssl.conf

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

احراز هويت بر اساس هر ديركتوري انجام مي شود. براي تنظيم احراز هويت ، بايد دايركتوري مورد نظر خود را با بلوك محدود كنيد. در مثال ما ، كل ريشه document را محدود خواهيم كرد ، اما شما مي توانيد اين ليست را تغيير دهيد تا فقط يك ديركتوري خاص را در فضاي وب قرار دهيد:
/etc/apache2/sites-enabled/default-ssl.conf

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined



در اين بخش دايركتوري ، مشخص كنيد كه ما در حال انجام تنظيمات تاييد صحت Basic هستيم. براي AuthName ، يك نام بخش يا قلمرو انتخاب كنيد كه هنگام درخواست تاييد ، براي كاربر نمايش داده مي شود. از راهنماي AuthUserFile براي نشان دادن فايل رمزعبوري كه ايجاد كرديم به Apache استفاده كنيد. در آخر ، اين شرط را الزامي كنيد كه فقط يك كاربر معتبر بتواند به اين منبع دسترسي داشته باشد ، اين بدان معني است كه هر كسي كه بتواند هويت خود را با رمز عبور تأييد كند ، مجاز خواهد بود وارد شود:
/etc/apache2/sites-enabled/default-ssl.conf

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined


AuthType Basic
AuthName “Restricted Content”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

پس از اتمام فايل را ذخيره كنيد و ببنديد. اگر از nano استفاده مي كنيد ، مي توانيد اين كار را با فشار دادن CTRL X و سپس Y و enter انجام دهيد.
قبل از راه اندازي مجدد سرور مجازي وب ، مي توانيد پيكربندي را با دستور زير بررسي كنيد:
⦁ $ sudo apache2ctl configtest
اگر همه چيز بررسي شود و Syntax OK را به عنوان خروجي دريافت كنيد ، مي توانيد سرور مجازي را مجدداً راه اندازي كنيد تا password policy خود را اجرا كنيد. از آنجا كه systemctl نتيجه تمام دستورات مديريت سرويس را نشان نمي دهد ، ما از اين وضعيت براي اطمينان از اجراي سرور مجازي استفاده خواهيم كرد:
⦁ $ sudo systemctl restart apache2

⦁ $ sudo systemctl status apache
اكنون بايد از رمز عبور دايركتوري كه مشخص كرديد محافظت شود.
گزينه 2: پيكربندي كنترل دسترسي با فايل هاي .htaccess
Apache مي تواند از فايل هاي .htaccess استفاده كند تا به موارد خاصي از پيكربندي در يك ديركتوري محتوا امكان تنظيم دهد. از آنجا كه Apache مجبور است در هر درخواستي كه شامل دايركتوري است و مي تواند بر عملكرد تأثير منفي بگذارد ، اين فايل ها را دوباره بخواند، گزينه 1 ترجيح داده مي شود ، اما اگر در حال حاضر از فايل htaccess استفاده مي كنيد يا نياز داريد كه به كاربران غير root اجازه دهيد محدوديت ها را مديريت كنند، فايل هاي htaccess معقول به نظر ميرسند.
براي فعال كردن حفاظت از رمز عبور با استفاده از فايل هاي .htaccess ، فايل اصلي پيكربندي Apache را با يك ويرايشگر متن خط فرمان مانند nano باز كنيد:
⦁ $ sudo nano /etc/apache2/apache2.conf
بلوك را براي ديركتوري / var / www كه ريشه document را دارد ، پيدا كنيد. پردازش .htaccess را با تغيير دستور AllowOverride در آن بلوك از None به All روشن كنيد:
/etc/apache2/apache2.conf
. . .


Options Indexes FollowSymLinks
AllowOverride All
Require all granted

. . .

پس از اتمام فايل را ذخيره كنيد و ببنديد. اگر از nano استفاده مي كنيد ، مي توانيد اين كار را با فشار دادن CTRL X و سپس Y و enter انجام دهيد.
در مرحله بعد ، بايد براي محدود كردن يك فايل .htaccess را به دايركتوري مورد نظر اضافه كنيم. در توصيحات ما ، كل ريشه document (كل وب سايت) كه در / var / www / html مستقر است محدود خواهد شود، اما مي توانيد اين فايل را در هر دايركتوري كه مايل به محدود كردن دسترسي هستيد، قرار دهيد:
$ sudo nano /var/www/html/.htaccess
در اين فايل ، مشخص كنيد كه ما مايل به تأييد اعتبار basic هستيد. براي AuthName ، يك نام قلمرو انتخاب كنيد كه هنگام درخواست صحت اعتبار ، براي كاربر نمايش داده مي شود. از راهنماي AuthUserFile براي نشان دادن Apache به فايل رمز عبوري كه ايجاد كرديم استفاده كنيد. در آخر ، ما به يك كاربر معتبر براي دسترسي به اين منبع نياز خواهيم داشت ، به اين معني كه هركسي كه بتواند هويت خود را با رمز عبور تأييد كند ، مجاز به ورود خواهد بود:
/var/www/html/.htaccess
AuthType Basic
AuthName “Restricted Content”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

فايل را ذخيره كنيد و ببنديد. مجدد سرور مجازي وب را راه اندازي كنيد تا كلمه عبور با فايل .htaccess از كليه محتويات موجود در يا تحت ديركتوري محافظت كند و از وضعيت systemctl براي تأييد موفقيت راه اندازي مجدد استفاده كنيد:
⦁ $ sudo systemctl restart apache2

⦁ $ sudo systemctl status apache2
دايركتوري كه مشخص كرديد اكنون بايد با رمز محافظت شود.
مرحله 4 – تأييد صحت رمز عبور
براي تأييد اينكه از محتواي شما محافظت ميشود ، سعي كنيد به محتواي محدود شده خود در يك مرورگر وب دسترسي پيدا كنيد. بايد با يك درخواست نام كاربري و رمزعبور مواجه شويد:

اگر اعتبارات صحيح را وارد كنيد ، به شما اجازه داده ميشود به محتوا دسترسي پيدا كنيد. اگر اعتبارات را اشتباه وارد كنيد يا “cancel” را بزنيد ، صفحه خطاي “unauthorized” را مشاهده مي كنيد:

نتيجه
تبريك مي گوييم! اگر تا اينجا را دنبال كرديد، اكنون تأييد اعتبار اوليه را براي سايت خود تنظيم كرده ايد.
موارد بيشتري وجود دارد كه مي توانيد با پيكربندي Apache و .htaccess انجام دهيد. براي كسب اطلاعات بيشتر در مورد انعطاف پذيري و قدرت پيكربندي Apache ، يكي از اين آموزش ها را امتحان كنيد:
⦁ براي درك بهتر فايل پيكربندي اصلي ، بخش آشنايي با فايل ها و راهنماي مهم Apache را مطالعه كنيد.
⦁ در راهنماي نحوه تنظيم هاست مجازي Apache رويUbuntu 16.04 اطلاعات بيشتري در مورد فايلهاي هاست مجازي كسب كنيد.
⦁ در راهنماي ما در مورد نحوه استفاده از فايل htaccess ، در مورد بازنويسي آدرس هاي اينترنتي ، شخصي سازي صفحات خطا مانند پيام ” Unauthorized ” در بالا ، يا قرار دادن عناصر مشترك در تمام صفحات خود با سرور مجازي جانبي اطلاعات كسب كنيد.

 

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

نحوه تاييد صحت رمز عبور با Apache در اوبونتو 18.04

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

نحوه تاييد صحت رمز عبور با Apache در اوبونتو 18.04 (شروع سريع)

نحوه راه اندازي Eclipse Theia Cloud IDE Platform در Debian 10

نحوه نصب و استفاده ازRadamsa براي فوز كردن برنامه ها (تكنيك تست خودكار نرم افزار) و خدمات شبكه روي Ubuntu 18.04

نحوه نصب Docker Compose در Debian 10

چگونه مي توان با كتابخانه (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 تنظيم كرد

 

كلمات كليدي خريد سرور

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

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در مونوبلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.