GNU/Linux >> Znalost Linux >  >> Linux

Správa clusteru linuxových počítačů za firewally

Řešení 1:

Stahujte aktualizace, netlačte

Jak budete škálovat, nebude možné provést tlačit aktualizace všech vašich produktů.

  • Budete muset sledovat každý jeden zákazník, z nichž každý může mít jinou konfiguraci brány firewall.
  • Budete muset vytvořit příchozí připojení přes firewall zákazníka, což by vyžadovalo přesměrování portů nebo jiný podobný mechanismus. Toto je bezpečnostní riziko pro vaše zákazníky

Místo toho nechte své produkty pravidelně „vytahovat“ aktualizace a poté můžete na straně serveru přidat další kapacitu, jak budete růst.

Jak?

Tento problém již byl vyřešen, jak jste navrhl. Zde je několik přístupů, které mě napadají.

  • pomocí apt :Použijte vestavěný systém apt s vlastním seznamem PPA a zdrojů. Jak nastavím PPA?
    • Ne: Pokud nepoužíváte veřejnou hostingovou službu, jako je launchpad, není nastavení vlastního systému balení apt PPA + pro slabé srdce.
  • pomocí ssh :Vygenerujte veřejný klíč SSH pro každý produkt a poté přidejte klíč tohoto zařízení na své aktualizační servery. Pak stačí mít váš software rsync / scp požadované soubory.
    • Ne: Musíte sledovat (a zálohovat!) všechny veřejné klíče pro každý produkt, který odešlete.
    • Pro :Bezpečnější než nezpracované stahování, protože k aktualizacím mají přístup pouze zařízení s nainstalovaným veřejným klíčem.
  • nezpracované stahování + kontrola podpisu :

    • Zveřejněte někde podepsaný soubor aktualizace (Amazon S3, FTP server atd.)
    • Váš produkt pravidelně kontroluje aktualizační soubor, který má být změněn, a poté stahuje/ověřuje podpis.
    • Kon :V závislosti na tom, jak to nasadíte, mohou být soubory veřejně přístupné (což může usnadnit zpětnou analýzu a hackování vašeho produktu)
  • přípustné :Ansible je skvělý nástroj pro správu systémových konfigurací. Je to v říši loutek / kuchařů, ale je bez agentů (používá python) a je navrženo tak, aby bylo idempotentní. Pokud by nasazení vašeho softwaru vyžadovalo komplikovaný bash skript, použil bych nástroj jako tento, aby bylo provádění aktualizací méně komplikované.

Samozřejmě existují i ​​jiné způsoby, jak toho dosáhnout. Ale přivádí mě to k důležitému bodu.

Podepište/ověřte své aktualizace!

Bez ohledu na to, co děláte, je to nezbytné že máte mechanismus, který zajistí, že s vaší aktualizací nebylo manipulováno. Uživatel se zlými úmysly by se mohl vydávat za váš aktualizační server v jakékoli z výše uvedených konfigurací. Pokud aktualizaci neověříte, vaše schránka je hodně snadnější hacknout a dostat se do.

Dobrým způsobem, jak toho dosáhnout, je podepsat aktualizační soubory. Budete si muset udržovat certifikát (nebo za to někomu zaplatit), ale budete si moci nainstalovat otisk prstu na každé ze svých zařízení, než je odešlete, aby mohlo odmítnout aktualizace, se kterými bylo manipulováno.

Fyzické zabezpečení

Samozřejmě, pokud má někdo fyzický přístup k nasazení zákazníka, může server snadno převzít. Ale alespoň nemohou zaútočit na ostatní nasazení! Fyzická bezpečnost je pravděpodobně odpovědností vašeho zákazníka.

Pokud byste na chvíli chtěli, představte si, co by se stalo, kdybyste pro aktualizace použili rozsáhlou síť OpenVPN... Mohli by pak použít kompromitovaný server k útoku na každou instanci na VPN

Zabezpečení

Ať děláte cokoli, zabezpečení musí být zabudováno od začátku. Nezkracujte se zde – pokud tak učiníte, budete toho nakonec litovat.

Plné zabezpečení tohoto aktualizačního systému je mimo rozsah tohoto příspěvku a důrazně doporučuji najmout si konzultanta, pokud vy nebo někdo z vašeho týmu nemáte v této oblasti znalosti. Stojí to za každý cent.

Řešení 2:

Opravdu k nim potřebujete přístup?

Nebo je jen aktualizovat? Protože je můžete nechat aktualizovat samy, podobně jako se apt aktualizuje sám bez dozoru.

Pokud se potřebujete přihlásit

Proč ne OpenSSH démon naslouchající přes přesměrování portů? Každý zákazník může mít pro zabezpečení samostatný klíč a bude připojen pouze v případě potřeby.

Na vašich zákaznících

Musíte také vzít v úvahu, co je zákazník ochoten přijmout. Nemusí jim vyhovovat žádný vzdálený přístup k jejich síti nebo jim mohou vyhovovat pouze specifické technologie/konfigurace.

Řešení 3:

Navrhuji nástroj pro orchestraci, jako je Puppet nebo Salt.

Salt je fronta zpráv a může vytvořit trvalé odchozí připojení z vašeho zařízení k hlavnímu serveru. Můžete to použít ke spouštění libovolných příkazů na zařízeních... jako apt-get .

Druhou možností je Puppet, kde stále máte hlavní server a klienti vytvářejí odchozí připojení ze svých umístění.

Oba tyto nástroje používám k podobnému účelu, kdy nemusím mít administrativní kontrolu nad firewallem.


Linux
  1. Vydání letní aktualizace Kali Linux 1.0.4

  2. Aktualizujte PyCharm na Linuxu

  3. Aktualizujte python na linuxu 2.7 až 3.5

  1. Jak aktualizovat symbolický odkaz pro Linux

  2. Plánování aktualizací v Linuxu pomocí yum-cron

  3. Jak aktualizovat Ubuntu, když nejste připojeni k internetu?

  1. Co dělá Linux udržitelným OS

  2. Správa účtů místních skupin v Linuxu

  3. Jak aktualizovat Debian Linux