Version: 4.1
4.1.2
Ghi chú nâng cấp và thay đổi hành vi
- Khóa máy chủ SSH nay được ghim (thay đổi hành vi). HiTechCloud ghi lại khóa máy chủ SSH của một máy ở lần kết nối đầu tiên (
StrictHostKeyChecking=accept-new) và từ chối khóa khác sau đó. Điều này áp dụng cho node thêm bằnguser-add, máy chờ (standby) của tác vụ nhân bản,user-transfervàserver-migrate, bước kiểm tra node mặc định, máy chủ git dùng cho triển khai, đích sao lưu SFTP (kể cả của restic) và slave DNS kiểu cũ. Một node, máy chủ git, đích SFTP, máy chờ hoặc slave DNS đã cài lại, hoặc đổi khóa có chủ ý, sẽ bị từ chối cho đến khi dòng cũ của nó trongknown_hostsđược gỡ. Thông báo lỗi nêu sẵn lệnh; với slave DNS làssh-keygen -R '<slave address>' -f /var/lib/hitechcloud/dns-cluster/known_hosts. Các tệp là/var/lib/hitechcloud/node-ssh/known_hosts(node),/var/lib/hitechcloud/clone/known_hosts(tác vụ nhân bản, chuyển tài khoản và di chuyển),/var/lib/hitechcloud/dns-cluster/known_hosts(slave DNS) và~/.ssh/known_hostscủa chính tài khoản (triển khai git). CLI và HiTechAdmin không còn truyềnStrictHostKeyChecking=noở bất kỳ đâu. (hitechcloudcli#443, #445, hitechcloudadmin#311, #313) - Các trang máy chủ tương đương quyền root chỉ dành cho Quản trị viên cấp cao (thay đổi hành vi). Quản trị viên được ủy quyền (vai trò
user) không còn vào được Máy chủ > Nodes, node mặc định, việc chỉ định máy chủ từ xa hoặc khóa khi tạo tài khoản, truy cập SSH, tệp cấu hình, chỉnh sửa cron (chỉ xem với vai trò khác), di chuyển máy chủ, chuyển tài khoản, hay máy chủ cơ sở dữ liệu; mục menu, tab và đường dẫn API đều không còn với vai trò đó. Công việc trước đây dựa vào các trang này nay do Quản trị viên cấp cao thực hiện. (hitechcloudadmin#307, #311) - phpMyAdmin và pgAdmin được cấp theo vai trò (thay đổi hành vi). phpMyAdmin với tài khoản cơ sở dữ liệu của chính bảng điều khiển nay chỉ dành cho Quản trị viên cấp cao; trước đây quản trị viên được ủy quyền vẫn vào được. Quản trị viên được ủy quyền và đại lý có thể được cấp phpMyAdmin theo từng tài khoản, đăng nhập bằng đúng tài khoản cơ sở dữ liệu của tài khoản đó (đại lý chỉ với tài khoản của mình), và quản trị viên được ủy quyền có thể được cấp pgAdmin. Quản trị viên cấp cao đặt việc này tại Máy chủ > Cơ sở dữ liệu; mọi quyền đều tắt cho đến khi được đặt. (hitechcloudadmin#313)
POST /api/đòi yếu tố xác thực thứ hai (thay đổi hành vi). Quản trị viên có bật ứng dụng xác thực nay phải gửi sáu chữ số hiện tại trong trườngcodekhi xin mã API (thiếu hoặc sai thì trả về 401two_factor_required; mỗi mã chỉ dùng được một lần). Tài khoản chỉ có mã gửi qua e-mail làm yếu tố thứ hai bị từ chối và được hướng dẫn dùng khóa truy cập API. Các script và ứng dụng trước đây đăng nhập chỉ bằng mật khẩu phải gửi mã hoặc dùng khóa truy cập. (hitechcloudadmin#308)- Máy chờ của tác vụ nhân bản không được là chính máy chủ này. Máy chờ là một địa chỉ của chính máy chủ này,
server_iphoặcserver_ipv6của panel, hoặc một tên phân giải ra một trong các địa chỉ đó sẽ bị từ chối khi lưu, kiểm tra và chạy tác vụ. (hitechcloudcli#443) - Tính năng chưa cài phần mềm sẽ bị ẩn. Trong 2083 và 2087, tính năng có thành phần chưa được cài không còn hiển thị, và địa chỉ của nó trả lời
not installedthay vì một trang lỗi; 2087 nói rõ điều đó trên mô-đun kèm cách cài. (HiTechCloud-Panel#1655, #1721, hitechcloudadmin#253) - Nhật ký kiểm toán lớn hơn. 2083 nay còn ghi các trang tài khoản mở và các tệp tải xuống, cùng các lệnh gọi từ cổng, nên chuỗi kiểm toán lớn hơn so với 4.1.1; nhật ký được giữ ít nhất 365 ngày. (HiTechCloud-Panel#1720)
- Tám ngôn ngữ mới là bản dịch máy. Tiếng Nhật, Hàn, Ý, Hà Lan, Indonesia, Thái và Ả Rập đã đầy đủ, còn tiếng Ba Lan đầy đủ cho bộ thông điệp đang dùng (khoảng 28 mục cũ của danh mục tiếng Ba Lan vẫn chưa dịch và hiển thị bằng tiếng Anh nếu có trang nào yêu cầu); chưa bản nào được người bản ngữ rà soát: hãy rà soát trước khi dùng cho khách hàng. Tiếng Việt và tiếng Anh vẫn là các ngôn ngữ chuẩn.
- Hành vi cập nhật giữ từ các bản dựng 4.1.2 đầu tiên: các cổng khách hàng được bật trừ khi tắt, một bản cập nhật khởi động lại mỗi dịch vụ một lần, và máy chủ có Redis hoặc Valkey mở ra ngoài loopback mà không cần mật khẩu sẽ được đóng về loopback bởi
objectcache loopback(xem Mới và Hạn chế đã biết).
Đã sửa
- Một lần cập nhật máy chủ khởi động lại webmail tới ba lần và API cổng khách hàng hai lần:
webmail update, lệnhwebmail configuremàvhost rebuild --allchạy, và địa chỉ Mail Portal màportals convergeghi, mỗi thứ đều khởi động lại webmail;portals convergevà lần khởi động lại cuối cùng của bản cập nhật đều khởi động lại API cổng. Giờ bản cập nhật giữ một sổ khởi động lại (HITECHCLOUD_UPDATE_RESTART_LEDGER): các lệnh trên ghi unit vào sổ, và bản cập nhật khởi động lại mỗi unit đã ghi đúng một lần, sau khi các panel đã chạy lại và mọi thứ dịch vụ cần đọc đã sẵn sàng, rồi kiểm tra webmail có trả lời.update,update --panelvàupdate --repairđều làm vậy. Khi chạy tay, ngoài một lần cập nhật, mỗi lệnh vẫn khởi động lại ngay như trước. hitechcloudcli objectcache statusbáo phiên bản Redis trên AlmaLinux và RHEL 10 (một bản dựng Valkey) làv?kèmNO ACL SUPPORT, và mỗi lần cài đều inPer-account cache logins could not be set up. Thông tin đăng nhập cache của panel (REDIS_PASSWORD) và thông tin đăng nhập quản trị của Redis dùng chung một tên, nên khi panel chạy trên Valkey, CLI gửi mật khẩu của Valkey cho Redis và bị từ chối. Giờ mỗi engine có mục quản trị riêng (ADMIN_REDIS_*,ADMIN_VALKEY_*trong/etc/hitechcloud/hitechcloud/cache.cnf), một instance từ chối mật khẩu sẽ được hỏi lại không kèm mật khẩu, và một lệnhCONFIG SETmà máy chủ không nhận sẽ nói lý do.- ClamAV không bao giờ khởi động trên bản cài mới: trình cài ghi
PrivateMirror https://database.clamav.netvàofreshclam.conf, điều freshclam từ chối (The PrivateMirror config option may not include servers under *.clamav.net, exit 9), nên không cơ sở dữ liệu chữ ký nào được tải về vàclamd@scandừng vớiNo supported database files found. Giờ máy chủ của chính ClamAV là mộtDatabaseMirror, dòngExampleđi kèm được chú thích lại, freshclam chạy xong (có thử lại, và quay về máy chủ của ClamAV khi mirror của panel không trả lời) trước khi clamd khởi động, lỗi của nó được hiển thị khi thất bại, và clamd thử lại mỗi phút cho đến khi có cơ sở dữ liệu. Máy chủ đã hỏng sẽ được bản cập nhật tiếp theo sửa. Dòng tmpfiles/run/clamd.scanbị trùng đã được bỏ. - Bước
Checking that mail workssau khi cài không còn chạy, và không còn báoMail was installed and does not work, trên bản Community hoặc khimail installchưa chạy xong. - FTP trên AlmaLinux và RHEL 10:
pure-ftpd-init.service(chạysscg) thất bại ở đó và kéo pure-ftpd dừng theo. Giờ chứng chỉ mặc định được tạo bằng openssl trước khi khởi động và unit init được vô hiệu hoá. - PHP: các phiên bản mà kho không cung cấp (PHP 5.6 trên AlmaLinux 10) được bỏ qua ngay từ đầu với một cảnh báo, thay vì một lỗi cho gói và một lỗi nữa cho unit FPM. Trình nạp ionCube được cài cho mọi phiên bản trong một lượt, mỗi phiên bản chỉ được khởi động lại một lần và chỉ khi nó nhận trình nạp (trước đây bảy phiên bản nghĩa là bảy lần khởi động lại mỗi phiên bản, cho đến khi giới hạn khởi động của systemd từ chối:
PHP 7.4..8.6 failed to restart), và một phiên bản ionCube không có trình nạp (8.6) chỉ là cảnh báo, không làm hỏng các phiên bản khác. module installwebmail trên máy chủ chưa có Node 22 dừng ởMissing: node npm; giờ thành phần webmail cài Node 22 trước.- Tường lửa:
module installkhông còn cố khởi độngcsfvàlfdkhi tường lửa được tắt có chủ ý (csf.disable), và không còn báocsf did not start.module listcó mộtnotecho các unit tắt theo thiết kế (tường lửa tắt, Varnish dùng chung cả máy,lshttpdcủa OpenLiteSpeed), vàlitespeed-enterprisechỉ được liệt kê là đã cài khi LiteSpeed Enterprise thật sự đã cài. - Tìm kiếm: khi không cài được OpenSearch (khoá ký bị chính sách mã hoá của hệ thống từ chối), giờ sẽ thử Elasticsearch (trước đây kho của nó chưa từng được thêm), một kho có khoá bị từ chối sẽ được gỡ để các lệnh
dnfsau không bị hỏng theo, và khi không cài được engine nào, module được báo làpendingkèm lý do, không phải thất bại. - Microsoft SQL Server trên AlmaLinux và RHEL 10: giấy phép được chấp nhận không cần tương tác (
ACCEPT_EULA,mssql-conf -n setup accept-eula),openldap-compatđược cài choliblber-2.4.so.2, và khimssql-serverkhông chạy, việc cài báo thất bại kèm journal của dịch vụ thay vì in thành công. - WireGuard: các quy tắc tường lửa
PostUp/PostDownkết thúc bằng|| true, nên một quy tắc mà kernel đang chạy không nạp được (Extension MASQUERADE revision 0 not supported) không còn làm sập đường hầm; các module netfilter được nạp trước; và một quy tắc NAT bị thiếu được báo kèm lý do, gồm cảa newer kernel is installed: rebootkhi kernel đang chạy cũ hơn kernel mới nhất đã cài. - Trên họ RHEL, Fail2Ban chỉ được cài dưới dạng
fail2ban-server; góifail2banđầy đủ cầnfail2ban-firewalldvà kéo theo firewalld, một tường lửa thứ hai bên cạnh CSF. - Lý do
user-addthất bại với tài khoản hosting riêng của quản trị viên trong lần cài đầu tiên giờ được in ra. - App Store (panel quản trị): một unit mà CLI báo là tắt có chủ ý (tường lửa để tắt, Varnish dùng chung cả máy,
lshttpdcủa OpenLiteSpeed) được hiển thị màu xám kèm câu giải thích của CLI thay vìNot running: ...màu đỏ; một mục có unit không chạy và lần cài gần nhất thất bại hiển thịfailed, không phảiinstalledcạnhfailed; các phiên bản PHP mà kho PHP không có (5.6 trên AlmaLinux 10) hiển thịNot available on this operating system. - Khi khởi động một tác vụ nền mà systemd vẫn còn nạp unit của nó (
Unit hitechcloud-install-postsrsd.service was already loaded or has a fragment file), giờ sẽ báoalready runningnếu nó đang chạy, và dọn rồi khởi động lại nếu nó đã dừng hoặc thất bại; bật SRS (postsrsd) trên AlmaLinux và RHEL 10, nơi không có gói này, sẽ nói rõ điều đó thay vì bắt đầu một lần cài chắc chắn thất bại. - Trên bản cài mới, tài khoản hosting không đăng nhập được vào panel (cổng 2083), các cổng Mail/DNS/S3, hay qua liên kết "đăng nhập với tư cách" của quản trị viên: trình duyệt quay lại trang đăng nhập mà không có thông báo nào. Panel không gửi được mật khẩu cache qua unix socket (HiTechCloud-Panel#1621), và trình cài đưa cho nó mật khẩu của nhầm instance (hitechcloudcli#348).
- Thông báo lỗi đăng nhập: nếu panel không lưu được phiên, trang đăng nhập (mật khẩu, 2FA, passkey, hoặc liên kết "đăng nhập với tư cách" của quản trị viên) giờ hiển thị "Không lưu được phiên của bạn: panel không kết nối được tới kho lưu phiên. Hãy liên hệ quản trị viên." thay vì lặng lẽ quay lại biểu mẫu đăng nhập. Nhật ký của panel nói rõ vì sao nó không dùng được cache (bị từ chối đăng nhập, địa chỉ sai, không kết nối được) thay vì "no connection", và một địa chỉ cache không dùng được chỉ được ghi một lần cho mỗi tiến trình panel.
- Một bản cập nhật thất bại sau khi webmail đã được dựng lại giờ sẽ khởi động lại webmail (và API cổng, nếu được yêu cầu) trước khi bỏ cuộc, thay vì để tiến trình cũ chạy trên bản dựng mới. Nếu bản cập nhật đưa panel về các tệp nhị phân trước đó, nó cũng khôi phục panel.env và cache.cnf như trước khi cập nhật.
- Kiểm tra PHP "không có trên hệ điều hành này" của App Store dùng siêu dữ liệu gói đã có trên máy chủ, nên trang không bao giờ phải chờ làm mới kho.
- Mục Services của 2087 hiển thị kho lưu phiên: panel hosting và các cổng có kết nối được tới Valkey/Redis của chúng không, và nó có chấp nhận thông tin đăng nhập của panel không. HiTechAdmin tìm cache của panel ở đúng chỗ panel dùng và đăng nhập đúng; "Signed in now" và việc thu hồi API token khi đổi loại gói hoạt động lại trên Valkey hoặc cache có mật khẩu. Ghi chú "Off" của App Store được dịch, và Settings > Modules liên kết tới App Store.
- Tiếng Việt: panel hosting không còn hiển thị tiếng Anh trong menu (38 nhãn), trên các trang live chat, trang thông tin PHP hay tra cứu RDAP. Menu ghi "OpenSearch".
- Webmail: lưu trả lời tự động không còn đặt lại khoảng thời gian trả lời và các địa chỉ bổ sung đã đặt trong panel hoặc Mail Portal, và một trả lời tự động không tải được sẽ hiện thành lỗi thay vì một biểu mẫu trống có thể tắt mất trả lời tự động.
- Webmail: các biểu mẫu cài đặt dễ tiếp cận hơn (trường có nhãn, công tắc và nút mật khẩu có tên, lỗi được đọc lên), màu trạng thái đạt độ tương phản WCAG AA, nút người gửi được phép ghi Add, và thẻ dịch vụ Meetings được dịch sang tiếng Việt.
- Front-end: trang mặc định, các trang tạm khoá và một trang 502/504 mới giờ dùng chung giao diện HiTechCloud và tự dịch sang ngôn ngữ của khách truy cập (có tiếng Việt), có bản tối và độ tương phản WCAG AA. Trang 502/504 nói đủ 24 ngôn ngữ của panel, gồm tám ngôn ngữ mới của bản này, với tiếng Ả Rập bố cục từ phải sang trái. (HiTechCloud-Panel#1736)
- Một nguồn ClamAV duy nhất: mirror ClamAV của panel chỉ được dùng khi nó có phục vụ chữ ký, và khi đó là nguồn duy nhất; nếu không thì dùng máy chủ của chính ClamAV. Lệnh mới
hitechcloudcli repair clamav(cũng chạy trongrepair all) chuyển lại khi mirror ngừng trả lời. - Tệp bí mật riêng tư: cache.cnf, panel.env và chứng chỉ pure-ftpd cùng khoá riêng của nó giờ được ghi qua một tệp tạm riêng tư (0600) trong một bước nguyên tử, giữ nguyên chủ sở hữu và quyền của từng tệp.
- Một website do quản trị viên (hoặc đại lý) tạm khoá lại hoạt động khi khách hàng xoá rồi thêm lại: việc tạm khoá chỉ nằm trong bản ghi website mà thao tác xoá đã gỡ đi. Giờ xoá website vẫn giữ việc tạm khoá, thêm lại sẽ khôi phục nó (cùng lý do, thông báo và trang), và khách hàng được báo
<domain> is suspended: it was suspended when it was deleted, and deleting a website does not lift its suspension. Contact the server administrator.Chỉ quản trị viên, hoặc đại lý đã tạm khoá, mới gỡ được, kể cả khi website không còn trên máy chủ. (hitechcloudcli#354; được báo cáo là issue HiTechCloud-Panel#1602, hiện vẫn còn mở) - Bản sao lưu e-mail của người dùng chỉ chứa một liên kết hỏng khi maildir của tên miền là liên kết tượng trưng (đã chuyển sang ổ khác rồi liên kết lại):
user-backupvà các chuỗi sao lưu giờ lưu thư mà liên kết trỏ tới. Một lần khôi phục không còn bỏ toàn bộ thư của một tên miền chỉ vì một hộp thư có chứa liên kết (như~/.dovecot.sievecủa ManageSieve): các liên kết bị g ỡ khỏi thư đã giải nén, mỗi liên kết được ghi nhật ký, và thư được khôi phục. (hitechcloudcli#355; được báo cáo là issue HiTechCloud-Panel#1601, hiện vẫn còn mở) - Một lần cập nhật máy chủ có thể dừng ở "Updating installed locales" hàng giờ khi mirror ngừng trả lời: giờ mọi lần tải từ mirror (ngôn ngữ, danh sách tính năng và module, các thành phần) bỏ cuộc sau 20 giây và một lần thử lại, và ngôn ngữ hoặc thành phần đó được bỏ qua kèm cảnh báo. Bản dịch đã cài không bao giờ bị cắt dở. (hitechcloudcli#356; được báo cáo là issue HiTechCloud-Panel#1613, hiện vẫn còn mở)
- Bộ điều phối
hitechcloudcliqua ShellCheck không còn cảnh báo nào (không thay đổi hành vi). - API quét mã độc:
POST /api/malware-scanner/scantrên máy chủ không có ClamAV trả về 200 vớiinfected_count: 0, nên một lần quét chưa từng chạy trông như sạch với ứng dụng gọi API. Giờ nó trả về 503 vớiClamAV is not installed on this server, như trang web vốn đã làm. (HiTechCloud-Panel#1637) - Tiếng Việt (2083): 464 chuỗi panel hiển thị chưa có tiếng Việt và hiện bằng tiếng Anh (các ô trên bảng điều khiển, lỗi hạn mức FTP, trợ giúp cài ứng dụng, lỗi đăng nhập do kho lưu phiên, gia cố WordPress và Joomla, phần hướng dẫn sản phẩm); giờ tất cả đã được dịch, cùng một thuật ngữ được viết thống nhất ở mọi nơi, và danh mục tiếng Anh và tiếng Việt có cùng các khoá, được kiểm tra trong CI. Các thông báo panel giữ dưới dạng hằng (giới hạn hạn mức FTP, từ chối ngoài phạm vi DNS, lỗi đăng nhập do kho lưu phiên và 28 thông báo khác) cũng đã được dịch. (translations#24, #27)
- Khôi phục đưa các cron job trở lại mà không lên lịch chúng:
user-restore,user-backupset --only cronvà Restore & Download của 2083 giờ tạo lại crontab từcrons.iniđã khôi phục, nên các job chạy mà tài khoản không cần lưu một cron job nào trước. Restore & Download cũng giữ quyền của từng tệp (không bao giờ có setuid, setgid hay sticky) và thời điểm sửa đổi, thay vì khôi phục mọi thứ thành 0644 với ngày giờ hiện tại. (hitechcloudcli#365, HiTechCloud-Panel#1638) - Trình sửa vùng DNS của 2087: các thao tác của mỗi dòng nằm trên một dòng và các cột không còn xuống dòng từng ký tự. (hitechcloudadmin#251)
- HiTechAdmin (2087) tiếng Việt: thông báo sau mỗi thao tác, và 23 chuỗi trong giao diện (biểu mẫu gói, nhãn hạn mức FTP, chữ gợi ý trong trình sửa sao lưu và DNS, công tắc HSTS/WAF, ô xem trước logo và favicon), hiện bằng tiếng Anh. Giờ chúng đã được dịch, và CI báo lỗi với mọi thông báo mà trang quản trị dùng nhưng chưa có tiếng Việt. (hitechcloudadmin#254)
- Bản sao lưu giờ mang theo các thông tin đăng nhập MySQL của tài khoản (
<account>_..., cùng hash đã lưu, host và quyền), nên một website kết nối bằng thông tin đăng nhập cơ sở dữ liệu riêng sẽ hoạt động lại sau khi khôi phục trên máy chủ khác.user-restore --new-usernamekhông còn bỏ mất cơ sở dữ liệu của tài khoản. Mọi trường đọc lại từ bản lưu trữ đều được kiểm tra trước khi dùng. (hitechcloudcli#366) - Một tài khoản được khôi phục trên máy chủ mà nó chưa từng được thêm (máy chủ khác, hoặc
user-restore --new-username) không lấy lại được cơ sở dữ liệu nào, trong khi lần khôi phục vẫn báo SUCCESS: giờ thông tin đăng nhập MySQL riêng của tài khoản được tạo trước, nên cơ sở dữ liệu được khôi phục. (hitechcloudcli#374) - Cờ tiếng Việt: bộ chọn ngôn ngữ trên trang đăng nhập của 2083 lấy cờ từ mã ngôn ngữ, nên tiếng Việt hiện cờ Quần đảo Virgin thuộc Mỹ, tiếng Lào không có cờ, tiếng Nepal hiện cờ Niger và tiếng Serbia hiện cờ Suriname; nay chúng hiện cờ Việt Nam, Lào, Nepal và Serbia. (HiTechCloud-Panel#1715) Trang tài khoản của 2087 cũng chọn cờ theo mã ngôn ngữ (vi.svg là cờ Quần đảo Virgin thuộc Mỹ, ar.svg là cờ Argentina, còn ja và ko không có tệp); nay dùng cùng bảng đó. (hitechcloudadmin#314)
- Cổng khách hàng: một thay đổi bị từ chối trong cổng DNS không còn làm mất những gì đã gõ, và thông báo lỗi trong cổng DNS và S3 bằng ngôn ngữ của trang thay vì tiếng Anh (xem Mới). Một địa chỉ cổng không tồn tại hiển thị trang không tìm thấy đã dịch thay vì lỗi trần. (HiTechCloud-Panel#1719, #1723, #1724)
- 2083: các thao tác trên từng hàng nằm gọn trong ô của chúng (nút Xóa của vùng DNS, các hàng FTP, cron và MySQL), và tính năng có thành phần chưa được cài bị ẩn ở mọi nơi và bị từ chối khi truy cập bằng địa chỉ. (HiTechCloud-Panel#1642, #1655, #1721)
- Thành viên nhóm trong 2083: thành viên không bao giờ mở được cổng Mail, DNS hoặc S3 của tài khoản, bất kể vai trò; trước bản sửa này, thành viên chỉ có quyền Sao lưu vẫn vào được các hộp thư của tài khoản. (HiTechCloud-Panel#1716)
- Trang web: các bản sửa về khả năng truy cập, hiệu năng và độ chính xác từ đợt ki ểm tra 4.1.2. (HiTechCloud-Panel#1624)
Mới
Tài khoản khách hàng và đại lý
- Tài khoản khách hàng (A4): một lần đăng nhập có thể sở hữu nhiều tài khoản hosting.
hitechcloudcli customers list|show|create|link|unlink|delete|of|availablegom các tài khoản cùng chủ sở hữu thành một khách hàng; khách hàng không có thông tin đăng nhập riêng, chỉ cho biết các tài khoản nào được phép chuyển qua lại. Trong 2087, Người dùng > Khách hàng tạo, liên kết, gỡ liên kết và xóa khách hàng (đại lý chỉ thấy và tạo khách hàng của mình; quản trị viên tạo cho chính mình hoặc cho một đại lý), và một tài khoản đã liên kết không thể chuyển sang chủ sở hữu khác. (hitechcloudcli#439, hitechcloudadmin#306) - Bộ chuyển tài khoản trong 2083: khi một tài khoản đăng nhập có các tài khoản liên kết khác, phần đầu trang hiển thị bộ chuyển, và chọn một tài khoản sẽ đăng nhập vào đó mà không hỏi lại mật khẩu. Tài khoản đích phải thuộc cùng khách hàng, đang hoạt động bình thường, được danh sách cho phép chấp nhận và không bị khóa; phiên cũ kết thúc trước; tài khoản có yếu tố thứ hai vẫn đi qua bước thứ hai của trang đăng nhập; phiên của thành viên nhóm và của quản trị viên đang đăng nhập với tư cách tài khoản không bao giờ chuyển được. Mỗi lần chuyển và mỗi lần bị từ chối đều được ghi vào chuỗi kiểm toán và nhật ký hoạt động của cả hai tài khoản. (HiTechCloud-Panel#1726, hitechcloud-translations#60)
- Sao chép và di chuyển cơ sở dữ liệu giữa các tài khoản của một khách hàng (B5): trong 2083, trang Sao chép cơ sở dữ liệu (liên kết cạnh bộ chuyển tài khoản) sao chép hoặc di chuyển một cơ sở dữ liệu của tài khoản sang tài khoản khác của cùng khách hàng (di chuyển cần xác nhận riêng), kèm routine, trigger và event và
DEFINERđược viết lại sang tài khoản đích. Cơ sở dữ liệu được dump bằng thông tin đăng nhập riêng của tài khoản nguồn và nạp bằng thông tin đăng nhập riêng của tài khoản đích, với tư cách tài khoản đó; bản dump được đọc trước và bị từ chối, chưa tạo gì, nếu chứa bất cứ thứ gì mà bản dump của một cơ sở dữ liệu không có (USE,GRANT,CREATE USER,SET GLOBAL, tên thuộc cơ sở dữ liệu khác,DEFINERcủa thông tin đăng nhập khác, lệnh của client), nên một bản dump bị làm giả không thể chạy với quyền root. Cả hai tài khoản phải liên kết với khách hàng và không bị tạm ngưng; việc sao chép chạy nền và trang hiển thị trạng thái. Quản trị viên sao chép hoặc di chuyển giữa hai tài khoản bất kỳ từ 2087 Máy chủ > Sao chép cơ sở dữ liệu. (hitechcloudcli#446, #447, HiTechCloud-Panel#1732, hitechcloudadmin#301) - Báo cáo hằng tháng (R7/T4):
hitechcloudcli account monthly-report settings|preview|send|run|crongửi e-mail báo cáo tài khoản mỗi tháng một lần (ngày 1 đến 28, giờ, và người nhận) và theo yêu cầu, qua các kênh thông báo, dưới dạng bản tóm tắt các tài khoản dùng từ 90% giới hạn đĩa trở lên và các tài khoản lớn nhất; báo cáo của quản trị viên gồm mọi tài khoản và báo cáo của mỗi đại lý gồm tài khoản của họ. Trong 2087, Người dùng > Báo cáo hằng tháng đặt lịch, xem trước và gửi ngay (đại lý chỉ xem trước và gửi cho chính mình), còn Người dùng > Xuất CSV tải về danh sách đầy đủ với gói, dung lượng đĩa và băng thông tháng này của từng tài khoản. (hitechcloudcli#440, hitechcloudadmin#303, #259) - Gói bổ sung trên trang tài khoản và trong API (A7): quản trị viên hoặc đại lý cấp cho tài khoản thêm dung lượng đĩa, inode, tên miền, tên miền phụ hoặc hộp thư ngoài gói; việc hạ cấp khiến một giới hạn thấp hơn mức tài khoản đang dùng bị từ chối (409) kèm lý do; ngày hết hạn có thể đặt trên trang tài khoản và tài khoản bị tạm ngưng vì thanh toán vào ngày đó. (hitechcloudadmin#264, #297, #257, hitechcloudcli#433)
- Thành viên nhóm (A3): chủ tài khoản mời người khác vào trang Nhóm và cấp cho mỗi người một vai trò gồm các mô-đun và, tùy chọn, danh sách tên miền; thành viên đăng nhập bằng thông tin riêng và chỉ thấy những gì vai trò cho phép, không bao giờ thấy các trang Nhóm, Tài khoản, xác thực hai yếu tố, passkey, phiên hay API. Lời mời hết hạn sau 72 giờ và chỉ dùng được một lần. (HiTechCloud-Panel#1676, #1679, hitechcloud-translations#35)
- Phiếu hỗ trợ (A18): 2083 Tài khoản > Hỗ trợ gửi phiếu tới đại lý của tài khoản hoặc tới quản trị viên, kèm tệp, trạng thái và mức ưu tiên; đại lý trả lời, chuyển cấp và tự viết phiếu trong 2087 Tài khoản > Phiếu hỗ trợ, còn quản trị viên trả lời, trả lại, đặt mức ưu tiên và viết ghi chú nội bộ mà khách hàng không thấy. Có sẵn phòng ban, bàn trợ giúp bên ngoài thay cho phiếu, huy hiệu số phiếu đang chờ người xem, và câu trả lời của nhân viên được gửi e-mail tới địa chỉ riêng của tài khoản. (hitechcloudcli#405, #423, hitechcloudadmin#276, #291, HiTechCloud-Panel#1692, #1705)
- Công cụ cho đại lý: nhóm quyền do đại lý tự tạo từ các tính năng đã được cấp (R6); trang tạm ngưng do đại lý đặt cho các website của khách hàng (R8); liên kết menu trong thanh bên của panel khách hàng và các liên kết Trợ giúp và Hỗ trợ, do quản trị viên đặt theo gói và do mỗi đại lý đặt cho tài khoản của mình (L2). (hitechcloudadmin#265, #262, hitechcloudcli#387, HiTechCloud-Panel#1660, #1694)
- Mẫu e-mail chỉnh sửa được (A14): 2087 Tài khoản > Mẫu e-mail sửa, xem trước và đặt lại nội dung các e-mail của chính panel (chào mừng, tạm ngưng, hết hạn, hạn mức và đặt lại mật khẩu), theo từng ngôn ngữ, cho máy chủ và cho khách hàng của từng đại lý; liên kết đặt lại mật khẩu trong 2083 dùng thông điệp chỉnh sửa được theo ngôn ngữ của tài khoản. (hitechcloudcli#399, hitechcloudadmin#273, HiTechCloud-Panel#1687)
- Kênh thông báo và trung tâm cảnh báo: quản trị viên, đại lý và tài khoản chọn nơi nhận cảnh báo (e-mail, Telegram, Slack, Discord, Mattermost, webhook có chữ ký hoặc syslog), xem chúng trong trung tâm cảnh báo có biểu tượng chuông ở thanh trên, và nhận cảnh báo sao lưu và khôi phục qua cùng bộ định tuyến. (hitechcloudcli#372, hitechcloudadmin#263, HiTechCloud-Panel#1675)
- Công tắc bán vượt cho đại lý:
hitechcloudcli admin update <reseller> --oversell=yes|no. Khi tắt bán vượt,account add,account ownervàuser-change_plantừ chối, kèm số liệu, mọi thay đổi làm dung lượng đĩa m à các gói của đại lý hứa vượt quá hạn mức đĩa của đại lý, và không thể giao một gói không giới hạn đĩa. Đại lý tạo trước bản phát hành này giữ hành vi hiện tại cho đến khi quản trị viên tắt bán vượt. Trong HiTechAdmin, công tắc là "May oversell the disk allowance" ở Accounts > Resellers > Edit, và mỗi thay đổi được ghi vào nhật ký hoạt động của đại lý.POST /api/settings/resellersnhận nó dưới tênoversell(hitechcloudadmin#252). - Message All Users (2087, quản trị viên và đại lý) giờ cũng gửi được thông báo qua email tới địa chỉ liên hệ của từng tài khoản, chạy nền, và mỗi lần gửi được ghi vào nhật ký hoạt động của tài khoản. (hitechcloudadmin#248)
- Hạn sử dụng tài khoản:
hitechcloudcli account expiry <account> set YYYY-MM-DD|clear,account expiry listvà lệnhaccount expiry checkchạy hằng ngày, gửi thông báo trước ngày hết hạn và tạm khoá tài khoản đúng ngày đó. Lệnh kiểm tra chạy từhitechcloud-expiry.timer(hằng ngày lúc 04:10, chạy bù sau khi máy chủ tắt), được cài lần đầu tiên một tài khoản được đặt ngày hết hạn. (hitechcloudcli#368, HiTechCloud-Panel#1656) - Gói bổ sung:
hitechcloudcli account addon <account> set disk_gb=5 domains=2 emails=10cộng thêm dung lượng đĩa, inode, tên miền, tên miền phụ hoặc hộp thư cho một tài khoản ngoài gói của nó, và không lần đổi gói hay chạy hạn mức nào xoá mất. (hitechcloudcli#380) - Băng thông đại lý: băng thông trong tháng mà các tài khoản của một đại lý đã phục vụ được ghi lại mỗi bốn giờ, bên cạnh một hạn mức tháng tuỳ chọn (
admin update <reseller> --max_bandwidth_gb=<n>). Chỉ hiển thị, không áp dụng giới hạn. Biểu mẫu đại lý của HiTechAdmin có trường Monthly bandwidth (GB), và bảng điều khiển của đại lý có thẻ Bandwidth this month. (hitechcloudcli#378, hitechcloudadmin#258) hitechcloudcli account db-copy <from-account> <database> <to-account> [--name <suffix>] [--move]sao chép hoặc chuyển một cơ sở dữ liệu MySQL sang tài khoản khác, cùng routine, trigger và event của nó, cấp quyền cho thông tin đăng nhập của tài khoản đích; một DEFINER mang tên thông tin đăng nhập của tài khoản nguồn được ghi lại thành của tài khoản đích, nên view và routine vẫn hoạt động. Bản dump được lấy bằng thông tin đăng nhập riêng của tài khoản nguồn (~/my.cnfcủa nó, phải mang chính tên tài khoản) và nạp bằng của tài khoản đích, không bao giờ bằng root; root chỉ tạo cơ sở dữ liệu trống và cấp quyền cho tài khoản đích. Bản dump chứa thứ gì khác ngoài các câu lệnh của chính một cơ sở dữ liệu, hoặcDEFINERcủa thông tin đăng nhập khác, bị từ chối trước khi tạo bất cứ gì. (hitechcloudcli#382, #447)
Đăng nhập, truy cập và công cụ bảo mật
- Nhật ký kiểm toán, nay có cả lượt xem và tải xuống: 2087 > Tuân thủ > Nhật ký kiểm toán ghi mọi thay đổi do quản trị viên, đại lý hoặc mã API thực hiện (không bao giờ ghi mật khẩu, khóa hay mã), nêu tên tài khoản và lý do của các lần đăng nhập bị từ chối, và chuỗi chống giả mạo có thể lọc theo hành động, tìm kiếm và xuất CSV. 2083 ghi mọi thay đổi do tài khoản thực hiện (kể cả mã API và quản trị viên đăng nhập với tư cách tài khoản), các lần đăng nhập bị từ chối, và nay còn ghi các trang tài khoản mở, các tệp tải xuống và các lệnh gọi của cổng. Trong 2087 Tài khoản > Nhật ký hoạt động, đại lý xem nhật ký của người dùng thuộc khách hàng của mình, gồm những gì họ đã làm trong 2083 và các cổng. Nhật ký được giữ ít nhất 365 ngày. (hitechcloudadmin#250, #302, HiTechCloud-Panel#1653, #1720)
- Đăng nhập một lần (S16): khách hàng và quản trị viên đăng nhập vào các panel qua nhà cung cấp danh tính (OpenID Connect với PKCE) hoặc thư mục (LDAP và Active Directory, qua
ldapshoặc StartTLS), với tài khoản do quản trị viên liên kết rõ ràng và ánh xạ nhóm hoặc vai trò; không có gì được tạo tự động chỉ từ một địa chỉ, và tài khoản có yếu tố thứ hai vẫn phải nhập yếu tố đó. 2087 Bảo mật > Đăng nhập một lần quản lý nhà cung cấp và liên kết. (hitechcloudcli#412, #429, #425, hitechcloudadmin#280, #294, HiTechCloud-Panel#1702, #1711) - Khóa API (H3): khóa dài hạn giới hạn theo tính năng và địa chỉ, chỉ hiển thị một lần, cho 2083 (Tài khoản > Mã MCP) và 2087, được chấp nhận ở mọi nơi chấp nhận mã; khóa chỉ đọc không thể thay đổi gì. (hitechcloudadmin#266, HiTechCloud-Panel#1666)
- Cố vấn bảo mật (S11): 2087 Bảo mật > Cố vấn bảo mật cho điểm số, những gì bị trừ điểm, và các bản sửa có thể hoàn tác. Quét mã độc theo thời gian thực với bản sạch được đưa lại từ bản sao lưu (S8, S9), bộ cấu hình PCI DSS cho truyền tải web, mail và FTP có thể đảo ngược kèm báo cáo (S18), và quét rootkit theo lịch với các phát hiện được chấp nhận và cảnh báo (S10) đều có trang riêng. (hitechcloudcli#404, #391, #398, #421, hitechcloudadmin#277, #271, #295)
- Tường lửa ứng dụng web: các bộ quy tắc của bên thứ ba và OWASP Core Rule Set được chuyển đổi cho tường lửa (
webfirewall ruleset import|sources|remove), mức paranoia trên một quy tắc, trên máy chủ và theo từng website, và ngưỡng bất thường theo từng website (S2). (hitechcloudcli#409, hitechcloudadmin#287, HiTechCloud-Panel#1689) hitechcloudcli admin ip-allowlist [on|off|add|remove|clear]: xem và sửa danh sách IP cho phép của 2087/2083 từ shell, lối vào lại cho quản trị viên lỡ tự khoá mình ở ngoài. (hitechcloudcli#377)- Giám sát brute-force:
hitechcloudcli bruteforcehiển thị fail2ban và các jail của nó, bật hoặc tắt jail và đặt thời gian cấm, cửa sổ và số lần thử (giữ qua các lần cập nhật), liệt kê và gỡ lệnh cấm (fail2ban và CSF), giữ một danh sách tin cậy, dùngrescueđể cứu địa chỉ của chính người vận hành, nhóm các lần đăng nhập thất bại theo địa chỉ và theo người dùng (2083, 2087, SSH, FTP, mail và WordPress) và gửi cảnh báo. Mỗi thay đổi phải qua đượcfail2ban-client --test, nếu không tệp trước đó được đặt lại, và không thể gỡ loopback cũng như địa chỉ của chính người gọi khỏi danh sách tin cậy. (hitechcloudcli#370) - Danh sách IP cho phép (2087 > Security > IP Allowlist, chỉ Super Admin, và
/api/security/ip-allowlist): các danh sách địa chỉ và dải địa chỉ riêng cho quản trị viên, đại lý và tài khoản hosting, được kiểm tra ngay khi yêu cầu đến, trước mọi mật khẩu, phiên hay token, và kiểm tra lại theo vai trò đã đăng nhập. Một lần đăng nhập bị từ chối nhận đúng câu trả lời sai mật khẩu, mọi lần từ chối được ghi vào nhật ký hoạt động, và một lần lưu có thể khoá chính quản trị viên đang lưu sẽ bị từ chối. Danh sách cho tài khoản hosting được áp dụng trên 2083 bởi HiTechCloud-Panel#1659, với các chuỗi Account > IP Allowlist đã được dịch sẵn. (hitechcloudadmin#255, hitechcloud-translations#29)
Chứng chỉ SSL thương mại (S13)
- Panel trung lập về việc ai cấp chứng chỉ: không có gì trong đó liên lạc với một tổ chức cấp chứng chỉ. Yêu cầu ký và khóa của nó được tạo trên máy chủ (RSA 2048, 3072 hoặc 4096, hoặc ECDSA P-256 hay P-384; một tên, nhiều tên, hoặc ký tự đại diện) và khóa không bao giờ rời khỏi máy chủ. 2083 SSL và 2087 SSL > Lưu trữ hiển thị trạng thái, nhà cấp, ngày hết hạn và số ngày còn lại của từng chứng chỉ, yêu cầu để dán vào đơn đặt hàng ở bất cứ nơi nào mua chứng chỉ, và nút Gia hạn (yêu cầu mới cho cùng các tên với khóa mới). Khi cài đặt, cần chứng chỉ và chuỗi của nhà cấp, và
mail.<domain>là một đích bên cạnh các tên miền của tài khoản. (hitechcloudcli#442, hitechcloudadmin#305, HiTechCloud-Panel#1727, hitechcloud-translations#61) ssl uploadchặt chẽ hơn:ssl upload,sslstore attachvà các trang cài đặt dùng chung một bước kiểm tra trước khi lưu hoặc cài bất cứ thứ gì. Chứng chỉ phải khớp với khóa, bao phủ mọi tên được yêu cầu (ký tự đại diện chỉ được bao phủ bởi ký tự đại diện), còn hạn và có chuỗi đúng thứ tự với chữ ký hợp lệ kết thúc ở một gốc tin cậy (chứng chỉ trung gian giả danh có đúng tên vẫn bị phát hiện); khóa phải là RSA từ 2048 bit hoặc ECDSA, không có chữ ký SHA-1 hay MD5, và chứng chỉ phải hợp lệ cho máy chủ TLS. Chứng chỉ không đạt bị từ chối kèm lý do. (hitechcloudcli#442)- Nhắc gia hạn: chứng chỉ cài thủ công được theo dõi, và lời nhắc được gửi qua các kênh thông báo trước khi hết hạn 30, 14, 7 và 1 ngày và đúng ngày hết hạn. (hitechcloudcli#442)
- Đặt mua chứng chỉ ngay trong panel sắp ra mắt. Không có gì cho việc đó được xây dựng trong 4.1.2: không liên lạc với tổ chức cấp chứng chỉ nào, không đặt mua hay thanh toán gì, và quy trình tạo yêu cầu rồi cài đặt ở trên là cách được hỗ trợ. (S13)
Vá nóng kernel (S14)
- Trạng thái và cơ chế của chính bản phân phối:
hitechcloudcli server-livepatch status|enable|disable|apply|rollback|watchvà 2087 Máy chủ > Vá nóng kernel (chỉ Quản trị viên cấp cao) hiển thị kernel và bản dựng đang chạy, kernel có hỗ trợ vá nóng không, Secure Boot, lockdown và việc bắt buộc chữ ký mô-đun, nguồn bản vá của bản phân phối này (góikpatch-patchcủa RHEL, ứng dụng Pro của Ubuntu khi chủ sở hữu đã gắn Pro; AlmaLinux, Rocky, Debian và các bản khác nói rõ là không có nguồn bản vá), các bản vá đã nạp và các CVE chúng nêu, và một biểu ngữ khi đã cài kernel mới hơn kernel đang chạy. Bật, Áp dụng, Tắt và Hoàn tác đều hỏi xác nhận; việc hoàn tác một bản vá đã nạp bị giới hạn 60 giây; mọi thao tác bị từ chối khi KernelCare hoặc Ksplice đang được cài. Một lần kiểm tra hằng ngày cảnh báo quản trị viên khi đã cài kernel mới hơn kernel đang chạy. (hitechcloudcli#441, hitechcloudadmin#304, HiTechCloud-Panel#1725) - Quy trình vá có chữ ký tự xây dựng:
apply --bundlechỉ nạp một gói bản vá sau khi kiểm tra chữ ký ed25519 trên manifest của nó với một khóa tin cậy, SHA-256 của mô-đun, bản phát hành kernel, build ID và kiến trúc, hạn dùng và số sê-ri; mọi gói đều bị từ chối cho đến khi một khóa được tin cậy. Quy trình còn có công cụ tạo bản vá chạy ngoại tuyến, cổng rà soát có ký duyệt (rà soát chưa đủ hoặc bị thay đổi sẽ không qua), chỉ mục mirror có chữ ký, và bước tải về chỉ lấy mục đúng với bản dựng kernel này, kiểm tra từng tệp rồi chạy lại toàn bộ bước kiểm tra gói. Bản vá chỉ tồn tại tạm thời (không có gì nạp lại khi khởi động), không có gì được tải hay áp dụng theo lịch, và trang 2087 không có trường nào nhận đường dẫn, URL hay tệp. (hitechcloudcli#444, hitechcloudadmin#309, HiTechCloud-Panel#1729) - Phần vẫn là việc của chủ sở hữu, nói rõ: khóa ký mô-đun, các máy dựng biên dịch bản vá, việc rà soát từng CVE và việc phát hành mirror là các bước vận hành của chủ sở hữu, và chưa có bước nào tồn tại. Cho đến khi chủ sở hữu tạo và tin cậy một khóa, đặt địa chỉ mirror (
mirror set) và phát hành bản vá, chưa có bản vá HiTechCloud nào để áp dụng, và máy chủ Secure Boot còn cần đăng ký khóa. Không có gì trong S14 được chạy trên kernel thật, máy dựng thật, mirror thật hay khóa phần cứng thật; xem Chưa kiểm chứng trên hệ thống thật. Thiết kế và các quyết định của chủ sở hữu nằm trongdocs-internal/kernel-livepatch-design.md, và sổ tay vận hành nằm trong tài liệu bằng tiếng Anh và tiếng Việt.
Sao lưu, khôi phục và di chuyển
- Sao lưu trong 2083: tài khoản tạo bản sao lưu theo yêu cầu với số lượng, số ngày và lựa chọn mã hóa riêng (khóa do tài khoản giữ chỉ hiển thị một lần và không bao giờ được lưu trên máy chủ), khóa và mở khóa bản sao lưu của mình trong giới hạn của máy chủ, duyệt tệp của một bản sao lưu và khôi phục hoặc tải về các đường dẫn đã chọn qua hàng đợi khôi phục và tải xuống, chấp nhận các điều kiện khôi phục trước khi khôi phục, và tự khôi phục hoặc tải về chỉ những mục mà quản trị viên cho phép (K28, đặt mặc định và theo từng tài khoản trong 2087). Tài khoản có thể khôi phục các ảnh chụp của tác vụ sao lưu máy chủ, và cài đặt FTP, cron, SSL hoặc mail có thể được khôi phục riêng (
user-restore --item). (hitechcloudcli#417, #414, #392, #402, #427, #379, hitechcloudadmin#272, #285, #293, HiTechCloud-Panel#1704, #1696, #1680, #1691, #1712, #1667) - 2087 Sao lưu: các trang Tác vụ sao lưu, Đích, Lượt chạy và Điểm khôi phục trên
backup-jobs, với đích là SFTP, FTP(S), WebDAV, lưu trữ tương thích S3 (AWS, Wasabi, B2, R2, Spaces, MinIO) và lưu trữ đám mây qua rclone (chỉ tên remote, không lưu thông tin đăng nhập), sau một lớp bảo vệ địa chỉ. Phần cài đặt gồm giới hạn khóa của người dùng, số lượt khôi phục và tải xuống chạy cùng lúc, thời hạn tải xuống và giới hạn theo tài khoản, nội dung điều kiện khôi phục và nhật ký những gì tài khoản đã chấp nhận. (hitechcloudcli#385, #426, hitechcloudadmin#270, #272, #292) - Khôi phục thảm họa cho panel (K24): mỗi lượt sao lưu có thể ghi một gói mã hóa chứa trạng thái của chính panel, và 2087 Sao lưu > Khôi phục panel và Khôi phục máy chủ này (chỉ Quản trị viên cấp cao) bật tính năng, chọn đích, hiển thị khóa khôi phục một lần, và khôi phục một bản cài mới từ một đích, giữ lại những gì bị thay thế trong tệp
panel-dr-before-<stamp>.tgz. (hitechcloudcli#416, hitechcloudadmin#283, HiTechCloud-Panel#1703) - Tác vụ nhân bản (K23):
clone-jobssao chép tài khoản theo lịch sang một máy chủ chờ, nơi chúng bị tạm ngưng cho đến khi chuyển đổi dự phòng; 2087 Sao lưu > Tác vụ nhân bản quản lý chúng. Khóa máy chủ của máy chờ được ghim (xem Ghi chú nâng cấp). (hitechcloudcli#420, hitechcloudadmin#286) - Xóa bản sao lưu của tài khoản đã chấm dứt (GDPR):
backup-jobs gdprxóa bản sao lưu của tài khoản đã chấm dứt sau N ngày (mặc định tắt) và các tệp lưu trữ mồ côi của nó; không bao giờ động tới điểm đang dùng, đang chờ hoặc đã khóa, và tài khoản bị tạm ngưng không được coi là đã chấm dứt. (hitechcloudcli#430, #435, hitechcloudadmin#285) - Di chuyển: di chuyển trực tiếp toàn bộ tài khoản từ cPanel/WHM, Plesk hoặc DirectAdmin, với nhiều tệp sao lưu cùng lúc, hàng đợi có giới hạn đồng thời, trạng thái và thử lại theo từng mục, và kiểm tra sau di chuyển đối với tài khoản đã khôi phục (website, DNS, đăng nhập mail, PHP, trang báo cáo) (G2, G4, G5); và Website > Nhập một website trong 2083, kéo một website từ máy chủ khác qua SFTP, SSH, FTPS hoặc FTP như một tác vụ nền. (hitechcloudcli#390, #400, #407, #389, hitechcloudadmin#279, HiTechCloud-Panel#1673)
- Job sao lưu:
hitechcloudcli backup-jobschạy nhiều job sao lưu, mỗi job có tài khoản riêng (tất cả, theo gói, theo đại lý hoặc theo tên, có loại trừ), kiểu (đầy đủ, chuỗi tăng dần hoặc theo thành phần), lịch, nén, và chính sách giữ lại (N bản mới nhất, N ngày gần nhất, và GFS theo ngày/tuần/tháng, chuỗi được giữ hoặc bỏ trọn vẹn). Mỗi job tải lên tối đa 8 đích cùng lúc, mỗi đích có số lần thử lại và giới hạn băng thông riêng, chạy song song nhiều tài khoản, và có thể mã hoá bản lưu trữ khi lưu (ChaCha20-Poly1305, khoá chỉ root đọc được,key export). Mỗi lần chạy để lại điểm khôi phục và gửi thông báo thất bại, thành công hoặc gọi webhook. (hitechcloudcli#376, dựa trên #364) - Điểm khôi phục:
backup-jobs pointsliệt kê các điểm khôi phục của một tài khoản, một đại lý hoặc cả máy chủ, mới nhất trước, kèm nội dung của từng điểm;backup-jobs fetchghi một điểm thành một bản lưu trữ duy nhất (điểm tăng dần được gộp cùng chuỗi của nó), được đối chiếu với checksum đã ghi và giải mã, sau khi kiểm tra dung lượng trống;backup-jobs restorekhôi phục một điểm về tài khoản của nó (hoặc dưới tên mới).backup-jobs lock|unlockgiữ một điểm, cùng các điểm nó phụ thuộc, khỏi bị chính sách giữ lại xoá trong N ngày, đến một ngày, hoặc mãi mãi. (hitechcloudcli#381, #383) - Tuỳ chọn
user-backupcho các job sao lưu:--compress gzip|zstd(user-restorekhôi phục được cả hai),--include files,databases,mail,config,--exclude PATTERN,--listed-incremental FILE,--contents FILE(bản tóm tắt JSON những gì bản lưu trữ chứa), và--nice/--ionice-class/--ionice-level. Bản lưu trữ tạo không có các tuỳ chọn này không thay đổi. (hitechcloudcli#364)
Website và ứng dụng
- Bí danh tên miền (D7), trong panel: 2087 Tên miền > Bí danh tên miền đỗ một tên miền khác lên website của bất kỳ tài khoản nào, và 2083 Tên miền > Bí danh tên miền làm điều tương tự cho các website của chính tài khoản; với tùy chọn mail, thư gửi tới bí danh sẽ tới các hộp thư của tên miền chính (xem mục CLI trong nhóm này). (hitechcloudadmin#300, HiTechCloud-Panel#1647)
- Laravel (W5): 2083 PHP > Laravel quản lý scheduler, queue worker, biến
.env, chế độ bảo trì và triển khai của một ứng dụng Laravel; worker của mỗi tài khoản có một unit riêng. Ứng dụng .NET (W4): trang cài đặt và quản lý, tính năng góidotnetvà một thẻ Autoinstaller. (hitechcloudcli#432, #434, #438, hitechcloudadmin#299, hitechcloud-configuration#39, HiTechCloud-Panel#1709, #1714) - WordPress Toolkit: đồng bộ chọn lọc một số bảng từ bản staging, Smart Updates và kiểm tra phiên bản PHP trên một bản sao ẩn, bảo vệ website bằng mật khẩu chỉ một lần bấm, và các bộ plugin và theme được áp dụng khi cài đặt hoặc cho nhiều website (W13 đến W18). (hitechcloudcli#394, #393, #395, #396, HiTechCloud-Panel#1686)
- Tên miền > SEO cho biết trình thu thập thấy gì và ghi
robots.txtvàsitemap.xml(W21); Website > Liệt kê thư mục bật hoặc tắt liệt kê thư mục theo từng website (W25); FTP > FTP ẩn danh chia sẻ các thư mục chỉ đọc cho khách truy cập ẩn danh, và một thư mục có chứa tệp cấu hình hoặc khóa ở bất kỳ vị trí nào bên trong sẽ không bao giờ được chia sẻ (W30); Live Log Tail đọc và theo dõi nhật ký máy chủ web của tên miền, và kho lưu thống kê hằng tháng giữ báo cáo của từng tên miền trong 36 tháng (W23, W22). (hitechcloudcli#419, #428, #431, #436, #403, HiTechCloud-Panel#1700, #1707, #1708, #1688) - Móc sự kiện cho các thao tác của chính panel (H5, H6, K20): một lệnh có thể chạy trước hoặc sau một thao tác, móc chạy trước có thể chặn thao tác (lý do được hiển thị), và các thao tác hộp thư, cơ sở dữ liệu, người dùng cơ sở dữ liệu, cron và tải bản sao lưu tạo ra sự kiện; 2087 Cài đặt > Trình xử lý sự kiện kiểm thử chúng và lưu nhật ký chạy. (hitechcloudcli#397, hitechcloudadmin#274, HiTechCloud-Panel#1690)
- Cron Jobs > Cron email của 2083: tài khoản chọn nơi nhận đầu ra của các cron job (một địa chỉ, không bao giờ, hoặc hộp thư mặc định). Lựa chọn trở thành dòng
MAILTOtrong khối của panel trong crontab, được kiểm tra để không thể thêm dòng crontab nào, và mỗi thay đổi được ghi vào nhật ký hoạt động. (HiTechCloud-Panel#1639) - Tên miền bí danh (parked domain):
hitechcloudcli vhost alias add|remove|listcho một website trả lời dưới một tên khác, cùng tênwww., DNS và chứng chỉ của nó; với--mail, hoặchitechcloudcli mail alias-domain add|remove|list, thư gửi tớiuser@aliasđếnuser@domain, và các địa chỉ mà tên miền không có vẫn bị từ chối ở SMTP. Trong 2083, Domains > Domain Aliases thêm và gỡ chúng; một tên đã là tên miền trên panel, hoặc nằm dưới tên miền của tài khoản khác, bị từ chối. (hitechcloudcli#367, #375, HiTechCloud-Panel#1647)
E-mail và DNS
- Danh sách thư với đăng ký và hủy đăng ký, kiểm duyệt, lưu trữ và bản tổng hợp (E2), và một chứng chỉ riêng cho
mail.<domain>trên IMAP, POP3 và SMTP, chọn theo SNI (E6), trong 2083 E-mail. (hitechcloudcli#408, #406, HiTechCloud-Panel#1698) - Nhà cung cấp cụm DNS (D6): Amazon Route 53, DigitalOcean và PowerDNS bên cạnh Cloudflare, với bí mật chỉ truyền qua stdin. Khóa máy chủ SSH của slave DNS kiểu cũ được ghi lại ở lần dùng đầu tiên và khóa khác bị từ chối (xem Ghi chú nâng cấp). (hitechcloudcli#411, hitechcloudadmin#278, #313)
- Webmail: tiếng Việt cho các plugin Chat, Tài liệu và Tệp (181 chuỗi). (hitechcloudmail#88)
Máy chủ và nền tảng
- Node (C1 đến C4): 2087 Máy chủ > Nodes hiển thị các tài khoản được đặt trên node cùng mức sử dụng, có thể tạm ngưng, bỏ tạm ngưng và xóa chúng và thu thập mức sử dụng ngay (kết hợp với báo cáo hạn mức), đặt chính sách đặt tài khoản mới với chế độ đặt tự động, và Người dùng liệt kê toàn bộ đội máy với node của từng tài khoản và bộ lọc theo máy chủ; tên người dùng là mới với cả đội máy và tên miền là mới với các node mà tài khoản của nó không nằm trên. Các trang Nodes dành cho Quản trị viên cấp cao. (hitechcloudcli#418, #422, #424, hitechcloudadmin#284, #289, #290, HiTechCloud-Panel#1713)
- Máy chủ cơ sở dữ liệu từ xa (B6): đăng ký, kiểm tra và gán máy chủ cơ sở dữ liệu theo gói hoặc tài khoản trong 2087 Máy chủ > Máy chủ cơ sở dữ liệu (chỉ Quản trị viên cấp cao), và 2083 truy cập được cơ sở dữ liệu trên máy chủ đã đăng ký; Máy chủ > Nâng cấp cơ sở dữ liệu chạy nâng cấp lớn MariaDB có hướng dẫn như một tác vụ nền với bản dump, bản sao thư mục dữ liệu và tự động hoàn tác. (hitechcloudcli#413, #384, hitechcloudadmin#282, #268, HiTechCloud-Panel#1693)
- Giám sát và vận hành: giám sát thời gian hoạt động được thăm dò từ máy chủ này và từ các node hosting kèm cảnh báo (T2);
GET /metricsvới tình trạng máy chủ cho Prometheus sau một mã Bearer (M10); và Máy chủ > Tệp cấu hình sửa các tệp trong danh sách cho phép của dịch vụ máy chủ bằng bước kiểm tra riêng của chúng và đặt lại tệp cũ khi bị từ chối (chỉ Quản trị viên cấp cao). (hitechcloudcli#410, hitechcloudadmin#269, #260, #287) hitechcloudcli objectcache loopback, chạy trong mỗi lần cập nhật: một instance Redis hoặc Valkey lắng nghe ra ngoài loopback và nhận kết nối không cần mật khẩu sẽ được giới hạn về127.0.0.1và::1(cả cấu hình lẫn máy chủ đang chạy, không khởi động lại, tệp cũ được giữ bên cạnh). Một instance có yêu cầu mật khẩu được báo cáo và để nguyên. Với các gói gốc và các instance của chính bộ này, vốn đã chỉ lắng nghe loopback, lệnh không thay đổi gì.objectcache statusgiờ cho biết, theo từng engine, nó chỉ lắng nghe loopback hay ra ngoài (đọc từ chính tiến trình của unit).- Các cổng khách hàng được bật mặc định: mọi tài khoản hosting đều đăng nhập được vào cổng Mail, DNS và S3, và mọi tài khoản chỉ dùng mail đăng nhập được vào cổng Mail. Cài đặt và cập nhật khởi động cả ba và mở cổng 2091-2093, trừ khi một cổng bị tắt (
<portal>_portal = off), điều mà không b ản cập nhật nào ghi đè. - Bố cục cổng mới: thanh bên trái với các mục của từng cổng (thu gọn thành biểu tượng, dạng ngăn kéo trên điện thoại), đường dẫn breadcrumb, và menu tài khoản với ngôn ngữ, giao diện và đăng xuất, trong Mail, DNS và S3.
- Đăng nhập một lần vào các cổng: nút "Customer portals" trên bảng điều khiển 2083, nút cổng Mail/DNS/S3 cạnh "Log in as" trong 2087 và panel đại lý (cả cho tài khoản dịch vụ mail), và "Sign in with your hosting panel" trên trang đăng nhập của mỗi cổng. Các liên kết dùng một lần không bao giờ xuất hiện trong nhật ký máy chủ.
- Lệnh mới
hitechcloudcli objectcache panel-login: kiểm tra và sửa thông tin đăng nhập cache của chính panel. Trình cài và mỗi lần cập nhật đều chạy nó, và nó đưa một panel từng được chuyển sang 127.0.0.1:6380 để chữa tạm về lại socket của Valkey.objectcache statusgiờ cho biết thông tin đăng nhập của panel có dùng được không. - Lệnh mới
hitechcloudcli objectcache reset-admin <redis|valkey> --yes: đặt mật khẩu quản trị mới cho một instance Redis hoặc Valkey khi không mật khẩu đã lưu nào mở được nó. Thông tin đăng nhập riêng của mỗi tài khoản được giữ nguyên. - Bảng điều khiển WebAdmin của OpenLiteSpeed và LiteSpeed Enterprise (cổng 7080):
hitechcloudcli litespeed console status|open|close|password.openphục vụ bảng điều khiển qua TLS với chứng chỉ của panel, áp dụng danh sách truy cập của LiteSpeed và mở 7080 trên tường lửa;closeđưa nó về loopback;password --password-stdinđặt thông tin đăng nhập bảng điều khiển. Bảng điều khiển đang mở vẫn mở qua các lần ghi lại cấu hình vàfirewall ports. - Cập nhật hệ điều hành:
hitechcloudcli server-updates list|apply [--security]|auto on|off|statusliệt kê và cài các bản cập nhật gói của hệ điều hành (apt hoặc dnf), bật hoặc tắt cập nhật bảo mật tự động, cho biết có cần khởi động lại máy không, và ghi nhật ký mỗi lần chạy trong/var/log/hitechcloud/updates/. (hitechcloudcli#369)
Ngôn ngữ, cổng và ứng dụng
- Thêm tám ngôn ngữ, đầy đủ cho bộ thông điệp đang dùng (tiếng Ba Lan còn khoảng 28 mục cũ của danh mục bằng tiếng Anh): tiếng Nhật, Hàn, Ý, Hà Lan, Ba Lan, Indonesia, Thái và Ả Rập (ja, ko, it, nl, pl, id, th, ar) trong 2083 và 2087, với tên bản ngữ và cờ trong bộ chọn ngôn ngữ và tiếng Ả Rập bố cục từ phải sang trái (X3); trang tài khoản 2087 hiện cờ riêng của từng ngôn ngữ và trang 502/504 của front-end có đủ các ngôn ngữ này. Đây là bản dịch máy: hãy rà soát trước khi dựa vào. (hitechcloud-translations#48, #54, #56, #59, #63, hitechcloudadmin#288, #298, #312, #314, HiTechCloud-Panel#1706, #1715, #1736)
- Mọi chuỗi trong 2083 đều đi qua danh mục và một chuỗi đang dùng mà thiếu tiếng Việt sẽ làm CI thất bại; tài liệu tiếng Việt nay phủ toàn bộ trang web (hàng trăm trang, gồm trợ lý AI, API, họp trực tuyến, webmail, sao lưu và chính nhật ký thay đổi này), và CI thất bại khi một trang tiếng Anh không có trang tiếng Việt tương ứng hoặc cặp trang khác nhau về cấu trúc. (HiTechCloud-Panel#1649, #1641, #1643, #1648, #1654, #1658, #1664, #1672, #1677, #1695)
- Cổng khách hàng: trang không tìm thấy và trang lỗi đã dịch trong mọi ứng dụng và trạng thái đang tải trong DNS; cổng DNS giữ lại những gì đã gõ sau khi một thay đổi bị từ chối, hỏi trước khi xóa các bản ghi do hệ thống quản lý, hiển thị lỗi bằng ngôn ngữ của trang và chuyển tiêu điểm tới thay đổi; cổng S3 hiển thị lỗi và kiểm tra biểu mẫu bằng ngôn ngữ của trang, có nút Thử lại cho danh sách và được kiểm thử ở 320 px. (HiTechCloud-Panel#1719, #1723, #1724)
- Ứng dụng di động và tích hợp, chỉ để tham khảo: các ứng dụng di động (HiTechCloud Panel cho tài khoản hosting và quản trị viên, và HiTechCloud Mail) và mô-đun WHMCS được đánh phiên bản và phát hành từ kho riêng của chúng (hitechcloud-panel-app, hitechcloud-mail-app, hitechcloud-panel-whmcs-module), không đi cùng bản phát hành này. Các thay đổi của chúng trên nhánh main kể từ bản ứng dụng được phát hành gần nhất (đăng nhập bằng khóa truy cập, thông báo từ chối đăng nhập chính xác, tab lịch sao lưu, địa chỉ người gửi và chuyển tiếp, loại sản phẩm đại lý của WHMCS, gói bổ sung và Kiểm tra kết nối) được mô tả ở đó, và bản phát hành này trỏ tới mô-đun WHMCS hiện tại.
Bảo mật
- Sentinel: e-mail cảnh báo không còn đ ể lộ mã dùng một lần của trình gửi thư quản trị hay thông tin đăng nhập basic-auth của quản trị cho các tài khoản cục bộ khác.
- Công cụ tìm kiếm (OpenSearch/Elasticsearch): thông tin đăng nhập superuser và mật khẩu tài khoản không còn hiện ra với các tài khoản cục bộ khác trong lúc tạo hoặc xoá người dùng.
- Kiểm kê Toolkit: bước kiểm tra extension Joomla giờ chỉ kết nối tới cơ sở dữ liệu của chính máy chủ này, tắt nạp tệp cục bộ, và không còn đặt mật khẩu cơ sở dữ liệu trên dòng lệnh.
- Front-end: máy chủ mặc định không còn phục vụ trang của một website bị tạm khoá, cùng thông báo của quản trị viên, cho bất kỳ ai gọi theo tên.
- Chuỗi sao lưu: khôi phục một chuỗi không còn đi theo liên kết tượng trưng nằm trong thư mục mail của bản lưu trữ. Bản lưu trữ nằm trong thư mục web của tài khoản, nên một liên kết được tạo có chủ đích có thể đã sao chép thư của tài khoản khác vào hộp thư của tài khoản này.
- Nghiêm trọng: khôi phục từ Backup Schedule của 2083 (
user-backupset --restore) giải nén các bản lưu trữ của chính tài khoản, mà tài khoản sửa được, vào thư mục home của nó với quyền root. Với GNU tar 1.34 (Ubuntu 22.04, họ RHEL), một tài khoản hosting có thể thay một thư mục bằng liên kết và khiến root ghi bất kỳ tệp nào trên máy chủ. Lần khôi phục đó cũng đọc các thành phần bản lưu trữ và tệp restic qua liên kết của tài khoản (tệp, bản dump và thư của tài khoản khác) và sao chép siêu dữ liệu được liên kết với quyền root. Giờ các thành phần được giải nén bởi một tar chạy dưới tài khoản đó, root mở từng thành phần mà không đi theo liên kết, mọi liên kết trong siêu dữ liệu tạm bị bỏ trước, và vùng có$INCLUDEbị từ chối. (hitechcloudcli#359) - Tài khoản bị tạm khoá được tìm bằng một mẫu LIKE cũng khớp với tài khoản khác:
user-unsuspend alicecó thể đổi tên mộtmalicehoặcbob_aliceđang bị tạm khoá thànhalice(trao luôn thông tin đăng nhập và tên miền của nó),user-delete alicecó thể xoá mộtmaliceđang bị tạm khoá, vàuser-restorebản lưu trữ của một tài khoản bị tạm khoá đưa nó trở lại thành một thông tin đăng nhập thứ hai, không bị tạm khoá. Giờ dòng tạm khoá được khớp chính xác, vàuser-restoretừ chối khôi phục đè lên một tài khoản đang bị tạm khoá. (hitechcloudcli#361) user-restorechạy với quyền root trên một bản lưu trữ mà tài khoản sửa được: một liên kết ra ngoài thư mục home trong bản lưu trữ (ví dụftp/users.list -> /etc/passwd) khiến root đọc và ghi lại đích của nó, các thư mục FTP được root tạo qua liên kết của tài khoản, và với--forcebản lưu trữ chọn gói và chủ sở hữu của tài khoản. Giờ các liên kết ra ngoài home bị bỏ ngay sau khi giải nén, thư mục FTP do chính tài khoản tạo, và một tài khoản đã có trên máy chủ giữ nguyên gói và chủ sở hữu. (hitechcloudcli#362)- Một tài khoản bị tạm khoá vẫn đăng nhập được qua FTP để tải lên hoặc tải về website của nó: giờ
user-suspendkhoá các thông tin đăng nhập FTP và mật khẩu Linux của tài khoản, vàuser-unsuspendm ở khoá đúng những gì lần tạm khoá đã khoá. (hitechcloudcli#363) - Restore & Download trong Backups của 2083 ghi vào thư mục home của tài khoản với quyền root sau khi kiểm tra từng thư mục xem có phải liên kết không, nên một liên kết được tráo vào giữa hai bước sẽ bị root đi theo. Giờ các tệp được ghi bằng danh tính hệ thống tệp của chủ sở hữu, và vùng DNS có
$INCLUDEbị từ chối. (HiTechCloud-Panel#1638) - Đăng nhập với một tên không có dòng nào sẽ khớp các dòng tạm khoá theo hậu tố: một
alicebị tạm khoá có thể được kiểm tra với hash mật khẩu của mộtmalicebị tạm khoá, và bất kỳ hậu tố nào của tên tài khoản bị tạm khoá cũng dùng được để thử mật khẩu của nó. Giờ chỉ dòng tạm khoá của chính tài khoản được dùng. (HiTechCloud-Panel#1640) - Nghiêm trọng:
user-restoresao chép ngữ cảnh của dòng panel (người dùng hệ thống và thư mục home mà phiên panel của tài khoản làm việc trên đó) từuser.sqlcủa bản lưu trữ, vốn nằm trong thư mục web của tài khoản: một tài khoản có thể ghi tên tài khoản khác vào đó và, khi quản trị viên khôi phục bản sao lưu của nó, thông tin đăng nhập panel của nó làm việc trên tệp của tài khoản kia. Giờ ngữ cảnh luôn là ngữ cảnh do chính lần khôi phục tạo ra. (hitechcloudcli#374) - HiTechAdmin (2087) tìm dòng của một tài khoản bị tạm khoá bằng một mẫu LIKE cũng khớp với tài khoản khác (
bob_alicehoặcmalicechoalice), nên thao tác của quản trị viên trên một tài khoản có thể đọc hoặc tác động lên dòng của tài khoản khác, và tên bị tạm khoá hiển thị bị cắt tại dấu_cuối cùng. Giờ quy tắc chính xác từ hitechcloudcli#361 được dùng ở mọi nơi. (hitechcloudadmin#249) - HiTechAdmin (2087) lấy địa chỉ của máy khách từ mục ngoài cùng bên trái của
X-Forwarded-For, do chính máy khách viết, hoặc từ bất kỳCF-Connecting-IPnào, nên một yêu cầu đi qua proxy của panel có thể tự chọn địa chỉ dùng cho giới hạn tần suất và ghim phiên. Giờ máy khách là chặng gần nhất sau các proxy tin cậy, đọc từ bên phải, vàCF-Connecting-IPchỉ được tin khi đến từ địa chỉ của Cloudflare. (hitechcloudadmin#255) - Việc di chuyển chỉ kết nối tới máy chủ từ xa với khoá máy chủ đã được một người xác nhận (khoá bị đổi sẽ bị từ chối, ghi rõ cả hai dấu vân tay), với thông tin đăng nhập chỉ tồn tại trên tmpfs trong thời gian của job và không xuất hiện trong nhật ký, và với một luồng tar chỉ cho qua tệp thường và thư mục, được giải nén bởi tar của chính tài khoản. Đây là phần lõi chung cho tính năng nhập website của 2083 và di chuyển trực tiếp của 2087. (hitechcloudcli#371)
- Đợt kiểm tra bảo mật và tính đúng đắn đối với các tính năng được hợp nhất sau 2026-10-16 (
docs-internal/security-audit-4.1.2.mdcó bảng 21 phát hiện, các đường đã được lần theo và những gì đã rà soát mà không có phát hiện). 13 phát hiện đã được sửa, 3 được chủ sở hữu hoãn lại (xem Hạn chế đã biết), 4 được chấp nhận kèm lý do, và 1 (phần panel của trang .NET) khi đó chưa có trên main lúc tiến hành rà soát. Các tính năng được hợp nhất sau đợt rà soát đó (bộ chuyển tài khoản, sao chép cơ sở dữ liệu, SSL thương mại, vá nóng kernel, phần panel của trang .NET, các màn hình kiểm toán của 2083 và các thay đổi của cổng) không nằm trong phạm vi của nó; lần đọc kiểm tra chất lượng bộ xử lý của bộ chuyển tài khoản và bộ lập kế hoạch sao chép đã tìm ra thêm một vấn đề, ở phần sao chép cơ sở dữ liệu (xem bên dưới). - Node và các trang tương đương quyền root chỉ dành cho Quản trị viên cấp cao: một quản trị viên được ủy quyền có thể ghi danh một node (việc này gửi cho node máy chủ, người dùng và mật khẩu của cơ sở dữ liệu panel), chỉ định máy sẽ tạo tài khoản mới (
POST /user/newnhận các trường ẩnslavevàssh_key_pathvà chạyscp -r /etc/hitechcloudtới địa chỉ đó), sửa khóa SSH của root vàsshd_config, các tệp cấu hình của dịch vụ máy chủ và cron của root, và di chuyển máy chủ hoặc chuyển tài khoản tới một máy tùy chọn. Mọi trang đó và đường dẫn API của chúng nay chỉ dành cho Quản trị viên cấp cao. (hitechcloudadmin#307, #311) - Ghim khóa máy chủ bằng
accept-newcho node, máy chủ git, đích SFTP, máy chờ nhân bản và di chuyển, bước thăm dò node mặc định và slave DNS kiểu cũ: trước đây chúng kết nối tới máy từ xa khi tắt kiểm tra khóa máy chủ, nên một máy trả lời giả làm máy chờ có thể nhận được tệp, bản ghi cơ sở dữ liệu và băm mật khẩu của mọi tài khoản. Khóa bị thay đổi nay bị từ chối (thay đổi hành vi, xem Ghi chú nâng cấp). (hitechcloudcli#443, #445, hitechcloudadmin#311, #313) - Cao:
POST /api/(đăng nhập lấy mã API) không bao giờ đòi yếu tố thứ hai của quản trị viên, nên quản trị viên bật 2FA vẫn nhận được mã cho mọi đường dẫn quản trị/api/*chỉ bằng mật khẩu. Nay nó đòi mã của ứng dụng xác thực (xem Ghi chú nâng cấp). Do đợt kiểm tra ứng dụng di động báo cáo. (hitechcloudadmin#308) - phpMyAdmin và pgAdmin theo vai trò: tài khoản cơ sở dữ liệu của chính panel bị từ chối với mọi vai trò trừ Quản trị viên cấp cao (trước đây quản trị viên được ủy quyền vẫn vào được), và các vai trò khác chỉ nhận phpMyAdmin theo từng tài khoản bằng đúng thông tin đăng nhập của tài khoản đó, hoặc pgAdmin dưới một danh tính riêng không có máy chủ lưu sẵn, sau khi Quản trị viên cấp cao cấp quyền tại Máy chủ > Cơ sở dữ liệu. (hitechcloudadmin#313)
- Cao: việc xóa bản sao lưu của các tài khoản "đã chấm dứt" cũng xóa bản sao lưu của tài khoản bị tạm ngưng (dòng của tài khoản bị tạm ngưng là
SUSPENDED_<stamp>_<name>, trông như một tài khoản đã biến mất), không thể khôi phục, saugdpr_delete_after_days. Nay việc đó được đối chiếu với mọi tài khoản mà cơ sở dữ liệu panel còn giữ, và danh sách rỗng hoặc lỗi sẽ không xóa gì. (hitechcloudcli#435) - Các bản sửa mức thấp hơn từ đợt kiểm tra: FTP ẩn danh kiểm tra năm cấp của thư mục chia sẻ để tìm tệp cấu hình và khóa, không chỉ cấp trên cùng (hitechcloudcli#436); khóa của bản sao lưu theo yêu cầu không còn nằm lại trên máy chủ sau lượt chạy bị dừng đột ngột hoặc chưa từng bắt đầu (#437); hai tài khoản không còn dùng chung một unit queue worker Laravel qua các tên giống nhau (#438); tác vụ nhân bản có máy chờ là chính máy chủ này bị từ chối (#443).
- Cao: sao chép cơ sở dữ liệu (B5):
account db-copyvàcustomers db-copynạp bản dump của cơ sở dữ liệu nguồn vào tài khoản đích bằng quyền root, nên một tài khoản kiểm soát được tên đối tượng, chú thích hoặc mệnh đềDEFINERtrong cơ sở dữ liệu của chính nó có thể khiến bản dump chạy lệnh với quyền root (mộtGRANT, một lệnh client\!, một trigger do root chạy). Giờ bản dump được lấy bằng thông tin đăng nhập riêng của tài khoản nguồn, được đọc để loại mọi thứ mà bản dump của một cơ sở dữ liệu không có (USE,CREATE DATABASE,GRANT,CREATE USER,SET GLOBAL, tên thuộc cơ sở dữ liệu khác,DEFINERcủa thông tin đăng nhập khác, lệnh của client, các thiết lập khiến client và máy chủ đọc cùng một văn bản theo hai cách), rồi được nạp bằng thông tin đăng nhập riêng của tài khoản đích với tư cách tài khoản đó, không dùng--force; root chỉ tạo cơ sở dữ liệu trống và cấp quyền. Phát hiện này do lần đọc kiểm tra chất lượng bộ lập kế hoạch sao chép tìm ra, không phải do đợt kiểm tra bảo mật. (hitechcloudcli#447) - Thư viện phụ thuộc: thư viện
zipđược nâng lên phiên bản 9 để xử lý RUSTSEC-2026-0367 và RUSTSEC-2026-0368 (HiTechCloud-Panel#1697), và Sentinel truyền yêu cầu e-mail cảnh báo cho curl qua stdin thay vì dòng lệnh (sentinel#7).
Tài liệu
- Trang mới về các cổng khách hàng: các cổng Mail (2091), DNS (2092) và S3 (2093), ai đăng nhập được, việc chúng được bật mặc định, đăng nhập một lần từ 2083, từ HiTechAdmin và từ trang đăng nhập của mỗi cổng, cùng tên máy chủ, cổng và giới hạn của chúng.
- Trang Khắc phục sự cố mới: bị đưa về trang đăng nhập ("Your session could not be saved",
objectcache panel-loginvàreset-admin), chữ ký ClamAV, tường lửa để tắt, SQL Server trên EL10, tác vụ nền không khởi động lại được, NAT của WireGuard, và tìm kiếm trên AlmaLinux 10. - Yêu cầu hệ thống, Cài đặt và Cập nhật thủ công được viết lại cho 4.1.2: ghi chú về AlmaLinux và RHEL 10, các cổng, và tường lửa được cài ở trạng thái tắt.
- Trang tham chiếu CLI cho
portals,objectcache,firewallvàmodule, các tranglicensevàupdateđược cập nhật, trang các phiên bản, Bảo mật HiTechCloud và nơi HiTechCloud lưu nhật ký, tất cả bằng tiếng Anh và tiếng Việt (#1626, #1636). Đã thêm các trang tiếng Việt mà trang tệp cấu hình liên kết tới, và nhật ký thay đổi này cũng có bản tiếng Việt (#1657). - Các trang mới và cập nhật: Nhiều tài khoản, một lần đăng nhập (khách hàng và bộ chuyển tài khoản), sổ tay vận hành vá nóng kernel (tiếng Anh và tiếng Việt), phpMyAdmin và pgAdmin theo vai trò và việc ghim khóa máy chủ của slave DNS, trang cổng khách hàng đúng như các cổng hiện nay (bố cục thanh bên, đăng nhập một lần, truy cập mở), và các trang tiếng Việt cho toàn bộ tài liệu. (HiTechCloud-Panel#1722, #1729, #1732, #1735)
Hạn chế đã biết
- Redis và Valkey vẫn dùng chung cho mọi tài khoản hosting trên máy chủ có tài khoản:
objectcache statusvẫn báoSHARED AND UNAUTHENTICATED(chỉ loopback, nên chính các tài khoản trên máy, không phải mạng bên ngoài, có thể đọc dữ liệu cache của nhau). Cô lập theo tài khoản (objectcache secure <engine> --yes) chỉ được áp dụng tự động trên máy chủ chưa có tài khoản nào, vì bật nó sẽ chặn mọi máy khách kết nối không có mật khẩu: thiết lập Redis cho WordPress của panel không ghi mật khẩu nào, vàredis.confcủa greylisting rspamd cũng không có. Việc nối các thành phần đó với thông tin đăng nhập theo tài khoản được lên kế hoạch cho một bản phát hành sau. - Trường hợp PHP 8.0 hiện là đã cài trên một máy chủ AlmaLinux 10 mà nhật ký trình cài không có 8.0 chưa tìm ra nguyên nhân gốc (
phpversions listđếm mọi/etc/opt/remi/phpNN/php-fpm.conf). Các phiên bản PHP được yêu cầu từ App Store trước khi kho PHP được cấu hình không thể đối chiếu với kho; lần cài bỏ qua những gì kho không có. - Thông báo
libsepol.context_from_record: type l2tpd_var_run_t is not definedtrong bước cài gói cơ sở (container-selinux) vàgroup screen/opendkim does not exist - using rootcủa rpm là đầu ra của chính hệ điều hành và vô hại. - Chưa kiểm chứng trên máy chủ thật: một lần khởi động lại cho mỗi bản cập nhật,
objectcache loopbackvới một instance bị lộ, các đường cài MSSQL, ClamAV, FTP, WireGuard và tìm kiếm trên el10. Quy tắc NAT của WireGuard cần các module netfilter của kernel đang chạy: sau một bản cập nhật có cài kernel mới hơn, hãy khởi động lại máy. - Chuỗi phụ thuộc đã cài một kernel mới hơn kernel đang chạy (gói fail2ban đầy đủ, firewalld, kernel-modules-extra) chưa xác nhận được từ mã nguồn; gói đầy đủ đó không còn được cài.
objectcache loopback, chạy trong mỗi lần cập nhật, giới hạn Redis và Valkey về loopback khi chúng nhận kết nối không cần mật khẩu: những ai có máy chủ ứng dụng từ xa từng kết nối tới cache mà không cần mật khẩu phải chủ động mở lại.- Đăng nhập với tư cách dịch vụ mail qua liên kết autologin cũ được thay bằng
/login_portal(mục này vì vậy được gỡ khỏi danh sách hạn chế của 4.1.0). - Chưa kiểm chứng trên máy chủ thật: khởi động các cổng trên bản cài mới hoặc khi cập nhật, các cổng tường lửa 2091-2093, vòng đăng nhập một lần và SameSite=Strict giữa các tên máy chủ khác nhau.
- Chính trang Cơ sở dữ liệu của 2087 (danh sách tiến trình, kill, giới hạn) vẫn hiển thị với quản trị viên được ủy quyền; chỉ phpMyAdmin, pgAdmin và tài khoản cơ sở dữ liệu của chính panel được chặn theo vai trò. (hitechcloudadmin#313)
- Ba phát hiện kiểm tra được chủ sở hữu hoãn lại và vẫn còn mở: phạm vi tên miền của thành viên nhóm là tìm kiếm văn bản trên các tham số có chứa tên miền, không phải một ranh giới (vai trò của thành viên mới là ranh giới); mã API có thể tạo mã không hết hạn, không danh sách địa chỉ và không phạm vi; và
user-renamekhông chuyển chỉ mục sao lưu, nên khi bậtgdpr_delete_after_days(mặc định tắt), các bản sao lưu tạo dưới tên cũ của một tài khoản đã đổi tên bị tính là của tài khoản đã chấm dứt. Các phát hiện còn lại được chấp nhận kèm lý do, được nêu trongdocs-internal/security-audit-4.1.2.md. - Đặt mua chứng chỉ SSL ngay trong panel chưa có (sắp ra mắt); chỉ có quy trình tạo yêu cầu rồi cài đặt. Vá nóng kernel chưa có bản vá HiTechCloud nào để áp dụng cho đến khi chủ sở hữu tạo và tin cậy một khóa ký, dựng máy dựng và phát hành mirror.
- Sao chép cơ sở dữ liệu (B5) từ chối cơ sở dữ liệu có bản dump chứa đối tượng do thông tin đăng nhập khác ngoài của chính tài khoản nguồn định nghĩa (ví dụ routine của
<account>_wp), và không sao chép sequence của MariaDB; cả hai tài khoản cần có thông tin đăng nhập riêng trong~/my.cnf, như đăng nhập phpMyAdmin và sao lưu đã yêu cầu. - Tám ngôn ngữ mới là bản dịch máy chưa được người bản ngữ nào rà soát, và các ứng dụng di động không được phát hành cùng phiên bản này.
Chưa kiểm chứng trên hệ thống thật
- Mọi thứ trong bản phát hành này được kiểm chứng bằng kiểm thử đơn vị, bằng CI và bằng kiểm thử trình duyệt trên dữ liệu mẫu. Không có máy chủ thật, kernel thật, tổ chức cấp chứng chỉ thật, ứng dụng xác thực, nhà cung cấp danh tính, máy chủ thư mục hay thiết bị di động thật nào được sử dụng, và không có gì được chạy trên hệ thống sản xuất.
- Vá nóng kernel (S14): không có gì được chạy trên kernel thật. Các đường trạng thái, hoàn tác và cơ chế của bản phân phối được kiểm thử trên dữ liệu mẫu của
/sys/kernel/livepatch,/procvà đầu ra được tài liệu hóa củarpm,dnf,kpatch,provàcanonical-livepatch; các đường gói có chữ ký, cổng rà soát và mirror được kiểm thử với khóa dùng một lần và một mirror giả. Khóa ký, máy dựng và việc phát hành mirror là các bước vận hành của chủ sở hữu và chưa được thực hiện. - SSL thương mại (S13): chỉ được kiểm tra với các chuỗi chứng chỉ mẫu, không bao giờ với một tổ chức cấp chứng chỉ thật; việc đặt mua chưa được xây dựng.
- Các bản sửa bảo mật: hành vi của việc ghim khóa máy chủ với một khóa thật bị thay đổi (máy chờ, node, máy chủ git, đích SFTP hoặc slave DNS), thanh bên, tab và trình sửa cron chỉ đọc của 2087 với vai trò quản trị viên được ủy quyền, đăng nhập lấy mã 2FA với mã thật của ứng dụng xác thực, đăng nhập phpMyAdmin bằng thông tin của chính tài khoản, biểu mẫu cấp quyền, và pgAdmin dưới danh tính của vai trò được cấp chưa được kiểm chứng trên máy đang chạy. Đăng nhập OpenID Connect và thư mục được kiểm thử với các bản thay thế, không phải nhà cung cấp hay thư mục thật.
- Sao lưu, tác vụ nhân bản, node, di chuyển và DNS: các đích S3, SFTP, FTP(S), WebDAV và rclone, tác vụ nhân bản và node với máy chủ thứ hai, di chuyển trực tiếp từ cPanel, Plesk và DirectAdmin, và các nhà cung cấp Route 53, DigitalOcean và PowerDNS được thử v ới dữ liệu mẫu và bản giả, không phải với dịch vụ thật hay máy thứ hai.
- Sao chép cơ sở dữ liệu (B5): bản dump, bộ đọc từ chối bản dump làm giả và việc nạp bằng thông tin đăng nhập riêng của tài khoản đích được kiểm chứng bằng kiểm thử đơn vị (một mẫu
mariadb-dump10.11 thật và các mẫu dump độc hại), và đầu ra của bộ đọc được nạp vào một máy chủ MariaDB 10.11 tạm với thông tin đăng nhập của tài khoản kia. Bản thân lệnh - người dùng hệ thống,runuser,~/my.cnfcủa từng tài khoản, cơ sở dữ liệu panel thật - chưa được chạy trên máy chủ. - Không đổi so với ghi chú 4.1.2 đầu tiên: một lần khởi động lại cho mỗi bản cập nhật,
objectcache loopbackvới một instance bị lộ, các đường MSSQL, ClamAV, FTP, WireGuard và tìm kiếm trên AlmaLinux 10, khởi động cổng trên bản cài mới hoặc khi cập nhật, vòng đăng nhập một lần, và các thay đổi về tạm ngưng, khôi phục sao lưu và bảng điều khiển LiteSpeed.
Trang này có hữu ích không?
- Ghi chú nâng cấp và thay đổi hành vi
- Đã sửa
- Mới
- Tài khoản khách hàng và đại lý
- Đăng nhập, truy cập và công cụ bảo mật
- Chứng chỉ SSL thương mại (S13)
- Vá nóng kernel (S14)
- Sao lưu, khôi phục và di chuyển
- Website và ứng dụng
- E-mail và DNS
- Máy chủ và nền tảng
- Ngôn ngữ, cổng và ứng dụng
- Bảo mật
- Tài liệu
- Hạn chế đã biết
- Chưa kiểm chứng trên hệ thống thật