728b.gif

OpenSSH – popis konfiguračního souboru

16.02.08 06:59 | Linux | autor: Longer (profil) | Čteno: 55351x |
Nic mocUjde toPrůměrDobréVýborné (Žádná hodnocení)

Open SSHV tomto dalším pokračování série o SSH navážeme na předchozí vysvětlení architektury protokolu a začneme s nastavováním samotného sshd serveru. Po dočtení tohoto článku, byste měli znát většinu možností konfiguračního souboru serveru ssh. A to zejména pro použití k přihlášení heslem nebo přihlášení kombinací klíčů.

Postup, jak tyto získané informace využít v praxi pro konfiguraci těchto přihlašovacích metod, si necháme na nějaký další kousek textu z mé tvorby.

Standardním umístěním konfiguračních souborů balíku OpenSSH je /etc/ssh/. My se budeme věnovat souboru konfigurace ssh serveru – démona sshd, ten se nachází v lokaci /etc/ssh/sshd_config. Po nainstalování byla na váš disk zapsána kopie konfiguračního serveru se standartními (default) hodnotami. V následujícím textu jsem vybral ze všech konfiguračních možností ty, které se nám budou hodit k nastavení výše zmiňovaných způsobů autorizace. Rozčlenil jsem je do podsekcí pro lepší orientaci a ke každé funkci jsem interpretoval vysvětlení z anglické dokumentace OpenSSH. Snažím se vyhýbat všem anglickým pojmům, nicméně některé si bohužel nemohu odpustit, protože český jazyk k nim nenabízí úplné ekvivalenty. V závěru uvedu názorný příklad výsledného konfiguračního souboru.

Pro aplikování změn provedených v konfiguračním souboru je potřeba restartovat sshd server, to provedeme spuštěním zaváděcího skriptu s parametrem restart tedy takto: /etc/init.d/ssh restart

Nastavení základních vlastností serveru

Protocol

Specifikuje verze protokolu ssh, které bude možné použít při komunikaci klienta se serverem. Možné hodnoty jsou: 1 , 2 nebo 1,2 pro podporu obou verzí protokolu.

Port

Definuje port, na kterém bude sshd naslouchat, je možné použít více portů. Je potřeba dodržet další pokyny popsané u volby ListenAddress!

ListenAddress

Udává, na kterých lokálních adresách bude sshd očekávat spojení. Může být zadáno v následujících formátech:
ListenAddress host|IPv4_addr|IPv6_addr
ListenAddress host|IPv4_addr:port
ListenAddress [host|IPv6_addr]:port

Je povoleno nastavit více voleb ListenAddress, tím je možné nastavit, aby sshd poslouchalo současně na více specifikovaných lokálních adresách.

Pokud není přímo u adresy specifikován port, použije se port určený volbou Port, ta však musí v konfiguračním souboru předcházet dané volbě ListenAddress!

V případě, že nespecifikujeme naslouchací adresu, bude SSH naslouchat na všech lokálních adresách.

Ciphers

Povolená šifrování pro protokol SSHv2. Pokud chcete definovat více šifrovacích protokolů, musí být odděleny čárkou.

Defaultně jsou povoleny tyto: ‘aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,
arcfour,aes192-cbc,aes256-cbc’

LogLevel

Udává úroveň výpisů zpráv do logu sshd. Možné hodnoty jsou: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3.

Standardní úrovní výpisu je INFO, k němuž jsou úrovně DEBUG a DEBUG1 ekvivalentní. DEBUG2 a DEBUG3 jsou každý vyšší úrovní vypisovaných zpráv do logu. Použitím výpisů logu na úrovni DEBUG vznikají značná bezpečnostní rizika, proto není ani jeden z nich doporučeno používat!

SyslogFacility

Určuje formát výpisu sshd do logu. Možnými hodnotami jsou: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. Standardně nastavenou hodnotou je AUTH.

PidFile

Určuje v jakém souboru bude uložen identifikátor procesu sshd, standardně umístěno v /etc/sshd.pid.

HostKey

Specifikuje soubory, jejichž obsahem jsou klíče, které používá sshd. Standardním umístěním pro klíč SSHv1 je /etc/ssh/ssh_host_key. Pro klíče SSHv2 jsou to /etc/ssh/ssh_host_rsa_key a /etc/ssh/ssh_host_dsa_key. Je možné nadefinovat více klíčů. SSHv1 používá klíč rsa1, SSHv2 používá klíče rsa a dsa.

TIP: Je dobré si uvědomit, že vám sshd nenaběhne, pokud máte špatně nastavená práva přístupu k souborům klíčů, práva čtení by měl mít pouze vlastník souborů.

Konfigurace protokolu SSH verze 1

ServerKeyBits

Definuje kolika bitový klíč bude generován pro SSHv1. Nejnižší možná hodnota je 512 a standardně je tato volba nastavena na hodnotu 768.

KeyRegenerationInterval

Protokol SSHv1 používá dočasný serverový klíč, který je automaticky generován v zadaném intervalu. Smysl tohoto je následující: Při odchycení klíče potenciálním útočníkem na stroji, který se v minulosti připojoval k serveru je velmi pravděpodobné, že server už do té doby vygeneroval jiný klíč. Tento klíč není nikdy nikde fyzicky uložen.

Pokud je hodnota 0, nikdy se klíč neregeneruje, standartní hodnota je 3600 (sekund).

Možnosti hlídání spojení s klienty

KeepAlive

Tato možnost s default parametrem yes povoluje ssh serveru odesílat pravidelné zprávy ověřující spojení s aktivním klientem. V praxi to znamená, že když vypadne na sebemenší chvíli nějaký stroj na trase k serveru nebo dojde ke ztrátě tohoto ověřovacího paketu, dojde k ukončení spojení.

Pokud naopak zvolíme parametr no, mohou zůstávat aktivní již neexistující spojení, což způsobuje větší využití zdrojů serveru. Tyto zprávy nejsou šifrované!

ClientAliveInterval

Touto volbou nastavíme, po jak dlouhý bude interval mezi poslední aktivitou klienta a odesláním ověřovací zprávy šifrovaným kanálem. Jejím úkolem vyžádání reakce portistrany, čímž si sshd ověří, že je klient stále připojen. Standardní hodnota je 0, což znamená, že se nebudou žádné ověřovací zprávy posílat.

TIP: Zasílané zprávy jsou posílány šifrovaným kanálem narozdíl od KeepAlive!

ClientAliveCountMax

Počet zpráv odeslaných ClientAlive zpráv na něž nedostal server sshd od klienta odpověď. Když se tohoto počtu dosáhne, server klienta odpojí a ukončí danou session. Pokud je ClientAliveInterval nastaven například na 15 a ClientAliveCountMax je nastaven na 3, což je mimochodem default hodnota, neodpovídající klient bude odpojen za +-45 sekund. Opět je třeba zdůraznit, že tyto ověřovací zprávy jsou posílány šifrovaným tunelem a tudíž se liší od systému KeepAlive!

LoginGraceTime

Pokud bude fáze přihlašování klienta trvat déle než je zadaný interval v této volbě, spojení se přeruší. Hodnota 0 tento limit vypíná. Standardní limit je 600 (sekund).

VerifyReverseMapping

S volbou yes ověří, zda reverzní záznam klientské adresy směřuje na stejnou adresu, jako je IP daného klienta. Standardní volba je ne.

Další kosmetická nastavení

PrintLastLog

Pokud chcete po přihlášení uživateli vypsat kdy se naposledy připojil nastavte yes.

PrintMotd

Chcete-li po přihlášení uživatele vypsat uvítací text „motd“ zvolte parametr yes.

Banner

Slouží k vypsání například varovné zprávy před dokončením přihlášení uživatele. Tato volba je funkční pouze pro SSHv2.

Password Authentication, jeho další vlastnosti a restrikce

PasswordAuthentication

Slouží k povolení přihlášení pomocí přihlašovvacího jména a hesla. Standartně je tato volba povolena, tudíž je nastavena hodnota yes.

PermitEmptyPasswords

Pokud zvolíme za parametr této volby yes, povolíme přihlášení pomocí účtu, který nemá nastavené heslo resp. má heslo, které se skládá z 0 znaků. Default volba je no.

DenyUsers

Touto direktivou můžeme specifikovat uživatele, kteří mají zakázáno se přihlásit. Jména uživatelů zadáváme oddělené mezerami a nelze je zadávat pomocí identifikačních čísel uživatele UID. Můžeme specifikovat i z jakého umístění má daný uživatel zákaz přihlášení, a to ve formátu uživatel@adresa.

AllowUsers

Vypsáním uživatelských jmen oddělených mezerou za tímto výrazem povolíme přítup pouze jejich vlastníkům, ostatním nejmenovaným účtům bude přístup odepřen. Stejně jako u restrikce na základě skupin nelze zadávat uživatele použitím UID. Pokud nedefinujeme, může se přihlásit libovolný uživatel.

DenyGroups

Vypsáním názvů skupin oddělených mezerou za tento výraz, zakážeme všem uživatelům v těchto skupinách přihlášení k serveru. Opět zadáváme pouze jména skupin, nikoli GID.

AllowGroups

Pomocí této direktivy můžete povolit příhlášení pouze uživatelům, kteří jsou členy dané skupiny. Zadávejte název skupiny nikoliv její identifikační číslo (GID). Pokud nedefinujeme, je přístup povolen všem skupinám.

PermitRootLogin

Specifikuje, zda se může přihlásit uživatel root k serveru. Musí být nastavena jedna z následujících variant:
yes – povolí přihlášení roota, toto je standartní volba
without-password – zakáže rootovi pouze password autentikaci
forced-commands-only – je povoleno přihlášení roota pouze pomocí public key, musí však být definovány povolené příkazy (command option), toto se může hodit například pro bezpečné vzdálené zálohování, kdy je potřeba mít práva ke všem souborům
no – úplně zakáže přístup pro uživatele root

PubkeyAuthentication

Povolí přihlášení pomocí veřejného klíče. Defaultní voblou je yes. Tato volba je pouze pro SSHv2.

Závěrem

Tolik k základním konfiguračním možnostem, v blízké době můžete očekávat pokračování v podobě konkrétních postupů konfigurace dvou již zmiňovaných druhů autentikace.

336b.gif

Líbil se ti tento článek? Ukaž ho i ostatním! Pro snadné přidání odkazu na Facebook, Linkuj.cz nebo Twitter klikni na jednu z ikonek výše a nech další, ať si článek také přečtou.

5 odpovědí na článek OpenSSH – popis konfiguračního souboru

  1. ok, I know this post is . out of date, but I was thinking in polpee finding help now.I think that the problem is not the port assigned to ssh, but the use of the characer tilde (this represents home isn’t it?) in the command, when someone enclose the line like ssh xxxx . this escapes the character tilde and your command works ok.Am I wrong?Thanks in advance.(Sorry I can’t include the character tilde right now!)

  2. Is that really all there is to it because that’d be flabbergasting.

  3. TYVM you’ve solved all my problems

  4. Why do I bother calling up people when I can just read this!

  5. Hey, that’s powerful. Thanks for the news.

Zanechat odpověď