سختسازی یک VPS Debian تازه در ده دقیقه
یک VPS تازه اولین تلاش brute-force SSH را در عرض چند دقیقه بعد از boot شدن دریافت میکند. این چکلیست کوتاه و قاطعانه است که درهای آسان را میبندد — کلیدها، فایروال، fail2ban، بهروزرسانیهای خودکار — قبل از اینکه هر چیز دیگری نصب کنید.
بهروزرسانی: 2026-06-12

log احراز هویت هر سرور جدیدی را نگاه کنید و تشعشع پسزمینه اینترنت فوراً ظاهر میشود: رباتهای credential-stuffing که دیکشنریها را در برابر root میچرخانند، اسکنرهایی که آسیبپذیریهای سال گذشته را جستجو میکنند، crawlerهایی که هر چیزی که روی پورت 80 پاسخ میدهد fingerprint میکنند. هیچکدام شخصی نیست و تقریباً همه خودکار است، که خبر خوب است — حملات خودکار توسط بهداشت پایه شکست میخورند، قبل از deploy کردن workload واقعی شما. این راهنما همان بهداشت است، فشردهشده در ده دقیقه روی Debian 12/13 (همه چیز با ویرایشهای جزئی به Ubuntu ترجمه میشود). عمداً یک چارچوب ممیزی ۴۰۰۰ کلمهای نیست: درهایی است که رباتهای واقعی واقعاً امتحان میکنند، به ترتیب اهمیت بسته شده. آن را روی هر سروری که اینجا deploy میکنید اجرا کنید، سپس به VPN، نود یا سرور ایمیل که برای آن آمدهاید بپردازید.
آنچه این چکلیست عمداً نادیده میگیرد
Port-knocking، دیوارهای sysctl سختسازی هسته، تنظیم SELinux/AppArmor، مجموعههای تشخیص نفوذ — همه ابزارهای واقعی، هیچکدام اولویتهای روز اول روی یک VPS single-purpose نیستند، و چندتا از آنها به راحتی به lockout تبدیل میشوند. ۸۰/۲۰ اینجا صادقانه است: کلیدها + بدون رمزعبور + default-deny + auto-patch اساساً همه به خطر انداختنهای هدفگیرینشده را متوقف میکند. ماشینآلات سنگین را اضافه کنید وقتی مدل تهدید شما یک دشمن نام میبرد که مبانی را شکست میدهد — و اگر حریم خصوصی سطح دیسک در مدل شما اهمیت دارد، به یاد داشته باشید لایه KVM به شما اجازه میدهد رمزنگاری full-disk داخل مهمان را اجرا کنید.
Backupها بخشی از امنیت هستند
سختسازی احتمال را کاهش میدهد؛ backupها آسیب را محدود میکنند. Snapshotهای هفتگی روی هر پلن اینجا شاملشده هستند، اما snapshotها با سرور زندگی میکنند — برای هر چیزی که نمیتوانید از دست بدهید، نسخههای آفشور رمزنگاریشده هم push کنید: restic یا borg به یک سرور دوم (یک Pup ۳.۵۰ دلاری در منطقه دیگر هدف backup مرتبی میشود) برای راهاندازی چند دقیقه طول میکشد. یک بار restore را آزمون کنید؛ یک backup آزموننشده یک امید است، نه یک برنامه.
- یک بار وارد شوید، همه چیز را بهروز کنید
apt update && apt full-upgrade -y && rebootTemplateها snapshot هستند؛ شکاف بین تاریخ snapshot و امروز دقیقاً پنجرهای است که اسکنرها جستجو میکنند. ابتدا patch کنید، به kernel جدید reboot کنید، سپس پیکربندی کنید.
- کاربر خود را ایجاد کرده و کلید SSH خود را نصب کنید
adduser ops && usermod -aG sudo ops mkdir -p /home/ops/.ssh && nano /home/ops/.ssh/authorized_keys # paste your ed25519 public key chmod 700 /home/ops/.ssh && chmod 600 /home/ops/.ssh/authorized_keys && chown -R ops:ops /home/ops/.sshاگر ندارید کلید را روی ماشین محلی خود ایجاد کنید:
ssh-keygen -t ed25519. قبل از ادامهssh ops@your-ipرا در یک ترمینال دوم آزمون کنید. - sshd را قفل کنید
فایل
/etc/ssh/sshd_config.d/hardening.confرا ویرایش کنید:PermitRootLogin no PasswordAuthentication no KbdInteractiveAuthentication no MaxAuthTries 3 AllowUsers opsسپس
systemctl restart ssh— با تأیید ابتدایی کار کردن session مبتنی بر کلید شما. حدس زدن رمزعبور اینجا میمیرد: هیچ رمزعبوری برای حدس زدن وجود ندارد. جابجایی پورت به چیزی غیراستاندارد سروصدای log را کاهش میدهد اما ظاهری است، نه امنیت؛ اگر دوست داشتید برای نظافت انجام دهید. - یک فایروال default-deny راهاندازی کنید (nftables)
فایروال بومی Debian، ruleset حداقلی در
/etc/nftables.conf:table inet filter { chain input { type filter hook input priority 0; policy drop; ct state established,related accept iif lo accept tcp dport 22 accept icmp type echo-request limit rate 5/second accept icmpv6 type { echo-request, nd-neighbor-solicit, nd-neighbor-advert, nd-router-advert } accept } }systemctl enable --now nftables. پورتهای بیشتر را فقط با deploy کردن سرویسهایی که به آنها نیاز دارند باز کنید — راهنمای VPN 51820/udp باز میکند، راهنمای ایمیل 25/465/993، و به همین ترتیب. Default-deny یعنی یک daemon آزمایشی فراموششده به جای نقض غیرقابل دسترس است. - fail2ban را برای سروصدای باقیمانده اضافه کنید
apt install -y fail2ban printf "[sshd] enabled = true maxretry = 4 bantime = 1h " > /etc/fail2ban/jail.d/ssh.local systemctl enable --now fail2banبا رمزعبورهای از قبل غیرفعالشده این دفاع در عمق است به علاوه بهداشت log — متخلفان مکرر به جای پر کردن log احراز هویت شما در فایروال حذف میشوند.
- بهروزرسانیهای خودکار امنیتی را فعال کنید
apt install -y unattended-upgrades dpkg-reconfigure -plow unattended-upgradesتیم امنیتی Debian حالا سرور شما را در هنگام خواب patch میکند. مؤثرترین خط در این صفحه بر حسب ضربه کلید: اکثر به خطر انداختنهای واقعی از patchهایی که ماههاست وجود دارند سوءاستفاده میکنند.
- گذر تأیید دو دقیقهای
وضعیت را از بیرون تأیید کنید:
ssh root@your-ip # must be refused nmap -p- your-ip # only 22 (and your service ports) open last -a; journalctl -u ssh -n 50 # familiarise yourself with normalاختیاری TOTP 2FA روی خود حساب VPSCrypto اضافه کنید — پنل میتواند سرور را بازسازی یا reimage کند، بنابراین همان مراقبت از root را میطلبد.
پرسشهای متداول
آیا باید پورت SSH را تغییر دهم؟
کنترل سروصدای log است، نه امنیت — اسکنرها در ثانیهها پورتهای غیراستاندارد را با masscan پیدا میکنند. اگر logهای ساکت به شما کمک میکند ناهنجاریهای واقعی را ببینید انجام دهید؛ هرگز آن را به عنوان یک لایه دفاعی حساب نکنید. دفاعهای واقعی احراز هویت فقط-کلید و MaxAuthTries هستند.
اگر رمزعبورها غیرفعال هستند به fail2ban نیاز دارم؟
به طور سخت نه برای SSH — چیزی برای brute-force کردن وجود ندارد. در لیست باقی میماند چون سرویسهای دیگری را که ممکن است بعداً اضافه کنید (ایمیل، پنلها) هم پوشش میدهد و logها را خوانا نگه میدارد. اگر ترجیح میدهید روی یک سرور مینیمالیستی آن را حذف کنید.
آیا فایروال VPS ضروری است وقتی میزبان حفاظت DDoS دارد؟
آنها مشکلات متفاوتی را حل میکنند. کاهش DDoS upstream سیلها را جذب میکند؛ سیاست nftables شما کنترل میکند کدام سرویسها اصلاً قابل دسترس هستند. Default-deny درباره daemonای است که فراموش کردید، نه درباره gigabitها.
در مورد Ubuntu به جای Debian چطور؟
همه چیز اینجا اعمال میشود؛ Ubuntu ufw را به عنوان یک front-end دوستانهتر ارسال میکند (ufw default deny incoming; ufw allow 22/tcp; ufw enable) و unattended-upgrades را به طور پیشفرض روی نسخههای اخیر فعال میکند. سختسازی sshd یکسان است.
اگر خودم را قفل کردم چگونه بازیابی کنم؟
از دسترسی کنسول در ناحیه مشتری استفاده کنید — مستقل از sshd است، بنابراین میتوانید یک config بد را درست کنید یا یک snapshot را بازیابی کنید. به همین دلیل است که config جدید SSH را در یک session دوم آزمون میکنید قبل از بستن اولی.
کاوش بیشتر.
در حدود یک دقیقه یک VPS آفشور راهاندازی کنید
بدون KYC، پرداخت کریپتو، تماماً NVMe. یک پلن انتخاب کنید، با مونرو یا هر کوین اصلی پرداخت کنید و در حدود ۶۰ ثانیه دسترسی root بگیرید.
