Hướng dẫn cài đặt webmin lên Ubuntu Server

Giới thiệu

Webmin là một ứng dụng mã nguồn mở và miễn phí để quản trị các máy chủ Unix/Linux. Mình sẽ hướng dẫn cách cài đặt Webmin trên máy chủ Ubuntu 22.04.
Để tìm hiểu kỹ hơn về webmin và những gì webmin có thể làm được, bạn có thể vào trang chủ webmin.

Cài đặt

Mặc định thì webmin không có trong repo của Ubuntu, vì vậy để cài đặt, đầu tiên chúng ta thêm repo chính thức của webmin vào, tạo file repo

sudo nano /etc/apt/sources.list.d/webmin.list

nhập vào nội dung sau và lưu file lại

deb http://download.webmin.com/download/repository sarge contrib

Sau đó, chúng ta cần chạy lệnh sau để tải xuống Webmin PGP signing key để trình quản lý gói APT có thể xác minh tính toàn vẹn của các gói được tải xuống từ kho lưu trữ Webmin.

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

cập nhập repo

sudo apt update

và tiến hành cài đặt

sudo apt install webmin

Sau khi cài đặt, Wemin sẽ tự động khởi động như có thể kiểm tra bằng cách chạy lệnh systemctl bên dưới:

systemctl status webmin

nếu chưa chạy thì có thể chạy lên bằng lệnh

sudo systemctl start webmin

Webmin chạy ở cổng 10000, chúng ta có thể truy cập thông qua địa chỉ server-IP:10000, tuy nhiên khá là khó nhớ, do đó chúng ta có thể cấu hình Nginx làm Reverse Proxy để truy cập vào webmin thông qua domain, cũng như thêm chứng chỉ SSL cho domain này, nhìn cũng chuyên nghiệp hẳn =))

Cấu hình Reverse Proxy bằng Nginx

Giả sử mình có domain webmin.com (bạn thay bằng domain của bạn), đã được lấy chứng chỉ SSL từ Let's Encrypt trước. Tạo file Virtual Host cho Nginx:

sudo nano /etc/nginx/site-available/webmin.com

và nhập vào nội dung sau

server {
    listen 80;
    listen [::]:80;
    server_name webmin.com;
}
server {
   listen 443 ssl;
   listen [::]:443;
   server_name webmin.com;

   access_log /var/log/nginx/webmin.access;
   error_log /var/log/nginx/webmin.error;
   ssl_certificate /etc/letsencrypt/live/webmin.com/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/webmin.com/privkey.pem;
   
   location / {
		  proxy_pass http://localhost:10000;
		  #proxy_set_header Host $http_host;
		  proxy_set_header X-Real-IP $remote_addr;
		  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		  proxy_set_header X-Forwarded-Proto $scheme;
	}
}

Lưu file lại, ánh xạ để bật cấu hình lên

sudo ln -s /etc/nginx/site-available/webmin.com /etc/nginx/site-enable/webmin.com

Kiểm tra không lỗi thì khởi động lại Nginx để cấu hình có tác dụng

sudo nginx -t
sudo systemctl restart nginx

Giờ bạn có thể truy cập webmin thông qua trang web webmin.com rồi đó.

Thêm Trusted Referrers

Vì bản thân Webmin đang chạy ở chế độ HTTP và chúng ta đã bật HTTPS trong Nginx, nên Webmin sẽ nghĩ rằng https://webmin.com nằm ngoài máy chủ Webmin. Vì vậy, chúng ta cần thêm trusted referrers.
Sửa file cấu hình của webmin

sudo nano /etc/webmin/config

và thêm dòng này vào dưới cùng

referers=webmin.com

lưu file và khởi động lại webmin

sudo systemctl restart webmin

Chúc các bạn thành công.

Tham khảo