Fórum Root.cz

Hlavní témata => Server => Téma založeno: Jirka_hav 01. 08. 2019, 08:00:40

Název: Ansible vs. bezpečnost
Přispěvatel: Jirka_hav 01. 08. 2019, 08:00:40
Doposud jsem zpravoval severy manuálně a z bezpečnostních důvodů jsem měl na každém severu jiné heslo. Teď jsem si začal hrát s ansible a trochu jsem narazil. Z toho co jsem dokázal zjistit se mi totiž zdá, že pokud chci spustit playbook nad více servery a chci escalovat práva pomocí sudo, tak všechny tyto servery musí mít stejné sudo heslo, což mi nepřijde příliš bezpečné. Jak se toto  obvykle řeší?
Název: Re:Ansible vs. bezpečnost
Přispěvatel: Ondra Satai Nekola 01. 08. 2019, 08:18:35
Proč řešíš hesla a ne klíče?
Název: Re:Ansible vs. bezpečnost
Přispěvatel: Jirka_hav 01. 08. 2019, 08:53:57
K serverů jako takovým se přihlašuji přes ssh pomocí klíče, ale po přihlášení se mě ještě sudo zeptá na heslo a to je to heslo, ktré řeším.
Název: Re:Ansible vs. bezpečnost
Přispěvatel: Filip Jirsák 01. 08. 2019, 08:54:44
Pro správu serverů se nepoužívá sudo. sudo je určené pro případy, kdy je potřeba běžnému uživateli (ne správci) umožnit jednu nebo pár specifických činností, ke kterým by jinak bylo potřeba oprávnění roota. Navíc už to bylo překonáno možnostmi capabilities.
Název: Re:Ansible vs. bezpečnost
Přispěvatel: James_Scott 01. 08. 2019, 09:02:48
Spoustet ansible s beznym uzivatelem a eskalovat pomoci sudo je celkem bezna vec. Pokud mas na kazdem stroji jine heslo, tak bych ho ulozil do souboru a definoval ho v host_vars.
Název: Re:Ansible vs. bezpečnost
Přispěvatel: Ondřej Vaniš 01. 08. 2019, 09:15:59
Pro přihlášení pomocí ansible vytvořit dedikovaného uživatele a přihlašovat se pomocí klíčů.
Potom pro tohoto uživatele upravit sudoers aby nevyžadoval heslo.
https://www.blaszkowski.com/2018/09/02/ansible-add-user-to-sudo (https://www.blaszkowski.com/2018/09/02/ansible-add-user-to-sudo)
Název: Re:Ansible vs. bezpečnost
Přispěvatel: Ondřej Kolín 01. 08. 2019, 09:43:23
Velke mnozstvi tehlech problemu resi projekt debops. Minimalne pro inspiraci se to hodi (role se jmenuje 'bootstrap').

Resi to presne jak je napsano vyse, jeden uzivatel se sudem bez hesla a tenhle uzivatel se prihlasuje na ty stroje pres ssh klice.
Název: Re:Ansible vs. bezpečnost
Přispěvatel: Jirka_hav 01. 08. 2019, 10:55:28
Pro správu serverů se nepoužívá sudo.
Co by se tedy místo sudo mělo používat? Jak by měl správce ideálním případě postupovat?

Pokud mas na kazdem stroji jine heslo, tak bych ho ulozil do souboru a definoval ho v host_vars.
Tohle moc nechápu mohl by jsi to trochu rozvést?
Název: Re:Ansible vs. bezpečnost
Přispěvatel: Filip Jirsák 01. 08. 2019, 11:15:36
Co by se tedy místo sudo mělo používat? Jak by měl správce ideálním případě postupovat?
Bavíme se o správě serverů? Pak místo sudo nepoužívat nic. Správce se přihlásí jako root, žádné sudo tedy nepotřebuje. Pokud chce správce dělat něco, k čemu nepotřebuje rootovská oprávnění, ve vedlejším terminálu se přihlásí jako běžný uživatel.
Název: Re:Ansible vs. bezpečnost
Přispěvatel: ETNyx 01. 08. 2019, 12:19:26
Tohle moc nechápu mohl by jsi to trochu rozvést?

pro každy stroj můžete nastavit proměné pro připojení zvlášť, já ukládám co stroj to adresar asi nějak takto:
Kód: [Vybrat]
/skupina/hosts_vars/fdqn/{vars.yaml,vault.yaml}
ve vars.yaml definuji veškeré parametry pro připojení a mezi nimi heslo pro sudo
Kód: [Vybrat]
ansible_become: true
ansible_become_pass: '{{ vault_sudo_pass }}'

v tomto případě je heslo schované v ansible valut aby se nepoflakovalo v plaintextu + určitě koukněte do dokumentace podle toho jakou verzi ansible používáte druhá proměná může být ansible_become_password

Název: Re:Ansible vs. bezpečnost
Přispěvatel: drmartins 02. 08. 2019, 12:08:50
já to dělám tak že na začátku playbooku je toto

Citace
  user: uživatel
  become: yes
  become_method: su
  become_user: root

a v /etc/pam.d/su
mám tento řádek

Citace
auth       sufficient pam_wheel.so trust group=uživatel

ale samozřejmě používám přihlášení ssh klíči. Přes ssh se mi vůbec nedá heslem přihlásit

tzn. uživatel pod kterým pouštím ansible použije svůj privátní klíč. Jeho public klíč je na jednotlivých strojích rozdistribuován. Takže pak žádná hesla netřeba řešit.