• No results found

Adresářová struktura v programu WinSCP

5.3.2 Připojení přes SSH terminál

Pro připojení přes SSH terminál je potřeba znát všechny parametry instance jako v předchozím případě (ID instance, veřejný DNS název instance, umístění privátního klíče a defaultní uživatelské jméno pro přístup k dané AMI). Kromě toho je potřeba, aby systém měl nainstalovaný SSH klient, jenž bývá defaultně zahrnut.

Pro připojení přes SSH je potřeba se přemístit do umístění s privátním klíčem a z důvodu bezpečnosti změnit jeho přístupová oprávnění, aby ho mohl používat pouze administrátor.

To se provede použitím příkazu chmod a nastavením oprávnění na hodnotu 400:

$ chmod 400 /path/my-key-pair.pem

Použitím příkazu ssh dojde k připojení k instanci. Parametr -i slouží ke specifikování cesty k privátnímu klíči:

$ ssh -i /cesta/nextcloud.pem ubuntu@ec2-34-209-85-237.us-west-2.compute.amazonaws.com

Zobrazí se výzva na přidání RSA klíče do registrů a dojde k připojení:

The authenticity of host 'ec2-34-210-64-56.us…' can't be established.

ECDSA key fingerprint is SHA256:KisBqfJ1v0712…

Are you sure you want to continue connecting (yes/no)? yes

Permanently added 'ec2-34-210-64-56.us… to the list of known hosts.

5.4 Zabezpečení SSH serveru

Při vytváření EC2 instance dochází ke generaci nebo vybrání předem vygenerovaného klíče pro přístup přes SSH k dané instanci. Tento klíč je stažen a uložen na místním počítači.

Riziko nastává v případě, že k tomuto počítači dostane přístup neoprávněná osoba. V tomto případě každá osoba, která má přístup k tomuto klíči a zná přihlašovací jméno, získá přístup k dané instanci. Pro lepší zabezpečení přístupu k instanci a zamezení neoprávněného přihlášení je vhodné implementovat dodatečná bezpečnostní opatření. Jeden z doporučených a vyzkoušených nástrojů je využití dvoufázového ověření.

Pro zabezpečení SSH serveru pomocí dvoufázového ověření bude použit software od společnosti Google. který generuje jednorázové časové kódy (anglicky Time-based One-Time Password, zkráceně TOTP). K implementaci 2FA pomocí Google autentikátoru je potřeba volně dostupný Google Authenticator PAM modul (anglicky Pluggable Authentication Module, zkráceně PAM). Tento modul slouží pro zavedení několika druhů autentizace do unixového systému.

Pro instalaci balíku se zadá následující příkaz:

$ sudo apt-get install libpam-google-authenticator

Tím byl PAM modul nainstalován na systém a nyní je potřeba vytvořit ověřovací klíč. Ten se vygeneruje následujícím příkazem:

$ google-authenticator

Po zadání tohoto příkazu systém vyzve k odpovědi na několik základních otázek:

Do you want authentication tokens to be time-based (y/n) y

Chcete, aby ověřovací tokeny byly závislé na čase?

Při povolení se tokeny budou měnit každých 30 sekund. Jinak dojde ke změně tokenu jen při každém jeho použití. První volba je bezpečnější a je zvolena.

https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://to

tp/ubuntu@ip-172-31-43-174%3Fsecret%3DWRMODHOC6D6T42TW4IMTGBBWDY%26issuer%3Dip-172-31-43-174

Your new secret key is: WRMODHOC6D6T42TW4IMTGBBWDY Your verification code is 130943

Your emergency scratch codes are:

32026954 85846831 46755653 25142296 43077536

Došlo k vygenerování URL adresy s čárovým kód.

Obrázek 34: Vygenerovaný čárový kód Zdroj: vlastní

Zároveň došlo k vygenerování bezpečnostního klíče, což je ekvivalent čárového kódu. Bylo vygenerováno i pět záložních kódů. Ty je možné použít v případě, že dojde ke ztrátě zařízení s nainstalovanou aplikací na generování kódů. Tyto kódy jsou jednorázové a lze je použít namísto vygenerovaného tokenu.

Do you want me to update your "/home/janwatzke/.google_authenticator"

file (y/n) y

Chcete, abych aktualizoval soubor "/home/janwatzke/.google_authenticator"?

Ano, jinak by musel být soubor upraven manuálně. Takto dojde k optimálnímu nastavení.

Do you want to disallow multiple uses of the same authentication token?

This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y

Chcete zakázat více než jedno použití stejné autentizace?

Při souhlasu bude možné použít jednou vygenerovaný kód pouze jednou za 30 sekund. Toto opatření zvyšuje šance zachytit nebo zabránit man-in-the-middle útoku.

By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) n

Ve výchozím nastavení je jeden kód generován po 30 sekundách. Z důvodu vypršení kódu mezi klientem a serverem dovolujeme jeden token navíc před a po současném intervalu.

Pokud nastavenou problému se špatnou synchronizací času, můžete rozšířit interval ze současné minuty a půl na 4 minuty. Chcete to udělat?

Lepší je interval nerozšiřovat a nastavení upravit pouze pokud dojde k problémům.

If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login

attempts every 30s. Do you want to enable rate-limiting (y/n) y

Pokud počítač, ze kterého se připojujete, není zabezpečený proti přihlašovacím brute-force útokům, můžete povolit limit autentizačního modulu. Ve výchozím nastavení tento limit neumožňuje útočníkům více než tři pokusy na přihlášení každých 30 sekund. Chcete tento limit povolit?

Při povolení bude možné špatně zadat kód během 30 sekund pouze třikrát. (Perez, 2013)

5.4.1 Vygenerování bezpečnostních tokenů

Pro účely vygenerování bezpečnostních tokenů bude využita aplikace Authy. Authy je volně dostupná aplikace, která přináší podporu pro mnoho služeb včetně možnosti přiřadit si vlastní logo. Authy je dostupná na různé druhy zařízení a je možné ji mít nainstalovanou na telefonu s Androidem, jako doplněk prohlížeče Chrome nebo na tabletu s operačním systémem iOS. Nabízí možnost pro zálohování účtů do cloudu, takže při ztrátě telefonu stačí na nový telefon aplikaci nainstalovat, přihlásit se a všechny účty jsou opět k dispozici. Authy také umožňuje uzamčení aplikace pomocí PINu nebo čtečky otisku prstů proti neoprávněnému přístupu. Nutno podotknout, že veškeré účty uložené do Authy jsou šifrované pomocí předem zvoleného hesla. Pro přidání účtu tedy stačí naskenovat vygenerovaný čárový kód nebo přímo zadat bezpečnostní klíč. Aplikace poté vyzve k výběru loga a pojmenování daného účtu.

Obrázek 35: Přidání nového účtu do aplikace Authy za pomocí bezpečnostního klíče Zdroj: vlastní

Obrázek 36: Vybrání loga a pojmenování nového účtu Zdroj: vlastní

Authy nyní začně každých 30 sekund generovat bezpečnostní token. K bezpečnostnímu tokenu je možné přistoupit pomocí mobilní aplikace nebo doplňku pro prohlížeč Chrome.

Obrázek 37: Vygenerovaný bezpečnostní token pro SSH server Zdroj: vlastní

5.4.2 Nastavení serveru

Po zadání bezpečnostního klíče do aplikace je ještě nutné nastavit SSH server, aby dvoufázovou autentizaci vyžadoval. To se provede následovně:

Do souboru sshd, který se nachází ve složce /etc/pam.d, je potřeba přidat řádek obsahující auth required pam_google_authenticator.so. Tímto příkazem server ví, že má vyžadovat dvoufázové ověření.

Obrázek 38: Editace souboru /etc/pam.d/sshd Zdroj: vlastní

Pro správnou konfiguraci PAM modulu je nutné editovat soubor /etc/ssh/sshd_config a změnit volbu ChallengeResponseAuthentication na yes. (Hoffman, 2012)

Na konec souboru je ještě potřeba specifikovat jaké metody autentizace budou vyžadovány.

To se provede přidáním řádku AuthenticationMethods publickey,keyboard-interactive.

Obrázek 39: Editace souboru /etc/ssh/sshd_config Zdroj: vlastní

Nyní již stačí SSH server restartovat.

$ sudo service sshd restart

5.4.3 Přihlášení pomocí dvoufázového ověření

Při dalším pokusu o přihlášení se z počítače s odpovídajím klíčem zobrazí hláška Authenticated with partial success. To znamená, že server rozpoznal privátní klíč, který je kompatibilní s veřejným klíčem na serveru. Partial succes znamená, že je ještě potřeba zadat vygenerovaný token z aplikace pro správu dvoufázových ověření.

Obrázek 40: Autentizace pomocí SSH klíče a bezpečnostního kódu Zdroj: vlastní

Díky zavedení dvoufázového ověření a přihlášení pomocí SSH klíče (což instance vyžaduje defaultně) je server v podstatě neprolomitelný. Útočník by musel získat přístup k počítači uživatele, a navíc také k aplikaci generující bezpečnostní tokeny.

Jako s každým bezpečnostním opatřením se správce systému stává zodpovědným za správu tohoto zabezpečení. V tomto případě se jedná o neztracení SSH klíče a aplikace pro generování bezpečnostních tokenů.

5.5 Konfigurace Nextcloud

Je několik možností, jak nainstalovat Nextcloud server. Pro Windows je možné použít virtuální stroj s předem nakonfigurovanou Nextcloud instancí. Pro Linux je možné použít předpřipravené snap balíky, které obsahují vše potřebné, ale neobsahují vždy nejnovější verze Nextcloud. Další možností je provést manuální instalaci za pomocí standardní LAMP sady (Linux, Apache, MySQL, PHP). Jelikož podnik chce konfiguraci provádět sám a mít nejnovější verzi Nextcloud, bude použita cesta manuální instalace. Pro zajímavost nicméně bude zmíněna i instalace pomocí snap balíku.

5.5.1 Instalace pomocí snap balíku

Nejjednodušší instalace Nextcloud na Linuxu je pomocí balíku (tzv. snap). Snap je soubor ve formátu .zip. Obsahuje aplikaci společně se všemi potřebnými soubory a popisem, jak danou aplikaci spustit na daném systému a jak má komunikovat s dalším softwarem. Snap balíky jsou určené k tomu, aby byly bezpečné a běžely v odděleném prostředí od systému a ostatních aplikací. Snap je dostupný ke stažení na oficiálních stránkách Nextcloud a obsahuje následující komponenty:

• Nextcloud 13.0.5 – základní soubory potřebné k instalaci Nextcloud.

• Apache 2.4 – webový server.

• PHP 7.1 – běhové prostředí PHP.

• MySQL 5.7 – systém pro správu databází.

• Redis 4.0 – key-value databáze pro implementaci cache.

• mDNS – protokol pro rozeznání sítě.

Tento Nextcloud snap je dostupný v obchodě pro Ubuntu ve verzi 16 a vyšší. Pro instalaci stačí zadat:

$ sudo snap install nextcloud

Po instalaci je možné přistoupit k Nextcloud instalaci zadáním veřejné IP adresy založené

administrátorský účet. Po zadaní těchto informací je možné se přihlásit a začít vytvářet uživatele, instalovat aplikace a nahrávat soubory.

Obrázek 41: Konfigurace Nextcloud v případě použití snap balíku Zdroj: vlastní

Nextcloud je stejně jednoduše možné odinstalovat pomocí následujícího příkazu:

$ sudo snap remove nextcloud

5.5.2 Manuální instalace

Manuální instalace spočívá v instalaci .deb balíků, jenž obsahují potřebné a doporučené moduly pro typickou instalaci Nextcloud využívající server Apache a databázový systém MariaDB. Výhodou manuální instalace je, že je možné díky ní nainstalovat vždy nejnovější verzi Nextcloud ze stránek poskytovatele. Instalace pomocí snap balíků nebývají tak často aktualizované.

Pro instalaci stačí postupně zadat následující tři příkazy:

$ sudo apt-get install apache2 mariadb-server libapache2-mod-php7.0

Slouží pro instalaci webového serveru Apache2, databázového systému MariaDB a PHP modulů potřebných pro správný běh Apache2.

$ sudo apt-get install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring

$ sudo apt-get install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip

Tyto příkazy slouží pro instalaci dodatečných PHP modulů nezbytných pro správný chod Nextcloud.

Následně je potřeba stáhnout .zip nebo .tar archiv s instalací Nextcloud ze stránek poskytovatele a obsah tohoto archivu vyextrahovat do kořenové složky Apache serveru, což je v tomto případě /var/www/.

Pro extrakci lze použít příkaz unzip:

$ unzip nextcloud-14.0.0.zip

Pro zkopírování včetně podsložek potom příkaz cp s argumentem -r:

$ cp -r nextcloud /var/www

Nyní je potřeba vytvořit databázi.

Pro vytvoření databáze je nejdříve potřeba se přihlásit do ovládacího prostředí MariaDB:

$ sudo mysql -u root -p

Poté vytvořit databázi:

> CREATE DATABASE nextcloud;

Vytvořit uživatele:

> CREATE USER jmeno_uzivatele@localhost IDENTIFIED BY 'heslo';

Přidělit mu všechna oprávnění k databázi:

> GRANT ALL PRIVILEGES ON nextcloud.* TO jmeno_uzivatele@localhost

A nakonec obnovit oprávnění a ukončit ovládací prostředí MariaDB:

> FLUSH PRIVILEGES;

> EXIT;

Poté je potřeba dokončit instalaci. Do webového prohlížeče se zadá veřejná IP adresa vytvořené EC2 instance a za ní se doplní /nextcloud. Na této stránce je nutné vytvořit administrátorský účet, vyplnit přihlašovací údaje k databázi a také cestu k Apache serveru.

Po kliknutí na tlačítko Finish setup je instalace dokončena. V případě použití snap balíku stačí pouze vytvořit administrátorský učet; databáze už je přednastavena.

Obrázek 42: Vytvoření administrátorského účtu Zdroj: vlastní

Obrázek 43: Konfigurace databáze Zdroj: vlastní

Obrázek 44: Uvítací obrazovka Nextcloud Zdroj: vlastní

Pokud konfigurace proběhne úspěšně, zobrazí se uvítací obrazovka Nextcloud s odkazy na stažení klientů pro desktop a mobilní zařízení. Dostupné jsou také volby pro konfiguraci kalendáře, kontaktů a přístupu přes protokol WebDAV.

Obrázek 45: Základní obrazovka webového prostředí Nextcloud

Po uzavření uvítací obrazovky se zobrazí základní obrazovka Nextcloud se seznamem souborů. Nyní je možné začít nahrávat soubory a využívat všechny možnosti této služby.

Obrázek 46: Přehled aktivit ve webovém prostředí Nextcloud Zdroj: vlastní

Obrázek 47: Aplikace Galerie webového prostředí Nextcloud Zdroj: vlastní

5.6 Uživatelské prostředí a dostupné aplikace

Tato kapitola popisuje základní prostředí Nextcloud. Popisuje vybrané aplikace dostupné z katalogu aplikací a také jejich ekvivalenty dostupné pro mobilní zařízení.

5.6.1 Webové prostředí Nextcloud

K Nextcloud se dá připojit z jakéhokoliv webového prohlížeče. Uživatel pouze potřebuje znát uživatelské jméno a heslo. Nextcloud nicméně doporučuje používat nejznámější webové prohlížeče v novějších verzích:

• Mozilla Firefox 14+

• Google Chrome/Chromium 18+

• Safari 7+

• Internet Explorer 11+

• Microsoft Edge

Pro použití chatovací funkce Nextcloud Talk je nutné mít Mozilla Firefox verze 52 nebo vyšší a Google Chrome verze 49 nebo vyšší. Při pročítání dokumentace Nextcloud je nicméně zřejmé, že pro využití všech možností je nutné používat prohlížeč Chrome nebo Chromium (například pro funkci táhni a pusť).

Navigování v uživatelském prostředí

Defaultně je nastaveno, aby se webové prostředí otevíralo na stránce se soubory. Soubory se dají přidávat, odebírat, sdílet a měnit v závislosti na udělených oprávnění administrátorem.

Snímek obrazovky prostředí spolu s popisky je uveden v příloze A.

Uživatelské prostředí Nextcloud obsahuje následující pole a možnosti:

Menu výběru aplikací: Umístěné v horním levém rohu, kde je možné nalézt všechny aplikace dostupné v dané instanci Nextcloud. Vybráním příslušné ikony dojde k přesměrovaní na danou aplikaci.

Informace o aplikaci: Umístěné v levém bočním panelu. Obsahuje filtry a možnosti přiřazené k vybrané aplikaci. Například při používání aplikace Soubory je zde dostupná speciální sada filtrů pro rychlé nalezení konkrétního souboru – mohou to být soubory sdílené s uživatelem a ty, které uživatel sdílí s ostatními. Pro jiné aplikace zde budou jiné možnosti.

Náhled aplikace: Hlavní pole umístěné veprostřed uživatelského prostředí Nextcloudu.

Toto pole zobrazuje obsah uživatelských možností pro danou aplikaci.

Navigační panel: Umístěný nad náhledem aplikace. Tento panel nabízí cestu k dané složce a umožňuje přecházet výše v adresářové struktuře až do kořenového adresáře.

Tlačítko přidat: Umístěné v navigačním panelu. Umožňuje vytvářet nové soubory, složky nebo nahrávat soubory. Pro přidávání souborů je také možné využít funkci táhni a pusť. Stačí přetáhnout soubor z prohlížeče souborů do okna Soubory a soubor se začne nahrávat.

V současné době tuto funkci podporuje pouze webový prohlížeč Chrome a Chromium.

Pole hledat: Vybráním této možnosti se otevře pole, do něhož je možné zadat výraz pro vyhledávání souborů.

Menu kontakty: Poskytuje přehled o kontaktech uživatele a přehled uživatelů na serveru.

V závislosti na poskytnutých informacích a dostupných aplikacích je možné s těmito uživateli zahájit hovor nebo jim poslat e-mail.

Tlačítko galerie: Tato možnost uživatele přesměruje do aplikace Galerie.

Menu nastavení: Po zvolení profilového obrázku uživatele umístěného v pravém horním rohu se zobrazí rozbalovací nabídka Nastavení. Tato nabídka obsahuje pět možností:

• Nastavení – nastavení jména a informací o uživateli a administrátorské možnosti

• Aplikace – katalog aplikací a jejich správa

• Uživatelé – přehled uživatelů a nastavení skupin

• Nápověda – uživatelský manuál

• Odhlášení – odhlášení uživatele

5.6.2 Kalendář

Aplikace pro správu kalendářů není ve verzi Nextcloud 14.0.0 defaultně povolená. Je potřeba ji povolit v sekci Apps – kategorie Office & text. Aplikace Kalendář se po povolení zobrazí v horním menu vedle aplikace Galerie. Do aplikace lze importovat kalendáře ve formátu .ical. Jednotlivé kalendáře a schůzky je poté možné sdílet s kolegy.

Obrázek 48: Detail aplikace Kalendář v katalogu aplikací Zdroj: vlastní

Obrázek 49: Ukázka webového prostředí aplikace Kalendář Zdroj: vlastní

Pro přístup ke kalendáři z mobilních zařízení existuje aplikace DAVdroid. V obchodě Google Play je sice placená, ale vývojáři ji sami umístili také na obchod s open source aplikacemi zvaným F-Droid, kde je aplikace dostupná zdarma.

Po spuštění aplikace je potřeba zadat URL adresu protokolu CalDAV a také jméno a příjmení účtu na Nextcloud. Po přidání účtu je možné si vybrat, které kalendáře se mají se zařízením synchronizovat. Je nutné podotknout, že aplikace DAVdroid jako taková je pouze nástrojem pro přidání účtu do zařízení a neslouží k prohlížení kalendářů jako takových. Pro prohlížení kalendářů je možné použít libovolnou aplikaci pro správu kalendářů, kde bude nově viditelný účet a také jemu odpovídající kalendáře.

Obrázek 50: Ukázka aplikace DAVdroid Zdroj: vlastní

Obrázek 51: Ukázka kalendáře na Nextcloud serveru a vytvořené události Zdroj: vlastní

5.6.3 Poznámky, to-do listy

Obdobným způsobem je možné aktivovat i aplikaci pro poznámky a to-do listy (seznamy úkolů). Opět je potřeba aktivovat modul z obchodu s aplikacemi, tentokrát s názvem Úkoly.

Tato aplikace jako jediná není oficiální aplikací Nextcloud, nicméně ohlasy na ní jsou velmi pozitivní. Tato aplikace nabízí možnosti jako jsou: přidávání poznámek, nastavení času začátku a konce úkolů, určení priority a rozpracovanosti úkolů, zařazování úkolů do kategorií, vytváření popisků úkolů, přidávání podúkolů, sestavování vlastních seznamů úkolů, přiřazování barev úkolům, odškrtávání dokončených úkolů a tak dále.

Obrázek 52: Ukázka webového prostředí aplikace Úkoly Zdroj: vlastní

Pro poznámky také existuje klient pro mobilní zařízení. Pokud má uživatel již nainstalovanou aplikaci DAVdroid, stačí pouze doinstalovat separátní aplikaci Úkoly. Ta je opět dostupná z obchodu F-Droid a nabízí všechny možnosti jako její webové prostředí.

Obrázek 53: Ukázka aplikace Úkoly Zdroj: vlastní

5.6.4 Kontakty

Pro správu kontaktů existuje v přehledu aplikací doplněk Kontakty. Při zakládání kontaktů je možné je třídit do skupin, přidávat profilové obrázky nebo si celý kontakt stáhnout ve formátu .vcf. Ke kontaktům je možné přidělit různé typy polí jako jsou telefon, adresa, narozeniny, e-mail, pohlaví, odkazy na sociální sítě nebo webové stránky.

Obrázek 54: Webové prostředí aplikace Kontakty Zdroj: vlastní

Pro synchronizaci kontaktů s mobilním zařízením stačí mít nainstalovanou aplikaci DAVdroid, která do zařízení přidá adresář s kontakty umístěnými na Nextcloud serveru. Ty je poté možné si prohlížet přímo v zabudované aplikaci pro správu kontaktů. Nové kontakty

Pro synchronizaci kontaktů s mobilním zařízením stačí mít nainstalovanou aplikaci DAVdroid, která do zařízení přidá adresář s kontakty umístěnými na Nextcloud serveru. Ty je poté možné si prohlížet přímo v zabudované aplikaci pro správu kontaktů. Nové kontakty