دارامان

98server 98server .

98server

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

مقدمه
با حركت ابزارهاي توسعه دهنده به سمت cloud ، ساخت و تطبيق پلتفرم هاي cloud IDE (محيط پيشرفت ادغام شده) در حال رشد است. Cloud IDE ها امكان همكاري در زمان واقعي بين تيم هاي توسعه دهنده را فراهم مي كنند تا در يك محيط توسعه يكپارچه كار كنند كه ناسازگاري ها را به حداقل مي رساند و بهره وري را افزايش مي دهد. IDE cloudها كه از طريق مرورگرهاي وب قابل دسترسي هستند ، از هر نوع دستگاه مدرن قابل استفاده اند.
code-server يك كدMicrosoft Visual Studio است كه روي يك سرور از راه دور اجرا مي شود و مستقيماً از طريق مرورگر شما قابل دسترسي است. كد ويژوال استوديو يك ويرايشگر كد مدرن داراي پشتيباني يكپارچه از Git ، اشكال زدايي كد ، تكميل خودكار هوشمند و ويژگي هاي قابل تنظيم و قابل توسعه است. اين بدان معني است كه مي توانيد از دستگاه هاي مختلفي كه سيستم عامل هاي متفاوت را اجرا مي كنند استفاده كنيد و هميشه يك محيط توسعه مداوم داشته باشيد.
در اين آموزش ، پلت فرم code-server cloud IDE را بر روي دستگاه CentOS 7 خود تنظيم كرده و آن را در دامنه خود قرار مي دهيد ، كه با استفاده از گواهينامه هاي TLS Let’s Encrypt  رايگان ايمن شده اند. در پايان ، كد مايكروسافت ويژوال استوديو را روي سرور CentOS 7 خود ، در دامنه خود در دسترس خواهيد داشت كه با يك رمز عبور محافظت مي شود.
پيش نيازها
سروري كه CentOS 7 را با حداقل 2 گيگابايت رم ، دسترسي به روت و يك حساب سودو و غير روت اجرا مي كند. با دنبال كردن اين راهنماي اوليه تنظيم سرور مي توانيد اين تنظيمات را انجام دهيد.
Nginx روي سرور شما نصب شده است. براي راهنمايي در مورد نحوه انجام اين كار ، به نحوه نصب Nginx در CentOS 7 مراجعه كنيد.
هر دو پرونده DNS زير براي سرور شما تنظيم شده اند. براي جزئيات بيشتر در مورد چگونگي اضافه كردن آنها مي توانيد اين مقدمه را در vpsgol DNS دنبال كنيد.
يك ركورد A با your-domain كه به آدرس IP عمومي سرور شما اشاره ميكند.
يك ركورد A با www.your-domain كه به آدرس IP عمومي سرور شما اشاره ميكند.
يك نام دامنه كاملاً ثبت شده براي كد سرور هاست، كه به سرور شما اشاره ميكند. در اين آموزش از code-server.your-domain استفاده مي شود. مي توانيد يك نام دامنه به اسم Namecheap خريداري كنيد ، يكي از آنها را به صورت رايگان در Freenom دريافت كنيد ، يا از ثبت دامنه مورد نظر خود استفاده كنيد.
مرحله 1 – نصب كد سرور
در اين بخش كد سرور را روي سرور خود تنظيم مي كنيد. اين كار مستلزم دانلود آخرين نسخه و ايجاد سرويس systemd است كه كد سرور را هميشه در پس زمينه اجرا مي كند. همچنين رويكرد مجدد را براي سرويس تعيين خواهيد كرد ، به اين ترتيب كه كد سرور پس از خرابي يا راه اندازي مجدد احتمالي در دسترس باشد.

همه داده هاي مربوط به كد سرور را در پوشه اي به نام ~ / code-server ذخيره مي كنيد. با اجراي دستور زير آن را ايجاد كنيد:
mkdir ~/code-server
حركت به سمت آن:
cd ~/code-server
شما بايد به صفحه انتشار نسخه هاي Github از كد سرور برويد و آخرين ساخت لينوكس را انتخاب كنيد (نام فايل شامل “linux” است). در زمان نوشتن ، آخرين نسخه 2.1692 بود. با اجراي دستور زير آن را با استفاده از curl دانلود كنيد:
curl -LO https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz
سپس با اجراي اين دستور آرشيو را باز كنيد:
tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz
پوشه اي دقيقاً به عنوان فايل اصلي كه دانلود كرده ايد ، تهيه مي شود كه شامل كد سرور قابل اجرا است. به آن فايل برويد:
cd code-server2.1692-vsc1.39.2-linux-x86_64
سرور كد قابل اجرا را در / usr / local / bin كپي كنيد تا با اجراي دستور زير بتوانيد به سيستم گسترده اي از آن دسترسي داشته باشيد:
sudo cp code-server /usr/local/bin
سپس، يك پوشه براي سرور كد ايجاد كنيد ، كه در آن داده هاي كاربر را ذخيره مي كند:
sudo mkdir /var/lib/code-server
اكنون كه كد سرور را دانلود كرده ايد و آن را به صورت گسترده در دسترس سيستم قرار داده ايد، يك سرويس سيستمي ايجاد خواهيد كرد تا كد سرور را هميشه در پس زمينه اجرا كند.
پيكربندي سرويس را در فايلي به نام code-server.service ، در ديركتوري / usr / lib / systemd / system ذخيره خواهيد كرد، جايي كه systemd خدمات خود را ذخيره مي كند. با استفاده از ويرايشگر vi آن را ايجاد كنيد:
sudo vi /usr/lib/systemd/system/code-server.service
خطوط زير را اضافه كنيد:
/usr/lib/systemd/system/code-server.service
[Unit]
Description=code-server
After=nginx.service

[Service]
Type=simple
Environment=PASSWORD=your_password
ExecStart=/usr/local/bin/code-server –host 127.0.0.1 –user-data-dir /var/lib/code-server –auth password
Restart=always

[Install]
WantedBy=multi-user.target

در اينجا ابتدا شرح خدمات را مشخص مي كنيد. سپس ، اعلام مي كنيد كه سرويس nginx بايد قبل از اين شروع شود. بعد از بخش [Unit] نوع سرويس را تعريف مي كنيد (simple بدان معني است كه فرايند بايد به سادگي اجرا شود) و فرماني را كه اجرا مي شود ارائه مي دهيد.
شما همچنين مشخص مي كنيد كه كد سرور جهاني قابل اجرا بايد با چند آرگومان خاص براي كد سرور آغاز شود. –host 127.0.0.1 آن را به localhost متصل مي كند ، بنابراين فقط از داخل سرور شما قابل دسترسي است. –user-data-dir / var / lib / code-server دايركتوري داده هاي كاربر خود را تنظيم مي كند ، و –auth password مشخص مي كند كه بايد بازديد كنندگان را با يك رمزعبور، مشخص شده در متغير محيط PASSWORD اعلام شده در خط بالاي آن ، تأييد كند.
به ياد داشته باشيد كه your_password را با رمز عبور دلخواه خود جايگزين كنيد. براي ذخيره و بستن فايل تايپ كنيد: wq و سپس ENTER را بزنيد.
خط بعدي به systemd مي گويد تا كد سرور را در تمام رويدادهاي ناقص (براي مثال وقتي كه دچار crash ميشود يا فرآيند نابود ميشود) مجددا راه اندازي كند. بخش [Install] به systemd سفارش مي دهد تا در صورت امكان ورود به سرور خود ، اين سرويس را شروع كند.
با اجراي دستور زير سرويس كد سرور را شروع كنيد:
sudo systemctl start code-server
با مشاهده وضعيت آن بررسي كنيد كه درست شروع شده است:
sudo systemctl status code-server
خروجي شبيه به زير را خواهيد ديد:
Output
code-server.service – code-server
Loaded: loaded (/usr/lib/systemd/system/code-server.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2019-12-19 19:24:42 UTC; 5s ago
Main PID: 1668 (code-server)
CGroup: /system.slice/code-server.service
├─1668 /usr/local/bin/code-server –host 127.0.0.1 –user-data-dir /var/lib/code-server –auth password
└─1679 /usr/local/bin/code-server –host 127.0.0.1 –user-data-dir /var/lib/code-server –auth password

Dec 19 19:24:42 code-server-centos systemd[1]: Started code-server.
Dec 19 19:24:44 code-server-centos code-server[1668]: info Server listening on http://127.0.0.1:8080
Dec 19 19:24:44 code-server-centos code-server[1668]: info – Using custom password for authentication
Dec 19 19:24:44 code-server-centos code-server[1668]: info – Not serving HTTPS

براي شروع خودكار كد سرور پس از راه اندازي مجدد سرور ، سرويس آن را با اجراي دستور زير فعال كنيد:
sudo systemctl enable code-server
در اين مرحله ، شما كد سرور را دانلود كرده و آن را در سطح جهاني در دسترس قرار داده ايد. سپس ، شما يك سرويس systemd براي آن ايجاد و آن را فعال كرده ايد ، بنابراين كد سرور از هر بوت سرور شروع مي شود. در مرحله بعد ، با پيكربندي Nginx ، آن را در دامنه خود قرار مي دهيد تا به عنوان يك پروكسي معكوس بين بازديد كننده و كد سرور خدمت كند.
مرحله 2 – قرار گرفتن كد سرور در معرض دامنه شما
در اين بخش، Nginx را به عنوان يك پروكسي معكوس براي سرور كد پيكربندي مي كنيد.
همانطور كه در مرحله پيش نياز Nginx آموخته ايد، فايل هاي پيكربندي سايت آن در زير /etc/nginx/conf.d ذخيره مي شوند و با شروع Nginx بطور خودكار دانلود مي شوند.
شما پيكربندي را براي در معرض قرار گرفتن كد سرور در دامنه خود در فايلي به نامcode-server.conf ، تحت عنوان /etc/nginx/conf.d ذخيره مي كنيد. با استفاده از ويرايشگر خود شروع به كار كنيد:
sudo vi /etc/nginx/conf.d/code-server.conf
خطوط زير را اضافه كنيد:
/etc/nginx/conf.d/code-server.conf
server {
listen 80;
listen [::]:80;

server_name code-server.your-domain;

location / {
غير مجاز مي باشد_pass http://localhost:8080/;
غير مجاز مي باشد_set_header Upgrade $http_upgrade;
غير مجاز مي باشد_set_header Connection upgrade;
غير مجاز مي باشد_set_header Accept-Encoding gzip;
}
}

code-server.your-domain خود را با دامنه مورد نظر خود جايگزين كنيد، سپس فايل را ذخيره كنيد و ببنديد.
در اين فايل ، شما تعريف مي كنيد كه Nginx بايد به پورت HTTP 80 گوش دهد. سپس ، يك server_nameرا تعيين مي كنيد كه به Nginx مي گويد كه كدام دامنه درخواست ها را بپذيرد و از اين تنظيمات خاص استفاده كند.
در بلوك بعدي ، براي مكان ريشه (/) ، شما تعيين مي كنيد كه درخواست ها بايد به كد سروري كه در localhost:8080 در حال اجرا است ، در رفت و برگشت باشد: سه خط بعدي (كه با غير مجاز مي باشد_set_header شروع ميشوند) به Nginx دستور مي دهند برخي از سرصفحات HTTP را كه براي عملكرد صحيح WebSockets مورد نياز هستند، كه از سرورهاي كد استفاده گسترده اي دارند، حمل كند.
براي آزمايش اعتبار پيكربندي ، دستور زير را اجرا كنيد:
sudo nginx -t
خروجي زير را مشاهده خواهيد كرد:
utput
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

براي اينكه پيكربندي عملي شود ، بايد Nginx را مجدداً راه اندازي كنيد:
sudo systemctl restart nginx
CentOS 7 مجهز به SELinux است ، با يك آيين نامه سختگيرانه ، كه به طور پيش فرض اجازه اتصال Nginx به سوكت هاي محلي TCP را نمي دهد. Nginx براي خدمت به عنوان يك پروكسي معكوس براي كد سرور ، بايد در حال اجرا باشد. دستور زير را اجرا كنيد تا قاعده را به صورت دائمي آرام كنيد:
sudo setsebool httpd_can_network_connect 1 -P
سپس در مرورگر خود به سمت دامنه مورد استفاده براي كد سرور مجازي برويد. اعلان ورود به سيستم كد را مشاهده خواهيد كرد.
كد سرور از شما رمز عبور مي خواهد. چيزي كه در مرحله قبل تنظيم كرديد را وارد كنيد و Enter IDE را بزنيد. اكنون كد سرور را وارد كرده و فوراً GUI ويرايشگر آن را مشاهده مي كنيد.
اكنون نصب كد سرور مجازي شما در دامنه شما قابل دسترسي است. در مرحله بعدي ، با استفاده از يك گواهي نامه Let’s Encrypt TLS رايگان ، آن را ايمن خواهيد كرد.
مرحله 3 – دامنه خود را ايمن كنيد
در اين بخش دامنه خود را با استفاده از گواهي Let’s Encrypt TLS ، كه با استفاده از Certbot ارائه مي دهيد ، تضمين مي كنيد.
براي نصب آخرين نسخه Certbot و افزونه Nginx آن، دستور زير را اجرا كنيد:
sudo yum install certbot python2-certbot-nginx
براي درخواست گواهي نامه براي دامنه خود ، دستور زير را اجرا كنيد:
sudo certbot –nginx -d code-server.your-domain
در اين دستور ، شما certbot را براي درخواست گواهينامه براي دامنه خود اجرا مي كنيد – نام دامنه را با پارامتر -d مي گذرانيد. فلگ –nginx به آن مي گويد براي پشتيباني از HTTPS ، پيكربندي سايت Nginx را به طور خودكار تغيير دهد. به ياد داشته باشيد كه دامنه code-server.your خود را با نام دامنه خود جايگزين كنيد.
اگر اولين بار است كه Certbot را اجرا مي كنيد ، از شما خواسته مي شود كه يك آدرس ايميل را براي اخطارهاي فوري و قبول شرايط خدمات EFF وارد كنيد. سپس Certbot از Let’s Encrypt براي گواهي دامنه شما درخواست مي كند. سپس از شما سؤال مي كند كه آيا مايليد همه ترافيك HTTP را به HTTPS هدايت كنيد:
Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
1: No redirect – Make no further changes to the webserver configuration.
2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel):

توصيه مي شود براي به حداكثر رساندن امنيت، گزينه دوم را انتخاب كنيد. پس از وارد كردن انتخاب خود ، ENTER را فشار دهيد.
خروجي مشابه اين خواهد بود:
Output
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/code-server.your-domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/code-server.your-domain/privkey.pem
Your cert will expire on … To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the “certonly” option. To non-interactively renew *all* of
your certificates, run “certbot renew”
– Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
– If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

اين بدان معني است كه Certbot با موفقيت توليد گواهينامه TLS را انجام داده و آنها را در پيكربندي Nginx براي دامنه شما اعمال كرده است. اكنون مي توانيد دامنه كد سرور مجازي خود را در مرورگر خود مجدد لود كنيد و يك padlock در سمت چپ آدرس سايت مشاهده كنيد، به اين معني كه اتصال شما به درستي ايمن شده است.
اكنون كاري كرديد كه Certbot به طور خودكار گواهينامه ها را قبل از اين كه منقضي شوند تمديد كند. براي اجراي بررسي روزانه، از cron ، يك سرويس سيستم استاندارد براي انجام كارهاي دوره اي استفاده خواهيد كرد. شما با باز كردن و ويرايش فايلي به نام crontab ، corn را هدايت مي كنيد:
sudo crontab -e
اين دستور crontab پيش فرض را كه در حال حاضر يك فايل متني خالي است ، باز مي كند. خط زير را اضافه كنيد ، سپس آن را ذخيره كرده و ببنديد:
crontab
. . .
15 3 * * * /usr/bin/certbot renew –quiet

دستور renew براي Certbot تمام گواهينامه هاي نصب شده روي سيستم را بررسي ميكند و مواردي را كه در كمتر از سي روز به پايان مي رسند به روز مي كند. –quiet به Certbot مي گويد كه اطلاعات را بيرون نكشيد يا منتظر ورود كاربر نباشيد.
cron اكنون اين دستور را روزانه اجرا مي كند. تمام گواهينامه هاي نصب شده هنگامي كه سي روز يا كمتر از اين كه منقضي شود به طور خودكار تجديد و لود مي شوند.
اكنون كه كد سرور مجازي را از طريق يك پروكسي معكوس Nginx در دامنه خود داريد ، آماده بررسي واسط كاربري سرور كد هستيد.
مرحله 4 – استفاده از رابط كد-سرور مجازي
در اين بخش از برخي از ويژگي هاي رابط كد-سرور مجازي استفاده خواهيد كرد. از آنجا كه كد-سرور مجازي كد ويژوال استوديو در حال اجرا در cloud است ، همان رابط مشابه نسخه دسكتاپ مستقل دارد.
در سمت چپ IDE ، يك رديف عمودي از شش دكمه وجود دارد كه بيشترين ويژگي هاي مورد استفاده را در يك صفحه جانبي كه با عنوان Activity Bar شناخته مي شود باز مي كند.
اين نوار قابل تنظيم است بنابراين مي توانيد اين نماها را به ترتيب ديگري جابجا كنيد يا آنها را از نوار حذف كنيد. به طور پيش فرض ، اولين دكمه منوي كلي را به صورت كشويي باز مي كند ، در حالي كه نماي دوم پنل اكسپلورر را باز مي كند كه پيمايش درخت مانند از ساختار پروژه را فراهم مي كند. مي توانيد پوشه ها و فايل هاي خود را در اينجا مديريت كنيد – ايجاد ، حذف ، جابجايي و تغيير نام را در صورت لزوم انجام دهيد. نماي بعدي امكان دسترسي به جستجو و جايگزيني عملكرد را فراهم مي كند.
بعد از اين ، به ترتيب پيش فرض ، نماي شما از سيستم هاي كنترل منبع مانند Git است. كد ويژوال استوديو همچنين از ارائه دهندگان ديگر كنترل منبع پشتيباني مي كند و مي توانيد در اين مطالب دستورالعمل هاي بيشتري را براي جريان كار كنترل منبع با ويرايشگر پيدا كنيد.
گزينه اشكال زدايي در نوار فعاليت ، كليه اقدامات متداول را براي اشكال زدايي در پنل ارائه مي دهد. كد ويژوال استوديو با پشتيباني داخلي براي اشكال زدايي زمان اجرا Node.js و هر زباني كه به Javascript تبديل شود همراه است. براي ساير زبانها مي توانيد پسوندهايي را براي اشكالزدگي مورد نياز نصب كنيد. مي توانيد پيكربندي هاي اشكال زدايي را در پرونده start.json ذخيره كنيد.
نماي نهايي در نوار فعاليت، منويي را براي دسترسي به افزونه هاي موجود در Marketplace فراهم مي كند.
قسمت اصلي GUI ويرايشگر شماست كه مي توانيد با استفاده از زبانه ها براي ويرايش كد خود جدا كنيد. مي توانيد نماي ويرايش خود را به يك سيستم شبكه يا به فايل هاي جانبي تغيير دهيد.
پس از ايجاد فايل جديد از طريق منوي File ، يك فايل خالي در يك سربرگ جديد باز مي شود و پس از ذخيره سازي ، نام فايل در صفحه جانبي Explorer قابل مشاهده خواهد بود. ايجاد پوشه ها را مي توان با كليك راست بر روي نوار كناري Explorer و كليك بر روي New Folder انجام داد. مي توانيد پوشه اي را با كليك روي نام آن و همچنين كشيدن و رها كردن فايل ها و پوشه ها به قسمتهاي بالاي ليست ترتيبي گسترش دهيد تا آنها را به يك مكان جديد منتقل كنيد.
مي توانيد با زدن CTRL + SHIFT + `، يا با كليك كردن بر روي ترمينال در منوي كشويي بالا، و انتخاب گزينه New Terminal، به ترمينال دسترسي پيدا كنيد. ترمينال در يك پنل پايين تر باز خواهد شد و فهرست كار آن روي فضاي كاري پروژه تنظيم مي شود ، كه شامل فايل ها و پوشه هاي نمايش داده شده در پانل سمت Explorer است.
شما يك نماي كلي سطح بالا از رابط كد سرور مجازي را جستجو كرده ايد و برخي از متداول ترين ويژگي ها را مرور كرده ايد.
نتيجه
اكنون شما داراي كد سرور مجازي، يك cloud IDE همه كاره هستيد كه بر روي سرور CentOS 7 شما نصب شده است ، و در دامنه شما قرار گرفته و با استفاده از گواهي نامه هاي رمزگذاري ايمن شده است. هم اكنون مي توانيد بر روي پروژه ها بصورت جداگانه و همچنين در يك مجموعه همكاري تيمي كار كنيد. اجراي cloud IDE منابع موجود در دستگاه محلي شما را آزاد مي كند و به شما امكان مي دهد منابع را در صورت لزوم مقياس بندي كنيد. براي اطلاعات بيشتر ، به ويژگي هاي اضافي و دستورالعمل هاي دقيق در مورد ساير مؤلفه هاي كد سرور ، به مطالب ويژوال استوديو مراجعه كنيد.
اگر مايل هستيد كد سرور مجازي را روي خوشه vpsgol Kubernetes خود اجرا كنيد ، آموزش ما در مورد چگونگي راه اندازي بستر رمزگذاري كد سرويس دهنده Cloud IDE در vpsgol Kubernetes را بررسي كنيد


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۹ دى ۱۳۹۸ساعت: ۰۱:۴۲:۲۴ توسط:server موضوع:

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

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 را مشخص مي كند و از قالب : پيروي مي كند. براي اين آموزش ، شما از 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 شما اجرا شده است. شما مي توانيد با ايجاد تهيه كنندگان و مصرف كنندگان از بين مشتري هاي كافكا ، كه براي اكثر زبان هاي برنامه نويسي در دسترس است، از آن در پروژه هاي خود استفاده كنيد. براي كسب اطلاعات بيشتر در مورد كافكا، همچنين مي توانيد با آپاچي كافكا مشورت كنيد.


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۹ دى ۱۳۹۸ساعت: ۰۱:۴۰:۵۱ توسط:server موضوع:

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

مقدمه
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سرور وب داده شده است كه در هر جا لازم است بنويسيم، مي توانيم به طور صريح روش سيستم فايل را به 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 ​​بازديد كنيد.


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۹ دى ۱۳۹۸ساعت: ۰۱:۳۷:۳۵ توسط:server موضوع:

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

مقدمه
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 اولين قدم بزرگ در جهت درك چگونگي كنترل دقيق دسترسي به سرور شماست. و يك مهارت مهم براي هر مدير سيستم لينوكس ميباشد.


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۱۹ دى ۱۳۹۸ساعت: ۰۱:۳۶:۵۰ توسط:server موضوع: