دواپس و لینوکس

راه‌اندازی سرور اوبونتو برای توسعه‌دهندگان

نویسنده: Hadi ZareZadeh۴ اردیبهشت ۱۴۰۵۳۱۲۲ بازدید
راه‌اندازی سرور اوبونتو برای توسعه‌دهندگان

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

یک کاربر deploy بسازید

هرگز اپلیکیشن‌ها را به‌عنوان root اجرا نکنید. یک کاربر اختصاصی با دسترسی sudo بسازید:

adduser deploy
usermod -aG sudo deploy

سخت‌سازی SSH

فقط احراز هویت کلیدمحور، بدون ورود با رمز:

# روی ماشین محلی خودتان، کلید عمومی را کپی کنید
ssh-copy-id deploy@your-server-ip

# روی سرور، /etc/ssh/sshd_config را ویرایش کنید
PasswordAuthentication no
PermitRootLogin no

sudo systemctl restart sshd
قبل از غیرفعال کردن احراز هویت با رمز، در یک ترمینال جداگانه تأیید کنید که ورود با کلید کار می‌کند. یک‌بار خودتان را بیرون بیندازید و هرگز این قدم را فراموش نمی‌کنید.

فایروال با UFW

ufw default deny incoming
ufw default allow outgoing
ufw allow OpenSSH
ufw allow 'Nginx Full'   # یا پورت‌های مشخص
ufw enable
ufw status

به‌روزرسانی‌های امنیتی خودکار

sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

این وصله‌های امنیتی را خودکار نصب می‌کند. ارتقاهای نسخه اصلی را همچنان دستی انجام می‌دهید، اما CVEهای حیاتی بدون به‌خاطر سپردن شما وصله می‌شوند.

بسته‌های ضروری

sudo apt update && sudo apt upgrade -y
sudo apt install git curl wget unzip htop fail2ban

Fail2ban لاگ‌های احراز هویت را زیر نظر می‌گیرد و IPها را بعد از تلاش‌های مکرر ناموفق ورود مسدود می‌کند. بیمه ارزان.

منطقه زمانی و locale را تنظیم کنید

sudo timedatectl set-timezone Europe/Berlin
sudo locale-gen en_US.UTF-8

اشتباهات رایج

  • روشن گذاشتن SSH روت. بات‌ها مدام دنبال این می‌گردند.
  • نبود فایروال. اوبونتوی پیش‌فرض UFW را فعال نمی‌کند؛ همه چیز باز است.
  • پریدن از به‌روزرسانی قبل از نصب نرم‌افزار. از یک پایه وصله‌شده شروع کنید.

بهترین شیوه‌ها

  • خط پایه‌تان را در یک اسکریپت یا playbook انسیبل مستند کنید — تکرارپذیری مهم است.
  • قبل از استقرار اپ‌ها از سرور پیکربندی‌شده اسنپ‌شات بگیرید — بازگشت آنی است.
  • پورت‌های باز را ماهانه با ss -tlnp بازبینی کنید.

جمع‌بندی

یک سرور اوبونتوی سخت‌سازی‌شده بیست دقیقه می‌گیرد و هفته‌ها پشیمانی را جلوگیری می‌کند. کاربر deploy، کلیدهای SSH، UFW، به‌روزرسانی خودکار، fail2ban — این چک‌لیست را قبل از هر چیز دیگری روی هر جعبه جدید اعمال کنید. اپ‌هایتان از شما ممنون خواهند بود و برنامه خوابتان هم همین‌طور.