Passwork: erinevus redaktsioonide vahel
(ei näidata sama kasutaja 6 vahepealset redaktsiooni) | |||
342. rida: | 342. rida: | ||
</pre> |
</pre> |
||
− | * Passwork 'Password' |
+ | * Passwork 'Password' sissekande field on kõige elementaarsem info esinemise element |
Kontseptuaalselt võiks passwork lahendust kasutada sellise mõtlemisega |
Kontseptuaalselt võiks passwork lahendust kasutada sellise mõtlemisega |
||
* folderite abil moodustatakse ressrusside parvi (nt rg-infosysteem-yks, rg-infosysteem-kaks, rg-pve, rg-tulemyyr, rg-storage) |
* folderite abil moodustatakse ressrusside parvi (nt rg-infosysteem-yks, rg-infosysteem-kaks, rg-pve, rg-tulemyyr, rg-storage) |
||
− | * kasutajate gruppide abil moodustatakse kasutajate parvi (nt ug-is-yks-sysadm, ug-is-yks-appadm, ug-is-yks-user, ug-pve-sysadm, ug-storage- |
+ | * kasutajate gruppide abil moodustatakse kasutajate parvi (nt ug-is-yks-sysadm, ug-is-yks-appadm, ug-is-yks-user, ug-pve-sysadm, ug-storage-sysadm) |
* passwork acl süsteemi abil ühendatakse ressurside ja gruppide parvi omavahel kokku |
* passwork acl süsteemi abil ühendatakse ressurside ja gruppide parvi omavahel kokku |
||
376. rida: | 376. rida: | ||
* grupis on üks kasutaja, algustähega M |
* grupis on üks kasutaja, algustähega M |
||
* grupp on seotud ühele vaultile ligipääsemisega |
* grupp on seotud ühele vaultile ligipääsemisega |
||
+ | * grupi nime võiks lugeda selliselt, et pve lahendusele soovitakse anda süsteemi-administreerimise alast ligipääsu |
||
[[Fail:20250727-passwork-rg-ug-01.png|1300px]] |
[[Fail:20250727-passwork-rg-ug-01.png|1300px]] |
||
396. rida: | 397. rida: | ||
===MongoDB=== |
===MongoDB=== |
||
+ | <pre> |
||
− | TODO |
||
+ | duser@pwrk-01:~$ docker exec -it passwork_db mongosh |
||
+ | Current Mongosh Log ID: 6886ca4e9e57fe6db9a762f8 |
||
+ | Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.5.0 |
||
+ | Using MongoDB: 6.0.21-18 |
||
+ | Using Mongosh: 2.5.0 |
||
+ | |||
+ | For mongosh info see: https://www.mongodb.com/docs/mongodb-shell/ |
||
+ | ... |
||
+ | |||
+ | pw> show dbs |
||
+ | admin 40.00 KiB |
||
+ | config 108.00 KiB |
||
+ | local 72.00 KiB |
||
+ | pw 5.72 MiB |
||
+ | pw> |
||
+ | |||
+ | test> use pw |
||
+ | switched to db pw |
||
+ | pw> db.items.countDocuments() |
||
+ | 193 |
||
+ | pw> |
||
+ | </pre> |
||
+ | |||
+ | vault andmete küsimine |
||
+ | |||
+ | <pre> |
||
+ | pw> db.vaults.find({ name: /v-auul/i }) |
||
+ | [ |
||
+ | { |
||
+ | _id: ObjectId('68729adc05fb74f7b20f9ee6'), |
||
+ | createdAt: ISODate('2025-07-12T17:26:52.534Z'), |
||
+ | creatorId: ObjectId('68729a5c6515f0d969054e06'), |
||
+ | deleted: null, |
||
+ | isSnapshotsMigrated: true, |
||
+ | isUsersMigrated: true, |
||
+ | masterKeyHash: null, |
||
+ | name: 'v-auul', |
||
+ | salt: null, |
||
+ | updatedAt: ISODate('2025-07-12T21:40:47.599Z') |
||
+ | } |
||
+ | ] |
||
+ | pw> |
||
+ | </pre> |
||
+ | |||
+ | Folder info küsimine |
||
+ | |||
+ | <pre> |
||
+ | pw> db.folders.find({ "name": /rg-pve/i }).pretty() |
||
+ | [ |
||
+ | { |
||
+ | _id: ObjectId('68865a19531c35bd9306be7b'), |
||
+ | ancestorIds: [], |
||
+ | createdAt: ISODate('2025-07-27T16:55:53.214Z'), |
||
+ | deleted: null, |
||
+ | name: 'rg-pve', |
||
+ | updatedAt: ISODate('2025-07-27T16:55:53.214Z'), |
||
+ | vaultId: ObjectId('68865953a9c423aa79042ef2') |
||
+ | } |
||
+ | ] |
||
+ | pw> |
||
+ | </pre> |
||
+ | |||
+ | Praktiliselt sisu sissekannetega ei saa sellisel viisil töötada, kuna sisu-andmed on krüptitud. |
||
===Kasulikud lisamaterjalid=== |
===Kasulikud lisamaterjalid=== |
Viimane redaktsioon: 28. juuli 2025, kell 04:02
Sissejuhatus
TODO
Olulised veebikohad
- https://passwork.pro/ - põhiveebikoht
- https://portal.passwork.pro/ - saab tarkvara kopeerida eeldusel, et on ostetud vms passwork kasutamise voli
- https://docs.passwork.pro/ - dokumentatsioon
Tarkvara ost
Isanda veebikoht paistab selline
kus
- API key - seda sõne väärtust küsitakse paigaldamise käigus, st tundub, et selle alusel kopeeritakse repost tarkvara
- License key - see fail tuleb üles laadida üks kord esimesel lahenduse käivitamisel
- Passwork - Choose version - saab alla laadida tarkvara meelepärase versiooni .zip arhiivi
Väited
- tundub, et tehniliselt on sama litsentsi võimalik kasutada nö kõrvutistes paigaldistes (kuna on toetatud offline kasutamine)
Tööpõhimõte
passwork lahendust saab kasutada mitmel viisil kohepeal paigaldades
- passwork paigaldus - docker konteiner põhiselt
- passwork paigaldus - tava-operatsiooni põhiselt
- passwork paigaldus ilma internetii ühtendamata arvutis
- passwork paigaldus internetti ühendutud arvutis
Käesolevas tekstis tegeledakse sellise kombinatsiooniga
- docker põhine
- arvutil on ühendus internetiga
Ettevalmistamine
Nt selline Docker CE tarkvara põhinev Ubuntu 24.04 dockerhost sobib kasutamiseks
duser@pwrk-01:/srv/passwork$ df -t ext4 -T -h Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/system-root ext4 14G 2.8G 11G 21% / /dev/mapper/vg_data-var_lib_docker ext4 5.9G 2.1G 3.5G 38% /var/lib/docker /dev/mapper/vg_data-srv ext4 5.9G 4.2G 1.4G 76% /srv
Paigaldamine
passwork lahenduse paigaldamine võiks toimuda nt selliselt
duser@pwrk-01:~# su - duser duser@pwrk-01:~$ cd /srv/passwork duser@pwrk-01:/srv/passwork$ duser@pwrk-01:/srv/passwork$ wget https://repos.passwork.pro/repository/docker/passwork_compose_install.sh duser@pwrk-01:/srv/passwork$ chmod +x passwork_compose_install.sh duser@pwrk-01:/srv/passwork$ ./passwork_compose_install.sh duser@pwrk-01:/srv/passwork$ ./passwork_compose_install.sh Portal Passwork is available from your host. Online mode. Docker version is 18.06 or higher Docker Compose plugin is installed User is either root or in the docker group Checking if system is using supported package manager Using apt-get to install packages All required packages are already installed Enter Portal API key: T16Ifdq10RXhaYlOlzFm1ZcPxcP4v4fMSDlvK3zSmeMzD1aRBSO4Y.... Valid Portal API key entered: T16Ifdq10RXhaYlOlzFm1ZcPxcP4v4fMSDlvK3zSmeMzD1aRBSO4Y.... Portal API key is correct % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 64054 100 64054 0 0 247k 0 --:--:-- --:--:-- --:--:-- 247k Files downloaded and unpacked successfully .env file created successfully Running update: ./update.sh Downloading version 070002... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 22.4M 100 22.4M 0 0 9787k 0 0:00:02 0:00:02 --:--:-- 9785k Verified OK Successfully checked signature for Passwork archive time="2025-05-11T16:46:41Z" level=warning msg="The \"UID\" variable is not set. Defaulting to a blank string." time="2025-05-11T16:46:41Z" level=warning msg="The \"DB_RUN_FLAGS\" variable is not set. Defaulting to a blank string." No previous version is installed or version is below 070000. Code has been obtained, no need to restart services during initial install. Already copied === INSTALLED === time="2025-05-11T16:46:41Z" level=warning msg="The \"DB_RUN_FLAGS\" variable is not set. Defaulting to a blank string." time="2025-05-11T16:46:41Z" level=warning msg="The \"UID\" variable is not set. Defaulting to a blank string." Network passwork_passwork Creating Network passwork_passwork Created Container passwork_cron Creating Container passwork_db Creating Container passwork_php Creating Container passwork_php Created Container passwork_nginx Creating Container passwork_db Created Container passwork_cron Created Container passwork_nginx Created Container passwork_postfix Creating Container passwork_postfix Created Container passwork_php Starting Container passwork_cron Starting Container passwork_db Starting Container passwork_db Started Container passwork_cron Started Container passwork_php Started Container passwork_nginx Starting Container passwork_nginx Started Container passwork_postfix Starting Container passwork_postfix Started Started successfully Please check running containers CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c13dcc5f926d passwork/docker-postfix "/entrypoint.sh post…" 1 second ago Up Less than a second 25/tcp passwork_postfix c86ecb29c606 passwork/docker-nginx "/entrypoint.sh ngin…" 1 second ago Up Less than a second 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp passwork_nginx 395b835b2853 passwork/docker-php8.3 "/entrypoint.sh tini…" 1 second ago Up Less than a second passwork_cron d20b50f94e42 passwork/docker-psmdb6 "/entrypoint.sh mong…" 1 second ago Up Less than a second 27017/tcp passwork_db 51053237c894 passwork/docker-php8.3 "/entrypoint.sh php-…" 1 second ago Up Less than a second passwork_php
Tulemusena on moodustatud fail /srv/passwork/docker-compose.yaml ning selle alusel käivitatud konteinerid
duser@pwrk-01:/srv/passwork$ docker compose ls NAME STATUS CONFIG FILES passwork running(5) /srv/passwork/docker-compose.yaml
Tulemusena on kopeeritud sellised tõmmised
duser@pwrk-01:/srv/passwork$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE passwork/docker-nginx latest ad5af3d7b172 3 days ago 195MB passwork/docker-php8.3 latest 90f5ff5ecfa1 12 days ago 563MB passwork/docker-postfix latest cd30c223cfc1 4 weeks ago 150MB passwork/docker-psmdb6 latest b055d5d4f764 2 months ago 831MB
Tulemusena on moodustatud selline võrk
duser@pwrk-01:/srv/passwork$ docker network ls NETWORK ID NAME DRIVER SCOPE c294d961e9b9 bridge bridge local ef6c4241d0ae host host local 0652ad4a8546 none null local e1d94f16ffcf passwork_passwork bridge local
Tulemusena on tekitatud selline volume
duser@pwrk-01:/srv/passwork$ docker volume ls DRIVER VOLUME NAME local passwork_db_data
Paigalduse lähtestamine
Paigaldise lähtestamine, konteinerite kustamine
duser@pwrk-01:/srv/passwork$ docker compose down WARN[0000] The "UID" variable is not set. Defaulting to a blank string. WARN[0000] The "DB_RUN_FLAGS" variable is not set. Defaulting to a blank string. [+] Running 6/6 ✔ Container passwork_db Removed 0.1s ✔ Container passwork_cron Removed 0.5s ✔ Container passwork_postfix Removed 0.1s ✔ Container passwork_nginx Removed 0.1s ✔ Container passwork_php Removed 0.1s ✔ Network passwork_passwork Removed
Named volume kustutamine
duser@pwrk-01:/srv/passwork$ docker volume rm passwork_db_data passwork_db_data
Failisüsteemi osa kustutamine
root@pwrk-01:/srv/passwork# rm -rf .env .env.example * root@pwrk-01:/srv/passwork# find -ls 12 4 drwxr-xr-x 2 duser duser 4096 May 11 17:02 .
Esmakordne käivitamine
Peale paigaldamist suundudes brauseriga teenuse url peale paistab selline pilt, valida keel, nt English
seejärel paistab selline pilt, esitada kontakt andmebaasiga (MongoDB)
seejärel esitada litsents faili üles laadimise kujul
seejärel kirjeldada esimene kasutaja, admin jms privileegidega
Lõpuks, peale sisselogimist paitsab selline pilt
https:// seadistsamine
https:// iseenesest töötab kohe algupäraselt, aga self-signed vms sertifikaadiga, custom sertifikaadi kasutamiseks sobib tekitada kaks faili
duser@pwrk-01:/srv/passwork$ pwd /srv/passwork duser@pwrk-01:/srv/passwork$ ls -l conf/ssl/fullchain.pem conf/ssl/privkey.pem -rw-r--r-- 1 duser root 3590 Jul 12 20:10 conf/ssl/fullchain.pem -rw------- 1 duser root 1704 Jul 12 20:11 conf/ssl/privkey.pem
ja öelda
duser@pwrk-01:/srv/passwork$ docker compose stop duser@pwrk-01:/srv/passwork$ docker compose start
Kasutajate haldamine
- Invite
2FA kasutamine
TODO
Kasutajate keskhaldus - LDAP kataloog
Väärtused
- Server - ldap://192.168.10.125
- Service account -> Distinguished name (DN) - Administrator@dn.moraal.ee
- Service account -> Password - parool
- Service account -> Attribute name for login - samaccountname
ning pressida 'Test' - ootus on vastus 'Successfully logged in'.
Seejärel liikuda lahtri 'DN for finding users in AD/LDAP' juurde ja sisestada
dc=sise,dc=moraal,dc=ee
ja presside 'Refresh users', ootus on näha paneelis 'LDAP users' midagi sellist, '0/47 created'. Pressides View users näeb kataloogi sisu.
smtp teenusega integratsioon
smtp integratsiooni kasutatakse
- invite jaoks
smtp andmete kirjeldamiseks sobib liikuda
System settings -> Email service - Mailer config
ning kasutada nt selliseid väärtusi
- Sender's email - passwork@auul.pri.ee
- TODO
Kasutamine
TODO
Haldusprotseduurid
- varundus ja taaste
- export ja import
Versiooni uuendmine
TODO
Infoarhitektuur
Väited
- Kõige peamisem andmete salvestamise nö konteiner on 'vault'
- Kasutaja saab vaikimisi moodustada vaultisid, kui ta neis olevatele saladustele ligipääsu teistega ei jaga, jääb vault privaateseks
- Passwork kasutajaid saab organiseerida gruppidesse (user group ehk ug-)
Passwork sisu hieraria on selline
Vault-1 Vault-2 | | | | | | |----- Folder-1-a |---- Folder-2-a | | | | | | | | | |----- Password-1-a-1 | |----- Password-2-a-1 | |----- Password-1-a-2 | |----- Password-2-a-2 | ... | ... | | ... | |----- Folder-1-b | | |----- Password-1-b-1 | ... | |----- Password-1-b-2 | | |---- Name-1-b-2-a |---- Login-1-b-2-a |---- Password-1-b-2-a |---- URL-1-b-2-a | ... | |---- Name-1-b-2-b |---- Login-1-b-2-b |---- Password-1-b-2-b |---- URL-1-b-2-b ...
- Passwork 'Password' sissekande field on kõige elementaarsem info esinemise element
Kontseptuaalselt võiks passwork lahendust kasutada sellise mõtlemisega
- folderite abil moodustatakse ressrusside parvi (nt rg-infosysteem-yks, rg-infosysteem-kaks, rg-pve, rg-tulemyyr, rg-storage)
- kasutajate gruppide abil moodustatakse kasutajate parvi (nt ug-is-yks-sysadm, ug-is-yks-appadm, ug-is-yks-user, ug-pve-sysadm, ug-storage-sysadm)
- passwork acl süsteemi abil ühendatakse ressurside ja gruppide parvi omavahel kokku
ressursside-infovarade-infosüsteemide paigutamine kolme dimensiooni
- internal vs external dimensioon - kas kasutajad on eranditult haldusüksusest või tegemist on internetti publitseeritud teenusega
- core vs leaf dimensioon - kas tegemist on tuum teenusega, st teenusega mis ei sõltu millestki muust (nt kettakast); või on tegemist paljudest komponentidest sõltuva lahendusega (nt lõppkasutajate teenindav infosüsteem avalikus internetis (sõltub kettakastist, virtualiseerimise platvormist, tulemüürist)
- prod-test-dev dimensioon - kas tegu on toodangu või test kasutusjuhtumiga infosüsteemist
Nt võiks kasutada selliseid vault nimesid
- vlt-core-int-prod - sisemise publiku kasutamiseks tuum ressruss - nt kettakast
- vlt-core-ext-prod - avalikuks kasutamiseks tuum ressurss - sellist kombinatsiooni esineb nö looduses harva
- vlt-leaf-ext-prod - avalikuks kasutamiseks mõeldud infosüsteem - nt mingit sorti wordpress/drupal/mediawiki põhine avalik lahendus
- vlt-leaf-int-prod - sisemiseks kasutamiseks mõeldud infosüsteem - nt ipam halduslahendus
- vtl-leaf-ext-test - avalikuks testimiseks mõeldud infosüsteem - nt mingit sorti wordpress/drupal/mediawiki põhine avalik lahendus
Kusjuures dimensioonidele kombinatsioonidele vastavad erinevad vault'id.
Sellise lähenemise tulemusena on võimalik erinevatele passwork kasutajatele usaldada ligipääse erinevatele ressurssidele suhteliselt üksikajalikult ligipääsemisi kontrollides, nt
- ug-storage-sysadm - storage ressurssidele (füüsilise kettakasti haldusliides, ceph lahenduse node'id) saavad ligi süsteemiadministreerimise tegevuste asjus gruppi kuuluvad kasutajad (ja ega sellise ligipääsuga ei saagi eriti muud toimuda peale süsteemiadministreerimise, nt lun tekitamine, lun group seadistamine, host affinity kirjeldamine)
- rg-storage - storage ressursside gruppi kuuluvad Password sissekanded asuvad vastavas folderis
- kuigi nö tehniliselt saaks anda rg-storage resource-grupile ligipääse nt ug-is-yks-sysadm kasutajatele grupile, vaevalt see on kuigi asjakohane
Esmalt moodustatakse kasutajate grupp, antud juhul on vaatluse all grupp 'ug-pve-sysadm'
- grupis on üks kasutaja, algustähega M
- grupp on seotud ühele vaultile ligipääsemisega
- grupi nime võiks lugeda selliselt, et pve lahendusele soovitakse anda süsteemi-administreerimise alast ligipääsu
seejärel:
- seostatakse kasutajate grupiga kasutaja Mart Kask - paremal üleval 'USERS'
- seostatakse kasutajate grupiga ressursside grupp 'vlt-core-int-prod -> rg-pve', millele antakse ligipääs tasemel 'Administrator'
Tulemus paistab sedasi
- avatud on ressurside vaates 'vlt-core-int-prod -> rg-pve' osakond, ning Password tüüpi sissekanne 'pve-svc-02.auul.pri.ee'
- sissekande koosseisus on muude field'ide hulgas 'pve totp' nimega field, mille omadus on olla nö google authenticator compatible time-based-on-time-password
- eraldi on lisaks avatud pop-up aken pressides üleval 'Access to folder -> 2 users' peale, kust on näha millise grupp abil on mis privleeg antud
MongoDB
duser@pwrk-01:~$ docker exec -it passwork_db mongosh Current Mongosh Log ID: 6886ca4e9e57fe6db9a762f8 Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.5.0 Using MongoDB: 6.0.21-18 Using Mongosh: 2.5.0 For mongosh info see: https://www.mongodb.com/docs/mongodb-shell/ ... pw> show dbs admin 40.00 KiB config 108.00 KiB local 72.00 KiB pw 5.72 MiB pw> test> use pw switched to db pw pw> db.items.countDocuments() 193 pw>
vault andmete küsimine
pw> db.vaults.find({ name: /v-auul/i }) [ { _id: ObjectId('68729adc05fb74f7b20f9ee6'), createdAt: ISODate('2025-07-12T17:26:52.534Z'), creatorId: ObjectId('68729a5c6515f0d969054e06'), deleted: null, isSnapshotsMigrated: true, isUsersMigrated: true, masterKeyHash: null, name: 'v-auul', salt: null, updatedAt: ISODate('2025-07-12T21:40:47.599Z') } ] pw>
Folder info küsimine
pw> db.folders.find({ "name": /rg-pve/i }).pretty() [ { _id: ObjectId('68865a19531c35bd9306be7b'), ancestorIds: [], createdAt: ISODate('2025-07-27T16:55:53.214Z'), deleted: null, name: 'rg-pve', updatedAt: ISODate('2025-07-27T16:55:53.214Z'), vaultId: ObjectId('68865953a9c423aa79042ef2') } ] pw>
Praktiliselt sisu sissekannetega ei saa sellisel viisil töötada, kuna sisu-andmed on krüptitud.
Kasulikud lisamaterjalid
- TODO