Ubuntu 24.04 पर Webmin कैसे इंस्टॉल और सुरक्षित करें
Ubuntu 24.04 पर Webmin इंस्टॉल करने का तरीका जानें। सर्वर सुरक्षा के लिए पोर्ट 10000 पर Fail2ban, 2FA, IP allowlist और Let's Encrypt SSL सर्टिफिकेट सेटअप करना सीखें।
आप क्या बना रहे हैं
Webmin एक वेब कंट्रोल पैनल है जो पूरे Linux सर्वर, users, packages, cron jobs, firewall, Apache, BIND, disks और अन्य सौ मॉड्यूल्स के लिए एक ब्राउज़र फ्रंट-एंड प्रदान करता है। इसे port 10000 पर HTTPS के माध्यम से एक्सेस किया जा सकता है। इसका इंस्टॉलेशन केवल तीन commands में पूरा हो जाता है और इसमें लगभग एक मिनट का समय लगता है। यह गाइड अपनी लंबाई का अधिकांश हिस्सा दूसरे भाग पर इसलिए खर्च करती है क्योंकि Webmin root के रूप में लॉग इन करता है और वह सब कुछ कर सकता है जो root कर सकता है। एक खुला या बिना प्रमाणीकरण वाला Webmin केवल "प्रबंधन के लिए जोखिम" नहीं है; यह एक पूर्ण सर्वर समझौता (compromise) है जिसके सामने एक लॉगिन पेज लगा है। इसलिए इसे दस मिनट में इंस्टॉल करें, और फिर बाकी का समय यह सुनिश्चित करने में बिताएं कि केवल आप ही इसे एक्सेस कर सकें।
पूर्व-आवश्यकताएँ और एक ईमानदार चेतावनी
एक नया Ubuntu 24.04 KVM VPS, जिसमें root या sudo user का एक्सेस हो। Webmin Perl पर आधारित और हल्का है; 1 GB RAM इसके लिए पर्याप्त है और यह एक चौथाई GB से भी कम RAM का उपयोग करता है। यह अपने स्वयं के बंडल किए गए वेब सर्वर (miniserv.pl) के माध्यम से TCP 10000 पर listen करता है, न कि Apache या nginx पर, इसलिए पहले से कुछ भी इंस्टॉल करने की आवश्यकता नहीं है।
शुरू करने से पहले दो निर्णय लें। पहला, वह अकाउंट जिससे आप लॉग इन करेंगे: Webmin PAM के माध्यम से Unix अकाउंट्स को प्रमाणित करता है, इसलिए आप उस अकाउंट के Unix password का उपयोग करके root या sudo समूह के किसी यूजर के रूप में लॉग इन करते हैं। क्लाउड इमेज आमतौर पर केवल key-based होती हैं और डिफ़ॉल्ट यूजर पर कोई पासवर्ड सेट नहीं होता है, और Webmin बिना पासवर्ड वाले अकाउंट में लॉग इन नहीं कर सकता है। पहले sudo passwd youruser के साथ एक पासवर्ड सेट करें, अन्यथा आप कुछ भी टाइप करें, लॉग इन विफल हो जाएगा।
दूसरा, और यह चेतावनी है: पोर्ट 10000 को केवल इंटरनेट के लिए न खोलें और इसे ऐसे ही न छोड़ें। अभी निर्णय लें कि क्या आप SSH tunnel (अनुशंसित, कुछ भी exposed नहीं) के माध्यम से Webmin तक पहुँचेंगे या इसे केवल अपने IP तक सीमित रखेंगे। यह एक निर्णय नीचे दिए गए प्रत्येक चरण को निर्धारित करता है, इसलिए firewall को छूने से पहले दोनों विकल्पों को पढ़ें।
आधिकारिक रिपॉजिटरी से Webmin इंस्टॉल करें
Webmin एक हस्ताक्षरित (signed) apt रिपॉजिटरी प्रकाशित करता है। सेटअप स्क्रिप्ट रिपॉजिटरी और उसकी GPG साइनिंग की (key) को जोड़ती है, ताकि भविष्य में 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 Webmin stable repository? (y/N) पूछती है, y उत्तर दें। जब यह समाप्त हो जाए, तो पैकेज इंस्टॉल करें। --install-recommends फ्लैग सामान्य Perl और SSL मॉड्यूल निर्भरताओं को खींचता है ताकि बाद में व्यक्तिगत मॉड्यूल गायब लाइब्रेरी त्रुटियों के कारण विफल न हों।
sudo apt-get install --install-recommends webminWebmin ने पहले इस स्क्रिप्ट का नाम बदल दिया है, पुराने गाइड setup-repos.sh का संदर्भ देते हैं। इसलिए यदि रॉ URL 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 पर, यह systemd जर्नल है।
ब्राउज़र खोलने से पहले पुष्टि करें कि यह वास्तव में चालू है और लिसन कर रहा है:
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) में कवर किया गया है। यदि पोर्ट खुला है, तो आपका ब्राउज़र एक पूर्ण-पृष्ठ ब्लॉक दिखाएगा: "Your connection is not private" जिसमें Chrome में NET::ERR_CERT_AUTHORITY_INVALID कोड होगा, या Firefox में SEC_ERROR_UNKNOWN_ISSUER / "Warning: Potential Security Risk Ahead" दिखाई देगा। यह अपेक्षित है और कोई सेंधमारी (break-in) नहीं है। Webmin ने इंस्टॉलेशन के समय एक self-signed certificate (/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 टनल बेहतर है, क्योंकि यह कुछ भी एक्सपोज़ नहीं करता है। यदि आपका IP एड्रेस static है, तो विकल्प A में दी गई IP allowlist स्वीकार्य है। इनमें से कुछ भी न करना वही गलती है जिसे रोकने के लिए यह पूरी गाइड लिखी गई है। यदि आप इन दोनों के बजाय किसी प्राइवेट नेटवर्क के माध्यम से Webmin तक पहुँचना चाहते हैं, तो सर्वर को self-hosted WireGuard VPN के पीछे रखें और Webmin को पब्लिक एड्रेस के बजाय टनल एड्रेस पर bind करें।
विकल्प A: Webmin को अपने IP तक सीमित करें
पैनल में, Webmin, फिर Webmin Configuration, और उसके बाद IP Access Control खोलें। "Only allow from listed addresses" चुनें और अपना public IP दर्ज करें, जिसे आप अपने लैपटॉप पर curl ifconfig.me चलाकर पता कर सकते हैं। Save करें। Webmin इसे /etc/webmin/miniserv.conf में allow= लाइन पर लिखता है और खुद को restart करता है।
खतरा: यदि आपका home IP dynamic है और बदल जाता है, या आप गलत IP दर्ज कर देते हैं, तो आप खुद को lock कर लेंगे। इसके बाद browser "Access denied for <your IP>" दिखाएगा और login form नहीं आएगा, और वापस जाने का कोई web path नहीं बचेगा। आप इसे SSH या अपने provider के VNC के माध्यम से server console से ठीक कर सकते हैं:
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 webminallow= लाइन को हटाने से पूरी तरह open access बहाल हो जाता है, इसलिए ऐसा केवल recover करने के लिए करें, और फिर तुरंत एक सही मान (value) सेट करें।
विकल्प B: localhost से bind करना और SSH के माध्यम से tunnel करना (अनुशंसित)
Allowlist बनाने से बेहतर है कि public interface पर listen ही न किया जाए। miniserv को केवल loopback पर bind करने के लिए कहें, फिर इसे उस encrypted SSH tunnel के माध्यम से एक्सेस करें जिस पर आप पहले से भरोसा करते हैं।
/etc/webmin/miniserv.conf को edit करें और एक line जोड़ें या बदलें:
bind=127.0.0.1sudo systemctl restart webmin के साथ restart करें। Webmin अब internet से unreachable है, 10000 port का port scan कुछ नहीं ढूँढ पाएगा, और पहले किया गया ss check अब यह दिखाएगा कि यह 127.0.0.1:10000 से bound है। अपने laptop से, एक tunnel खोलें:
ssh -L 10000:localhost:10000 youruser@YOUR_SERVER_IPउस session को खुला रखें और https://localhost:10000 पर browse करें। Traffic SSH के अंदर चलता है, जो पहले से ही आपकी key द्वारा authenticated और encrypted है, इसलिए आप यहाँ self-signed certificate को सुरक्षित रूप से स्वीकार कर सकते हैं, SSH layer ही वास्तविक सुरक्षा प्रदान कर रही है। SSH session बंद करें और Webmin गायब हो जाएगा। न तो कुछ allowlist करने की आवश्यकता है, न ही कुछ exposed है, और न ही harden करने के लिए कोई अतिरिक्त service है।
यदि आप bind=127.0.0.1 set करते हैं और tunnel भूल जाते हैं, तो remote access बस बंद हो जाएगा, यह feature का काम करना है, कोई खराबी नहीं। विकल्प A की तरह ही recover करें: console से, bind line को हटा दें या bind=0.0.0.0 set करें, फिर restart करें। यह वही tunnelling आदत है जिसका उपयोग आप tmux में Claude Code चलाने वाले remote development box तक पहुँचने के लिए करेंगे, एक SSH session, सब कुछ private, public interface पर कुछ भी अतिरिक्त listen नहीं कर रहा है।
Self-signed certificate को एक वास्तविक certificate से बदलें
यदि आप Option A के तहत Webmin को expose करते हैं, तो एक वास्तविक Let's Encrypt certificate का उपयोग करके ब्राउज़र चेतावनी को हटा दें। आपको certificate के लिए एक नाम और validation के दौरान Let's Encrypt के port 80 तक पहुँचने का एक तरीका चाहिए। नाम आमतौर पर एक DNS नाम होता है, जैसे panel.example.com, जिसका A record सर्वर की ओर इशारा करता हो। Webmin 2.650 (25 जून, 2026 को जारी) के बाद से, यह सर्वर का public IP address भी हो सकता है, बशर्ते Certbot 5.3 या बाद का संस्करण इंस्टॉल हो। Let's Encrypt केवल अपने short-lived profile पर IP certificates जारी करता है, जो लगभग छह दिनों के लिए मान्य होते हैं, इसलिए Webmin में automatic renewal interval को दिनों में सेट करें; Webmin IP certificate के लिए इससे अधिक लंबा interval स्वीकार नहीं करेगा।
Webmin में यह सुविधा इन-बिल्ट है: Webmin, फिर Webmin Configuration, फिर SSL Encryption, और फिर Let's Encrypt टैब। hostname या IP address दर्ज करें, validation विधि चुनें, और अनुरोध करें। Webmin certificate प्राप्त करता है, आपके लिए miniserv.conf में certfile= और keyfile= लाइनों को अपडेट करता है, और समाप्ति से पहले इसे स्वचालित रूप से renew करता है। पेज को reload करें और padlock का निशान साफ हो जाएगा।
एकमात्र वास्तविक समस्या यह है: Webmin का अपना सर्वर 10000 पर चलता है, 80 पर नहीं, इसलिए port 80 पर http-01 challenge का उत्तर देने के लिए कुछ होना चाहिए। ऐसा करने के आपके पास तीन तरीके हैं। यदि Apache या nginx पहले से ही port 80 पर उस नाम को serve कर रहे हैं, तो validation को उस साइट की document directory की ओर निर्देशित करें (IP address के लिए इसके लिए Certbot 5.4 या बाद का संस्करण चाहिए)। यदि port 80 पर कुछ भी नहीं चल रहा है, तो Certbot के इन-बिल्ट वेब सर्वर का उपयोग करें, जो standalone mode है जिसे Webmin ने version 2.110 में जोड़ा था: Certbot संक्षेप में port 80 पर अपना वेब सर्वर चलाता है, इसलिए Certbot इंस्टॉल होना चाहिए और आपके firewall में port 80 फ्री और ओपन होना चाहिए। या फिर DNS validation का उपयोग करें, जो hostnames के लिए काम करता है लेकिन IP addresses के लिए नहीं। Ubuntu 24.04 का अपना certbot पैकेज version 2.9 है, जो hostname के standalone validation के लिए ठीक है लेकिन IP certificates के लिए बहुत पुराना है; उनके लिए, एक वर्तमान Certbot इंस्टॉल करें जैसे कि snap, जो अक्टूबर 2026 तक 5.8 पर था। इनमें से किसी के बिना, अनुरोध validation error के साथ विफल हो जाता है। मैकेनिक्स, DNS रिकॉर्ड्स, port-80 challenge, और renewal, किसी भी वेबसाइट के लिए certificate जारी करने के समान ही हैं। यदि आप वह पृष्ठभूमि जानना चाहते हैं, तो Let's Encrypt TLS certificates with Certbot and nginx guide validation flow और DNS सेटअप के बारे में विस्तार से बताती है। यदि आपने SSH-tunnel मार्ग अपनाया है तो आप इस अनुभाग को पूरी तरह छोड़ सकते हैं: SSH के पीछे self-signed certificate ठीक है, और panel.example.com के लिए जारी किया गया वास्तविक certificate वैसे भी https://localhost:10000 पर जाने पर name-mismatch चेतावनी ही देगा।
Two-factor authentication को सक्षम करें
केवल एक password root panel के लिए पर्याप्त सुरक्षा नहीं है, इसलिए एक second factor जोड़ें। Webmin खोलें, फिर Webmin Configuration में जाएँ और Two-Factor Authentication चुनें। Google Authenticator provider को चुनें। यह standard TOTP है, इसलिए यह Authy, 1Password या किसी भी authenticator app के साथ काम करता है। इसे save करें। Webmin इसके लिए आवश्यक छोटा Perl module (Authen::OATH और एक QR generator) install करता है और feature को enable कर देता है। यह चरण अभी किसी account को सुरक्षित नहीं करता है।
इसके बाद प्रत्येक account को अपना device enrol करना होगा। 2FA enable होने पर, Webmin खोलें, फिर Webmin Users में जाएँ, account चुनें और Enable Two-Factor For User पर क्लिक करें। Webmin एक QR code दिखाएगा; इसे app से scan करें और पुष्टि करने के लिए एक generated code दर्ज करें। इसके बाद, login के समय password के बाद छह अंकों का token माँगा जाएगा। Log out करने से पहले enrol करें। यदि 2FA अनिवार्य है लेकिन आपके account ने कभी code scan नहीं किया है, तो आप console से इस आवश्यकता को हटा सकते हैं, लेकिन पहले enrol करना अधिक सुविधाजनक है।
Brute-force logins को रोकने के लिए Fail2ban जोड़ें
एक प्रतिबंधित login endpoint को भी बार-बार होने वाली विफलताओं के लिए दंडित करना चाहिए। Webmin विफल login प्रयासों को syslog में webmin[12345]: Invalid login as root from 10.0.0.9 के रूप में, या किसी ऐसे username के लिए जो Unix account भी नहीं है, Non-existent login as ... के रूप में रिपोर्ट करता है। Ubuntu 24.04 पर ये पंक्तियाँ systemd journal में दर्ज होती हैं, क्योंकि stock image में कोई /var/log/auth.log नहीं होता है। Fail2ban में एक stock webmin-auth filter शामिल होता है जो ठीक इन्हीं दो पंक्तियों से मेल खाता है, और नीचे दिया गया jail स्वयं backend = systemd सेट करता है, इसलिए इसमें किसी custom regex या log path की आवश्यकता नहीं है।
/etc/fail2ban/jail.d/webmin.local बनाएँ:
[webmin-auth]
enabled = true
port = 10000
filter = webmin-auth
backend = systemd
maxretry = 4
bantime = 1hsudo systemctl restart fail2ban के साथ reload करें, फिर पुष्टि करें कि jail live है:
sudo fail2ban-client status webmin-authआपको jail की सूची शून्य ban counter के साथ दिखाई देनी चाहिए (journal backend पर कोई File list: पंक्ति नहीं होती है)। wiring को end-to-end सिद्ध करने के लिए, किसी अन्य network से जानबूझकर कुछ बार login विफल करें, फिर status command को पुनः चलाएँ और Currently banned को बढ़ते हुए देखें। यदि यह नहीं बढ़ता है, तो सुनिश्चित करें कि आप Fail2ban के ignoreip में मौजूद पते से परीक्षण नहीं कर रहे हैं, और यह पुष्टि करने के लिए कि Invalid login पंक्तियाँ वास्तव में लिखी जा रही हैं, सर्वर पर journalctl SYSLOG_IDENTIFIER=webmin चलाएँ। यदि इस box पर Fail2ban अभी तक स्थापित नहीं है, तो Ubuntu 24.04 पर SSH के लिए Fail2ban गाइड में इसके installation और उस SSH jail के बारे में बताया गया है जिसे आपको इसके साथ ही चलाना चाहिए।
प्रत्येक Webmin उपयोगकर्ता की पहुँच को सीमित करना
हर उस व्यक्ति को, जिसे पैनल की आवश्यकता है, हर चीज़ पर root अधिकार की आवश्यकता नहीं होती है। Webmin, फिर Webmin Users के अंतर्गत, अतिरिक्त Webmin लॉगिन बनाएँ और प्रत्येक को केवल उन्हीं मॉड्यूल्स की अनुमति दें जिनकी उसे आवश्यकता है। उदाहरण के लिए, एक बैकअप ऑपरेटर जिसे केवल cron और filesystem मॉड्यूल ही दिखाई दें। किसी उपयोगकर्ता को एडिट करने पर सभी मॉड्यूल्स की एक चेकलिस्ट दिखाई देती है; किसी मॉड्यूल को अनचेक करने से वह उस उपयोगकर्ता के मेनू से हट जाता है और संबंधित URLs तक पहुँच भी ब्लॉक हो जाती है। यह 'defence in depth' है: यदि किसी कम-विशेषाधिकार वाले Webmin सत्र का एक्सेस चोरी भी हो जाए, तो भी वह /etc/shadow को फिर से नहीं लिख पाएगा यदि Users मॉड्यूल उसकी सूची में नहीं है।
Webmin को अपडेट रखना
चूंकि आपने इसे apt repository से install किया है, इसलिए sudo apt update && sudo apt upgrade सिस्टम के बाकी हिस्सों के साथ ही Webmin के नए releases को भी pull कर लेता है। पैच तुरंत लागू करें, क्योंकि control panel अक्सर हमलावरों का मुख्य लक्ष्य होते हैं। Webmin खुद को Webmin, then Webmin Configuration, then Upgrade Webmin के माध्यम से भी अपडेट कर सकता है, लेकिन Ubuntu पर apt वाला तरीका अधिक बेहतर है क्योंकि यह आपके अन्य package management के साथ versions को सुसंगत रखता है। इसे वैकल्पिक न समझें: अतीत में Webmin की कई CVEs remote-code-execution bugs थीं, और "पैच किए गए" और "breached" सर्वर के बीच का एकमात्र अंतर यह था कि एडमिन ने कितनी जल्दी upgrade चलाया।
विफलता के प्रकार और दिखाई देने वाले संदेश
"Your connection is not private" / NET::ERR_CERT_AUTHORITY_INVALID. यह संदेश पहली बार लोड करने पर दिखाई देता है। कारण: Webmin द्वारा इंस्टॉलेशन के समय जनरेट किया गया self-signed certificate किसी विश्वसनीय issuer द्वारा प्रमाणित नहीं है। यह कोई हमला नहीं है; चैनल एन्क्रिप्टेड है, बस इसकी पुष्टि नहीं की गई है। समाधान: फिलहाल चेतावनी को अनदेखा करके आगे बढ़ें, फिर एक वास्तविक Let's Encrypt certificate जारी करें, या यदि आप SSH tunnel के माध्यम से Webmin तक पहुँच रहे हैं तो इसे स्थायी रूप से स्वीकार करें।
"This web server is running in SSL mode. Try the URL https://..." आपने http://server:10000 टाइप किया है। miniserv उस port पर केवल TLS का उपयोग करता है और आपको plain text में यही बता रहा है। समाधान: address bar में http को https में बदलें।
Page times out, ERR_CONNECTION_TIMED_OUT / "This site can't be reached". अनुरोध कभी भी Webmin तक नहीं पहुँचता है। Ubuntu पर अक्सर ufw port 10000 को block कर रहा होता है, लेकिन मान लेने से पहले जाँच लें। sudo ufw status चलाएँ। यदि यह Status: inactive दिखाता है, तो ufw कुछ भी block नहीं कर रहा है (Ubuntu इसे disabled स्थिति में भेजता है, और allow rule जोड़ने से यह enable नहीं होता), इसलिए upstream में देखें, जैसे कि आपके provider के control panel में मौजूद firewall। यदि यह Status: active दिखाता है, तो default incoming policy और अन्य व्यापक नियमों को देखने के लिए sudo ufw status verbose चलाएँ; यदि incoming traffic denied है और 10000 सूची में नहीं है, तो या तो इसे sudo ufw allow 10000/tcp के साथ खोलें या, बेहतर होगा कि इसे बंद रहने दें और Option B से SSH tunnel का उपयोग करें। अंतर पर ध्यान दें: timeout का अर्थ है कि firewall चुपचाप packets को drop कर रहा है, जबकि ERR_CONNECTION_REFUSED का अर्थ है कि port तक पहुँचा जा सकता है लेकिन Webmin चल नहीं रहा है, sudo systemctl status webmin की जाँच करें।
"Access denied for <your IP>." आपने Option A के तहत IP Access Control सेट किया है और आपका वर्तमान पता allow list में नहीं है, या यह एक dynamic IP है जो बदल गया है, या कोई टाइपिंग त्रुटि है। ब्राउज़र के माध्यम से वापस जाने का कोई रास्ता नहीं है। console से समाधान: /etc/webmin/miniserv.conf में allow= लाइन को edit करें, उसे सही करें या हटा दें, और sudo systemctl restart webmin चलाएँ।
"Login failed. Please try again." जबकि credentials सही हैं। account का कोई Unix password नहीं है, जो कि key-only cloud images पर मानक है। Webmin Unix password के खिलाफ PAM के माध्यम से authenticate करता है, और उस user के लिए वह password मौजूद नहीं है। समाधान: सर्वर पर sudo passwd youruser चलाएँ, फिर log in करें। यदि /var/webmin/miniserv.log में Non-existent login as ... दिखाई देता है, तो आप ऐसा username टाइप कर रहे हैं जो Unix account ही नहीं है।
कुछ सर्वरों से अधिक के लिए, प्रत्येक box पर control panel के बजाय automation बेहतर काम करता है: आपका पहला Ansible playbook वह जगह है जहाँ से इसकी शुरुआत होती है।
FAQ
क्या Webmin को public internet पर expose करना सुरक्षित है?
Internet-facing Webmin को एक login page वाली root shell की तरह मानें, क्योंकि यह वास्तव में वही है। यह केवल कई परतों (layers) के साथ ही सुरक्षित है: एक असली certificate, two-factor authentication, Fail2ban, और या तो एक सख्त IP allowlist या, इससे भी बेहतर, इसे public internet पर expose न करना। सबसे कम जोखिम वाला setup Webmin को 127.0.0.1 पर bind करना है और इसे SSH tunnel के माध्यम से access करना है, ताकि port 10000 पर open internet से कोई response न मिले।
मैं Webmin certificate warning को कैसे हटाऊं?
यह warning (NET::ERR_CERT_AUTHORITY_INVALID) इसलिए दिखाई देती है क्योंकि Webmin एक self-signed certificate के साथ आता है। Webmin, Webmin Configuration, SSL Encryption, Let's Encrypt के माध्यम से एक असली certificate जारी करें। एक ऐसा DNS name उपयोग करें जो server की ओर point करता हो, या यदि Certbot 5.3 या उसके बाद का version installed है, तो server का public IP address उपयोग करें। Challenge के लिए port 80 reachable होना चाहिए, जिसका उत्तर या तो किसी existing web server द्वारा दिया जाना चाहिए या Certbot के अपने standalone server द्वारा। यदि आप Webmin को हमेशा localhost पर SSH tunnel के माध्यम से ही access करते हैं, तो यह warning हानिकारक नहीं है; SSH पहले से ही connection को encrypt और authenticate करता है, और आप सुरक्षित रूप से self-signed certificate को accept कर सकते हैं।
मैं Webmin को केवल अपने IP address तक कैसे सीमित करूं?
Webmin, Webmin Configuration, IP Access Control पर जाएं, "Only allow from listed addresses" चुनें, और curl ifconfig.me से अपना public IP दर्ज करें। Webmin इसे /etc/webmin/miniserv.conf की allow= line में store करता है। Dynamic home IP के मामले में सावधान रहें: यदि यह बदल जाता है, तो आप lock out हो जाएंगे और आपको server console से allow= line को ठीक करना होगा, इसलिए static address या SSH-tunnel method व्यवहार में अधिक विश्वसनीय है।
सही password होने के बावजूद मेरा login विफल क्यों हो रहा है?
Webmin आपके Unix password के विरुद्ध PAM के माध्यम से authenticate करता है, और cloud images आमतौर पर केवल key-based होती हैं जिनमें default account पर कोई password set नहीं होता है, इसलिए PAM के पास match करने के लिए कुछ नहीं होता और login reject हो जाता है। Password set करने के लिए server पर sudo passwd youruser चलाएं, फिर login करें। /var/webmin/miniserv.log में Non-existent login as ... line का मतलब यह है कि username स्वयं एक वास्तविक Unix account नहीं है।
सामान्य SSH की तुलना में Webmin किस काम का है?
Webmin एक discoverability और सुविधा प्रदान करने वाली परत है। यह log files को browse करने, users और cron को manage करने, firewall rules को edit करने, और हर command को याद किए बिना disk और service की स्थिति देखने के लिए वास्तव में उपयोगी है, जो कभी-कभार काम करने वाले admins या मिश्रित कौशल वाली टीमों के लिए सुविधाजनक है। सामान्य SSH तेज़ है, scriptable है, और नियमित कार्यों के लिए बहुत कम attack surface expose करता है। कई admins दोनों का उपयोग करते हैं: दैनिक कार्यों के लिए SSH, और कभी-कभार point-and-click कार्यों के लिए tunnel के पीछे localhost पर bound Webmin। यदि आपका वास्तविक प्रश्न यह है कि panel बनाम shell के बजाय कौन सा panel बेहतर है, तो पहले Cockpit बनाम Webmin पर विचार करना उचित है, क्योंकि दोनों इस बात में भिन्न हैं कि प्रत्येक वास्तव में system के कितने हिस्से को बदल सकता है और प्रत्येक आपको कैसे authenticate करता है।