kiến thức DevOps thực tế và chi tiết

Công cụ quản lý mật khẩu trong doanh nghiệp (thực tế)

Đầu tiên, rất cảm ơn mọi người đã đọc bài viết tiết kiệm “x năm” đi làm của bạn, một bài viết tâm sự khá dài nhưng mọi người đã đọc và gửi tới mình những lời cảm ơn, những đề xuất giá trị. Cũng chính vì vậy mình hiểu hơn mong muốn của mọi người để làm những nội dung phù hợp, cần thiết.

Mình hiểu K8s là mảng kiến thức mọi người quan tâm rất nhiều mặc dù đầy dẫy nội dung trên internet nhưng chưa quá nhiều kiến thức thực tế nên mình sẽ soạn nội dung để ra được bài viết (video) chất lượng, vì vậy có thể hơi kỹ (cũng do tính mình vậy chỉ muốn làm sao mọi người xem chi tiết dễ hiểu nhất) nên cần chút thời gian nhưng mình chắc chắn rằng mọi người có thể áp dụng được luôn vào thực tế doanh nghiệp.

Còn trong bài viết này xuất phát từ ý kiến mình nhận được qua mail và các bạn trong comment bài viết. Đây cũng phần quan trọng mà mình thấy nên chia sẻ để giúp mọi người có thể bảo vệ mật khẩu cũng như chia sẻ mật khẩu trong doanh nghiệp một cách an toàn và hợp lý.

*Lưu ý (quan trọng phải đọc)

Mỗi câu, mỗi từ mình viết ra đều muốn đem lại giá trị tốt nhất cho mọi người và hơn hết là trong những phần lưu ý như vậy. Đọc phần này trước sẽ giúp bạn hiểu rõ công cụ nào phù hợp với doanh nghiệp của mình.

Trong doanh nghiệp để quản lý mật khẩu cá nhân có 2 phần chính là bảo vệ mật khẩuchia sẻ mật khẩu.

Vì thế, nếu như doanh nghiệp của bạn là startup, small thì cũng đừng nên nghĩ là chưa quan trọng lắm rồi chia sẻ mật khẩu trực tiếp qua tin nhắn hay lưu trữ lại trên trình duyệt. Trong khi đó ngoài kia bao nhiêu công cụ miễn phí, bảo mật bạn chỉ việc đem về sử dụng.

Có 3 phương pháp lưu trữ chính:

  • Sử dụng nền tảng bên thứ 3 cung cấp.
  • Cài đặt công cụ mã nguồn mở chạy như một web service.
  • Công cụ lưu trữ trong máy (local) và database là dạng file mã hóa.

Chúng ta sẽ đi vào ý đầu tiên là bảo vệ mật khẩu, phần này tùy vào nhu cầu của từng người, với ý kiến cá nhân và thực tế mình đang sử dụng, “tự mình lưu trữ là an tâm nhất” thế nên mình chọn công cụ lưu trữ mật khẩu vào local dạng file mã hóa.

Phương pháp này còn tốt ở chỗ bạn có thể di chuyển file database đi đâu cũng được như copy vào USB, gửi trực tiếp qua tin nhắn rồi sang thiết bị khác download về nhập mật khẩu rồi sử dụng rất linh hoạt, dễ dàng và an toàn. Ngay dưới đây mình cũng sẽ hướng dẫn chính là Keepass 2 mà mình đang sử dụng trong doanh nghiệp.

Tiếp theo là chia sẻ mật khẩu, phần này mình chọn công cụ mã nguồn mở chạy như một web service, điều này lợi ích vì mỗi doanh nghiệp đều là một môi trường private, tạo một web service mọi người đều truy cập được để lưu trữ chia sẻ mật khẩu trong dự án một cách an toàn, tập trung, nhanh chóng mà chẳng phải lo gửi qua các công cụ khác có bị “mắt thần” nào nhòm ngó hay không.

Công cụ thì rất nhiều nhưng mình sẽ đưa các tiêu chí sau: Mã nguồn mở miễn phí, 2MFA (xác thực bằng thiết bị di động), cộng đồng hỗ trợ lớn.

Cái tên đầu tiên mình đề xuất là Passbolt vì tính đơn giản, dễ sử dụng, không bắt buộc domain và hướng tới mục tiêu là “chia sẻ mật khẩu trong nhóm” vì vậy sẽ phù hợp với hầu hết loại doanh nghiệp từ startup, nhỏ, vừa, lớn mà phiên bản miễn phí cũng đáp ứng được khá tốt.

Tiếp đó Bitwarden là một lựa chọn rất tốt cho doanh nghiệp lớn và mình thấy rằng nếu “sử dụng miễn phí Bitwarden thì chưa hay lắm” mặc dù miễn phí vẫn có cách để chia sẻ mật khẩu dưới đây mình cũng hướng dẫn.

Có rất nhiều cái tên khác mà thịnh hành hơn mình từng sử dụng qua có đánh giá khá cao tuy nhiên là mình thấy chưa phù hợp.

Ví dụ Lastpass cũng khá tốt nhiều chức năng đa dạng, tuy nhiên mật khẩu của bạn sẽ lưu trữ ở “kho” của họ điều này thì vi phạm ngay tiêu chí “tự lưu trữ” của mình hay 1Password, roboform, Nordpass sẽ tính phí mà không hẳn ai cũng muốn bỏ ra.

Cho nên nếu như doanh nghiệp của bạn chấp nhận trả tiền thì mình cũng vẫn đề xuất Bitwarden.

Sử dụng công cụ quản lý mật khẩu

Sau khi đã biết những lý do tại sao chọn công cụ nào rồi chúng ta sẽ đi vào sử dụng chi tiết.

Cách sử dụng Keepass 2

Bạn truy cập vào Downloads – KeePass để tải về có cả cho Window, Ubuntu, MacOS việc cài đặt giống như các ứng dụng bình thường chỉ vài bước next bạn sẽ cài thành công mở lên và được kết quả như sau:

Bạn chọn như dưới đây để tạo database lưu trữ mật khẩu

Chúng ta sẽ chọn nơi lưu trữ thông tin của file database, định dạng .kdbx thường được mã hóa bằng các thuật toán mạnh mẽ như AES (Advanced Encryption Standard) nên rất đảm bảo bảo mật.

Tiếp đến bạn sẽ đặt Master password, có thể hiểu đơn giản là một mật khẩu để truy cập được vào cơ sở dữ liệu bạn vừa tạo và sau này bạn cũng chỉ cần nhớ một mật khẩu này thôi là đủ.

Tiếp đến là đặt tên database

Bước tiếp theo cũng là một phần khá quan trọng mà bạn nên lưu ý vì sẽ không có chức năng tìm lại mật khẩu, vì vậy chẳng may mật khẩu master của bạn mà bạn quên thì sẽ có phương án backup (còn không bạn có thể Skip qua vì điều bạn cần nhớ chỉ là 1 mật khẩu thôi)

Sau khi tạo database thành công chúng ta sẽ vào giao diện chính, lúc này bạn có thể chuột phải vào phần bền trái để tạo group mục đích để phân loại những mật khẩu

Ví dụ mình đặt group Personal và bạn có thể click chọn vào phần icon để đổi

Tiếp theo bạn có thể sắp xếp danh sách groups như dưới đây

Tiếp theo bạn chuột phải vào tab bên trái rồi nhấn chọn Add Entry để tiến hành tạo mật khẩu

Ví dụ thông tin như dưới đây, mình tạo một Entry để lưu trữ tài khoản Gmail

Tiếp theo đó bạn có thể chuột phải vào Entry vừa tạo để copy User Name

Hay copy Password

Công cụ này lưu trữ local và mạnh ở phần Copy Password như sau, nhấn Copy Password và nó sẽ copy và bạn có thể Ctrl + v để dán nhưng nó sẽ không lưu lại lịch sử copy ở công cụ Clipboard giúp đảm bảo việc không lộ mật khẩu của bạn và mật khẩu cũng chỉ được lưu trong bộ nhớ 12 giây. Rất bảo mật và an toàn phải không nào

Tiếp theo bạn có thể chỉnh sửa Entry và thêm cho nó phần URL

Để mà bạn có thể truy cập trực tiếp từ trong công cụ luôn không cần gõ trên trình duyệt

Tương tự bạn có thể tạo group khá và lưu trữ những mật khẩu quan trọng của bạn trong doanh nghiệp và rất là yên tâm

Tiếp theo chức năng tự tạo password bạn nhấn chọn vào Add Entry và icon như dưới đây

Bạn có thể custom yêu cầu random password như là có bao nhiêu ký tự, có chữ hoa, chữ thường, ký tự đặc biệt, số, dấu cách,… đảm bảo cực kỳ mạnh

Sau đó bạn nhấn Ctrl + S để lưu và thoát thì bạn chọn vào phần icon như dưới đây

Bạn hoàn toàn có thể gửi file database trực tiếp qua tin nhắn để sử dụng trên nhiều thiết bị mà chẳng lo rằng việc lộ thông tin.

Cách sử dụng Passbolt

Vì đây là một web service để mọi người đều có thể sử dụng nên chúng ta sẽ cài đặt trên Ubuntu, mình cài đặt qua docker nên bạn hãy cài Docker nhé, bạn có thể tham khảo tại đây nếu chưa cài docker.

elroydevops.tech
$ mkdir -p /tools/passbolt/ && cd /tools/passbolt/ && vi docker-compose.yml

Trong file docker-compose.yml với nội dung sau (bạn thay đổi cho phù hợp nhé, ngoài ra còn nhiều cách cài đặt khác bạn cũng có thể tham khảo):

docker-compose.yml
version: "3.9"
services:
  db:
    image: mariadb:10.11
    restart: unless-stopped
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: "true"
      MYSQL_DATABASE: "passbolt"
      MYSQL_USER: "passbolt"
      MYSQL_PASSWORD: "P4ssb0lt"
    volumes:
      - database_volume:/var/lib/mysql

  passbolt:
    image: passbolt/passbolt:latest-ce
    #Alternatively you can use rootless:
    #image: passbolt/passbolt:latest-ce-non-root
    restart: unless-stopped
    depends_on:
      - db
    environment:
      APP_FULL_BASE_URL: http://192.168.154.131:9999
      DATASOURCES_DEFAULT_HOST: "db"
      DATASOURCES_DEFAULT_USERNAME: "passbolt"
      DATASOURCES_DEFAULT_PASSWORD: "P4ssb0lt"
      DATASOURCES_DEFAULT_DATABASE: "passbolt"
    volumes:
      - gpg_volume:/etc/passbolt/gpg
      - jwt_volume:/etc/passbolt/jwt
    command:
      [
        "/usr/bin/wait-for.sh",
        "-t",
        "0",
        "db:3306",
        "--",
        "/docker-entrypoint.sh",
      ]
    ports:
      - 80:80

volumes:
  database_volume:
  gpg_volume:
  jwt_volume:

Tiếp đến chạy docker-compose file

elroydevops.tech
$ docker-compose up -d

Tiếp đến  tạo user

elroydevops.tech
$ docker-compose -f docker-compose.yml exec passbolt su -m -c "/usr/share/php/passbolt/bin/cake passbolt register_user -u [email protected] -f Elroy -l DevOps -r admin" -s /bin/sh www-data

Được kết quả như dưới đây bạn truy cập từ link trên trình duyệt

Khi vừa truy cập sẽ yêu cầu cài đặt extension

Bạn chọn Thêm vào Chrome

Tiếp theo bạn chọn Next

Bạn nhập password master vào (và đây cũng là mật khẩu duy nhất bạn cần nhớ cho công cụ này)

Tiếp tục chọn next

Thiết lập color và character rồi nhấn Next

Vậy là chúng ta thành công phần cài đặt

Bạn chọn vào phần Theme để tùy chỉnh giao diện

Lựa chọn vào midgar nếu muốn giao diện tối

Chọn vào thay đổi avatar nếu muốn nhé

MFA nếu bạn muốn sử dụng thì cài đặt thêm https cụ thể hơn sử dụng domain nhé

Tiếp đến bạn chọn vào password -> Create -> New folder

Ví dụ như bạn muốn lưu trữ thông tin đăng nhập cá nhân

Hay thông tin tài khoản doanh nghiệp

Trong đó bạn có thể tạo thêm sub folder như sau

Tạo folder lưu trữ mật khẩu cho dự án (ở đây mình đặt là E-commerce)

Sau đó bạn chọn vào New password

Tiến hành điền thông tin tài khoản

Bạn nhập master password vào và chọn thời gian ghi nhớ (trong khoảng thời gian đó không cần nhập lại)

Nếu muốn chỉnh sửa thông tin bạn có thể chọn vào và chọn Edit

Để copy Password bạn click chọn vào trường Password sẽ tự động lưu trong clipboard

Bạn cũng có thể chọn vào phần URI để chuyển nhanh tới website

Và extension cũng gợi ý giúp bạn thông tin đã lưu trữ

Tiếp theo đó bạn chạy lệnh để tạo user mới

elroydevops.tech
$ docker-compose -f docker-compose.yml exec passbolt su -m -c "/usr/share/php/passbolt/bin/cake passbolt register_user -u [email protected] -f Manh -l NV -r admin" -s /bin/sh www-data

Được kết quả như sau chúng ta test trên trình duyệt khác (tương ứng với ngươi dùng khác)

Làm tương tự như các bước thiết lập trên nhé

Truy cập thành công người dùng mới

Chúng ta quay lại tài khoản admin vào phần users thấy user Manh NV vừa tạo

Tiếp đó để chia sẻ mật khẩu bọn chọn vào tài khoản muốn chia sẻ và nhấn Share

Bạn có thể chọn quyền của người dùng mà muốn chia sẻ

Quay lại user mới thấy password được chia sẻ (tương ứng thành viên trong team)

Ngoài ra nếu có nhiều password bạn có thể import vào bằng file csv nhé

Bạn chọn vào phần administrator để thiết lập những quyền cụ thể cho user

Và phần Email server để thiết lập nếu muốn

Tiếp theo nếu bạn muốn chia sẻ mật khẩu cho team nhiều người có thể tạo group nhấn vào New group

Thêm các thành viên và quyền vào group

Và tương tự chia sẻ mật khẩu với group cũng như phân quyền cho group được tác động đến

Vậy là thành viên trong group đã có thể thấy mật khẩu

Như vậy chúng ta đã biết cách sử dụng Passbolt để lưu trữ, chia sẻ mật khẩu trong doanh nghiệp. tuy nhiên passbolt cũng có một số nhược điểm mà nhiều người chưa đánh giá cao bạn có thể tìm hiểu tiếp nhé, nhưng ở mức miễn phí mình thấy khá ổn.

Cách sử dụng Bitwarden

Bạn tải file bash script để cài đặt

elroydevops.tech
$ curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh && chmod +x bitwarden.sh

Chạy lệnh để cài đặt bitwarden

elroydevops.tech
$ ./bitwarden.sh install

Bạn làm theo các bước sau đây

 _     _ _                         _            
| |__ (_) |___      ____ _ _ __ __| | ___ _ __  
| '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \ 
| |_) | | |_ \ V  V / (_| | | | (_| |  __/ | | |
|_.__/|_|\__| \_/\_/ \__,_|_|  \__,_|\___|_| |_|

Open source password management solutions
Copyright 2015-2022, 8bit Solutions LLC
https://bitwarden.com, https://github.com/bitwarden

===================================================

bitwarden.sh version 2022.8.4
Docker version 20.10.17, build 100c701
docker-compose version 1.29.2, build 5becea4c

(!) Enter the domain name for your Bitwarden instance (ex. bitwarden.example.com): bitwarden.elroydevops.online

(!) Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n): y

(!) Enter the database name for your Bitwarden instance (ex. vault): bitwarden

Tiếp theo bạn truy cập vào Requesting Hosting Installation ID & Key để lấy cặp id và key rồi nhập tiếp như dưới đây

(!) Enter your installation id (get at https://bitwarden.com/host): c1908405-5beb-497f-9f09-aefe00f87c3f

(!) Enter your installation key: yQVH9PTcUIPftio0ZM8L

Thành công được kết quả:

Building nginx config.
Building docker environment files.
Building docker environment override files.
Building FIDO U2F app id.
Building docker-compose.yml.

Installation complete

If you need to make additional configuration changes, you can modify
the settings in `./bwdata/config.yml` and then run:
`./bitwarden.sh rebuild` or `./bitwarden.sh update`

Next steps, run:
`./bitwarden.sh start`

Bạn chạy lệnh sau để start bitwarden

elroydevops.tech
$ ./bitwarden.sh start

Thành công được kết quả:

Bitwarden is up and running!
===================================================

visit https://bitwarden.elroydevops.online
to update, run `./bitwarden.sh updateself` and then `./bitwarden.sh update`

Bạn tiến hành truy cập vào địa chỉ domain và tạo tài khoản

Tiến hành đăng nhập

Nhập master password

Đăng nhập thành công bạn chọn vào Account settings

Bạn có thể thay đổi password ở đây

Và bạn cũng có thể thiết lập 2MFA qua Google Authenticator

Sử dụng thiết bị di động để quét mã tạo 2MFA đăng nhập nhé

Tiếp theo bạn có thể tùy chỉnh giao diện hoặc là thời gian tự đóng session để bảo mật hơn

Bạn có thể tạo folder để lưu trữ nhóm mật khẩu

Và tạo mật khẩu lưu trữ

Ngoài ra bạn có thể sử dụng công cụ tự tạo password cho mạnh mẽ

Tiếp theo chức năng Send bạn có thể gửi file quan trọng hoặc là thông tin xác thực cho đồng nghiệp bằng cách như sau

Bạn có thể tùy chỉnh thêm số người truy cập và thời gian hết hạn cũng như mật khẩu trong phần Options

Tạo thành công biểu mẫu như sau

Bạn copy link và gửi cho đồng nghiệp

Sử dụng một tài khoản khác và đã thấy thông tin chia sẻ

Là một công cụ phù hợp với những doanh nghiệp tuy nhiên trong phiên bản giới hạn tính năng chia sẻ thật sự chưa tốt.

Vậy là trong bài viết này mình đã đưa ra một số công cụ quản lý mật khẩu. Cũng tiếp tục là bài viết khá dài, chi tiết của mình mong rằng sẽ giúp ích được tới bạn. Bạn có thể liên hệ với mình nếu có vấn đề gì nhé. Mình sẽ làm nhiều hướng dẫn hơn về các kỹ năng các tool khác để giúp bạn tối ưu được những tác vụ cũng như tiết kiệm những chi phí khi phát triển phần mềm. Thanks.

 

Mọi thắc mắc bạn có thể liên hệ:

Email: [email protected]

Telegram: Elroy26