Ubuntu 24.04-ல் Webmin நிறுவுவது மற்றும் பாதுகாப்பது
Ubuntu 24.04-ல் Webmin நிறுவும் முறையை அறியுங்கள். SSH tunnel, IP allowlist, 2FA மற்றும் Fail2ban மூலம் port 10000-ஐ எவ்வாறு பாதுகாப்பாக வைப்பது என்பதற்கான முழுமையான வழிகாட்டி இது.
நீங்கள் உருவாக்குவது என்ன
Webmin என்பது ஒரு இணைய அடிப்படையிலான கட்டுப்பாட்டுப் பலகம் (control panel) ஆகும். இது ஒரு முழு Linux server, பயனர்கள், packages, cron jobs, firewall, Apache, BIND, disks மற்றும் நூற்றுக்கணக்கான பிற தொகுதிகளை ஒரு browser மூலம் நிர்வகிக்க உதவுகிறது. இது port 10000-ல் HTTPS வழியாக அணுகக்கூடியது. இதன் நிறுவல் மூன்று கட்டளைகளை மட்டுமே கொண்டது மற்றும் ஒரு நிமிடத்திற்குள் முடிந்துவிடும். இந்த வழிகாட்டியின் பெரும்பகுதி இரண்டாம் பாதியில் செலவிடப்படுவதற்குக் காரணம், Webmin ஆனது root பயனராக உள்நுழைகிறது மற்றும் root செய்யக்கூடிய எதையும் செய்ய முடியும் என்பதால் தான். பாதுகாப்பற்ற அல்லது அங்கீகாரம் இல்லாத Webmin என்பது "நிர்வகிக்க வேண்டிய ஒரு ஆபத்து" மட்டுமல்ல; அது ஒரு login பக்கத்தைக் கொண்ட முழுமையான server ஊடுருவலாகும் (server compromise). எனவே, இதை பத்து நிமிடங்களில் நிறுவிவிட்டு, மீதமுள்ள நேரத்தை நீங்கள் மட்டுமே அதை அணுக முடியும் என்பதை உறுதிப்படுத்த செலவிடுங்கள்.
முன்நிபந்தனைகள் மற்றும் ஒரு எச்சரிக்கை
Ubuntu 24.04 KVM VPS ஒன்றில் root அல்லது sudo வசதி கொண்ட பயனர் கணக்கு அவசியம். Webmin என்பது Perl மூலம் இயங்கும் ஒரு மென்பொருள்; இதற்கு 1 GB RAM போதுமானது, இது 250 MB-க்கும் குறைவான அளவிலேயே இயங்கும். இது Apache அல்லது nginx-ஐச் சார்ந்து இருக்காது; மாறாக, தனது சொந்த web server (miniserv.pl) மூலம் TCP 10000 port-ல் இயங்கும். எனவே, முன்னதாக வேறு எந்த மென்பொருளையும் நிறுவ வேண்டியதில்லை.
தொடங்குவதற்கு முன் இரண்டு விஷயங்களை முடிவு செய்ய வேண்டும். முதலாவதாக, நீங்கள் பயன்படுத்தும் கணக்கு: Webmin ஆனது PAM மூலம் Unix கணக்குகளைச் சரிபார்க்கிறது. எனவே, நீங்கள் root அல்லது sudo குழுவில் உள்ள ஒரு பயனர் கணக்கைப் பயன்படுத்தி, அந்த கணக்கின் Unix password மூலம் நுழைய வேண்டும். Cloud images-ல் பெரும்பாலும் password இருக்காது, key மட்டுமே இருக்கும். Password இல்லாத கணக்கில் Webmin-ஆல் நுழைய முடியாது. எனவே, முதலில் sudo passwd youruser கட்டளையைப் பயன்படுத்தி password-ஐ அமைக்கவும்; இல்லையெனில், நீங்கள் என்ன கடவுச்சொல்லை உள்ளிட்டாலும் login தோல்வியடையும்.
இரண்டாவதாக, ஒரு எச்சரிக்கை: port 10000-ஐ இணையத்திற்குத் திறந்துவிட்டு அப்படியே விட்டுவிடாதீர்கள். Webmin-ஐ SSH tunnel வழியாக அணுகப்போகிறீர்களா (இதுவே பரிந்துரைக்கப்படுகிறது, எதையும் வெளிப்படுத்தாது) அல்லது உங்கள் IP முகவரிக்கு மட்டும் கட்டுப்படுத்தப்போகிறீர்களா என்பதை இப்போதே முடிவு செய்யுங்கள். இந்த முடிவே கீழே உள்ள ஒவ்வொரு படியையும் தீர்மானிக்கும், எனவே firewall-ஐ அமைப்பதற்கு முன் இரண்டு விருப்பங்களையும் படித்துப் பார்க்கவும்.
அதிகாரப்பூர்வ repository-லிருந்து Webmin-ஐ நிறுவுதல்
Webmin கையொப்பமிடப்பட்ட apt repository-ஐ வழங்குகிறது. இந்த setup script, repository-ஐயும் அதன் GPG signing key-யையும் சேர்க்கிறது. இதனால், எதிர்காலத்தில் நீங்கள் இயக்கும் apt upgrade கட்டளைகள் மற்ற packages-ஐப் போலவே Webmin-ஐயும் பதிவிறக்கும். நீங்களாகவே ஒரு .deb-ஐத் தரவிறக்கம் செய்து நிறுவுவதற்குப் பதிலாக, இது அங்கீகரிக்கப்பட்ட updates-ஐப் பெற உதவும்.
curl -o webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
sudo sh webmin-setup-repo.shஇந்த script தான் என்ன செய்யப்போகிறது என்பதைத் திரையில் காட்டி, உங்களிடம் Setup repository? (y/N) கேட்கும்; அதற்கு y என்று பதிலளியுங்கள். அது முடிந்ததும், package-ஐ நிறுவுங்கள். --install-recommends flag-ஐப் பயன்படுத்தினால், தேவையான பொதுவான Perl மற்றும் SSL module dependencies தானாகவே பதிவிறக்கப்படும். இதனால், பிற்காலத்தில் library-கள் விடுபட்டதால் ஏற்படும் பிழைகளைத் தவிர்க்கலாம்.
sudo apt-get install --install-recommends webminWebmin இந்த script-ன் பெயரை இதற்கு முன்பு மாற்றியுள்ளது. பழைய வழிகாட்டிகளில் setup-repos.sh என்று குறிப்பிடப்பட்டிருக்கலாம். எனவே, அந்த URL 404 பிழையைக் காட்டினால், பெயரை மட்டும் நம்பியிருக்காமல் webmin.com/download தளத்திலிருந்து தற்போதைய one-liner கட்டளையைப் பெற்றுக்கொள்ளுங்கள். சரியாக நிறுவப்பட்டால், இறுதியில் Webmin install complete. You can now login to https://your-host:10000/ as root போன்ற ஒரு வரி தோன்றும். இந்த service தானாகவே இயங்கத் தொடங்கும் (enabled). இதன் configuration /etc/webmin பாதையில் இருக்கும், requests /var/webmin/miniserv.log கோப்பில் பதியப்படும், மற்றும் தவறான login முயற்சிகள் syslog-ல் பதியப்படும். Ubuntu 24.04-ல் இவை systemd journal-ல் பதியப்படுகின்றன.
Browser-ல் திறப்பதற்கு முன், அது இயங்குகிறதா மற்றும் port-ல் காத்திருக்கிறதா (listening) என்பதை உறுதிப்படுத்துங்கள்:
sudo systemctl status webmin --no-pager
sudo ss -tlnp | grep 10000நீங்கள் active (running) நிலையையும், miniserv.pl என்பது 0.0.0.0:10000-ல் இணைக்கப்பட்டிருப்பதையும் பார்க்க வேண்டும். கீழே உள்ள tunnel முறையைப் பயன்படுத்தினால், அந்த முகவரி 127.0.0.1:10000 என மாறும். ஒருவேளை ss கட்டளை 10000 port-ல் எதையும் காட்டவில்லை என்றால், Webmin தொடங்கவில்லை என்று அர்த்தம்; மேலும் தொடர்வதற்கு முன் journalctl -u webmin -n 50-ஐப் படியுங்கள்.
முதல் உள்நுழைவு மற்றும் சான்றிதழ் எச்சரிக்கை
உங்கள் உலாவியை https://YOUR_SERVER_IP:10000 முகவரிக்குச் சுட்டிக்காட்டவும். புதிய சர்வரில் இரண்டு விஷயங்கள் நடக்கும்.
ufw இயக்கப்பட்டிருந்தால் (Ubuntu-வின் சர்வர் இமேஜ்கள் இதை இயல்பாக முடக்கி வைத்திருக்கும், ஆனால் பல சேவை வழங்குநர்கள் இதை முன்னரே இயக்கிவிடுவார்கள்), பக்கம் ஏற்றப்படாது. இது கீழே உள்ள தோல்வி முறைகளில் விளக்கப்பட்டுள்ளது. port திறந்திருந்தால், உங்கள் உலாவி முழுப்பக்கத் தடையை ஏற்படுத்தும்: Chrome-ல் NET::ERR_CERT_AUTHORITY_INVALID குறியீட்டுடன் "Your connection is not private" என்றும், Firefox-ல் SEC_ERROR_UNKNOWN_ISSUER / "Warning: Potential Security Risk Ahead" என்றும் காட்டும். இது எதிர்பார்க்கப்படுவதுதான், ஊடுருவல் அல்ல. Webmin நிறுவப்படும்போதே ஒரு self-signed certificate-ஐ உருவாக்கியிருக்கும் (/etc/webmin/miniserv.pem). எந்தவொரு certificate authority-யும் இதை உறுதிப்படுத்தாததால், உலாவி இதை நம்ப மறுக்கிறது. இணைப்பு இன்னும் குறியாக்கப்பட்டுள்ளது (encrypted); ஆனால் அது உறுதிப்படுத்தப்படவில்லை. இப்போதைக்கு, Advanced என்பதைக் கிளிக் செய்து, Proceed என்பதைத் தேர்ந்தெடுத்து உள்ளே செல்லவும். நாம் இந்தச் சான்றிதழைப் பின்னர் முறையாக மாற்றிக்கொள்வோம்.
root அல்லது உங்கள் sudo பயனர் மற்றும் அதன் Unix கடவுச்சொல்லைப் பயன்படுத்தி உள்நுழையவும். இப்போது நீங்கள் System Information dashboard-க்குச் செல்வீர்கள். இங்கே பொதுவாக நடக்கும் ஒரு தவறு, https://-க்கு பதிலாக http:// என்று தட்டச்சு செய்வது. அந்த port-ல் miniserv சாதாரண HTTP மூலம் பதிலளிக்கும்போது, "This web server is running in SSL mode. Try the URL https://..." என்ற செய்தியைக் காட்டும். இதற்குத் தீர்வாக, முகவரிப் பட்டியில் http என்பதை https என்று மாற்றினால் போதுமானது.
பாதுகாப்பு முடிவு: Webmin-ஐ எவ்வாறு அணுகுவது?
இப்போது மிக முக்கியமான பகுதிக்கு வருவோம். root-க்கு இணையான அதிகாரங்களைக் கொண்ட ஒரு panel, இணையத்தில் உள்ள அனைத்து scanner-களின் login முயற்சிகளுக்கும் பதிலளிக்கும் வகையில் திறந்த நிலையில் இருக்கக்கூடாது. முன்னுரிமை அடிப்படையில், நீங்கள் தேர்ந்தெடுக்கக்கூடிய இரண்டு பாதுகாப்பான வழிகள் உள்ளன. ஒவ்வொரு self-hosted நிர்வாகத் தளமும் இந்த கேள்வியை எதிர்கொள்கிறது; இதனால்தான் Vaultwarden பாதுகாப்பானதா என்பது அதன் encryption-ஐ விட, அதன் admin endpoint மற்றும் backup file-ஐப் பொறுத்தே அமைகிறது.
விருப்பம் B-ல் உள்ள SSH tunnel சிறந்த முறையாகும், ஏனெனில் இது எதையும் வெளிப்படையாகக் காட்டாது. உங்கள் IP address நிலையானதாக (static) இருந்தால், விருப்பம் A-ல் உள்ள IP allowlist-ஐப் பயன்படுத்தலாம். இவை இரண்டையும் செய்யாமல் இருப்பது, இந்த வழிகாட்டி எதைத் தவிர்க்க முயல்கிறதோ, அதே தவறைச் செய்வதாகும். இவற்றை விட Webmin-ஐ ஒரு private network மூலம் அணுக விரும்பினால், அந்த server-ஐ self-hosted WireGuard VPN-க்கு பின்னால் வைத்து, Webmin-ஐ public address-க்கு பதிலாக tunnel address-ல் bind செய்யவும்.
விருப்பம் A: Webmin-ஐ உங்கள் IP-க்கு மட்டும் கட்டுப்படுத்துதல்
Panel-ல், Webmin, பின்னர் Webmin Configuration, அதன் பிறகு IP Access Control என்பதைத் திறக்கவும். "Only allow from listed addresses" என்பதைத் தேர்ந்தெடுத்து, உங்கள் laptop-ல் curl ifconfig.me-ஐ இயக்குவதன் மூலம் கண்டறியக்கூடிய உங்கள் public IP-ஐ உள்ளிடவும். சேமிக்கவும். Webmin இதை /etc/webmin/miniserv.conf-ல் உள்ள allow= வரியில் எழுதிவிட்டு, தன்னைத்தானே restart செய்துகொள்ளும்.
எச்சரிக்கை: உங்கள் வீட்டு IP dynamic ஆக இருந்து அது மாறினாலோ, அல்லது நீங்கள் தவறான IP-ஐ உள்ளிட்டாலோ, உங்களால் மீண்டும் உள்நுழைய முடியாது. அப்போது browser "Access denied for <your IP>" என்று காட்டும், login form தோன்றாது, மீண்டும் உள்ளே செல்ல web வழி இருக்காது. இதை 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= வரியை நீக்குவது முழுமையான அணுகலை மீண்டும் வழங்கும், எனவே இதை மீட்பு நடவடிக்கைக்கு மட்டும் பயன்படுத்தவும், பின்னர் உடனடியாக சரியான மதிப்பை அமைக்கவும்.
விருப்பம் B: localhost-ல் பிணைத்தல் மற்றும் SSH வழியாக tunnel செய்தல் (பரிந்துரைக்கப்படுகிறது)
எந்தவொரு allowlist-ஐ விடவும், public interface-ல் எதையும் listen செய்யாமல் இருப்பதே சிறந்தது. miniserv-ஐ loopback-ல் மட்டும் பிணைக்கச் சொல்லிவிட்டு, ஏற்கனவே நீங்கள் நம்பும் ஒரு encrypted SSH tunnel வழியாக அதை அணுகுங்கள்.
/etc/webmin/miniserv.conf-ஐத் திருத்தி, பின்வரும் வரியைச் சேர்க்கவும் அல்லது மாற்றவும்:
bind=127.0.0.1sudo systemctl restart webmin மூலம் restart செய்யவும். இப்போது Webmin இணையத்திலிருந்து அணுக முடியாததாகிவிடும், 10000 port-ஐ scan செய்தால் எதுவும் கிடைக்காது, மேலும் முன்னதாகச் செய்த ss சோதனையில் அது 127.0.0.1:10000-ல் பிணைக்கப்பட்டிருப்பது தெரியும். உங்கள் laptop-லிருந்து ஒரு tunnel-ஐத் திறக்கவும்:
ssh -L 10000:localhost:10000 youruser@YOUR_SERVER_IPஅந்த session-ஐத் திறந்து வைத்துவிட்டு, https://localhost:10000-க்குச் செல்லவும். traffic ஆனது SSH-க்குள் பயணிக்கிறது; இது ஏற்கனவே உங்கள் key மூலம் அங்கீகரிக்கப்பட்டு encrypted செய்யப்பட்டுள்ளதால், இங்கே self-signed certificate-ஐ நீங்கள் பாதுகாப்பாக ஏற்கலாம், SSH அடுக்கு உண்மையான பாதுகாப்பை வழங்குகிறது. SSH session-ஐ மூடினால் Webmin மறைந்துவிடும். allowlist செய்ய வேண்டியதில்லை, எதுவும் வெளிப்படாது, கூடுதலாகப் பாதுகாக்க வேண்டிய service-ம் இல்லை.
நீங்கள் bind=127.0.0.1-ஐ அமைத்துவிட்டு tunnel-ஐ மறந்துவிட்டால், remote access நின்றுவிடும்; இது ஒரு பிழையல்ல, அந்த வசதி சரியாகச் செயல்படுகிறது என்று அர்த்தம். விருப்பம் A-ல் செய்தது போலவே சரிசெய்யவும்: console-லிருந்து, bind வரியை நீக்கவும் அல்லது bind=0.0.0.0-ஐ அமைக்கவும், பிறகு restart செய்யவும். இது tmux-ல் Claude Code இயங்கும் remote development box-ஐ அணுக நீங்கள் பயன்படுத்தும் அதே tunnelling முறைதான்; ஒரே SSH session, அனைத்தும் தனிப்பட்டது, public interface-ல் கூடுதலாக எதுவும் listen செய்யாது.
Self-signed certificate-க்கு பதிலாக உண்மையான certificate-ஐப் பயன்படுத்துதல்
Option A-ன் கீழ் ஒரு hostname-ல் Webmin-ஐ நீங்கள் வெளிப்படுத்தினால், browser-ல் தோன்றும் எச்சரிக்கையை நீக்க உண்மையான Let's Encrypt certificate-ஐப் பயன்படுத்தவும். உங்களுக்கு ஒரு DNS பெயர் தேவை (உதாரணமாக panel.example.com). அதன் A record உங்கள் server-ஐச் சுட்டிக்காட்ட வேண்டும். மேலும், validation-ன் போது port-80 HTTP challenge-க்கு பதிலளிக்க ஏதேனும் ஒன்று இருக்க வேண்டும்.
Webmin-ல் இதற்கான வசதி உள்ளது: Webmin, பின் Webmin Configuration, பின் SSL Encryption, பின் Let's Encrypt tab. hostname-ஐ உள்ளிடவும், "website root directory"-ஐ port 80-ல் இயங்கும் ஒரு path-க்கு சுட்டிக்காட்டி request செய்யவும். Webmin certificate-ஐப் பெற்று, miniserv.conf கோப்பில் உள்ள certfile= மற்றும் keyfile= வரிகளைத் தானாகவே புதுப்பிக்கும். அது காலாவதியாகும் முன்பே தானாகவே renew செய்துவிடும். பக்கத்தை reload செய்தால், padlock குறியீடு சரியாகத் தெரியும்.
இதில் உள்ள ஒரே சிக்கல்: Webmin-ன் சொந்த server 10000-ல் இயங்குகிறது, 80-ல் அல்ல. எனவே, http-01 challenge-க்கு ஒரு உண்மையான web server (Apache அல்லது nginx) port 80-ல் panel.example.com-க்காகப் பதிலளிக்க வேண்டும், அல்லது DNS-based validation-ஐப் பயன்படுத்த வேண்டும். port 80-ல் எதுவும் இல்லாத Webmin-மட்டும் கொண்ட server-ல், Let's Encrypt-க்கு challenge கோப்பை அணுக வழி செய்யும் வரை இந்த request 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 எச்சரிக்கையையே காட்டும்.
Two-factor authentication-ஐ இயக்குதல்
root panel-க்கு password மட்டும் போதுமான பாதுகாப்பு அல்ல, எனவே இரண்டாவது காரணியைச் (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) அதுவே நிறுவி, இந்த வசதியை இயக்கும்; இந்த நிலையில் எந்தவொரு கணக்கும் இன்னும் பாதுகாக்கப்படவில்லை.
ஒவ்வொரு கணக்கும் அதன் சொந்த சாதனத்தை இதில் இணைக்க வேண்டும் (enrol). 2FA இயக்கப்பட்ட பிறகு, Webmin-ஐத் திறந்து, Webmin Users என்பதற்குச் சென்று, கணக்கைத் தேர்ந்தெடுக்கவும். Enable Two-Factor For User என்பதைத் தேர்வு செய்யவும். இப்போது Webmin ஒரு QR code-ஐக் காட்டும்; அதை app மூலம் scan செய்து, உருவாக்கப்படும் ஒரு code-ஐ உள்ளிட்டு உறுதிப்படுத்தவும். அதன் பிறகு, login செய்யும்போது password-க்கு அடுத்து ஆறு இலக்க token கேட்கப்படும். logout செய்வதற்கு முன்பே enrol செய்யவும். 2FA கட்டாயமாக்கப்பட்டு, உங்கள் கணக்கு QR code-ஐ scan செய்யவில்லை என்றால், console மூலம் அந்தத் தேவையை நீக்க முடியும். இருப்பினும், முன்கூட்டியே enrol செய்வது எளிதானது.
Brute-force login-களைத் தடுக்க Fail2ban-ஐச் சேர்த்தல்
கட்டுப்படுத்தப்பட்ட login endpoint-ஆக இருந்தாலும், மீண்டும் மீண்டும் தோல்வியடையும் முயற்சிகளைத் தண்டிக்க வேண்டும். Webmin தோல்வியடைந்த login முயற்சிகளை syslog-ல் webmin[12345]: Invalid login as root from 10.0.0.9 என்ற வடிவத்திலும், Unix account இல்லாத பயனர்பெயர்களுக்கு Non-existent login as ... என்ற வடிவத்திலும் பதிவு செய்கிறது. Ubuntu 24.04-ல், இயல்பான image-ல் /var/log/auth.log இல்லாததால், இந்த வரிகள் systemd journal-ல் சேமிக்கப்படுகின்றன. Fail2ban-ல் இந்த இரண்டு வரிகளையும் சரியாகக் கண்டறியும் webmin-auth filter ஏற்கனவே உள்ளது. கீழே உள்ள 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 = 1hsudo systemctl restart fail2ban மூலம் reload செய்யவும், பின் jail செயல்பாட்டில் உள்ளதா என்பதை உறுதிப்படுத்தவும்:
sudo fail2ban-client status webmin-authJail பட்டியலிடப்பட்டிருப்பதையும், தொடக்கத்தில் ban எண்ணிக்கை பூஜ்ஜியமாக இருப்பதையும் நீங்கள் காண வேண்டும் (journal backend-ல் File list: வரி இருக்காது). இந்த இணைப்பு சரியாகச் செயல்படுகிறதா என்பதைச் சோதிக்க, வேறொரு network-லிருந்து வேண்டுமென்றே சிலமுறை தவறான login முயற்சிகளைச் செய்யவும். பின் status கட்டளையை மீண்டும் இயக்கி, Currently banned அதிகரிப்பதைக் கவனிக்கவும். எண்ணிக்கை அதிகரிக்கவில்லை என்றால், நீங்கள் சோதிக்கும் IP முகவரி Fail2ban-ன் ignoreip-ல் இல்லை என்பதை உறுதிப்படுத்தவும். மேலும், Invalid login வரிகள் உண்மையில் எழுதப்படுகின்றனவா என்பதை உறுதிப்படுத்த server-ல் journalctl SYSLOG_IDENTIFIER=webmin கட்டளையை இயக்கவும். இந்த server-ல் Fail2ban இன்னும் நிறுவப்படவில்லை என்றால், Ubuntu 24.04-ல் SSH-க்கான Fail2ban வழிகாட்டி-ஐப் பார்க்கவும்; அது நிறுவல் மற்றும் இதனுடன் சேர்த்து நீங்கள் இயக்க வேண்டிய SSH jail பற்றிய தகவல்களை வழங்குகிறது.
ஒவ்வொரு Webmin பயனரும் அணுகக்கூடிய பகுதிகளைக் கட்டுப்படுத்துதல்
நிர்வாகப் பலகத்தைப் பயன்படுத்தும் அனைவருக்கும் அனைத்துப் பகுதிகளிலும் root அதிகாரம் இருக்க வேண்டிய அவசியமில்லை. Webmin, then Webmin Users பகுதிக்குச் சென்று, கூடுதல் Webmin உள்நுழைவுகளை உருவாக்கவும். ஒவ்வொரு பயனருக்கும் தேவையான modules-ஐ மட்டும் வழங்கவும். உதாரணமாக, backups operator-க்கு cron மற்றும் filesystem modules-ஐ மட்டும் அணுக அனுமதி அளிக்கலாம். ஒரு பயனரைத் திருத்தும்போது, அனைத்து modules-ன் சரிபார்ப்புப் பட்டியல் (checklist) தோன்றும்; ஒரு module-ஐ நீக்கினால், அது அந்தப் பயனரின் மெனுவிலிருந்து மறைந்துவிடும் மற்றும் அதனுடன் தொடர்புடைய URLs-ஐ அணுகுவதும் தடுக்கப்படும். இது defence in depth முறையாகும்: குறைந்த அதிகாரம் கொண்ட Webmin session திருடப்பட்டாலும், Users module அந்தப் பயனரின் பட்டியலில் இல்லாதபோது, அவர்களால் /etc/shadow-ஐ மாற்றியமைக்க முடியாது.
Webmin-ஐ புதுப்பித்தல்
நீங்கள் apt repository மூலம் நிறுவியுள்ளதால், sudo apt update && sudo apt upgrade கட்டளையானது மற்ற system தொகுப்புகளுடன் சேர்த்து புதிய Webmin releases-ஐயும் பதிவிறக்கும். Control panel என்பது தாக்குதல் நடத்துபவர்களின் விருப்பமான இலக்கு என்பதால், உடனுக்குடன் patches-ஐ நிறுவவும். Webmin, then Webmin Configuration, then Upgrade Webmin என்ற வழிமுறை மூலமும் Webmin-ஐ நீங்களே புதுப்பிக்க முடியும். இருப்பினும், Ubuntu-வில் apt முறையே சிறந்தது; ஏனெனில் இது மற்ற package management-உடன் version-களை சீராக வைத்திருக்கும். இதை விருப்பத்தேர்வாகக் கருத வேண்டாம்: கடந்த காலங்களில் பல Webmin CVE-கள் remote-code-execution பிழைகளாக இருந்துள்ளன. "patched" நிலையில் இருப்பதற்கும் "compromised" ஆவதற்கும் இடையே உள்ள ஒரே வித்தியாசம், நிர்வாகி எவ்வளவு விரைவாக upgrade செய்கிறார் என்பதுதான்.
தோல்வி முறைகள் மற்றும் நீங்கள் காணும் செய்திகள்
"Your connection is not private" / NET::ERR_CERT_AUTHORITY_INVALID. இது முதல்முறை தளத்தை அணுகும்போது காட்டப்படும். காரணம்: Webmin நிறுவலின்போது உருவாக்கிய self-signed certificate-க்கு அங்கீகரிக்கப்பட்ட issuer இல்லை. இது தாக்குதல் அல்ல; தகவல் பரிமாற்றம் குறியாக்கப்பட்டுள்ளது (encrypted), ஆனால் அதன் நம்பகத்தன்மை உறுதிப்படுத்தப்படவில்லை. தீர்வு: தற்காலிகமாக எச்சரிக்கையைத் தாண்டிச் செல்லவும், பின்னர் உண்மையான Let's Encrypt certificate-ஐப் பெறவும். அல்லது SSH tunnel வழியாக Webmin-ஐ அணுகினால், அந்தச் சான்றிதழை நிரந்தரமாக ஏற்கலாம்.
"This web server is running in SSL mode. Try the URL https://..." நீங்கள் http://server:10000 என்று தட்டச்சு செய்துள்ளீர்கள். அந்த port-ல் miniserv, 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-ஐத் தடுப்பதால் நிகழ்கிறது. sudo ufw status மூலம் இதை உறுதிப்படுத்தவும்; 10000 பட்டியலில் இல்லை என்றால், sudo ufw allow 10000/tcp மூலம் அதைத் திறக்கவும். அல்லது, அதைத் திறக்காமல் Option B-ல் உள்ள SSH tunnel-ஐப் பயன்படுத்துவது சிறந்தது. வேறுபாட்டைக் கவனிக்கவும்: timeout என்பது firewall பாக்கெட்டுகளை அமைதியாகத் தள்ளுபடி செய்கிறது என்று பொருள், ஆனால் ERR_CONNECTION_REFUSED என்பது port அணுகக்கூடியது, ஆனால் Webmin இயங்கவில்லை என்று பொருள், எனவே sudo systemctl status webmin-ஐச் சரிபார்க்கவும்.
"Access denied for <your IP>." நீங்கள் Option A-ன் கீழ் IP Access Control அமைத்துள்ளீர்கள், உங்கள் தற்போதைய முகவரி அனுமதிக்கப்பட்ட பட்டியலில் இல்லை, அல்லது உங்கள் dynamic IP மாறியிருக்கலாம், அல்லது தட்டச்சுப் பிழை இருக்கலாம். உலாவியில் இதைச் சரிசெய்ய வழி இல்லை. தீர்வு: console-ல் /etc/webmin/miniserv.conf கோப்பில் உள்ள allow= வரியைத் திருத்தவும், அதைச் சரிசெய்யவும் அல்லது நீக்கவும், பின்னர் sudo systemctl restart webmin-ஐ இயக்கவும்.
"Login failed. Please try again." (உங்களுக்குத் தெரிந்த சரியான கடவுச்சொல்லைப் பயன்படுத்தியும்). அந்த account-க்கு Unix கடவுச்சொல் இல்லை, இது key-only cloud images-ல் பொதுவானது. Webmin, PAM வழியாக Unix கடவுச்சொல்லைச் சரிபார்க்கிறது, அந்தப் பயனருக்கு அத்தகைய கடவுச்சொல் இல்லை. தீர்வு: server-ல் sudo passwd youruser-ஐ இயக்கி, கடவுச்சொல்லை அமைக்கவும், பின்னர் உள்நுழையவும். /var/webmin/miniserv.log-ல் Non-existent login as ... என்று காட்டினால், நீங்கள் தட்டச்சு செய்யும் பயனர் பெயர் Unix account-ஆக இல்லை என்று பொருள்.
இரண்டுக்கும் மேற்பட்ட server-களை நிர்வகிக்க, ஒவ்வொரு பெட்டியிலும் control panel பயன்படுத்துவதை விட automation சிறந்தது: உங்கள் முதல் Ansible playbook இதற்கான தொடக்கமாகும்.
FAQ
Webmin-ஐ பொது இணையத்தில் (public internet) வெளிப்படுத்துவது பாதுகாப்பானதா?
இணையத்தில் இயங்கும் Webmin-ஐ, login பக்கத்துடன் கூடிய root shell-ஆகக் கருதுங்கள்; ஏனெனில் அது அதுதான். உண்மையான certificate, two-factor authentication, Fail2ban, மற்றும் கட்டுப்படுத்தப்பட்ட IP allowlist அல்லது இன்னும் சிறப்பாக, பொது இணையத்தில் வெளிப்படுத்தாமல் இருப்பது போன்ற அடுக்குமுறை பாதுகாப்பில் மட்டுமே இது பாதுகாப்பானது. மிகக் குறைந்த ஆபத்துள்ள அமைப்பில், Webmin-ஐ 127.0.0.1-ல் bind செய்து, SSH tunnel வழியாக அணுக வேண்டும். இதனால், திறந்த இணையத்தில் port 10000 எந்தப் பதிலையும் தராது.
Webmin certificate எச்சரிக்கையை எவ்வாறு நீக்குவது?
Webmin ஒரு self-signed certificate-ஐக் கொண்டு வருவதால், இந்த எச்சரிக்கை (NET::ERR_CERT_AUTHORITY_INVALID) தோன்றுகிறது. Webmin, Webmin Configuration, SSL Encryption, Let's Encrypt பகுதிக்குச் சென்று, server-ஐச் சுட்டிக்காட்டும் DNS பெயரைப் பயன்படுத்தி உண்மையான certificate-ஐப் பெறவும். இதற்காக port-80 challenge-ஐச் சரிபார்க்கும் ஒரு சேவை தேவைப்படும். நீங்கள் Webmin-ஐ எப்போதும் SSH tunnel வழியாக localhost-க்கு அணுகினால், இந்த எச்சரிக்கை பாதிப்பில்லாதது. SSH ஏற்கனவே இணைப்பை encrypt மற்றும் authenticate செய்கிறது, எனவே நீங்கள் self-signed certificate-ஐத் தாராளமாக ஏற்கலாம்.
Webmin-ஐ எனது IP முகவரிக்கு மட்டும் எவ்வாறு கட்டுப்படுத்துவது?
Webmin, Webmin Configuration, IP Access Control பகுதிக்குச் சென்று, "Only allow from listed addresses"-ஐத் தேர்ந்தெடுத்து, curl ifconfig.me-லிருந்து உங்கள் public IP-ஐ உள்ளிடவும். Webmin இதை /etc/webmin/miniserv.conf கோப்பின் allow= வரியில் சேமிக்கும். உங்கள் home IP dynamic ஆக இருந்தால் கவனமாக இருக்கவும்: அது மாறினால் நீங்கள் வெளியேற்றப்படுவீர்கள், பின்னர் server console வழியாக allow= வரியைச் சரிசெய்ய வேண்டியிருக்கும். எனவே, static IP அல்லது SSH-tunnel முறை நடைமுறையில் அதிக நம்பகத்தன்மை கொண்டது.
சரியான கடவுச்சொல்லைப் பயன்படுத்தியும் ஏன் login தோல்வியடைகிறது?
Webmin உங்கள் Unix கடவுச்சொல்லைப் பயன்படுத்தி PAM மூலம் authenticate செய்கிறது. Cloud images-களில் பொதுவாக கடவுச்சொல் அமைக்கப்படாமல் key-only முறை மட்டுமே இருக்கும். எனவே, PAM-க்கு ஒப்பிட எதுவும் இல்லாததால் login நிராகரிக்கப்படுகிறது. கடவுச்சொல்லை அமைக்க server-ல் sudo passwd youruser கட்டளையை இயக்கவும், பிறகு login செய்யவும். /var/webmin/miniserv.log கோப்பில் உள்ள Non-existent login as ... வரி, பயனர் பெயர் உண்மையான Unix account அல்ல என்பதைக் குறிக்கிறது.
சாதாரண SSH-ஐ விட Webmin எதற்குப் பயன்படுகிறது?
Webmin என்பது கண்டறியும் திறன் மற்றும் வசதிக்கான ஒரு அடுக்கு (layer). log கோப்புகளைப் பார்ப்பது, பயனர்கள் மற்றும் cron-ஐ நிர்வகிப்பது, firewall விதிகளைத் திருத்துவது, மற்றும் ஒவ்வொரு கட்டளையையும் மனப்பாடம் செய்யாமல் disk மற்றும் service நிலையை அறிவது போன்றவற்றுக்கு இது மிகவும் பயனுள்ளது. இது அவ்வப்போது நிர்வாகம் செய்யும் நபர்களுக்கும், பல்வேறு திறன் கொண்ட குழுக்களுக்கும் வசதியானது. சாதாரண SSH வேகமானது, script செய்யக்கூடியது, மேலும் வழக்கமான பணிகளுக்குக் குறைந்த அளவு attack surface-ஐ மட்டுமே வெளிப்படுத்துகிறது. பல நிர்வாகிகள் இரண்டையும் பயன்படுத்துகின்றனர்: அன்றாடப் பணிகளுக்கு SSH-ஐயும், அவ்வப்போது தேவைப்படும் point-and-click வேலைகளுக்கு tunnel பின்னால் localhost-ல் இயங்கும் Webmin-ஐயும் பயன்படுத்துகின்றனர். உங்கள் கேள்வி panel-க்கும் shell-க்கும் இடையிலான ஒப்பீடு அல்லாமல், எந்த panel சிறந்தது என்பது என்றால், Cockpit மற்றும் Webmin ஒப்பீடு என்பதை முதலில் பரிசீலிப்பது நல்லது. ஏனெனில், இவை ஒவ்வொன்றும் கணினியில் எவ்வளவு மாற்றங்களைச் செய்ய முடியும் மற்றும் எவ்வாறு உங்களை authenticate செய்கின்றன என்பதில் வேறுபடுகின்றன.