Thứ Năm, 29 tháng 6, 2017

Phần 1/2: PrivacyIDEA giải pháp xác thực 2 bước, chứng thực-quản lý tập trung. (update 20190712)

PrivacyIDEA giải pháp xác thực 2 bước, chứng thực-quản lý tập trung.
Giới thiệu:
- Bạn đã bao giờ thấy Google/Microsoft/Skype gửi cho bạn 1 đoạn mã qua SMS/Email để đăng nhập chưa? . 
- Bạn đã dùng thiết bị tạo key OTP của 1 số ngân hàng để thanh toán giao dịch chưa? (vd: techcombank)- Bạn đã dùng mã OTP để đăng nhập wifi, đăng nhập web, login linux/window với pass bằng otp...
- Bạn đã dùng ssh-key để login vào server bao giờ chưa?. Quản lý ssh-key tập trung, muốn gán vào server tùy ý.
- Bạn đã dùng thiết bị OTP (One Time Password - Mật khẩu thay đổi theo thời gian) bao giờ chưa?

PrivacyIDEA có rất nhiều plugin hỗ trợ đăng nhập ứng dụng: từ PAM, Radius, ssh OTP, basic-authen OTP cho đến REST API để viết code gọi vào. Ta sẽ đi lần lượt các phần sau:

Ở Bài viết này. Chúng ta sẽ đi xây dựng hệ thống server xác thực 2 bước và các ứng dụng của nó.

Đứng về mặt system-admin. Ta sẽ có sơ đồ sau
PrivacyIDEA đang hỗ trợ những cách thức đăng nhập sau:



Phần 1 : Cài đặt PrivacyIDEA server

(Nguồn: https://privacyidea.readthedocs.io/en/latest/)
1.Cài đặt trên Ubuntu 16.04
add-apt-repository ppa:privacyidea/privacyidea
apt-get update
apt-get install python-privacyidea privacyideaadm
  • Cài đặt gói giao diện cho PrivacyIDEA
apt-get install privacyidea-apache2
Trong gói cài đặt privacyidea-apache2, sẽ bao gồm cả mysql. Vì vậy bạn cần nhập mật khẩu mysql trong lúc cài đặt.
-- Tạo tài khoản admin đăng nhập web PrivacyIDEA
pi-manage admin add admin -e admin@localhost

Truy cập vào địa chỉ https://<your_privacyidea_ip> đăng nhập với pass là admin/<password> như đã tạo ở bước trên.

Lần đầu tiên đăng nhập, bạn sẽ được hỏi tự động tạo Default Realm. Nếu chưa sử dụng bao giờ, bạn nên chọn Create Realm.

Như vậy, bạn đã hoàn tất việc cài đặt PrivacyIDEA server. Việc ứng dụng PrivacyIDEA 2factor sẽ được hướng dẫn ở các phần tiếp theo.

Phần 2: Login ubuntu sử dụng OTP token key.

(Nguồn: https://www.privacyidea.org/ssh-keys-and-otp-really-strong-two-factor-authentication/)
Mô tả: Ta có thể sử dụng mật khẩu thay đổi theo thời gian để đăng nhập vào pc/server. Như vậy việc bỏ đi mật khẩu cố định sẽ rất an toàn cho hệ thống cũng như máy cá nhân.

Bước 1: Cài Đặt
add-apt-repository ppa:privacyidea/privacyidea
apt-get update
apt-get install privacyidea-pam
Kiểm tra UsePAM đã được enable chưa
#vim /etc/ssh/sshd_config 
UsePAM yes
Đổi config của PAM
# vim /etc/pam.d/sshdĐổi: 
@include common-auth
Thành:
@include common-auth-pi
Thay đổi config:
# vim /etc/pam.d/common-auth-pi 
auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_python.so /lib/security/privacyidea_pam.py url=https://ĐỊA_CHỈ_PRIVACYIDEA_SERVER  auth  nosslverify debug
auth    requisite             pam_deny.so
auth    required              pam_permit.so
auth    optional              pam_cap.so
Chú ý đổi địa chỉ về privacy-server của bạn. Khi bạn nhập mật khẩu token key, PAM sẽ dùng python để lấy mật khẩu được đồng bộ ở trên server privacy về.
/etc/init.d/ssh restart
Bước 2:
Tạo token key trên server. Vào mục User chọn user nào được chỉ định

Chọn Enroll New Token

Ta chọn TOTP

Cài đặt phần mềm trên điện thoại: Google authenticator



Như vậy là trên màn hình điện thoại, ta đã có password cho user FRAMGIA thay đổi theo thời gian. Khi đăng nhập, ta có thể dung pass này .
(Note:
- Nếu bạn muốn bảo mật thêm cho OTP, như chèn 1 đoạn pass TEXT{otp} thì ta chỉ việc điền text vào dòng PIN khi Enroll new Token
- Trường hợp đăng nhập bằng OTP không được, bạn hãy theo dõi log /var/log/auth.log . Và nhớ kiểm tra giờ Server đúng với giờ điện thoại nhé (nên dùng ntp-time để đồng bộ).
Đây là log auth.log cho user danhtuan trên privacyidea (update 20190712).


Có một thắc mắc hỏi? tại sao ko dùng google authenticator có sẵn trên ppa của ubuntu, mà phải mất công đi cài privacyIDEA. Đó là vì PrivacyIDEA hỗ trợ quản lý user tập trung, dùng 1 mã OTP cho tất cả server đều được. Khi cần ta có thể cấp mã cho user. Khi loại bỏ quyền thì rất dễ dàng có thể xóa đoạn authen ngay trên giao diện web quản lý…..

Phần 3: Quản lý tập trung ssh-key bằng privacyIDEA.

Mời bạn theo dõi tiếp bài sau của tôi.
FRAMGIA : https://viblo.asia skype: tuanduong122 , Blogspot:  tuanduong122
Do kiến thức của người viết có hạn. Nếu bài viết thấy có lỗi hoặc sai sót. Mong các bạn comment/contact giúp bài viết hoàn thiện hơn. Xin cảm ơn

Không có nhận xét nào:

Đăng nhận xét

Ứng cứu khi chown -R user1:user1 /etc

1. Bài toán Gõ nhầm: chown -R user1:user1 /etc 2. Giải: Cách 1: Tìm bản backup /etc cũ (tỉ lệ phục hồi gần như ~100%) Cách 2: Tìm tạm 1 thư ...