banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận bảo mật How to use Google Authenticator for sshd/OSX  XML
  [Article]   How to use Google Authenticator for sshd/OSX 01/01/2012 12:38:11 (+0700) | #1 | 251728
LeVuHoang
HVA Friend

Joined: 08/03/2003 16:54:07
Messages: 1155
Offline
[Profile] [PM]
Tóm tắt:

Hướng dẫn cách tích hợp Google Authenticator vào sshd trên môi trường OSX. Mục đích ngoài password thường dùng ra thì phải có one-time-password trên điện thoại mới có thể đăng nhập được vào hệ thống.
 


I was interested in Google Authenticator one month ago, if you don't know what Google Authenticator is, check this description (1):

The Google Authenticator project includes implementations of one-time passcode generators for several mobile platforms, as well as a pluggable authentication module (PAM). One-time passcodes are generated using open standards developed by the Initiative for Open Authentication (OATH) (which is unrelated to OAuth).
 

Google Authenticate can turn your mobile phone to an one-time-password (OTP) token. That means, beside your own password, you must provide a number from your phone to login to your system.

Some applications have integrated Google Authenticator like Google Apps, LastPass, WordPress... So, I asked myself if i could use it for my Macbook ssh daemon?

After some searches, I understood that Google Authenticator has not supported OSX officially. That's why it can not work with OSX although you can build it successfully. To have some funs, I decided to modify it. You can follow my steps to apply your Linux systems also because it's similar. Let's go:

1. Download source code (2):
You can use hg to grab the source code (3). Type the following command in console:
Code:
hg clone --insecure https://code.google.com/p/google-authenticator/

If you get a certificate problem, try press R to ignore it (to fix this error, please contact Google Security Team :-P). The local source folder will be similar Google lastest repository (4).

2. Edit and compile:
Because of unofficially OSX supported, you can build the source code but you can't use it to login. You will always have this error:
Code:
in _openpam_check_error_code(): pam_sm_authenticate(): unexpected return value 19

A little modification for OSX required (Linux maybe not), edit pam_google_authenticator.c, insert those lines:
Code:
static int drop_privileges(pam_handle_t *pamh, const char *username, int uid,
int *old_uid, int *old_gid) {
    // Try to become the new user. This might be necessary for NFS mounted home
    // directories.

    int old_uid1 = setuser(uid);
    if (old_uid1 < 0) {
        log_message(LOG_ERR, pamh, "Failed to change user id to \"%s\"", username);
        return -1;
    }
    return old_uid1;

Exit and execute "make && make install" in console. *Please keep in mind that this is my dirty hack to make it works, it is unsupported and I take no responsibles for this modification*.

As a result, pam_google_authenticator_testing.so is complied.

3. Install:
Copy pam_google_authenticator.so module to PAM folder:
Code:
sudo cp pam_google_authenticator.so /usr/lib/pam/

Add this line to /etc/pam.d/sshd:
Code:
auth       required       pam_google_authenticator.so

Add this line to /etc/sshd_config:
Code:
ChallengeResponseAuthentication yes

Finally, restart sshd (5) by:
Code:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

To here, you finished the installation process, we can move to next step: Setup.

4. Setup:
You must install Google Authenticator for your mobile phone, in my case, i used App Store to download and install.

Run the following command in your server console:
Code:
./google-authenticator

Answer "y" for its questions.

That's all for server settings, now, you should look at information Google Authenticator provided, there is a link likes:
Code:
https://www.google.com/chart?chs=200x200&chld=




Copy this link and paste it to your browser, a barcode image will appear.

Open Google Authenticator on your phone, press Plus (+) button and move your mobile's camera to capture the barcode image, it will automatically display your own OTP.

It's ok for mobile settings also.

5. Testing:
Try to login to your system via ssh, you will be required for password and verification code.

This is the result:



Two-factors authentication is now enabled.

References:
(1) http://code.google.com/p/google-authenticator/
(2) http://code.google.com/p/google-authenticator/source/checkout
(3) hg client: http://mercurial.selenic.com/downloads/
(4) http://code.google.com/p/google-authenticator/source/browse/
(5) Enable sshd for OSX: go to Apple > System Preferences > Sharing, check Remote Login
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 02/01/2012 06:41:49 (+0700) | #2 | 251744
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Hay tuyệt smilie.

Bản thân anh không cho ssh hay bất cứ thứ gì truy cập đến MacBook của anh smilie. Ngay cả đường ra (từ MacBook đi ra), anh cũng chỉ cho truy cập đến 1 số cổng nhất định mà thôi.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 02/01/2012 12:13:11 (+0700) | #3 | 251755
[Avatar]
xnohat
Moderator

Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!] [MSN]
Đầu năm lão Hoàng mở hàng bằng một bài quá đỉnh smilie
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 05/01/2012 18:45:39 (+0700) | #4 | 251932
LeVuHoang
HVA Friend

Joined: 08/03/2003 16:54:07
Messages: 1155
Offline
[Profile] [PM]
Thank anh conmale và xnohat đã ủng hộ smilie
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 06/01/2012 04:24:14 (+0700) | #5 | 251950
[Avatar]
DanhNam
Member

[Minus]    0    [Plus]
Joined: 02/01/2011 03:16:29
Messages: 12
Offline
[Profile] [PM]
Cho mình hỏi cái này có thể áp dụng để bảo mật cho cPanel 11 không và áp dụng thế nào? Thanks!
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 06/01/2012 06:33:06 (+0700) | #6 | 251951
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

DanhNam wrote:
Cho mình hỏi cái này có thể áp dụng để bảo mật cho cPanel 11 không và áp dụng thế nào? Thanks! 


SSH là tầng truy cập thấp hơn cPanel và sử dụng Google Authenticator cho SSH không dính dáng gì đến cPanel hết.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 24/01/2012 20:04:01 (+0700) | #7 | 252794
[Avatar]
sasser01052004
Member

[Minus]    0    [Plus]
Joined: 20/09/2010 01:27:29
Messages: 150
Location: /home/sasser
Offline
[Profile] [PM]
Hjc, mấy anh việt hoá giùm em cái, viết toàn bằng tiếng anh đọc chút là muốn xỉu
Ask me why, don't ask me what.
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 24/01/2012 23:08:20 (+0700) | #8 | 252799
[Avatar]
K4i
Moderator

Joined: 18/04/2006 09:32:13
Messages: 635
Location: Underground
Offline
[Profile] [PM]

DanhNam wrote:
Cho mình hỏi cái này có thể áp dụng để bảo mật cho cPanel 11 không và áp dụng thế nào? Thanks! 


Bạn có thể viết thêm một module cho cPanel để tích hợp với Google Authenticator. Đơn giản thế thôi
Sống là để không chết chứ không phải để trở thành anh hùng
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 17/07/2012 10:31:22 (+0700) | #9 | 266915
[Avatar]
Ikut3
Elite Member

[Minus]    0    [Plus]
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
[Profile] [PM] [Yahoo!]
Hello mọi người

Em đào mồ vụ này lên 1 tí, do em vừa triển khai cho hệ thống bên em chạy SLES 11.

1. Đặc điểm của SLES 11 là không có gói PAM-devel đi kèm, nó chỉ có ở trên phiên bản SLES-SDK, vậy nên mọi người download gói pam-devel 1.0.4 cho phiên bản pam 1.0.4 tại đây

http://demeter.uni-regensburg.de/SLE11SP1-SDK-x64/DVD1/suse/x86_64/

2. Do cơ chế của Google Authenticator dựa trên algorithm Time-based, vì vậy chú ý điện thoại của mình phải cùng time với máy chủ

3. Có 1 số bạn thắc mắc là như vậy giữa đthoai & server luôn phải được đi Internet để cập nhật các passcode, nhưng chuyện đó là sai. Nó chỉ cần 1 algorithm, đúng hơn là 1 cipher thông qua BarCode & Secret Key ngay từ lúc khởi tạo từ phía Server để giải mã tất cả các password random sau đó. Vì vậy đthoai & Server không cần thiết phải có Internet mới áp dụng được

Sau khi chơi thử, thì mình tự tin phần password policy trong điểu khoản ISMS 27001 & PCI DSS nhẹ gánh hơn rất nhiều

Cheers,
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 17/07/2012 15:39:50 (+0700) | #10 | 266957
cino
Member

[Minus]    0    [Plus]
Joined: 29/11/2010 00:50:44
Messages: 37
Offline
[Profile] [PM]

Ikut3 wrote:
2. Do cơ chế của Google Authenticator dựa trên algorithm Time-based, vì vậy chú ý điện thoại của mình phải cùng time với máy chủ

3. Có 1 số bạn thắc mắc là như vậy giữa đthoai & server luôn phải được đi Internet để cập nhật các passcode, nhưng chuyện đó là sai. Nó chỉ cần 1 algorithm, đúng hơn là 1 cipher thông qua BarCode & Secret Key ngay từ lúc khởi tạo từ phía Server để giải mã tất cả các password random sau đó. Vì vậy đthoai & Server không cần thiết phải có Internet mới áp dụng được

Sau khi chơi thử, thì mình tự tin phần password policy trong điểu khoản ISMS 27001 & PCI DSS nhẹ gánh hơn rất nhiều

Cheers, 

Có đoạn nào ở topic này có nói phải kết nối internet mới auth được đâu mà thắc mắc nhỉ. smilie

Tớ cũng biết cái này nhưng chưa dám xài vì chưa thấy thông tin về backup-code nếu điện thoại bị mất, hoặc time máy chủ hỏng (nhanh/chậm), già rồi lười tìm kiếm vụ này nữa. smilie

Thêm cái nữa, trong ISMS 27001 có đoạn nào cần áp dụng 2nd-step-verification đâu nhỉ? Đây là policy riêng của cty bác thì đúng hơn chăng. smilie
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 17/07/2012 16:06:47 (+0700) | #11 | 266967
[Avatar]
Ikut3
Elite Member

[Minus]    0    [Plus]
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
[Profile] [PM] [Yahoo!]
@ cino : 1/ Chuyện Internet thì không phải các bạn thắc mắc ở topic đây mà ở các diễn đàn khác. Mình mượn lời để repply thôi.

2/ Chuyện ISMS không yêu cầu áp dụng nhưng nó có phần Password Policy với các yếu tố
Strength - Length - max age v.v... . N Factor đáp ứng được các yêu cầu trên phải không ?

[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 18/07/2012 09:41:58 (+0700) | #12 | 267019
cino
Member

[Minus]    0    [Plus]
Joined: 29/11/2010 00:50:44
Messages: 37
Offline
[Profile] [PM]
Hee, Ikute xem thử nếu lệch giờ hệ thống hoặc rơi rớt cái mobile thì có backup code để access được vào hệ thống không nhỉ, tớ cũng... tính dùng. smilie
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 18/07/2012 10:33:30 (+0700) | #13 | 267026
[Avatar]
Ikut3
Elite Member

[Minus]    0    [Plus]
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
[Profile] [PM] [Yahoo!]
@CINO :

Lệch múi giờ có thể dùng Emergency Code để vào. Tuy nhiên chỉ có 4 emergency code. nếu đã sử dụng rồi thì không thể sử dụng lại.

Mình nghĩ nên có 1 NTP server đồng bộ time với các thiết bị
Mình đang đọc thêm cái này.
http://www.infosec.co.uk/ExhibitorLibrary/557/WPEventsVs.Time20061023A4.pdf

Cheers,
[Up] [Print Copy]
  [Article]   How to use Google Authenticator for sshd/OSX 20/07/2012 10:58:10 (+0700) | #14 | 267174
[Avatar]
tranhuuphuoc
Moderator

Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
[Profile] [PM] [WWW]

Ikut3 wrote:
Hello mọi người

Em đào mồ vụ này lên 1 tí, do em vừa triển khai cho hệ thống bên em chạy SLES 11.

1. Đặc điểm của SLES 11 là không có gói PAM-devel đi kèm, nó chỉ có ở trên phiên bản SLES-SDK, vậy nên mọi người download gói pam-devel 1.0.4 cho phiên bản pam 1.0.4 tại đây

http://demeter.uni-regensburg.de/SLE11SP1-SDK-x64/DVD1/suse/x86_64/

2. Do cơ chế của Google Authenticator dựa trên algorithm Time-based, vì vậy chú ý điện thoại của mình phải cùng time với máy chủ

3. Có 1 số bạn thắc mắc là như vậy giữa đthoai & server luôn phải được đi Internet để cập nhật các passcode, nhưng chuyện đó là sai. Nó chỉ cần 1 algorithm, đúng hơn là 1 cipher thông qua BarCode & Secret Key ngay từ lúc khởi tạo từ phía Server để giải mã tất cả các password random sau đó. Vì vậy đthoai & Server không cần thiết phải có Internet mới áp dụng được

Sau khi chơi thử, thì mình tự tin phần password policy trong điểu khoản ISMS 27001 & PCI DSS nhẹ gánh hơn rất nhiều

Cheers, 


Thực tế trên server em có cài đặt Google Authenticator thì khi em tạo nó "sản sinh" ra 4 emergency code để em cất giữ mà không đến Internet, tuy nhiên nếu IP của server có địa chỉ Public thì em nên dùng nó, áp dụng với máy điện thoại của em chẳng hạn như Iphone có apps Google Authenticator để em tiện lợi dùng.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|