سرور مجازی

۱۱۸ مطلب در مرداد ۱۳۹۹ ثبت شده است

  • ۰
  • ۰

مقدمه
کار با برنامه های Django و به طور کلی برنامه های پایتون یک موضوع پیچیده است که ابزارهای بسیاری در آن استفاده می شود. برای رسیدن به یک هدف روشهای مختلفی وجود دارد و غالباً هیچ روش واحدی برای انجام کارها وجود ندارد.
یکی از محبوب ترین روش های به کارگیری برنامه های کاربردی Django برای وب در سرور اختصاصی استفاده از Nginx جفت شده با Gunicorn است. یک روش عالی برای انجام کاری که پیش تر در این مقاله عمیقا توضیح داده شده است. با این وجود یک سناریوی کاملاً جذاب برای میزبانی برنامه های Django در کنار وب سایت های موجود با استفاده از Apache میباشد. ما سعی خواهیم کرد مسیر سریع را برای رسیدن به این هدف خاص پوشش دهیم. لطفاً توجه داشته باشید که این یک راهنمای قطعی برای جفت سازی Django و Apache نیست و جنبه های پیکربندی وجود دارد که در اینجا پوشش داده نمی شود.
این متن فرض های مختلفی را در نظرمیگیرد:
شما در حال حاضر دراپلت خود را با Debian 7.0 یا بالاتر تنظیم کرده اید. تفاوت های زیادی بین توزیع های مختلف لینوکس وجود دارد. بنابراین به خاطر شفافیت بحث روی یک سرور مجازی Debian تمرکز خواهیم کرد.
شما حداقل تا حدودی با ابزارهای رایج Python مانند pip package manager و virtualenv برای ساختن محیط های مجازی آشنا هستید. این ابزارها در مقاله لینک داده شده به طور کامل توضیح داده شده اند.
شما حداقل تا حدودی با ساختار پروژه Django آشنا هستید ، زیرا این مقاله برای آشنایی با نحوه استفاده و پیکربندی خود Django در نظر گرفته نشده است.
شما با اجرای Apache در حد مقدماتی آشنا هستید ، زیرا این آموزش فقط نصب ساده سرور و تغییرات پیکربندی لازم برای جفت سازی Django با Apache را پوشش می دهد.
پیش نیازها
قبل از نصب پکیج های جدید ، همواره بهتر است پکیج های سیستم و فهرست بندی های پکیج به روزرسانی شود. برای انجام این کار:
apt-get update
apt-get upgrade

نصب Apache
از آنجا که این متن بر استفاده از Apache برای سرویس دهی به برنامه متمرکز شده است ، خود سرور مجازی ضروری است. برای نصب بسته های لازم، این دستور را اجرا کنید:
apt-get install apache2
بلافاصله بعد از نصب ، Apache در حال اجرا خواهد بود. با باز کردن مرورگر وب و زدن آدرس IP سرور می توانید بررسی کنید که آیا وب سرور Apache به درستی تنظیم شده است یا خیر. شما باید نوشته ی It works! را روی صفحه ببینید.
نصب pip و virtualenv
برای شروع کار با پایتون و Django بر روی یک وب سرور ، ابتدا pip و virtualenv نصب می شوند. Pip یک package manager برای پایتون است که نصب بسته های نرم افزاری پایتون مانند خود Django را تسهیل می کند ، در حالی که virtualenv امکان جداسازی محیط مجازی مجزا برای برنامه های پایتون را فراهم می کند تا بتوان library های مورد نیاز برای برنامه های مختلف را جدا کرده و از ناسازگاری نسخه ها بین آنها جلوگیری کرد.
برای انجام این کار:
apt-get install python-pip python-virtualenv

این دستور، pip و virtualenv را از مخزن بسته Debian نصب می کند. با اجرای آنها با سوئیچ –version می توانید تأیید کنید که هر دو ابزار به درستی نصب شده اند.
root@django:~# virtualenv –version
1.7.1.2
root@django:~# pip –version
pip 1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
root@django:~#

ایجاد یک محیط مجازی با استفاده از virtualenv
با نصب Apache ، دایرکتوری / var / www بطور خودکار ایجاد می شود که در آن ریشه پیش فرض وب سرور تنظیم شده است. ما برنامه جدید Django را با تمام وابستگی های آن در آنجا قرار خواهیم داد.
بیایید یک دایرکتوری جدید به نام sampleapp در آن دایرکتوری ایجاد کنیم و وارد دایرکتوری جدید شویم:
cd /var/www
mkdir sampleapp
cd sampleapp

سپس بیایید با استفاده از virtualenv یک محیط مجازی جدید ایجاد کنیم. یک محیط مجازی Python در واقع دایرکتوری است که در آن مفسر پایتون و نمونه محلی pip در آن قرار دارند. نمونه محلی pip تمام بسته ها را در محیط مجازی نصب می کند. به این ترتیب ، هیچ بسته نصب نشده، نصب جهانی پایتون را آلوده نمی کند و همچنین امکان تداخل نسخه پکیج در سناریوی فرضی دو برنامه کاربردی که دو نسخه مختلف Django یا هر library دیگر را اجرا می کنند وجود ندارد.
برای ایجاد یک محیط مجازی جدید وارد کنید:
virtualenv env
جایی که env نام محیط مجازی است- می تواند هر کلمه دیگری باشد. خروجی این دستور باید به صورت زیر باشد:
root@django:/var/www/sampleapp# virtualenv env
New python executable in env/bin/python
Installing distribute………………………done.
Installing pip……………done.
root@django:/var/www/sampleapp#

هم اکنون محیط مجازی آماده است و از دو طریق مختلف قابل استفاده است
یک روش اجرای دستورات با استفاده از مترجم محیط مجازی به طور مستقیم است. با استفاده از این روش لازم است همیشه به یاد داشته باشید که مترجم صحیح یا نمونه pip  را اجرا کنید ، زیرا امکان اجرای یک سیستم گسترده وجود دارد.
root@django:/var/www/sampleapp# env/bin/pip –version
pip 1.1 from /var/www/sampleapp/env/lib/python2.7/site-packages/pip-1.1-py2.7.egg (python 2.7)
root@django:/var/www/sampleapp# env/bin/python –version
Python 2.7.3
root@django:/var/www/sampleapp#

راه دیگر این است که ابتدا با استفاده از دستور زیر، محیط را فعال کنید
source env/bin/activate
سپس نام محیط به صورت زیر به خط فرمان اضافه می شود
root@django:/var/www/sampleapp# source env/bin/activate
(env)root@django:/var/www/sampleapp#

و تمام دستورات اجرا شده از نسخه های محلی مجازی محلی استفاده می کنند
(env)root@django:/var/www/sampleapp# pip –version
pip 1.1 from /var/www/sampleapp/env/lib/python2.7/site-packages/pip-1.1-py2.7.egg (python 2.7)
(env)root@django:/var/www/sampleapp# python –version
Python 2.7.3
(env)root@django:/var/www/sampleapp#

کار با این روش آسانتر است. با این وجود لازم است بعد از انجام کار با استفاده از دستور زیر محیط غیرفعال شود
deactivate

این کار سیستم را به حالت عادی باز می گرداند

(env)root@django:/var/www/sampleapp# deactivate
root@django:/var/www/sampleapp#

از محیط تازه ایجاد شده برای ذخیره کلیه وابستگی های لازم از جمله django و library های مرتبط استفاده خواهد شد. همچنین بعداً توسط Apache و mod_wsgi برای ارائه برنامه با استفاده از وابستگی های صحیح مورد استفاده قرار می گیرد.
نصب django درون محیط مجازی
مرحله مورد نیاز بعدی نصب django در محیط مجازی است. بیایید این کار را بدون اینکه محیط را از قبل فعال کنیم با استفاده از دستور زیر انجام دهیم:
env/bin/pip install django

آخرین پیام های نمایش داده شده پس از اجرای این دستور باید به این شکل باشند
Successfully installed django
Cleaning up…

Django اکنون در محیط مجازی نصب شده است و از طریق نصب پایتون در سراسر سیستم در دسترس نیست. با وارد کردن ماژول django با استفاده از هر دو مترجم می توانید آن رفتار را تأیید کنید.
root@django:/var/www/sampleapp# python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import django
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
ImportError: No module named django
>>> exit()

واردات با استفاده از مفسر گسترده سیستم ، انجام نشد، در حالی که
root@django:/var/www/sampleapp# env/bin/python
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import django
>>>

چیزی که در محیط مجازی اجرا شد موفق گردید.

ایجاد اولین پروژه Django
برای ایجاد یک پروژه مثال ساده ، می توان از اسکریپت django-admin.py به شرح زیر استفاده کرد
env/bin/django-admin.py startproject sampleapp .

لطفاً به دنباله “نقطه” در دستور توجه کنید. بدون آن پروژه در یک زیرشاخه اضافی ایجاد می شود. پس از اجرای آن دستور ، یک دیرکتوری جدید sampleapp و اسکریپت management.py در / var / www / sampleapp ایجاد می شود. اسکریپت management.py برای اجرای دستورات Django برای این پروژه خاص استفاده می شود. یکی از کاربردهای احتمالی management.py راه انداری نمونه سرور مجازی آزمایشی برای تأیید صحت عملکرد همه چیز در نظر گرفته شده است.
لطفاً اجرا کنید:
env/bin/python manage.py runserver 0.0.0.0:8000

با این کار اتصال سرور آزمایشی به تمام رابط های درگاه 8000 انجام می شود. خروجی باید به این شکل باشد:
Validating models…

0 errors found
April 08, 2014 – 12:29:31
Django version 1.6.2, using settings ‘sampleapp.settings’
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

اگر آدرس IP سرور مجازی خود را با درگاه 8000 در مرورگر خود باز می کنید (آدرس باید مانند http: // <ip آدرس>: 8000 /) باشد ، باید صفحه مثال Django به صورت It worked!  را ببینید. این نتیجه ای است که ما را ترغیب میکند به جای استفاده از سرور توسعه دهنده Django ، به دنبال استفاده از وب سرور Apache باشیم.
از آنجا که برنامه Django به درستی کار می کند ، می توانیم برنامه را با Apache جفت کنیم.
نصب mod_wsgi برای Apache
ساده ترین راه و همچنین روش توصیه شده برای سرویس دهی به برنامه های Python با استفاده از Apache ، استفاده از ماژول mod_wsgi است. به طور پیش فرض با پایتون و Apache نصب نشده است ، بنابراین باید یک بسته اضافی را نیز نصب کنیم.
apt-get install libapache2-mod-wsgi

مرحله بعدی پیکربندی میزبان مجازی پیش فرض Apache خواهد بود که در ابتدای مقاله صفحه It works! را برای ارائه برنامه Django نشان داد.
پیکربندی mod_wsgi در یک هاست مجازی پیش فرض
روش پیکربندی mod_wsgi برای هر میزبان مجازی دیگر در Apache همان روشی است که در اینجا ارائه شده است. ما از میزبان مجازی پیش فرض برای سادگی استفاده خواهیم کرد ، زیرا این یکی از برنامه های مفید نصب Apache است.

فایل پیکربندی هاست مجازی پیش فرض را در ویرایشگر nano  باز کنید
nano / etc / apache2 / سایتهای فعال / 000 پیش فرض
و سه خط زیر را درست زیر <VirtualHost *: 80> اضافه کنید
WSGIDaemonProcess sampleapp python-path=/var/www/

sampleapp:/var/www/sampleapp/env/lib/python2.7/site-packages
WSGIProcessGroup sampleapp
WSGIScriptAlias / /var/www/sampleapp/sampleapp/wsgi.py

خط اول یک فرآیند WSGI daemon به نام sampleapp را ایجاد می کند که وظیفه ارائه برنامه Django ما را بر عهده خواهد داشت. نام Daemon می تواند اصولاً هر چیزی باشد ، اما خوب است که از اسامی توصیفی مانند نام برنامه ها در اینجا استفاده کنید.
اگر از نصب جهانی پایتون و نمونه جهانی Django استفاده می کردیم ، python-path ضروری نبود. با این وجود ، استفاده از محیط مجازی ، تعیین مسیر جایگزین Python را واجب می کند تا mod_wsgi بداند کجا می تواند به دنبال بسته های پایتون باشد.
مسیر باید شامل دو دایرکتوری باشد: دایرکتوری پروژه Django – / var / www / sampleapp – و دایرکتوری بسته های پایتون در محیط مجازی ما برای آن پروژه – /var/www/sampleapp/env/lib/python2.7/site بسته ها دایرکتوری ها در تعریف مسیر با استفاده از علامت کولون محدود می شوند.
خط دوم می گوید که میزبان مجازی خاص برای استفاده از Daemon WSGI ایجاد شده از قبل ، و به همین ترتیب ، نام Daemon باید بین آن دو مطابقت داشته باشد. ما از هر دو خط نمونه استفاده کردیم.
خط سوم مهمترین است ، زیرا به Apache و mod_wsgi می گوید که چگونه پیکربندی WSGI را پیدا کنند. wsgi.py تهیه شده توسط Django شامل پیکربندی پیش فرض barebone برای WSGI برای سرویس دهی Django است که درست کار می کند و تغییر پیکربندی در این فایل خارج از محدوده این مقاله است.
پس از این تغییرات ، راه اندازی مجدد Apache ضروری است
service apache2 restart

پس از باز کردن مرورگر وب در آدرس IP سرور مجازی خود ، بدون هیچ گونه درگاه اضافی ، باید همان صفحه قبلی django را به جای صفحه It works! ببینید.
این باعث می شود پیکربندی ما کامل شود.
لطفا توجه داشته باشید: استفاده از میزبان مجازی پیش فرض و بدون مراقبت اضافی روش پیشنهادی برای پیکربندی سرور نیست. و برای اهداف توصیفی استفاده می شود.
اطلاعات بیشتر
مبحث پیکربندی mod_wsgi و خود Django بسیار گسترده است. بسیاری از جنبه های پیکربندی خاص نرم افزار هستند و توضیح یا نشان دادن آن ها بدون کار کردن با یک برنامه واقعی Django دشوار است. این راهنما راهکار کاملی برای اجرای برنامه های Django با استفاده از Apache نیست ، بلکه یک راهنمای سریع برای شروع کار میباشد.

یکی از بهترین منابع موجود، اسناد رسمی Django است. همچنین مقالات خوبی در DigitalOcean وجود دارد که می توانید با سرچ Django به عنوان یک کلید واژه آن ها را جستجو کنید.

 

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

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

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

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

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

مقدمه
سیستم عامل های لینوکس و شبیه یونیکس به اندازه کافی خوش شانس هستند که تقریباً جایگزین های اندکی برای هر مؤلفه ای از محیط کار خود دارند. یکی از مؤلفه هایی که کاربران سرور مجازی با آنها بیشتر در ارتباط هستند شل خط فرمان (command line shell) است.
در حالی که اکثر سیستم ها با پوسته bash کار میکنند که مخفف “Bourne again shell” میباشد، گزینه های دیگری نیز وجود دارد که بسیاری از کاربران از بررسی آن سود می برند. شاید در مورد zsh محبوب شنیده باشید که می توانید در این لینک آن را بیاموزید.
یکی دیگر از شل (shel)های فول امکانات، که موضوع این راهنما خواهد بود، fish shell است. fish shell یک شل فرمان مدرن ، جذاب و قدرتمند است که می تواند قابلیت های شل معمولی bash را گسترش دهد. در این راهنما یاد خواهیم گرفت که چگونه این شل جایگزین را نصب ، پیکربندی و استفاده کنید.
ما از اینها به طور مثال در Ubuntu 12.04 VPS استفاده خواهیم کرد ، اما شما به راحتی میتوانید این دستورالعمل را با توزیع انتخاب خود تطبیق دهید.
نحوه نصب fish shell
خوشبختانه برای ما ، مخازن پیش فرض اوبونتو 12.04 شامل بسته های باینریfish هستند.
ما می توانیم با به روز کردن ایندکس پکیج محلی و وارد کردن پکیج به سیستم خود ، آن را به روش مرسوم نصب کنیم:
sudo apt-get update
sudo apt-get install fish

این تنها کاری است که باید انجام دهیم تا shell جدید را به سیستم خود وارد کنیم.
برای شروع کار ، از قسمت فعلی خود fish shell جدیدی را شروع خواهیم کرد. اگر تصمیم بگیرید fish برای شما مناسب است ، بعداً در مورد چگونگی تغییر shell پیش فرض شما بحث خواهیم کرد:
fish
demouser@host ~>

می بینید که اعلان شما تغییر کرده است. به جای “$” به عنوان اعلان یک کاربر عادی ، یک علامت “>” مشاهده خواهید کرد.
با برخی از ویژگی های سطحی آشنا شوید
بلافاصله، می توانیم با مراجعه به روتین های عادی خود در شل ، برخی از مزایای این shell را ببینیم. این مزایا بیشتر توسط کارکردهای گنجانده شده که بعدا به آنها خواهیم پرداخت، انجام می شود.
به عنوان مثال ، اگر محتوای یک دایرکتوری را فهرست کنید ، متوجه خواهید شد که در انتها به طور خودکار با یک کاراکتر پیوست می شوند که نوع فایل را نشان می دهد:
ls
bin/ etc/ lib/ media/ proc/ sbin/ sys/ var/
boot/ home/ lib64/ mnt/ root/ selinux/ tmp/ vmlinuz@
dev/ initrd.img@ lost+found/ opt/ run/ srv/ usr/

این همان خروجی مانند ls-F است که محتویات را بر اساس نوع طبقه بندی می کند.
اگر در یک مسیر فایل اعم از نسبی یا مطلق تایپ کنید ، خواهید دید که fish shell مسیرهای فهرست را زیر نظر دارد تا تفسیر آن با یک نگاه ساده تر شود:
cd /home/demo

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

با این حال ، وقتی “o” نهایی را اضافه می کنید ، آن را به یک فرمان تبدیل می کنید ، و خواهید دید که فوراً سبز می شود. این ویژگی بازخورد مفیدی را برای شما فراهم می کند که می تواند تشخیص علائم را در ابتدای کار آسان کند.
استفاده از عملکرد TAB برای یک زمان ساده تر
همچنین ممکن است متوجه شوید که عملکرد TAB بسیار عالی است:
cd / ## Hit the TAB key at this point
/bin/ (Directory) /media/ (Directory) /srv/ (Directory)
/boot/ (Directory) /mnt/ (Directory) /sys/ (Directory)
/dev/ (Directory) /opt/ (Directory) /tmp/ (Directory)
/etc/ (Directory) /proc/ (Directory) /usr/ (Directory)
/home/ (Directory) /run/ (Directory) /var/ (Directory)
/lib/ (Directory) /sbin/ (Directory)
/lib64/ (Directory) /selinux/ (Directory)

همانطور که می بینید ، fish به طور هوشمندانه فقط دیرکتوری های دستور cd را فهرست می کند، زیرا این ها تنها مقادیر معقول هستند.
اگر از یک فرمان عمومی استفاده می کنیم ، در عوض همه لیست ها (و نوع آنها) را مشاهده می کنیم:
در این مرحله کلید TAB را لمس کنید
touch / ## Hit the TAB key at this point
/bin/ (Directory) /proc/ (Directory)
/boot/ (Directory) /root/ (Directory)
/dev/ (Directory) /run/ (Directory)
/etc/ (Directory) /sbin/ (Directory)
/home/ (Directory) /selinux/ (Directory)
/initrd.img (Symbolic link, 15MB) /srv/ (Directory)
/lib/ (Directory) /sys/ (Directory)
/lib64/ (Directory) /tmp/ (Directory)
/lost+found/ (Directory) /usr/ (Directory)
/media/ (Directory) /var/ (Directory)
/mnt/ (Directory) /vmlinuz (Symbolic link, 5.2MB)
/opt/ (Directory)

یک ویژگی مشابه که مفید است قالب بندی فرمان man میباشد. اگر بخواهیم تمام صفحات man fish را مشاهده کنیم ، می توانیم از عملکرد tab استفاده کنیم:
man fish ## Hit the TAB key at this point
fish (1: the friendly interactive shell)
fish_indent (1: indenter and prettifier)
fish_pager (1: internal command used by fish)
fishd (1: universal variable daemon)

به صورت مشابه، میتوانید با استفاده از هر مرورگر ترمینالی که دارید و با قابلیت کمک داخلی سیستم، از کمک فول امکانات بهره بگیرید:
help
fish home | Main documentation page | Design document | Commands | FAQ |
License

Fish user documentation

1

Table of contents

• Fish user documentation
□ Table of contents
□ Introduction
□ Syntax overview
□ Help
□ Tab completion
در دستگاه من، سیستم کمکی در مرورگر ترمینال w3m باز میشود. شما میتوانید هر لینکی که مثلا در مرورگر عادی باز میکنید دنبال کنید و با تایپ کردن q از آن خارج شودید. اگر برای فرمان خاصی که fish درمورد آن میداند، به کمک احتیاج دارید، فقط کافیست آن را به صورت آرگومان زیر استفاده کنید:
help cd
cd – change directory

Synopsis

cd [DIRECTORY]

Description Changes the current

directory. If DIRECTORY is supplied it will become the new directory. If
DIRECTORY is a relative path, the paths found in the CDPATH environment
variable array will be tried as prefixes for the specified path. If
CDPATH is not set, it is assumed to be ‘.’. If DIRECTORY is not
specified, $HOME will be the new directory.

Back to index.

باز هم میتوانید ببینید کدام دستورات کمکی با استفاده از ویژگی tab در دسترس هستند.
help ## Type a space to let fish know you are finished with the command, and then hit the TAB key at this point
alias (Help for the specified command)
and (Help for the specified command)
begin (Help for the specified command)
bg (Help for the specified command)
bind (Help for the specified command)
block (Help for the specified command)
break (Help for the specified command)
breakpoint (Help for the specified command)
. . .

یک روش متفاوت برای انجام برخی از کارهای معمول
بسیاری از افرادی که سالها از bash و حتی sh استفاده کرده اند ، به روشی که این shell ها کارها را انجام می دهند عادت کرده اند. در حالی که fish بخش عمده ای از سهم این شل ها را به خود اختصاص می دهد ، رفتار را جایی اصلاح می کند که می تواند پیشرفت هایی را ایجاد کند.

rediction ، Piping و Wildcards
یک مثال ساده rediction است (تغییر مسیر) است. تغییر مسیر عادی و pipeها دقیقا مثل bash کار می کنند:
|: خروجی pipe از فرمان در سمت چپ به ورودی فرمان در سمت راست
<: به جای صفحه کلید ، ورودی استاندارد را از فایل سمت راست دریافت می کند
>: به جای صفحه نمایش ، خروجی استاندارد را روی فایل در سمت راست مینویسد
با این حال ، یک تفاوت در نحوه تغییر مسیر خطای استاندارد است. شما این کار را با علامت عیار انجام می دهید:
^: تغییر مسیر خطای استاندارد به محل سمت راست.
این یک راه آسان برای تغییر مسیر توصیف کننده فایل فراهم می کند. به یاد داشته باشید که معمولاً هر توصیف کننده فایل با یک شماره همراه است:
0: ورودی استاندارد. ورودی فرمان شما به طور پیش فرض صفحه کلید است.
1: خروجی استاندارد. خروجی فرمان شما به صورت پیش فرض صفحه نمایش است.
2: خطای استاندارد. خطاهای فرمان شما به طور پیش فرض روی صفحه چاپ می شود.
ما می توانیم توصیف کننده فایل را با استفاده از کاراکتر “&” و پس از آن شماره توصیف کننده ، به جای دیگر تغییر مسیر دهیم.
به عنوان مثال ، می توانیم خروجی استاندارد یک فرمان را به یک فایل تغییر مسیر دهیم و سپس خطای استاندارد آن را به فایل خروجی استاندارد خود بفرستیم و همچنین با تایپ کردن چیزی شبیه به این:
ls /etc >ls_results.txt ^&1

تمام خروجی استاندارد در فایل ls_results.txt قرار داده می شود و سپس خطای استاندارد در محلی تنظیم می شود که خروجی استاندارد هدایت می شود (فایل فوق).
در مورد wildcards ، fish دوباره بیشتر قسمتهای پیش فرض از bash را استفاده می کند. که شامل موارد زیر هستند:
*: هر رشته کاراکتر را که شامل “/” نیست ، مطابقت میدهد.
؟: با هر کاراکتر واحد به جز “/” مطابقت دارد.
یک wildcard اضافی که بسیار مفید است ، wildcard بازگشتی است:
**: هر رشته ای از جمله “/” را مطابقت میدهد.
این کاراکتر می تواند برای این مورد استفاده قرار گیرد که به راحتی قابلیت بازگشتی را به دستورات اضافه کند. حتی اگر ls گزینه بازگشتی داشته باشد ، ما می توانیم این کار را با fish انجام دهیم. با تایپ کردن دستور زیر می توانیم تمام فایل هایی را که به .conf در دیرکتوری /etc خاتمه می یابد را پیدا کنیم:

ls /etc/**.conf
/etc/adduser.conf
/etc/apparmor/subdomain.conf
. . .

در دستگاه من ، دو خط اول خروجی این عمل را نشان می دهد. یکی از فایل ها در دایرکتوری بالایی است که ما جستجو می کردیم و دیگری در زیرشاخه قرار دارد.
ایجاد توابع و نام های مستعار
ما می توانیم توابع و نام های مستعار را در fish با یک ترکیب آسان استفاده کنیم.
قالب اصلی چیزی شبیه به دستور زیر است:
function function_name
function_content
end

اگر می خواهید آرگومان های موجود در عملکرد خود را تجزیه کنید ، باید همه آنها را در متغیر $ argv در کنار هم قرار دهید. آنها به صورت آرایه ذخیره می شوند.
به عنوان مثال ، ما می توانیم تابعی مانند این را ایجاد کنیم که تمام آرگومان هایمان را چاپ کند:
function say_hello
echo hello $argv
end

ما می توانیم این را با یک یا چند آرگومان فراخوانی کنیم و همه آنها را به دستور echo منتقل خواهیم کرد:
say_hello John Doe
hello John Doe

اگر بخواهیم به یک متغیر خاص دسترسی پیدا کنیم ، آن را با شماره مرجع از آرایه آرگومان خارج کنید (در fish ، آرایه ها از 1 شروع می شوند ، نه 0). ما می توانیم اسکریپت قبلی خود را تغییر دهیم تا فقط از آرگومان دوم استفاده کنیم:
function hello_sir
echo hello Mr. $argv[2]
end

سپس می توانیم این تابع را فراخوانی کنیم و نتیجه متفاوتی می گیریم:
hello_sir John Doe
hello Mr. Doe

می توانیم با تایپ کردن دستور زیر همه توابع تعریف شده را مشاهده کنیم:
functions -a

می توانید با تایپ کردن این دستور یکی از توابع خود را حذف کنید:
functions -e function_name

برای نام مستعار ،bash shell دستور خاصی دارد. در fish ، از همان دستور تابع استفاده می شود.
تنها نکته ای که باید بدانید اینست که اگر دستور جانشین فرمانی شود که به آن اشاره دارد، باید دستور داخلی command  را اضافه کنید تا به شل بگویید که به صورت بازگشتی از تابع استفاده نکند بلکه از دستور خارجی استفاده کند.
به عنوان مثال ، اگر دستور cat را برای شماره گذاری به طور پیش فرض بخواهیم، بهتر است دستور را بازتعریف کنیم تا flag را در بر داشته باشد. به یاد داشته باشید که متغیر آرگومان را به گونه ای ارسال کنید که بتواند نام فایلها را به درستی تجزیه کند:
function cat
command cat -n $argv
end
اکنون ، وقتی cat را فرا میخوانیم، خروجی به طور خودکار شماره گذاری می شود:
cat /etc/hosts
1 127.0.0.1 localhost fish fish
2
3 # The following lines are desirable for IPv6 capable hosts
4 ::1 ip6-localhost ip6-loopback
5 fe00::0 ip6-localnet
6 ff00::0 ip6-mcastprefix
7 ff02::1 ip6-allnodes
8 ff02::2 ip6-allrouters

اگر از عملکردی برای غلبه بر پیش فرض های یک فرمان استفاده می کنید ، می توانید از دستور داخلی نیز استفاده کنید تا هرگونه تغییراتی که ایجاد کرده اید را دور بزنید و دستور اصلی را بیابید.
command cat /etc/hosts
127.0.0.1 localhost fish fish

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

تاریخچه ( (history ساده شده
در حالی که bash مجموعه ای از عملکردهای بسیار پیچیده اما مفید history را ارائه می دهد ، fish این موارد را تجزیه می کند و روی بهبود اصول کار برای رفع مشکلات در حین استفاده کار می کنند.
شما می توانید با استفاده از کلید UP به صورت زمانی در تاریخچه حرکت کنید. با استفاده از کلید DOWN می توانید در جهت معکوس حرکت کنید. این ویژگی نسبتاً استاندارد است.
اگر بخواهیم به تبلیغ خود بازگردیم ، فقط کافیست کلید space را بزنیم.
همچنین می توانیم در بخشی از دستور قبلی تایپ کنیم و سپس کلید UP را فشار دهیم تا آخرین نمونه های آن فرمان خاص را جستجو کنیم.
علاوه بر این ، می توانیم از دستورات ALT-UP و ALT-DOWN استفاده کنیم تا فقط آرگومان های خط فرمان را فراخوانی کنیم.
به عنوان مثال ، اگر محتوای یک دیرکتوری را فهرست کرده باشیم:
ls /etc
acpi/ groff/ ltrace.conf rmt*
adduser.conf group magic rpc
alternatives/ group- magic.mime rsyslog.conf
apm/ grub.d/ mailcap rsyslog.d/
apparmor/ gshadow mailcap.order screenrc
. . .

میفهمیم که این دایرکتوری مورد نظر ماست و اکنون می خواهیم به آن سوییچ کنیم. می توانیم با وارد کردن دستور جدید شروع کنیم:
cd # Don’t press return yet

اکنون می توانیم با زدن کلیدهای ALT-UP ، آرگومان های آخرین دستور را وارد کنیم:
cd # Hit Alt-UP and get…

cd /etc

این یک مثال بسیار ساده است ، اما می بینید که چگونه این مسئله می تواند فوق العاده مفید باشد ، به خصوص که می توانید آرگومان های فرمان قبلی را حرکت دهید.
نوع دیگری از تاریخچه که fish ارائه می دهد تاریخچه دیرکتوری است. این یک ویژگی عالی است که به شما امکان می دهد اساساً از طریق تاریخچه cd خود به فهرست های قبلی بروید.
می توانید تاریخچه دیرکتوری خود را با تایپ کردن دستور زیر مشاهده کنید:
dirh

می توانید با فشار دادن ALT-LEFT و ALT-RIGHT در هنگام فرمان خالی ، در تاریخچه دیرکتوری خود به عقب و جلو بروید. این به شما امکان می دهد تا به راحتی بین دایرکتوری ها چرخ بزنید.
ایجاد پرونده های پیکربندی و تغییر shell پیش فرض شما
اگر از fish shell لذت برده باشید، احتمالاً می خواهید برخی موارد سفارشی را برای شکل دادن به محیط خود بگنجانید.
در حالی که ممکن است به تنظیمات خاصی در فایل های ~/.bashrc یا ~ / .bash_profile خود عادت کرده باشید ، این موارد برای این shell ها استفاده نمی شود.
برای پیکربندی تنظیمات برگزیده خود ، باید پرونده ای در ~ / .config / fish / config.fish ایجاد کنید. تمام فایل های پیکربندی fish باید به .fish ختم شوند. معمولاً وقتی برای اولین بار از شل استفاده می کنید مسیر ~ / .config / fish / path ایجاد می شود.
اگر مایل به شروع با یک فایل مثال هستید ، می توانید آن را از دیرکتوری پکیج fish کپی کنید:
cp /usr/share/fish/config.fish ~/.config/fish

سپس می توانید آن را مانند هر فایل دیگر ویرایش کنید:
nano ~/.config/fish/config.fish

هنگامی که با فایل آشنا شدید، احتمالاً باید هر چیزی را که شخصاً سفارشی نکرده اید ، حذف کنید.
بهتر است توابع را مستقیماً به این فایل پیکربندی اضافه نکنید. درعوض ، باید یک دایرکتوری به نام functions در فهرست تنظیمات fish خود ایجاد کنید:
mkdir ~/.config/fish/functions

در داخل این دیرکتوری ، برای هر یک از توابع مورد نظر خود ، فایل ایجاد کنید. تا زمانی که هر پرونده با .fish تمام شود ، shell آنها را پیدا کرده و آنها را در محیط خود می گنجاند. هر تابع باید در فایل خود بدون هیچ فایل دیگر قرار گیرد.
به عنوان مثال ، می توانیم پرونده ای را ایجاد کنیم تا عملکرد hello_sir در هر بخش برای کاربر ما فراهم شود ، می توانیم این را تایپ کنیم (قبل از ادامه ، به یاد داشته باشید که اگر این کار را نکرده اید ، نام مستعار cat را که قبلاً درست کرده اید با set -e cat جایگزین کنید. قبلا، پیش از این
cat > ~/.config/fish/functions/hello_sir.fish
function hello_sir
echo hello Mr. $argv[2]
end

پس از تایپ end، CTRL-D را بزنید تا ورودی پایان یابد. اکنون با هر بار لود شدن shell در دسترس خواهد بود. اگر می خواستیم تابع say_hello خود را نیز اضافه کنیم ، به یک فایل جداگانه احتیاج داریم.

اگر به برخی از الهامات نیاز دارید ، می توانید به عملکردهای پیش فرض fish نگاهی بیندازید:
cd /usr/share/fish/functions
ls

پس از اینکه shell خود را به دلخواه پیکربندی کردید ، میتوانید از fish به عنوان شل پیش فرض خود استفاده کنید. برای این کار می توانید از دستور chsh استفاده کنید.
ابتدا باید مسیر shell fish را بدانیم:
which fish
/usr/bin/fish

در مرحله بعد می توانیم shell خود را با تایپ دستور زیر تغییر دهیم:
chsh -s /usr/bin/fish

از شما خواسته می شود رمز عبور خود را تأیید کنید. پس از اتمام این کار ، هر بار که وارد شوید ، سریعاً به شما اعلان fish داده می شود.
اگر می خواهید به شل دیگر خود برگردید ، می توانید آن را به روش مشابه مشخص کنید:
chsh -s /bin/bash

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

 

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

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

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

کلمات کلیدی خرید سرور

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

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

مقدمه
امنیت باید دغدغه اصلی برای هر نوع داده ذخیره شده در رایانه قابل دسترسی به اینترنت باشد. در حالی که هر ارائه دهنده با ویژگی ذخیره سازی باید از اطلاعات خود محافظت کند، این امر تا جایی محقق میشود که دسترسی غیرمجاز از طریق نقص نرم افزار روی سرور مجازی، مهندسی اجتماعی و بسیاری راه های دیگر رخ ندهد. به طور خلاصه، شما باید مالکیت رمزگذاری و امنیت اطلاعاتی که نمی توانید از عدم افشای آن مطمئن باشید را در اختیار بگیرید.
روشهای زیادی برای رمزگذاری محتوا در یک سیستم لینوکس وجود دارد. بسیاری از این گزینه ها به رمزگذاری پارتیشن های جداگانه ، دستگاه ها یا سیستم های فایلی متکی هستند. در صورت کار با سیستمی مانند VPS ممکن است گزینه مناسبی نباشد. با این حال گزینه های دیگری نیز وجود دارد ، مانند ایجاد فایلی که به عنوان یک دستگاه به منظور ذخیره داده های رمزگذاری شده عمل می کند.
در این راهنما از ابزارهای dm-crypt برای ایجاد یک فایل رمزگذاری شده بزرگ استفاده می کنیم که می تواند برای ذخیره داده های حساس ما استفاده شود. سپس می توانید این فایل را به صورت پارتیشن معمولی سوار کنید. ما این موضوع را به عنوان مثال در اوبونتو 12.04 VPS نشان خواهیم داد ، اما رویه های مشابه باید برای توزیع های دیگر قابل پیاده سازی باشد.
ایده پایه
Dm-crypt یک مکانیزم رمزگذاری در سطح هسته است که امکان رمزنگاری دیسک شفاف را ممکن میسازد. این بدان معنی است که فایل ها بلافاصله و بدون هیچ گونه کار اضافی پس از نصب ، در دسترس هستند.
در حالی که اکثر این برنامه ها به رمزگذاری موارد در سطح پارتیشن تکیه می کنند ، ما می توانیم با استفاده از فایلی که به عنوان هدف نقشه برداری سیستم قرار داده ایم، این ویژگی را تغییر دهیم. ما این کار را با قرار دادن فایل به عنوان دستگاه حلقه انجام می دهیم. سپس می توانید داده ها را در این “دستگاه” نصب شده دقیقاً مانند هر پارتیشن یا دستگاه دیگر ذخیره کنید.
هنگام بررسی اجرای هر نوع رمزگذاری ، باید برخی از جوانب مثبت و منفی را وزن کنید. اول از همه ، همیشه یک عملکرد درگیر با رمزگذاری وجود دارد. ممکن است مهم باشد یا نباشد ، و توصیه می کنیم ابتدا قبل از اجرای تست ها در مقیاس بزرگتر ، یک فایل کوچک ایجاد کنید.
نکته دیگر بازیابی است. رمزگذاری به واسطه عملکرد اصلی خود ، بازیابی را مشکل تر می کند. اگر رمزعبور خود را فراموش کرده باشید ، داده های شما به طور موثر برای همیشه از بین می روند. اگر هدر LUKS شما رونویسی یا آسیب دیده باشد ، داده های شما برای همیشه از بین می روند. اگر سیستم شما در حال بوت شدن نیست و شما نیاز به دسترسی به اطلاعات در فایل رمزگذاری شده خود دارید، برای دستیابی به دسترسی مجبور هستید مراحل پیچیده تری را طی کنید.
هنگام تصمیم گیری در مورد رمزگذاری داده ها ، باید در مورد احتمال از دست دادن آن اطلاعات در صورت بروز اشتباه آگاه باشید. شما قطعاً باید از هر یک از داده ها نسخه پشتیبان تهیه کنید و dm-crypt اطلاعات زیادی در مورد چگونگی انجام این کار در این لینک ارائه می دهد.
نصب ابزارهای dm-crypt
در حالی که عملکرد سطح هسته باید در توزیع شما موجود باشد ، ابزارهای دردسترس واقعی احتمالاً به طور پیش فرض نصب نشده اند. تمام دستورات موجود در این راهنما به صورت root انجام می شود.
ما می توانیم با به روزرسانی ایندکس پکیج محلی و نصب ابزارهای dm-crypt ، ابزارهای لازم را بدست آوریم:
apt-get update
apt-get install cryptsetup

این باعث می شود همه وابستگی های لازم و امکانات کمکی مورد نیاز برای کار با یک حجم DM-crypt افزایش یابد.
یک فایل خالی غیر پراکنده ایجاد کنید
برای ذخیره داده های رمزگذاری شده خود، باید فایلی را ایجاد کنیم که به عنوان دستگاه ذخیره سازی ما عمل کند.
ما می خواهیم یک فایل خالی ایجاد کنیم، اما نمی توانیم یک فایل پراکنده داشته باشیم ، که در هنگام ایجاد، اندازه کامل فایل را در اختیار قرار میدهد. ما می توانیم این کار را از طرق مختلف انجام دهیم.
ساده ترین و سریعترین راه برای انجام این عملیات با دستور fallocate است. این دستور فوراً مقدار دیسک مورد نظر شما را برای یک فایل اختصاص می دهد و نام آن را به شما می دهد.
به عنوان مثال، برای ایجاد یک فایل 512MB در هوم دیرکتوری کاربر اصلی، می توانیم تایپ کنیم:
fallocate -l 512M /root/test1

این کار فوق العاده سریع است ، اما یک ویژگی منفی نیز دارد که داده های قدیمی و حذف شده قبلی را که قبلاً توسط آن بلوک ها با داده صفر یا تصادفی استفاده می شود، بازنویسی نمی کند. این ویژگی احتمالاً رای اهداف شما مطلوب نخواهد بود زیرا ما نمی خواهیم مردم بتوانند بگویند کدام قسمت از فایل داده های رمزگذاری شده روی آن نوشته شده است.
جایگزین دیگر استفاده از دستور فراگیر dd است. ما می توانیم با استفاده از شبه دستگاه / dev / zero برای کل منطقه ای که در اختیار فایل ما قرار دارد ، zero ها را بنویسیم. با تایپ کردن چیزی مثل دستور زیر می توانیم فایل مشابه فایل فوق ایجاد کنیم:
dd if=/dev/urandom of=/root/test3 bs=1M count=512

اگر در عوض ، می خواهید داده های تصادفی را بنویسید، که باید از داده های رمزگذاری شده که در واقع برای آن نوشته خواهد شد تبعیت کند، می توانید به جای آن از یکی از شبه دستگاههای تصادفی استفاده کنید. این کار بسیار بیشتر طول خواهد کشید ، به خصوص اگر شما یک فایل بزرگ را اختصاص می دهید ، اما استفاده از دستگاه های تصادفی احتمالاً بهترین راه برای تهیه فایل برای این منظور است:
dd if=/dev/zero of=/root/test2 bs=1M count=512

استفاده از شبه دستگاه/dev/random تصادفی روشی حتی مطمئن تر برای انجام این کار است باز هم زمان تر خواهد بود:
dd if=/dev/random of=/root/test4 bs=1M count=512

ایجاد یک کانتینر LUKS با رمز dmدر فایل
قبل از اینکه فایلی را که تازه ایجاد کرده ایم قالب بندی کنیم ، باید یک پارتیشن LUKS را درون فایل ایجاد کنیم. LUKS یا همان Linux Unified Key Setup یک استاندارد برای رمزگذاری دیسک است. و لایه اساسی است که همه داده های دیگر ما در بالای آن قرار می گیرند.
ابزارهای dm-crypt روشی بسیار آسان برای ایجاد این لایه ارائه می دهند. ما می توانیم کانتینر را با این دستور بسازیم.
cryptsetup -y luksFormat / root / test1
ما باید تأیید کنیم که شما مایل به نوشتن مطالب فایل هستید. فایلی را که به آن ارجاع داده اید دو بار بررسی کنید تا به طور تصادفی فایل اشتباه را بازنویسی نکنید. پس از تأیید ، برای ادامه “yes” را وارد کنید.
از شما خواسته می شود پسوردی را که برای رمزگشایی داده ها لازم است ، تنظیم کنید. به یاد داشته باشید: اگر این گذرواژه را گم کنید ، هر داده ذخیره شده در سیستم فایل که ایجاد خواهیم کرد از بین می رود. با اطمینان خاطر این رمز را در جایی ذخیره کنید که گم نشود یا حتماً آن را به خاطر بسپارید. گزینه -y به ما امکان می دهد رمز عبور را تأیید کنیم تا مطمئن شویم که اشتباه نکرده ایم.
اگر هم اکنون فایل را بررسی کنیم ، می بینیم که اکنون به عنوان فایل رمزگذاری شده LUKS شناخته شده است:
فایل / root / test1
test1: فایل رمزگذاری شده LUKS ، ver 1 [aes، cbc-essiv: sha256، sha1] UUID: 1851db36-3223-4ee1-8e3e-cc65c49e05f3
اکنون که کانتینری در بالای فایل خود ساخته ایم ، می توانیم کانتینرها را به این شکل باز کنیم:
cryptsetup luksOpen / path / to / LUKS / فایل mapping_name
در مثال ما ، از فایل / root / test1 استفاده می کنیم و نام آن را volume1 می گذاریم:
cryptsetup luksOpen / root / test1 volume1
باید رمز عبوری را که برای فایل تنظیم کرده اید ارائه دهید ، که برای رمزگشایی آن لازم است
این رمز دستگاه LUKS را باز می کند ، و در صورت ایجاد فایلی در / dev / Mapper / volume1 آن را با نامی که ما تهیه می کنیم منطبق میکن. اساساً فایل را به عنوان یک دستگاه محلی با حلقه برگشتی باز می کند تا بقیه سیستم هم اکنون بتواند مانند یک وسیله واقعی ، فایل را اداره کنند.
ایجاد و نصب سیستم فایل
اکنون که یک کانتینر LUKS ایجاد کردیم و به عنوان یک وسیله معمولی در سیستم ما باز شده است ، می توانیم عملیات منظم دستگاه را بر روی آن انجام دهیم.
ابتدا باید یک سیستم فایل را در دستگاه خود قالب بندی و ایجاد کنیم. می توانید سیستم فایل مورد نظر خود را انتخاب کنید. ما از یک سیستم فایل استاندارد Ext4 استفاده خواهیم کرد، اما شما می توانید از هر سیستم فایل که سرور مجازی شما برای کارکرد عادی با آن پیکربندی شده است استفاده نمایید.
برای اهداف ما، دستوری که ما می خواهیم از آن استفاده کنیم به صورت زیر است:
mkfs.ext4 -j / dev / Mapper / volume1
اکنون یک سیستم فایل در بالای کانتینر LUKS ما نوشته شده است که در فایل ما موجود است. از آنجا که مانند یک دستگاه کنترل می شود ، مرحله بعدی ما به طور منطقی نصب دستگاه است.

بیایید یک مکان نصب ایجاد کنیم که معقول به نظر برسد:
mkdir /mnt/files
اکنون ، فقط باید سیستم فایل خود را نصب کنیم:
mount /dev/mapper/volume1 /mnt/files

اکنون می توانید فایل ما را به عنوان بخشی از سیستم فایل های موجود مشاهده کنید:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 59G 2.7G 54G 5% /
udev 2.0G 12K 2.0G 1% /dev
tmpfs 791M 216K 791M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
/dev/mapper/volume1 486M 2.3M 459M 1% /mnt/files

می بینید که برخی از فضای موجود در فایل ما توسط رمزگذاری و سیستم فایل بالای آن گرفته شده است. اگر چه همچنان بیشتر فضای خود را داریم.
اگر موقعیت مکانی که فایل خود نصب کرده ایم را بررسی کنیم ، می بینیم که دقیقاً مانند هر سیستم فایل Ext4 دیگری ارائه شده است:
cd /mnt/files
ls
lost+found

دایرکتوری بازیابی نرمال lost+found ایجاد شده است. اکنون می توانیم داده هایی را در این مکان بنویسیم ، و آن داده ها در فایل ما جای داده و رمزگذاری می شوند. به عنوان مثال ، فقط می توانیم دیرکتوری / etc خود را بگیریم و آن را در محل نصب کپی کنیم:
cp -r /etc/* /mnt/files

حذف سیستم فایل و بستن کانتینر LUKS
پس از اتمام نوشتن یا خواندن داده های خود، ما سیستم فایل را با استفاده از روش های عادی حذف می کنیم:
cd
umount /mnt/files

با این کار مکان / dev / mapper / volt1 از نقطه اتصال ما در /mnt/filesجدا می شود:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 59G 2.7G 54G 5% /
udev 2.0G 12K 2.0G 1% /dev
tmpfs 791M 216K 791M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm

با این حال ، فایل ما هنوز به عنوان / dev / Mapper / vol1 در سیستم باز و در دسترس هستند.
ls /dev/mapper/
control volume1

دستگاه کنترل وسیله ای است که برای ایجاد دستگاه های نقشه برداری دیگر استفاده می شود. ما با خیال راحت می توانیم این مسئله را نادیده بگیریم.
برای بستن فایل volume1 و ایمن سازی محتویات آن ، باید فایل را ببندیم ، در اصل نقشه دستگاه را از فایل خارج می کنیم. این بدان معنی است که شما تا زمانی که رمز عبور را دوباره ارائه ندهید ، دیگر قادر به دسترسی به محتوای فایل نخواهید بود:
cryptsetup luksClose volume1

اگر دایرکتوری نقشه برداری دستگاه خود را بررسی کنیم ، خواهیم دید که دستگاه volume1 ما حذف شده است:
ls /dev/mapper
control

حجم ما اکنون حذف شده است ، کانتینر LUKS بسته شده است ، و داده های ما کاملاً رمزگذاری شده و در پشت رمز عبور ما ایمن شده است.
روش استفاده سرراست
برای جدا کردن مراحل اولیه ایجاد از استفاده روزانه ، به سرعت فرایندی را که شما برای استفاده از فایل نیاز دارید اجرا میکنیم.
اکنون که فایل LUKS را دارید ، وقتی می خواهید از آن استفاده کنید، می توانید فایل LUKS را به سادگی باز کنید:
cryptsetup luksOpen / root / test1 volume1
شما می توانید نام دیگری را در اینجا به غیر از اسم اولیه انتخاب کنید ، که فقط تا زمانی که فایل باز باشد اهمیت خواهد داشت. رمز volume را وارد کنید.
پس از آن ، دستگاهی را که نقشه برداری شده است نصب کنید:
mount /dev/mapper/volume1 /mnt/files

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

umount /mnt/files

پس از حذف دستگاه ، می توانید دوباره فایل LUKS را برای رمزگذاری داده ها ببندید:
cryptsetup luksClose volume1
نتیجه
اکنون می توانید یک فایل رمزگذاری شده را برای ذخیره اطلاعات حساس خود داشته باشید. به یاد داشته باشید که غالباً بین عملکرد و سهولت استفاده و امنیت رقابتی وجود دارد. همچنین این را بخاطر بسپارید که هرگز نباید پسوردی که وارد کرده اید را فراموش کنید زیرا مطلقا راهی برای بازیابی آن وجود ندارد.
اگرچه این تنها ملاحظات لازم برای محافظت از داده های شما نیست، امیدوارم بتوانید این موضوع را به جعبه ابزار خود اضافه کنید تا امنیت روی سرورهای لینوکس تان بیشتر شود.

 

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

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

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

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

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

مقدمه
IPv6 جدیدترین نسخه پروتکل IP است که کل اینترنت برای اتصال به سایر مکان ها به آن متکی است (پروتکل IP کمی ترکیب زائدی است زیرا IP مخفف پروتکل اینترنت است ، اما ما از آن استفاده میکنیم چون راحت است). در حالی که IPv4 در بسیاری از مناطق جهان هنوز در حال استفاده است ، فضای آدرس IPv4 با سرعت زیادی مصرف می شود و به اندازه کافی بزرگ نیست که بتواند استقرار سریع دستگاه های آماده اینترنت را حفظ کند.
IPv6 به دنبال حل این مشکلات است. در کنار پیشرفت های کلی در پروتکل ، بدیهی ترین مزیت استفاده از آدرس های IPv6 این است که فضای آدرس بسیار بیشتری دارد. در حالی که IPv4 مجاز به 2 ^ 32 آدرس است (و برخی از آن ها برای اهداف خاص ارائه میشوند) ، فضای آدرس IPv6 امکان دسترسی به آدرسهای 2 ^ 128 را فراهم می کند ، که این یک افزایش باورنکردنی است.
اگرچه IPv6 فرصتهای زیادی را فراهم میکند و بسیاری از مسائل طولانی مدت را حل می کند ، در صورتی که به استفاده از IPv4 منحصر به فرد عادت دارید ، نیاز به کمی تنظیمات در برخی از پیکربندی های شبکه روتین خود دارید. در این راهنما ، ما در مورد برخی از رقبای IPv6 و برخی از ابزارها و امکانات محبوب IPv4 صحبت خواهیم کرد و در مورد نحوه پیکربندی برخی از سرویس های محبوب برای استفاده از IPv6 صحبت خواهیم کرد.
تشخیص شبکه های فرعی با IPv6
برخی از ساده ترین ابزارهای مورد استفاده برای تشخیص مشکلات شبکه با توجه به IPv4 ایجاد شدند. برای پرداختن به این موضوع ، می توانیم از مشابه های IPv6 هنگام کار با ترافیک IPv6 استفاده کنیم.
اول از همه ، برای دیدن آدرس های IPv6 تنظیم شده فعلی برای سرور مجازی خود ، می توانید از ابزار iproute2 برای نشان دادن آدرس های پیکربندی شده فعلی استفاده کنید:
ip -6 addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2400:6180:0:d0::41f/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::601:15ff:fe43:b201/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::601:15ff:fe43:b202/64 scope link
valid_lft forever preferred_lft forever

برای چاپ جدول مسیریابی IPv6، می توانید با وارد کردن چیزی شبیه به این ، از netstat استفاده کنید:

netstat -A inet6 -rn
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
2400:6180:0:d0::/64 :: U 256 0 1 eth0
fe80::/64 :: U 256 0 0 eth1
fe80::/64 :: U 256 0 0 eth0
::/0 2400:6180:0:d0::1 UG 1024 0 0 eth0
::/0 :: !n -1 1 90 lo
::1/128 :: Un 0 1 20 lo
2400:6180:0:d0::41f/128 :: Un 0 1 86 lo
fe80::601:15ff:fe43:b201/128 :: Un 0 1 75 lo
fe80::601:15ff:fe43:b202/128 :: Un 0 1 0 lo
ff00::/8 :: U 256 0 0 eth1
ff00::/8 :: U 256 0 0 eth0
::/0 :: !n -1 1 90 lo

اگر ابزار iproute2 را ترجیح می دهید ، می توانید با تایپ کردن دستور زیر اطلاعات مشابه را بدست آورید:
ip -6 route show
2400:6180:0:d0::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth1 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via 2400:6180:0:d0::1 dev eth0 metric 1024

اکنون که می دانید چگونه برخی از اطلاعات IPv6 خود را بدست آورید ، بگذارید کمی در مورد نحوه استفاده از برخی از ابزارهایی که با IPv6 کار می کنند ، بیاموزیم.
دستور ping فراگیر در واقع مخصوص IPv4 است. نسخه IPv6 از این دستور ، که دقیقاً یکسان است اما برای آدرس های IPv6 کار می کند ، به طرز شگفت آور ping6 نامگذاری شده است.
ping6 -c 3 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=0.022 ms

— ::1 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.021/0.023/0.028/0.006 ms

همانطور که مشاهده می کنید ، این دقیقاً مطابق آنچه انتظار می رود عمل می کند ، تنها تفاوت آن در نسخه پروتکل برای آدرس دهی است.
ابزاری دیگر که میتوان به آن اعتماد کنید ، traceroute است. یک معادل IPv6 نیز موجود است:
traceroute6 google.com
traceroute to google.com (2404:6800:4003:803::1006) from 2400:6180:0:d0::41f, 30 hops max, 24 byte packets
1 2400:6180:0:d0:ffff:ffff:ffff:fff1 (2400:6180:0:d0:ffff:ffff:ffff:fff1) 0.993 ms 1.034 ms 0.791 ms
2 2400:6180::501 (2400:6180::501) 0.613 ms 0.636 ms 0.557 ms
3 2400:6180::302 (2400:6180::302) 0.604 ms 0.506 ms 0.561 ms
4 10gigabitethernet1-1.core1.sin1.he.net (2001:de8:4::6939:1) 6.21 ms 10.869 ms 1.249 ms
5 15169.sgw.equinix.com (2001:de8:4::1:5169:1) 1.522 ms 1.205 ms 1.165 ms
6 2001:4860::1:0:337f (2001:4860::1:0:337f) 2.131 ms 2.164 ms 2.109 ms
7 2001:4860:0:1::523 (2001:4860:0:1::523) 2.266 ms 2.18 ms 2.02 ms
8 2404:6800:8000:1c::8 (2404:6800:8000:1c::8) 1.741 ms 1.846 ms 1.895 ms

احتمالا با دستور tracepath آشنایی دارید. این دستور مثالی از دستورهای دیگر برای نسخه IPv6 را دنبال میکند.
tracepath6 ::1
1?: [LOCALHOST] 0.045ms pmtu 65536
1: ip6-localhost 0.189ms reached
1: ip6-localhost 0.110ms reached
Resume: pmtu 65536 hops 1 back 64

اگر نیاز به نظارت بر ترافیک از زمان ورود آن به دستگاه خود دارید ، برنامه tcpdump اغلب استفاده می شود. ما می توانیم از این ابزار استفاده کنیم تا فقط ترافیک IPv6 را با فیلتر کردن آن با عبارت ip6 یا proto ipv6 پس از گزینه های خود ، نشان دهیم.
به عنوان مثال ، می توانیم ترافیک در حال جریان IPv6 را به سرعت با فراخوانی ابزاری برای گرفتن اطلاعاتی که علاقه مند به آن هستیم ، اندازه گیری کنیم. ما می توانیم از این دستور که از این لینک گرفته شده است ، استفاده کنیم تا فقط خلاصه ای از اطلاعات را جمع آوری کنیم تا از تأخیر در خروجی جلوگیری کنیم:
tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6

بررسی اطلاعات DNS IPv6
با استفاده از ابزارهای معمول می توانید به راحتی اطلاعات DNS را برای دامنه های خود بررسی کنید. تفاوت اصلی این است که شما احتمالاً از سوابق AAAA درخواست خواهید کرد ، که برای آدرس های IPv6 به جای سوابق A استفاده می شوند ، که فقط برای نقشه برداری IPv4 استفاده می شوند.
برای بازیابی سوابق آدرس IPv6 برای یک دامنه ، می توانید سوابق AAAA را به سادگی درخواست کنید. با دستور host ، می توانید چنین کاری را انجام دهید:
host -t AAAA google.com
google.com has IPv6 address 2404:6800:4003:803::1004

اگر ترجیح می دهید از Dig استفاده کنید ، می توانید با استفاده از این دستور نتایج مشابهی کسب کنید:
dig google.com AAAA
; <<>> DiG 9.8.1-P1 <<>> google.com AAAA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14826
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com. IN AAAA

;; ANSWER SECTION:
google.com. 299 IN AAAA 2404:6800:4003:803::1006

;; Query time: 5 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Tue Apr 1 13:59:23 2014
;; MSG SIZE rcvd: 56

همانطور که مشاهده می کنید ، بررسی اینکه DNS شما به درستی برای دامنه های تان کار میکند ، به راحتی کار با آدرس های IPv6 است.
خدمات شبکه با IPv6
بسیاری از خدمات معمول شبکه شما باید توانایی اداره ترافیک IPv6 را داشته باشند. بعضی اوقات ، آنها به فلگ ها یا ترکیبات خاص نیاز دارند، و در موارد دیگر ، عملکرد جایگزینی را به طور خاص برای IPv6 ارائه می دهند.
پیکربندی SSH
برای SSH ، می توان پس زمینه را برای ردیابی آدرس IPv6 پیکربندی کرد. و در فایل پیکربندی که می توانید با آن باز کنید کنترل می شود:
sudo nano /etc/ssh/sshd_config

ListenAddress مشخص می کند که کدام آدرس SSH به آن متصل خواهد شد. برای آدرس های IPv4 ، اینگونه به نظر می رسد:
ListenAddress 111.111.111.111:22

این دستور به دنبال آدرس IPv4 یعنی 111.111.111.111 در درگاه 22 میباشد. برای یک آدرس IPv6 ، می توانید با قرار دادن آدرس در براکت های مربع ، همین کار را انجام دهید:
ListenAddress [1341:8954:a389:33:ba33::1]:22

این کار به SSH daemon می گوید که به آدرس 1341:8954:a389:33:ba33::1 در پورت 22 توجه کند. می توانید با تایپ کردن دستور زیر به آن بگویید که تمام آدرسهای IPv6 موجود را بررسی کند:
ListenAddress ::

به یاد داشته باشید که Daemon را بعد از ایجاد تغییرات مجدد بارگذاری کنید:
sudo service ssh restart

از طرف مشتری ، اگر Daemon که به آن وصل می شوید به گونه ای پیکربندی شده است تا با استفاده از IPv4 و IPv6 کار کند ، می توانید مشتری را وادار کنید که تنها با استفاده از فلگ -6 از IPv6 استفاده کند ، مانند این:
ssh -6 username@host.com

پیکربندی سرور وب
شبیه به SSH daemon، سرورهای وب نیز باید برای نظارت بر آدرس های IPv6 تنظیم شوند.
در Apache می توانید سرور مجازی را تنظیم کنید تا با استفاده از این دستور زیر به درخواست های آدرس خاص IPv6 پاسخ دهد:
Listen [1341:8954:a389:33:ba33::1]:80

این دستور به سرور مجازی می گوید که به این آدرس خاص در پورت 80 گوش کند. ما می توانیم این را با یک آدرس IPv4 ترکیب کنیم تا انعطاف پذیری بیشتری ایجاد کنیم، مانند دستور زیر:
Listen 111.111.111.111:80
Listen [1341:8954:a389:33:ba33::1]:80

در عمل ، اگر می خواهید به کلیه پروتکل های موجود در درگاه 80 در همه رابط ها گوش دهید ، می توانید از این دستور استفاده کنید:
Listen 80

در سطح virtualhost ، می توانید آدرس IPv6 را نیز متمایز کنید. در اینجا ، می بینید که میتوان virtualhost را به گونه ای پیکربندی کرد که با آدرس IPv4 و یک آدرس IPv6 مطابقت داشته باشد:

. . .

به یاد داشته باشید که برای ایجاد تغییرات سرویس را مجدداً راه اندازی کنید:
sudo service apache2 restart

اگر ترجیح می دهید از Nginx به عنوان سرور وب خود استفاده کنید ، می توانیم تنظیمات مشابهی را پیاده سازی کنیم. برای قسمت گوش دادن ، می توانیم از این دستور برای ترافیک IPv6 استفاده کنیم:
sudo service apache2 restart

در لینوکس ، این امر در واقع ترافیک IPv4 را در پورت 80 نیز امکان پذیر می کند زیرا به طور خودکار درخواست های IPv4 را به آدرس IPv6 نگاشت می کند. در واقع شما را از متمایز کردن آدرس IPv6 و آدرس IPv4 به صورت جداگانه بازمیدارد:
listen [1341:8954:a389:33:ba33::1]:80;
listen 111.111.111.111:80;

این دستور منجر به خطایی با این مضمون میشود که پورت در حال حاضر به سرویس دیگری متصل است. اگر می خواهید از دستورالعمل های جداگانه ای مانند این استفاده کنید ، باید این عملکرد را با استفاده از sysctl غیر فعال کنید:
sysctl -w net.ipv6.bindv6only=1

با افزودن آن به /etc/sysctl.conf می توانید مطمئن شوید که بطور خودکار در بوت اجرا می شود:
sudo nano /etc/sysctl.conf
. . .
net.ipv6.bindv6only=1

پس از آن ، می توانید با اضافه کردن فلگ ipv6only=on به دستور گوش دادن IPv6 ، از پیکربندی مشابه که قبلا ناموفق بود استفاده کنید:
listen [1341:8954:a389:33:ba33::1]:80 ipv6only=on;
listen 111.111.111.111:80;

مجدداً Nginx را ریستارت کنید تا تغییرات ایجاد شود:
sudo service nginx restart

پیکربندی فایروال
اگر عادت دارید که قوانین فایروال خود را با استفاده از فیلتر شبکه مانند iptables پیکربندی کنید، خبر خوش برای شما این که یک ابزار معادل با نام ip6tables وجود دارد.
در اینجا راهنمایی داریم که نشان میدهد چگونه می توان iptables را برای اوبونتو پیکربندی کرد.
برای متغیر IPv6 ، می توانید جهت مدیریت قوانین فیلتر بسته IPv6 فرمان را با ip6tables جایگزین کنید. به عنوان مثال ، برای لیست کردن قوانین IPv6 ، می توانید تایپ کنید:
sudo ip6tables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

اگر از ابزار ufw استفاده می کنید، جای تبریک دارد ، قبلاً این کار را انجام داده اید! ابزار ufw هر دو بخش را به طور هم زمان پیکربندی می کند مگر اینکه خلاف آن تعیین شده باشد. شاید لازم باشد برای آدرسهای خاص IPv6 خود قوانینی اضافه کنید ، اما نیازی به استفاده از ابزار دیگری نخواهید داشت.
در اینجا می توانید درباره نحوه استفاده از ufw اطلاعات بیشتری کسب کنید
پیکربندی رپر TCP
اگر از رپر (فیلتر) های TCP برای کنترل دسترسی به سرور مجازی خود از طریق فایل های /etc/hosts.allow و /etc/hosts.deny استفاده می کنید ، می توانید به راحتی از syntax IPv6 برای مطابقت با قوانین منبع خاص استفاده کنید.
به عنوان مثال ، می توانید با وارد کردن ویرایش فایل /etc/hosts.allow و افزودن دستور زیر فقط به آدرس IPv4 و آدرس IPv6 امکان اتصال از طریق SSH را بدهید.
sudo nano /etc/hosts.allow
. . .
sshd: 111.111.0.0/255.255.254.0, [1341:8954:a389:33::]/64

همانطور که مشاهده می کنید ، تنظیم قوانین کنونی رپر TCP برای اعمال در آدرس های IPv6 بسیار آسان است. می توانید در اینجا درباره نحوه قالب بندی آدرس های IP و زیر شبکه ها اطلاعات بیشتری کسب کنید.
نتیجه
خوشبختانه اکنون میدانید که استفاده از IPv6 یا بهره مندی از IPv6 علاوه بر IPv4 روشی نسبتا سرراست است.
شما باید بطور مشخص هر سرویس شبکه ای را که برای تحقیق درمورد تغییرات اضافی لازم برای استفاده صحیح از منابع IPv6 استفاده می کنید را بررسی نمایید. با این حال ، اکنون شما باید با اساسی ترین امکانات و خدمات خود راحت تر با IPv6 کار کنید.

 

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

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

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

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

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

مقدمه
موارد زیادی وجود دارد که ممکن است بخواهید برنامه های خاص ، کاربر یا محیط هایی را در یک سیستم لینوکس ایزوله کنید. سیستم عامل های مختلف روش های مختلف دستیابی به این جداسازی را دارند و در لینوکس یک روش کلاسیک از طریق یک محیط chroot انجام می شود.
در این راهنما، ما در مورد چگونگی راه اندازی یک محیط ایزوله با استفاده از chroot به منظور ایجاد یک مانع بین سیستم عامل معمول و یک محیط موجود بحث خواهیم کرد. این کار عمدتاً برای اهداف آزمایشی مفید است. ما در مورد اینکه چه زمانی مایل به استفاده از این فناوری هستید، و چه زمانی بهتر است از راه حل دیگری استفاده کنید بحث خواهیم کرد. ما در مورد این مراحل به طور مثال در Ubuntu 12.04 x86_64 VPS بحث خواهیم کرد.
بیشتر مدیران سیستم از آگاهی در مورد نحوه اجرای یک محیط سریع و آسان chroot بهره مند می شوند و داشتن این مهارت ارزشمند است.
محیط Chroot چیست؟
محیط chroot یک فراخوانی سیستم عامل است که مکان روت را به طور موقت به یک پوشه جدید تغییر می دهد. به طور معمول ، مفهوم سیستم عامل دیرکتوری اصلی روت واقعی در “/” است. با این حال ، با chroot ، می توانید یک دیرکتوری راهنما دیگری را تعیین کنید تا به عنوان دیرکتوری سطح بالا برای مدت زمان یک chroot سرویس دهد.
هر برنامه ای که از داخل chroot اجرا شود ، نمی تواند بقیه سیستم عامل را بطور اصولی مشاهده کند. به طور مشابه ، یک کاربر غیر روت که محدود به محیط Chroot است ، قادر نخواهد بود بیشتر به سلسله مراتب دایرکتوری حرکت کند.
چه موقع از محیط Chroot استفاده کنیم؟
در شرایط متنوعی مفید است. به عنوان مثال ، به شما امکان می دهد نرم افزارهایی را در محیطی که از سیستم عامل عادی شما جدا است ، بسازید ، نصب و آزمایش کنید. همچنین می تواند به عنوان روشی برای اجرای برنامه های 32 بیتی در یک محیط 64 بیتی مورد استفاده قرار گیرد.
به طور کلی ، شما باید chroot را به عنوان راهی برای بازآفرینی موقت محیط سیستم عامل از زیر مجموعه سیستم فایل خود در نظر بگیرید. این به معنای تبدیل برنامه های معمولی شما به نسخه های آزمایشی میباشد، که به شما امکان می دهد تا ببینید که چگونه برنامه ها در یک محیط غیر آلوده رفتار می کنند و می تواند به شما در انجام عملیات ریکاوری ، راه اندازی مجدد سیستم یا ایجاد یک مانع اضافی در برابر حملات احتمالی کمک کند.
چه زمان از یک محیط Chroot استفاده نکنیم؟
محیط های chroot لینوکس نباید تنها به عنوان یک ویژگی امنیتی مورد استفاده قرار گیرند. در حالی که می توان از آنها به عنوان مانع استفاده کرد ، به اندازه کافی منزوی نیستند که به عنوان یک محافظ مطمئن عمل کنند تا یک حمله را از سیستم بزرگتر دور نگه دارد. این امر به دلیل شیوه اجرا شدن chroot و شیوه پردازش آن است و اشخاص ممکن است از محیط خارج شوند.
در حالی که مطمئناً محیط های chroot دردسر اضافی را برای کاربر بدون مزایا ایجاد می کنند ، باید به جای ویژگی امنیتی ، آنها را به عنوان ویژگی سخت افزاری در نظر بگیرید ، به این معنی که آنها سعی می کنند به جای ارائه یک راه حل کامل ، تعداد بردارهای حمله را کاهش دهند. اگر به ایزوله سازی کامل نیاز دارید ، یک راه حل کامل تر مانند کانتینرهای Linux ، Docker ، vservers و غیره را در نظر بگیرید.
تنظیم ابزارها
برای به دست آوردن بیشترین بهره وری از محیط chroot خود ، از برخی ابزارهایی استفاده خواهیم کرد که به نصب برخی از فایلهای توزیع اصلی در محیط جدید ما کمک خواهد کرد. این باعث می شود روند سریعتر انجام شود و اطمینان حاصل شود که library ها و بسته های اساسی ساده را در دسترس داریم.
از ابزاری به نام dchroot یا schroot برای مدیریت محیط های مختلف Chroot استفاده می شود. این ابزار می تواند برای اجرای آسان دستورات در یک محیط chroot مورد استفاده قرار گیرد. دستور dchroot یک فرمان جاافتاده است و در این مرحله در واقع به عنوان یک رپر سازگاری برای schroot ، نوع مدرن تر در اکثر سیستم ها اجرا می شود.
ابزار دیگر debootstrap نام دارد که یک سیستم عامل پایه را در زیر مجموعه سیستم دیگری ایجاد می کند. این امر به ما امکان می دهد تا سریعاً پیش برویم چرا که یک محیط Chroot به عملکرد و کتابخانه های خاصی در محیط احتیاج دارد تا بتواند عملکرد مناسبی داشته باشد.
بیایید اکنون این دو بسته را نصب کنیم. ما dchroot را نصب خواهیم کرد ، زیرا درواقع باعث توقفschroot می شود و انعطاف پذیری استفاده از آن را به ما می دهد:
sudo apt-get update
sudo apt-get install dchroot debootstrap

اکنون که ابزارهای مناسبی در اختیار داریم ، فقط کافی است دایرکتوری را مشخص کنیم که می خواهیم از آن به عنوان روت محیط استفاده کنیم. ما دایرکتوری به نام test در فهرست اصلی خود را ایجاد خواهیم کرد:
sudo mkdir /test

همانطور که قبلاً بیان کردیم ، فرمان dchroot در سیستم های مدرن در واقع به عنوان یک رپر در اطراف فرمان توانمندتر schroot اجرا می شود. به همین دلیل ، فایل پیکربندی schroot را با اطلاعات خود اصلاح خواهیم کرد.
بیایید اکنون فایل را با امتیازات ادمین باز کنیم:
sudo nano /etc/schroot/schroot.conf

در داخل ، ما باید گزینه های پیکربندی ایجاد کنیم که با سیستمی که می خواهیم ایجاد کنیم مطابقت داشته باشد. برای یک سیستم اوبونتو ، ما می خواهیم نسخه و موارد دیگر را مشخص کنیم. مقادیر خوش تفسیری برای سیستم های دبیان وجود دارد که ایده خوبی در اختیار شما قرار میدهد.
ما در حال حاضر در سیستم اوبونتو 12.04 هستیم ، اما بیایید بگوییم که می خواهیم برخی از بسته های موجود در اوبونتو 13.10 را با کد “Saucy Salamander” آزمایش کنیم. ما می توانیم این کار را با ایجاد ورودی شبیه زیر انجام دهیم:
[saucy]
description=Ubuntu Saucy
location=/test
priority=3
users=demouser
groups=sbuild
root-groups=root

فایل را ذخیره کنید و ببندید.
جمع کردن محیط Chroot با یک سیستم عامل اسکلتی
اکنون ، تمام کاری که باید برای نصب سیستمی تحت هدف chroot انجام دهیم تایپ این دستور است:
sudo debootstrap –variant=buildd –arch amd64 saucy /test/ http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive/

در دستور فوق ، فلگ –variant نوع chroot را که می خواهید بسازید مشخص می کند. گزینه buildd مشخص می کند که باید ابزارهای ساخت داخل بسته build-essential را نیز نصب کنید تا امکان استفاده از خارج از جعبه برای ایجاد نرم افزار فراهم شود. با تایپ کردن دستور زیر می توانید گزینه های بیشتری را بیابید:
man debootstrap

توضیحات –variant را جستجو کنید.
–arch معماری سیستم مشتری را مشخص می کند. اگر معماری متفاوت با معماری والدین باشد ، باید از فلگ –foreign نیز عبور کنید! پس از آن ، برای تکمیل نصب ، باید بار دیگر با فرمان debootstrap تماس بگیرید ، با استفاده از دستوری مانند:
sudo chroot /test /debootstrap/debootstrap –second-stage

این کار نصب واقعی را انجام می دهد ، در حالی که اولین دستور فقط در صورت وجود اختلافات معماری ، بسته ها را دانلود می کند. اگر معماری ها مطابقت ندارند ، فلگ –foreign را برای debootstrap  اولیه فراموش نکنید.
saucy  موجود در دستور باید با عنوانی که برای پیکربندی خود در پرونده schroot.conf انتخاب کرده اید مطابقت داشته باشد. / test / هدف را مشخص می کند ، و URL آدرس اینترنتی منشا است که حاوی فایل های مورد نظر شماست. اینها معمولاً همان فرمتی است که در فایل /etc/apt/source.list خود پیدا خواهید کرد.
پس از اتمام این کار ، می توانید تمام فایل هایی که دانلود و نصب شده را با چک کردن دایرکتوری هدف مشاهده کنید:
ls /test
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr

همانطور که مشاهده می کنید ، این دقیقاً شبیه به یک سیستم فایل معمولی است. اخیرا در یک دیرکتوری غیر معمول ایجاد شده است.

پیکربندی نهایی و گذار به محیط جدید
پس از نصب سیستم ، برای اطمینان از عملکرد صحیح سیستم ، باید تنظیمات نهایی را انجام دهیم.
ابتدا بهتر است مطمئن شویم که fstab هاست ما از برخی شبه سیستم ها در guest ما آگاه است. خط هایی مانند اینها را در قسمت پایین fstab خود اضافه کنید:
sudo nano /etc/fstab
proc /test/proc proc defaults 0 0
sysfs /test/sys sysfs defaults 0 0

ذخیره کنید و فایل را ببندید.
اکنون ، نیاز داریم که این سیستم فایلها را در guest خود سوار کنیم:
sudo mount proc /test/proc -t proc
sudo mount sysfs /test/sys -t sysfs

ما همچنین می خواهیم فایل / etc / hosts را کپی کنیم تا به اطلاعات صحیح شبکه دسترسی داشته باشیم:
cp / etc / host / test / etc / host
سرانجام ، ما می توانیم از طریق دستوری مانند این وارد محیط chroot شویم:
sudo chroot /test/ /bin/bash

شما را به محیط جدید chroot خود می برد. می توانید این کار را با رفتن به فهرست root و سپس تایپ کردن این دستور تست کنید:
cd /
ls -di

اگر به هر شماره ای به جز 2 برخوردید ، در یک محیط chroot قرار دارید. از درون این محیط ، می توانید نرم افزاری را نصب کنید ، و بسیاری از کارها را انجام دهید بدون اینکه روی سیستم عامل هاست تأثیر بگذارد (علاوه بر گرفتن منابع)
خروج از یک Chroot
برای خارج شدن از یک محیط Chroot ، کافی است برخی از مراحل را که قبلاً پیکربندی کرده اید معکوس کنید.
اول از همه ، شما مانند هر محیط shell دیگر ، به عنوان روت از محیط chroot خارج می شوید:
exit

پس از آن ، باید سیستم فایل های proc و sys خود را از هم جدا کنیم:
sudo umount /test/proc
sudo umount /test/sys

اگر قصد ندارید مرتباً از این مورد استفاده کنید ، می توانید خطوط اضافی را از فایل / etc / fstab حذف کنید.
اگر هیچ کاری با این محیط ندارید ، با آسودگی خاطر دیرکتوری را که همه چیز در آن ذخیره شده است حذف کنید:
rm -rf /test/

نتیجه
در حالی که مطمئناً فناوریهای دیگری مانند Docker وجود دارند که ایزوله سازی کامل تری را ارائه می دهند ، این محیط های chroot به راحتی ایجاد و مدیریت می شوند و از درون سیستم عامل میزبان در دسترس هستند که در بعضی مواقع سودمند است. همچنین یک ابزار خوب و بسیار سبک میباشد.
موقعیت هایی را که chroot مفید است به خاطر داشته باشید و سعی کنید از استفاده از chroot در شرایطی که مناسب نمیباشد خودداری کنید. محیط های Chroot برای آزمایش و ساخت نرم افزار برای معماری های مختلف بدون داشتن یک سیستم کاملاً مجزا عالی هستند. از آنها در موقعیت های مناسب استفاده کنید و متوجه خواهید شد که آنها راه حل منعطف برای انواع مشکلات ارائه می دهند.

 

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

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

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

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

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

Contao یک سیستم مدیریت محتوای منبع باز (CMS) برای وب سایت ها با هر اندازه است. یک سیستم انعطاف پذیر و مقیاس پذیر میباشد که استانداردهای امنیتی بالا، دسترس پذیری و سئو را اجرا میکند. Contao مدولار است زیرا شما می توانید صدها برنامه افزودنی اضافی را برای اضافه کردن قابلیت به سایت خود استفاده کنید.
با استفاده از برنامه نویسی شی گرا مدرن PHP و چارچوب JavaScript MooTools ساخته شده است. علاوه بر این ، Contao دارای رابط بصری است که از Ajax برای یک تجربه کاربری عالی استفاده می کند.
در این مقاله ما Contao را در VPS دارای Ubuntu 12.04 نصب خواهیم کرد. برای این کار ، فرض می کنم شما VPS خود را قبلاً تنظیم کرده اید وLAMP (Linux ، Apache ، MySQL ، PHP) را اجرا می کنید. اگر قبلاً این کار را نکرده اید ، یک آموزش عالی در vpsgol وجود دارد که می تواند شما را راهنمایی کند.

مقدمات
قبل از دانلود Contao ، باید اطمینان حاصل کنیم که سرور Apache به آن اجازه می دهد تا از فایل .htaccess برای بازنویسی URLهای خود استفاده کند. این برای ایجاد URL های مطلوب و سازگار با موتور جستجو مهم است. مراحل زیر فقط در صورتی لازم است که سرور مجازی شما هنوز به این روش پیکربندی نشده باشد.
در این آموزش ، Contao را در پوشه روت سرور Apache خود نصب خواهیم کرد (/ var / www). . فایل هاست مجازی را که مسئول این فایل است ویرایش کنید:
sudo nano /etc/apache2/sites-available/default
داخل بلوک با این آغاز مشخص شده:
<Directory /var/www/>

اطمینان حاصل کنید که به جای AllowOverride None ، داشته باشید . AllowOverride All
مورد بعدی که باید انجام دهیم فعال کردن mod_rewrite است (مجدداً اگر هنوز آن را فعال نکردید). برای بررسی اینکه آیا در حال حاضر فعال شده است ، از دستور زیر استفاده کنید:
apache2ctl -M

اگر “rewrite_module” را در لیست می بینید ، درست پیش رفته اید. اگر اینطور نیست ، برای فعال کردن ماژول از دستور زیر استفاده کنید:
a2enmod rewrite
بعد از ایجاد هرگونه تغییر در فایل هاست مجازی یا فعال کردن ماژول Apache ، باید Apache را مجدد راه اندازی کنید:
sudo service apache2 restart
دانلود
قبل از دانلود، اجازه دهید سراغ کاربری که روت نیست برویم. اگر در حال حاضر کاربر دیگری ندارید ، پیش بروید و یکی ایجاد کنید.
بیایید یک کاربر به نام Contao ایجاد کنیم:
useradd contao
passwd contao

و سپس رمز عبور را مشخص کنید. در صورت عدم وجود، پوشه هوم را برای این کاربر ایجاد کنید:
mkdir /home/contao
و کاربر را به گروه sudo اضافه کنید:
sudo adduser contao sudo
اکنون از باکس خود خارج شوید و با استفاده از این کاربر جدید دوباره به آن برگردید.
اکنون می توانیم به سراغ دانلود فایل منبع Contao برویم. بیایید ابتدا به پوشه ای که می خواهیم آن را نصب کنیم ، برویم:
cd /var/www

سپس، می توانیم یک دستور برای دانلود خودکار تاربال موجود در آخرین نسخه Contao و غیرفعال کردن آن اجرا کنیم:
sudo curl -L http://download.contao.org | sudo tar -xzp

حال اگر پوشه / var / www را جستجو کنید باید دایرکتوری به نام core-master را ببینید. مالک آن را به کاربر Contao تغییر دهید:
sudo chown -R contao core-master
ما محتویات آن را یک پوشه به پوشه روت وب سرور منتقل خواهیم کرد:
sudo mv core-master/* /var/www
sudo mv core-master/.gitignore /var/www
sudo mv core-master/.gitattributes /var/www
sudo mv core-master/.htaccess.default /var/www

و سپس پوشه اضافی core-master را حذف کنید:
sudo rmdir core-master

دیتابیس
قبل از شروع خود نصب، باید یک پایگاه داده جدید برای استفاده Contao ایجاد کنیم. من برای راه اندازی پایگاه داده MySQL مراحل مختلفی را برای شما راهنمایی خواهم کرد ، اما برای اطلاعات بیشتر یک آموزش خوب وجود دارد.
اولین کاری که شما باید انجام دهید اینست که از ترمینال خود وارد MySQL شوید (در صورت تمایل می توانید از PHPMyAdmin نیز استفاده کنید اما من به شما نشان می دهم که چگونه این کار را از خط فرمان انجام دهید):
mysql -u `username` -p`password`

از آنجا ، دستور زیر را اجرا کنید تا پایگاه داده ای به نام contao ایجاد کنید:
create database contao;

در صورت تمایل می توانید نام آن را به چیز دیگری تغییر دهید. وقتی به زودی برنامه نصب Contao را اجرا می کنیم ، شما می توانید اطلاعاتی را برای اتصال به این پایگاه داده مشخص کنید.
نصب
Contao یک ابزار نصب وب مناسب دارد که ما می توانیم از آن برای نصب استفاده کنیم. اما اجازه دهید ابتدا مراقب برخی از مجوزها باشیم.
مالکیت پوشه های زیر را به کاربر و گروه www-data تغییر دهید:
sudo chown -R contao:www-data assets/images
sudo chown -R contao:www-data system/logs
sudo chown -R contao:www-data system/tmp

سپس ، مجوزها را برای گروه www-data تنظیم کنید تا بتوانند در این پوشه ها بنویسند:
sudo chmod -R 775 assets/images
sudo chmod -R 775 system/logs
sudo chmod -R 775 system/tmp

اکنون می توانید برای دسترسی به نصب کننده به آدرس زیر مراجعه کنید.
http://your-ip/contao/install.php

صفحه اول نصب کننده ، اعتبار FTP را درخواست می کند، که برای نوشتن در پوشه system / config از آن استفاده می کند. شما می توانید آنها را در آنجا تهیه کنید.
اگر قبلاً FTP روی سرور مجازی خود تنظیم نکرده اید، می توانید این آموزش را برای شروع مطالعه کنید. من به سرعت نحوه تنظیم VSFTPD را به شما نشان خواهم داد.
دستورات زیر را برای نصب VSFTPD اجرا کنید:
sudo apt-get update
sudo apt-get install vsftpd
اکنون FTP را در VPS خود دارید. فراموش نکنید که دسترسی به کاربر ناشناس را غیرفعال کنید. (می توانید در مقاله لینک شده در مورد نحوه انجام این کار اطلاعات بیشتری کسب کنید).
اما یک کاری که باید انجام دهید ویرایش فایل پیکربندی است:
sudo nano /etc/vsftpd.conf

و برای ارائه دسترسی به FTP توسط کاربران محلی، این خطوط را uncomment کنید:
local_enable=YES
write_enable=YES

سپس VSFTPD را مجدداً راه اندازی کنید:
sudo service vsftpd restart

هنگامی که از صفحه اعتبارنامه های FTP با موفقیت عبور کردید ، مجوز را بخوانید و بپذیرید. در صفحه بعدی باید یک رمزعبور مشخص کنید (مطمئن شوید که طول آن 8 حرف باشد). پس از آن ، باید اعتبارنامه های بانک اطلاعاتی را مشخص کنید. در صورت موفقیت آمیز بودن اتصال ، می توانید بر روی دکمه update database برای نصب کننده کلیک کنید تا جداول لازم را در پایگاه داده خود ایجاد کنید. سپس یک حساب کاربری ادمین ایجاد کنید تا مراحل نصب نهایی شود.
پس از آن می توانید به قسمت پشتیبانی شده Contao خود در http: // your-ip / contao / بروید و با حسابی که تازه ایجاد کرده اید وارد شوید و مطمئن شوید که همه چیز به طور عادی کار می کند. پس از ورود به سیستم احتمالا متوجه دکمه Build Cache میشوید که در آن برای ساختن حافظه پنهانش باید بر روی Contao کلیک کنید.
یک کار نهایی که باید انجام دهیم این است که فایل .htaccess.default در پوشه روت Contao را به سادگی به .htaccess تغییر نام دهیم .
mv /var/www/.htaccess.default /var/www/.htaccess

تبریک می گویم! شما Contao را روی سرور cloud خود نصب کردید.

 

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

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

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

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

  • behnam gol mohamadi
  • ۰
  • ۰

مقدمه
SSH راه اصلی برای اتصال به سرورهای راه دور لینوکس و یونیکس مانند از طریق خط فرمان است. که یک اتصال مطمئن فراهم می کند که می توانید از آن برای اجرای دستورات ، تعامل با سیستم و حتی تونل زدن از میان ترافیک نامربوط استفاده کنید.
بیشتر کاربران از اصول اولیه چگونگی شروع و اتصال به یک سرور از راه دور با یک فرمان مانند زیر آگاه هستند:
ssh username@remote_server

با این حال ، گزینه های بیشتری در رابطه با پیکربندی Demon SSH وجود دارد که می تواند برای افزایش امنیت ، مدیریت اتصالات کاربر و غیره مفید باشد. ما در مورد برخی از گزینه های موجود در اختیار شما بحث خواهیم کرد تا کنترل دقیق تری روی دسترسی SSH داشته باشید. .
ما این مفاهیم را به طور نمونه از Ubuntu 12.04 VPS استفاده خواهیم کرد ، اما هر توزیع مدرن لینوکس باید به روشی مشابه عمل کند.
کاوش در فایل پیکربندی SSHD
منبع اصلی پیکربندی مربوط به Demon SSH در فایل / etc / ssh / sshd_config است. توجه داشته باشید که این با فایل ssh_config متفاوت است ، که پیش فرض سمت مشتری را مشخص می کند.
اکنون فایل را با امتیازات ادمین باز کنید:
sudo nano /etc/ssh/sshd_config

شما یک فایل با ویژگی های کاملاً متفاوت را مشاهده خواهید کرد و خوشبختانه (بسته به توزیع خود) نظرهای زیادی را نیز مشاهده میکنید. در حالی که اکثر توزیع ها کار نسبتاً خوبی برای ایجاد پیش فرض های عاقلانه انجام می دهند ، همچنان جای بهبود و سفارشی سازی وجود دارد.
بیایید به برخی از گزینه هایی که قبلاً در فایل ما در اوبونتو 12.04 تنظیم شده اند بپردازیم:
پورت ها و پروتکل ها
پورت 22: پورتی را که Daemon SSH به دنبال اتصال در آن است ، مشخص می کند. به طور پیش فرض ، اکثر مشتری ها و سرورها در درگاه 22 کار می کنند ، اما تغییر دادن آن به درگاه متفاوت می تواند به طور بالقوه میزان تلاش ورود به سیستم توسط SSH توسط کاربران مخرب را کاهش دهد.
پروتکل 2: SSH از طریق دو نسخه پروتکل بوده است. مگر اینکه به طور خاص نیاز به پشتیبانی مشتریانی داشته باشید که فقط می توانند در پروتکل 1 کار کنند ، توصیه می شود این موارد را رها کنید.
کلیدها و جدایی
HostKey / etc / ssh / ssh_host…: این خطوط کلیدهای هاست را برای سرور مشخص می کنند. از این کلیدها برای شناسایی سرور برای اتصال مشتری استفاده می شود. اگر مشتری قبلاً با سرور ارتباط برقرار کرده باشد ، می تواند از این کلید برای اعتبار سنجی اتصال جدید استفاده کند.
UsePrivilegeSeparation yes: این گزینه به SSH اجازه می دهد تا فرآیندهای کودک را افزایش دهد که فقط امتیازات لازم را برای انجام وظایف خود دارند. این یک ویژگی ایمنی برای جداسازی فرایندها در صورت بهره برداری امنیتی است.
KeyRegenerationInterval and ServerKeyBits: این گزینه ها روی کلید سرور تولید شده برای پروتکل SSH 1 تأثیر می گذارند. اگر خواستار اتصال کانکشن های خود به پروتکل 2 هستید ، لازم نیست که نگران این موضوع باشید.

ورود به سیستم و محدودیت ها
SyslogFacility and LogLevel : این گزینه ها نحوه ورود به سیستم را مشخص می کنند. گزینه اول مربوط به کد تسهیلات برای پیام های logging است و گزینه دوم سطح ورود به سیستم یا میزان جزئیات را می گوید.
LoginGraceTime 120: تعداد ثانیه هایی است که سرور قبل از جدا شدن از مشتری در صورت عدم ورود موفق به سیستم ، منتظر می ماند.
PermitRootLogin yes: این گزینه امکان SSH را با استفاده از حساب root امکان پذیر یا رد می کند. از آنجا که حساب روت یکی از مواردی است که حمله کننده می داند در دستگاه سرور وجود دارد و از آنجا که دسترسی نامحدود به دستگاه را فراهم می کند ، اغلب یک حساب کاربری بسیار هدفمند است. وقتی یک حساب کاربری معمولی را با امتیازات sudo پیکربندی کردید تنظیم این گزینه روی حالت “خیر” توصیه می شود.
StrictModes yes: این به SSH می گوید که از پرونده های پیکربندی سطح کاربر که مجوزهای صحیحی ندارند، چشم پوشی کند. اگر کاربر پرونده های پیکربندی خود را به صورت جهانی قابل خواندن قرار دهد ، پیامدهای امنیتی خواهد داشت. تا زمانی که این مشکل برطرف شود، بهتر است دسترسی برداشته باشد.
IgnoreRhosts and RhostsRSAAuthentication : این گزینه ها مشخص می کند که آیا احراز هویت به سبک rhost پذیرفته خواهد شد یا خیر. این دستور پروتکل 1 است که در مورد پروتکل 2 صدق نمی کند.
HostbasedAuthentication no: این نسخه پروتکل 2 از مورد فوق است. در اصل، اجازه می دهد تا احراز هویت بر اساس میزبان مشتری در حال اتصال انجام شود. معمولاً فقط برای محیط های ایزوله قابل قبول است ، زیرا امکان جعل اطلاعات منبع وجود دارد. شما می توانید اطلاعات میزبان را در یک فایل /etc/ssh/shosts.equiv یا فایل /etc/hosts.equiv مشخص کنید. این خارج از محدوده این راهنما میباشد.
PermitEmptyPasswords no: این گزینه دسترسی SSH را برای حساب هایی که رمز عبور ندارند در هنگام تأیید رمز عبور محدود می کند. این می تواند یک خطر امنیتی بزرگ باشد و تقریباً هرگز نباید آن را تغییر دهید.
ChallengeResponseAuthentication: این خط یک نوع تأیید پاسخ-چالش را فعال یا غیرفعال می کند که می توان از طریق PAM پیکربندی کرد. این بحث خارج از محدوده این راهنما است.

نمایش
X11Forwarding yes: این گزینه به شما امکان می دهد تا واسط های گرافیکی X11کاربر را برای برنامه های روی سرور به دستگاه مشتری منتقل کنید. این بدان معنی است که می توانید یک برنامه گرافیکی را روی یک سرور شروع کنید، و با آن در سیستم مشتری تعامل داشته باشید. مشتری باید یک سیستم X در دسترس داشته باشد. می توانید این موارد را در OS X نصب کنید و هر لینوکس دسکتاپی این قابلیت را دارد.
X11DisplayOffset 10: این یک آفست برای شماره نمایشگر sshd برای ارسال X11 است. این افست اجازه می دهد تا SSH باعث ایجاد پنجره های X11 شود تا از درگیری با سرور X موجود جلوگیری کند.
PrintMotd no: این گزینه مشخص می کند که Daemon SSH نباید پیام فایل روز را بخواند و نمایش دهد. این گاهی اوقات توسط خود shell خوانده می شود ، بنابراین ممکن است شما نیاز به تغییر پرونده های ترجیحی shell خود نیز داشته باشید.
PrintLastLog yes: این به Daemon SSH می گوید تا اطلاعات آخرین باری که وارد سیستم شدید را چاپ کند.

اتصال و محیط
TCPKeepAlive yes: مشخص می کند که آیا پیام های نگهدارنده TCP به دستگاه مشتری ارسال می شوند. این می تواند به سرور در هنگام بروز مشکل و قطع اتصال کمک کند. اگر این گزینه غیرفعال باشد ، در صورت بروز مشکل در شبکه ، اتصالات از بین نمی روند ، که می تواند خوب باشد ، اما همچنین بدان معنی است که ارتباط کاربران می تواند از هم قطع شود و همچنان به قفل کردن منابع ادامه دهند.
AcceptEnv LANG LC_ *: این گزینه به شما امکان می دهد متغیرهای محیطی خاصی را از دستگاه مشتری قبول کنید. در این مثال خاص ، ما متغیرهای زبان را می پذیریم ، که می تواند به بخش shell کمک کند که به درستی برای مشتری نمایش داده شود.
Subsystem sftp /usr/lib/openssh/sftp-serve: زیر سیستم های خارجی را که می توان با SSH استفاده کرد پیکربندی می کند. در این مثال سرور SFTP و مسیر اجرای آن مشخص شده است.
UsePAM yes: این مشخص می کند که PAM (ماژول های تأیید قابل اتصال) برای کمک به تأیید اعتبار کاربران در دسترس خواهد بود.
این امر به گزینه های پیش فرض فعال شده دستگاه Ubuntu 12.04 ما احتیاج دارد. در مرحله بعدی، بگذارید درباره برخی گزینه های دیگر صحبت کنیم که ممکن است برای تنظیم یا تغییر برای شما مفید باشد.
سایر گزینه های SSHD
چندین گزینه دیگر وجود دارد که می توانیم برای Daemon SSH خود تعیین کنیم. برخی از این موارد ممکن است فوراً برای شما مفید باشد ، در حالی که برخی دیگر فقط در شرایط خاص می توانند مفید باشند. ما در اینجا به همه موارد نمی پردازیم ، اما برخی از موارد مفید را مرور خواهیم کرد.
فیلتر کاربری و گروهی
برخی گزینه ها به شما امکان می دهند دقیقاً کنترل کنید که کاربران از چه طریق امکان ورود به سیستم از طریق SSH را دارند. این گزینه ها باید به صورت انحصاری در نظر گرفته شوند. به عنوان مثال ، گزینه AllowUsers به ​​این معنی است که از دسترسی سایر کاربران جلوگیری می شود.
AllowGroups: این گزینه به شما امکان می دهد نام گروه ها را روی سرور مشخص کنید. فقط کاربرانی که عضو یکی از این گروه ها هستند ، می توانند وارد سیستم شوند. این یک لیست سفید از گروه هایی ایجاد می کند که باید دسترسی داشته باشند.
AllowUsers: مشابه گزینه فوق است ، اما کاربران خاصی را که مجاز به ورود به سیستم هستند مشخص می کند. هر کاربر که در این لیست نباشد قادر به ورود به سیستم نخواهد بود. و به عنوان یک لیست سفید کاربری کار می کند.
DenyGroups: این گزینه یک لیست سیاه از گروههایی را ایجاد می کند که نباید اجازه ورود به سیستم را داشته باشند. کاربرانی که به این گروه ها تعلق دارند ، اجازه دسترسی ندارند.
DenyUsers: این یک لیست سیاه برای کاربران است. به طور خاص مشخص می کند که به کدام یک از کاربران امکان ورود به سیستم از طریق SSH داده نمی شود.
علاوه بر این ، برخی از گزینه های محدود کننده دیگر نیز در دسترس هستند. اینها را می توان در رابطه با هر یک از گزینه های فوق استفاده کرد:
Match: این گزینه امکان کنترل بسیار دقیق تر بر روی افرادی را دارد که تحت چه شرایطی می توانند تأیید کنند. این مجموعه گزینه های متفاوتی را مشخص می کند که هنگام اتصال یک کاربر یا گروه خاص باید از آنها استفاده شود. ما بعداً با جزئیات بیشتری در مورد این موضوع بحث خواهیم کرد.
RevokenKeys: این به شما امکان می دهد لیستی از کلیدهای عمومی ابطال شده را مشخص کنید. این کار از ورود کلیدهای ذکر شده برای ورود به سیستم جلوگیری می کند.
گزینه های متفرقه
گزینه هایی وجود دارد که می توانیم از آنها استفاده کنیم تا پیکربندی کنیم چه ترافیک شبکه ای را Daemon SSH به آن توجه خواهد کرد:
AddressFamily: این گزینه مشخص می کند که چه نوع آدرس هایی را انتخاب می کنید که اتصالات آن ها را بپذیرید. به طور پیش فرض ، مقدار “هر” است ، اما می توانید “inet” را برای آدرسهای IPv4 یا “inet6” را برای آدرسهای IPv6 قرار دهید.
ListenAddress: این گزینه به شما امکان می دهد تا به Daemon SSH بگویید که در یک آدرس و پورت خاص گوش کند. Daemon به طور پیش فرض تمام آدرسهایی را که برای این دستگاه پیکربندی شده است گوش می دهد.
انواع دیگر گزینه هایی که در دسترس هستند عبارتند از مواردی که برای تنظیم تأیید هویت مبتنی بر گواهینامه ، گزینه های محدود کننده اتصال مانند ClientAliveCountMax و ClientAliveInterval و گزینه هایی مانند ChrootDirectory استفاده می شود ، که می تواند برای قفل کردن ورود به سیستم کاربر به یک فضای خاص و محیط از پیش تنظیم شده Chroot استفاده شود. .
محدود کردن ورود به سیستم کاربر
ما در بالا به برخی از ابزارهایی که شما باید دسترسی کاربران و گروه ها را محدود کنید ، اشاره کردیم. بیایید کمی با جزئیات بیشتر بحث کنیم.
ابتدایی ترین دستور برای استفاده از این موارد چیزی شبیه به زیر است:
AllowUsers demouser fakeuser madeupuser

همانطور که مشاهده می کنید، ما می توانیم کاربرهای مختلفی را از هم جدا کنیم که در هر یک از این دستورالعمل ها قرار دارند.
ما همچنین می توانیم از wild cards استفاده کرده و ورودی ها را نفی کنیم. به عنوان مثال ، اگر می خواستیم به همه کاربرها به جز “جان” اجازه ورود به سیستم بدهیم ، می توانیم چیزی شبیه به این را امتحان کنیم:
AllowUsers * !john
این نمونه خاص احتمالاً با خط DenyUsers بهتر بیان می شود:

DenyUsers john
ما همچنین می توانیم از علامت ? برای مطابقت دقیق با یک حرف استفاده کنیم، به عنوان مثال میتوانیم از دستور زیر استفاده کنیم:

AllowUsers ?im

این کار اجازه می دهد تا از حساب هایی مانند “tim” ، “jim” یا “vim” وارد شوید.
با این حال ما می توانیم مشخص تر شویم. در هر دو مشخصات کاربر ، می توانیم از فرم کاربر user@hostname استفاده کنیم تا ورود به مکانهای منبع خاص مشتری محدود شود. به عنوان مثال ، شما می توانید چیزی مانند دستور زیر را تایپ کنید:
AllowUsers demouser@host1.com fakeuser

این کار باعث می شود “fakeuser” از هرجای دیگری وارد سیستم شود ، اما فقط به “demouser” اجازه می دهد تا از یک هاست مشخص وارد شود.
ما همچنین می توانیم دسترسی را به صورت میزبان به میزبان در خارج از فایل sshd_config از طریق بسته های TCP محدود کنیم. این از طریق فایل های /etc/hosts.allow و /etc/hosts.deny پیکربندی میشود.
به عنوان مثال ، ما می توانیم دسترسی را به طور خاص بر اساس ترافیک SSH با اضافه کردن خط هایی مانند زیر به فایل hosts.allow محدود کنیم:
sshd: .example.com

با فرض اینکه ما در فایل hosts.deny یک خط همراه داریم که به صورت زیر است:
sshd: ALL
این کار ورود به سیستم را فقط برای افرادی که از example.com یا یک زیر دامنه وارد می شوند محدود می کند.
استفاده از گزینه های مطابقت برای اضافه کردن استثنائات
ما می توانیم با استفاده از گزینه های “match” گزینه های خود را حتی بیشتر کنترل کنیم. گزینه های مطابقت با مشخص کردن الگوی معیاری کار میکنند که تصمیم می گیرند که گزینه های زیر استفاده خواهد شد یا خیر.
ما یک مطابقت را با استفاده از گزینه Match و سپس مشخص کردن جفت های معیاری با ارزش کلیدی شروع می کنیم. کلیدهای موجود “کاربر” ، “گروه” ، “میزبان” و “آدرس” هستند. ما می توانیم معیارها را با فاصله جدا کنیم و الگوها (user1، user2) را با کاما از هم جدا کنیم. ما همچنین می توانیم از wild cards و خنثی سازی استفاده کنیم:
Match User !demouser,!fakeuser Group sshusers Host *.example.com

خط بالا فقط در صورتی مطابقت دارد که کاربر demouser یا fakeuser نباشد ، در صورتی که کاربر عضو گروه sshusers باشد و در صورت اتصال آن از example.com یا یک زیر دامنه استفاده کند.
معیارهای “آدرس” می توانند از نماد net Cask CIDR استفاده کنند.
گزینه هایی که از مشخصات مطابقت پیروی می کنند بصورت مشروط اعمال می شوند. دامنه این گزینه های شرطی تا پایان پرونده یا مشخصات مطابقت بعدی است. به همین دلیل توصیه می شود مقادیر پیش فرض خود را در بالای فایل قرار دهید و استثنائات خود را در انتهای آن قرار دهید.

به دلیل این بلوک شرطی ، گزینه های موجود تحت مطابقت اغلب بیان میکنند که فقط در انطباق فوق اعمال می شوند. به عنوان مثال ، شرط فوق می تواند بلوکی مانند این تحت آن داشته باشد:
Match User !demouser,!fakeuser Group sshusers Host *.example.com
AuthorizedKeysFile /sshusers/keys/%u
PasswordAuthentication yes
X11Forwarding
X11DisplayOffset 15

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

برای دیدن لیست گزینه های موجود ، بخش “مطابقت” را جستجو کنید.
نتیجه
همانطور که مشاهده می کنید ، می توانید مقادیر زیادی را در سمت سرور SSH تنظیم کنید که در توانایی کاربران برای ورود به سیستم و کیفیت تجربه آنها تأثیر می گذارد. اطمینان حاصل کنید که تغییرات خود را قبل از اجرای مقیاس گسترده با دقت آزمایش کنید تا خطاها را پیدا کنید و اطمینان حاصل کنید که محدودیت های شما به طور تصادفی روی تعداد کمی از کاربران یا تعداد خیلی زیادی تأثیر نمگذارد.
آشنایی با فایل / etc / ssh / sshd_config اولین قدم بزرگ در جهت درک چگونگی کنترل دقیق دسترسی به سرور شماست. و یک مهارت مهم برای هر مدیر سیستم لینوکس میباشد.

 

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

نحوه نصب 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 تنظیم کرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

 

کلمات کلیدی خرید سرور

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

  • behnam gol mohamadi
  • ۰
  • ۰

مقدمه
WordPress یک سیستم مدیریت محتوای منبع باز (CMS) است. WordPress محبوب ترین CMS در جهان است که به شما امکان می دهد تا وبلاگ ها و وب سایت هایی را فراتر از پایگاه داده MySQL تنظیم کنید ، از PHP برای اجرای اسکریپت ها و پردازش محتوای پویا استفاده کنید.
OpenLiteSpeed ​​ یک سرور وب منبع باز بهینه شده است که می توانید از آن برای مدیریت و سرویس وب سایت ها استفاده کنید. OpenLiteSpeed ​​ دارای برخی ویژگی های مفید است که آن را به گزینه ای مناسب برای بسیاری از نصب ها تبدیل می کند: قوانین بازنویسی سازگار با Apache، یک رابط کاربری مدیریت مبتنی بر وب و پردازش PHP سفارشی برای بهینه سازی سرور.
این راهنما روند نصب و تنظیم یک نمونه وردپرس را در Ubuntu 18.04 با استفاده از وب سرور OpenLiteSpeed ​​طی خواهد کرد. از آنجا که هم WordPress و OpenLiteSpeed ​​می توانند از طریق یک مرورگر وب مدیریت شوند ، این پیکربندی برای کسانی که دسترسی منظم به بخش SSH ندارند یا کسانی که ممکن است احساس راحتی مدیریت یک سرور وب از طریق خط فرمان را نداشته باشند ، ایده آل است.
پیش نیازها
قبل از شروع این راهنما به موارد زیر نیاز خواهید داشت:
یک سرور که Ubuntu 18.04 را اجرا میکند با یک ادمین، یک کاربر غیر روت و فایروال با استفاده از ufw پیکربندی کرده است. برای تنظیم این محیط ، آموزش اولیه سرور ما را برای اوبونتو 18.04 دنبال کنید.
OpenLiteSpeed ​​ بر روی سرور شما نصب شده است. برای راهنمایی در مورد نصب و پیکربندی OpenLiteSpeed ​​به راهنمای ما در مورد نحوه نصب OpenLiteSpeed ​​وب سرور در اوبونتو 18.04 مراجعه کنید.
MySQL بر روی سرور شما نصب شده است. برای تنظیم این روش نحوه نصب MySQL را در اوبونتو 18.04 دنبال کنید.
مرحله 1 – ایجاد یک بانک اطلاعاتی و کاربر بانک اطلاعاتی برای وردپرس
WordPress از MySQL برای مدیریت و ذخیره اطلاعات سایت و کاربر استفاده می کند. شما قبلاً MySQL را نصب کرده اید ، اما به عنوان یک مرحله مقدماتی به ایجاد یک بانک اطلاعاتی و یک کاربر برای استفاده از وردپرس نیاز دارید.
برای شروع کار ، با استفاده از SSH به سرور خود وصل شوید:
ssh sammy @ your_server_IP
سپس وارد حساب ریشه MySQL شوید:

sudo mysql

توجه: اگر مرحله 3 را در پیش نیاز آموزش MySQL به پایان رسانده اید و کاربر root MySQL را برای تأیید اعتبار با افزونه mysql_native_password پیکربندی کرده اید ، باید دستور زیر را وارد کنید:
mysql -u root -p

سپس در صورت درخواست رمزعبور کاربر اصلی خود را وارد کنید.
از تبلیغ MySQL ، یک پایگاه داده با دستور زیر ایجاد کنید. در اینجا ، ما این دیتابیس را برای سادگی وردپرس نام می گذاریم ، اما شما می توانید آن را هرچه دوست دارید نامگذاری کنید:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
سپس ، یک کاربر ایجاد کرده و به آن امتیازات بانک اطلاعاتی که اخیراً ایجاد کرده اید بدهید. باز هم ، می توانید هر نامی را به این کاربر بدهید ، اما برای سادگی ما آن را wordpressuser می نامیم. همچنین ، حتماً گذرواژه را به یک رمز عبور قوی با انتخاب خود تغییر دهید:
GRANT ALL PRIVILEGES ON wordpress.* TO ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘password’;
سپس ، PRUSILEGES FLUSH را اجرا کنید که به سرور می گوید جداول اعطای امتیاز را مجدد لود کند و اعمال تغییرات جدید خود را اجرا کنید ،:
FLUSH PRIVILEGES;
پس از آن ، می توانید اعلان MySQL را ببندید:
exit
اکنون نصب MySQL خود برای کار با WordPress را انجام داده اید. در مرحله بعد چند افزونه PHP نصب خواهیم کرد.

مرحله 2 – نصب افزونه های اضافی PHP
در آموزش پیش نیاز OpenLiteSpeed ​​، بسته lsphp73 را نصب کردید. این مجموعه ای از PHP بهینه شده برای OpenLiteSpeed ​​ است که از LiteSpeed ​​SAPI برای ارتباط با برنامه های خارجی استفاده می کند. بسته به نیاز شما ، وردپرس ممکن است نیاز به سایر افزونه های PHP داشته باشد تا بتواند به دلخواه عمل کند.

برای نصب برخی افزونه های PHP که معمولاً با WordPress استفاده می شود ، دستور زیر را اجرا کنید:
sudo apt install lsphp73-common lsphp73-curl lsphp73-imagick lsphp73-imap lsphp73-json lsphp73-memcached lsphp73-mysql lsphp73-opcache lsphp73-redis
توجه: بسته های این دستور ممکن است تمام موارد استفاده را پوشش ندهد. برای یک لیست کامل از افزونه های PHP 7.3 موجود از مخزن LiteSpeed ​​که در آموزش پیش نیاز به سرور خود اضافه کرده اید ، به Wiki LiteSpeed ​​مراجعه کنید.
پس از این ، می توانید به سمت دانلود و تنظیم وردپرس در سرور خود بروید.
مرحله 3 – دانلود وردپرس
اکنون که نرم افزار سرور شما پیکربندی شده است ، می توانید WordPress را نصب و تنظیم کنید. به ویژه به دلایل امنیتی ، همیشه توصیه می شود که آخرین نسخه وردپرس را مستقیماً از سایت خودشان دریافت کنید.
به یک دیرکتوری قابل نوشتار بروید و سپس نسخه فشرده شده را با تایپ کردن دستور زیر دانلود کنید:
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
برای ایجاد ساختار دایرکتوری وردپرس ، فایل فشرده شده را استخراج کنید:
tar xzvf latest.tar.gz
ما این پرونده ها را لحظه به لحظه به ریشه سند منتقل خواهیم کرد ، اما ابتدا چند فایل و فهرست را ایجاد خواهیم کرد که نصب وردپرس به آنها بستگی دارد.
OpenLiteSpeed ​​ از فایل های .htaccess پشتیبانی می کند. این برای اهداف ما مهم است ، از آنجا که وردپرس
از فایلهای .htaccess برای ایجاد و مدیریت پرونده های ثابت استفاده می کند.
یک فایل .htaccess ساختگی اضافه کنید تا بعداً برای استفاده وردپرس در دسترس باشد:
touch /tmp/wordpress/.htaccess

سپس ، فایل پیکربندی نمونه را بر روی نام خانوادگی که وردپرس میخواند، کپی کنید:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
علاوه بر این ، دایرکتوری upgrade را ایجاد کنید تا وردپرس هنگام تلاش برای انجام این کار به تنهایی و به دنبال بروزرسانی در نرم افزار خود ، به مشکلات مربوط به مجوزها برخورد نکند:

mkdir /tmp/wordpress/wp-content/upgrade
سپس کل محتوای فهرست را در روت سند خود کپی کنید.OpenLiteSpeed ​​ با یک میزبان مجازی پیش فرض به نام Example در دیرکتوری / usr / local / lsws / قرار دارد. روت سند برای میزبان مجازی Example زیرمجموعه html است:
sudo cp -a /tmp/wordpress/. /usr/local/lsws/Example/html/wordpress
توجه کنید که این دستور شامل یک نقطه در انتهای فهرست منبع است تا نشان دهد که همه چیزهای داخل دیرکتوری باید کپی شوند ، از جمله پرونده های مخفی (مانند پرونده .htaccess که ایجاد کردید):
با این کار ، شما وردپرس را با موفقیت روی سرور وب خود نصب کرده اید و برخی از مراحل اولیه تنظیمات را انجام داده اید. در مرحله بعد ، ما تغییرات دیگری را در پیکربندی انجام خواهیم داد که امتیازات وردپرس را برای عملکرد ایمن و دسترسی به بانک اطلاعاتی MySQL و حساب کاربری که قبلاً ایجاد کرده اید به شما می دهد.
مرحله 4 – پیکربندی دایرکتوری وردپرس
قبل از اینکه بتوانیم فرآیند راه اندازی مبتنی بر وب را برای وردپرس طی کنیم ، باید برخی موارد را در دایرکتوری وردپرس خود تنظیم کنیم.
با دادن مالکیت کلیه فایل های موجود در دیرکتوری به کاربر nobody و گروه nogroup ، که وب سرور OpenLiteSpeed ​​بصورت پیش فرض اجرا می کند ، شروع کنید. دستور chown زیر به OpenLiteSpeed ​​امکان خواندن و نوشتن فایل ها در دایرکتوری وردپرس را اعطا می کند ، و این امکان را برای سرویس دهی به وب سایت و انجام به روز رسانی های خودکار فراهم می کند:
sudo chown -R nobody:nogroup /usr/local/lsws/Example/html/wordpress
برای تنظیم مجوزهای صحیح در دایرکتوری ها و فایل های وردپرس ، دو دستور find اجرا کنید:
sudo find /usr/local/lsws/Example/html/wordpress/ -type d -exec chmod 750 {} \;
sudo find /usr/local/lsws/Example/html/wordpress/ -type f -exec chmod 640 {} \;
اینها باید مجوزهای معقولی برای شروع باشد ، اگرچه برخی از افزونه ها و رویه ها ممکن است نیاز به ترفندهای اضافی داشته باشند.
پس از این ، شما باید تغییراتی در پرونده اصلی پیکربندی WordPress انجام دهید.
با باز کردن فایل ، اولین هدف شما تنظیم برخی کلیدهای مخفی برای ایجاد امنیت برای نصب شما خواهد بود. WordPress یک مولد مطمئن برای این مقادیر فراهم می کند به طوری که دیگر نیازی به تلاش برای دستیابی به مقادیر خوب از خودتان نیست. اینها فقط به صورت داخلی استفاده می شود ، بنابراین به مقادیر پیچیده و ایمن در اینجا آسیب نمی رساند.
برای گرفتن مقادیر ایمن از مولد کلید مخفی WordPress ، تایپ کنید:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
شما به مقادیر منحصر به فردی بر می گردید که چیزی شبیه به این است:

هشدار! مهم است که هر بار درخواست مقادیر منحصر به فرد کنید. مقادیر نشان داده شده در زیر را کپی نکنید!

خروجی
define(‘AUTH_KEY’, ‘1jl/vqfs define(‘SECURE_AUTH_KEY’, ‘E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3’);
define(‘LOGGED_IN_KEY’, ‘W(50,{W^,OPB%PB define(‘NONCE_KEY’, ‘ll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g’); define(‘AUTH_SALT’, ‘koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-‘); define(‘SECURE_AUTH_SALT’, ‘p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY’); define(‘LOGGED_IN_SALT’, ‘i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|’); define(‘NONCE_SALT’, ‘Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%’); اینها خطوط پیکربندی هستند که شما برای تنظیم کلیدهای ایمن مستقیماً در پرونده پیکربندی خود پیست میکنید. خروجی دریافت شده را در کلیپ بورد خود کپی کنید ، و سپس پرونده پیکربندی WordPress واقع در روت سند خود را باز کنید: sudo nano /usr/local/lsws/Example/html/wordpress/wp-config.php بخشی که حاوی مقادیر ساختگی برای آن تنظیمات است را پیدا کنید. چیزی شبیه به این خواهد بود: /var/www/wordpress/wp-config.php . . . define(‘AUTH_KEY’, ‘put your unique phrase here’); define(‘SECURE_AUTH_KEY’, ‘put your unique phrase here’); define(‘LOGGED_IN_KEY’, ‘put your unique phrase here’); define(‘NONCE_KEY’, ‘put your unique phrase here’); define(‘AUTH_SALT’, ‘put your unique phrase here’); define(‘SECURE_AUTH_SALT’, ‘put your unique phrase here’); define(‘LOGGED_IN_SALT’, ‘put your unique phrase here’); define(‘NONCE_SALT’, ‘put your unique phrase here’); این سطرها را حذف کرده و در مقادیری که از خط فرمان کپی کرده اید پیست کنید: /var/www/wordpress/wp-config.php . . . define(‘AUTH_KEY’, ‘VALUES COPIED FROM THE COMMAND LINE’); define(‘SECURE_AUTH_KEY’, ‘VALUES COPIED FROM THE COMMAND LINE’); define(‘LOGGED_IN_KEY’, ‘VALUES COPIED FROM THE COMMAND LINE’); define(‘NONCE_KEY’, ‘VALUES COPIED FROM THE COMMAND LINE’); define(‘AUTH_SALT’, ‘VALUES COPIED FROM THE COMMAND LINE’); define(‘SECURE_AUTH_SALT’, ‘VALUES COPIED FROM THE COMMAND LINE’); define(‘LOGGED_IN_SALT’, ‘VALUES COPIED FROM THE COMMAND LINE’); define(‘NONCE_SALT’, ‘VALUES COPIED FROM THE COMMAND LINE’); . . . سپس ، تنظیمات اتصال دیتابیس را در بالای فایل اصلاح کنید. شما باید نام بانک اطلاعاتی ، کاربر پایگاه داده و رمز عبور مرتبط با آن را در MySQL تنظیم کنید. تغییر دیگری که شما باید ایجاد کنید این است که روشی را که وردپرس برای نوشتن در سیستم فایل ها باید استفاده کند تنظیم کنید. از آنجایی که به ما اجازه سرور وب داده شده است که در هر جا لازم است بنویسیم، می توانیم به طور صریح روش سیستم فایل را به direct تنظیم کنیم. عدم تنظیم این با تنظیمات فعلی ما منجر به اعلان وردپرس برای اعتبار FTP در هنگام برخی عملکردهای خاص میشود. این تنظیمات می تواند در زیر تنظیمات اتصال دیتابیس یا هر جای دیگر فایل اضافه شود: /var/www/wordpress/wp-config.php . . . define(‘DB_NAME’, ‘wordpress’); /** MySQL database username */ define(‘DB_USER’, ‘wordpressuser’); /** MySQL database password */ define(‘DB_PASSWORD’, ‘password’); . . . define(‘FS_METHOD’, ‘direct’); هنگامی که کارتان تمام شد، فایل را ذخیره کنید و ببندید. در این مرحله ، وردپرس کاملاً در سیستم شما پیکربندی نشده است ، زیرا هنوز لازم است قبل از شروع انتشار مطالب ، چند کار نهایی را اعمال کنید. برای انجام این کار ، ابتدا لازم است چند تغییر تنظیمات در نصب OpenLiteSpeed خود اعمال کنید. مرحله 6 – پیکربندی OpenLiteSpeed در حال حاضر ، شما WordPress را در سرور Ubuntu خود نصب کرده اید ، اما نصب OpenLiteSpeed ​​شما هنوز برای ارائه آن تنظیم نشده است. در این مرحله ، ما به رابط اجرایی OpenLiteSpeed ​​دسترسی خواهیم داشت و چند تغییر در پیکربندی سرور شما ایجاد می کنیم. در مرورگر وب مورد نظر خود، به رابط اداری OpenLiteSpeed ​​بروید. می توانید این را با وارد کردن آدرس IP عمومی سرور خود یا نام دامنه مرتبط با آن ، و به دنبال آن: 7080 در نوار آدرس مرورگر خود بیابید: https: // server_domain_or_IP: 7080 در آنجا به شما یک صفحه ورود به سیستم ارائه می شود. نام کاربری و رمز عبوری را که در آموزش پیش نیاز OpenLiteSpeed ​​تعریف کرده اید وارد کنید: از کنسول OpenLiteSpeed ​​، در منوی نوار کناری سمت چپ ، بر روی تنظیمات سرور کلیک کنید. سپس به سربرگ External App بروید ، ردیف برنامه LiteSpeed ​​SAPI را پیدا کنید و بر روی دکمه Edit آن کلیک کنید: به یاد بیاورید که در پیش نیاز آموزش OpenLiteSpeed ​​، بسته lsphp73 را نصب کردید ، تلفیقی از PHP بهینه سازی شده برای کار با OpenLiteSpeed ​​از طریق LiteSpeed ​​SAPI. با این حال ، تنظیمات پیش فرض در صفحه External App به lsphp اشاره دارد نه lsphp73. به همین دلیل ، نصب OpenLiteSpeed ​​شما قادر به اجرای صحیح اسکریپت های PHP نیست. برای تصحیح این امر ، قسمت Name را به lsphp73 تغییر دهید ، قسمت آدرس را به uds: //tmp/lshttpd/lsphp73.sock تغییر دهید و قسمت Command را به SERVER_ROOT / lsphp73 / bin / lsphp: پس از ایجاد آن تغییرات ، روی آیکون save در گوشه سمت راست بالای کادر LiteSpeed ​​SAPI App کلیک کنید. سپس، در منوی سمت چپ روی Virtual Hosts کلیک کنید. در صفحه Virtual Hosts میزبان مجازی مورد نظر خود را پیدا کنید و بر روی نماد View آن کلیک کنید. در اینجا ، ما از هاست مجازی مثال پیش فرض استفاده خواهیم کرد: به سربرگ General هاست مجازی بروید. در آنجا بخش General را پیدا کنید و روی دکمه edit آن کلیک کنید: OpenLiteSpeed ​​ برای ارائه خدمات به دنبال محتویات Document Root میگردد. از آنجا که تمام مطالب و فایل های وردپرس شما در دیرکتوری وردپرس که قبلا ایجاد شده ذخیره می شوند، قسمت Document Root را به روز کنید تا به آن دیرکتوری راهنمایی کنید. برای انجام این کار ، تنها کاری که باید انجام دهید اضافه کردن وردپرس / به پایان مقدار پیش فرض است: برای ذخیره این تغییر، روی آیکون save کلیک کنید. در مرحله بعد ، باید پرونده های index.php را فعال کنید تا از آنها برای پردازش درخواست هایی که توسط پرونده های استاتیک مدیریت نمی شوند ، استفاده شود. با این کار منطق اصلی وردپرس به درستی کار می کند. در حالی که هنوز در تب General هستید، برای یافتن بخش Index Files به پایین بروید و بر روی نماد edit آن کلیک کنید: در قسمت Index Files ، index.html را با index.php پیش ببرید. با قرار دادن index.php قبل از index.html ، به فایلهای شاخص PHP اجازه می دهید که اولویت داشته باشند. پس از به روزرسانی این قسمت ، مانند عکس خواهد بود قبل از ادامه ، روی آیکون save کلیک کنید. در مرحله بعد ، به سربرگ Rewrite هاست مجازی بروید. بخش Rewrite Control را پیدا کنید و دکمه ویرایش را فشار دهید: با کلیک بر روی دکمه های شعاعی مربوطه ، هر دو گزینه Enable Rewrite و Auto Load را از گزینه های .htaccess روی Yes بگذارید. پیکربندی دستورالعمل های بازنویسی در این روش به شما امکان می دهد از نصب مجدد لینک ها در نصب وردپرس خود استفاده کنید: بعد از انجام تغییرات ، روی ذخیره کلیک کنید. هاست مجازی پیش فرض که همراه با نصب OpenLiteSpeed ​​است شامل برخی از نواحی محافظت شده با رمز عبور برای نمایش ویژگی های تأیید اعتبار کاربر OpenLiteSpeed. است. WordPress شامل مکانیزم های تأیید اعتبار خاص خود است و ما از هویت مبتنی بر پرونده موجود در OpenLiteSpeed ​​استفاده نخواهیم کرد. برای به حداقل رساندن بخش های پیکربندی انحرافی فعال در نصب وردپرس ما باید از این موارد خلاص شویم. ابتدا بر روی زبانه Security کلیک کرده و سپس بر روی دکمه Delete کنار SampleProtectedArea در جدول Realms List کلیک کنید: از شما خواسته می شود حذف را تأیید کنید. برای ادامه بر روی delete کلیک کنید در مرحله بعد ، روی سربرگ Context کلیک کنید. در Context List ، محتوای /protected/ را که با قلمرو امنیتی که اخیراً حذف کردید مرتبط بود را حذف کنید: مجدداً باید با کلیک کردن روی delete ، حذف را تأیید کنید. شما می توانید با اطمینان با استفاده از همان تکنیک ، همه متن های دیگر را پاک کنید ، زیرا ما به آنها احتیاج نخواهیم داشت. ما به طور خاص محتوای /protected/ متن را حذف کردیم زیرا در غیر این صورت خطایی به دلیل حذف قلمرو امنیت مرتبط با آن ایجاد می شود (که ما فقط در تب Security حذف کرده ایم.) پس از آن ، در گوشه سمت راست بالای کنسول OpenLiteSpeed ​​، آیکون Graceful Restart را فشار دهید. با این کار سرور OpenLiteSpeed ​​ دوباره راه اندازی می شود و باعث می شود تغییراتی که ایجاد کرده اید به مرحله اجرا برسد: با این کار ، سرور OpenLiteSpe شما کاملاً پیکربندی شده است. اکنون آماده تنظیم وردپرس در مرورگر خود هستید. مرحله 7 – تکمیل نصب از طریق واسط وردپرس اکنون که پیکربندی سرور کامل شد ، می توانیم نصب را از طریق رابط وب انجام دهیم. در مرورگر وب خود ، به نام دامنه سرور یا آدرس IP عمومی خود بروید: http: // server_domain_or_IP زبانی را که می خواهید استفاده کنید انتخاب کنید: در مرحله بعد به صفحه اصلی تنظیمات خواهید رسید. یک نام برای سایت وردپرس خود انتخاب کنید و یک نام کاربری را انتخاب کنید (توصیه می شود برای اهداف امنیتی چیزی مانند “ادمین” انتخاب نکنید). رمزعبور قوی به صورت خودکار ایجاد می شود. این رمز عبور را ذخیره کنید یا یک رمزعبور قوی دیگر را انتخاب کنید. آدرس ایمیل خود را وارد کنید و انتخاب کنید آیا می خواهید موتورهای جستجو را از ایندکس کردن سایت خود منع کنید: پس از آماده شدن ، روی دکمه Install WordPress کلیک کنید. شما به صفحه ای منتهی می شوید که وارد سیستم شوید: پس از ورود به سیستم ، شما به داشبورد مدیریت وردپرس منتقل می شوید: از داشبورد ، می توانید تغییراتی در تم سایت خود و انتشار محتوای آن ایجاد کنید. نتیجه با تکمیل این راهنما ، یک نمونه وردپرس را روی سرور اوبونتو 18.04 که OpenLiteSpeed ​​را اجرا می کند ، نصب و پیکربندی کردید. برخی مراحل متداول بعدی باید برای تنظیمات پیوند مجدد پست های شما انتخاب شوند (که می توانید در Settings > Permalinksپیدا کنید) یا انتخاب یک تم جدید (در Appearance > Themes). اگر این اولین باری است که از WordPress استفاده می کنید ، کمی رابط را جستجو کنید تا با CMS جدید خود آشنا شوید.
برای افزایش امنیت سایت جدید وردپرس خود ، توصیه می کنیم آن را پیکربندی کنید تا با SSL کار کند تا بتواند از طریق HTTPS محتوا را ارائه دهد. برای نصب LetsEncrypt و تنظیم این آموزش ، از اسناد OpenLiteSpeed ​​بازدید کنید.

 

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

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

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

نحوه استفاده از Cron برای خودکارسازی کارها در اوبونتو 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 تنظیم کرد

نحوه نصب Apache Kafka در Debian 10

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

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

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

Apache Kafka یک کارگزار پیام توزیع شده محبوب است که برای مدیریت حجم زیادی از داده های زمان-واقعی طراحی شده است. خوشه کافکا بسیار مقیاس پذیر و دارای تحمل خطا است و همچنین نسبت به سایر واسطه های پیام مانند ActiveMQ و RabbitMQ از توان بسیار بالاتری برخوردار است. اگرچه معمولاً از آن به عنوان یک سیستم پیام رسان انتشار / اشتراک استفاده می شود ، بسیاری از سازمان ها نیز از آن برای جمع آوری ورود به سیستم استفاده می کنند زیرا فضای ذخیره سازی مداوم را برای پیام های منتشر شده ارائه می دهد.
یک سیستم پیام رسانی انتشار / اشتراک به یک یا چند تولید کننده اجازه می دهد پیام ها را بدون در نظر گرفتن تعداد مصرف کنندگان یا نحوه پردازش پیام ها منتشر کنند. متقاضیان دارای اشتراک در مورد به روزرسانی ها و ایجاد پیام های جدید بطور خودکار مطلع می شوند. این سیستم نسبت به سیستم هایی که مشتری ها بطور دوره ای در مورد آن نظرسنجی می شوند تا مشخص شود که آیا پیام های جدید در دسترس است یا خیر، بسیار کارآمدتر و مقیاس پذیر است.
در این آموزش ، Apache Kafka 2.1.1 را به صورت ایمن روی سرور Debian 10 نصب و پیکربندی می کنید ، سپس با تولید و استفاده از یک پیام Hello World راه اندازی خود را تست می کنید. سپس می توانید KafkaT را به صورت اختیاری برای نظارت بر کافکا نصب کنید و یک خوشه چند گره کافکا را تنظیم کنید.
پیش نیازها
برای دنبال کردن ، به موارد زیر نیاز خواهید داشت:
یک سرور Debian 10 با حداقل 4 گیگابایت رم و یک کاربر غیر ریشه با امتیازات سودو. در صورتی که کاربر غیر ریشه تنظیم نکرده اید، مراحل ذکر شده در راهنمای راه اندازی سرور اولیه برای Debian 10 را دنبال کنید.
OpenJDK 11 روی سرور شما نصب شده است. برای نصب این نسخه ، دستورالعمل های نصب Java را با Apt در Debian 10 در مورد نصب نسخه های خاص OpenJDK دنبال کنید. کافکا در جاوا نوشته شده است ، بنابراین به JVM نیاز دارد.
توجه: نصب های بدون رم 4 گیگابایتی ممکن است باعث شود سرویس کافکا از کار بیفتد، در حالی که دستگاه مجازی جاوا (JVM) در هنگام راه اندازی یک استثناء Out Of Memory را به همراه داشته باشد.
مرحله 1 – ایجاد کاربر برای کافکا
از آنجا که کافکا می تواند درخواست ها را از طریق شبکه انجام دهد ، بهترین کار برای ایجاد یک کاربر اختصاصی برای آن است. در صورت به خطر افتادن سرور کافکا ، این کار آسیب به دستگاه Debian شما را به حداقل می رساند. در این مرحله شما کاربر اختصاصی کافکا را ایجاد خواهید کرد.
به عنوان کاربر sudo غیر ریشه خود وارد شوید ، با دستور useradd کاربری بنام kafka بسازید:
sudo useradd kafka -m
فلگ -m تضمین می کند که یک هوم دیرکتوری برای کاربر ایجاد می شود. این هوم دیرکتوری، / home / kafka ، بعداً به عنوان دیرکتوری فضای کاری شما برای اجرای دستورات عمل خواهد کرد.

رمز عبور را با استفاده از passwd تنظیم کنید:
sudo passwd kafka
رمز عبوری را که می خواهید برای این کاربر استفاده کنید وارد کنید.
در مرحله بعدی ، کاربر کافکا را با دستور adduser به گروه سودو اضافه کنید ، تا امتیازات لازم برای نصب وابستگی کافکا را داشته باشد:
sudo adduser kafka sudo
کاربر kafka شما اکنون آماده است. با استفاده از su وارد این حساب شوید:
su -l kafka
اکنون که کاربر اختصاصی کافکا را ایجاد کرده اید ، می توانید به دانلود و استخراج باینری های کافکا بروید.
مرحله 2 – دانلود و استخراج باینری های کافکا
در این مرحله، باینری های کافکا را در پوشه های اختصاصی در دیرکتوری هوم کاربر kafka خود دانلود و اکسترکت می کنید.
برای شروع ، دایرکتوری را در / home / kafka با نام Downloads برای ذخیره دانلودهای خود ایجاد کنید:
mkdir ~/Downloads
در مرحله بعدی، حلقه را با استفاده از apt-get نصب کنید تا بتوانید فایلهای از راه دور را دانلود کنید:
sudo apt-get update && sudo apt-get install curl
در صورت درخواست، Y را تایپ کنید تا دانلود curl را تأیید کنید.
پس از نصب Curl ، از آن برای دانلود باینری های کافکا استفاده کنید:
curl “https://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz” -o ~/Downloads/kafka.tgz
دایرکتوری به نام kafka ایجاد کنید و به این فهرست تغییر دهید. این دایرکتوری پایه نصب کافکا خواهد بود:
mkdir ~/kafka && cd ~/kafka
با استفاده از دستور tar ، آرشیوی را که دانلود کرده اید استخراج کنید:
tar -xvzf ~/Downloads/kafka.tgz –strip 1
شما فلگ –strip 1 را برای اطمینان از استخراج محتوای بایگانی در ~ / kafka / و نه در دیرکتوری دیگری در داخل آن ، مانند ~ / kafka / kafka_2.12-2.1.1 / مشخص کرده اید.
اکنون که باینری ها را با موفقیت دانلود و استخراج کرده اید ، می توانید پیکربندی کافکا را انجام دهید تا امکان حذف موضوع فراهم شود.
مرحله 3 – پیکربندی سرور کافکا
رفتار پیش فرض کافکا به ما اجازه نمی دهد تا عنوان، دسته بندی، گروه یا نام فید را برای انتشار پیام ها حذف کنیم. برای تغییر این، پرونده پیکربندی را ویرایش می کنید.
گزینه های پیکربندی کافکا در server.properties مشخص شده است. این پرونده را با nano یا ویرایشگر مورد علاقه خود باز کنید:
nano ~/kafka/config/server.properties
بیایید تنظیماتی را اضافه کنیم که به ما امکان حذف عناوین کافکا را می دهد. خط هایلایت شده زیر را در زیر فایل اضافه کنید:
~/kafka/config/server.properties

group.initial.rebalance.delay.ms

delete.topic.enable = true

فایل را ذخیره کنید و از nano خارج شوید. اکنون که Kafka را پیکربندی کرده اید، می توانید برای راه اندازی و فعال کردن کافکا در هنگام راه اندازی فایل های واحد systemed ایجاد کنید.
مرحله 4 – ایجاد فایلهای واحد سیستمی و راه اندازی سرور کافکا
در این بخش فایلهای واحد سیستمی برای سرویس کافکا ایجاد می کنید. این به شما کمک می کند تا خدمات متداول مانند شروع، متوقف کردن و راه اندازی مجدد کافکا را به روشی سازگار با سایر سرویس های لینوکس انجام دهید.
ZooKeeper سرویسی است که کافکا برای مدیریت وضعیت و تنظیمات خوشه ای از آن استفاده می کند. معمولاً در سیستم های توزیع شده به عنوان یک جزء اساسی مورد استفاده قرار می گیرد. در این آموزش از Zookeeper برای مدیریت این جنبه های کافکا استفاده خواهید کرد. اگر تمایل دارید اطلاعات بیشتری در مورد آن بدانید ، به مطالب ZooKeeper رسمی ما مراجعه کنید.
ابتدا فایل واحد را برای zookeeper ایجاد کنید:
sudo nano /etc/systemd/system/zookeeper.service
تعریف واحد زیر را در پرونده وارد کنید:
/etc/systemd/system/zookeeper.service
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

بخش [Unit] مشخص می کند که ZooKeeper به شبکه نیاز دارد و سیستم فایل قبل از شروع آن آماده است.
در بخش [Service] مشخص شده است که systemd برای شروع و متوقف کردن سرویس باید از پرونده های zookeeper-server-start.sh و zookeeper-server-stop.sh استفاده کند. همچنین مشخص می کند در صورت خارج شدن غیرطبیعی ، ZooKeeper باید به طور خودکار مجدداً راه اندازی شود.
در مرحله بعد، فایل سرویس systemd را برای kafka ایجاد کنید:
sudo nano /etc/systemd/system/kafka.service

تعریف واحد زیر را در پرونده وارد کنید:
/etc/systemd/system/kafka.service
[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c ‘/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1’
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

بخش [Unit] مشخص می کند که این فایل واحد به zookeeper.service بستگی دارد. این امر اطمینان می دهد که با شروع سرویس کافکا ، zookeeper به طور خودکار شروع می شود.
در بخش [Service] مشخص شده است که systemd باید برای شروع و توقف سرویس از فایلهای پوسته kafka-server-start.sh و kafka-server-stop.sh استفاده کند. همچنین مشخص می کند در صورت خارج شدن غیر عادی ، کافکا باید به طور خودکار مجدداً راه اندازی شود.
اکنون که واحدها تعریف شده اند ، کافکا را با دستور زیر شروع کنید:
sudo systemctl start kafka
برای اطمینان از شروع موفقیت آمیز سرور ، گزارش های ژورنال را برای واحد kafka بررسی کنید:
sudo journalctl -u kafka
خروجی مشابه موارد زیر را مشاهده خواهید کرد:
Mar 23 13:31:48 kafka systemd[1]: Started kafka.service.

اکنون یک سرور کافکا روی درگاه 9092 دارید که درگاه پیش فرض برای کافکا است.
شما سرویس kafka را شروع کرده اید ، اما اگر می خواهید سرور خود را دوباره راه اندازی کنید ، هنوز به طور خودکار شروع نمی شود. برای فعال کردن kafka در بوت سرور ، این سرور را اجرا کنید:
sudo systemctl enable kafka
اکنون که سرویس ها را شروع و فعال کرده اید ، زمان آن رسیده است که نصب را بررسی کنید.
مرحله 5 – تست نصب
بیایید پیام Hello World را منتشر و استفاده کنیم تا مطمئن شویم که سرور کافکا به درستی رفتار می کند. انتشار پیام در کافکا به موارد زیر بستگی دارد:
تهیه کننده، که امکان انتشار سوابق و داده ها به عناوین را فراهم می کند.
مصرف کننده، که پیام ها و داده ها را از عناوین می خواند.
ابتدا با تایپ کردن دستور زیر عنوانی به نام TutorialTopic ایجاد کنید:
~/kafka/bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic TutorialTopic
می توانید با استفاده از اسکریپت kafka-console-producer.sh یک تهیه کننده از خط فرمان ایجاد کنید. این تهیه کننده نام میزبان ، پورت و نام عنوان سرور کافکا را به عنوان آرگومان میشناسد.

رشته Hello, World را با تایپ کردن دستور زیر برای عنوان TutorialTopic منتشر کنید:
echo “Hello, World” | ~/kafka/bin/kafka-console-producer.sh –broker-list localhost:9092 –topic TutorialTopic > /dev/null
فلگ – broker-list لیست کارگزاران پیام برای ارسال پیام به آن ها که در این مورد localhost: 9092 است را تعیین می کند. –topic موضوع را به عنوان TutorialTopic تعیین می کند.
در مرحله بعد ، می توانید با استفاده از اسکریپت kafka-console-consumer.sh یک مصرف کننده کافکا ایجاد کنید. انتظار می رود نام میزبان و پورت سرور ZooKeeper و نام تاپیک به عنوان آرگومان باشد.
دستور زیر از پیام های TutorialTopic استفاده می کند. توجه داشته باشید که از فلگ –from-beginning استفاده کنید که امکان استفاده از پیام هایی را که قبل از شروع مصرف کننده منتشر شده است ، فراهم کند:
~/kafka/bin/kafka-console-consumer.sh –bootstrap-server `localhost:9092` –topic TutorialTopic –from-beginning
–bootstrap-server لیستی از ورودی ها به خوشه کافکا را ارائه می دهد. در این حالت ، از localhost استفاده می کنید: 9092.
Hello, World را در ترمینال خود مشاهده خواهید کرد:
خروجی
Hello, World

این اسکریپت همچنان اجرا می شود و منتظر انتشار پیام های بیشتری برای موضوع خواهد بود. با خیال راحت یک ترمینال جدید باز کنید و یک تهیه کننده راه اندازی کنید تا چند پیام دیگر انتشار دهد. شما باید همه آنها را در خروجی مصرف کننده ببینید. اگر می خواهید در مورد نحوه استفاده از کافکا اطلاعات بیشتری کسب کنید ، به اطلاعات موجود در لینک کافکا رسمی مراجعه کنید.
وقتی آزمایش انجام شد ، CTRL + C را فشار دهید تا اسکریپت مصرف کننده متوقف شود. اکنون که نصب را آزمایش کرده اید ، می توانید برای اجرای بهتر خوشه کافکا ، به نصب KafkaT بروید.
مرحله 6 – نصب KafkaT (اختیاری)
KafkaT ابزاری از Airbnb است که مشاهده جزئیات مربوط به خوشه کافکا و انجام برخی کارهای اجرایی از خط فرمان را برای شما آسانتر می کند. از آنجا که این یک Ruby gem است ، برای استفاده از آن به Ruby نیاز خواهید داشت. برای ساختن سایر gemها که به آن بستگی دارد ، به بسته build-essential نیز احتیاج خواهید داشت. آنها را با استفاده از apt نصب کنید:
sudo apt install ruby ruby-dev build-essential
اکنون می توانید KafkaT را با استفاده از دستور gem نصب کنید:
sudo CFLAGS=-Wno-error=format-overflow gem install kafkat
گزینه CFLAGS = -Wno-error = format-overflow هشدارهای فرمت بیش از حد را غیرفعال می کند و برای gem ZooKeeper ، که وابسته به KafkaT است ، لازم میباشد.

KafkaT از .kafkatcfg به عنوان فایل پیکربندی برای تعیین نصب و ورود به فهرست سرورهای کافکا استفاده می کند. همچنین باید دارای ورودی باشد که KafkaT را به عنوان مثال ZooKeeper به شما نشان دهد.
یک فایل جدید با نام .kafkatcfg ایجاد کنید:
nano ~/.kafkatcfg
خطوط زیر را اضافه کنید تا اطلاعات لازم در مورد سرور کافکا و مثال Zookeeper خود را مشخص کنید:
~/.kafkatcfg
{
“kafka_path”: “~/kafka”,
“log_path”: “/tmp/kafka-logs”,
“zk_path”: “localhost:2181”
}

اکنون آماده استفاده از کافکا هستید. برای شروع ، در اینجا نحوه استفاده از آن برای مشاهده جزئیات مربوط به همه پارتیشن های کافکا آورده شده است:
kafkat partitions
خروجی زیر را مشاهده خواهید کرد:
Output
Topic Partition Leader Replicas ISRs
TutorialTopic 0 0 [0] [0]
__consumer_offsets 0 0 [0] [0]

این خروجی TutorialTopic و همچنین __consumer_offsets یک عنوان داخلی که توسط کافکا برای ذخیره اطلاعات مربوط به مشتری استفاده می شود ، نشان می دهد. با خیال راحت می توانید خطوط شروع شده با __consumer_offsets را نادیده بگیرید.
برای کسب اطلاعات بیشتر در مورد KafkaT ، به منبع GitHub آن مراجعه کنید.
اکنون که KafkaT را نصب کردید ، می توانید Kafka را به صورت اختیاری بر روی خوشه ای از سرورهای Debian 10 تنظیم کنید تا یک خوشه چند گره ایجاد شود.
مرحله 7 – تنظیم یک خوشه چند گره (اختیاری)
اگر می خواهید با استفاده از سرورهای Debian 10 بیشتر ، یک خوشه چند کاره ایجاد کنید، مرحله 1 ، مرحله 4 و مرحله 5 را روی هر یک از ماشین های جدید تکرار کنید. علاوه بر این، برای پرونده های ~ / kafka / config / server.properties تغییرات زیر را انجام دهید:

مقدار ویژگی broker.id را طوری تغییر دهید که در کل خوشه بی نظیر باشد. این ویژگی به طور منحصر به فرد هر سرور موجود در خوشه را مشخص می کند و می تواند هر رشته ای را به عنوان مقدار آن داشته باشد. به عنوان مثال ، “server1” ، “server2” و غیره ، به عنوان شناساگر مفید خواهند بود.
مقدار ویژگی zookeeper.connect را به گونه ای تغییر دهید که همه گره ها به همان مثال ZooKeeper اشاره کنند. این ویژگی آدرس نمونه ZooKeeper را مشخص می کند و از قالب <HOSTNAME/IP_ADDRESS>:<PORT> پیروی می کند. برای این آموزش ، شما از your_first_server_IP: 2181 استفاده خواهید کرد و your_first_server_IP را با آدرس IP سرور Debian 10 که قبلاً تنظیم کرده اید جایگزین کنید.
اگر می خواهید چندین نمونه ZooKeeper برای خوشه خود داشته باشید ، مقدار ویژگی zookeeper.connect در هر گره باید یک رشته یکسان با کاما باشد که در آن آدرس های IP و شماره پورت همه موارد ZooKeeper را نشان می دهد.
توجه: اگر یک فایروال دارید که روی سرور Debian 10 با نصب Zookeeper فعال شده است ، حتما پورت 2181 را باز کنید تا اجازه ورود از سایر گره های خوشه را دریافت کنید.
مرحله 8 – محدود کردن کاربر کافکا
اکنون که تمام مراحل نصب انجام شده است ، می توانید امتیازات ادمین کاربر kafka را حذف کنید. قبل از انجام این کار ، مانند هر کاربر سودو غیر ریشه خارج شوید و دوباره وارد سیستم شوید. اگر هنوز همان بخش شل را اجرا می کنید که این آموزش را با آن شروع کرده اید ، فقط exit تایپ کنید.
کاربر کافکا را از گروه سودو حذف کنید:
sudo deluser kafka sudo
برای بهبود بیشتر امنیت سرور کافکا ، رمزعبور کاربر kafka را با استفاده از دستور passwd قفل کنید. این اطمینان می دهد که هیچ کس نمی تواند با استفاده از این حساب به طور مستقیم وارد سرور شود:
sudo passwd kafka -l
در این مرحله فقط کاربر root یا یک کاربر sudo می توانند با وارد کردن دستور زیر به عنوان kafka وارد شوند:
sudo su – kafka
در آینده اگر می خواهید قفل آن را باز کنید ، از passwd با گزینه -u استفاده کنید:
sudo passwd kafka -u
شما اکنون با موفقیت امتیازات ادمین کاربری kafka را محدود کرده اید.
نتیجه
اکنون Apache Kafka به طور ایمن روی سرور Debian شما اجرا شده است. شما می توانید با ایجاد تهیه کنندگان و مصرف کنندگان از بین مشتری های کافکا ، که برای اکثر زبان های برنامه نویسی در دسترس است، از آن در پروژه های خود استفاده کنید. برای کسب اطلاعات بیشتر در مورد کافکا، همچنین می توانید با آپاچی کافکا مشورت کنید.

 

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

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

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

نحوه استفاده از Cron برای خودکارسازی کارها در اوبونتو 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 تنظیم کرد

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

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

 

برچسب‌ها:

  • behnam gol mohamadi
  • ۰
  • ۰

مقدمه
DNSControl ابزاری زیرساختی به عنوان کد است که به شما امکان می دهد بخش های DNS خود را با استفاده از اصول استاندارد توسعه نرم افزار از جمله کنترل نسخه ، آزمایش و استقرار خودکار گسترش دهید و مدیریت کنید. DNSControl توسط Stack Exchange ایجاد شده و در Go نوشته شده است.
استفاده از DNSControl بسیاری از مشکلات مدیریت دستی DNS را از بین می برد ، زیرا فایل های بخش در یک قالب قابل برنامه ریزی ذخیره می شوند. این امر به شما امکان می دهد بخش های مختلفی را به طور همزمان به چندین ارائه دهنده DNS گسترش دهید ، خطاهای دستوری را شناسایی کرده و پیکربندی DNS خود را به صورت خودکار انجام دهید و خطای انسانی را کاهش دهید. یکی دیگر از کاربردهای متداول DNSControl انتقال سریع DNS شما به یک ارائه دهنده دیگر است. به عنوان مثال ، در صورت حمله DDoS یا قطع سیستم.
در این آموزش ، DNSControl را نصب و پیکربندی خواهید کرد ، یک پیکربندی اساسی DNS ایجاد کرده و شروع به گسترش سوابق DNS به یک ارائه دهنده زنده می کنید. به عنوان بخشی از این آموزش ، ما از vpsgol به عنوان ارائه دهنده DNS نمونه استفاده خواهیم کرد. اگر می خواهید از ارائه دهنده دیگری استفاده کنید ، تنظیمات بسیار مشابه است. پس از اتمام ، می توانید پیکربندی DNS خود را در یک محیط امن آفلاین مدیریت و آزمایش کنید و سپس بطور خودکار آن را به مرحله تولید منتقل کنید.
پیش نیازها
قبل از شروع این راهنما به موارد زیر نیاز خواهید داشت:
⦁ یک سرور مجازی Debian 10 که با دنبال کردن ستاپ سرور مجازی اولیه با Debian 10 راه اندازی شده ، از جمله کاربر sudo غیر ریشه و فایروال فعال برای اینکه پورت های غیر ضروری را مسدود کند. your-server-ipv4-address به آدرس IP سرور مجازی اشاره دارد، جایی که وب سایت یا دامنه خود را میزبانی می کنید. your-server-ipv6-address به آدرس IPv6 سرور مجازی اشاره دارد جایی که میزبان وب سایت یا دامنه خود هستید.
⦁ نام دامنه کاملاً ثبت شده با DNS که توسط یک ارائه دهنده پشتیبانی شده میزبانی می شود. در این آموزش از your_domain و vpsgol به عنوان ارائه دهنده خدمات استفاده می شود.
⦁ یک کلید API vpsgol (نشانه دسترسی شخصی) با مجوزهای خواندن و نوشتن. برای ایجاد یک چنین کلیدی، به نحوه ایجاد نشانه دسترسی شخصی مراجعه کنید.
پس از آماده شدن ، به عنوان کاربر غیر ریشه وارد سرور مجازی خود شوید.
مرحله 1 – نصب DNSControl
DNSControl در Go نوشته شده است ، بنابراین این مرحله را با نصب Go روی سرور مجازی خود و تنظیم GOPATH خود شروع خواهید کرد.
Go در منابع پیش فرض نرم افزار Debian موجود است و نصب آن با استفاده از ابزارهای مدیریت بسته معمولی امکان پذیر است.
همچنین باید Git را نصب کنید ، زیرا این امر به شما اجازه می دهد تا نرم افزار DNSControl را از منبع آن در GitHub دانلود و نصب کنید.
با به روز کردن ایندکس پکیج محلی شروع کنید تا تغییرات جدید بالادست را منعکس کنید:
$ sudo apt update
سپس پکیج های golang-go و git را نصب کنید:
$sudo apt install golang-go git
پس از تأیید نصب ، apt دو برنامه Go و Git و همچنین کلیه موارد مورد نیاز خود را دانلود و نصب خواهد کرد.
در مرحله بعد ، متغیرهای مورد نیاز محیط مسیر را برای Go پیکربندی خواهید کرد. اگر دوست دارید در این باره اطلاعات بیشتری کسب کنید ، می توانید این آموزش آشنایی با GOPATH را بخوانید. با ویرایش فایل ~/.profile شروع کنید:
⦁ $ nano ~/.profile
خطوط زیر را به انتهای فایل خود اضافه کنید:
~/.profile

export GOPATH=”$HOME/go”
export PATH=”$PATH:$GOPATH/bin”

پس از افزودن این خطوط به پایین فایل ، آن را ذخیره کرده و ببندید. سپس پروفایل خود را با ورود به سیستم و برگشت مجدد یا سورس دهی فایل دوباره بارگیری کنید:
⦁ $ source ~/.profile
اکنون Go را نصب کرده و پیکربندی کرده اید ، می توانید DNSControl را نصب کنید.
از دستور go get می توان برای گرفتن کپی از کد ، کامپایل آن به صورت خودکار و نصب آن در فهرست Go استفاده کرد:
⦁ $ go get github.com/StackExchange/dnscontrol
پس از اتمام این کار ، می توانید نسخه نصب شده را بررسی کنید تا مطمئن شوید که همه چیز کار می کند:

⦁ $ dnscontrol version
خروجی شما شبیه به زیر خواهد بود:
Output
dnscontrol 2.9-dev

اگر یک خطای dnscontrol: command not found مشاهده کردید ، راه اندازی مسیر Go خود را دو بار بررسی کنید.
اکنون که DNSControl را نصب کرده اید ، می توانید یک دایرکتوری پیکربندی ایجاد کرده و DNSControl را به ارائه دهنده DNS خود متصل کنید تا اجازه دهید تغییراتی در فایل های DNS شما ایجاد کند.
مرحله 2 – پیکربندی DNSControl
در این مرحله ، دایرکتوری های تنظیمات لازم را برای DNSControl ایجاد خواهید کرد و آن را به ارائه دهنده DNS خود وصل کنید تا بتواند شروع به ایجاد تغییرات زنده در سوابق DNS کند.
ابتدا یک دایرکتوری جدید ایجاد کنید که در آن بتوانید پیکربندی DNSControl خود را ذخیره کنید و سپس به داخل آن بروید:
⦁ $ mkdir ~/dnscontrol
⦁ $ cd ~/dnscontrol
توجه: این آموزش در مورد تنظیم اولیه DNSControl است. اما برای استفاده تولیدی، توصیه می شود پیکربندی DNSControl را در سیستم کنترل نسخه (VCS) مانند Git ذخیره کنید. از مزایای این امر می توان به کنترل کامل نسخه ، ادغام با CI / CD برای آزمایش ، گسترش چرخشی یکپارچه و غیره اشاره کرد.
اگر قصد دارید از DNSControl برای نوشتن فایل های بخش BIND استفاده کنید ، باید دیرکتوری zones  را نیز ایجاد کنید:
⦁ $ mkdir ~/dnscontrol/zones
فایل های بخش BIND یک روش استاندارد و خام برای ذخیره بخش ها/ فایل های DNS با فرمت متنی ساده است. آنها در ابتدا برای نرم افزار سرور مجازی BIND DNS مورد استفاده قرار گرفتند ، اما اکنون به عنوان روش استاندارد برای ذخیره سازی بخش های DNS مورد استفاده قرار میگیرند. اگر می خواهید آنها را به یک سرور مجازی DNS سفارشی یا میزبان سرخود یا برای اهداف حسابرسی وارد کنید ، فایل های بخش BIND تولید شده توسط DNSControl مفید هستند.
با این حال ، اگر فقط می خواهید از DNSControl برای ایجاد تغییرات DNS به یک ارائه دهنده مدیریت شده استفاده کنید ، دیرکتوری zones  مورد نیاز نخواهد بود.
در مرحله بعد ، باید فایل creds.json را پیکربندی کنید ، این همان چیزی است که به DNSControl اجازه می دهد تا به ارائه دهنده DNS خود صدقیت دهید و تغییراتی ایجاد کند. فرمت creds.json بسته به ارائه دهنده DNS مورد استفاده شما کمی متفاوت است. لطفاً به لیست ارائه دهندگان خدمات در اسناد رسمی DNSControl مراجعه کنید تا پیکربندی ارائه دهنده خود را پیدا کنید.

فایل creds.json را در دیرکتوری ~ / dnscontrol ایجاد کنید:

⦁ $ cd ~/dnscontrol
⦁ $ nano creds.json
پیکربندی نمونه creds.json را برای ارائه دهنده DNS خود به فایل اضافه کنید. اگر از vpsgol به عنوان ارائه دهنده DNS خود استفاده می کنید ، می توانید موارد زیر را استفاده کنید:
~/dnscontrol/creds.json
{
vpsgol“: {
“token”: “your-vpsgol-oauth-token”
}
}

این فایل به DNSControl میگوید که شما میخواهید به کدام ارائه دهندگان DNS متصل شود.
باید برای ارائه دهنده DNS نوعی تأیید اعتبار را ارائه دهید. این معمولاً یک کلید API یا نشان OAuth است ، اما برخی از ارائه دهندگان به اطلاعات اضافی نیاز دارند ، همانطور که در لیست ارائه دهندگان خدمات در اسناد DNSControl ثبت شده است.
هشدار: این نشانه به حساب ارائه دهنده DNS شما دسترسی می یابد ، بنابراین باید آن را مانند رمز عبور خود محافظت کنید. همچنین ، اطمینان حاصل کنید که اگر از سیستم کنترل نسخه استفاده می کنید ، فایلی که حاوی نشانه است ، حذف نشده باشد (مثلاً با استفاده از .gitignore) یا به طریقی رمزگذاری شود.
اگر از vpsgol به عنوان ارائه دهنده DNS خود استفاده می کنید ، می توانید از علائم مورد نیاز OAuth در تنظیمات حساب vpsgol خود که به عنوان بخشی از پیش نیازها تولید کرده اید استفاده کنید.
اگر چندین ارائه دهنده DNS مختلف دارید- مثلاً برای نام های دامنه متعدد ، یا بخش های DNS تفویض شده- می توانید همه اینها را در همان فایل creds.json تعریف کنید.
شما دایرکتوری های پیکربندی اولیه DNSControl را تنظیم کرده اید و creds.json را پیکربندی کرده اید تا به DNSControl اجازه دهید تا ارائه دهنده DNS خود را تأیید کنید و تغییرات ایجاد نمایید. در مرحله بعدی پیکربندی را برای بخش های DNS خود ایجاد خواهید کرد.
مرحله 3 – ایجاد یک فایل پیکربندی DNS
در این مرحله ، یک فایل پیکربندی اولیه DNS ایجاد خواهید کرد ، که شامل سوابق DNS برای نام دامنه یا بخش DNS تفویض شده شما خواهد بود.

dnsconfig.js فایل اصلی پیکربندی DNS برای DNSControl است. در این فایل ، بخش های DNS و سوابق مربوط به آنها با استفاده ازJavaScript تعریف شده است. که به DSL یا Domain Specific Language معروف است. صفحه JavaScript DSL در مطالب DNSControl جزئیات بیشتری را ارائه می دهد.
برای شروع ، فایل پیکربندی DNS را در فهرست ~ / dnscontrol ایجاد کنید:
⦁ $ cd ~/dnscontrol
⦁ $ nano dnsconfig.js
سپس پیکربندی نمونه زیر را به فایل اضافه کنید:
~ / dnscontrol / dnsconfig. ~/dnscontrol/dnsconfig.js
// Providers:

var REG_NONE = NewRegistrar(‘none’, ‘NONE’);
var DNS_vpsgol = NewDnsProvider(‘vpsgol‘, ‘vpsgol‘);

// Domains:

D(‘your_domain’, REG_NONE, DnsProvider(DNS_vpsgol),
A(‘@’, ‘your-server-ipv4-address’)
);

این فایل نمونه نام دامنه یا بخش DNS را در یک ارائه دهنده خاص تعریف می کند ، که در این حالت your_domain به میزبانی vpsgol است. یک سابقه A نیز برای ریشه بخش (@)تعریف شده است ، که به آدرس IPv4 سرور مجازی که میزبان دامنه / وب سایت شما هستند اشاره دارد.
سه کارکرد اصلی وجود دارد که یک فایل پیکربندی اساسی DNSControl را تشکیل می دهند:
⦁ NewRegistrar(name, type, metadata) : ثبت دامنه را برای نام دامنه شما تعیین می کنید. DNSControl می تواند از این روش برای ایجاد تغییرات مورد نیاز مانند تغییر نام سرورهای معتبر استفاده کند. اگر فقط می خواهید از DNSControl برای مدیریت بخش های DNS خود استفاده کنید ، این حالت معمولاً به عنوان NONE باقی می ماند.
⦁ NewDnsProvider(name, type, metadata) : ارائه دهنده خدمات DNS را برای نام دامنه یا بخش واگذار شده تعریف می کند. اینجاست که DNSControl تغییرات DNS را ایجاد می کند.
⦁ D(name, registrar, modifiers) : یک نام دامنه یا بخش DNS تفویض شده برای مدیریت DNSControl ، و همچنین سوابق DNS موجود در بخش تعریف میکند.
شما باید با استفاده از لیست ارائه دهندگان خدمات در مطالب DNSControl ، NewRegistrar () ، NewDnsProvider () و D () را پیکربندی کنید.
اگر از vpsgol به عنوان ارائه دهنده DNS خود استفاده می کنید ، و فقط نیاز دارید بتوانید DNS را تغییر دهید (به جای نام سرورهای معتبر) ، نمونه موجود در بلوک کد قبلی نیز صحیح است.
پس از تکمیل ، فایل را ذخیره کنید و ببندید.
در این مرحله ، یک فایل پیکربندی DNS را برای DNSControl ، با ارائه دهندگان مربوطه تعریف شده، تنظیم می کنید. در مرحله بعد ، فایل را با برخی از سوابق مفید DNS پر می کنید.
مرحله 4 – پر کردن فایل پیکربندی DNS
در مرحله بعد ، می توانید با استفاده از نحو DNSControl ، فایل پیکربندی DNS را با سوابق مفید DNS برای وب سایت یا خدمات خود پر کنید.
بر خلاف فایل های بخش BIND قدیمی ، که در آن فایل های DNS با فرمت خام و خط به خط نوشته می شوند ، سوابق DNS درون DNSControl به عنوان یک پارامتر تابع (اصلاح کننده دامنه) به عملکرد D () تعریف می شوند ، که مختصراً در مرحله 3 نشان داده شده است.
یک اصلاح کننده دامنه برای هر یک از انواع استاندارد رکورد DNS ، از جمله A ، AAAA ، MX ، TXT ، NS ، CAA و غیره وجود دارد. لیست کاملی از انواع رکورد موجود در بخش Domain Modifiers مطالب DNSControl موجود است.
اصلاح کننده های مربوط به سوابق جداگانه نیز در دسترس هستند (اصلاح کننده های سابقه). در حال حاضر اینها در درجه اول برای تنظیم TTL (زمان زندگی) سوابق فردی استفاده می شود. لیست کاملی از اصلاح کننده های ضبط موجود در بخش Record Modifiers در اسناد DNSControl موجود است. اصلاح کننده های ثبت اختیاری هستند و در اکثر موارد استفاده اصلی می توان آنها را کنار گذاشت.
دستور تنظیم سوابق DNS برای هر نوع رکورد کمی متفاوت است. در زیر چند نمونه از رایج ترین انواع رکورد وجود دارد:
رکوردهای A :
هدف: برای اشاره به آدرس IPv4.
دستور: A(‘name’, ‘address’, optional record modifiers)
مثال: A(‘@’, ‘your-server-ipv4-address’, TTL(30))
رکوردهای AAAA :
هدف: برای اشاره به آدرس IPv6.
دستور: AAAA(‘name’, ‘address’, optional record modifiers)
مثال: AAAA(‘@’, ‘your-server-ipv6-address’) (اصلاح کننده رکورد از کار افتاده ، بنابراین TTL پیش فرض استفاده خواهد شد)
رکوردهای CNAME :

هدف: برای تبدیل دامنه / زیر دامنه شما به عنوان یک نام مستعار دیگر.
دستور: CNAME(‘name’, ‘target’, optional record modifiers)
مثال: CNAME(‘subdomain1’, ‘example.org.’) (توجه داشته باشید که اگر نقطه هایی در مقدار وجود داشته باشد باید یک دنباله . درج شود)
رکوردهای MX :
هدف: برای هدایت ایمیل به سرورها و آدرس های خاص.
دستور: MX(‘name’, ‘priority’, ‘target’, optional record modifiers)
مثال: MX(‘@’, 10, ‘mail.example.net’) توجه داشته باشید که اگر نقطه هایی در مقدار وجود داشته باشد باید یک دنباله . درج شود)
رکوردهای TXT :
هدف: برای افزودن متن ساده دلخواه ، اغلب برای تنظیمات بدون نوع رکورد خاص خود استفاده می شوند.
دستور: TXT(‘name’, ‘content’, optional record modifiers)
مثال: TXT(‘@’, ‘This is a TXT record.’)
رکوردهای CAA :
هدف: محدود کردن و گزارش در مورد مجوزها(CA) که می توانند گواهینامه TLS را برای دامنه / زیر دامنه شما صادر کنند.
دستور: CAA(‘name’, ‘tag’, ‘value’, optional record modifiers)
مثال: CAA(‘@’, ‘issue’, ‘letsencrypt.org’)
برای شروع اضافه کردن رکوردهای DNS برای دامنه یا بخش DNS تفویض شده ، پیکربندی DNS خود را ویرایش کنید:
⦁ $ nano dnsconfig.js
در مرحله بعد ، می توانید پر کردن پارامترهای مربوط به عملکرد D () موجود را با استفاده از دستور گفته شده در لیست قبلی ، و همچنین بخش Domain Modifiers از مطالب DNSControl شروع کنید. کاما (،) باید بین هر رکوردی استفاده شود.
برای ارجاع ، بلوک کد در اینجا حاوی یک پیکربندی کامل نمونه برای یک تنظیم DNS ساده اولیه است:
~/dnscontrol/dnsconfig.js

D(‘your_domain’, REG_NONE, DnsProvider(DNS_vpsgol),
A(‘@’, ‘your-server-ipv4-address’),
A(‘www’, ‘your-server-ipv4-address’),
A(‘mail’, ‘your-server-ipv4-address’),
AAAA(‘@’, ‘your-server-ipv6-address’),
AAAA(‘www’, ‘your-server-ipv6-address’),
AAAA(‘mail’, ‘your-server-ipv6-address’),
MX(‘@’, 10, ‘mail.your_domain.’),
TXT(‘@’, ‘v=spf1 -all’),
TXT(‘_dmarc’, ‘v=DMARC1; p=reject; rua=mailto:abuse@your_domain; aspf=s; adkim=s;’)
);

پس از تکمیل تنظیمات اولیه DNS ، فایل را ذخیره کنید و ببندید.
در این مرحله فایل پیکربندی اولیه DNS را تنظیم می کنید که شامل سوابق DNS شماست. در مرحله بعد ، پیکربندی را تست کرده و آن را مستقر می کنید.
مرحله 5 – تست و استفاده از پیکربندی DNS
در این مرحله ، شما یک بررسی دستور محلی را بر روی پیکربندی DNS خود اجرا کرده و سپس تغییرات را در سرور مجازی / ارائه دهنده زنده DNS مستقر می کنید.
در مرحله اول ، به فهرست dnscontrol خود بروید:
⦁ $ cd ~/dnscontrol
در مرحله بعدی ، از عملکرد پیش نمایش DNSControl استفاده کنید تا دستور فایل خود را بررسی کنید و تغییرات را ایجاد کنید (بدون اینکه آنها را در واقع ایجاد کنید)
⦁ $ dnscontrol preview
اگر دستور فایل پیکربندی DNS شما صحیح باشد ، DNSControl مروری بر تغییراتی که ایجاد می کند ، ارائه می دهد. که باید شبیه زیر باشد:
Output
******************** Domain: your_domain
—– Getting nameservers from: vpsgol
—– DNS Provider: vpsgol…8 corrections
#1: CREATE A your_domain your-server-ipv4-address ttl=300
#2: CREATE A www.your_domain your-server-ipv4-address ttl=300
#3: CREATE A mail.your_domain your-server-ipv4-address ttl=300
#4: CREATE AAAA your_domain your-server-ipv6-address ttl=300
#5: CREATE TXT _dmarc.your_domain “v=DMARC1; p=reject; rua=mailto:abuse@your_domain; aspf=s; adkim=s;” ttl=300
#6: CREATE AAAA www.your_domain your-server-ipv6-address ttl=300
#7: CREATE AAAA mail.your_domain your-server-ipv6-address ttl=300
#8: CREATE MX your_domain 10 mail.your_domain. ttl=300
—– Registrar: none…0 corrections
Done. 8 corrections.

اگر هشدار خطایی را در خروجی خود مشاهده می کنید ، DNSControl جزئیاتی راجع به اینکه چه خطایی و در کجای فایل شما قرار دارد ارائه میدهد.
هشدار: دستور بعدی تغییراتی را در سوابق DNS شما و احتمالاً سایر تنظیمات ایجاد می کند. لطفاً اطمینان حاصل کنید که برای این کار آمادگی دارید ، از جمله گرفتن نسخه پشتیبان از پیکربندی DNS موجود خود ، و همچنین اطمینان از داشتن ابزارهایی برای بازگرداندن در صورت لزوم.
سرانجام ، می توانید تغییرات را در ارائه دهنده DNS زنده خود ایجاد کنید:
⦁ $ dnscontrol push
خروجی مشابه با زیر را مشاهده خواهید کرد:
Output
******************** Domain: your_domain
—– Getting nameservers from: vpsgol
—– DNS Provider: vpsgol…8 corrections
#1: CREATE TXT _dmarc.your_domain “v=DMARC1; p=reject; rua=mailto:abuse@your_domain; aspf=s; adkim=s;” ttl=300
SUCCESS!
#2: CREATE A your_domain your-server-ipv4-address ttl=300
SUCCESS!
#3: CREATE AAAA your_domain your-server-ipv6-address ttl=300
SUCCESS!
#4: CREATE AAAA www.your_domain your-server-ipv6-address ttl=300
SUCCESS!
#5: CREATE AAAA mail.your_domain your-server-ipv6-address ttl=300
SUCCESS!
#6: CREATE A www.your_domain your-server-ipv4-address ttl=300
SUCCESS!
#7: CREATE A mail.your_domain your-server-ipv4-address ttl=300
SUCCESS!
#8: CREATE MX your_domain 10 mail.your_domain. ttl=300
SUCCESS!
—– Registrar: none…0 corrections
Done. 8 corrections.

حال اگر تنظیمات DNS مربوط به دامنه خود را در کنترل پنل vpsgol بررسی کنید ، تغییرات را مشاهده خواهید کرد.

همچنین می توانید با اجرای یک جستجوی DNS برای بخش دامنه / تفویض شده خود با استفاده از Dig ، ایجاد رکورد را بررسی کنید.
اگر dig را نصب نکردید ، باید بسته dnsutils را نصب کنید:
⦁ $ sudo apt install dnsutils
پس از نصب dig ، می توانید از آن برای جستجوی DNS برای دامنه خود استفاده کنید. خواهید دید که سوابق به همین ترتیب به روز شده اند:
⦁ $ dig +short your_domain
خروجی را مشاهده خواهید کرد که آدرس IP و سابقه DNS مربوطه را از بخش شما که با استفاده از DNSControl مستقر شده است نشان میدهد. سوابق DNS می تواند مدتی طول بکشد تا گسترش یابد ، بنابراین ممکن است لازم باشد که صبر کنید و این دستور را دوباره اجرا کنید.
در این مرحله آخر ، شما یک بررسی نحو محلی فایل پیکربندی DNS را اجرا کردید ، سپس آن را به ارائه دهنده زنده DNS خود مستقر کردید و آزمایش کردید که تغییرات با موفقیت انجام شده اند.
نتیجه
در این مقاله شما DNSControl را تنظیم کرده و پیکربندی DNS را به یک ارائه دهنده زنده مستقر کرده اید. اکنون می توانید تغییرات پیکربندی DNS خود را در یک محیط امن و آفلاین قبل از گسترش آنها ، مدیریت و آزمایش کنید.
اگر می خواهید این موضوع را بیشتر بررسی کنید ، DNSControl به گونه ای طراحی شده است که در خط CI / CD شما ادغام شود ، به شما این امکان را می دهد تا تست های عمیق را انجام دهید و کنترل بیشتری بر روی به کارگیری برای تولید داشته باشید. همچنین می توانید DNSControl را در فرآیندهای ساخت و استقرار زیرساخت خود ادغام کنید ، که به شما امکان می دهد سرورها را مستقر کرده و آنها را به طور کامل به DNS اضافه کنید.
اگر می خواهید با DNSControl بیشتر پیش بروید ، مقالات vpsgol را در ادامه ببینید که مراحل بعدی جالب دیگری را برای کمک به ادغام DNSControl در مدیریت تغییر و گردش کار شما در زمینه استقرار زیرساخت ها ارائه می دهد:
⦁ مقدمه ای برای ادغام مداوم ، تحویل و استقرار
⦁ مقایسه ابزارهای CI / CD: Jenkins ، GitLab CI ، Buildbot ،Drone و Concourse
⦁ شروع به کار با مدیریت پیکربندی

 

 

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

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

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

نحوه استفاده از Cron برای خودکارسازی کارها در اوبونتو 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 تنظیم کرد

چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7 تنظیم کرد

نحوه نصب Apache Kafka در Debian 10

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

چگونه پیکربندی SSH Daemon خود را بر روی یک VPS لینوکس تنظیم کنید

 

کلمات کلیدی خرید سرور

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

 

برچسب‌ها:

  • behnam gol mohamadi