مقدمه
به عنوان یک مدیر وب ، ممکن است محدود کردن برخی قسمت های یک وب سایت برای بازدید کنندگان ، چه به طور موقت و چه به صورت دائمی ، ارزشمند باشد. در حالی که برنامه های وب ممکن است روش های تأیید صحت و اجازه قانونی خود را ارائه دهند ، می توانید به خود وب سرور مجازی نیز اعتماد کنید تا دسترسی را محدود کنید.
این آموزش به شما مالکیت های محافظت از رمز عبور در وب سرور مجازی 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
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

احراز هویت بر اساس هر دیرکتوری انجام می شود. برای تنظیم احراز هویت ، باید دایرکتوری مورد نظر خود را با بلوک <Directory ___> محدود کنید. در مثال ما ، کل ریشه document را محدود خواهیم کرد ، اما شما می توانید این لیست را تغییر دهید تا فقط یک دیرکتوری خاص را در فضای وب قرار دهید:
/etc/apache2/sites-enabled/default-ssl.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory “/var/www/html”>
</Directory>
</VirtualHost>

در این بخش دایرکتوری ، مشخص کنید که ما در حال انجام تنظیمات تایید صحت Basic هستیم. برای AuthName ، یک نام بخش یا قلمرو انتخاب کنید که هنگام درخواست تایید ، برای کاربر نمایش داده می شود. از راهنمای AuthUserFile برای نشان دادن فایل رمزعبوری که ایجاد کردیم به Apache استفاده کنید. در آخر ، این شرط را الزامی کنید که فقط یک کاربر معتبر بتواند به این منبع دسترسی داشته باشد ، این بدان معنی است که هر کسی که بتواند هویت خود را با رمز عبور تأیید کند ، مجاز خواهد بود وارد شود:
/etc/apache2/sites-enabled/default-ssl.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory “/var/www/html”>
AuthType Basic
AuthName “Restricted Content”
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
</VirtualHost>

پس از اتمام فایل را ذخیره کنید و ببندید. اگر از 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
بلوک <Directory> را برای دیرکتوری / var / www که ریشه document را دارد ، پیدا کنید. پردازش .htaccess را با تغییر دستور AllowOverride در آن بلوک از None به All روشن کنید:
/etc/apache2/apache2.conf
. . .

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

. . .

پس از اتمام فایل را ذخیره کنید و ببندید. اگر از 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 آمریکا

برچسب‌ها:,