SSD Nodes Learn
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-07-22

Webmin على Ubuntu 24.04: التثبيت والتأمين

ثبّت Webmin على Ubuntu 24.04 ثم قيّده: نفق SSH أو قائمة بيضاء لعناوين IP، شهادة Let's Encrypt حقيقية، مصادقة ثنائية، وFail2ban على المنفذ 10000.

ما الذي تبنيه

Webmin لوحة تحكم على الويب تضع واجهة متصفح أمام خادم Linux بأكمله — المستخدمون، الحزم، مهام cron، جدار الحماية، Apache، BIND، الأقراص، ومئة وحدة أخرى — يمكن الوصول إليها عبر HTTPS على المنفذ 10000. التثبيت نفسه ثلاثة أوامر ويستغرق نحو دقيقة واحدة. أما سبب تخصيص هذا الدليل معظم طوله للنصف الثاني، فهو أن Webmin يسجّل الدخول بصفته root ويستطيع فعل كل ما يستطيعه root. Webmin مفتوح على مصراعيه أو بلا مصادقة ليس «خطرًا يُدار»؛ بل هو اختراق كامل للخادم تسبقه صفحة تسجيل دخول لا أكثر. لذا ثبّته خلال عشر دقائق، ثم اقض ما تبقى من الساعة في التأكد من أنك وحدك من يستطيع الوصول إليه.

المتطلبات المسبقة، وتحذير صادق واحد

خادم VPS جديد يعمل بنظام Ubuntu 24.04 من نوع KVM، مع صلاحيات root أو مستخدم sudo. Webmin مكتوب بلغة Perl وخفيف — 1 غيغابايت من RAM يكفي بسهولة، وهو يعمل في وضع الخمول عند أقل بكثير من ربع غيغابايت. يستمع على المنفذ TCP رقم 10000 عبر خادم ويب مدمج خاص به (miniserv.pl)، لا Apache ولا nginx، لذا لا حاجة إلى تثبيت أي شيء آخر أولًا.

هناك أمران يجب حسمهما قبل أن تبدأ. أولًا، الحساب الذي ستسجّل الدخول به: يصادق Webmin على حسابات Unix عبر PAM، لذا تسجّل الدخول بصفتك root أو مستخدمًا في مجموعة sudo مستخدِمًا كلمة مرور Unix الخاصة بذلك الحساب. صور السحابة تكون عادة بالمفاتيح فقط دون كلمة مرور مضبوطة للمستخدم الافتراضي، ولا يستطيع Webmin تسجيل الدخول إلى حساب بلا كلمة مرور. اضبط كلمة مرور بالأمر sudo passwd youruser أولًا، وإلا فشل تسجيل الدخول مهما كتبت.

ثانيًا، وهذا هو التحذير: لا تكتفِ بفتح المنفذ 10000 على الإنترنت ثم تتركه هكذا. قرّر الآن هل ستصل إلى Webmin عبر نفق SSH (موصى به، لا شيء مكشوف) أم ستقصره على عنوان IP الخاص بك. هذا القرار وحده يشكّل كل خطوة أدناه، فاقرأ الخيارين كليهما قبل أن تلمس جدار الحماية.

ثبّت Webmin من المستودع الرسمي

ينشر Webmin مستودع apt موقّعًا. يضيف سكربت الإعداد المستودع ومفتاح توقيعه GPG بحيث تسحب عمليات apt upgrade المستقبلية Webmin كأي حزمة أخرى، فتحصل على تحديثات موثّقة بدلًا من ملف .deb محمّل لا يحدّث نفسه أبدًا.

curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
sudo sh webmin-setup-repo.sh

يطبع السكربت ما يوشك على فعله ويسأل Setup repository? (y/N) — أجب بـ y. عند انتهائه، ثبّت الحزمة. الخيار --install-recommends يسحب اعتماديات Perl ووحدات SSL الشائعة حتى لا تفشل وحدات فردية لاحقًا بأخطاء مكتبات مفقودة.

sudo apt-get install --install-recommends webmin

أعاد Webmin تسمية هذا السكربت من قبل — تشير أدلة أقدم إلى setup-repos.sh — لذا إن أعاد الرابط الخام الخطأ 404، فاحصل على السطر الحالي مباشرة من webmin.com/download بدلًا من التمسك باسم ثابت. التثبيت الصحيح ينتهي بسطر مثل Webmin install complete. You can now login to https://your-host:10000/ as root. الخدمة مفعّلة وتعمل، والإعدادات موجودة تحت /etc/webmin، والطلبات تُسجَّل في /var/webmin/miniserv.log، ومحاولات تسجيل الدخول الفاشلة تذهب إلى syslog، الذي يعني على Ubuntu 24.04 journal الخاص بـ systemd.

تأكد من أنه يعمل فعلًا ويستمع قبل أن تفتح متصفحًا:

sudo systemctl status webmin --no-pager
sudo ss -tlnp | grep 10000

تريد أن ترى حالة active (running) وسطرًا يُظهر miniserv.pl مرتبطًا بـ 0.0.0.0:10000 — يتغيّر هذا العنوان إلى 127.0.0.1:10000 حالما تسلك طريق النفق أدناه. إذا لم يُظهر ss شيئًا على المنفذ 10000، فإن Webmin لم يبدأ؛ اقرأ journalctl -u webmin -n 50 قبل أن تواصل.

أول تسجيل دخول، وتحذير الشهادة

وجّه متصفحك إلى https://YOUR_SERVER_IP:10000. يحدث أحد أمرين على جهاز جديد.

إذا كان ufw مفعّلًا — صورة خادم Ubuntu نفسها تُشحَن معطّلة، لكن كثيرًا من المزوّدين يفعّلونه مسبقًا — فلن تُحمَّل الصفحة إطلاقًا، وهذا مشروح في أنماط الفشل أدناه. أما إن كان المنفذ مفتوحًا، فسيعرض متصفحك حجبًا بملء الصفحة: «Your connection is not private» مع الرمز NET::ERR_CERT_AUTHORITY_INVALID في Chrome، أو SEC_ERROR_UNKNOWN_ISSUER / «Warning: Potential Security Risk Ahead» في Firefox. هذا متوقّع وليس اختراقًا. أنشأ Webmin شهادة موقّعة ذاتيًا عند التثبيت (/etc/webmin/miniserv.pem)، ولأن ما من هيئة إصدار شهادات تكفل لها، يرفض المتصفح الوثوق بها بصمت. الاتصال ما زال مشفّرًا؛ إنه فقط غير مكفول. تجاوز التحذير الآن (Advanced ثم Proceed) — سنستبدل هذه الشهادة على نحو صحيح لاحقًا.

سجّل الدخول بصفتك root أو بمستخدم sudo الخاص بك وكلمة مروره في Unix، فتصل إلى لوحة System Information. زلّة شائعة هنا هي كتابة http:// بدلًا من https://. يرد miniserv بـ HTTP عادي على ذلك المنفذ بالنص الحرفي «This web server is running in SSL mode. Try the URL https://...» — والإصلاح هو حرفيًا تغيير http إلى https في شريط العنوان.

قرار الأمان: كيف ستصل إلى Webmin؟

والآن الجزء الذي يهم. لوحة تعادل صلاحيات root لا ينبغي أن تجلس على الإنترنت المفتوح تجيب على محاولات تسجيل الدخول من كل ماسح (scanner) على وجه الأرض. أمامك خياران يمكن الدفاع عنهما، مرتّبان حسب الأفضلية.

نفق SSH في الخيار ب هو الأفضل، لأنه لا يكشف شيئًا على الإطلاق. القائمة البيضاء لعناوين IP في الخيار أ مقبولة إذا كان عنوانك ثابتًا. عدم الأخذ بأي منهما هو بالضبط الخطأ الذي يوجد هذا الدليل بأكمله لمنعه. وإذا كنت تفضّل الوصول إلى Webmin عبر شبكة خاصة بدلًا من أي منهما، ضع الجهاز خلف شبكة WireGuard VPN مستضافة ذاتيًا واربط Webmin بعنوان النفق بدلًا من العنوان العام.

الخيار أ: قصر Webmin على عنوان IP الخاص بك

في اللوحة، افتح Webmin، ثم Webmin Configuration، ثم IP Access Control. اختر «Only allow from listed addresses» وأدخل عنوان IP العام الخاص بك، الذي يمكنك إيجاده بتشغيل curl ifconfig.me على حاسوبك المحمول. احفظ. يكتب Webmin هذا في سطر allow= داخل /etc/webmin/miniserv.conf ويعيد تشغيل نفسه.

الفخّ: إذا كان عنوان IP في منزلك متغيّرًا وتبدّل، أو أخطأت في كتابة العنوان، فأنت تقطع وصولك عن نفسك. يعرض المتصفح عندها «Access denied for <your IP>» ولا يظهر أي نموذج تسجيل دخول، ولا سبيل للعودة عبر الويب. أصلح ذلك من طرفية الخادم عبر SSH أو VNC الخاص بمزوّد الخدمة:

sudo nano /etc/webmin/miniserv.conf
# find the line that begins  allow=
# correct your IP, or delete the whole line to allow all again
sudo systemctl restart webmin

حذف سطر allow= يعيد الوصول المفتوح بالكامل، لذا لا تفعل ذلك إلا للاستعادة، ثم اضبط قيمة صحيحة فورًا.

الخيار ب: الربط بـ localhost والنفق عبر SSH (موصى به)

أفضل من أي قائمة بيضاء هو ألا تستمع على الواجهة العامة إطلاقًا. اطلب من miniserv الارتباط فقط بواجهة loopback، ثم صِل إليه عبر نفق SSH مشفّر تثق به أصلًا.

عدّل /etc/webmin/miniserv.conf وأضف، أو غيّر، سطرًا واحدًا:

bind=127.0.0.1

أعد التشغيل بالأمر sudo systemctl restart webmin. أصبح Webmin الآن غير قابل للوصول من الإنترنت — مسح المنفذ 10000 لا يجد شيئًا، وفحص ss من قبل يُظهر الآن ارتباطه بـ 127.0.0.1:10000. من حاسوبك المحمول، افتح نفقًا:

ssh -L 10000:localhost:10000 youruser@YOUR_SERVER_IP

اترك تلك الجلسة مفتوحة وتصفّح إلى https://localhost:10000. تمر حركة المرور داخل SSH، المصادَق عليها والمشفّرة أصلًا بمفتاحك، فيمكنك هنا قبول الشهادة الموقّعة ذاتيًا بأمان — فطبقة SSH هي التي تقدّم الحماية الحقيقية. أغلق جلسة SSH ويختفي Webmin. لا شيء لإضافته إلى قائمة بيضاء، ولا شيء مكشوف، ولا خدمة إضافية لتحصينها.

إذا ضبطت bind=127.0.0.1 ونسيت النفق، يتوقف الوصول عن بُعد ببساطة — هذه هي الميزة تعمل كما ينبغي، لا عطلًا. استعد الوصول بالطريقة نفسها المتبعة في الخيار أ: من الطرفية، احذف سطر bind أو اضبط bind=0.0.0.0، ثم أعد التشغيل. هذه عادة النفق نفسها التي تستخدمها للوصول إلى جهاز تطوير بعيد يشغّل Claude Code داخل tmux — جلسة SSH واحدة، كل شيء خاص، لا شيء إضافي يستمع على الواجهة العامة.

استبدل الشهادة الموقّعة ذاتيًا بشهادة حقيقية

إذا كشفت Webmin فعلًا على اسم مضيف بموجب الخيار أ، تخلَّص من تحذير المتصفح بشهادة Let's Encrypt حقيقية. تحتاج إلى اسم DNS — لنقل panel.example.com — بسجل A يشير إلى الخادم، وشيء يجيب على تحدي HTTP للمنفذ 80 أثناء التحقق.

يملك Webmin هذا مدمجًا: Webmin، ثم Webmin Configuration، ثم SSL Encryption، ثم علامة تبويب Let's Encrypt. أدخل اسم المضيف، ووجّه «website root directory» إلى مسار يُخدَّم على المنفذ 80 لذلك النطاق، ثم اطلب. يحصل Webmin على الشهادة، ويحدّث سطري certfile= وkeyfile= في miniserv.conf نيابة عنك، ويجدّدها تلقائيًا قبل انتهاء صلاحيتها. أعد تحميل الصفحة وستجد القفل نظيفًا.

العائق الحقيقي الوحيد: خادم Webmin نفسه يعمل على المنفذ 10000، لا 80، لذا يحتاج تحدي http-01 إلى خادم ويب حقيقي — Apache أو nginx — يجيب عن panel.example.com على المنفذ 80، أو تحقق قائم على DNS بدلًا من ذلك. على جهاز مخصّص لـ Webmin وحده بلا شيء على المنفذ 80، يفشل الطلب بخطأ تحقق حتى تمنح Let's Encrypt طريقة للوصول إلى ملف التحدي. الآلية — سجلات DNS، وتحدي المنفذ 80، والتجديد — هي نفسها المتبعة في إصدار شهادة لأي موقع ويب. إذا أردت تلك الخلفية، فإن دليل شهادات Let's Encrypt TLS باستخدام Certbot وnginx يشرح مسار التحقق وإعداد DNS بالتفصيل. وإن كنت قد سلكت طريق نفق SSH فيمكنك تخطي هذا القسم كليًا: الشهادة الموقّعة ذاتيًا تكفي خلف SSH، وشهادة حقيقية صادرة لـ panel.example.com لن تنتج على أي حال إلا تحذير عدم تطابق الاسم حين تزور https://localhost:10000.

فعّل المصادقة الثنائية

كلمة المرور وحدها حماية ضعيفة للوحة root، فأضف عاملًا ثانيًا. افتح Webmin، ثم Webmin Configuration، ثم Two-Factor Authentication. اختر مزوّد Google Authenticator — وهو TOTP قياسي، فيعمل مع Authy أو 1Password أو أي تطبيق مصادقة — واحفظ. يثبّت Webmin وحدة Perl الصغيرة التي يحتاجها (Authen::OATH مع مولّد رموز QR) ويفعّل الميزة؛ هذه الخطوة وحدها لا تحمي أي حساب بعد.

بعدها يسجّل كل حساب جهازه الخاص. مع تفعيل المصادقة الثنائية (2FA)، افتح Webmin، ثم Webmin Users، واختر الحساب، ثم اختر Enable Two-Factor For User، فيعرض Webmin رمز QR؛ امسحه بالتطبيق وأدخل رمزًا واحدًا مولَّدًا للتأكيد. من تلك اللحظة، يطلب تسجيل الدخول الرمز المكوّن من ستة أرقام بعد كلمة المرور. سجِّل جهازك قبل أن تخرج — فإذا كانت المصادقة الثنائية مطلوبة لكنك لم تمسح رمزًا لحسابك قط، ما زال بإمكانك إزالة الاشتراط من الطرفية، لكن التسجيل أولًا أقل إيلامًا بكثير.

أضف Fail2ban لحظر محاولات تسجيل الدخول بالقوة الغاشمة

حتى نقطة تسجيل دخول مقيّدة ينبغي أن تعاقب الإخفاقات المتكررة. يبلّغ Webmin عن محاولات الدخول الفاشلة إلى syslog بصيغة webmin[12345]: Invalid login as root from 10.0.0.9، أو Non-existent login as ... لاسم مستخدم ليس حتى حساب Unix — وعلى Ubuntu 24.04 تُكتب هذه الأسطر في journal الخاص بـ systemd، لأن الصورة القياسية لا تملك /var/log/auth.log. يأتي Fail2ban بمرشِّح webmin-auth جاهز يطابق هذين السطرين تحديدًا، والسجن أدناه يضبط backend = systemd بنفسه، فلا يحتاج إلى أي تعبير نمطي (regex) مخصّص أو مسار سجل.

أنشئ /etc/fail2ban/jail.d/webmin.local:

[webmin-auth]
enabled  = true
port     = 10000
filter   = webmin-auth
backend  = systemd
maxretry = 4
bantime  = 1h

أعد التحميل بالأمر sudo systemctl restart fail2ban، ثم تأكد من أن السجن فعّال:

sudo fail2ban-client status webmin-auth

ينبغي أن ترى السجن مدرجًا بعدّاد حظر يبدأ من صفر (في الواجهة الخلفية القائمة على journal لا يوجد سطر File list:). ولإثبات أن التوصيل يعمل من البداية إلى النهاية، أفشل تسجيل الدخول عمدًا بضع مرات من شبكة أخرى، ثم أعد تشغيل أمر الحالة وراقب ارتفاع Currently banned. إن لم يرتفع أبدًا، تأكد من أنك لا تختبر من عنوان مدرج في ignoreip الخاص بـ Fail2ban، وشغّل journalctl SYSLOG_IDENTIFIER=webmin على الخادم للتأكد من أن أسطر Invalid login تُكتب فعلًا. إن لم يكن Fail2ban مثبّتًا على هذا الجهاز بعد، فإن دليل Fail2ban على Ubuntu 24.04 لخدمة SSH يغطي التثبيت والسجن الخاص بـ SSH الذي ينبغي أن تشغّله جنبًا إلى جنب مع هذا.

قيّد ما يستطيع كل مستخدم Webmin لمسه

ليس كل من يحتاج إلى اللوحة يحتاج إلى صلاحيات root على كل شيء. تحت Webmin، ثم Webmin Users، أنشئ حسابات Webmin إضافية وامنح كل واحد منها الوحدات التي يحتاجها فقط — مشغّل نسخ احتياطي لا يرى سوى وحدتَي cron ونظام الملفات، على سبيل المثال. تحرير مستخدم يعرض قائمة تحقق بكل وحدة؛ وإلغاء تحديد إحداها يزيلها من قائمة ذلك المستخدم ويحجب عناوين URL الأساسية. هذا دفاع في العمق: فحتى جلسة Webmin مسروقة محدودة الصلاحيات لا تستطيع إعادة كتابة /etc/shadow حين لا تكون وحدة Users ضمن قائمتها.

حافظ على تحديث Webmin

بما أنك ثبّتّ من مستودع apt، فإن sudo apt update && sudo apt upgrade يسحب إصدارات Webmin الجديدة مع بقية النظام. حدّث فورًا — فلوحة التحكم هدف مفضّل للمهاجمين. يستطيع Webmin أيضًا تحديث نفسه من Webmin، ثم Webmin Configuration، ثم Upgrade Webmin، لكن مسار apt أنظف على Ubuntu لأنه يبقي الإصدارات متّسقة مع بقية إدارة الحزم لديك. لا تعامل هذا على أنه اختياري: كانت عدة ثغرات CVE سابقة في Webmin أخطاء تنفيذ تعليمات برمجية عن بُعد (remote code execution)، والفارق الوحيد بين «محدَّث» و«مخترَق» كان سرعة تنفيذ المسؤول للترقية.

أنماط الفشل، مع النصوص التي ستراها

«Your connection is not private» / NET::ERR_CERT_AUTHORITY_INVALID. يظهر عند أول تحميل. السبب: الشهادة الموقّعة ذاتيًا التي أنشأها Webmin عند التثبيت لا تملك مُصدرًا موثوقًا. ليس هذا هجومًا؛ فالقناة مشفّرة، فقط غير مكفولة. الإصلاح: تجاوز التحذير الآن، ثم أصدر شهادة Let's Encrypt حقيقية، أو اقبلها بشكل دائم إذا كنت تصل إلى Webmin عبر نفق SSH.

«This web server is running in SSL mode. Try the URL https://...» كتبت http://server:10000. لا يستخدم miniserv سوى TLS على ذلك المنفذ ويخبرك بذلك نصًا صريحًا. الإصلاح: غيّر http إلى https في شريط العنوان.

انتهاء مهلة الصفحة — ERR_CONNECTION_TIMED_OUT / «This site can't be reached». الطلب لا يصل إلى Webmin إطلاقًا. على Ubuntu يكون السبب في الغالب الأعم أن ufw يُسقِط المنفذ 10000. تأكد بالأمر sudo ufw status؛ فإن لم يكن 10000 مدرجًا، فافتحه بالأمر sudo ufw allow 10000/tcp، أو الأفضل، اتركه مغلقًا واستخدم نفق SSH من الخيار ب. لاحظ الفرق: انتهاء المهلة يعني أن جدار حماية يُسقط الحزم بصمت، بينما ERR_CONNECTION_REFUSED يعني بدلًا من ذلك أن المنفذ قابل للوصول لكن Webmin لا يعمل — تحقق بالأمر sudo systemctl status webmin.

«Access denied for <your IP> ضبطت IP Access Control بموجب الخيار أ، وعنوانك الحالي ليس مدرجًا في القائمة البيضاء — إما عنوان IP متغيّر تبدّل، أو خطأ كتابي. لا سبيل للعودة عبر المتصفح. أصلح الأمر من الطرفية: عدّل سطر allow= في /etc/webmin/miniserv.conf، صحّحه أو احذفه، ونفّذ sudo systemctl restart webmin.

«Login failed. Please try again.» ببيانات اعتماد تعرف أنها صحيحة. الحساب لا يملك كلمة مرور Unix، وهذا شائع في صور السحابة بالمفاتيح فقط. يصادق Webmin عبر PAM على كلمة مرور Unix، وتلك الكلمة غير موجودة أصلًا لهذا المستخدم. الإصلاح: نفّذ sudo passwd youruser على الخادم، ثم سجّل الدخول. إذا أظهر /var/webmin/miniserv.log السطر Non-existent login as ...، فأنت تكتب اسم مستخدم ليس حسابَ Unix على الإطلاق.

لأكثر من خادمين أو ثلاثة، تتوسّع الأتمتة على نحو أفضل من لوحة تحكم على كل جهاز: أول playbook لك في Ansible هو نقطة الانطلاق لذلك.

FAQ

هل من الآمن كشف Webmin على الإنترنت العام؟

عامل Webmin المكشوف على الإنترنت بصفته shell بصلاحيات root له صفحة تسجيل دخول، لأن هذا بالضبط ما هو عليه. لا يكون آمنًا بما يكفي إلا عبر طبقات: شهادة حقيقية، ومصادقة ثنائية، وFail2ban، وإما قائمة بيضاء صارمة لعناوين IP أو، والأفضل، بلا أي كشف عام على الإطلاق. الإعداد الأقل خطرًا يربط Webmin بـ 127.0.0.1 ويصل إليه عبر نفق SSH، بحيث لا يجيب المنفذ 10000 أحدًا على الإنترنت المفتوح.

كيف أتخلص من تحذير شهادة Webmin؟

يظهر التحذير (NET::ERR_CERT_AUTHORITY_INVALID) لأن Webmin يأتي بشهادة موقّعة ذاتيًا. أصدر شهادة حقيقية من Webmin، Webmin Configuration، SSL Encryption، Let's Encrypt، مستخدمًا اسم DNS يشير إلى الخادم مع شيء يخدم تحدي المنفذ 80 للتحقق. إذا كنت تصل إلى Webmin دائمًا عبر نفق SSH إلى localhost فقط، فالتحذير غير ضار — إذ إن SSH يشفّر ويصادق الاتصال أصلًا — ويمكنك قبول الشهادة الموقّعة ذاتيًا بأمان.

كيف أقصر Webmin على عنوان IP الخاص بي فقط؟

اذهب إلى Webmin، Webmin Configuration، IP Access Control، اختر «Only allow from listed addresses»، وأدخل عنوان IP العام الخاص بك من curl ifconfig.me. يخزّن Webmin هذا في سطر allow= من /etc/webmin/miniserv.conf. احذر عنوان IP منزليًا متغيّرًا: فإذا تبدّل انقطع وصولك وعليك إصلاح سطر allow= من طرفية الخادم، لذا فعنوان ثابت أو أسلوب نفق SSH أكثر موثوقية في الممارسة العملية.

لماذا يفشل تسجيل دخولي رغم استخدام كلمة المرور الصحيحة؟

يصادق Webmin عبر PAM على كلمة مرور Unix الخاصة بك، وصور السحابة تكون عادة بالمفاتيح فقط دون كلمة مرور مضبوطة للحساب الافتراضي — فلا يوجد شيء يطابقه PAM ويُرفض تسجيل الدخول. نفّذ sudo passwd youruser على الخادم لضبط واحدة، ثم سجّل الدخول. أما سطر Non-existent login as ... في /var/webmin/miniserv.log فيعني بدلًا من ذلك أن اسم المستخدم نفسه ليس حسابَ Unix حقيقيًا.

ما الذي يصلح له Webmin مقارنة بـ SSH العادي؟

Webmin طبقة لتسهيل الاكتشاف وزيادة الراحة. إنه مفيد فعلًا لتصفّح ملفات السجلّ، وإدارة المستخدمين وcron، وتحرير قواعد جدار الحماية، ورؤية حالة الأقراص والخدمات دون حفظ كل أمر عن ظهر قلب — عملي للمسؤولين العرضيين أو الفرق متفاوتة المهارة. أما SSH العادي فأسرع، وقابل للبرمجة النصية (scriptable)، ويكشف سطح هجوم أصغر بكثير للعمل الروتيني. كثير من المسؤولين يشغّلون الاثنين معًا: SSH للاستخدام اليومي، وWebmin مربوطًا بـ localhost خلف نفق للمهمة العرضية بالنقر والتأشير.