يبدأ كل VPS جديد تقريبًا بالطريقة نفسها: تدخل بصفة root، وتثبّت بضعة أشياء، وبعد شهر ما زلت root. يعمل هذا إلى أن يحذف سكربت لصقته المجلد الخطأ. إعداد مستخدم عادي مع sudo يستغرق خمس دقائق، والترتيب أهم من الأوامر — إن أخطأت فيه أغلقت الباب على نفسك.
إليك التسلسل الآمن لـUbuntu 22.04/24.04 وDebian 12.
1. أنشئ المستخدم
بصفة root:
adduser deploy
usermod -aG sudo deploy
يطلب adduser كلمة مرور وبعض البيانات الاختيارية (اضغط Enter لتجاوزها). اختر كلمة مرور حقيقية: ستكتبها مع sudo. على صورة Debian مصغّرة، نفّذ أولًا apt install -y sudo إن كان الأمر غير موجود.
2. أعطه مفتاح SSH الخاص بك
الطريقة الأسهل هي نسخ المفاتيح المصرّح بها لـroot مع الحفاظ على الملكية الصحيحة:
rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy
وإن فضّلت فعلها يدويًا:
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
الصلاحيات الخاطئة هي السبب الكلاسيكي لفشل الدخول بالمفتاح بصمت. يتجاهل SSH ملف authorized_keys الذي يستطيع مستخدمون آخرون الكتابة فيه.
3. اختبر قبل أن تغيّر أي شيء
أبقِ جلسة root مفتوحة. في طرفية جديدة:
ssh -p 22 deploy@203.0.113.10
sudo whoami
استخدم عنوانك ومنفذك — في خطة NAT هو منفذ SSH الشخصي من لوحة التحكم. إذا طبع sudo whoami الكلمة root فكل شيء على ما يرام. وإن فشل الدخول، فما زالت نافذة root بين يديك لإصلاح الأمر.
4. أوقف دخول root
الآن أغلق الباب. أنشئ ملف drop-in صغيرًا بدل تعديل الإعداد الرئيسي:
cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh
sshd -t يفحص الصياغة أولًا. إعداد معطوب مع reload هو ما يوصل الناس إلى الحاجة إلى وحدة التحكم. وPasswordAuthentication no لا معنى له إلا بعد أن يعمل الدخول بالمفتاح لمستخدمك الجديد — وهذا ما اختبرته للتو.
افتح طرفية أخرى وتأكد أن root يُرفض وأن deploy ما زال يدخل. ثم أغلق جلسة root القديمة.
5. اختياري: sudo دون كلمة مرور للأتمتة
إن احتاج سكربت نشر إلى sudo دون سؤال، فامنحه هذا بالضبط ولا شيء أوسع:
visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
بصراحة، NOPASSWD: ALL مغرٍ، لكنه يعني أن مفتاحًا مسروقًا يساوي root. قيّده بالأوامر التي تشغّلها الأتمتة.
إن حدث خطأ ما
وحدة التحكم عبر الويب في اللوحة لا تعتمد على SSH ولا على الجدار الناري. ادخل منها، وأصلح الملف في /etc/ssh/sshd_config.d/، ونفّذ reload، وانتهى الأمر. شرحنا خطوات الاسترداد كاملة في كيف تعود إلى VPS أُغلق عليك.
ماذا بعد
- انتقل فعليًا إلى الدخول بالمفتاح فقط: المصادقة بمفتاح SSH.
- خفّف ضجيج محاولات التخمين: fail2ban.
- أكمل بقية الأساسيات مع قائمة أمان VPS الجديد.
خيارات الوصول لكل خطة موجودة في توثيق الوصول. حتى خطة Nano بـ$3 تستحق مستخدمًا بلا root — إنها أرخص ترقية أمنية على الإطلاق.
التعليقات
لا تعليقات بعد. كن الأول.