دواپس و لینوکس
راهاندازی سرور اوبونتو برای توسعهدهندگان
هر سرور جدید اوبونتویی که راه میاندازم قبل از اینکه هیچ کد اپلیکیشنی به آن دست بزند، همان رفتار پایه را میگیرد. پریدن از این قدم همان راهی است که به یک جعبه بهخطرافتاده یا یک پورت مرموز باز به اینترنت میرسید. این چکلیستی است که طی میکنم — حدود بیست دقیقه طول میکشد و فوراً خرجش درمیآید.
یک کاربر 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 — این چکلیست را قبل از هر چیز دیگری روی هر جعبه جدید اعمال کنید. اپهایتان از شما ممنون خواهند بود و برنامه خوابتان هم همینطور.