راهنمای جامع تنظیمات سرور مجازی و امنیت سرور – ارتباطات فرهنگ آزما
ورود به سرور مجازی
پس از خرید VPS با سیستم عامل اوبونتو ubuntu ،شرکت ارائه دهنده تنها یک IP بهمراه یک یوزر و پسورد به شما تحویل خواهد داد .برای اتصال و پیکربندی سرور، شما به یک نرم افزار تحت ویندوز، برای ارتباط با آن نیاز دارید.
Putty یک نرم افزار برای ارتباط با سرور لینوکس است. با استفاده از این نرم افزار شما می توانید به سرور لینوکسی خود دسترسی داشته باشید. این نرم افزار از پروتکل های Telnet و Rlogin نیز پشتیبانی می کند. شما برای اینکه به سرور لینوکس خود متصل شوید باید این نرم افزار را دانلود و نصب کنید.
برای دانلود و نصب این نرم افزار به این لینک مراجعه نمایید.
استفاده از این نرم افزار رایگان است و شما شما با استفاده از این نرم افزار به راحتی می توانید از راه دور به سرور خود متصل شوید. زمانی که نرم افزار Putty را اجرا می کنید با صفحه ای همانند تصویر زیر مواجه خواهید شد.
نمای نرم افزار putty بعد از اجرا
برای ورود در قسمت Host Name ، آی پی مورد نظر را وارد کرده و با کلیک بر روی open ، پنجره ای باز شده و از شما نام کاربری را می خواهد وارد کنید پس از ورود نام کاربری و زدن اینتر ، باید پسورد را وارد نمایید – توجه نمایید که به دلایل امنیتی هنگام تایپ پسورد در ظاهر چیزی تایپ نمی شود ، لذا پس از تایپ پسورد کلید اینتر را فشار دهید.
توجه نمایید که به دلایل امنیتی هنگام تایپ پسورد در ظاهر چیزی تایپ نمی شود ، لذا پس از تایپ پسورد کلید اینتر را فشار دهید.
تنظیم Host Name
اکنون که وارد سرور شدیم یک Hostname و FQDN برای سرور تعیین می کنیم. تنظیم صحیح Hostname و FQDN باعث تسریع در اتصال به سرور در آینده خواهد شد چرا که دیگر نیاز به بخاطر سپاری آدرس IP سرور نخواهید داشت.برای ست کردن هاست نیم ، کامنت زیر را استفاده نمایید: ) دقت نمایید که server.azmagroup.ir باید با نام مورد نظر شما جایگزین شود)
echo "server.azmagroup.ir" | sudo tee /etc/hostname
sudo hostname -F /etc/hostname
sudo reboot
البته برای اتصال به سرور با استفاده از آدرس مورد نظر ابتدا باید برای ساب دامین server یک رکورد A ، در کنترل پنل DNS ایجاد کنید. حالا پس از آپدیت شدن DNS ( حداکثر ۴۸ ساعت) می توانید به سرور با hostname جدید متصل شوید.
تنظیم Timezone
برای تنظیم زمان سرور باید پکیچ tzdata را بر روی سرور پیکربندی کنیم. با این عمل مطمئن خواهیم شد که فایل های لاگ سیستم زمان و تاریخ صحیح را نمایش می دهند. دستور زیر روند پیکربندی پکیج tzdata را انجام می دهد:
sudo dpkg-reconfigure tzdata

با مشاهده یک رابط کاربری ساده GUI ، حالا شما می توانید محل جغرافیایی مورد نظر خود را مشخص نمایید
Asia –> Tehran
به محض تعیین یک تایم زون جدید ، زمان و تایخ فعلی نمایش داده می شود :

نصب بروز رسانی های نرم افزاری
اگرچه همین اکنون سرور خود را راه اندازی نمودید ، احتمال دارد تعدادی پکیج نرم افزاری منقضی شده باشند بنابراین برای اطمینان از بروزرسانی نرم افزارها و پکیج های نصب شده از دستور زیر استفاده می کنیم:
sudo apt update
وقتی کامل شد اجازه بدهید تا همه پکیج های جاری آپدیت شوند . همچنین از فضای مورد نیاز نیز آگاه خواهید شد.
sudo apt upgrade
وقتی بروز رسانی کامل شد. پکیج های نصب شده نمایش داده خواهند شد همچنین پکیج هایی که دیگر سیستم به آنها نیازی ندارد نیز نمایش داده خواهند شد. و شما می توانید با دستور زیر پکیج های منقضی شده را پاک نمایید.
sudo apt autoremove
بروز رسانی های امنیتی خودکار
بسیار حیاتی است که شما نرم افزارهای سرور را بروز نگه دارید تا آسیب پذیری های نرم افزاری شما برطرف شود. به لطف اوبونتو می توان آپدیت های نرم افزاری را بصورت خودکار انجام داد. با این حال به یاد داشته باشید که این راحتی می تواند بسیار خطرناک باشد و توصیه می شود فقط برای بروزرسانی های امنیتی فعال شود. با این روش بصورت خودکار آسیب پذیری های جدی رفع می گردد . مانند باگ هیربلید در سال ۲۰۱۴
بروز رسانی های نرم افزاری غیر ضروری باید قبل از نصب باید روی استیجینگ سرور آزمایش شوند چرا که ممکن است سایت شما را دان نمایند.
در برخی سیستمها این قابلیت ممکن است بصورت خودکار فعال گردد اما اگر مطمئن نیستید می توانید مراحل زیر را دنبال کنید.
sudo apt install unattended-upgrades
ایجاد فایلهای پیکربندی مورد نیاز
sudo dpkg-reconfigure unattended-upgrades
شما یک تصویر ماند زیر خواهید دید:

بله را انتخواب کرده و اینتر را بزنید و سپس فایل کانفیگ را ویرایش می کنیم.
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
با توجه به اطلاعات زیر مطمئن شوید که Allowed-Origins مانند نمونه باشد و سایر موارد یا کامنت یا حذف گردند.
// Automatically upgrade packages from these (origin:archive) pairs
//
// Note that in Ubuntu security updates may pull in new dependencies
// from non-security sources (e.g. chromium). By allowing the release
// pocket these get automatically pulled in.
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
// Extended Security Maintenance; doesn't necessarily exist for
// every release and this system may not have it installed, but if
// available, the policy for updates is such that unattended-upgrades
// should also install from here by default.
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
همچنین ممکن است بخواهید در صورت لزوم سیستم بصورت خودکار بعد از بروز رسانی ریستارت شود یا خیر. حالت پیش فرض ریستارت فوری سیستم بعد از بروزرسانی می باشد ، اما شما می توانید به آن زمان اختصاص دهید یا بطور کامل آن با قراردادن “false” آن را غیر فعال کنید.
ایجاد SSHKeys و اتصال از طریق PUTTY بدون نیاز به وارد کردن پسورد
VPS برای همه افراد در اینترنت قابل رویت است شما باید یک گواهی کلید عمومی را بجای پسورد برای اتصال بکار ببرید زیرا SSHKey راه بسیار ایمن تری در مقایسه با پسورد تنها می باشد. چرا که پسورد بسادگی با یک حملهbrute-force کرک می شود در حالی که رمز گشایی SSHKeys تنها بایک حمله brute-force تقریبا ناممکن است . با SSHKeys هر کامپیوتر یک کلید عمومی و یک کلید خصوصی خواهد داشت (دو الگوریتم لینک شده ، که امکان شکستن ندارند)
درحال حاضر نیازی به بسط موضوع دلایل برتری SSHKeys در این مطلب نمی شود لذا در این بخش از تنظیمات سرور مجازی تنها روش اجرای آن را ادامه می دهیم.
برای تولید SSHKeys به یکی دیگر از نرم افزارهایی که با همان Putty نصب شده است نیاز داریم. که نام آن Puttygen می باشد .
نحوه استفاده از Puttygen برای تولید SSHKeys
- با اجرای نرم افزار تصویری مانند زیر خواهد داشت
بر روی generate کلیک کنید و موس خود را تند تند تکان دهید تا کلید ساخته شود
Tehran به محض تعیین یک تایم زون جدید ، زمان و تایخ فعلی نمایش داده می شود : نصب بروز رسانی های نرم افزاری اگرچه همین اکنون سرور خود را راه اندازی نمودید ، احتمال دارد تعدادی پکیج نرم افزاری منقضی شده باشند بنابراین برای اطمینان از بروزرسانی نرم افزارها و پکیج های نصب شده از دستور زیر استفاده می کنیم: sudo apt update وقتی کامل شد اجازه بدهید تا همه پکیج های جاری آپدیت شوند . همچنین از فضای مورد نیاز نیز آگاه خواهید شد. sudo apt upgrade وقتی بروز رسانی کامل شد. پکیج های نصب شده نمایش داده خواهند شد همچنین پکیج هایی که دیگر سیستم به آنها نیازی ندارد نیز نمایش داده خواهند شد. و شما می توانید با دستور زیر پکیج های منقضی شده را پاک نمایید. sudo apt autoremove بروز رسانی های امنیتی خودکار بسیار حیاتی است که شما نرم افزارهای سرور را بروز نگه دارید تا آسیب پذیری های نرم افزاری شما برطرف شود. به لطف اوبونتو می توان آپدیت های نرم افزاری را بصورت خودکار انجام داد. با این حال به یاد داشته باشید که این راحتی می تواند بسیار خطرناک باشد و توصیه می شود فقط برای بروزرسانی های امنیتی فعال شود. با این روش بصورت خودکار آسیب پذیری های جدی رفع می گردد . مانند باگ هیربلید در سال ۲۰۱۴ بروز رسانی های نرم افزاری غیر ضروری باید قبل از نصب باید روی استیجینگ سرور آزمایش شوند چرا که ممکن است سایت شما را دان نمایند. در برخی سیستمها این قابلیت ممکن است بصورت خودکار فعال گردد اما اگر مطمئن نیستید می توانید مراحل زیر را دنبال کنید. sudo apt install unattended-upgrades ایجاد فایلهای پیکربندی مورد نیاز sudo dpkg-reconfigure unattended-upgrades شما یک تصویر ماند زیر خواهید دید: بله را انتخواب کرده و اینتر را بزنید و سپس فایل کانفیگ را ویرایش می کنیم. sudo nano /etc/apt/apt.conf.d/50unattended-upgrades با توجه به اطلاعات زیر مطمئن شوید که Allowed-Origins مانند نمونه باشد و سایر موارد یا کامنت یا حذف گردند. // Automatically upgrade packages from these (origin:archive) pairs // // Note that in Ubuntu security updates may pull in new dependencies // from non-security sources (e.g. chromium). By allowing the release // pocket these get automatically pulled in. Unattended-Upgrade::Allowed-Origins { “${distro_id}:${distro_codename}”; “${distro_id}:${distro_codename}-security”; // Extended Security Maintenance; doesn’t necessarily exist for // every release and this system may not have it installed, but if // available, the policy for updates is such that unattended-upgrades // should also install from here by default. “${distro_id}ESMApps:${distro_codename}-apps-security”; “${distro_id}ESM:${distro_codename}-infra-security”; // “${distro_id}:${distro_codename}-updates”; // “${distro_id}:${distro_codename}-proposed”; // “${distro_id}:${distro_codename}-backports”; }; همچنین ممکن است بخواهید در صورت لزوم سیستم بصورت خودکار بعد از بروز رسانی ریستارت شود یا خیر. حالت پیش فرض ریستارت فوری سیستم بعد از بروزرسانی می باشد ، اما شما می توانید به آن زمان اختصاص دهید یا بطور کامل آن با قراردادن “false” آن را غیر فعال کنید. ایجاد SSHKeys و اتصال از طریق PUTTY” width=”484″ height=”476″ data-lazy- data-lazy- data-lazy-src=”https://film2018downloadb.ir/wp-content/uploads/2021/06/_306_راهنمای-جامع-تنظیمات-سرور-مجازی-و-امنی.jpg”/>
قسمت آبی رنگ کلید عمومی شما است که باید آن را کپی نموده و و طبق آموزش در سرور آپلود نمایید.
دربخش Key comment می توانید اطلاعاتی را که دوست دارید وارد کنید . (عموما ایمیل یا نام شرکت و … می تواند باشد و معمولا برای مواردی که به بیش از یک زوج کلید نیاز است کاربرد دارد)
بخش Key pssphrase نیز اختیاری می باشد و عملا بعنوان یک پسورد دوم استفاده می شود ولی اگر می خواهید پروسه اتصال به سرور را خودکار سازید این بخش را خالی رها کنید
حالا باید کلیدهای ساخته شده را ذخیره نمایید
نکته بسیار مهم : کلید خصوصی تنها یکبار تولید می شود و باید آن را در محل امنی نگهداری کنید اگر کلید خصوصی را گم کنید و ورود با نام کاربری و رمز عبور را فراموش نمایید هیچگاه دیگر نخواهید توانست به سرور متصل شوید!
اکنون برا ی بررسی کارکرد درست sshKeys ، پنجره سرور را ببندید تا دوباره با استفاده از این کلید و بدون وارد نمودن پسورد به سرور وارد شویم.
قرار دادن کلید عمومی در سرور
پس ار ورود به سرور دستورهای زیر را اجرا نمایید:
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
سپس دستور زیر را اجرا نمایید با این دستور شما یک فایل برای ذخیره کلید عمومی بر روی سرور ایجاد می کنید
sudo nano ~/.ssh/authorized_keys
حالا همان قسمت آبی را که از روی Puttygen کپی کرده بودیم را paste نموده وبا زدن دکمه های Ctr + x و تایپ حرف y فایل را ذخیره می کنیم.

ایجاد پروفایل Putty برای ذخیره تنظیمات اتصال به سرور:
بر روی ویندوز خودتان مجددا برنامه Putty را اجرا کنید:
در قسمت Hostneme آی پی یا نام هاست خود را وارد کنید و در قسمت پورت عدد ۲۲ را وارد نمایید
و با رفتن به مسیر Connection > SSH و کلیک بر روی Auth در قسمت مشخص شده در تصویر زیر، فایل کلید خصوصی را آدرس دهی نمایید:
سپس بر بخش Sessions برگشته و نامی را برای این تنظیمات در فیلد Saved Sessions وارد نموده و نهایتا روی save کلیک کنید.
اکنون که یک پروفایل برای اتصال به سرور با کلید خصوصی خود ایجاد نمودیم کافیست تا بر روی پروفایل مورد نظر دبل کلیک نموده تا به سرور متصل شوید. د رادامه خواهید دید که تنها با نوشت نام کاربری و بدون نیاز به هیچ پسوردی به سرور متصل خواهید شد.
حالا پس از مطمئن شدن از اتصال وقت آن است تا ورود با نام کاربری و پسورد را در سرور غیر فعال نماییم پس دستور زیر را اجرا کنید:
sudo nano /etc/ssh/sshd_config
و با جایگزینی عبارات
#PasswordAuthentication yes
با عبارات
PasswordAuthentication no
نکته:
برای جستجوی یک عبارت در ویرایشگر nano می توانید از ترکیب کلیدهای Ctr+w استفاده نمایید
در هنگام جستجوی عبارت PasswordAuthentication دقت کنید که شاید در خط دیگری هم این فرمان ذکر شده باشد که آن را هم باید تغییر دهید.
و مانند قبل Ctr + x را فشرده و کلید y و نهایتا اینتر را فشار دهید.
و برای تکمیل پروسه خود عبارت زیر را برای ریستارت سرویس SSH اجرا نمایید:
sudo service ssh restart
حالا قبل از خارج شدن از سرور یک بار دیگر به putty رفته و با دبل کلیک بر روی پروفایل خود مجددا تلاش کنید تا به سرور وصل شوید. اگرموفق له اتصال شدید پس همه تنظیمات درست انجام شده است.
تنظیمات فایروال برای امنیت سرور
فایروال با مسدود نمودن ترافیک شبکه ورودی یک لایه امنیتی دیگر را برای امنیت سرور فراهم می کند. در اینجا قصد داریم تا iptable فایروال را توضیح دهیم. که بیشترین استفاده را در لینوکس دارد و بصورت پیش فرض نصب می گردد. به منظور ساده سازی روند اضافه نمودن قوانین به فایروال از پکیجی به نام ufw که مخفف Uncomplicated Firewall ( فایروال ساده ) می باشد. پکیج Ufw نیز معمولا بصورت پیش فرض نصب می گردد. اما اگر نصب نبود با دستور زیر آن را نصب می کنیم:
اکنون که به ufw دسترسی دارید، شما می توانید قوانین جدید را به آن اضافه نمایید تا کلیه ترافیک ورودی و خروجی مسدود و تنها پورت های SSH (22), HTTP (80), and HTTPS (443) را بصورت باز قراردهد.
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
برای مشاهده اینکه قوانین ما اعمال شده است یا خیر دستور زیر را اجرا می کنیم:
sudo ufw show added
قبل از فعال کردن فایروال ابتدا مطمئن شوید که پورت ۲۲ یا همان پورت SSH را باز نموده اید. در غیر اینصورت دیگر نمی توانید به سرور خود متصل شوید . وقتی از همه چیز اطمینان حاصل نمودید دستور زیر را اجرا نمایید.
sudo ufw enable
برای تایید قوانین دستور زیر را نیز باید وارد نمایید:
sudo ufw status verbose

نصب پکیج Fail2ban
این پکیج ابزاری است که همراه با فایروال کار می کند و آی پی هایی را که علائم مخرب دارند، در خواست های زیاد و ناموفق رمز عبور ارسال می کنند و .. را مسدود می کرده و نهایتا برای آپدیت قوانین فایروال برای ریجکت آی پی های مخرب برای دوره های زمانی مشخص استفاده می شود.
برای نصب دستور زیر را اجرا می کنیم:
sudo apt install fail2ban
پیکربندی پیش فرض می تواند برای مدت ۱۰ دقیقه بعد از ۶ تلاش ناموفق SSH برای ورود به سیستم آن IP را مسدود کند .
حال برای اجرای این پکیج دستور زیر را می نویسیم:
sudo service fail2ban start
بسیار خب بسترسازی به پایان رسید و شما حالا یک سرور با کانفیگ بسیار عالی برای نصب وردپرس دارید و مراحل لازم برای جلوگیری از دسترسی های غیر مجاز را نیز تا حدود بالایی مسدود نموده اید. البته در نظر داشته باشید که امنیت سرور مجازی یک پرووسه مداوم است و باید بیاد داشته باشید که نکات زیررا همواره رعایت نمایید


