Kerberos là một giao thức xác thực mạng sử dụng mật mã khóa đối xứng và yêu cầu sự cho phép từ bên thứ ba đáng tin cậy để xác thực các ứng dụng máy khách-máy chủ. Ban đầu, giao thức này được Viện Công nghệ Massachusetts (MIT) phát triển để bảo vệ các dịch vụ mạng do dự án Athena cung cấp.
Trong thế giới hiện đại, Kerberos thường được sử dụng như một dịch vụ xác thực của bên thứ ba. Điều này có nghĩa là tất cả các máy khách đều tin tưởng vào phán đoán của Kerberos về danh tính của máy khách khác.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập xác thực Kerberos giữa hai máy chủ Ubuntu 18.04. Chúng tôi sẽ cài đặt và định cấu hình máy chủ Kerberos trên máy chủ Ubuntu, sau đó cài đặt máy khách Kerberos trên máy chủ kia. Cuối cùng, chúng ta sẽ kiểm tra xác thực của dịch vụ SSH với máy chủ Kerberos.
Điều kiện tiên quyết
Những gì chúng ta sẽ làm:
Thay đổi FQDN của máy chủ Kerberos bằng lệnh sau.
Sau đó, chỉnh sửa tệp '/etc/hosts' bằng trình soạn thảo vim.
Thay đổi địa chỉ IP và FQDN bằng địa chỉ của riêng bạn và dán vào đó.
Lưu và đóng.
Bây giờ hãy kiểm tra bằng lệnh 'ping' bên dưới và đảm bảo FQDN được phân giải thành đúng địa chỉ IP.
Cài đặt máy chủ Kerberos bằng lệnh apt sau.
Trong quá trình cài đặt, bạn sẽ được hỏi về Kerberos Realm, máy chủ Kerberos của Realm và Admin máy chủ.
Theo mặc định, Kerberos sẽ sử dụng tên miền máy chủ Kerberos làm REALM, 'AHMAD.IO'.
Máy chủ Kerberos là 'krb5.ahmad.io'.
Và máy chủ Quản trị giống như máy chủ Kerberos 'krb5.ahmad.io'.
Sau khi cài đặt hoàn tất, bạn sẽ thấy thông báo dịch vụ Kerberos không chạy được. Không sao cả vì chúng ta sẽ cấu hình ở giai đoạn tiếp theo.
Nhập mật khẩu mạnh của bạn và mật khẩu REALM sẽ được tạo tại tệp '/etc/krb5kdc/stash'.
Sau đó, chúng ta cần tạo người dùng quản trị (admin principal) cho máy chủ KDC Kerberos, thêm tên máy chủ Kerberos vào cơ sở dữ liệu, sau đó tạo keytab cho máy chủ Kerberos.
Chạy giao diện dòng lệnh 'kadmin.local' cho lệnh quản trị Kerberos bên dưới.
Tạo một người dùng quản trị chính mới có tên là 'root'.
Nhập mật khẩu mạnh cho quản trị viên chính 'root'.
Thêm máy chủ KDC Kerberos vào cơ sở dữ liệu và tạo tệp keytab cho máy chủ KDC.
Sau đó đóng tiện ích 'kadmin.local'.
Tiếp theo, chúng ta cần thêm quản trị viên chính 'root' vào danh sách kiểm soát truy cập bằng cách chỉnh sửa tệp '/etc/krb5kdc/kadm5.acl'.
Thêm cấu hình sau.
Lưu và đóng cấu hình, sau đó khởi động lại dịch vụ Kerberos.
Và cấu hình máy chủ KDC Kerberos đã hoàn tất.
- Cấu hình FQDN
Cấu hình FQDN trên máy khách bằng lệnh sau.
Sau đó, chỉnh sửa tệp '/etc/hosts' bằng trình soạn thảo vim.
Dán cả máy chủ KDC Kerberos và máy khách như bên dưới.
Lưu và đóng.
- Cài đặt Kerberos Client
Cài đặt các gói Kerberos client bằng cách chạy lệnh apt sau.
Trong quá trình cài đặt, bạn sẽ được hỏi về Kerberos Realm, máy chủ Kerberos của Realm và máy chủ Admin.
Theo mặc định, Kerberos sẽ sử dụng tên miền máy chủ Kerberos làm REALM, 'AHMAD.IO'.
Máy chủ Kerberos là 'krb5.ahmad.io'.
Và máy chủ Admin giống như máy chủ Kerberos 'krb5.ahmad.io'.
Và quá trình cài đặt cho máy khách Kerberos đã hoàn tất.
- Cấu hình máy khách Kerberos
Từ máy khách, kết nối với máy chủ KDC Kerberos bằng lệnh 'kadmin'.
Và bạn sẽ được yêu cầu nhập mật khẩu theo nguyên tắc 'root/admin'. Nhập mật khẩu và bạn sẽ được đăng nhập vào hệ thống quản trị KDC Kerberos.
Bây giờ hãy thêm FQDN của máy khách 'client1.ahmad.io' vào cơ sở dữ liệu Kerberos và thêm tệp keytab cho máy khách.
Sau đó, đóng giao diện quản trị kadmin Kerberos.
Và quá trình cấu hình máy khách Kerberos đã hoàn tất.
- Thiết lập máy chủ 'krb5.ahmad.io'
Tạo người dùng hệ thống mới có tên là 'ammar'.
Đăng nhập vào quản trị KDC Kerberos và thêm người dùng chính mới có tên là 'ammar'.
Đóng giao diện quản trị Kerberos và chỉnh sửa cấu hình ssh '/etc/ssh/sshd_config'.
Bỏ ghi chú 'GSSAPIAuthentication' và bật nó bằng cách thay đổi giá trị thành ''.
Lưu và đóng cấu hình, sau đó khởi động lại dịch vụ ssh.
- Thiết lập máy 'client1.ahmad.io'
Thêm người dùng hệ thống mới 'ammar' trên máy khách và đăng nhập vào đó.
Sau đó, khởi tạo người dùng Kerberos chính 'ammar'.
Nhập mật khẩu của người dùng và sau đó kiểm tra Vé khả dụng bằng lệnh sau.
Và bạn sẽ thấy kết quả sau.
Bây giờ bạn có thể kết nối Máy chủ 'krb5.ahmad.io' sử dụng xác thực SSH Kerberos.
Và bạn sẽ được kết nối với máy chủ 'krb5.ahmad.io' thông qua SSH với xác thực Kerberos.
Dưới đây là Nhật ký SSH sau khi đăng nhập vào máy chủ.
Cuối cùng, quá trình cài đặt và cấu hình máy chủ và máy khách Kerberos trên Ubuntu 18.04 đã hoàn tất thành công.
Trong thế giới hiện đại, Kerberos thường được sử dụng như một dịch vụ xác thực của bên thứ ba. Điều này có nghĩa là tất cả các máy khách đều tin tưởng vào phán đoán của Kerberos về danh tính của máy khách khác.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập xác thực Kerberos giữa hai máy chủ Ubuntu 18.04. Chúng tôi sẽ cài đặt và định cấu hình máy chủ Kerberos trên máy chủ Ubuntu, sau đó cài đặt máy khách Kerberos trên máy chủ kia. Cuối cùng, chúng ta sẽ kiểm tra xác thực của dịch vụ SSH với máy chủ Kerberos.
Điều kiện tiên quyết
- Máy chủ Ubuntu 18.0410.10.10.15 krb5.ahmad.io krb5
- 10.10.10.16 client1.ahmad.io client1
Những gì chúng ta sẽ làm:
- Thiết lập tệp FQDN
- Cài đặt KDC Kerberos Máy chủ
- Cấu hình Máy chủ Kerberos KDC
- Cài đặt và cấu hình Máy khách Kerberos
- Kiểm tra
Bước 1 - Thiết lập FQDN
Trước tiên, chúng ta phải cấu hình FQDN trên máy chủ Kerberos và sau đó chỉnh sửa tệp '/etc/hosts' của máy chủ.Thay đổi FQDN của máy chủ Kerberos bằng lệnh sau.
Mã:
hostnamectl set-hostname krb5.ahmad.io
Mã:
vim /etc/hosts
Mã:
10.10.10.15 krb5.ahmad.io krb5
Bây giờ hãy kiểm tra bằng lệnh 'ping' bên dưới và đảm bảo FQDN được phân giải thành đúng địa chỉ IP.
Mã:
ping -c 3 $(hostname -f)
Bước 2 - Cài đặt Máy chủ Kerberos KDC
Bây giờ chúng ta sẽ cài đặt máy chủ Kerberos trên máy chủ 'krb5' có địa chỉ IP '10.10.10.15' và FQDN là 'krb5.ahmad.io'.Cài đặt máy chủ Kerberos bằng lệnh apt sau.
Mã:
sudo apt install krb5-kdc krb5-admin-server krb5-config -y
Theo mặc định, Kerberos sẽ sử dụng tên miền máy chủ Kerberos làm REALM, 'AHMAD.IO'.
Máy chủ Kerberos là 'krb5.ahmad.io'.
Và máy chủ Quản trị giống như máy chủ Kerberos 'krb5.ahmad.io'.
Sau khi cài đặt hoàn tất, bạn sẽ thấy thông báo dịch vụ Kerberos không chạy được. Không sao cả vì chúng ta sẽ cấu hình ở giai đoạn tiếp theo.
Bước 3 - Cấu hình Máy chủ KDC Kerberos
Bây giờ hãy tạo một mật khẩu chính mạnh mới cho Kerberos REALM bằng lệnh sau.
Mã:
sudo krb5_newrealm
Sau đó, chúng ta cần tạo người dùng quản trị (admin principal) cho máy chủ KDC Kerberos, thêm tên máy chủ Kerberos vào cơ sở dữ liệu, sau đó tạo keytab cho máy chủ Kerberos.
Chạy giao diện dòng lệnh 'kadmin.local' cho lệnh quản trị Kerberos bên dưới.
Mã:
sudo kadmin.local
Mã:
addprinc root/admin
Thêm máy chủ KDC Kerberos vào cơ sở dữ liệu và tạo tệp keytab cho máy chủ KDC.
Mã:
addprinc -randkey host/krb5.ahmad.io
ktadd host/krb5.ahmad.io
Mã:
quit
Tiếp theo, chúng ta cần thêm quản trị viên chính 'root' vào danh sách kiểm soát truy cập bằng cách chỉnh sửa tệp '/etc/krb5kdc/kadm5.acl'.
Mã:
vim /etc/krb5kdc/kadm5.acl
Mã:
root/admin *
Mã:
sudo systemctl restart krb5-admin-server.service
Bước 4 - Cài đặt và cấu hình Kerberos Client
Trong bước này, chúng ta sẽ cài đặt máy khách Kerberos trên máy chủ Ubuntu với địa chỉ IP '10.10.10.16' và tên máy chủ 'client1'.- Cấu hình FQDN
Cấu hình FQDN trên máy khách bằng lệnh sau.
Mã:
hostnamectl set-hostname client1.ahmad.io
Mã:
vim /etc/hosts
Mã:
10.10.10.15 krb5.ahmad.io krb5
10.10.10.16 client1.ahmad.io client1
- Cài đặt Kerberos Client
Cài đặt các gói Kerberos client bằng cách chạy lệnh apt sau.
Mã:
sudo apt install -y krb5-user libpam-krb5 libpam-ccreds auth-client-config
Theo mặc định, Kerberos sẽ sử dụng tên miền máy chủ Kerberos làm REALM, 'AHMAD.IO'.
Máy chủ Kerberos là 'krb5.ahmad.io'.
Và máy chủ Admin giống như máy chủ Kerberos 'krb5.ahmad.io'.
Và quá trình cài đặt cho máy khách Kerberos đã hoàn tất.
- Cấu hình máy khách Kerberos
Từ máy khách, kết nối với máy chủ KDC Kerberos bằng lệnh 'kadmin'.
Mã:
kadmin
Bây giờ hãy thêm FQDN của máy khách 'client1.ahmad.io' vào cơ sở dữ liệu Kerberos và thêm tệp keytab cho máy khách.
Mã:
addprinc -randkey host/client1.ahmad.io
ktadd host/client1.ahmad.io
Mã:
quit
Bước 5 - Kiểm tra
Với mục đích kiểm tra này, chúng ta sẽ cấu hình xác thực SSH bằng Kerberos. Máy khách 'client1.ahmad.io' sẽ kết nối với máy chủ 'krb5.ahmad.io' thông qua SSH với xác thực Kerberos.- Thiết lập máy chủ 'krb5.ahmad.io'
Tạo người dùng hệ thống mới có tên là 'ammar'.
Mã:
useradd -m -s /bin/bash ammar
Mã:
kadmin.local
addprinc ammar
Mã:
vim /etc/ssh/sshd_config
Mã:
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
Mã:
systemctl restart sshd
- Thiết lập máy 'client1.ahmad.io'
Thêm người dùng hệ thống mới 'ammar' trên máy khách và đăng nhập vào đó.
Mã:
useradd -m -s /bin/bash ammar
su - ammar
Mã:
kinit ammar
Mã:
klist
Bây giờ bạn có thể kết nối Máy chủ 'krb5.ahmad.io' sử dụng xác thực SSH Kerberos.
Mã:
ssh krb5.ahmad.io
Dưới đây là Nhật ký SSH sau khi đăng nhập vào máy chủ.
Cuối cùng, quá trình cài đặt và cấu hình máy chủ và máy khách Kerberos trên Ubuntu 18.04 đã hoàn tất thành công.