GIT – Bài thử nghiệm dưới đây được thực hiện với điều kiện giả sử rằng chúng ta đã có , đã được cấu hình, thiết lập và hoạt động ổn định.

Xem thêm :

Hướng dẫn cài đặt OpenVPN

How to Installing Google-authenticator in CentOS 6.3

Xác nhận Authenticator:

Điều cần làm trước tiên, chúng ta cần phải có mã Google Authenticator. Quá trình này có thể được thực hiện bằng cách dùng lệnh hg, cụ thể là cú pháp mercurial:

apt-get mercurial

Bên cạnh đó, chúng ta cần phải sử dụng thêm một số công cụ dùng để compile, do vậy hãy cài đặt gói hỗ trợ (có thể gỡ bỏ sau khi dùng xong):

apt-get install build-essential

Kiểm tra phần mã nguồn dành cho hệ thống Google Authenticator:

cd /tmp && hg clone https://google-authenticator.googlecode.com/hg/ google-authenticator && cd libpam

Khi đã hoàn tất các bước cơ bản trên, và để đảm bảo mô hình này hoạt động ổn định với OpenVPN, chúng ta cần sửa lại Makefile:

vim Makefile

Và thêm dòng mã dưới đây vào sau phần license và trước dòng .SUFFIXES:

LDFLAGS=”-lpam”

Lưu thay đổi vào file, và khi muốn biên dịch file này, các bạn sử dụng lệnh:

make

Nếu trong trường hợp bạn gặp lỗi displayQRCode thì hãy thử lại vài lần cho tới khi hoàn tất. Sau đó, chúng ta sẽ tiếp tục với lệnh sau:

find /usr/lib -name libdl.so

Trong file makefile, các bạn cần tiến hành thay thế 3 thông số “/usr/lib/libdl.so” với đường dẫn của hệ thống (ví dụ như: /usr/lib/i386-linux-gnu/libdl.so). Lưu thay đổi sử dụng lại lệnh make và chúng ta đã khắc phục được lỗi trên. Khi quá trình compile đã hoàn tất, các bạn tiếp tục với việc cài đặt:

make install

Cấu hình, thiết lập OpenVPN để sử dụng PAM:

Để tiếp tục, chúng ta mở file /etc/openvpn/server.conf và thêm dòng mã sau:

plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn

Câu lệnh trên sẽ sử dụng PAM để cung cấp thêm 1 số tính năng cần thiết cho quá trình xác nhận tiếp theo. Thành phần cuối cùng chúng ta sử dụng là openvpn trong file /etc/pam.d. Để đảm bảo hệ thống hoạt động ổn định, chúng ta không nên can thiệp trực tiếp vào bất cứ dịch vụ nào khác (ví dụ SSH hoặc sudo), thay vào đó nên sử dụng 1 file hoàn toàn mới. Để tiếp tục, các bạn hãy khởi động lại OpenVPN để hệ thống xác nhận sự thay đổi.

Tùy chỉnh PAM để thực hiện quá trình xác nhận bằng Google Authenticator:

Trước tiên, chúng ta sẽ tạo mới file /etc/pam.d/openvpn:

cp /etc/pam.d/common-account /etc/pam.d/openvpn
vim /etc/pam.d/openvpn

và thêm dòng mã dưới đây:

auth required pam_google_authenticator.so

Trong trường hợp các bạn sử dụng các thư mục home đã được mã hóa thì cần phải thay đổi như sau:

auth required pam_google_authenticator.so secret=/var/unencrypted-home/${USER}/.google_authenticator

Tùy chỉnh Google Authenticator:

Khi hoàn tất bước trên là chúng ta đã gần hoàn thành toàn bộ quá trình cần thực hiện, và bước tiếp theo sau đây nên được áp dụng trên mỗi tài khoản trong hệ thống. Đăng nhập bằng tài khoản người dùng như bình thường và gõ lệnh sau:

google-authenticator

Hệ thống sẽ yêu cầu bạn hoàn tất 1 vài câu hỏi như dưới đây:

https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/me@myserver%3Fsecret%XXXXXXXXXXXXX
Your new secret key is: XXXXXXXXXXXXXXXXX
Your verification code is 1234567
Your emergency scratch codes are:
11111111
22222222
33333333
44444444
55555555
Do you want me to update your “~/.google_authenticator” file (y/n)

Lưu lại thông tin về đường dẫn URL và các thông tin đi kèm để sử dụng trong những bước tiếp theo. Trả lời bằng cách nhấn Y và chúng ta tiếp tục nhận được câu hỏi:

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n)

Nên chọn Y tại bước này để tăng độ bảo mật và không cho phép sử dụng key nhiều lần. Tiếp theo vẫn là những câu hỏi cần hoàn thiện:

By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n)

Khoảng thời gian 30 giây có thể là không dài, tùy vào nhu cầu của mỗi người dùng mà có hoặc không chấp nhận. Trong bài thử nghiệm này, chúng tôi chọn N. Và câu hỏi cuối cùng trong chuỗi thông tin này là:

If the computer that you are logging into isn’t hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n)

Để tăng thêm phần an ninh bảo mật, chúng ta sẽ chọn Y tại đây. Còn đối với trường hợp các bạn sử dụng thư mục home đã mã hóa thì cần thực hiện thêm bước sau:

mkdir -p /var/unencrypted-home/${USER}/
cp .google_authenticator /var/unencrypted-home/${USER}/
chmod og-rwx /var/unencrypted-home/${USER}/ -R

Thiết lập hệ thống client:

Yếu tố tối thiểu trên hệ thống client này là phải có mật khẩu đăng nhập để đảm bảo các khâu xác nhận bảo mật diễn ra theo đúng trình tự. Còn nếu bạn sử dụng add – on NetworkManager dành cho OpenVPN, thì có thể chuyển sang certificate và password, còn không thì sẽ phải kích hoạt chế độ auth – user – pass trong phần cấu hình. Chúc các bạn thành công!

T.Anh (theo HowToForge)
Print Friendly

Comments

comments

Bài viết liên quan