SSD Nodes Learn Hosting plans →
मार्गदर्शक Matt Connorद्वारे Matt Connor · अपडेटेड 2026-08-13

Ubuntu 24.04 वर Webmin कसे इन्स्टॉल आणि सुरक्षित करावे

Ubuntu 24.04 वर Webmin इन्स्टॉल करण्याची सोपी पद्धत शिका. पोर्ट 10000 सुरक्षित करण्यासाठी SSH टनेल, IP अलाउलिस्ट, Let's Encrypt SSL, 2FA आणि Fail2ban सेटअप करण्याची पूर्ण माहिती.

तुम्ही काय तयार करत आहात

Webmin हे एक वेब कंट्रोल पॅनेल आहे जे संपूर्ण Linux सर्व्हर, युजर्स, पॅकेजेस, cron jobs, फायरवॉल, Apache, BIND, डिस्क आणि इतर शंभर मॉड्यूल्ससाठी ब्राउझर-आधारित इंटरफेस प्रदान करते. हे HTTPS द्वारे 10000 या पोर्टवर उपलब्ध असते. याचे इंस्टॉलेशन केवळ तीन कमांड्समध्ये आणि साधारण एका मिनिटात पूर्ण होते. या मार्गदर्शिकेचा बराचसा भाग दुसऱ्या अर्ध्या भागावर खर्च करण्याचे कारण असे की, Webmin हे root म्हणून लॉग इन करते आणि root वापरकर्ता करू शकतो अशी कोणतीही कृती ते करू शकते. असुरक्षित किंवा प्रमाणीकरण नसलेले Webmin हे केवळ "व्यवस्थापनासाठी धोका" नसून, ते समोर लॉग इन पेज असलेला पूर्ण सर्व्हरचा ताबा (compromise) आहे. त्यामुळे, ते दहा मिनिटांत इन्स्टॉल करा आणि त्यानंतरचा तास फक्त तुम्हालाच ते ॲक्सेस करता येईल याची खात्री करण्यासाठी खर्च करा.

पूर्वअटी आणि एक प्रामाणिक इशारा

एक नवीन Ubuntu 24.04 KVM VPS, ज्यावर root किंवा sudo वापरकर्ता उपलब्ध आहे. Webmin हे Perl आधारित आणि हलके सॉफ्टवेअर आहे, त्यामुळे 1 GB RAM पुरेशी आहे आणि ते पाव GB पेक्षा कमी मेमरी वापरून व्यवस्थित चालते. हे स्वतःच्या अंगभूत वेब सर्व्हरद्वारे (miniserv.pl) TCP 10000 पोर्टवर ऐकते (listen करते), Apache किंवा nginx वर नाही, त्यामुळे इतर काहीही आधी इन्स्टॉल करण्याची गरज नाही.

सुरू करण्यापूर्वी दोन गोष्टी ठरवा. पहिली, ज्या खात्याद्वारे तुम्ही लॉग इन करणार आहात: Webmin हे PAM द्वारे Unix खात्यांशी प्रमाणीकरण (authenticate) करते, त्यामुळे तुम्ही root किंवा sudo ग्रुपमधील वापरकर्ता म्हणून त्या खात्याच्या Unix password चा वापर करून लॉग इन करता. क्लाउड इमेजेसमध्ये सहसा फक्त SSH की वापरली जाते आणि डीफॉल्ट वापरकर्त्यासाठी पासवर्ड सेट नसतो, आणि Webmin पासवर्ड नसलेल्या खात्याला लॉग इन करू शकत नाही. आधी sudo passwd youruser वापरून पासवर्ड सेट करा, अन्यथा तुम्ही काहीही टाइप केले तरी लॉग इन अयशस्वी होईल.

दुसरी, आणि हा इशारा आहे: पोर्ट 10000 इंटरनेटसाठी उघडून तसेच सोडू नका. तुम्ही Webmin ला SSH tunnel द्वारे (शिफारस केलेले, काहीही उघड होत नाही) ॲक्सेस करणार आहात की ते फक्त तुमच्या स्वतःच्या IP साठी मर्यादित ठेवणार आहात, हे आताच ठरवा. हा एक निर्णय खालील प्रत्येक पायरीला आकार देतो, त्यामुळे फायरवॉलला स्पर्श करण्यापूर्वी दोन्ही पर्याय वाचा.

अधिकृत रिपॉझिटरीवरून Webmin इंस्टॉल करा

Webmin एक स्वाक्षरीकृत (signed) 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 मॉड्यूल डिपेंडन्सीज पुल करतो, जेणेकरून नंतर वैयक्तिक मॉड्यूल्स गहाळ लायब्ररीच्या त्रुटींमुळे (missing-library errors) अयशस्वी होणार नाहीत.

sudo apt-get install --install-recommends webmin

Webmin ने या स्क्रिप्टचे नाव यापूर्वी बदलले आहे, जुन्या मार्गदर्शकांमध्ये setup-repos.sh चा संदर्भ दिला आहे. त्यामुळे जर raw URL 404 त्रुटी देत असेल, तर एखाद्या विशिष्ट नावावर अवलंबून राहण्याऐवजी webmin.com/download वरून थेट सध्याची वन-लायनर (one-liner) घ्या. योग्य इन्स्टॉलेशन Webmin install complete. You can now login to https://your-host:10000/ as root सारख्या ओळीने संपते. ही सेवा enable आणि रनिंग असते, कॉन्फिगरेशन /etc/webmin अंतर्गत असते, विनंत्या /var/webmin/miniserv.log मध्ये लॉग केल्या जातात आणि अयशस्वी लॉगिन प्रयत्न syslog मध्ये जातात; Ubuntu 24.04 वर हे systemd journal मध्ये असतात.

ब्राउझर उघडण्यापूर्वी ती सेवा सुरू आहे आणि लिसन करत आहे याची खात्री करा:

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

तुम्हाला active (running) स्टेटस आणि 0.0.0.0:10000 वर बाउंड झालेली miniserv.pl दर्शवणारी ओळ हवी आहे. खाली दिलेल्या टनेल मार्गाचा वापर केल्यावर तो पत्ता 127.0.0.1:10000 मध्ये बदलतो. जर ss ने 10000 पोर्टवर काहीही दाखवले नाही, तर Webmin सुरू झालेले नाही; पुढे जाण्यापूर्वी journalctl -u webmin -n 50 वाचा.

पहिले लॉगिन आणि प्रमाणपत्र चेतावणी

तुमचा ब्राउझर https://YOUR_SERVER_IP:10000 वर निर्देशित करा. नवीन सर्व्हरवर दोन गोष्टी घडतात.

जर ufw सक्रिय असेल (Ubuntu ची स्वतःची सर्व्हर इमेज ती निष्क्रिय ठेवते, परंतु अनेक प्रोव्हायडर ती आधीच सक्रिय करतात), तर पेज लोड होणार नाही. हे खालील 'failure modes' मध्ये स्पष्ट केले आहे. जर पोर्ट उघडे असेल, तर तुमचा ब्राउझर पूर्ण-पृष्ठ ब्लॉक दर्शवेल: Chrome मध्ये "Your connection is not private" आणि कोड NET::ERR_CERT_AUTHORITY_INVALID, किंवा Firefox मध्ये SEC_ERROR_UNKNOWN_ISSUER / "Warning: Potential Security Risk Ahead". हे अपेक्षित आहे आणि हा कोणताही घुसखोरीचा प्रयत्न नाही. Webmin ने इन्स्टॉल करताना एक self-signed प्रमाणपत्र (/etc/webmin/miniserv.pem) तयार केले आहे, आणि कोणतीही प्रमाणपत्र संस्था (certificate authority) याची खात्री देत नसल्यामुळे, ब्राउझर त्यावर विश्वास ठेवण्यास नकार देतो. कनेक्शन अजूनही एनक्रिप्टेड आहे; फक्त त्याची अधिकृत खात्री दिलेली नाही. सध्यासाठी पुढे जा (Advanced, त्यानंतर Proceed वर क्लिक करा), आपण हे प्रमाणपत्र नंतर योग्यरित्या बदलणार आहोत.

root किंवा तुमच्या sudo युजर आणि त्याच्या Unix पासवर्डसह लॉगिन करा, त्यानंतर तुम्ही System Information डॅशबोर्डवर पोहोचाल. येथे एक सामान्य चूक म्हणजे https:// ऐवजी http:// टाईप करणे. miniserv त्या पोर्टवर साध्या HTTP ला "This web server is running in SSL mode. Try the URL https://..." असे उत्तर देते. याचे निराकरण करण्यासाठी ॲड्रेस बारमधील http बदलून https करणे इतकेच आवश्यक आहे.

सुरक्षेचा निर्णय: Webmin पर्यंत कसे पोहोचायचे?

आता सर्वात महत्त्वाचा भाग. root-equivalent पॅनेल उघड्या इंटरनेटवर ठेवू नका, जिथे जगातील प्रत्येक स्कॅनर लॉगिनचे प्रयत्न करू शकेल. तुमच्याकडे दोन सुरक्षित पर्याय आहेत, प्राधान्यक्रमानुसार खाली दिले आहेत. प्रत्येक self-hosted ॲडमिन इंटरफेस याच प्रश्नावर येऊन थांबतो, म्हणूनच Vaultwarden सुरक्षित आहे का हे त्याच्या एन्क्रिप्शनपेक्षा त्याच्या ॲडमिन एंडपॉईंट आणि बॅकअप फाईलवर अवलंबून असते.

पर्याय B मधील SSH tunnel हा अधिक चांगला पर्याय आहे, कारण यामुळे कोणतीही गोष्ट उघड होत नाही. जर तुमचा IP पत्ता static असेल, तर पर्याय A मधील IP allowlist स्वीकारार्ह आहे. यापैकी काहीही न करणे ही तीच चूक आहे जी टाळण्यासाठी हे संपूर्ण मार्गदर्शक लिहिले आहे. जर तुम्हाला Webmin पर्यंत पोहोचण्यासाठी या दोन्ही पर्यायांपेक्षा खाजगी नेटवर्क वापरणे अधिक सोयीचे वाटत असेल, तर सर्व्हरला self-hosted WireGuard VPN च्या मागे ठेवा आणि Webmin ला सार्वजनिक पत्त्याऐवजी tunnel पत्त्यावर bind करा.

पर्याय A: Webmin ला तुमच्या IP वर मर्यादित करा

पॅनेलमध्ये, Webmin, त्यानंतर Webmin Configuration, आणि मग IP Access Control उघडा. "Only allow from listed addresses" निवडा आणि तुमचा सार्वजनिक IP प्रविष्ट करा, जो तुम्ही तुमच्या लॅपटॉपवर curl ifconfig.me चालवून शोधू शकता. सेव्ह करा. Webmin हे /etc/webmin/miniserv.conf मधील allow= ओळीवर लिहितो आणि स्वतःला रीस्टार्ट करतो.

धोका: जर तुमचा होम 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= ओळ हटवल्याने पूर्णपणे ओपन ॲक्सेस पुन्हा सुरू होतो, म्हणून ते फक्त रिकव्हर करण्यासाठीच करा आणि त्यानंतर त्वरित योग्य मूल्य सेट करा.

पर्याय B: localhost वर बाइंड करणे आणि SSH द्वारे टनेल करणे (शिफारस केलेले)

कोणत्याही allowlist पेक्षा सार्वजनिक इंटरफेसवर लिसन न करणे अधिक सुरक्षित आहे. 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 च्या आतून जाते, जे आधीच तुमच्या की (key) द्वारे ऑथेंटिकेट केलेले आणि एनक्रिप्टेड असते. त्यामुळे तुम्ही येथे self-signed प्रमाणपत्र सुरक्षितपणे स्वीकारू शकता, कारण SSH लेयर प्रत्यक्ष संरक्षण देत आहे. SSH सत्र बंद करा आणि Webmin अदृश्य होईल. अलाउलिस्ट करण्याची गरज नाही, काहीही उघडे नाही आणि सुरक्षित करण्यासाठी कोणतीही अतिरिक्त सेवा नाही.

जर तुम्ही bind=127.0.0.1 सेट केले आणि टनेल विसरलात, तर रिमोट ॲक्सेस बंद होईल. हे फिचरचे काम आहे, त्रुटी नाही. पर्याय A प्रमाणेच रिकव्हर करा: कन्सोलवरून, bind ओळ काढून टाका किंवा bind=0.0.0.0 सेट करा आणि नंतर रीस्टार्ट करा. ही तीच टनेलिंग पद्धत आहे जी तुम्ही tmux मध्ये Claude Code चालवणाऱ्या रिमोट डेव्हलपमेंट बॉक्सपर्यंत पोहोचण्यासाठी वापरता; एक SSH सत्र, सर्व काही खाजगी आणि सार्वजनिक इंटरफेसवर काहीही अतिरिक्त लिसन होत नाही.

Self-signed प्रमाणपत्र काढून त्याऐवजी अधिकृत प्रमाणपत्र वापरा

जर तुम्ही 'Option A' अंतर्गत Webmin एखाद्या hostname वर उघड केले असेल, तर ब्राउझरमध्ये येणारी चेतावणी टाळण्यासाठी Let's Encrypt चे अधिकृत प्रमाणपत्र वापरा. यासाठी तुम्हाला एका DNS नावाची, उदा. panel.example.com, गरज आहे, ज्याचा A record तुमच्या सर्व्हरकडे निर्देश करत असेल आणि validation दरम्यान port-80 वरील HTTP challenge ला प्रतिसाद देणारी एखादी यंत्रणा हवी.

Webmin मध्ये ही सुविधा आधीच उपलब्ध आहे: Webmin, त्यानंतर Webmin Configuration, त्यानंतर SSL Encryption, आणि शेवटी Let's Encrypt टॅब. तिथे hostname प्रविष्ट करा, "website root directory" साठी असा path निवडा जो त्या domain साठी port 80 वर उपलब्ध आहे आणि विनंती (request) करा. Webmin प्रमाणपत्र मिळवते, miniserv.conf मधील certfile= आणि keyfile= ओळी आपोआप अपडेट करते आणि ते कालबाह्य होण्यापूर्वी त्याचे नूतनीकरण (renewal) करते. पेज पुन्हा लोड करा, आता तुम्हाला सुरक्षिततेचे चिन्ह (padlock) दिसेल.

येथे एक तांत्रिक अडचण येऊ शकते: Webmin चा स्वतःचा सर्व्हर 10000 पोर्टवर चालतो, 80 वर नाही. त्यामुळे http-01 challenge पूर्ण करण्यासाठी Apache किंवा nginx सारख्या खऱ्या वेब सर्व्हरची गरज असते, जो port 80 वर panel.example.com साठी प्रतिसाद देईल, किंवा त्याऐवजी DNS-आधारित validation वापरावे लागेल. जर तुमच्या सर्व्हरवर फक्त Webmin असेल आणि port 80 वर काहीही नसेल, तर Let's Encrypt ला challenge फाईलपर्यंत पोहोचण्याचा मार्ग मिळेपर्यंत validation एरर येईल. प्रमाणपत्र मिळवण्याची प्रक्रिया, DNS records, port-80 challenge आणि नूतनीकरण हे कोणत्याही वेबसाइटसाठी प्रमाणपत्र मिळवण्यासारखेच असते. जर तुम्हाला याबद्दल अधिक माहिती हवी असेल, तर Let's Encrypt TLS certificates with Certbot and nginx guide मध्ये validation flow आणि DNS सेटअपची सविस्तर माहिती दिली आहे. जर तुम्ही SSH-tunnel चा मार्ग निवडला असेल, तर तुम्ही हा विभाग पूर्णपणे वगळू शकता: SSH च्या मागे self-signed प्रमाणपत्र वापरणे सुरक्षित आहे आणि panel.example.com साठी घेतलेले अधिकृत प्रमाणपत्र https://localhost:10000 ला भेट देताना 'name-mismatch' चेतावणीच देईल.

टू-फॅक्टर ऑथेंटिकेशन (2FA) सुरू करा

केवळ पासवर्डवर अवलंबून राहणे हे 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 कोड दाखवेल; तो ॲपद्वारे स्कॅन करा आणि पडताळणीसाठी एक जनरेट झालेला कोड प्रविष्ट करा. यानंतर, लॉगिन करताना पासवर्डनंतर सहा अंकी टोकन विचारले जाईल. लॉग आउट करण्यापूर्वी एनरोलमेंट पूर्ण करा. जर 2FA अनिवार्य असेल आणि तुमच्या खात्याने कोड स्कॅन केला नसेल, तर तुम्ही कन्सोलवरून ही अट काढून टाकू शकता, परंतु आधी एनरोल करणे अधिक सोयीचे ठरते.

Brute-force लॉगिन रोखण्यासाठी Fail2ban जोडा

मर्यादित लॉगिन एंडपॉइंटवरही वारंवार होणाऱ्या अयशस्वी प्रयत्नांना शिक्षा मिळायला हवी. Webmin अयशस्वी लॉगिनची माहिती syslog मध्ये webmin[12345]: Invalid login as root from 10.0.0.9 किंवा अस्तित्वात नसलेल्या Unix अकाउंटसाठी Non-existent login as ... या स्वरूपात नोंदवते. Ubuntu 24.04 वर या ओळी systemd journal मध्ये जमा होतात, कारण स्टॉक इमेजमध्ये /var/log/auth.log नसते. Fail2ban मध्ये एक इन-बिल्ट webmin-auth फिल्टर असतो जो या दोन्ही ओळींशी जुळतो. खालील जेल (jail) स्वतःहून backend = systemd सेट करते, त्यामुळे कोणत्याही कस्टम regex किंवा log path ची गरज नाही.

/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: ओळ नसते). ही रचना पूर्णपणे कार्यरत आहे हे सिद्ध करण्यासाठी, दुसऱ्या नेटवर्कवरून मुद्दाम काही वेळा चुकीचे लॉगिन करा. त्यानंतर पुन्हा status कमांड चालवा आणि Currently banned वाढताना पहा. जर आकडा वाढत नसेल, तर तुम्ही Fail2ban च्या ignoreip मधील पत्त्यावरून चाचणी करत नाही ना, याची खात्री करा. तसेच, Invalid login ओळी खरोखर लिहिल्या जात आहेत का हे तपासण्यासाठी सर्व्हरवर journalctl SYSLOG_IDENTIFIER=webmin चालवा. जर या बॉक्सवर Fail2ban आधीच इन्स्टॉल नसेल, तर Ubuntu 24.04 वर SSH साठी Fail2ban मार्गदर्शक मध्ये इन्स्टॉलेशन आणि SSH जेलबद्दल माहिती दिली आहे, जी तुम्ही यासोबतच वापरली पाहिजे.

प्रत्येक Webmin वापरकर्त्याचे अधिकार मर्यादित करा

पॅनेल वापरणाऱ्या प्रत्येक व्यक्तीला सर्व गोष्टींवर root अधिकार असण्याची गरज नसते. Webmin, then Webmin Users अंतर्गत, अतिरिक्त Webmin लॉगिन तयार करा आणि प्रत्येकाला फक्त आवश्यक मॉड्यूल्सचे अधिकार द्या. उदाहरणार्थ, बॅकअप ऑपरेटरला फक्त cron आणि filesystem मॉड्यूल्स दिसतील असे करा. वापरकर्त्याचे तपशील संपादित करताना सर्व मॉड्यूल्सची एक चेकलिस्ट दिसते; एखादे मॉड्यूल अनचेक केल्यास ते त्या वापरकर्त्याच्या मेनूमधून काढून टाकले जाते आणि संबंधित URL वर प्रवेश प्रतिबंधित केला जातो. ही 'defence in depth' पद्धत आहे: जर कमी अधिकारांचे Webmin सत्र चोरीला गेले, तरीही त्या वापरकर्त्याच्या यादीत Users मॉड्यूल नसल्यामुळे तो /etc/shadow मध्ये बदल करू शकणार नाही.

Webmin अपडेट ठेवणे

तुम्ही apt रिपॉझिटरीवरून इन्स्टॉल केले असल्यामुळे, sudo apt update && sudo apt upgrade सिस्टमच्या इतर भागांसोबतच Webmin च्या नवीन आवृत्त्या (releases) देखील अपडेट करते. पॅच त्वरित लागू करा, कारण कंट्रोल पॅनेल हे हॅकर्सचे आवडते लक्ष्य असते. Webmin स्वतःला Webmin, then Webmin Configuration, then Upgrade Webmin या पर्यायाद्वारे देखील अपडेट करू शकते, परंतु Ubuntu वर apt चा मार्ग अधिक सोयीस्कर आहे कारण यामुळे तुमच्या इतर पॅकेज मॅनेजमेंटसोबत आवृत्त्या सुसंगत राहतात. याकडे ऐच्छिक म्हणून पाहू नका: भूतकाळातील अनेक Webmin CVE हे remote-code-execution बग होते आणि "पॅच केलेले" आणि "breached" (compromised) यामधील एकमेव फरक म्हणजे ॲडमिनने किती वेगाने अपग्रेड केले, हा होता.

अपयशाचे प्रकार आणि दिसणारे संदेश

"Your connection is not private" / NET::ERR_CERT_AUTHORITY_INVALID. पहिल्यांदा लोड करताना हा संदेश दिसतो. कारण: Webmin ने इन्स्टॉल करताना तयार केलेले self-signed प्रमाणपत्र कोणत्याही विश्वासार्ह संस्थेद्वारे (issuer) प्रमाणित केलेले नसते. हा हल्ला नसून चॅनेल एनक्रिप्टेड आहे, परंतु त्याचे प्रमाणीकरण झालेले नाही. उपाय: सध्या तरी चेतावणीकडे दुर्लक्ष करून पुढे जा आणि नंतर Let's Encrypt चे अधिकृत प्रमाणपत्र मिळवा, किंवा जर तुम्ही SSH tunnel द्वारे Webmin वापरत असाल तर हे प्रमाणपत्र कायमस्वरूपी स्वीकारू शकता.

"This web server is running in SSL mode. Try the URL https://..." तुम्ही http://server:10000 टाईप केले आहे. miniserv त्या पोर्टवर फक्त TLS द्वारे संवाद साधतो आणि तुम्हाला तसा संदेश देतो. उपाय: ॲड्रेस बारमध्ये http ऐवजी https वापरा.

Page times out, ERR_CONNECTION_TIMED_OUT / "This site can't be reached". विनंती Webmin पर्यंत पोहोचत नाही. Ubuntu वर याचे मुख्य कारण म्हणजे ufw ने पोर्ट 10000 ब्लॉक केलेले असणे. sudo ufw status वापरून खात्री करा; जर 10000 यादीत नसेल, तर ते sudo ufw allow 10000/tcp वापरून उघडा किंवा अधिक सुरक्षित पर्यायासाठी ते बंद ठेवून Option B मधील SSH tunnel वापरा. फरक लक्षात घ्या: timeout म्हणजे फायरवॉल पॅकेट्स शांतपणे नाकारत आहे, तर ERR_CONNECTION_REFUSED चा अर्थ असा की पोर्ट उपलब्ध आहे पण Webmin सुरू नाही, अशा वेळी sudo systemctl status webmin तपासा.

"Access denied for <your IP>." तुम्ही Option A अंतर्गत IP Access Control सेट केले आहे आणि तुमचा सध्याचा पत्ता allow list मध्ये नाही, किंवा तुमचा डायनॅमिक IP बदलला आहे, किंवा पत्ता लिहिताना चूक झाली आहे. ब्राउझरवरून पुन्हा प्रवेश मिळवण्याचा मार्ग नाही. उपाय: कन्सोलवरून /etc/webmin/miniserv.conf मधील allow= ओळ एडिट करा, ती दुरुस्त करा किंवा काढून टाका आणि sudo systemctl restart webmin चालवा.

"Login failed. Please try again." (क्रेडेंशियल्स बरोबर असूनही). खात्याला Unix पासवर्ड नाही, जे सहसा फक्त key-based ऑथेंटिकेशन वापरणाऱ्या क्लाउड इमेजेसमध्ये आढळते. Webmin हे PAM द्वारे Unix पासवर्डशी प्रमाणीकरण करते आणि त्या वापरकर्त्यासाठी पासवर्ड अस्तित्वात नाही. उपाय: सर्व्हरवर sudo passwd youruser चालवा आणि त्यानंतर लॉग इन करा. जर /var/webmin/miniserv.log मध्ये Non-existent login as ... दिसत असेल, तर तुम्ही असा युजरनेम टाईप करत आहात जो Unix खातेच नाही.

दोनपेक्षा जास्त सर्व्हर्ससाठी, प्रत्येक बॉक्सवर कंट्रोल पॅनेल वापरण्यापेक्षा ऑटोमेशन अधिक प्रभावी ठरते: तुमचा पहिला Ansible playbook पासून याची सुरुवात होते.

FAQ

Webmin सार्वजनिक इंटरनेटवर उघड करणे सुरक्षित आहे का?

इंटरनेटवर उघड असलेल्या Webmin ला लॉगिन पेज असलेला root shell समजा, कारण ते नेमके तसेच आहे. हे केवळ अनेक स्तरांच्या सुरक्षेसह सुरक्षित असू शकते: एक अधिकृत प्रमाणपत्र, टू-फॅक्टर ऑथेंटिकेशन, Fail2ban, आणि एकतर कडक IP allowlist किंवा त्याहून उत्तम म्हणजे, ते अजिबात सार्वजनिक न करणे. सर्वात कमी जोखमीची रचना म्हणजे Webmin ला 127.0.0.1 वर बाइंड करणे आणि SSH टनेलद्वारे त्यात प्रवेश करणे, जेणेकरून पोर्ट 10000 वर इंटरनेटवरून कोणालाही प्रतिसाद मिळणार नाही.

Webmin प्रमाणपत्र चेतावणी कशी काढू?

ही चेतावणी (NET::ERR_CERT_AUTHORITY_INVALID) येते कारण Webmin स्वतः स्वाक्षरी केलेले (self-signed) प्रमाणपत्र वापरते. 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" हा पर्याय निवडा आणि curl ifconfig.me वरून तुमचा सार्वजनिक IP तिथे टाका. Webmin हे /etc/webmin/miniserv.conf मधील allow= ओळीत साठवते. डायनॅमिक होम IP बद्दल सावध राहा: जर तो बदलला तर तुम्ही लॉक व्हाल आणि तुम्हाला सर्व्हर कन्सोलवरून allow= ओळ दुरुस्त करावी लागेल. त्यामुळे, व्यवहारात स्टॅटिक IP किंवा SSH-tunnel पद्धत अधिक विश्वासार्ह आहे.

योग्य पासवर्ड असूनही माझे लॉगिन का अयशस्वी होत आहे?

Webmin तुमच्या Unix पासवर्डच्या आधारे PAM द्वारे ऑथेंटिकेशन करते. क्लाउड इमेजेसमध्ये सहसा फक्त SSH की वापरली जाते आणि डीफॉल्ट अकाउंटसाठी कोणताही पासवर्ड सेट नसतो, त्यामुळे PAM कडे जुळवण्यासाठी काहीही नसते आणि लॉगिन नाकारले जाते. पासवर्ड सेट करण्यासाठी सर्व्हरवर sudo passwd youruser चालवा आणि मग लॉगिन करा. /var/webmin/miniserv.log मधील Non-existent login as ... ओळीचा अर्थ असा आहे की तो वापरकर्ता नाव एक वास्तविक Unix अकाउंट नाही.

साध्या SSH च्या तुलनेत Webmin कशासाठी उपयुक्त आहे?

Webmin हे माहिती मिळवण्यासाठी आणि सोयीसाठी वापरले जाणारे एक माध्यम आहे. लॉग फाइल्स तपासणे, वापरकर्ते आणि cron व्यवस्थापित करणे, फायरवॉल नियम संपादित करणे, आणि प्रत्येक कमांड लक्षात न ठेवता डिस्क व सर्व्हिसची स्थिती पाहणे यासाठी ते खरोखर उपयुक्त आहे. हे अधूनमधून काम करणाऱ्या ॲडमिनिस्ट्रेटरसाठी किंवा विविध कौशल्ये असलेल्या टीमसाठी सोयीचे आहे. साधे SSH अधिक जलद आहे, स्क्रिप्ट करता येते आणि नियमित कामासाठी त्याचा अटॅक सरफेस खूपच कमी असतो. अनेक ॲडमिनिस्ट्रेटर दोन्ही वापरतात: दैनंदिन कामासाठी SSH आणि अधूनमधून पॉइंट-अँड-क्लिक कामासाठी टनेलच्या मागे localhost वर बाइंड केलेले Webmin. जर तुमचा खरा प्रश्न पॅनेल विरुद्ध शेल असा नसून कोणता पॅनेल निवडावा असा असेल, तर Cockpit आणि Webmin मधील तुलना आधी विचारात घेणे योग्य ठरेल, कारण सिस्टिममध्ये बदल करण्याच्या क्षमतेत आणि ऑथेंटिकेशन पद्धतीत या दोघांमध्ये फरक आहे.