Ubuntu 24.04 లో Webmin ఇన్స్టాల్ మరియు సెక్యూరిటీ
Ubuntu 24.04 లో Webmin ఇన్స్టాల్ చేసి, SSH టన్నెల్, IP అలవ్లిస్ట్, Let's Encrypt సర్టిఫికెట్, టూ-ఫ్యాక్టర్ మరియు Fail2ban తో పోర్ట్ 10000 ను సురక్షితం చేయడం ఈ గైడ్లో వివరించబడింది.
మీరు నిర్మించేది ఏమిటి
Webmin అనేది ఒక వెబ్ నియంత్రణ ప్యానెల్. ఇది మొత్తం Linux సర్వర్కు బ్రౌజర్ ఇంటర్ఫేస్ను అందిస్తుంది — వినియోగదారులు, ప్యాకేజీలు, cron ఉద్యోగాలు, ఫైర్వాల్, Apache, BIND, డిస్క్లు, మరియు వంద ఇతర మాడ్యూల్లు — పోర్ట్ 10000 ద్వారా HTTPS లో యాక్సెస్ చేయగలిగేలా ఉంటుంది. దీన్ని ఇన్స్టాల్ చేయడానికి మూడు కమాండ్లు చాలు. దీనికి దాదాపు ఒక నిమిషం పడుతుంది. ఈ గైడ్ దాని పొడవులో ఎక్కువ భాగాన్ని రెండవ సగభాగానికి కేటాయించడానికి కారణం ఏమిటంటే, Webmin అనేది root గా లాగిన్ అవుతుంది. root చేయగలిగే ప్రతిదీ ఇది చేయగలదు. పూర్తిగా తెరిచి ఉన్న లేదా ప్రామాణీకరణ లేని Webmin అనేది "నిర్వహించడానికి ఒక రిస్క్" కాదు. అది ముందు ఒక లాగిన్ పేజీ ఉన్న పూర్తి సర్వర్ రాజీనామా. కాబట్టి దాన్ని పది నిమిషాల్లో ఇన్స్టాల్ చేయండి. తర్వాత మిగిలిన సమయాన్ని మీకు మాత్రమే దాన్ని చేరుకోగలగేలా చూసుకోవడానికి వినియోగించండి.
ముందస్తు అవసరాలు మరియు ఒక నిజాయితీ హెచ్చరిక
root లేదా sudo వినియోగదారుడితో కూడిన కొత్త Ubuntu 24.04 KVM VPS. Webmin అనేది Perl ఆధారితమైనది మరియు తేలికైనది — 1 GB RAM సరిపోతుంది మరియు ఇది పావు గిగాబైట్ కంటే తక్కువలో సులభంగా నిశ్చలంగా ఉంటుంది. ఇది TCP 10000 పోర్ట్పై దాని స్వంత అంతర్గత వెబ్ సర్వర్ (miniserv.pl) ద్వారా వింటుంది, Apache లేదా nginx ద్వారా కాదు, కాబట్టి ముందుగా వేరేది ఏమీ స్థాపించాల్సిన అవసరం లేదు.
మీరు ప్రారంభించే ముందు నిర్ణయించాల్సిన రెండు విషయాలు ఉన్నాయి. మొదటిది, మీరు లాగిన్ అయ్యే ఖాతా: Webmin అనునది PAM ద్వారా Unix ఖాతాలను ధృవీకరిస్తుంది, కాబట్టి మీరు ఆ ఖాతా Unix పాస్వర్డ్ను ఉపయోగించి root లేదా sudo గ్రూప్లోని వినియోగదారుడిగా లాగిన్ అవుతారు. క్లౌడ్ ఇమేజ్లు సాధారణంగా కీ-మాత్రమే ఉంటాయి, డిఫాల్ట్ వినియోగదారుడిపై పాస్వర్డ్ సెట్ చేయబడి ఉండదు, మరియు 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 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) స్టేటస్ కావాలి మరియు 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 స్వంత సర్వర్ ఇమేజ్ దాన్ని క్రియారహితంగా అందిస్తుంది, కానీ అనేక ప్రొవైడర్లు ముందుగానే దాన్ని ప్రారంభిస్తారు — పేజీ అసలు లోడ్ కాదు. ఆ వైఫల్య రకాలను కింద వివరించాము. పోర్ట్ తెరిచి ఉంటే, మీ బ్రౌజర్ పూర్తి పేజీ బ్లాక్ను చూపుతుంది: Chromeలో "Your connection is not private" అనే సందేశంతో పాటు NET::ERR_CERT_AUTHORITY_INVALID కోడ్ వస్తుంది, లేదా Firefoxలో SEC_ERROR_UNKNOWN_ISSUER / "Warning: Potential Security Risk Ahead" కనిపిస్తుంది. ఇది సహజం. దాడి కాదు. Webmin ఇన్స్టాలేషన్ సమయంలో స్వీయ-సంతకం చేసిన సర్టిఫికేట్ను సృష్టిస్తుంది (/etc/webmin/miniserv.pem). ఏ సర్టిఫికేట్ అథారిటీ దానికి హామీ ఇవ్వదు కాబట్టి, బ్రౌజర్ దాన్ని నమ్మదు. కనెక్షన్ ఇంకా ఎన్క్రిప్ట్ అయి ఉంది. కేవలం ధృవీకరణ లేదు. ప్రస్తుతానికి క్లిక్ చేసి ముందుకు వెళ్ళండి (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 కి సమానమైన ప్యానెల్ బహిరంగ ఇంటర్నెట్లో ఉండి ప్రపంచంలోని ప్రతి స్కానర్ నుండి వచ్చే లాగిన్ ప్రయత్నాలకు స్పందించకూడదు. మీకు రెండు సమర్థించదగిన ఎంపికలు ఉన్నాయి, ప్రాధాన్యత క్రమంలో.
ఎంపిక B లోని SSH టనెల్ మెరుగైనది, ఎందుకంటే అది ఏమీ బయటకు కనిపించదు. మీ చిరునామా స్థిరంగా ఉంటే ఎంపిక A లోని IP అనుమతి జాబితా ఆమోదయోగ్యం. రెండూ కావని వదిలేయడం అనేది ఈ మొత్తం గైడ్ నివారించాలని ఉద్దేశించిన పొరపాటే. మీరు ఈ రెండిటి కంటే ప్రైవేట్ నెట్వర్క్ ద్వారా Webmin ని చేరుకోవాలనుకుంటే, బాక్స్ని స్వయం-హోస్ట్ చేసిన WireGuard VPN వెనుక ఉంచండి మరియు Webmin ని పబ్లిక్ చిరునామాకు బదులుగా టనెల్ చిరునామాకు బైండ్ చేయండి.
ఎంపిక A: Webmin ను మీ IP కి పరిమితం చేయండి
ప్యానెల్లో, Webmin, తర్వాత Webmin Configuration, తర్వాత IP Access Control తెరవండి. "Only allow from listed addresses" ఎంచుకుని, మీ పబ్లిక్ IP ని నమోదు చేయండి. మీ ల్యాప్టాప్లో curl ifconfig.me నడిపి ఆ IP ని మీరు కనుగొనవచ్చు. సేవ్ చేయండి. 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 webminallow= లైన్ను తొలగించడం పూర్తి ఓపెన్ యాక్సెస్ను పునరుద్ధరిస్తుంది. కాబట్టి దీన్ని రికవరీ కోసం మాత్రమే చేయండి, తర్వాత వెంటనే సరైన విలువను సెట్ చేయండి.
ఎంపిక B: localhost కు బైండ్ చేయండి మరియు SSH ద్వారా టన్నెల్ చేయండి (సిఫార్సు చేయబడింది)
ఏ అనుమతి జాబితా కంటే మంచిది, పబ్లిక్ ఇంటర్ఫేస్పై అసలు వినకపోవడం. miniserv ను కేవలం loopback కు బైండ్ చేయమని చెప్పండి, తర్వాత మీరు ఇప్పటికే నమ్మకంగా ఉన్న ఎన్క్రిప్టెడ్ SSH టన్నెల్ ద్వారా దానిని చేరుకోండి.
/etc/webmin/miniserv.conf ను సవరించండి మరియు ఒక వరుసను జోడించండి లేదా మార్చండి:
bind=127.0.0.1sudo 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 సెట్ చేసి టన్నెల్ను మర్చిపోతే, రిమోట్ యాక్సెస్ కేవలం ఆగిపోతుంది — అది లోపం కాదు, ఫీచర్ సరిగ్గా పనిచేస్తోంది. ఎంపిక A లాగానే రికవర్ చేయండి: కన్సోల్ నుండి, bind వరుసను తీసివేయండి లేదా bind=0.0.0.0 సెట్ చేయండి, తర్వాత రీస్టార్ట్ చేయండి. ఇది tmux లో Claude Code నడుస్తున్న రిమోట్ డెవలప్మెంట్ బాక్స్ను చేరుకోవడానికి మీరు ఉపయోగించే అదే టన్నెలింగ్ అలవాటు — ఒక SSH సెషన్, ప్రతిదీ ప్రైవేట్, పబ్లిక్ ఇంటర్ఫేస్పై అదనంగా ఏమీ వినదు.
స్వీయ-సంతకం పొందిన ధృవీకరణ పత్రాన్ని నిజమైనదానితో భర్తీ చేయండి
మీరు ఆప్షన్ A కింద ఒక హోస్ట్నేమ్పై Webmin ను బహిర్గతం చేస్తే, నిజమైన Let's Encrypt ధృవీకరణ పత్రంతో బ్రౌజర్ హెచ్చరికను తొలగించండి. మీకు ఒక DNS పేరు కావాలి — ఉదాహరణకు panel.example.com — సర్వర్ను సూచిస్తూ దానికి ఒక A రికార్డు ఉండాలి, మరియు ధృవీకరణ సమయంలో పోర్ట్-80 HTTP ఛాలెంజ్కు స్పందించే ఏదైనా కావాలి.
Webmin లో ఇది అంతర్గతంగా ఉంది: Webmin, తర్వాత Webmin Configuration, తర్వాత SSL Encryption, తర్వాత Let's Encrypt ట్యాబ్. హోస్ట్నేమ్ను నమోదు చేయండి, "website root directory"ను ఆ డొమైన్ కోసం పోర్ట్ 80లో అందించబడే పాత్కి సూచించండి, మరియు అభ్యర్థించండి. Webmin ధృవీకరణ పత్రాన్ని పొందుతుంది, miniserv.conf లోని certfile= మరియు keyfile= లైన్లను మీ కోసం నవీకరిస్తుంది, మరియు గడువు ముగిసే ముందు దాన్ని స్వయంచాలకంగా నవీకరిస్తుంది. పేజీని రీలోడ్ చేయండి మరియు పాడ్లాక్ స్వచ్ఛంగా మారుతుంది.
ఒక నిజాయితీ ఇబ్బంది: Webmin యొక్క స్వంత సర్వర్ 80 కాదు, 10000లో నడుస్తుంది, కాబట్టి http-01 ఛాలెంజ్కు పోర్ట్ 80లో panel.example.com కోసం స్పందించే ఒక నిజమైన వెబ్ సర్వర్ — Apache లేదా nginx — కావాలి, లేదంటే DNS ఆధారిత ధృవీకరణ కావాలి. పోర్ట్ 80లో ఏమీ లేని Webmin-మాత్రమే ఉన్న బాక్స్లో, మీరు Let's Encrypt కి ఛాలెంజ్ ఫైల్ను చేరుకునే మార్గాన్ని అందించే వరకు అభ్యర్థన ఒక ధృవీకరణ దోషంతో విఫలమవుతుంది. యంత్రాంగాలు — DNS రికార్డులు, పోర్ట్-80 ఛాలెంజ్, మరియు నవీకరణ — ఏదైనా వెబ్సైట్ కోసం ధృవీకరణ పత్రాన్ని జారీ చేయడం వలె ఉంటాయి. మీకు ఆ నేపథ్యం కావాలంటే, Certbot మరియు nginx తో Let's Encrypt TLS ధృవీకరణ పత్రాల గైడ్ ధృవీకరణ ప్రవాహం మరియు DNS సెటప్ను వివరంగా వివరిస్తుంది. మీరు SSH-టన్నెల్ మార్గాన్ని తీసుకుంటే మీరు ఈ విభాగాన్ని పూర్తిగా దాటవేయవచ్చు: స్వీయ-సంతకం పొందిన ధృవీకరణ పత్రం SSH వెనుక సరే, మరియు panel.example.com కోసం జారీ చేయబడిన నిజమైన ధృవీకరణ పత్రం మీరు https://localhost:10000 సందర్శించినప్పుడు పేరు-సరిపోలకపోవడం హెచ్చరికను మాత్రమే ఉత్పత్తి చేస్తుంది.
ద్విస్తార ధృవీకరణను ప్రారంభించండి
ఒక పాస్వర్డ్ మాత్రమే రూట్ ప్యానెల్కు సరిపోనంత రక్షణ కాదు. కాబట్టి రెండవ అంశాన్ని జోడించండి. 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 తప్పనిసరి అయితే మరియు మీ ఖాతా ఎప్పుడూ కోడ్ను స్కాన్ చేయనట్లయితే, మీరు కన్సోల్ నుండి ఆ నిబంధనను తొలగించవచ్చు. అయితే ముందుగా నమోదు చేసుకోవడం చాలా సులభం.
బ్రూట్-ఫోర్స్ లాగిన్లను నిరోధించడానికి Fail2ban జోడించండి
పరిమితమైన లాగిన్ ఎండ్పాయింట్ కూడా పునరావృత వైఫల్యాలను శిక్షించాలి. Webmin వైఫల్య లాగిన్లను syslog కి webmin[12345]: Invalid login as root from 10.0.0.9 రూపంలో నివేదిస్తుంది. లేదా Unix ఖాతా కాని వినియోగదారు పేరు కోసం Non-existent login as ... ని నివేదిస్తుంది. Ubuntu 24.04 లో ఆ పంక్తులు 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 = 1hsudo systemctl restart fail2ban తో రీలోడ్ చేసి, జైలు యాక్టివ్గా ఉందో లేదో నిర్ధారించుకోండి:
sudo fail2ban-client status webmin-authమీరు జైలును జాబితాలో చూస్తారు. ప్రారంభంలో నిషేధ కౌంటర్ సున్నా ఉంటుంది (జర్నల్ బ్యాకెండ్లో File list: పంక్తి ఉండదు). ఎండ్-టు-ఎండ్ కనెక్షన్ను రుజువు చేయడానికి, వేరే నెట్వర్క్ నుండి ఉద్దేశపూర్వకంగా కొన్ని సార్లు లాగిన్ విఫలం చేయండి. తర్వాత స్టేటస్ కమాండ్ను మళ్లీ అమలు చేసి, Currently banned పెరుగుతుందో చూడండి. అది ఎప్పటికీ పెరగకపోతే, మీరు Fail2ban యొక్క ignoreip లో ఉన్న చిరునామా నుండి టెస్ట్ చేయడం లేదని నిర్ధారించుకోండి. సర్వర్లో Invalid login పంక్తులు వాస్తవానికి రాస్తున్నాయో నిర్ధారించడానికి journalctl SYSLOG_IDENTIFIER=webmin ను అమలు చేయండి. ఈ బాక్స్లో Fail2ban ఇంకా ఇన్స్టాల్ కాకపోతే, SSH కోసం Ubuntu 24.04 లో Fail2ban గైడ్ ఇన్స్టాలేషన్ను మరియు మీరు దీనితో పాటు అమలు చేయాల్సిన SSH జైలును వివరిస్తుంది.
ప్రతి Webmin వినియోగదారు ఏవి యాక్సెస్ చేయగలడో పరిమితం చేయండి
ప్యానెల్ అవసరమైన ప్రతి ఒక్కరికీ అన్నింటిపై root అవసరం లేదు. Webmin, తర్వాత Webmin Users కింద, అదనపు Webmin లాగిన్లను సృష్టించండి. ప్రతి వినియోగదారునకు అవసరమైన మాడ్యూల్లను మాత్రమే మంజూరు చేయండి — ఉదాహరణకు, ఒక బ్యాకప్ ఆపరేటర్కు cron మరియు filesystem మాడ్యూల్లు మాత్రమే కనిపిస్తాయి. ఒక వినియోగదారుని సవరించినప్పుడు ప్రతి మాడ్యూల్కు సంబంధించిన చెక్లిస్ట్ కనిపిస్తుంది. ఒక మాడ్యూల్ను అన్చెక్ చేయడం వలన అది ఆ వినియోగదారు మెనూ నుండి తొలగించబడుతుంది. దీనివల్ల ఆ మాడ్యూల్కు సంబంధించిన అంతర్లీన URLs కూడా బ్లాక్ అవుతాయి. ఇది లోతైన రక్షణ: Users మాడ్యూల్ జాబితాలో లేనప్పుడు, దొంగిలించబడిన తక్కువ-అధికారం గల Webmin సెషన్ కూడా /etc/shadow ను తిరిగి వ్రాయలేదు.
Webmin ను నవీకరించచేసి ఉంచడం
మీరు apt రిపోజిటరీ నుండి ఇన్స్టాల్ చేసినందున, sudo apt update && sudo apt upgrade సిస్టమ్లోని మిగిలిన ప్యాకేజీలతో పాటు కొత్త Webmin విడుదలలను కూడా తెస్తుంది. ప్యాచ్లను త్వరగా వర్తింపజేయండి — కంట్రోల్ ప్యానెల్ దాడులకు ప్రధాన లక్ష్యం. Webmin Webmin, then Webmin Configuration, then Upgrade Webmin ద్వారా స్వయంగా కూడా నవీకరించుకోగలదు, అయితే Ubuntuలో apt మార్గం మెరుగైనది. ఎందుకంటే ఇది మీ ఇతర ప్యాకేజీ నిర్వహణతో వెర్షన్లను స్థిరంగా ఉంచుతుంది. దీన్ని ఐచ్ఛికంగా భావించవద్దు: గతంలో అనేక Webmin CVEలు రిమోట్-కోడ్-ఎగ్జిక్యూషన్ బగ్లుగా ఉన్నాయి. "ప్యాచ్ చేయబడింది" మరియు "భంగపరచబడింది" మధ్య ఉన్న ఏకైక తేడా అడ్మిన్ అప్గ్రేడ్ను ఎంత వేగంగా అమలు చేశారు అనేది మాత్రమే.
వైఫల్య రకాలు, మీరు చూసే స్ట్రింగ్లతో
"Your connection is not private" / NET::ERR_CERT_AUTHORITY_INVALID. మొదటి లోడ్పై చూపబడుతుంది. కారణం: స్థాపన సమయంలో Webmin సృష్టించిన స్వయం-సంతకం ధృవీకరణపత్రానికి విశ్వసనీయ జారీదారు లేడు. ఇది దాడి కాదు; ఛానెల్ ఎన్క్రిప్ట్ చేయబడింది, కానీ ధృవీకరించబడలేదు. పరిష్కారం: ప్రస్తుతానికి హెచ్చరిక ద్వారా ముందుకు వెళ్ళండి, తర్వాత నిజమైన Let's Encrypt ధృవీకరణపత్రాన్ని జారీ చేయండి, లేదా మీరు SSH టనల్ ద్వారా Webmin చేరుకుంటే దాన్ని శాశ్వతంగా అంగీకరించండి.
"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 తో తెరవండి లేదా, మెరుగైనది, దాన్ని మూసివేసి ఆప్షన్ B నుండి SSH టనల్ ఉపయోగించండి. తేడాను గమనించండి: టైమౌట్ అంటే ఫైర్వాల్ నిశ్శబ్దంగా ప్యాకెట్లను తిరస్కరిస్తోందని అర్థం, అయితే ERR_CONNECTION_REFUSED అంటే పోర్ట్ చేరుకోగలదు కానీ Webmin నడుపబడటం లేదని అర్థం — sudo systemctl status webmin తనిఖీ చేయండి.
"Access denied for <your IP>." మీరు ఆప్షన్ A కింద IP యాక్సెస్ కంట్రోల్ సెట్ చేశారు మరియు మీ ప్రస్తుత చిరునామా అనుమతి జాబితాలో లేదు — డైనమిక్ IP మారింది, లేదా టైపో. బ్రౌజర్ ద్వారా తిరిగి ప్రవేశించే మార్గం లేదు. కన్సోల్ నుండి పరిష్కరించండి: /etc/webmin/miniserv.conf లో allow= లైన్ను సవరించండి, దాన్ని సరిచేయండి లేదా తొలగించండి, మరియు 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 ఖాతా కాదు.
కొన్ని సర్వర్ల కంటే ఎక్కువగా, ప్రతి పెట్టెపై కంట్రోల్ ప్యానెల్ కంటే ఆటోమేషన్ మెరుగ్గా స్కేల్ అవుతుంది: మీ మొదటి Ansible ప్లేబుక్ అక్కడే ప్రారంభమవుతుంది.
FAQ
పబ్లిక్ ఇంటర్నెట్పై Webminను బహిర్గతం చేయడం సురక్షితమేనా?
ఇంటర్నెట్ను ఎదుర్కొనే Webminను లాగిన్ పేజీతో కూడిన రూట్ షెల్గా పరిగణించండి, ఎందుకంటే అది ఖచ్చితంగా అదే. అది పొరలలో మాత్రమే సరిపడా సురక్షితం: నిజమైన సర్టిఫికేట్, ద్వి-కారక ప్రామాణీకరణ, Fail2ban, మరియు కఠినమైన IP అనుమతి జాబితా లేదా, మెరుగైనది, పబ్లిక్ బహిర్గతం లేకపోవడం. అత్యల్ప-ప్రమాద సెటప్ Webminను 127.0.0.1కు బైండ్ చేస్తుంది మరియు దానిని SSH టనెల్ ద్వారా చేరుకుంటుంది, కాబట్టి పోర్ట్ 10000 ఓపెన్ ఇంటర్నెట్పై ఎవరికీ స్పందించదు.
Webmin సర్టిఫికేట్ హెచ్చరికను నేను ఎలా తొలగించగలను?
ఈ హెచ్చరిక (NET::ERR_CERT_AUTHORITY_INVALID) అసలు కారణం Webmin స్వీయ-సంతకం చేసిన సర్టిఫికేట్ను అందించడం. Webmin, Webmin Configuration, SSL Encryption, Let's Encrypt నుండి నిజమైనదాన్ని జారీ చేయండి, ధృవీకరణ కోసం పోర్ట్-80 సవాలును అందించే సేవతో పాటు సర్వర్ను సూచించే DNS పేరును ఉపయోగించండి. మీరు Webminను localhostకు SSH టనెల్ ద్వారా మాత్రమే చేరుకుంటే, ఆ హెచ్చరిక ప్రమాదకరమైనది కాదు — 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= లైన్ను మరమ్మత్తు చేయాలి, కాబట్టి స్థిర చిరునామా లేదా SSH-టనెల్ పద్ధతి ఆచరణలో మరింత నమ్మకమైనది.
సరైన పాస్వర్డ్ ఉన్నప్పటికీ నా లాగిన్ ఎందుకు విఫలమవుతుంది?
Webmin మీ యూనిక్స్ పాస్వర్డ్కు వ్యతిరేకంగా PAM ద్వారా ప్రామాణీకరిస్తుంది, మరియు క్లౌడ్ ఇమేజ్లు సాధారణంగా కీ-మాత్రమే ఉంటాయి, డిఫాల్ట్ ఖాతాపై పాస్వర్డ్ సెట్ చేయబడదు — కాబట్టి PAM నిర్దేశించడానికి ఏమీ లేదు మరియు లాగిన్ తిరస్కరించబడుతుంది. ఒకదాన్ని సెట్ చేయడానికి సర్వర్పై sudo passwd youruser నడపండి, తర్వాత లాగిన్ అవ్వండి. /var/webmin/miniserv.logలో Non-existent login as ... లైన్ అంటే ఆ యూజర్నేమ్ నిజమైన యూనిక్స్ ఖాతా కాదు.
సాధారణ SSHతో పోలిస్తే Webmin దేనికి పనికొస్తుంది?
Webmin అనేది కనుగొనగలిగే మరియు సౌకర్య పొర. ఇది లాగ్ ఫైళ్లను బ్రౌజ్ చేయడానికి, యూజర్లు మరియు cronను నిర్వహించడానికి, ఫైర్వాల్ నియమాలను సవరించడానికి, మరియు ప్రతి కమాండ్ను గుర్తుపెట్టుకోకుండా డిస్క్ మరియు సర్వీస్ స్థితిని చూడటానికి నిజంగా ఉపయోగపడుతుంది — అప్పుడప్పుడు పనిచేసే నిర్వాహకులు లేదా వివిధ-నైపుణ్యాలున్న బృందాలకు ఉపయోగకరం. సాధారణ SSH వేగవంతమైనది, స్క్రిప్ట్ చేయగలిగేది, మరియు రొటీన్ పనికి చాలా తక్కువ దాడి ఉపరితలాన్ని బహిర్గతం చేస్తుంది. అనేక మంది నిర్వాహకులు రెండింటినీ నడుపుతారు: రోజువారీ వినియోగానికి SSH, మరియు అప్పుడప్పుడు పాయింట్-అండ్-క్లిక్ పని కోసం టనెల్ వెనుక localhostకు బైండ్ చేయబడిన Webmin.