Trong hướng dẫn này sẽ hướng dẫn cách thiết lập xác thực Linux với FreeIPA trên CentOS 7. Sau đó, bạn có thể cấu hình các client, cho phép người dùng FreeIPA đăng nhập bằng thông tin đăng nhập IPA của họ.
Điều kiện để thiết lập xác thực Linux với FreeIPA trên CentOS 7
Để thực hiện theo hướng dẫn này, bạn cần:
- Một server CentOS 7 với ít nhất 1 GB RAM. Sử dụng user root xuyên suốt bài hướng dẫn (với mục đích quản lý các user khác, không cần thêm user thường vào hệ thống).
- Cần kích hoạt và thiết lập sẵn tường lửa (hỗ trợ FreeIPA xử lý bảo mật các dữ liệu nhạy cảm).
- Một domain để sử dụng cho server và các client. Bạn có thể lựa chọn đăng ký tên miền ở Vietnix nếu chưa có.
- Các bản record DNS được thiết lập cho server của bạn gồm:
- Bản record A có tên server của bạn (ví dụ:
ipa.example.com
) trỏ đến địa chỉ IPv4 của server. - Bản record AAAA với tên server của bạn trỏ đến địa chỉ IPv6 của server, trong trường hợp bạn muốn server của mình có thể truy cập được qua IPv6.
- Bản record A có tên server của bạn (ví dụ:
Bước 1: Chuẩn bị IPA Server
Để chuẩn bị server trước khi cài đặt FreeIPA, bạn cần thực hiện một số yêu cầu như đặt tên hostname cho server sao cho khớp với fully qualified domain name (FQDN) để FreeIPA có thể hoạt động được. Trong hướng dẫn này, tên miền FQDN được sử dụng là ipa.example.com
. Bạn có thể thiết lập tên hostname khi tạo server hoặc sau đó từ dòng lệnh bằng cách sử dụng lệnh hostname
, ví dụ như sau:
hostname ipa.example.org
Cập nhật repository và firewall trên server bằng cách chạy các lệnh sau:
yum update
Tiếp theo, mở các port cần thiết cho FreeIPA trong tường lửa:
firewall-cmd --permanent --add-port={80/tcp,443/tcp,389/tcp,636/tcp,88/tcp,464/tcp,53/tcp,88/udp,464/udp,53/udp,123/udp}
Và khởi động lại tường lửa để các thay đổi có hiệu lực:
sudo firewall-cmd --reload
Để xác minh rằng các tên miền DNS được phân giải chính xác. Bạn có thể sử dụng lệnh dig
để kiểm tra. Để sử dụng lệnh dig
, bạn cần cài đặt package bind-utils
bằng lệnh:
yum install bind-utils
Sau đó, bạn có thể sử dụng lệnh dig
để kiểm tra các bản ghi DNS. Ví dụ, để kiểm tra A record:
dig +short ipa.example.org A
Lệnh này sẽ trả về ipv4
của bạn.
Nếu server của bạn hỗ trợ IPv6, bạn cũng có thể kiểm tra AAAA record bằng lệnh:
dig +short ipa.example.com AAAA
Lệnh này sẽ trả về ipv6
của bạn.
Bạn cũng nên kiểm tra reverse lookup để đảm bảo rằng tên miền có thể được phân giải từ địa chỉ IP. Bạn có thể kiểm tra bằng các lệnh sau:
dig +short -x your_server_ipv4
dig +short -x your_server_ipv6
Trong đó your_server_ipv4
và your_server_ipv6
là địa chỉ IP của server của bạn. Lệnh trên sẽ khiến cả 2 trả về ipa.example.com
.
FreeIPA sử dụng rất nhiều DNS, vì vậy trong bước tiếp theo bạn sẽ xác minh các yêu cầu DNS cụ thể mà FreeIPA cần để hoạt động đúng cách.
Bước 2: Cài đặt DNS
Tất cả các server chạy FreeIPA đều phải sử dụng tên miền đầy đủ (FQDN) làm tên host, mà bạn đã thiết lập trong bước trước. Ngoài ra, hostname của mỗi server phải được chuyển thành địa chỉ IP của FQDN, không phải localhost
.
Lưu ý: Nếu bạn đang cài đặt FreeIPA trên một server trong mạng LAN của bạn, hãy sử dụng các địa chỉ IP private thay vì địa chỉ IP public.
Để tìm địa chỉ IP riêng trên một server, bạn có thể sử dụng lệnh ip addr show
hoặc ifconfig
:
ifconfig
Lệnh này sẽ cho ra Output như sau:
eth0 Link encap:Ethernet HWaddr 00:0c:29:b7:5c:f6
inet addr:192.168.1.105 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb7:5cf6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2800 errors:0 dropped:0 overruns:0 frame:0
TX packets:971 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:248809 (248.8 KB) TX bytes:74614 (74.6 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:91 errors:0 dropped:0 overruns:0 frame:0
TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:6972 (6.9 KB) TX bytes:6972 (6.9 KB)
Trong đó, địa chỉ IPv4 xuất hiện sau inet addr, và địa chỉ IPv6 xuất hiện sau inet6 addr. Bạn cũng có thể thấy các địa chỉ IP private bổ sung nếu bạn đã kích hoạt mạng private. Để phân biệt giữa địa chỉ IP public và địa chỉ IP private thì địa chỉ IPv4 private sẽ nằm trong các dải sau: 192.168.*.*
, 10.*.*.*
, hoặc 172.16.*.*
đến 172.31.*.*
. Còn địa chỉ IPv6 private luôn bắt đầu bằng tiền tố fe80::
.
Bây giờ bạn cần thay đổi file host để trỏ hostname của server đến địa chỉ IP bên ngoài. Tập tin hosts nằm trong /etc/hosts
được dùng để ánh xạ tên miền thành địa chỉ IP cục bộ trên máy tính. Mở file này với nano
bằng lệnh:
nano /etc/hosts
Tìm đến dòng có chứa tên hostname của server là 127.0.0.1
:
. . .
# The following lines are desirable for IPv4 capable hosts
127.0.0.1 ipa.example.com ipa.example.com
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4
. . .
Thay đổi 127.0.0.1
thành địa chỉ IPv4 của server bạn tại phần your_server_ipv4
.
. . .
# The following lines are desirable for IPv4 capable hosts
your_server_ipv4 ipa.example.com ipa.example.com
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4
. . .
Nếu bạn đã kích hoạt IPv6, bạn cũng cần chỉnh sửa mapping IPv6 tương tự, thay đổi dòng ::1
với tên hostname của bạn.
...
# The following lines are desirable for IPv6 capable hosts
::1 ipa.example.com ipa.example.com
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
...
Thay đổi ::1
thành địa chỉ IPv6 của server bạn tại phần your_server_ipv6
.
...
# The following lines are desirable for IPv6 capable hosts
your_server_ipv6 ipa.example.com ipa.example.com
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
...
Lưu và thoát khỏi file sau khi sửa đổi.
Mặc định, mỗi khi hệ thống khởi động, CentOS sử dụng cấu hình trong /etc/cloud/templates/hosts.redhat.tmpl
để tạo ra file /etc/hosts
. Để thực hiện thay đổi cấu hình này vĩnh viễn, bạn cần phải chỉnh sửa file đó.
Tiến hành mở file bằng nano
:
nano /etc/cloud/templates/hosts.redhat.tmpl
Thay đổi dòng 127.0.0.1 ${fqdn} ${hostname}
thành địa chỉ IPv4 của server bạn tại phần your_server_ipv4
.
...
# The following lines are desirable for IPv4 capable hosts
your_server_ipv4 ${fqdn} ${hostname}
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4
...
Tương tự, nếu bạn đang sử dụng IPv6, hãy thay đổi dòng ::1 ${fqdn} ${hostname}
bằng địa chỉ IPv6 của bạn.
...
# The following lines are desirable for IPv6 capable hosts
your_server_ipv6 ${fqdn} ${hostname}
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
...
Lưu và đóng file sau khi chỉnh sửa.
Tiếp theo, bạn sẽ cấu hình khởi tạo số ngẫu nhiên trong CentOS. Điều này cho phép FreeIPA thực hiện các chức năng mật mã hóa cần thiết cho quá trình xác thực.
Trong quá trình cài đặt và thiết lập xác thực Linux tập trung bằng FreeIPA trên CentOS 7, việc sử dụng một môi trường VPS là lựa chọn tối ưu. Và một trong những nhà cung cấp VPS đáng tin cậy trên thị trường Việt Nam mà bạn nên cân nhắc lựa chọn là Vietnix.
Vietnix cung cấp một loạt các gói VPS đa dạng cấu hình và giá thành như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS NVMe. Nhờ đó, bạn có thể chọn gói phù hợp với nhu cầu và ngân sách của mình.
Với Vietnix, bạn sẽ được trải nghiệm sự ổn định và tốc độ của hạ tầng máy chủ mạnh mẽ, đồng thời được hỗ trợ 247 bởi đội ngũ chuyên gia chuyên nghiệp.
Đặc biệt, việc sử dụng VPS của Vietnix trong quá trình thiết lập xác thực Linux tập trung bằng FreeIPA trên CentOS 7 sẽ mang lại sự linh hoạt và khả năng mở rộng cho bạn. Bạn có thể dễ dàng cấu hình và tận dụng các tính năng của FreeIPA trên một môi trường VPS ổn định và an toàn.
Liên hệ ngay đến Vietnix để được tư vấn lựa chọn gói VPS phù hợp với bạn.
Bước 3: Cấu hình bộ tạo số ngẫu nhiên
Thiết lập FreeIPA yêu cầu rất nhiều dữ liệu ngẫu nhiên cho các hoạt động mã hóa. Theo mặc định, máy ảo sẽ bị cạn kiệt random data hoặc entropy rất nhanh. Để giải quyết vấn đề này, bạn sẽ sử dụng rngd
, một phần mềm khởi tạo số ngẫu nhiên. rngd
hoạt động bằng cách lấy dữ liệu từ các thiết bị phần cứng được kết nối với server và đưa nó vào bộ tạo số ngẫu nhiên của kernel.
Trước tiên, cài đặt rngd
:
yum install rng-tools
Sau đó, khởi động rngd
:
systemctl start rngd
Bật dịch vụ được tự động khởi động khi khởi động hệ thống bằng lệnh:
systemctl enable rngd
Cuối cùng, xác nhận rằng rngd
đang chạy:
systemctl status rngd
Kết quả trả về sẽ bao gồm active (running)
đã được tô đậm màu xanh lá cây.
Bước 4: Cài đặt server FreeIPA
Tiến hành tiếp tục cài đặt ipa-server
bằng FreeIPA server package sử dụng lệnh:
yum install ipa-server
Sau đó, chạy lệnh cài đặt FreeIPA bên dưới. Điều này sẽ chạy một script sẽ yêu cầu bạn chọn các tùy chọn cấu hình và cài đặt FreeIPA.
ipa-server-install
Ngoài xác thực, FreeIPA còn có khả năng quản lý các bản ghi DNS cho các server. Điều này có thể khiến việc cung cấp và quản lý server dễ dàng hơn. Trong hướng dẫn này, bạn sẽ không sử dụng DNS tích hợp của FreeIPA bằng cách nhập vào no như bên dưới.
Installation script prompt
Do you want to configure integrated DNS (BIND)? [no]: no
Tiếp theo, bạn cần nhập tên server, tên domain và tên cho realm Kerberos. Kerberos là một giao thức xác thực mà FreeIPA sử dụng ở phía trong hệ thống cho các host có vai trò xác thực.
Nên sử dụng tên domain của bạn làm tên realm Kerberos. Việc đặt tên khác sẽ gây ra vấn đề với tích hợp Active Directory của FreeIPA và có thể gây ra các vấn đề khác.
Lưu ý: Không sử dụng tên miền root (example.com
) của bạn làm tên miền IPA. Điều này có thể gây ra các vấn đề DNS.
Installation script prompt
Server host name [ipa.example.org]: ipa.example.org
Please confirm the domain name [example.org]: ipa.example.org
Please provide a realm name [EXAMPLE.ORG]: IPA.EXAMPLE.ORG
Thay thế các host name, domain name và realm name bằng các tên mà bạn muốn.
Sau đó, tạo mật khẩu cho người quản lý thư mục LDAP. Điều này là cần thiết cho chức năng LDAP của FreeIPA. Tiếp đó là mật khẩu quản trị IPA được sử dụng khi đăng nhập vào FreeIPA với tư cách người quản trị. Việc sử dụng các mật khẩu được tạo ngẫu nhiên và an toàn ở đây được ưu tiên đề xuất, vì toàn bộ bảo mật hệ thống của bạn phụ thuộc rất nhiều vào chúng.
Cuối cùng là xác nhận cấu hình và chạy trình cài đặt:
Installation script prompt
Continue to configure the system with these values? [no]: yes
Quá trình cài đặt có thể mất vài phút tùy thuộc vào tốc độ server của bạn.
Vậy là bạn đã hoàn tất quá trình cài đặt server, tiếp theo cần phải kiểm tra xem server có hoạt động hay không.
Bước 5: Kiểm tra các chức năng của server FreeIPA
Đầu tiên, xác minh rằng realm Kerberos đã được cài đặt đúng bằng cách hãy thử khởi tạo một thông báo Kerberos cho người dùng quản trị viên:
kinit admin
Nếu mọi thứ hoạt động bình thường, lệnh trên sẽ yêu cầu bạn nhập mật khẩu quản trị IPA mà bạn đã nhập trong quá trình cài đặt.
Tiếp theo, kiểm tra xem server IPA có đang hoạt động hay không:
ipa user-find admin
Nếu output bạn nhận được giống với bên dưới thì mọi thứ đã hoạt động tốt:
Output
1 user matched
User login: admin
Last name: Administrator
Home directory: /home/admin
Login shell: /bin/bash
Principal alias: admin@IPA.EXAMPLE.COM
UID: 494800000
GID: 494800000
Account disabled: False
Number of entries returned 1
Bạn cũng có thể truy cập giao diện web tại https://ipa.example.com
.
Trong giao diện web, hãy đăng nhập với tư cách người dùng admin. Username sẽ là admin và Password sẽ là mật khẩu quản trị IPA bạn đã đặt trước đó. Trang sẽ load Authenticating… một lúc và sau đó bạn sẽ được đưa đến trang chính của IPA, trông giống như thế này:
Cuối cùng, hãy thử khám phá một số tính năng của FreeIPA bằng cách tạo một người dùng mới.
Bước 6: Cấu hình người dùng IPA
FreeIPA có một bộ tính năng quản lý người dùng và chính sách rất đầy đủ. Tương tự như người dùng Unix tiêu chuẩn, người dùng FreeIPA có thể thuộc về cùng nhóm. Các nhóm người dùng hoặc người dùng cá nhân có thể được cho phép hoặc từ chối truy cập vào các host (client machines) hoặc các nhóm server (hostgroup) dựa trên các chính sách.
FreeIPA cũng có thể quản lý quyền truy cập sudo, các nhóm người dùng hoặc người dùng cá nhân có thể được cấp quyền truy cập sudo trên các host hoặc host group.
Hướng dẫn này sẽ chỉ giới thiệu cách thêm người dùng mới để bạn làm quen. Để thêm 1 người dùng, nhấp vào tab Identity sau đó nhấp vào Users.
Tab này sẽ hiển thị một bảng các người dùng. Nhấp vào nút + Add phía trên bảng để thêm người dùng mới. Điền các trường bắt buộc (như tên và họ) trong biểu mẫu, sau đó nhấp vào Add để thêm người dùng hoặc Add and edit để cấu hình chi tiết nâng cao.
Đây là những gì một quản trị viên thấy khi xem chi tiết thông tin người dùng:
Người dùng thông thường cũng có thể đăng nhập vào giao diện người dùng IPA. Họ sẽ có thể xem quyền của mình và chỉnh sửa chi tiết cá nhân. Người dùng mới sẽ được yêu cầu thay đổi mật khẩu lần đầu tiên khi đăng nhập vào một máy IPA.
Điều này hoạt động trong giao diện người dùng IPA cũng như qua SSH. Ngoài ra còn có một tính năng hữu ích khác là khả năng thêm các khóa SSH. Người dùng có thể tải lên các khóa SSH công khai của họ và cho phép truyền ra các máy IPA, cho phép đăng nhập không cần mật khẩu. Người dùng sau đó có thể loại bỏ khóa SSH bất cứ lúc nào mà không cần phải lo lắng về việc nó vẫn còn tồn tại trên các servers cá nhân.
Vietnix là nhà cung cấp dịch vụ hosting, VPS tốc độ cao có công nghệ chống DDoS độc quyền tại Việt Nam. Với phương châm lấy sự thành công của khách hàng làm mục tiêu để phục vụ, Vietnix tập trung vào việc phát triển tốc độ, tính ổn định của hạ tầng và nâng cao chất lượng hỗ trợ khách hàng.
Những thế mạnh của Vietnix phải kể đến đó là:
- Hơn 11 năm kinh nghiệm cung cấp hosting, VPS.
- Đồng hành cùng hơn 50.000 khách hàng.
- Hơn 100.000 dịch vụ đã được kích hoạt.
- 97% khách hàng sau khi sử dụng dịch vụ đánh giá 5 sao.
- 89% khách hàng duy trì sử dụng dịch vụ đến thời điểm hiện tại.
- Đạt giải thưởng Thương hiệu Việt Nam xuất sắc 2022.
Thông tin liên hệ:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
Lời kết
Vậy là bạn đã cài đặt thành công máy chủ FreeIPA. Ngoài ra, FreeIPA cũng là một máy chủ LDAP, cho phép bạn xác thực các dịch vụ hỗ trợ LDAP với máy chủ FreeIPA của mình. Bạn có thể quản lý người dùng, nhóm người dùng và chính sách truy cập thông qua giao diện người dùng hoặc dòng lệnh của FreeIPA. Đối với việc quản lý quyền truy cập root, bạn có thể sử dụng quy tắc sudo. FreeIPA là một công cụ xác thực linh hoạt và các bước tiếp theo phụ thuộc vào cách bạn sử dụng như thế nào.