Cách cài đặt Webmin với Let's Encrypt SSL miễn phí trên Rocky Linux 8

theanh

Administrator
Nhân viên
Webmin là một công cụ quản trị và quản lý Linux miễn phí, mã nguồn mở và dựa trên web cho phép bạn cấu hình hệ thống Linux thông qua trình duyệt web. Công cụ này được viết bằng Perl và cung cấp giao diện web thân thiện với người dùng, có chức năng giám sát CPU và RAM theo thời gian thực. Với Webmin, bạn có thể thực hiện một số tác vụ quản trị bao gồm quản lý tài khoản người dùng, quản lý gói, quản lý tường lửa, tạo tác vụ cron, v.v.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Webmin với Nginx và Let's Encrypt SSL trên Rocky Linux 8.

Điều kiện tiên quyết​

  • Một máy chủ đang chạy Rocky Linux 8.
  • Một tên miền hợp lệ được trỏ đến IP máy chủ.
  • Một mật khẩu gốc được cấu hình trên máy chủ.

Cài đặt Webmin​

Webmin được viết bằng ngôn ngữ Perl nên bạn sẽ cần cài đặt Perl trong hệ thống của mình. Chạy lệnh sau để cài đặt Perl:
Mã:
dnf install perl -y
Tiếp theo, tải xuống phiên bản mới nhất của Webmin tarball bằng lệnh sau:
Mã:
wget https://www.webmin.com/download/webmin-current.tar.gz
Sau khi tải xuống Webmin, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
tar xvf webmin-current.tar.gz
Tiếp theo, tạo thư mục cài đặt Webmin và chạy tập lệnh sau để cài đặt Webmin:
Mã:
mkdir -p /usr/local/webmin
./webmin-1.984/setup.sh /usr/local/webmin/
Bạn sẽ được yêu cầu cung cấp đường dẫn đến thư mục cấu hình, tên người dùng và mật khẩu quản trị viên như hiển thị bên dưới:
Mã:
*************************************************************************************** Chào mừng bạn đến với tập lệnh thiết lập Webmin, phiên bản 1.984***************************************************************************Webmin là giao diện dựa trên web cho phép quản lý dễ dàng các hệ điều hành giống Unix và các dịch vụ Unix phổ biến.Đang cài đặt Webmin từ /root/webmin-1.984 đến /usr/local/webmin/ ...***************************************************************************Webmin sử dụng các thư mục riêng cho các tệp cấu hình và tệp nhật ký.Trừ khi bạn muốn chạy nhiều phiên bản Webmin cùng lúcbạn chỉ có thể chấp nhận các giá trị mặc định.Thư mục tệp cấu hình [/etc/webmin]:Thư mục tệp nhật ký [/var/webmin]:******************************************************************************Webmin được viết hoàn toàn bằng Perl. Vui lòng nhập đường dẫn đầy đủ đếntrình thông dịch Perl 5 trên hệ thống của bạn.Đường dẫn đầy đủ đến perl (mặc định là /usr/bin/perl):Đang kiểm tra Perl ...Perl có vẻ đã được cài đặt ổn***************************************************************************Tên hệ điều hành: Rocky LinuxPhiên bản hệ điều hành: 8.5***************************************************************************Webmin sử dụng máy chủ web được bảo vệ bằng mật khẩu riêng để cung cấp quyền truy cậpvào các chương trình quản trị. Tập lệnh thiết lập cần biết: - Chạy máy chủ web trên cổng nào. Không được có máy chủ web nào khác đang sử dụng cổng này. - Tên đăng nhập bắt buộc để truy cập máy chủ web. - Mật khẩu bắt buộc để truy cập máy chủ web. - Máy chủ web có nên sử dụng SSL không (nếu hệ thống của bạn hỗ trợ). - Có nên khởi động webmin khi khởi động không.Cổng máy chủ web (mặc định là 10000):Tên đăng nhập (mặc định là admin): adminMật khẩu đăng nhập:Nhập lại mật khẩu:Sử dụng SSL (có/không): nKhởi động Webmin khi khởi động (có/không): y***************************************************************************************************************************************************Webmin đã được cài đặt và khởi động thành công. Sử dụng trình duyệt web của bạnđể truy cập http://rockylinux:10000/và đăng nhập bằng tên và mật khẩu bạn đã nhập trước đó.
Theo mặc định, Webmin lắng nghe trên cổng 10000. Bạn có thể kiểm tra bằng lệnh sau:
Mã:
ss -antpl | grep 10000
Bạn sẽ nhận được kết quả sau:
Mã:
LISTEN 0 128 0.0.0.0:10000 0.0.0.0:* users:(("miniserv.pl",pid=6601,fd=7))

Cấu hình Nginx làm Proxy ngược cho Webmin​

Sử dụng Nginx làm proxy ngược cho Webmin là một ý tưởng hay. Trước tiên, hãy cài đặt gói Nginx bằng lệnh sau:
Mã:
dnf install nginx -y
Tiếp theo, hãy tạo tệp cấu hình máy chủ ảo Nginx bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/webmin.conf
Thêm các dòng sau:
Mã:
server { listen 80; server_name webmin.linuxbuz.com; access_log /var/log/nginx/webmin.access; error_log /var/log/nginx/webmin.error; location / { proxy_pass http://127.0.0.1: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 và đóng tệp, sau đó kiểm tra Nginx xem có lỗi cú pháp nào không:
Mã:
nginx -t
Bạn sẽ nhận được kết quả sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Tiếp theo, khởi động dịch vụ Nginx và cho phép nó khởi động khi khởi động lại hệ thống:
Mã:
systemctl start nginx
systemctl enable nginx
Bạn có thể kiểm tra trạng thái của Webmin bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ thấy kết quả sau:
Mã:
? nginx.service - Máy chủ proxy ngược và HTTP nginx Đã tải: đã tải (/usr/lib/systemd/system/nginx.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-02-12 08:20:04 UTC; 17 giây trước Tiến trình: 7051 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Tiến trình: 7050 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Tiến trình: 7048 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) PID chính: 7053 (nginx) Nhiệm vụ: 2 (giới hạn: 11412) Bộ nhớ: 3,7M CGroup: /system.slice/nginx.service ??7053 nginx: tiến trình chính /usr/sbin/nginx ??7054 nginx: tiến trình công nhân12/02 08:20:03 rockylinux systemd[1]: Đang khởi động máy chủ proxy ngược và HTTP nginx...Tháng 2 12 08:20:04 rockylinux nginx[7050]: nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là ok12/02 08:20:04 rockylinux nginx[7050]: nginx: thử nghiệm tệp cấu hình /etc/nginx/nginx.conf thành công12/02 08:20:04 rockylinux systemd[1]: nginx.service: Không phân tích được PID từ tệp /run/nginx.pid: Đối số không hợp lệ12/02 08:20:04 rockylinux systemd[1]: Đã khởi động máy chủ proxy ngược và HTTP nginx.

Bật SSL trên Webmin​

Nên bảo mật Webmin bằng Let's Encrypt SSL. Đầu tiên, bạn sẽ cần cài đặt ứng dụng khách Certbot để quản lý Let's Encrypt SSL. Bạn có thể cài đặt bằng lệnh sau:
Mã:
dnf install epel-release -y
dnf install python3-certbot-nginx -y
Tiếp theo, chạy lệnh certbot để tải xuống và cài đặt Let's Encrypt SSL trên miền Webmin.
Mã:
certbot --nginx -d webmin.linuxbuz.com
Bạn sẽ được yêu cầu cung cấp địa chỉ email hợp lệ và chấp nhận điều khoản dịch vụ:
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' để hủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME. Bạn có đồng ý không?- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)es/(K)o: C- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có đồng ý, sau khi chứng chỉ đầu tiên của bạn được cấp thành công,chia sẻ địa chỉ email của bạn với Electronic Frontier Foundation, mộtđối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuậnphát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc mã hóa web,tin tức EFF, các chiến dịch và cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CTài khoản đã đăng ký.Đang yêu cầu chứng chỉ cho webmin.linuxbuz.comĐã nhận chứng chỉ thành công.Chứng chỉ được lưu tại: /etc/letsencrypt/live/webmin.linuxbuz.com/fullchain.pemKhóa được lưu tại: /etc/letsencrypt/live/webmin.linuxbuz.com/privkey.pemChứng chỉ này hết hạn vào ngày 13-05-2022.Các tệp này sẽ được cập nhật khi chứng chỉ được gia hạn.Certbot đã thiết lập tác vụ theo lịch trình để tự động gia hạn chứng chỉ này ở chế độ nền.Đang triển khai chứng chỉĐã triển khai thành công chứng chỉ cho webmin.linuxbuz.com tới /etc/nginx/conf.d/webmin.confXin chúc mừng! Bạn đã bật HTTPS thành công trên https://webmin.linuxbuz.comChúng tôi không thể đăng ký cho bạn danh sách gửi thư EFF vì địa chỉ email của bạn có vẻ không hợp lệ. Bạn có thể thử lại sau bằng cách truy cập https://act.eff.org.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: * Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate * Quyên góp cho EFF: https://eff.org/donate-le- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Cấu hình Webmin​

Tiếp theo, bạn sẽ cần chỉnh sửa tệp cấu hình Webmin và xác định các tham chiếu đáng tin cậy.
Mã:
nano /etc/webmin/config
Thêm dòng sau:
Mã:
referers=webmin.linuxbuz.com
Lưu và đóng tệp sau đó chỉnh sửa Tệp miniserv.conf và tắt chế độ HTTPS trong Webmin:
Mã:
nano /etc/webmin/miniserv.conf
Thêm các dòng sau:
Mã:
ssl=0allow=127.0.0.1
Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, lấy ID quy trình Webmin bằng lệnh sau:
Mã:
ps -ef | grep webmin
Bạn sẽ nhận được kết quả sau:
Mã:
root 6601 1 0 08:12 ? 00:00:00 /usr/bin/perl /usr/local/webmin//miniserv.pl /etc/webmin/miniserv.confroot 7553 1117 0 08:24 pts/0 00:00:00 grep --color=auto webmin
Tiếp theo, sử dụng lệnh kill để kill tiến trình Webmin.
Mã:
kill -9 6601
Tiếp theo, khởi động dịch vụ Webmin bằng systemd và cho phép dịch vụ này khởi động khi khởi động lại hệ thống:
Mã:
systemctl start webmin
systemctl enable webmin
Tiếp theo, kiểm tra trạng thái của Webmin bằng lệnh sau:
Mã:
systemctl status webmin
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? webmin.service - Webmin Đã tải: đã tải (/usr/lib/systemd/system/webmin.service; đã bật; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-02-12 08:25:05 UTC; 54 giây trước Tiến trình: 7560 ExecStart=/etc/webmin/start (code=exited, status=0/SUCCESS) PID chính: 7561 (miniserv.pl) Nhiệm vụ: 1 (giới hạn: 11412) Bộ nhớ: 23,9M CGroup: /system.slice/webmin.service ??7561 /usr/bin/perl /usr/local/webmin//miniserv.pl /etc/webmin/miniserv.conf12/02 08:25:05 rockylinux systemd[1]: Đang khởi động Webmin...12/02 08:25:05 rockylinux start[7560]: Đang khởi động máy chủ Webmin trong /usr/local/webmin/12/02 08:25:05 rockylinux webmin[7560]: Đang khởi động Webmin12/02 08:25:05 rockylinux systemd[1]: webmin.service: Không thể mở tệp PID /var/webmin/miniserv.pid (chưa?) sau khi bắt đầu: Không có tệp hoặc trực tiếp nào như vậy>12 tháng 2 08:25:05 rockylinux systemd[1]: Đã bắt đầu Webmin.

Cấu hình Tường lửa​

Nếu tường lửa firewalld được cài đặt trên máy chủ của bạn. Sau đó, bạn sẽ cần cho phép các cổng 80 và 443 đi qua tường lửa. Bạn có thể cho phép chúng bằng lệnh sau:
Mã:
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
Cuối cùng, tải lại dịch vụ tường lửa để áp dụng các thay đổi:
Mã:
firewall-cmd --reload

Truy cập Giao diện Webmin​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập giao diện Webmin bằng URL Bạn sẽ được chuyển hướng đến trang đăng nhập Webmin:



Cung cấp tên người dùng quản trị và mật khẩu của bạn, rồi nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển Webmin trên trang sau:


Kết luận​

Xin chúc mừng! bạn đã cài đặt thành công Webmin với Nginx và Let's Encrypt SSL trên Rocky Linux 8. Bây giờ bạn có thể quản lý hệ thống Linux của mình dễ dàng thông qua trình duyệt web. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên