<![CDATA[Latest posts for the topic "How to use Google Authenticator for sshd/OSX"]]> /hvaonline/posts/list/8.html JForum - http://www.jforum.net How to use Google Authenticator for sshd/OSX 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]]>
/hvaonline/posts/list/40891.html#251728 /hvaonline/posts/list/40891.html#251728 GMT
How to use Google Authenticator for sshd/OSX /hvaonline/posts/list/40891.html#251744 /hvaonline/posts/list/40891.html#251744 GMT How to use Google Authenticator for sshd/OSX /hvaonline/posts/list/40891.html#251755 /hvaonline/posts/list/40891.html#251755 GMT How to use Google Authenticator for sshd/OSX /hvaonline/posts/list/40891.html#251932 /hvaonline/posts/list/40891.html#251932 GMT How to use Google Authenticator for sshd/OSX /hvaonline/posts/list/40891.html#251950 /hvaonline/posts/list/40891.html#251950 GMT How to use Google Authenticator for sshd/OSX

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.]]>
/hvaonline/posts/list/40891.html#251951 /hvaonline/posts/list/40891.html#251951 GMT
How to use Google Authenticator for sshd/OSX /hvaonline/posts/list/40891.html#252794 /hvaonline/posts/list/40891.html#252794 GMT How to use Google Authenticator for sshd/OSX

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]]>
/hvaonline/posts/list/40891.html#252799 /hvaonline/posts/list/40891.html#252799 GMT
How to use Google Authenticator for sshd/OSX 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,]]> /hvaonline/posts/list/40891.html#266915 /hvaonline/posts/list/40891.html#266915 GMT How to use Google Authenticator for sshd/OSX

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ỉ. :) 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. :D 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. :)]]>
/hvaonline/posts/list/40891.html#266957 /hvaonline/posts/list/40891.html#266957 GMT
How to use Google Authenticator for sshd/OSX /hvaonline/posts/list/40891.html#266967 /hvaonline/posts/list/40891.html#266967 GMT How to use Google Authenticator for sshd/OSX /hvaonline/posts/list/40891.html#267019 /hvaonline/posts/list/40891.html#267019 GMT How to use Google Authenticator for sshd/OSX http://www.infosec.co.uk/ExhibitorLibrary/557/WPEventsVs.Time20061023A4.pdf Cheers,]]> /hvaonline/posts/list/40891.html#267026 /hvaonline/posts/list/40891.html#267026 GMT How to use Google Authenticator for sshd/OSX

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. ]]>
/hvaonline/posts/list/40891.html#267174 /hvaonline/posts/list/40891.html#267174 GMT