Như các bạn đã biết thì có nhiều phương pháp để kích hoạt bản quyền cho Windows, Office, ví dụ như crack, byphone,…. trong số đó thì kích hoạt bằng key cũng như máy chủ KMS được xem là an toàn nhất và hợp lệ, được Microsoft chấp nhận. Nếu các bạn chưa biết sử dụng KMS thì có thể xem qua bài này. Còn trong bài ngày hôm nay, mình sẽ hướng dẫn các bạn tự build một KMS Server trên nền tảng Linux (Windows sẽ có bài khác)
Chuẩn Bị
- 1 Máy chạy HĐH Linux, tùy mục đích sử dụng mà chọn máy ảo hay máy thật hay, Distro của Linux, ở đây mình sử dụng Centos 7
- Mạng: tất nhiên ^^, để clone source code về thì lúc cấu hình các bạn cần phải có kết nối Internet, sau đó tùy theo máy chủ dùng cho nội bộ hay public trên Internet mà thiết đặt
- Kiến thức cơ bản về Linux, Command,… nếu bạn là Newbie hãy cố gắng tìm hiểu thêm, trong bài này mình cũng sẽ cố gắng giải thích từng lệnh
- SSH Remote Control: ở đây mình dùng Xshell Manager để control dễ dàng copy, paste,…
Tiến Hành
-
Đảm bảo rằng máy chủ Linux của các bạn đã cài GIT, nếu chưa chạy lệnh như dưới để cài đặt (lưu ý, Centos 7)
sudo yum install git -y
-
Chuyển đến /home để dễ dàng quản lý bằng lệnh
cd /home
-
Tiếp theo clone mã nguồn từ link Github https://github.com/kebe7jun/linux-kms-server về bằng lệnh
sudo git clone https://github.com/kebe7jun/linux-kms-server
-
Chuyển vào thư mục chứa files execute bằng lệnh
cd /linux-kms-server/vlmcsd
-
Để ý files vlmcsd, nó là files chương trình đã biên dịch, copy files execute ra ngoài /home đồng thời đổi tên cho dễ quản lý, bằng lệnh
cp vlmcsd /home && cd /home && mv vlmcsd kms
-
Chạy lệnh sau để kích hoạt KMS Server
sudo ./kms -L 0.0.0.0:4869 -l /home/kms.log
Để mình giải thích chút về các tham số
- -L : ở đây các bạn điền địa chỉ ip và port cho KMS Server, ở ví dụ bên trên mình sử dụng 0.0.0.0 tức là sử dụng cho tất cả địa chỉ ip đang có trên con Linux Server này (trong trường hợp máy chủ có nhiều card mạng/ip mà bạn chỉ muốn đặt cho 1 ip chạy KMS thì điền ip ở đây) còn 4869 là cổng mở cho dịch vụ KMS
- -l : ở đay có nghĩa là ghi log, các bạn có thể bỏ qua thông số này, tuy nhiên mình khuyên là nên thiết lập để dễ giám sát, sau tham số “-l” là đường dẫn chứa files log (ở trên của mình là /home/kms.log)
-
-P <cổng>, nhằm thiết lập cổng cho dịch vụ KMS, tham số “-P” và “-L” không thể đi chung với nhau, mặc định khi bạn thiết lập “-P” thì sẽ sử dụng tất cả các ip của các mạng và mở port chứa sau -P (tương tự “-L” mà dùng 0.0.0.0), ví dụ ở bên dưới là dùng -P mở port 4869. (Lưu ý port là một số nằm trong khoảng 0 – 65535)
./kms -P 4869
- -4 hoặc -6: sử dụng ipv4 hoặc ipv6, mặc định và nếu không có 2 tham số thì sử dụng cả 2 giao thức ipv4 và ipv6 (không đi chung với “-L”)
- -t <giây>: thời gian ngắt kết nối TCP với client connect vào KMS Server, mặc định là 30s
- -d: ngắt kết nối với các client sau ngay sau mỗi lần request tới KMS Server
- -k: không ngắt kết nối tới client sau mỗi lần request (ngược -k, là mặc định)
- -D: chạy dịch vụ KMS ở dạng “foreground”, mặc định thì ở “daemonize” (chạy ngầm)
- -H: sử dụng HwID cho tất cả các product kết nối tới KMS
-
-R: thời gian đề nghị client tự làm mới sự kích hoạt đến từ KMS Server (renewal, tức là làm mới cái hạn quay vòng 180 ngày của KMS đó, nếu để ít hơn 180d thì coi như vĩnh cmn viễn rồi =)) miễn KMS Server còn sống :D), đứng sau -R là một số kèm theo ký hiệu biểu thị: s(giây), m(phút), h(giờ), w(tuần), nếu không có ký hiệu này, mặc định ngầm hiểu là phút, ví dụ
./kms -P 4869 -R3d
Lệnh trên Renew sau 3 ngày, còn lệnh dưới renew sau 3 phút
./kms -P 4869 -R 3
- -A<khoảng thời gian>: là khoảng thời gian mà client tự động thử lại nếu thất bại, mặc định là 120 phút (2 giờ), cấu trúc tương tự như -R
- -s cài đặt KMS như một dịch vụ của Windows, khởi dộng cùng windows
- -S: ngược lại với -s, xóa dịch vụ đã cài
- -U[Domain\Usersname] chỉ cho phép người dùng Username trong miền Domain sử dụng KMS, nếu không có Domain các bạn cũng có thể thay thế bằng LocalUsers
-
Mở port trong tường lửa trên máy chủ để có thể cho client kết nối bằng lệnh (chỉ Centos 7, sử dụng FirewallID)
firewall-cmd --zone=public --add-port=4869/tcp --permanent
Lưu ý: nếu có nhiều Zone thì nên check kỹ trước để tránh nhầm lẫn và port không allow được
-
Tạo Crontab để tự chạy KMS khi server khởi động lại bằng lệnh
crontab -e
@reboot cd /home && sudo ./kms -L 0.0.0.0:4869 -l /home/kms.log
Ấn ESC và gõ “:wq” để lưu files
-
Để đọc files log các bạn có thể dùng lệnh
tail /home/kms.log
- Tận hưởng thành quả, sử dụng 1 PC nào đó chưa Active Windows hoặc Office test thôi =)))
Chúc các bạn thành công ! Bên dưới là Video hướng dẫn cho các bạn chưa làm được.
Credit: https://github.com/kebe7jun/linux-kms-server