Ansible vs. bezpečnost

Ansible vs. bezpečnost
« kdy: 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ší?


Re:Ansible vs. bezpečnost
« Odpověď #1 kdy: 01. 08. 2019, 08:18:35 »
Proč řešíš hesla a ne klíče?

Re:Ansible vs. bezpečnost
« Odpověď #2 kdy: 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.

Re:Ansible vs. bezpečnost
« Odpověď #3 kdy: 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.

Re:Ansible vs. bezpečnost
« Odpověď #4 kdy: 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.


Re:Ansible vs. bezpečnost
« Odpověď #5 kdy: 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

Re:Ansible vs. bezpečnost
« Odpověď #6 kdy: 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.

Re:Ansible vs. bezpečnost
« Odpověď #7 kdy: 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?
« Poslední změna: 01. 08. 2019, 10:57:42 od Jirka_hav »

Re:Ansible vs. bezpečnost
« Odpověď #8 kdy: 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.

ETNyx

Re:Ansible vs. bezpečnost
« Odpověď #9 kdy: 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

« Poslední změna: 01. 08. 2019, 12:23:43 od ETNyx »

Re:Ansible vs. bezpečnost
« Odpověď #10 kdy: 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.