Thứ năm, 15/12/2016 | 00:00 GMT+7

Cách thiết lập xác thực Linux tập trung với FreeIPA trên CentOS 7

FreeIPA là một giải pháp bảo mật open-souce cho Linux cung cấp khả năng quản lý account và xác thực tập trung, tương tự như Active Directory của Microsoft. FreeIPA được xây dựng dựa trên nhiều dự án open-souce bao gồm Server Thư mục 389, MIT Kerberos và SSSD.

FreeIPA có các ứng dụng client cho CentOS 7, Fedora và Ubuntu 14.04 / 16.04. Các ứng dụng client này làm cho việc thêm máy vào domain IPA của bạn khá đơn giản. Các hệ điều hành khác có thể xác thực với FreeIPA bằng SSSD hoặc LDAP.

Trong hướng dẫn này, ta sẽ cài đặt server FreeIPA trên server CentOS 7. Sau đó, bạn có thể cấu hình các client , cho phép user FreeIPA đăng nhập bằng thông tin đăng nhập IPA của họ.

Sau khi làm theo hướng dẫn này, bạn có thể cấu hình client FreeIPA trên Ubuntu 16.04 hoặc cấu hình client FreeIPA trên CentOS 7 .

Yêu cầu

Để làm theo hướng dẫn này, bạn cần :

  • Một server CentOS 7 với ít nhất 1 GB RAM. Theo mặc định, CentOS 7 chỉ sử dụng user root. Vì ta sẽ sử dụng FreeIPA để quản lý user nên không cần thiết phải thêm user khác theo cách thủ công. Bạn chỉ cần làm theo hướng dẫn này với quyền là user root.

  • Tường lửa được bật trên server của bạn, bạn có thể cài đặt tường lửa theo bước firewall trong hướng dẫn Các bước được đề xuất bổ sung cho CentOS 7 . Điều này rất được khuyến khích vì FreeIPA xử lý thông tin đăng nhập nhạy cảm của user .

  • Một domain đã đăng ký đầy đủ để sử dụng cho server và client . Bạn có thể mua một cái trên Namecheap hoặc nhận một cái miễn phí trên Freenom .

  • Các bản ghi DNS sau được cài đặt cho server của bạn. Bạn có thể làm theo hướng dẫn tên server này để biết chi tiết về cách thêm chúng.

    • Bản ghi A với tên server của bạn (ví dụ: ipa. example.com ) trỏ đến địa chỉ IPv4 của server của bạn.
    • Bản ghi AAAA với tên server của bạn trỏ đến địa chỉ IPv6 của server , nếu bạn muốn server của bạn có thể truy cập được qua IPv6.
  • Tùy chọn, editor nano được cài đặt với yum install nano . CentOS đi kèm với editor vi theo mặc định, nhưng nano có thể thân thiện với user hơn.

Bước 1 - Chuẩn bị Server IPA

Trước khi bắt đầu cài đặt bất cứ thứ gì, ta cần thực hiện một vài thao tác đảm bảo server đã sẵn sàng chạy FreeIPA. Cụ thể, ta sẽ đặt tên server , cập nhật các gói hệ thống, kiểm tra xem các bản ghi DNS từ các yêu cầu đã được phổ biến chưa và đảm bảo firewall sẽ cho phép lưu lượng truy cập vào FreeIPA.

Để bắt đầu, tên server của server của bạn cần phải trùng với domain đủ điều kiện (FQDN) của bạn để FreeIPA hoạt động chính xác. Ta sẽ sử dụng ipa. example.com với quyền là FQDN trong suốt hướng dẫn này.

Bạn có thể đặt tên server khi tạo server hoặc đặt nó từ dòng lệnh sau khi server được tạo, bằng cách sử dụng lệnh hostname :

  • hostname ipa.example.org

Bây giờ, hãy cập nhật repository với yum .

  • yum update

Tiếp theo, mở các cổng cần thiết cho FreeIPA trong firewall .

  • 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}

Cập nhật firewall để các thay đổi có hiệu lực.

  • firewall-cmd --reload

Cuối cùng, bạn cần xác minh các tên DNS phân giải đúng cách. Bạn có thể sử dụng lệnh dig cho việc này. Cài đặt gói bind-utils để nhận dig và các tiện ích kiểm tra DNS khác.

  • yum install bind-utils

Sau đó, sử dụng dig để kiểm tra bản ghi A.

  • dig +short ipa.example.org A

Kết quả sẽ trả về your_server_ipv4 .

Nếu bạn đã bật IPv6, bạn có thể kiểm tra bản ghi AAAA theo cách tương tự.

  • dig +short ipa.example.org AAAA

Kết quả sẽ trả về your_server_ipv6 .

Bạn cũng có thể kiểm tra tra cứu ngược lại. Điều này kiểm tra xem bạn có thể phân giải tên server từ địa chỉ IP hay không.

  • dig +short -x your_server_ipv4
  • dig +short -x your_server_ipv6

Cả hai đều sẽ trả về ipa. example.com .

FreeIPA sử dụng nhiều DNS, vì vậy trong bước tiếp theo, ta sẽ đảm bảo server của bạn đáp ứng các yêu cầu DNS cụ thể mà FreeIPA cần để hoạt động bình thường.

Bước 2 - Cài đặt DNS

Tất cả các máy chạy FreeIPA phải sử dụng domain đủ điều kiện (FQDN) làm tên server của chúng mà ta đã cài đặt ở bước trước. Ngoài ra, tên server của mỗi server phải phân giải thành địa chỉ IP của nó, không phải server localhost .

Lưu ý : Nếu bạn đang cài đặt FreeIPA trên server trong mạng LAN của bạn , hãy sử dụng IP riêng thay thế.

Trên DigitalOcean, bạn có thể xem các địa chỉ IP công khai của server của bạn trên control panel . Bạn cũng có thể tìm địa chỉ IP của server bằng lệnh ip .

  • ip addr show

Điều này sẽ tạo ra kết quả tương tự như sau:

Output
. . . 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff inet 111.111.111.111/18 brd 111.111.111.255 scope global eth0 valid_lft forever preferred_lft forever inet6 1111:1111:1111:1111::1111:1111/64 scope global valid_lft forever preferred_lft forever . . .

Địa chỉ IPv4 xuất hiện ngay sau inet và địa chỉ IPv6, nếu bạn đã bật nó, sẽ xuất hiện sau inet6 . Bạn cũng có thể thấy các địa chỉ IP riêng tư bổ sung nếu bạn đã bật mạng riêng tư; bạn có thể bỏ qua những địa chỉ này. Để phân biệt giữa địa chỉ IP công cộng và riêng tư, hãy lưu ý địa chỉ IPv4 riêng tư sẽ nằm trong các dải sau: 192.168.*.* , 10.*.*.* Hoặc 172.16.*.* Đến 172.31.*.* . Địa chỉ IPv6 riêng sẽ luôn bắt đầu bằng tiền tố fe80:: .

Bây giờ ta cần thay đổi file server để trỏ tên server của server đến địa chỉ IP bên ngoài của nó. Tệp hosts, /etc/hosts , ánh xạ domain với địa chỉ IP local trên máy. Mở file này bằng nano hoặc editor yêu thích của bạn.

  • nano /etc/hosts

Tìm dòng có tên server của bạn sau 127.0.0.1 :

/ etc / hosts
. . . # 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.01 thành địa chỉ IPv4 server của bạn.

Đã sửa đổi / etc / hosts
. . . # 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 đã bật IPv6, bạn cũng cần chỉnh sửa ánh xạ IPv6, thay đổi dòng ::1 bằng tên server của bạn.

/ etc / hosts
... # 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 server của bạn.

Đã sửa đổi / etc / hosts
... # 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 .

Theo 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 /etc/hosts . Để làm cho cấu hình này thay đổi vĩnh viễn, ta cũng cần áp dụng các thay đổi tương tự trong file đó.

Mở tập tin.

  • nano /etc/cloud/templates/hosts.redhat.tmpl

Thay đổi dòng 127.0.0.1 ${fqdn} ${hostname} để sử dụng địa chỉ IPv4 server của bạn.

Đã sửa đổi /etc/cloud/templates/hosts.redhat.tmpl
... # 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ự, hãy thay đổi dòng ::1 ${fqdn} ${hostname} để sử dụng địa chỉ IPv6 của bạn, nếu bạn đang sử dụng.

Đã sửa đổi /etc/cloud/templates/hosts.redhat.tmpl
... # The following lines are desirable for IPv6 capable hosts your_server_ipv6 ${fqdn} ${hostname} ::1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 ... 

Thoát và lưu file .

Tiếp theo, ta sẽ cấu hình các trình tạo số ngẫu nhiên trong CentOS. Điều này sẽ cho phép FreeIPA định dạng trước các chức năng mật mã mà nó cần để xác thực.

Bước 3 - Cấu hình Trình tạo số ngẫu nhiên

Việc cài đặt FreeIPA yêu cầu nhiều dữ liệu ngẫu nhiên cho các hoạt động mật mã mà nó chạy. Theo mặc định, một máy ảo sẽ hết dữ liệu ngẫu nhiên hoặc entropy rất nhanh. Để giải quyết vấn đề này, ta sẽ sử dụng rngd , một phần mềm 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 gắn vào server và đưa nó vào bộ tạo số ngẫu nhiên của kernel .

Đầu tiên, cài đặt rngd .

  • yum install rng-tools

Sau đó, kích hoạt nó.

  • systemctl start rngd

Đảm bảo rằng dịch vụ được tự động khởi động khi server khởi động .

  • systemctl enable rngd

Cuối cùng, xác minh rngd đang chạy.

  • systemctl status rngd

Đầu ra phải bao gồm active (running) màu xanh lục.

Với tất cả các phần phụ thuộc được cấu hình và hoạt động, ta có thể chuyển sang cài đặt chính phần mềm server FreeIPA.

Bước 4 - Cài đặt Server FreeIPA

Ta có thể chuyển sang cài đặt ipa-server , gói server FreeIPA.

  • yum install ipa-server

Sau đó chạy lệnh cài đặt FreeIPA. Thao tác này sẽ chạy một tập lệnh nhắc bạn về 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ó khả năng quản lý bản ghi DNS cho server . Điều này có thể giúp cấp phép và quản lý server dễ dàng hơn. Trong hướng dẫn này, ta sẽ không sử dụng DNS tích hợp của FreeIPA. Nó không cần thiết cho một cài đặt cơ bản.

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 , domain và tên vùng Kerberos. Kerberos là một giao thức xác thực mà FreeIPA sử dụng để xác thực các server . Bạn nên sử dụng domain của bạn làm lĩnh vực Kerberos. Sử dụng cách đặt tên khác sẽ gây ra sự cố với tích hợp Active Directory của FreeIPA và có thể gây ra các vấn đề khác.

Cảnh báo: Không sử dụng domain root ( example.com ) làm domain IPA của bạn. Điều này có thể gây ra sự cố 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

Tiếp theo, tạo password cho trình quản lý folder LDAP. Điều này là cần thiết cho chức năng LDAP của FreeIPA. Sau đó, password quản trị IPA, password này sẽ được sử dụng khi đăng nhập vào FreeIPA với quyền là admin-user . Sử dụng password được tạo ngẫu nhiên an toàn ở đây rất được khuyến khích, vì bảo mật của toàn bộ hệ thống của bạn phụ thuộc vào chúng.

Xác nhận cấu hình. Sau đó, trình cài đặt sẽ chạy.

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.

Bây giờ ta đã cài đặt xong server , ta cần kiểm tra nó.

Bước 5 - Xác minh các chức năng của server FreeIPA

Trước tiên, hãy xác minh vùng Kerberos đã được cài đặt chính xác bằng cách cố gắng khởi tạo mã thông báo Kerberos cho admin-user .

  • kinit admin

Nếu hoạt động chính xác, điều này sẽ nhắc bạn nhập password quản trị IPA đã nhập trong quá trình cài đặt. Nhập nó vào, sau đó nhấn ENTER .

Tiếp theo, xác minh server IPA đang hoạt động bình thường.

  • ipa user-find admin

Điều này sẽ in ra như sau:

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 ----------------------------

Ta cũng có thể truy cập giao diện user web tại https://ipa. example.com .

Lưu ý : Chứng chỉ TLS sẽ không tin cậy . Hiện tại, ta sẽ bỏ qua các cảnh báo. Trong tương lai, bạn có thể sử dụng tổ chức phát hành certificate yêu thích của bạn để lấy certificate TLS hợp lệ. Sau khi có nó, bạn cần tải lên certificate CA (thường là ca.crt ), file certificate ( your_domain .crt ) và file khóa ( your_domain .key ) lên server .

Khi bạn có file , hãy cài đặt CA bằng password trình quản lý folder mà bạn đã đặt trước đó. Bạn có thể đặt trước lệnh bằng một khoảng trắng để ngăn nó được lưu vào lịch sử shell .

  • ipa-cacert-manage -p your_directory_manager_password -n httpcrt -t C,, install ca.crt

Sau đó cài đặt certificate và khóa của trang web.

  • ipa-server-certinstall -w -d your_domain.key your_domain.crt

Bạn cần khởi động lại server của bạn để những thay đổi này có hiệu lực.

Trong giao diện user web, đăng nhập với quyền là admin-user . Tên user sẽ là administrator Mật khẩu sẽ là password quản trị IPA mà bạn đã đặt trước đó. Đầu trang sẽ hiển thị Authenticating… và sau đó bạn sẽ được đưa đến trang IPA chính, trông giống như sau:

Trang chính của FreeIPA UI

Cuối cùng, hãy cùng khám phá một số tính năng của FreeIPA bằng cách thêm user mới.

Bước 6 - Cấu hình user IPA

FreeIPA có một bộ các tính năng policy và quản lý user rất phong phú. Tương tự như user Unix tiêu chuẩn, user FreeIPA có thể thuộc các group . Các group hoặc user cá nhân có thể được phép hoặc từ chối quyền truy cập vào server (máy khách) hoặc group server ( group server ) dựa trên policy . FreeIPA cũng có thể quản lý quyền truy cập sudo; group hoặc user có thể được cấp quyền truy cập sudo trên server hoặc group server .

Hướng dẫn này sẽ chỉ trình bày về cách thêm user mới để giúp bạn bắt đầu.

Để thêm user , hãy nhấp vào tab Danh tính và nhấp vào User . Điều này sẽ hiển thị một bảng user . Nhấp vào nút + Thêm phía trên bảng để thêm user mới. Điền vào các trường bắt buộc (như họ và tên) trong biểu mẫu mở ra, sau đó nhấp vào Thêm để thêm user nguyên trạng hoặc Thêm và chỉnh sửa để cấu hình chi tiết nâng cao.

Các chi tiết nâng cao cũng có thể được truy cập bằng cách nhấp vào user trong bảng root . Đây là những gì administrator thấy khi xem thông tin chi tiết của user :

 User  FreeIPA UI chỉnh sửa

Regular user cũng có thể đăng nhập vào IPA GUI. Họ sẽ có thể xem các quyền của riêng mình và chỉnh sửa chi tiết cá nhân.

User mới sẽ được yêu cầu thay đổi password của họ trong lần đầu tiên họ đăng nhập vào máy IPA. Điều này hoạt động trong IPA GUI cũng như trên SSH. Một tính năng hữu ích là khả năng thêm SSH key . User có thể tải lên các SSH key công khai của họ và truyền chúng tới các máy IPA, cho phép đăng nhập không cần password . Sau đó, user có thể xóa SSH key bất kỳ lúc nào mà không phải lo lắng về việc nó vẫn còn trên các server riêng lẻ.

Kết luận

Đến đây bạn có một server FreeIPA đang hoạt động, bạn cần phải cấu hình các client để xác thực nó. Bạn có thể làm theo hướng dẫn client Ubuntu 16.04 FreeIPA này hoặc hướng dẫn client CentOS 7 FreeIPA này để thực hiện . Ngoài ra, FreeIPA là một server LDAP. Bất kỳ dịch vụ nào hỗ trợ xác thực LDAP đều có thể được cài đặt để xác thực dựa trên server FreeIPA của bạn.

Bạn có thể cấu hình user , group và policy truy cập thông qua FreeIPA GUI hoặc thông qua CLI của nó. Luật Sudo có thể cung cấp một cách tương đối đơn giản để quản lý quyền truy cập root. Đối với các triển khai lớn hơn, nên cài đặt nhiều server IPA có nhân rộng. Cuối cùng, nếu bạn muốn kết nối với môi trường Windows, bạn có thể cài đặt ủy thác cho server Active Directory.

FreeIPA là một công cụ xác thực cực kỳ linh hoạt và những gì bạn cần làm tiếp theo phần lớn phụ thuộc vào cách bạn định sử dụng nó. Để biết thêm thông tin, trang web FreeIPA có một danh sách các nguồn tài liệu .


Tags:

Các tin liên quan

Cách bảo vệ server của bạn chống lại lỗ hổng Linux COW bẩn
2016-10-31
Cách cấu hình TRIM định kỳ cho bộ lưu trữ SSD trên server Linux
2016-08-25
Cách bảo vệ server của bạn chống lại lỗ hổng HTTPoxy
2016-07-18
Cách phân vùng và định dạng thiết bị lưu trữ trong Linux
2016-07-13
Cách thực hiện các tác vụ quản trị cơ bản cho thiết bị lưu trữ trong Linux
2016-07-13
Giới thiệu về thuật ngữ và khái niệm lưu trữ trong Linux
2016-07-13
Cách cấu hình BIND làm server DNS Mạng riêng trên Ubuntu 16.04
2016-05-09
cách cấu hình bind làm server lưu trữ hoặc chuyển tiếp DNS trên Ubuntu 16.04
2016-05-02
Cách cài đặt và cấu hình Postfix làm server SMTP chỉ gửi trên Ubuntu 16.04
2016-04-29
Cách lưu trữ server chia sẻ tệp bằng Pydio trên Ubuntu 14.04
2016-04-29