Yaser Shahi Profile picture
WordPress, Linux, and self-hosting insights.

Dec 16, 2024, 16 tweets

۱. سرور مجازی #لینوکس خریدیم و فروشنده، آی‌پی تمیز و پسورد روت رو برامون فرستاده.
قبل از اینکه شروع کنیم به استفاده و مثلا روی سرورمون وردپرس نصب کنیم، لازمه تا یه سری تنظیمات اولیه، برای مدیریت راحت و امنیت بهتر انجام بدیم.

۲. از بررسی می‌کنیم که IP سرور فیلتر نباشه، اگه بود مرجوع می‌کنیم!
بعد باید Ubuntu LTS 24.04.x روی سرورمون نصب کنیم.
اگه فروشنده، پنل مدیریت نداده بهتون، تیکت بزنید تا خودش براتون نصب کنه، اگر هم پنل در دسترسه، وارد بشید و درصورت نیاز Reinstall بزنید.check-host.net

۳. برای ورود به سرور، نرم‌افزار Terminal رو باز می‌کنیم و از طریق SSH به سرور لاگین میشیم. اگه سیستم‌تون ویندوزه، پیشنهاد می‌کنم اول WSL رو فعال کنید بعد ادامه بدید:

۴. تنظیم هاست‌نیم

خیلی از سرویس‌ها و نرم‌افزارها برای اینکه درست کار کنن به FQDN نیاز دارن پس یه زیردامنه مثل میسازیم و به سرورمون پوینت می‌کنیم.
بعد فایل hostname و hosts رو طبق تصویر زیر ویرایش می‌کنیم: server.mydomain.com

۵. تنظیم DNS

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

۶. فعال‌سازی TCP BBR

از کرنل نسخه ۴.۹ لینوکس یکی از گزینه‌های کنترل ترافیک در لایه TCP که می‌تونه باعث کاهش تاخیر در انتقال داده بشه، الگوریتم TCP BBR گوگله. فعالش می‌کنیم:

۷. ساخت کاربر جدید

این آخرین باری بود که با کاربر روت وارد سرور شدیم. یه کاربر جدید برای خودمون می‌سازیم و به گروه sudo اضافه می‌کنیم تا بتونه دستوراتی که به دسترسی‌های بالاتر نیاز داره رو اجرا کنه:

۸. آپدیت و ریبوت

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

۹.ساخت جفت کلید

روی سیستم می‌تونیم جفت کلید ssh تولید کنیم تا ورودمون به سرور راحت‌تر بشه.
بعد کلید عمومی رو به سرور می‌فرستیم.
یه فایل کانفیگ ssh هم روی کامپیوترمون میسازیم تا از شر این دستور طولانی برای ورود راحت بشیم:

۱۰. جلوگیری از ورود root

حالا که با یوزر خودمون لاگین شدیم، فایل کانفیگ ssh رو ویرایش می‌کنیم و کلا ورود با یوزر root رو میبندیم:

۱۱. سودو بدون پسورد (پیشنهاد نمیشه)

بعضی دوستان از اینکه بعد از اجرای دستورها با sudo باید پسورد وارد کنن اذیتن ولی نیاز ما به سودو در حالت عادی خیلی کمه پس این مرحله رو رد کنین و انجام ندین!

۱۲. تنظیم منطقه زمانی

هماهنگی ساعت سرور و کلاینت می‌تونه مهم باشه برای لاگ‌ها، کرون جاب، عملکرد درست بعضی سرویس‌ها...
ساعت سرور رو اینجا میذاریم تهران باشه:

۱۳. نصب پکیج‌های عمومی

چون ایزوی سرویس دهنده‌های مختلف ممکنه با هم فرق داشته باشه و پکیج‌ها کم و زیاد شده باشن و هم برای داشتن امکانات اولیه این پکیج‌ها رو نصب می‌کنیم:

۱۴. فعال‌سازی فایروال

در این مرحله دلیلی نداره پورت‌های سرور الکی باز باشن. بنابراین فقط پورت‌های ۲۲ و ۸۰ و ۴۴۳ رو مجاز می کنیم و فایروال رو فعال می‌کنیم.

۱۵. نصب Fail2ban

از همون دقایق اول روشن شدن سرور، بات‌ها شروع می‌کنن تا لاگین شن به سرور. چون این تلاش‌ها log میشن باعث میشه تا هارد درگیر بشه. فعلا یه Fail2ban نصب می‌کنیم تا این مورد کمتر بشه.

۱۶. دستورات وارد شده توی این رشته توییت رو گذاشتم اینجا که در دسترس باشه:
gist.github.com/yasershahi/e2e…

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling