این همان ترتیبی است که در پروژهها اجرا میکنیم. هر گام مستقل است؛ میتوانید از بالا شروع کنید و هر جا خواستید بایستید.
۱. دسترسی SSH را ببندید
ورود با رمز را غیرفعال کنید و فقط کلید بپذیرید:
# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
AllowUsers deploy
MaxAuthTries 3بعد از هر تغییر، قبل از بستن نشست فعلی، با یک ترمینال جدا ورود را تست کنید. این تنها راهی است که خودتان را بیرون قفل نمیکنید.
۲. فایروال با سیاست پیشفرض بستن
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 443/tcp
ufw enableقاعده طلایی: هر پورتی که نمیتوانید دلیلش را در یک جمله توضیح دهید، باید بسته باشد.
۳. بهروزرسانی خودکار امنیتی
apt install unattended-upgrades
dpkg-reconfigure --priority=low unattended-upgradesفقط وصلههای امنیتی را خودکار کنید، نه همه بستهها. بهروزرسانی کامل خودکار میتواند وسط شب سرویس را بشکند.
۴. حذف سرویسهای غیرضروری
systemctl list-units --type=service --state=runningهر سرویسی که نمیشناسید، تحقیق کنید. سرویسی که اجرا نمیشود، آسیبپذیر هم نیست.
۵. کاربر مجزا برای هر برنامه
هیچ برنامهای نباید با root اجرا شود. برای هر سرویس یک کاربر بدون شل بسازید:
useradd --system --no-create-home --shell /usr/sbin/nologin appsvc۶. Fail2ban برای تلاشهای مکرر
[sshd]
enabled = true
maxretry = 4
bantime = 3600
findtime = 600۷. یکپارچگی فایل
با AIDE یا ایجنت ارگ باکس، تغییرات /etc، /bin و /usr/bin را رصد کنید. تغییر ناگهانی در این مسیرها تقریباً همیشه معنادار است.
۸. زمانبندی هماهنگ
timedatectl set-ntp trueبدون ساعت هماهنگ، همبستهسازی لاگ بین چند سرور عملاً غیرممکن است. این گام ساده، هنگام بررسی رخداد ارزش زیادی دارد.
۹. ارسال لاگ به بیرون از میزبان
# /etc/rsyslog.d/60-forward.conf
*.* @@log-collector.internal:6514اگر لاگ فقط روی همان سرور باشد، مهاجمی که سرور را گرفته میتواند پاکش کند.
۱۰. پشتیبانگیری آزمودهشده
پشتیبانی که هیچوقت بازیابی نشده، پشتیبان نیست؛ یک فرض است. حداقل فصلی یک بار بازیابی کامل را تمرین کنید و زمانش را ثبت کنید.
تأیید نهایی
بعد از اجرای همه گامها، از بیرون اسکن کنید:
nmap -sS -sV -p- your-server-ipهر پورتی که در خروجی میبینید و انتظارش را نداشتید، همان چیزی است که باید بعد از این روی آن کار کنید.