{"id":1039,"date":"2021-01-16T17:15:00","date_gmt":"2021-01-16T15:15:00","guid":{"rendered":"https:\/\/macadmin.cz\/?page_id=1039"},"modified":"2021-01-29T14:07:16","modified_gmt":"2021-01-29T12:07:16","slug":"prace-pro-logicworks","status":"publish","type":"page","link":"https:\/\/macadmin.cz\/?page_id=1039","title":{"rendered":"Pr\u00e1ce pro Logicworks"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Hromadn\u00e1 spr\u00e1va Apple za\u0159\u00edzen\u00ed<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">MDM<\/h2>\n\n\n\n<p>Dne\u0161n\u00ed spr\u00e1va Apple za\u0159\u00edzen\u00ed se to\u010d\u00ed kolem MDM \u0159e\u0161en\u00ed a <a href=\"https:\/\/support.apple.com\/guide\/deployment-reference-ios\/apd69638c3ff\/web\" data-type=\"URL\" data-id=\"https:\/\/support.apple.com\/guide\/deployment-reference-ios\/apd69638c3ff\/web\">Apple Bussiness Manager<\/a> port\u00e1lu. Pro z\u00e1kazn\u00edky \u0159e\u0161\u00edme p\u0159edev\u0161\u00edm produkty <a href=\"https:\/\/www.vmware.com\/cz\/products\/workspace-one.html\" data-type=\"URL\" data-id=\"https:\/\/www.vmware.com\/cz\/products\/workspace-one.html\">VMware Workspace ONE<\/a>, <a href=\"https:\/\/simplemdm.com\" data-type=\"URL\" data-id=\"https:\/\/simplemdm.com\">SimpleMDM<\/a> a <a href=\"https:\/\/www.jamf.com\/products\/jamf-pro\/\" data-type=\"URL\" data-id=\"https:\/\/www.jamf.com\/products\/jamf-pro\/\">Jamf Pro<\/a> zejm\u00e9na kv\u016fli jejich pou\u017eit\u00ed pro macOS. Potkal jsem i m\u00e9n\u011b progresivn\u00ed \u0159e\u0161en\u00ed jako Microsoft Intune, Mobile iron, Hexnode. Nelze zapomenou na sp\u00ed\u0161 nechvaln\u011b zn\u00e1m\u00fd Profile Manager od Applu.<\/p>\n\n\n\n<p>Pro jednoho z klient\u016f jsem zpracoval podrobnou srovn\u00e1vac\u00ed studii, kdy jsem proti s sobe postavil VMware Workspace ONE, Jamf Pro a Microsoft Intune.<\/p>\n\n\n\n<p>VMware Workspace ONE UEM sice obsahuje n\u00e1stroj Munki, ale pro n\u011bkter\u00e9 z\u00e1kazn\u00edky je prakti\u010dt\u011bj\u0161\u00ed provozovat Muni samostatn\u011b. Pro z\u00e1kazn\u00edky jsem napsal synchroniza\u010dn\u00ed n\u00e1stroj <a class=\"\" href=\"https:\/\/github.com\/EtneteraLogicworks\/wso-munki-manifest-sync\">wso-munki-manifest-sync<\/a>, kter\u00fd pomoc\u00ed API z WSO zjist\u00ed vazby mezi po\u010d\u00edta\u010di, skupinami a u\u017eivateli a prom\u00edtne je do struktury manifest soubor\u016f v Munki repozit\u00e1\u0159i.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Automated Device Enrollment<\/h2>\n\n\n\n<p>Automated Device Enrollment (d\u0159\u00edve sp\u00ed\u0161e zn\u00e1me pod akronymem DEP &#8211; Device Enrollment Program) je zlat\u00fdm gr\u00e1lem deploymentu Apple za\u0159\u00edzen\u00ed posledn\u00ed doby. U\u017eivatel\u00e9 vybal\u00ed nov\u00fd Mac, iPad nebo iPhone z krabice a ten se s\u00e1m automaticky zapoj\u00ed do firemn\u00ed spr\u00e1vy, kter\u00e1 zajist\u00ed v\u0161e pot\u0159ebn\u00e9. Kombinace ADE a MDM je v celku p\u0159\u00edmo\u010dar\u00e1 z\u00e1le\u017eitost. Ne v\u0161ak nutn\u011b v p\u0159\u00edpad\u011b macOS.<\/p>\n\n\n\n<p>Jeliko\u017e Macy lze hromadn\u011b spravovat i jin\u00fdmi n\u00e1stroji ne\u017e MDM a celkov\u011b nab\u00edzej\u00ed vy\u0161\u0161\u00ed flexibilitu p\u0159izp\u016fsoben\u00ed na m\u00edru situaci, m\u016f\u017ee b\u00fdt v jist\u00fdch p\u0159\u00edpadech pot\u0159eba, aby b\u011bhem ADE procesu do\u0161lo k instalaci dal\u0161\u00edch n\u00e1stroj\u016f. Konceptu se ob\u010das \u0159\u00edk\u00e1 custom DEP a cel\u00fd je podstaven na digit\u00e1ln\u011b podepsan\u00e9m bal\u00ed\u010dku poslan\u00e9ho z MDM na klienta. jeho obsahem m\u016f\u017ee b\u00fdt cokoliv, co na Macu spust\u00edte.<\/p>\n\n\n\n<p>Velmi popul\u00e1rn\u00ed n\u00e1stroj <a class=\"\" href=\"https:\/\/github.com\/macadmins\/installapplications\">installapplications<\/a> zajist\u00ed se strany serveru jednozna\u010dn\u011b definovan\u00fd sekven\u010dn\u00ed po\u0159ad\u00ed krok\u016f, kter\u00e9 se na klientu vykonaj\u00ed. Komunikaci s u\u017eivatelem lze \u0159e\u0161it pomoc\u00ed oken nebo notifikac\u00ed nastaven\u00fdch skrz <a href=\"https:\/\/gitlab.com\/Mactroll\/DEPNotify\" data-type=\"URL\" data-id=\"https:\/\/gitlab.com\/Mactroll\/DEPNotify\">DEPNotify<\/a>. Sou\u010d\u00e1st\u00ed procesu m\u016f\u017ee b\u00fdt tak\u00e9 nap\u0159\u00edklad onboarding pr\u016fvodce <a href=\"https:\/\/www.octory.io\" data-type=\"URL\" data-id=\"https:\/\/www.octory.io\">Octory<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Open source n\u00e1stroje<\/h2>\n\n\n\n<p>Pro efektivn\u00ed spr\u00e1vu macOS schopnosti MDM ne v\u017edy sta\u010d\u00ed nebo nemus\u00ed b\u00fdt nejlep\u0161\u00edm \u0159e\u0161en\u00edm pro v\u0161echny \u00fakony. <\/p>\n\n\n\n<p>V Logicworks provozuji <a href=\"https:\/\/www.munki.org\/munki\/\" data-type=\"URL\" data-id=\"https:\/\/www.munki.org\/munki\/\">Munki<\/a> infrastrukturu pro na\u0161e z\u00e1kazn\u00edky. Soubory jsou poskytov\u00e1na pomoc\u00ed webserveru z v\u00edce uzl\u016f, vz\u00e1jemn\u011b synchronizovan\u00fdch n\u00e1strojem <a href=\"https:\/\/www.cis.upenn.edu\/~bcpierce\/unison\/\" data-type=\"URL\" data-id=\"https:\/\/www.cis.upenn.edu\/~bcpierce\/unison\/\">unison<\/a>. Klienti vyb\u00edraj\u00ed uzel pomoc\u00ed DNS load balancingu. Spojen\u00ed je v\u017edy zabezpe\u010den\u00e9 pomoc\u00ed TLS 1.2\/1.3. Munki repozit\u00e1\u0159 sd\u00edlen\u00fd mezi v\u00edce z\u00e1kazn\u00edky vy\u017eaduje odd\u011blen\u00ed n\u011bkter\u00fdch soubor\u016f na \u00farovni webserveru, co\u017e zaji\u0161\u0165uje autentizac\u00ed. Stahov\u00e1n\u00ed soubor\u016f m\u016f\u017ee b\u00fdt podstatn\u011b urychleno pou\u017eit\u00edm cache webserver\u016f v lok\u00e1ln\u00edch s\u00edt\u00edch z\u00e1kazn\u00edk\u016f a HTTP p\u0159esm\u011brov\u00e1n\u00ed. \u00dapravy repozit\u00e1\u0159e prob\u00edhaj\u00ed po s\u00edti z virtualizovan\u00e9ho macOS, kter\u00fd k dat\u016fm p\u0159istupuje skrz \u0161ifrovan\u00fd protokol SMB3 (<a href=\"https:\/\/www.samba.org\" data-type=\"URL\" data-id=\"https:\/\/www.samba.org\">Samba<\/a>). <\/p>\n\n\n\n<p>O automatick\u00e9 stahov\u00e1n\u00ed nejnov\u011bj\u0161\u00edch verz\u00ed instala\u010dn\u00edch bal\u00ed\u010dk\u016f software se star\u00e1 <a href=\"https:\/\/github.com\/autopkg\/autopkg\" data-type=\"URL\" data-id=\"https:\/\/github.com\/autopkg\/autopkg\">AutoPkg<\/a>. Ten b\u011b\u017e\u00ed jednou za den a zm\u011bny hl\u00e1s\u00ed emailem i do firemn\u00edho Slack kan\u00e1lu. Velkou \u010d\u00e1st recept\u016f v m\u00e9m autopkg repozit\u00e1\u0159i <a class=\"\" href=\"https:\/\/github.com\/autopkg\/MichalMMac-recipes\">MichalMMac-recipes<\/a> jsem vytvo\u0159il pro pou\u017eit\u00ed v Logicworks.<\/p>\n\n\n\n<p>Instala\u010dn\u00ed bal\u00ed\u010dky pro macOS vytv\u00e1\u0159\u00edme p\u0159ev\u00e1\u017en\u011b n\u00e1strojem <a href=\"https:\/\/github.com\/munki\/munki-pkg\" data-type=\"URL\" data-id=\"https:\/\/github.com\/munki\/munki-pkg\">munki-pkg.<\/a> Na\u0161i technici pou\u017e\u00edvaj\u00ed instala\u010dn\u00ed bal\u00ed\u010dky pro zapojen\u00ed Mac\u016f do Munki u klient\u016f, kte\u0159\u00ed nemaj\u00ed MDM. Aby dostali digit\u00e1ln\u011b podepsan\u00fd a hlavn\u011b notarizovan\u00fd bal\u00ed\u010dek, <a href=\"https:\/\/github.com\/munki\/munki-pkg\/pull\/42\" data-type=\"URL\" data-id=\"https:\/\/github.com\/munki\/munki-pkg\/pull\/42\">roz\u0161\u00ed\u0159il<\/a> jsem munki-pkg o schopnost notarizace. Kv\u016fli po\u017eadavk\u016fm na notarizaci do\u0161lo i na <a href=\"https:\/\/groups.google.com\/g\/munki-dev\/c\/FADUXPWJeds\/m\/VjbiqQ4gAQAJ\" data-type=\"URL\" data-id=\"https:\/\/groups.google.com\/g\/munki-dev\/c\/FADUXPWJeds\/m\/VjbiqQ4gAQAJ\">podepisov\u00e1n\u00ed<\/a> Pythonu 3, kter\u00fd je p\u0159ibalen k Munki, na\u0161\u00edm v\u00fdvoj\u00e1\u0159sk\u00fdm certifik\u00e1tem.<\/p>\n\n\n\n<p>Macy monitorujeme webovou aplikac\u00ed <a href=\"https:\/\/github.com\/munkireport\/munkireport-php\" data-type=\"URL\" data-id=\"https:\/\/github.com\/munkireport\/munkireport-php\">MunkiReport<\/a>, kterou v na\u0161ich produktech najdete pod ozna\u010den\u00edm <a href=\"https:\/\/www.logicworks.cz\/blog\/sensei-macreport-co-vse-sledujeme-v-pocitaci\/\" data-type=\"URL\" data-id=\"https:\/\/www.logicworks.cz\/blog\/sensei-macreport-co-vse-sledujeme-v-pocitaci\/\">Sensei  MacReport<\/a>. Po kolegovi jsem p\u0159evzal a z\u00e1sadn\u011b p\u0159ed\u011blal skript <a class=\"\" href=\"https:\/\/github.com\/EtneteraLogicworks\/munkireport-parser\">munkireport-parser<\/a>, kter\u00fd skrz API aplikace zji\u0161\u0165uje probl\u00e9mov\u00e9 za\u0159\u00edzen\u00ed, jejich\u017e seznam je zas\u00edl\u00e1n technik\u016fm.<\/p>\n\n\n\n<p>V p\u0159\u00edpad\u011b pot\u0159eby vyu\u017e\u00edvat v macOS funce Active Directory doporu\u010dujeme volnou integraci. T\u00e9 doc\u00edl\u00edme bu\u010f n\u00e1strojem <a href=\"https:\/\/nomad.menu\" data-type=\"URL\" data-id=\"https:\/\/nomad.menu\">NoMAD<\/a> nebo v nov\u011bj\u0161\u00ed macOS SSO dopl\u0148kem p\u0159\u00edmo v syst\u00e9mu. Ob\u011b mo\u017enosti maj\u00ed sv\u00e9 p\u0159ednosti.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dal\u0161\u00ed Apple slu\u017eby<\/h2>\n\n\n\n<p>Pro Logicworks jsem nasadil slu\u017ebu <a href=\"https:\/\/support.apple.com\/guide\/deployment-reference-ios\/intro-to-content-caching-ior3da85399f\/web\" data-type=\"URL\" data-id=\"https:\/\/support.apple.com\/guide\/deployment-reference-ios\/intro-to-content-caching-ior3da85399f\/web\">Content Caching<\/a> poskytuj\u00edc\u00ed \u010dasto stahovan\u00fd obsah z Apple CDN lok\u00e1ln\u011b z Macu, na kter\u00e9m b\u011b\u017e\u00ed. Na prvn\u00ed pohled se m\u016f\u017ee zd\u00e1t, \u017ee na tom p\u0159ece nic nyn\u00ed, kdy\u017e sta\u010d\u00ed zapnout jeden p\u0159ep\u00edna\u010d. Ve slo\u017eit\u011bj\u0161\u00ed s\u00edti v\u0161ak Content Caching <a href=\"https:\/\/support.apple.com\/guide\/mac-help\/enable-content-cache-discovery-multiple-mchld4ab5cdc\/mac\" data-type=\"URL\" data-id=\"https:\/\/support.apple.com\/guide\/mac-help\/enable-content-cache-discovery-multiple-mchld4ab5cdc\/mac\">vy\u017eaduje<\/a> o n\u011bco v\u00edce p\u00e9\u010de.<\/p>\n\n\n\n<p>Dokud nep\u0159i\u0161la pandemie, provozovala firma vcelku \u00fasp\u011b\u0161n\u011b p\u016fj\u010dovnu iPad\u016f. Pro jejich snadnou p\u0159\u00edpravu jsem p\u0159ipravil iMac s <a href=\"https:\/\/apps.apple.com\/us\/app\/apple-configurator-2\/id1037126344?mt=12\" data-type=\"URL\" data-id=\"https:\/\/apps.apple.com\/us\/app\/apple-configurator-2\/id1037126344?mt=12\">Apple Configurator 2<\/a>, s n\u00edm\u017e se iPady mazaly, aktualizovaly a zapojovaly do MDM skrz Automated Device Management.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Linuxov\u00e1 infrastruktura<\/h1>\n\n\n\n<p>Na za\u010d\u00e1tku jsem zd\u011bdil starou infrastrukturu hostuj\u00edc\u00ed weby a maily vyu\u017e\u00edvaj\u00edc\u00ed OS X Server. Tu bylo nutn\u00e9 nahradit n\u011b\u010d\u00edm nov\u011bj\u0161\u00edm. \u010c\u00e1st funkcionality p\u0159evzaly slu\u017eby v cloudu (mail), ale n\u011bkter\u00e9 jsme si ponechali (webhosting). Nav\u00e1zal jsem na p\u0159edchoz\u00ed <a href=\"https:\/\/macadmin.cz\/?page_id=869\" data-type=\"page\" data-id=\"869\">spolupr\u00e1ci<\/a> s Vojtou Myslivcem, kter\u00fd se z\u00e1sadn\u00ed m\u00edrou pod\u00edlel na zprovozn\u011bn\u00ed webhostingu a mailserveru.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Config Management<\/h2>\n\n\n\n<p>Naprost\u00e1 v\u011bt\u0161ina v\u011bc\u00ed, kter\u00e9 v na\u0161\u00ed infrastruktu\u0159e d\u011bl\u00e1me, je vykon\u00e1na pomoc\u00ed <a href=\"https:\/\/www.ansible.com\" data-type=\"URL\" data-id=\"https:\/\/www.ansible.com\">Ansible<\/a> config management syst\u00e9mu. Jsem zast\u00e1nci filosofie infrastructure as code a po\u010det ad-hoc \u00fakon\u016f se sna\u017e\u00edme udr\u017eet na minimu. K\u00f3d je verzov\u00e1n v <a href=\"https:\/\/git-scm.com\" data-type=\"URL\" data-id=\"https:\/\/git-scm.com\">gitem<\/a> a diskutov\u00e1n v intern\u00edm GitLabu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">VPN<\/h2>\n\n\n\n<p>eden z na\u0161ich posledn\u00edch projekt\u016f spo\u010d\u00edv\u00e1 ve vytvo\u0159en\u00ed vlastn\u00ed IKEv2 IPSec infrastruktury postaven\u00e9 na n\u00e1stroji <a href=\"https:\/\/www.strongswan.org\" data-type=\"URL\" data-id=\"https:\/\/www.strongswan.org\">Strongswan<\/a>. Vyu\u017e\u00edv\u00e1me IPsec tunely k propojen\u00ed firemn\u00edch s\u00edt\u00ed se s\u00edt\u011bmi n\u011bkter\u00fdch z\u00e1kazn\u00edk\u016f. Servery navazuj\u00ed \u0161ifrovan\u00e1 spojen\u00ed dynamicky podle pot\u0159eby. Rovn\u011b\u017e je implementovan\u00fd automatick\u00fd failover na z\u00e1lo\u017en\u00ed server v p\u0159\u00edpad\u011b v\u00fdpadku nebo \u00fadr\u017eby prim\u00e1rn\u00edho.<\/p>\n\n\n\n<p>Kone\u010dn\u011b m\u016f\u017eeme nahradit zastaral\u00e9 OpenVPN \u0159e\u0161en\u00ed za podstatn\u011b lep\u0161\u00ed IKEv2 IPSec. VPN je navr\u017eena pro split-tunnel a split-dns re\u017eim. Na za\u0159\u00edzen\u00edch VPN konfigurujeme za pomoci MDM, co\u017e n\u00e1m d\u00e1v\u00e1 dal\u0161\u00ed mo\u017enosti jako nap\u0159\u00edklad automatick\u00e9 navazov\u00e1n\u00ed spojen\u00ed (on-demand).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Monitoring<\/h2>\n\n\n\n<p>Pro pot\u0159eby rozv\u00edjej\u00edc\u00ed se infrastruktury jsem nasadil monitorovac\u00ed syst\u00e9m <a href=\"https:\/\/icinga.com\/docs\/icinga-2\/latest\/\" data-type=\"URL\" data-id=\"https:\/\/icinga.com\/docs\/icinga-2\/latest\/\">Icinga 2<\/a>. Nejprve v re\u017eimu jednoho uzlu, kter\u00fd se p\u0159ipojuje na dozorovan\u00e9 syst\u00e9my pomoc\u00ed SSH. Pozd\u011bji byl syst\u00e9m p\u0159ed\u011bl\u00e1n na distribuovan\u00fd model, kdy na ka\u017ed\u00e9m uzlu b\u011b\u017e\u00ed Icinga 2 slu\u017eba a prob\u00edh\u00e1 komunikace v t\u0159\u00ed\u00farov\u0148ov\u00e9m modelu master &lt;-&gt; satellite &lt;-&gt; client.<\/p>\n\n\n\n<p>Stavy sledovan\u00fdch uzl\u016f a slu\u017eeb je mo\u017en\u00e9 administrovat ve webov\u00e9m rozhran\u00ed <a href=\"https:\/\/icinga.com\/docs\/icinga-web-2\/latest\/\" data-type=\"URL\" data-id=\"https:\/\/icinga.com\/docs\/icinga-web-2\/latest\/\">Icinga Web 2<\/a>. V\u00fdkonostn\u00ed data jsou ukl\u00e1d\u00e1ny do datab\u00e1ze <a href=\"https:\/\/www.influxdata.com\" data-type=\"URL\" data-id=\"https:\/\/www.influxdata.com\">influxDB<\/a>, odkud je do dashboard\u016f na\u010d\u00edt\u00e1 <a href=\"https:\/\/grafana.com\" data-type=\"URL\" data-id=\"https:\/\/grafana.com\">Grafana<\/a>.<\/p>\n\n\n\n<p>Syst\u00e9m monitorov\u00e1n\u00ed byl pozd\u011bji nasazen v druh\u00e9 instanci i do s\u00edti na\u0161ich klient\u016f. Server v roli satellite kontroluje zejm\u00e9na pomoc\u00ed SNMPv3 stav v\u0161emo\u017en\u00fdch s\u00ed\u0165ov\u00fdch prvk\u016f a server\u016f. Pro pot\u0159eby monitoringu udr\u017euji vlastn\u00ed sadu skript\u016f <a class=\"\" href=\"https:\/\/github.com\/EtneteraLogicworks\/monitoring-scripts-logicworks\">monitoring-scripts-logicworks<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DNS<\/h2>\n\n\n\n<p>V lok\u00e1ln\u00edch s\u00edt\u00edch pou\u017e\u00edv\u00e1me DNS server <a href=\"https:\/\/www.isc.org\/bind\/\" data-type=\"URL\" data-id=\"https:\/\/www.isc.org\/bind\/\">BIND 9<\/a> ve funkc\u00edch autoritativn\u00edho serveru poskytuj\u00edc\u00ed m\u00edstn\u00ed z\u00f3ny a resolveru pro klienty. Z\u00f3ny se automaticky replikuj\u00ed na z\u00e1lo\u017en\u00ed server a v n\u011bkter\u00fdch p\u0159\u00edpadech je pro n\u011b pou\u017eit ACL.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aplikace<\/h2>\n\n\n\n<p>Pro praktick\u00e9 pou\u017eit\u00ed m\u00e1me nasazeno v\u00edcero webov\u00fdch aplikac\u00ed. N\u011bkter\u00e9 jsou zm\u00edn\u011bny v jin\u00fdch sekc\u00edch, proto\u017ee \u00fazce souvis\u00ed s n\u011bjak\u00fdm syst\u00e9m. Mezi ty samostatn\u011bj\u0161\u00ed pat\u0159\u00ed:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/netbox.readthedocs.io\/en\/stable\/\" data-type=\"URL\" data-id=\"https:\/\/netbox.readthedocs.io\/en\/stable\/\">NetBox<\/a> &#8211; dokumentace s\u00edt\u00ed z pohledu propojen\u00ed prvk\u016f a adresace. Pro aplikaci jsme nasadili datab\u00e1ze <a href=\"https:\/\/www.postgresql.org\" data-type=\"URL\" data-id=\"https:\/\/www.postgresql.org\">PostreSQL<\/a> a <a href=\"https:\/\/redis.io\" data-type=\"URL\" data-id=\"https:\/\/redis.io\">Redis<\/a>. Dokumentujeme intern\u00ed a z\u00e1kaznick\u00e9 s\u00edt\u011b.<\/li><li><a href=\"https:\/\/snipeitapp.com\" data-type=\"URL\" data-id=\"https:\/\/snipeitapp.com\">Snipe-IT<\/a> &#8211; inventarizace firemn\u00edch za\u0159\u00edzen\u00ed. Rovn\u011b\u017e nab\u00edz\u00edme jako slu\u017ebu pro z\u00e1kazn\u00edky pod n\u00e1zvem Sensei Inventory.<\/li><li><a href=\"https:\/\/about.gitlab.com\" data-type=\"URL\" data-id=\"https:\/\/about.gitlab.com\">GitLab<\/a> &#8211; spolupr\u00e1ce nad neve\u0159ejn\u00fdmi git repozit\u00e1\u0159i.<\/li><li><a href=\"https:\/\/wiki.js.org\" data-type=\"URL\" data-id=\"https:\/\/wiki.js.org\">Wiki.js<\/a> -wiki pro dokumentaci. Nyn\u00ed ve f\u00e1zi testov\u00e1n\u00ed. Pro pou\u017eiteln\u011bj\u0161\u00ed vyhled\u00e1vac\u00ed schopnosti jsem nasadil <a href=\"https:\/\/www.elastic.co\/elastic-stack\" data-type=\"URL\" data-id=\"https:\/\/www.elastic.co\/elastic-stack\">Elasticsearch<\/a>. <\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Identita<\/h2>\n\n\n\n<p>Centralizovanou spr\u00e1vu \u00fa\u010dt\u016f a jejich autentizaci zaji\u0161\u0165uje <a href=\"https:\/\/www.openldap.org\" data-type=\"URL\" data-id=\"https:\/\/www.openldap.org\">OpenLDAP<\/a> v HA re\u017eimu. Pro sna\u017e\u0161\u00ed obsluhu LDAP datab\u00e1ze pou\u017e\u00edv\u00e1me webovou aplikacei <a href=\"https:\/\/www.fusiondirectory.org\" data-type=\"URL\" data-id=\"https:\/\/www.fusiondirectory.org\">FusionDirectory<\/a>. <\/p>\n\n\n\n<p>S LDAP m\u00e1me propojeny v\u0161echny intern\u00ed aplikace a i n\u011bkter\u00e9 cloudov\u00e9. V pl\u00e1nu je nasadit SAML endpoint pro poskytnut\u00ed p\u0159ihla\u0161ovac\u00ed br\u00e1ny cloudov\u00fdm aplikac\u00edm a zredukovat po\u010det firemn\u00edch u\u017eivatelsk\u00fdch \u00fa\u010dtu na minimum.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Backup<\/h2>\n\n\n\n<p>Data mus\u00ed b\u00fdt z\u00e1lohov\u00e1na. Za\u010dal jsem se star\u0161\u00edmi serverem, extern\u00edm diskov\u00fdm polem a n\u00e1strojem <a href=\"https:\/\/rsnapshot.org\" data-type=\"URL\" data-id=\"https:\/\/rsnapshot.org\">rsnapshot<\/a>. Jen\u017ee s pot\u0159ebou z\u00e1lohovat data z\u00e1kazn\u00edk\u016f se uk\u00e1zalo, \u017ee diskov\u00e9 pole nedosta\u010duje.<\/p>\n\n\n\n<p>Pro druhou verzi backup serveru jsme zvolili Linuxov\u00fd RAID6, souborov\u00fd syst\u00e9m <a href=\"https:\/\/btrfs.wiki.kernel.org\/index.php\/Main_Page\" data-type=\"URL\" data-id=\"https:\/\/btrfs.wiki.kernel.org\/index.php\/Main_Page\">btrfs<\/a> a jeho snapshoty. O implementaci se postaral Vojta Myslivec, kter\u00fd n\u00e1sledn\u011b \u0159e\u0161il i jeden nep\u011bkn\u00fd <a href=\"https:\/\/lore.kernel.org\/linux-btrfs\/d3fced3f-6c2b-5ffa-fd24-b24ec6e7d4be@xmyslivec.cz\/#r\" data-type=\"URL\" data-id=\"https:\/\/lore.kernel.org\/linux-btrfs\/d3fced3f-6c2b-5ffa-fd24-b24ec6e7d4be@xmyslivec.cz\/#r\">bug<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Webhosting<\/h2>\n\n\n\n<p>Na\u0161im z\u00e1kazn\u00edk\u016fm nab\u00edz\u00edme hosting web\u016f v re\u017eimu sd\u00edlen\u00fd hosting a spravovan\u00fd virtu\u00e1l (VPS). V\u0161e za\u010d\u00edn\u00e1 u klasick\u00e9ho <a href=\"https:\/\/httpd.apache.org\" data-type=\"URL\" data-id=\"https:\/\/httpd.apache.org\">Apache<\/a> webserveru, av\u0161ak db\u00e1me na podporu modern\u00edch technologi\u00ed jako HTTP\/2 a TLS 1.3. Automatizovan\u00e9 nasazen\u00ed <a href=\"https:\/\/letsencrypt.org\" data-type=\"URL\" data-id=\"https:\/\/letsencrypt.org\">Let&#8217;s Encrypt<\/a> certifik\u00e1t\u016f je samoz\u0159ejmost, kterou provozujeme ji\u017e n\u011bkolik let.<\/p>\n\n\n\n<p>PHP provozujeme pod <a href=\"https:\/\/www.php.net\/manual\/en\/install.fpm.php\" data-type=\"URL\" data-id=\"https:\/\/www.php.net\/manual\/en\/install.fpm.php\">PHP-FPM<\/a>, co\u017e n\u00e1m umo\u017e\u0148uje odd\u011blit b\u011b\u017e\u00edc\u00ed procesy pod jednotliv\u00e9 u\u017eivatele a z\u00e1rove\u0148 \u0161k\u00e1lovat vyt\u00ed\u017een\u00ed dle pot\u0159eby. Podporujeme verze 5.6 a\u017e 8.0, ale 5.6 ji\u017e brzy po\u0161leme do k\u0159em\u00edkov\u00e9ho nebo.<\/p>\n\n\n\n<p>File syst\u00e9m sd\u00edlen\u00e9ho webhostingu je omezen kv\u00f3tami pro u\u017eivatele. P\u0159\u00edstupov\u00e1 pr\u00e1va se op\u00edraj\u00ed o pokro\u010dilej\u0161\u00ed ACL a PHP k\u00f3d rozhodn\u011b nem\u016f\u017ee upravovat libovoln\u00e9 soubory. Odes\u00edl\u00e1n\u00ed emailu je omezeno rate limitem a v p\u0159\u00edpad\u011b nepot\u0159ebnosti lze zcela zak\u00e1zat. Vzd\u00e1len\u00fd p\u0159\u00edstup k soubor\u016fm poskytujeme pouze zabezpe\u010den\u00fdmi protokoly SFTP a FTPS. Samoz\u0159ejmost\u00ed je p\u0159\u00edstup k datab\u00e1zi p\u0159es spravovan\u00fd <a href=\"https:\/\/www.adminer.org\" data-type=\"URL\" data-id=\"https:\/\/www.adminer.org\">Adminer<\/a> a na vy\u017e\u00e1d\u00e1n\u00ed tak\u00e9 <a href=\"https:\/\/www.phpmyadmin.net\" data-type=\"URL\" data-id=\"https:\/\/www.phpmyadmin.net\">phpMyAdmin<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mailserver<\/h2>\n\n\n\n<p>N\u011bkolik let jsem pom\u00e1hal \u0159e\u0161it provoz OS X Server s klasickou sadou mailov\u00fdch komponent: <a href=\"http:\/\/www.postfix.org\" data-type=\"URL\" data-id=\"http:\/\/www.postfix.org\">postfix<\/a>, <a href=\"https:\/\/www.dovecot.org\" data-type=\"URL\" data-id=\"https:\/\/www.dovecot.org\">dovecot<\/a>, <a href=\"https:\/\/www.amavis.org\" data-type=\"URL\" data-id=\"https:\/\/www.amavis.org\">amavis<\/a>, <a href=\"https:\/\/spamassassin.apache.org\" data-type=\"URL\" data-id=\"https:\/\/spamassassin.apache.org\">SpamAssassin<\/a>, <a href=\"https:\/\/www.clamav.net\" data-type=\"URL\" data-id=\"https:\/\/www.clamav.net\">ClamAV<\/a> a <a href=\"https:\/\/roundcube.net\" data-type=\"URL\" data-id=\"https:\/\/roundcube.net\">Roundcube<\/a>.<\/p>\n\n\n\n<p>V p\u016fvodn\u00edm pl\u00e1nu bylo postavit podobnou kombinaci na Linuxu, ale uk\u00e1zalo se, \u017ee v\u011b\u010dn\u00fd boj se spamem a doru\u010ditelnost\u00ed je n\u011bco, co r\u00e1di p\u0159enech\u00e1me jin\u00fdm. Na nov\u00e9 infrastruktu\u0159e provozujme mail servery zejm\u00e9na pro intern\u00ed pot\u0159eby. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Virtualizace<\/h2>\n\n\n\n<p>Na\u0161\u00edm obl\u00edben\u00fdm Linuxem je <a href=\"https:\/\/www.debian.org\" data-type=\"URL\" data-id=\"https:\/\/www.debian.org\">Debian<\/a> 10 Buster. V\u011bt\u0161inou b\u011b\u017e\u00ed pod Linuxovou virtualizac\u00ed <a href=\"https:\/\/www.linux-kvm.org\/page\/Main_Page\" data-type=\"URL\" data-id=\"https:\/\/www.linux-kvm.org\/page\/Main_Page\">KVM<\/a>. V men\u0161\u00ed m\u00ed\u0159e pou\u017e\u00edv\u00e1me i <a href=\"https:\/\/linuxcontainers.org\" data-type=\"URL\" data-id=\"https:\/\/linuxcontainers.org\">LXC<\/a> kontejnery.<\/p>\n\n\n\n<p>Pro efektivn\u011bj\u0161\u00ed vyu\u017eit\u00ed hardwarov\u00fdch prost\u0159edk\u016f vyu\u017e\u00edv\u00e1me VMware ESXi b\u011b\u017e\u00edc\u00ed na Apple hardware. D\u00edky tomu m\u016f\u017eeme virtualizovat macOS.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Servery<\/h2>\n\n\n\n<p>Provozujme v\u00edcero fyzick\u00fdch server\u016f. Prakticky v ka\u017ed\u00e9m najdete rychl\u00e1 SSD minim\u00e1ln\u011b nejen pro b\u011bh syst\u00e9mu. RAID preferujeme softwarov\u00fd v r\u016fzn\u00fdch variant\u00e1ch MD raidu dle pot\u0159eby storage.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Ostatn\u00ed projekty<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Nov\u00e1 s\u00ed\u0165<\/h2>\n\n\n\n<p>Pro nov\u00e9 prostory kancel\u00e1\u0159e jsem navrhl a implementoval lok\u00e1ln\u00ed s\u00ed\u0165. Ethernet je zabezpe\u010den 802.1X stejn\u011b jako Wi-Fi WPA-2 Enterprise. U\u017eivatel\u00e9 se autentizuj\u00ed proti m\u00edstn\u00edmu RADIUS serveru a n\u00e1sledn\u011b je switch \u010di AP za\u0159ad\u00ed do odpov\u00eddaj\u00edc\u00ed VLANy. S\u00ed\u0165ovou konfiguraci samoz\u0159ejm\u011b klient\u016fm dod\u00e1 MDM.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Aplikace pro Freshdesk<\/h2>\n\n\n\n<p>Nastala pot\u0159eba exportovat servisn\u00ed listy v PDF z ticket\u016f v na\u0161em <a href=\"https:\/\/freshdesk.com\" data-type=\"URL\" data-id=\"https:\/\/freshdesk.com\">Freshdesk<\/a> ticketingu. V JavaScriptu jsem naprogramoval Freshdesk aplikace, kter\u00e1 pomoc\u00ed <a href=\"https:\/\/developers.freshdesk.com\/api\/\" data-type=\"URL\" data-id=\"https:\/\/developers.freshdesk.com\/api\/\">Freshdesk API<\/a> zjistila pot\u0159ebn\u00e9 \u00fadaje ticketu a n\u00e1sledn\u011b vygeneroval PDF za pou\u017eit\u00ed knihovny <a href=\"https:\/\/github.com\/MrRio\/jsPDF\" data-type=\"URL\" data-id=\"https:\/\/github.com\/MrRio\/jsPDF\">jsPDF<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">NetBoot server<\/h2>\n\n\n\n<p>Boot p\u0159es s\u00ed\u0165 na modern\u00edm Macu ji\u017e bohu\u017eel nenajdete. V Roce 2016 to v\u0161ak st\u00e1le by aktu\u00e1ln\u00ed technologie. Pro na\u0161e techniky jsem p\u0159ipravit NetBoot server, d\u00edky kter\u00e9mu mohli nastartovat Macy p\u0159es s\u00edt a:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Nainstalovat v\u0161echny podporovan\u00e9 verze macOS pro dan\u00fd po\u010d\u00edta\u010d (NetInstall)<\/li><li>V prost\u0159ed\u00ed pln\u00e9ho syst\u00e9mu spou\u0161t\u011bt aplikace (NetBoot)<\/li><li>Spustit jeden z mnoha diagnostick\u00fdch Apple syst\u00e9m\u016f pro dan\u00fd po\u010d\u00edta\u010d (ASD, MRI).<\/li><li>Prov\u00e9st obnoven\u00ed obrazu disku v s\u00ed\u0165ov\u00e9m prost\u0159ed\u00ed DeployStudio.<\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hromadn\u00e1 spr\u00e1va Apple za\u0159\u00edzen\u00ed MDM Dne\u0161n\u00ed spr\u00e1va Apple za\u0159\u00edzen\u00ed se to\u010d\u00ed kolem MDM \u0159e\u0161en\u00ed a Apple Bussiness Manager port\u00e1lu. Pro z\u00e1kazn\u00edky \u0159e\u0161\u00edme p\u0159edev\u0161\u00edm produkty VMware Workspace ONE, SimpleMDM a Jamf Pro zejm\u00e9na kv\u016fli jejich pou\u017eit\u00ed pro macOS. Potkal jsem i m\u00e9n\u011b progresivn\u00ed \u0159e\u0161en\u00ed jako Microsoft Intune, Mobile iron, Hexnode. Nelze zapomenou na sp\u00ed\u0161 nechvaln\u011b zn\u00e1m\u00fd &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/macadmin.cz\/?page_id=1039\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Pr\u00e1ce pro Logicworks&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":644,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0,"footnotes":""},"class_list":["post-1039","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/pages\/1039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/macadmin.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1039"}],"version-history":[{"count":31,"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/pages\/1039\/revisions"}],"predecessor-version":[{"id":1369,"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/pages\/1039\/revisions\/1369"}],"up":[{"embeddable":true,"href":"https:\/\/macadmin.cz\/index.php?rest_route=\/wp\/v2\/pages\/644"}],"wp:attachment":[{"href":"https:\/\/macadmin.cz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}