SSD Nodes Learn Hosting plans →
మార్గదర్శకాలు Matt Connorద్వారా Matt Connor · అప్‌డేట్ చేయబడింది 2026-08-13

Ubuntu 24.04లో Webmin ఇన్‌స్టాల్ చేయడం మరియు భద్రపరచడం ఎలా

Ubuntu 24.04 సర్వర్‌లో Webminను సురక్షితంగా ఇన్‌స్టాల్ చేయండి. IP allowlist, Let's Encrypt SSL, 2FA మరియు Fail2ban ద్వారా పోర్ట్ 10000ను ఎలా రక్షించుకోవాలో ఈ గైడ్ వివరిస్తుంది.

మీరు ఏమి నిర్మిస్తున్నారు

Webmin అనేది ఒక వెబ్ కంట్రోల్ ప్యానెల్. ఇది Linux సర్వర్, వినియోగదారులు, ప్యాకేజీలు, cron jobs, ఫైర్‌వాల్, Apache, BIND, డిస్క్‌లు మరియు వందలాది ఇతర మాడ్యూళ్లను బ్రౌజర్ ద్వారా నిర్వహించడానికి అనుమతిస్తుంది. ఇది HTTPS ద్వారా port 10000 లో అందుబాటులో ఉంటుంది. దీని ఇన్‌స్టాలేషన్ కేవలం మూడు కమాండ్లతో ఒక నిమిషంలో పూర్తవుతుంది. ఈ గైడ్‌లో ఎక్కువ భాగం రెండో సగం కోసం కేటాయించడానికి కారణం, Webmin అనేది root గా లాగిన్ అవుతుంది మరియు root చేయగలిగే దేనినైనా చేయగలదు. భద్రత లేని లేదా అన్‌అథెంటికేటెడ్ Webmin అనేది కేవలం "నిర్వహణ ప్రమాదం" కాదు; ఇది సర్వర్ మొత్తాన్ని పూర్తిగా రాజీ చేసే ఒక లాగిన్ పేజీ. కాబట్టి, పది నిమిషాల్లో దీన్ని ఇన్‌స్టాల్ చేయండి, ఆపై మిగిలిన సమయాన్ని మీరు మాత్రమే దీన్ని యాక్సెస్ చేయగలరని నిర్ధారించుకోవడానికి కేటాయించండి.

ముందస్తు అవసరాలు మరియు ఒక నిజాయితీ గల హెచ్చరిక

root లేదా sudo వినియోగదారు అనుమతులు కలిగిన తాజా Ubuntu 24.04 KVM VPS అవసరం. Webmin అనేది Perl ఆధారితమైనది మరియు తేలికైనది, 1 GB RAM దీనికి సరిపోతుంది మరియు ఇది పావు GB కంటే తక్కువ వినియోగంతోనే సమర్థవంతంగా పనిచేస్తుంది. ఇది Apache లేదా nginx పై ఆధారపడకుండా, తన సొంత bundled web server (miniserv.pl) ద్వారా TCP 10000 పోర్ట్‌లో వింటుంది, కాబట్టి ముందుగా వేరే ఏ ఇతర సాఫ్ట్‌వేర్ ఇన్‌స్టాల్ చేయాల్సిన అవసరం లేదు.

మీరు ప్రారంభించే ముందు రెండు విషయాలను నిర్ణయించుకోవాలి. మొదటిది, మీరు లాగిన్ అయ్యే ఖాతా: Webmin అనేది PAM ద్వారా Unix ఖాతాలను ప్రామాణీకరిస్తుంది, కాబట్టి మీరు root గా లేదా sudo గ్రూపులో ఉన్న వినియోగదారుగా ఆ ఖాతా యొక్క Unix password ఉపయోగించి లాగిన్ అవ్వాలి. క్లౌడ్ ఇమేజ్‌లలో సాధారణంగా పాస్‌వర్డ్ సెట్ చేయకుండా కేవలం SSH కీలు మాత్రమే ఉంటాయి, అటువంటి పాస్‌వర్డ్ లేని ఖాతాలతో Webmin లాగిన్ అవ్వలేదు. కాబట్టి ముందుగా sudo passwd youruser ఉపయోగించి పాస్‌వర్డ్‌ను సెట్ చేయండి, లేకపోతే మీరు ఏమి టైప్ చేసినా లాగిన్ విఫలమవుతుంది.

రెండవది, మరియు ఇది ముఖ్యమైన హెచ్చరిక: పోర్ట్ 10000ను ఇంటర్నెట్‌కు నేరుగా ఓపెన్ చేసి వదిలేయకండి. Webmin ను SSH tunnel ద్వారా యాక్సెస్ చేస్తారా (ఇది సిఫార్సు చేయబడినది, ఎటువంటి పోర్ట్ బయటకు కనిపించదు) లేదా మీ స్వంత 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 గురించి పేర్కొంటాయి. కాబట్టి, ఒకవేళ raw 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 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 సర్వర్ ఇమేజ్ సాధారణంగా దీన్ని డిసేబుల్ చేసి ఉంచుతుంది, కానీ చాలా ప్రొవైడర్లు దీన్ని ముందే ఎనేబుల్ చేస్తారు), పేజీ అస్సలు లోడ్ అవ్వదు. దీని గురించి కింద ఉన్న ఫెయిల్యూర్ మోడ్స్‌లో వివరించబడింది. ఒకవేళ పోర్ట్ ఓపెన్‌గా ఉంటే, మీ బ్రౌజర్ పూర్తి పేజీ బ్లాక్‌ను చూపిస్తుంది: Chrome లో NET::ERR_CERT_AUTHORITY_INVALID కోడ్‌తో "Your connection is not private" అని, లేదా Firefox లో SEC_ERROR_UNKNOWN_ISSUER / "Warning: Potential Security Risk Ahead" అని వస్తుంది. ఇది ఆశించినదే, ఇది హ్యాకింగ్ కాదు. Webmin ఇన్‌స్టాలేషన్ సమయంలో ఒక self-signed సర్టిఫికేట్‌ను (/etc/webmin/miniserv.pem) రూపొందిస్తుంది. దీనికి ఎటువంటి సర్టిఫికేట్ అథారిటీ (CA) ధృవీకరణ లేకపోవడం వల్ల, బ్రౌజర్ దీన్ని నమ్మడానికి నిరాకరిస్తుంది. కనెక్షన్ ఎన్‌క్రిప్ట్ చేయబడే ఉంటుంది, కానీ అది ధృవీకరించబడలేదు. ప్రస్తుతానికి దీన్ని దాటవేసి ముందుకు వెళ్లండి (Advanced, ఆపై Proceed క్లిక్ చేయండి), మనం ఈ సర్టిఫికేట్‌ను తర్వాత సరిగ్గా మారుస్తాము.

root లేదా మీ sudo యూజర్ మరియు దాని Unix పాస్‌వర్డ్‌తో లాగిన్ అవ్వండి, అప్పుడు మీరు System Information డాష్‌బోర్డ్‌కు చేరుకుంటారు. ఇక్కడ ఒక సాధారణ పొరపాటు ఏమిటంటే https:// కి బదులుగా http:// అని టైప్ చేయడం. miniserv ఆ పోర్ట్ మీద plain HTTP అభ్యర్థనలకు "This web server is running in SSL mode. Try the URL https://..." అని సమాధానం ఇస్తుంది. దీనికి పరిష్కారం అడ్రస్ బార్‌లో http ని https గా మార్చడమే.

భద్రతా నిర్ణయం: Webmin ను మీరు ఎలా చేరుకుంటారు?

ఇప్పుడు అసలైన ముఖ్యమైన విషయం. root-equivalent ప్యానెల్ ఏదీ ఇంటర్నెట్‌లో బహిరంగంగా ఉంటూ, ప్రపంచవ్యాప్తంగా ఉన్న ప్రతి స్కానర్ నుండి వచ్చే లాగిన్ ప్రయత్నాలకు సమాధానం ఇవ్వకూడదు. మీకు రెండు సమర్థనీయమైన మార్గాలు ఉన్నాయి, ప్రాధాన్యత క్రమంలో ఇక్కడ ఉన్నాయి. ప్రతి self-hosted అడ్మిన్ సర్ఫేస్ ఈ ప్రశ్ననే ఎదుర్కొంటుంది, అందుకే Vaultwarden సురక్షితమేనా అన్నది దాని ఎన్‌క్రిప్షన్ కంటే, దాని అడ్మిన్ ఎండ్‌పాయింట్ మరియు బ్యాకప్ ఫైల్ మీద ఆధారపడి ఉంటుంది.

Option B లోని SSH tunnel ఉత్తమమైనది, ఎందుకంటే ఇది దేనినీ బహిర్గతం చేయదు. మీ IP అడ్రస్ static అయితే Option A లోని IP allowlist ఆమోదయోగ్యమే. ఈ రెండింటిలో ఏదీ చేయకపోవడమే ఈ గైడ్ నివారించాలనుకుంటున్న అతి పెద్ద పొరపాటు. మీరు Webmin ను వీటి కంటే ప్రైవేట్ నెట్‌వర్క్ ద్వారా చేరుకోవాలనుకుంటే, ఆ సర్వర్‌ను self-hosted WireGuard VPN వెనుక ఉంచి, Webmin ను పబ్లిక్ అడ్రస్‌కు బదులుగా టన్నెల్ అడ్రస్‌కు bind చేయండి.

Option A: Webmin ను మీ IP కి పరిమితం చేయడం

ప్యానెల్‌లో, Webmin, ఆపై Webmin Configuration, ఆపై IP Access Control ను తెరవండి. "Only allow from listed addresses" ఎంచుకుని, మీ ల్యాప్‌టాప్‌లో curl ifconfig.me రన్ చేయడం ద్వారా తెలుసుకోగల మీ పబ్లిక్ IPని నమోదు చేయండి. సేవ్ చేయండి. Webmin దీనిని /etc/webmin/miniserv.conf లోని allow= లైన్‌కు రాసి, తనను తాను రీస్టార్ట్ చేసుకుంటుంది.

ప్రమాదం: మీ హోమ్ IP డైనమిక్ అయి మారిపోయినా, లేదా మీరు తప్పు 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= లైన్‌ను తొలగించడం ద్వారా పూర్తి యాక్సెస్ పునరుద్ధరించబడుతుంది, కాబట్టి దీనిని కేవలం రికవరీ కోసం మాత్రమే చేయండి, ఆపై వెంటనే సరైన విలువను సెట్ చేయండి.

Option B: localhost కి bind చేసి SSH ద్వారా tunnel చేయడం (సిఫార్సు చేయబడింది)

ఏదైనా allowlist కంటే, public interface పై వినకుండా (listen) ఉండటమే ఉత్తమం. miniserv ను కేవలం loopback కే bind చేయమని చెప్పండి, ఆపై మీరు ఇప్పటికే నమ్మే encrypted SSH tunnel ద్వారా దాన్ని చేరుకోండి.

/etc/webmin/miniserv.conf ను సవరించి, ఒక లైన్‌ను జోడించండి లేదా మార్చండి:

bind=127.0.0.1

sudo systemctl restart webmin తో restart చేయండి. ఇప్పుడు Webmin ఇంటర్నెట్ నుండి అందుబాటులో ఉండదు, 10000 పోర్ట్ స్కాన్ చేస్తే ఏమీ కనిపించదు, మరియు ముందుగా చేసిన ss తనిఖీ ఇప్పుడు అది 127.0.0.1:10000 కి bind అయిందని చూపుతుంది. మీ ల్యాప్‌టాప్ నుండి, ఒక tunnel ను తెరవండి:

ssh -L 10000:localhost:10000 youruser@YOUR_SERVER_IP

ఆ session ను అలాగే ఉంచి https://localhost:10000 కి బ్రౌజ్ చేయండి. ట్రాఫిక్ SSH లోపల ప్రయాణిస్తుంది, ఇది ఇప్పటికే మీ key ద్వారా ధృవీకరించబడి మరియు encrypt చేయబడి ఉంటుంది, కాబట్టి మీరు ఇక్కడ self-signed certificate ను సురక్షితంగా అంగీకరించవచ్చు, SSH పొర అసలైన రక్షణను అందిస్తుంది. SSH session ను మూసివేస్తే Webmin అందుబాటులో ఉండదు. allowlist చేయాల్సిన అవసరం లేదు, ఏదీ బహిర్గతం కాదు, కఠినతరం చేయడానికి అదనపు సేవలు అవసరం లేదు.

ఒకవేళ మీరు bind=127.0.0.1 సెట్ చేసి tunnel ను మర్చిపోతే, remote access ఆగిపోతుంది, ఇది ఫీచర్ పనితీరు మాత్రమే, లోపం కాదు. Option A లాగానే దీన్ని పునరుద్ధరించండి: console నుండి, bind లైన్‌ను తొలగించండి లేదా bind=0.0.0.0 సెట్ చేయండి, ఆపై restart చేయండి. ఇది tmux లో Claude Code నడుపుతున్న remote development box ను చేరుకోవడానికి మీరు ఉపయోగించే అదే tunnelling పద్ధతి, ఒకే SSH session, అంతా ప్రైవేట్, public interface పై అదనంగా ఏదీ వినదు.

Self-signed certificate స్థానంలో అసలైన certificate ను అమర్చడం

మీరు Option A కింద ఒక hostname ద్వారా Webmin ను బయటకు బహిర్గతం (expose) చేస్తే, బ్రౌజర్‌లో వచ్చే హెచ్చరికను తొలగించడానికి Let's Encrypt ద్వారా పొందిన అసలైన certificate ను వాడండి. మీకు ఒక DNS పేరు, ఉదాహరణకు panel.example.com, అవసరం. దీనికి సంబంధించిన A record మీ సర్వర్‌ను సూచించాలి మరియు validation సమయంలో port-80 HTTP challenge కు స్పందించే ఏదైనా సేవ ఉండాలి.

Webmin లో దీనికి అంతర్నిర్మిత సదుపాయం ఉంది: Webmin, ఆపై Webmin Configuration, ఆపై SSL Encryption, ఆపై Let's Encrypt tab కు వెళ్లండి. అక్కడ hostname ను నమోదు చేయండి, "website root directory" ను ఆ domain కోసం port 80 లో అందుబాటులో ఉన్న path కు సెట్ చేసి, అభ్యర్థనను పంపండి. Webmin certificate ను పొందుతుంది, miniserv.conf ఫైల్‌లోని certfile= మరియు keyfile= లైన్లను మీ కోసం అప్‌డేట్ చేస్తుంది మరియు గడువు ముగిసేలోపు ఆటోమేటిక్‌గా renew చేస్తుంది. పేజీని reload చేస్తే, padlock చిహ్నం సురక్షితంగా కనిపిస్తుంది.

ఇక్కడ ఉన్న ఒకే ఒక సమస్య: Webmin సర్వర్ port 80 లో కాకుండా 10000 లో నడుస్తుంది. కాబట్టి http-01 challenge కోసం port 80 లో panel.example.com కు స్పందించే Apache లేదా nginx వంటి ఒక అసలైన web server ఉండాలి, లేదా DNS-based validation వాడాలి. port 80 లో ఏమీ లేని కేవలం Webmin మాత్రమే ఉన్న సర్వర్‌లో, Let's Encrypt కు challenge ఫైల్ అందే మార్గం లేకపోతే validation error వస్తుంది. DNS records, port-80 challenge మరియు renewal ప్రక్రియలు ఏదైనా వెబ్‌సైట్‌కు certificate జారీ చేసే విధానం లాగే ఉంటాయి. దీనికి సంబంధించిన పూర్తి వివరాలు కావాలంటే, Let's Encrypt TLS certificates with Certbot and nginx guide లో validation flow మరియు DNS setup గురించి వివరంగా చూడవచ్చు. మీరు SSH-tunnel మార్గాన్ని ఎంచుకుంటే, ఈ విభాగాన్ని పూర్తిగా వదిలేయవచ్చు: SSH వెనుక self-signed certificate సరిపోతుంది, మరియు panel.example.com కోసం జారీ చేసిన అసలైన certificate ను https://localhost:10000 లో వాడితే, పేరు సరిపోలడం లేదని (name-mismatch) హెచ్చరిక వస్తుంది.

టూ-ఫ్యాక్టర్ అథెంటికేషన్ (2FA)ను ఆన్ చేయండి

కేవలం పాస్‌వర్డ్ మాత్రమే root ప్యానెల్‌కు తగినంత రక్షణ ఇవ్వదు, కాబట్టి రెండవ భద్రతా పొరను (second factor) జోడించండి. 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 లో, స్టాక్ ఇమేజ్‌లో /var/log/auth.log ఉండదు కాబట్టి, ఆ లైన్లు systemd journal లో నమోదవుతాయి. 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 తో రీలోడ్ చేయండి, ఆపై jail లైవ్‌లో ఉందో లేదో నిర్ధారించండి:

sudo fail2ban-client status webmin-auth

మీరు jail జాబితాలో ban కౌంటర్ సున్నాతో ప్రారంభం కావడాన్ని చూడాలి (journal బ్యాకెండ్‌లో File list: లైన్ ఉండదు). కనెక్షన్ సరిగ్గా ఉందో లేదో పరీక్షించడానికి, మరొక నెట్‌వర్క్ నుండి ఉద్దేశపూర్వకంగా కొన్నిసార్లు లాగిన్ విఫలం చేయండి. ఆ తర్వాత status కమాండ్‌ను మళ్లీ రన్ చేసి Currently banned పెరుగుతుందో లేదో గమనించండి. ఒకవేళ అది పెరగకపోతే, మీరు Fail2ban యొక్క ignoreip లో ఉన్న అడ్రస్ నుండి పరీక్షించడం లేదని నిర్ధారించుకోండి. అలాగే, Invalid login లైన్లు నిజంగానే వ్రాయబడుతున్నాయో లేదో తెలుసుకోవడానికి సర్వర్‌లో journalctl SYSLOG_IDENTIFIER=webmin ను రన్ చేయండి. ఈ బాక్స్‌లో Fail2ban ఇంకా ఇన్‌స్టాల్ చేయకపోతే, Ubuntu 24.04 లో SSH కోసం Fail2ban గైడ్ లో ఇన్‌స్టాలేషన్ మరియు మీరు దీనితో పాటు రన్ చేయాల్సిన SSH jail గురించి వివరించబడింది.

ప్రతి Webmin వినియోగదారుడు దేనిని యాక్సెస్ చేయవచ్చో పరిమితం చేయండి

ప్యానెల్ అవసరమైన ప్రతి ఒక్కరికీ అన్నింటిపై root అనుమతులు ఉండాల్సిన అవసరం లేదు. Webmin, ఆపై Webmin Users విభాగంలో, అదనపు Webmin లాగిన్‌లను సృష్టించండి. ప్రతి వినియోగదారునికి వారికి అవసరమైన మాడ్యూళ్లను మాత్రమే కేటాయించండి. ఉదాహరణకు, కేవలం cron మరియు filesystem మాడ్యూళ్లను మాత్రమే చూడగలిగే బ్యాకప్ ఆపరేటర్‌ను సృష్టించవచ్చు. ఒక వినియోగదారుని ఎడిట్ చేసినప్పుడు, అందుబాటులో ఉన్న అన్ని మాడ్యూళ్ల జాబితా కనిపిస్తుంది; ఒక మాడ్యూల్‌ను అన్‌చెక్ చేయడం ద్వారా అది ఆ వినియోగదారుని మెనూ నుండి తొలగించబడుతుంది మరియు దానికి సంబంధించిన URLలను యాక్సెస్ చేయకుండా నిరోధించబడుతుంది. ఇది defence in depth విధానం: తక్కువ అధికారాలు కలిగిన Webmin సెషన్ దొంగిలించబడినప్పటికీ, Users మాడ్యూల్ ఆ జాబితాలో లేనప్పుడు అది /etc/shadow ను మార్చలేదు.

Webmin ను అప్‌డేట్‌గా ఉంచడం

మీరు apt repository నుండి ఇన్‌స్టాల్ చేశారు కాబట్టి, sudo apt update && sudo apt upgrade సిస్టమ్‌లోని ఇతర భాగాలతో పాటు కొత్త Webmin releases ను కూడా పొందుతుంది. ప్యాచ్‌లను వెంటనే అప్‌డేట్ చేయండి, ఎందుకంటే కంట్రోల్ ప్యానెల్ హ్యాకర్లకు ఇష్టమైన లక్ష్యం. Webmin తనను తాను Webmin, then Webmin Configuration, then Upgrade Webmin ద్వారా కూడా అప్‌డేట్ చేసుకోగలదు, కానీ Ubuntu లో apt పద్ధతి మరింత మెరుగైనది. ఇది మీ ఇతర ప్యాకేజీల వెర్షన్‌లతో సమన్వయాన్ని కాపాడుతుంది. దీన్ని ఐచ్ఛికంగా భావించవద్దు: గతంలో వచ్చిన అనేక Webmin CVEలు remote-code-execution బగ్‌లు. "ప్యాచ్ చేయబడిన" సర్వర్‌కు మరియు "breached" సర్వర్‌కు మధ్య ఉన్న ఏకైక వ్యత్యాసం, అడ్మిన్ ఎంత వేగంగా అప్‌గ్రేడ్ పూర్తి చేశారనే దానిపైనే ఆధారపడి ఉంటుంది.

వైఫల్య రీతులు మరియు మీరు చూసే సందేశాలు

"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 ఆ పోర్టుపై కేవలం TLS ద్వారా మాత్రమే మాట్లాడుతుంది మరియు ఆ విషయాన్ని మీకు plain text లో చెబుతోంది. పరిష్కారం: అడ్రస్ బార్‌లో 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 అంటే firewall ప్యాకెట్లను నిశ్శబ్దంగా పడేస్తోందని అర్థం, అదే ERR_CONNECTION_REFUSED అంటే పోర్ట్ అందుబాటులో ఉంది కానీ Webmin నడవడం లేదని అర్థం, అప్పుడు sudo systemctl status webmin ను తనిఖీ చేయండి.

"Access denied for <your IP>." మీరు Option A కింద IP Access Control సెట్ చేశారు మరియు మీ ప్రస్తుత అడ్రస్ allow list లో లేదు, లేదా మీ dynamic IP మారింది, లేదా టైపింగ్ తప్పు. బ్రౌజర్ ద్వారా తిరిగి వెళ్లడానికి మార్గం లేదు. కన్సోల్ నుండి పరిష్కారం: /etc/webmin/miniserv.conf లోని allow= లైన్‌ను ఎడిట్ చేయండి, దానిని సరిచేయండి లేదా తొలగించండి, ఆపై sudo systemctl restart webmin ను రన్ చేయండి.

"Login failed. Please try again." అని మీకు తెలిసిన సరైన క్రెడెన్షియల్స్‌తో వస్తోంది. ఆ ఖాతాకు Unix పాస్‌వర్డ్ లేదు, ఇది key-only క్లౌడ్ ఇమేజ్‌లలో సాధారణం. Webmin అనేది PAM ద్వారా Unix పాస్‌వర్డ్‌తో ప్రమాణీకరణ (authenticate) చేస్తుంది, కానీ ఆ వినియోగదారుకు ఆ పాస్‌వర్డ్ లేదు. పరిష్కారం: సర్వర్‌పై sudo passwd youruser ను రన్ చేయండి, ఆపై లాగిన్ అవ్వండి. ఒకవేళ /var/webmin/miniserv.log లో Non-existent login as ... అని కనిపిస్తే, మీరు టైప్ చేస్తున్న యూజర్‌నేమ్ అసలు Unix ఖాతా కాదని అర్థం.

రెండు కంటే ఎక్కువ సర్వర్ల కోసం, ప్రతి బాక్స్‌పై కంట్రోల్ ప్యానెల్ కంటే ఆటోమేషన్ మెరుగ్గా పనిచేస్తుంది: మీ మొదటి Ansible playbook తో అది ప్రారంభమవుతుంది.

FAQ

Webmin ను పబ్లిక్ ఇంటర్నెట్‌లో ఉంచడం సురక్షితమేనా?

ఇంటర్నెట్‌కు అందుబాటులో ఉన్న Webmin ను లాగిన్ పేజీ ఉన్న root shell లాగా పరిగణించండి, ఎందుకంటే అది సరిగ్గా అదే. ఇది కేవలం పొరలవారీగా (layers) భద్రత ఉన్నప్పుడు మాత్రమే సురక్షితం: సరైన సర్టిఫికేట్, టూ-ఫ్యాక్టర్ అథెంటికేషన్, Fail2ban, మరియు కఠినమైన IP allowlist ఉండాలి. ఇంకా మంచి పద్ధతి ఏమిటంటే, పబ్లిక్ ఇంటర్నెట్‌కు అసలు ఎక్స్‌పోజ్ చేయకపోవడం. అత్యంత తక్కువ ప్రమాదం ఉన్న సెటప్, Webmin ను 127.0.0.1 కి బైండ్ చేసి, SSH tunnel ద్వారా మాత్రమే యాక్సెస్ చేయడం; దీనివల్ల పోర్ట్ 10000 ఓపెన్ ఇంటర్నెట్‌లో ఎవరికీ స్పందించదు.

Webmin సర్టిఫికేట్ హెచ్చరికను ఎలా తొలగించాలి?

Webmin సెల్ఫ్-సైన్డ్ సర్టిఫికేట్‌తో వస్తుంది కాబట్టి ఈ హెచ్చరిక (NET::ERR_CERT_AUTHORITY_INVALID) కనిపిస్తుంది. Webmin లోని Webmin Configuration, SSL Encryption, Let's Encrypt విభాగాలకు వెళ్లి, సర్వర్‌కు పాయింట్ అయ్యే DNS పేరును ఉపయోగించి ఒక నిజమైన సర్టిఫికేట్‌ను పొందండి. దీని కోసం పోర్ట్ 80 ద్వారా వచ్చే challenge ను ధృవీకరించే సేవ అందుబాటులో ఉండాలి. మీరు Webmin ను కేవలం localhost కి SSH tunnel ద్వారా మాత్రమే యాక్సెస్ చేస్తుంటే, ఈ హెచ్చరిక వల్ల ప్రమాదం లేదు; 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-tunnel పద్ధతి మరింత నమ్మదగినవి.

సరైన పాస్‌వర్డ్ ఉన్నా లాగిన్ ఎందుకు విఫలమవుతుంది?

Webmin మీ Unix పాస్‌వర్డ్‌ను PAM ద్వారా అథెంటికేట్ చేస్తుంది. క్లౌడ్ ఇమేజ్‌లలో సాధారణంగా డిఫాల్ట్ అకౌంట్‌కు పాస్‌వర్డ్ ఉండదు (కేవలం కీ-ఆధారిత లాగిన్ మాత్రమే ఉంటుంది), కాబట్టి PAM సరిపోల్చడానికి ఏమీ ఉండదు మరియు లాగిన్ తిరస్కరించబడుతుంది. పాస్‌వర్డ్ సెట్ చేయడానికి సర్వర్‌లో sudo passwd youruser రన్ చేసి, ఆపై లాగిన్ అవ్వండి. /var/webmin/miniserv.log ఫైల్‌లో Non-existent login as ... లైన్ ఉంటే, ఆ యూజర్‌నేమ్ నిజమైన Unix అకౌంట్ కాదని అర్థం.

సాధారణ SSH తో పోలిస్తే Webmin దేనికి ఉపయోగపడుతుంది?

Webmin అనేది విషయాలను సులభంగా కనుగొనడానికి మరియు సౌకర్యవంతంగా నిర్వహించడానికి ఉపయోగపడే ఒక లేయర్. ప్రతి కమాండ్‌ను గుర్తుంచుకోకుండా లాగ్ ఫైళ్లను చూడటానికి, యూజర్లు మరియు cron ను నిర్వహించడానికి, ఫైర్‌వాల్ నియమాలను ఎడిట్ చేయడానికి, మరియు డిస్క్ లేదా సర్వీస్ స్థితిని తెలుసుకోవడానికి ఇది నిజంగా ఉపయోగపడుతుంది. అప్పుడప్పుడు అడ్మినిస్ట్రేషన్ చేసే వారికి లేదా మిశ్రమ నైపుణ్యాలున్న టీమ్‌లకు ఇది అనుకూలం. సాధారణ SSH వేగవంతమైనది, స్క్రిప్ట్ చేయదగినది మరియు దైనందిన పనులకు తక్కువ attack surface ను కలిగి ఉంటుంది. చాలా మంది అడ్మిన్లు రెండింటినీ ఉపయోగిస్తారు: రోజువారీ పనులకు SSH, మరియు అప్పుడప్పుడు పాయింట్-అండ్-క్లిక్ పనుల కోసం టన్నెల్ వెనుక localhost కు బైండ్ చేసిన Webmin. మీరు ప్యానెల్ vs షెల్ గురించి కాకుండా, ఏ ప్యానెల్ వాడాలి అని ఆలోచిస్తుంటే, Cockpit vs Webmin గురించి తెలుసుకోవడం మంచిది, ఎందుకంటే సిస్టమ్‌ను ఎంతవరకు మార్చగలవు మరియు ఎలా అథెంటికేట్ చేస్తాయి అనే విషయంలో ఇవి భిన్నంగా ఉంటాయి.