V tomto článku se podíváme na instalaci a základní konfiguraci webového rozhraní Webmin na operačním systému Linux. Webmin je užitečný nástroj, který umožňuje spravovat server pomocí webového rozhraní, což může být velmi užitečné pro začátečníky i pokročilé uživatele. V článku se dozvíte, jak nainstalovat Webmin, jak se do něj přihlásit a jakými funkcemi disponuje.

Je potřeba mít již nastavené tyto služby

  • Nginx server
  • Certboot

Začneme přidáním repositáře

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Dále stáhneme veřejný klíč a repositář podepíšeme

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

Pokračujeme aktualizací repositářů a instalací balíčků

sudo apt update
sudo apt-get install webmin
sudo apt install libhtml-parser-perl libdbd-mysql-perl

Nyní je potřeba připravit webový adresář na serveru nginx. Vytvoříme patřičné složky a oprávnění.

Přístup na Webmin je po instalaci možný přes port 10000

http://[ip_adresa]:10000

Příprava webové stránky

Nejprve vytvoříme adresáře

sudo mkdir -P /var/www/webmin.domena.org
sudo chmod -R 0755  /var/www/webmin.domena.org
sudo chown -R www-data:www-data  /var/www/webmin.domena.org

Poté konfigurační soubor

server {
    listen   80;
    listen   [::]:80;

    server_name webmin.domena.org;

    location /.well-known/acme-challenge/ {
        default_type "text/plain";
        allow all;
    }
    
    return 301 https://$server_name$request_uri;
}

server {
    listen 443;
    listen   [::]:443;

	server_name webmin.domena.org;   
  root /var/www/html/webmin.domena.org/public_html;

	location /.well-known/acme-challenge/ {
    	allow all;
    	default_type "text/plain";
	}	

    # Point index to the Laravel front controller.
    index index.php index.html index.htm;
  

    location / {
        proxy_pass https://127.0.0.1:10000/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $http_x_forwarded_for;
        proxy_redirect https://$host:10000/ http://$host/;
		allow 127.0.0.1;
        allow 10.242.93.0/24;
        deny all;	
    }    

	location /xterm {
        proxy_pass https://127.0.0.1:10000/xterm/;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
		#allow 127.0.0.1;
        #allow 10.242.93.0/24;
        #deny all;	
    }
}
server {
    listen   80;
    listen   [::]:80;

    server_name webmin.domena.org;

    location /.well-known/acme-challenge/ {
        default_type "text/plain";
        allow all;
    }
    
    return 301 https://$server_name$request_uri;
}

server {
    listen 443;
    listen   [::]:443;

	server_name webmin.domena.org;   
  root /var/www/html/webmin.domena.org/public_html;

	location /.well-known/acme-challenge/ {
    	allow all;
    	default_type "text/plain";
	}	

    # Point index to the Laravel front controller.
    index index.php index.html index.htm;
  

    location / {
        proxy_pass https://127.0.0.1:10000/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $http_x_forwarded_for;
        proxy_redirect https://$host:10000/ http://$host/;
		allow 127.0.0.1;
        allow 10.242.93.0/24;
        deny all;	
    }    

	location /xterm {
        proxy_pass https://127.0.0.1:10000/xterm/;
        proxy_set_header Host $host;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
		#allow 127.0.0.1;
        #allow 10.242.93.0/24;
        #deny all;	
    }
}

Web aktivujeme a restartujeme server

sudo cp -l /etc/nginx/sites-available/domena.org /etc/nginx/sites-enabled/domena.org
sudo service nginx restart 

Nyní můžeme požádat o certifikát.

sudo certbot certonly --agree-tos --webroot -w /var/www/domena.org -d domena.org

Uložíme konfiguraci a restartujeme službu

sudo cp -l /etc/nginx/sites-available/domena.org /etc/nginx/sites-enabled/domena.org
sudo service nginx restart

Nyní by měl být možný přístup přímo přes vybranou doménu

Moduly

Modul pro Certbot

  1. https://github.com/cited/Certbot-Webmin-Module/blob/master/scripts/certbot.wbm.gz?raw=true
+