Protokol SSH, hlavní aplikace a rozdíl od Telnetu. Zabezpečený síťový protokol SSH, základní

SSH (Zabezpečená skořepina- Chráněná skořápka) je síťový protokol, který poskytuje zabezpečené ověřování, připojení a zabezpečený přenos dat mezi síťovými hostiteli šifrováním provozu, který jím prochází, s možnou kompresí dat. Další důležitou funkční funkcí je možnost vytvářet zabezpečené šifrované tunely pro bezpečný přenos přes nezabezpečené prostředí (například internet), další síťové protokoly a také možnost komprimovat provoz. Navíc protokol SSH funguje skvěle při přesměrování (přesměrování, přesměrování) portů jednoho počítače na porty jiného, ​​včetně předávání vzdálených klientů X Okno... Nyní protokol SSH, je standardem a je široce používán například pro serverové systémy, tj. provádění různých příkazů a manipulací v prostředí serveru prostřednictvím zabezpečeného připojení, kopírování souborů po síti, například zálohování dat.

Protokol SSH, existuje ve dvou verzích, komerční verzi vyvinuté společností SSH inc, a zdarma, open source, OpenSSH který se používá hlavně na většině serverových platforem. Implementace OpenSSH, je k dispozici v jakémkoli operačním systému rodiny Unix a ve většině z nich SSH server a SSH klient jsou standardní nástroje. Vše, co je napsáno níže, se bude týkat OpenSSH a operační systém FreeBSD. Existují dvě verze protokolu SSH nejsou navzájem kompatibilní. První implementace protokolu SSH, SSH - 1, byl vyvinut v roce 1995. Druhá verze, SSH - 2, vydané v roce 1996. V roce 2006 protokol SSH byl přijat IETF jako internetový standard. Nyní je to široce používaná druhá verze protokolu. SSH protože zaprvé protokol SSH verze 1 trpěla vážnými zranitelnostmi, zadruhé verze 2 používá výkonnější šifrovací algoritmy, navíc podporuje schopnost detekovat záměrné poškození dat. Šifrovací algoritmy:

  • Protokol SSH verze 1 DES, 3DES, blowfish
  • Protokol SSH verze 2 AES-128, AES-192, AES-256, blowfish, CAST-128, ArcFour
Funkce trávení:
  • Protokol SSH verze 1 č
  • Protokol SSH verze 2 HMAC-MD5, HMAC-SHA-1, HMAC-RIPEMD
Jak vidíte, rozdíl je velmi velký, takže protokol SSH verze 1 , nyní obecně se nedoporučuje používat kdekoli.

Metody ověřování SSH, softwarový balíček OpenSSH

Zabezpečení protokolu SSH poskytovaná následujícími softwarovými řešeními:
  • Šifrování veškerého procházejícího provozu SSH připojení provedené podle jednoho z možných algoritmů zvolených během vyjednávání stran komunikační relace. Šifrování provozu připojení brání jeho zachycení a použití pro škodlivé účely. Volbou různých šifrovacích algoritmů se systém stává velmi flexibilním, což například umožňuje nepoužívat algoritmy, ve kterých byly nalezeny chyby zabezpečení nebo potenciální bezpečnostní hrozby, nebo používat pouze ty algoritmy, které jsou podporovány každou ze stran;
  • Ověření SSH server je vždy prováděn s jakýmkoli připojením, které neumožňuje nahradit provoz ani samotný server;
  • Ověření SSH může dojít ke klientovi různé způsoby, což na jedné straně činí samotný proces autentizace bezpečnějším, na druhé straně činí systém ještě flexibilnějším a usnadňuje práci s ním;
  • Kontrola integrity síťových paketů, umožňuje sledovat nelegální změny v provozu připojení, pokud je tato skutečnost zjištěna, připojení je okamžitě ukončeno;
  • Dočasné parametry autentizace zabraňují použití zachycených a po určité době dešifrovaných dat připojení.
Protokol SSH podporuje celou řadu autentizačních a autorizačních metod pro vzdálené klienty SSH server, zde jsou některé z nich:
  • Na bázi GSSAPI ověřování
  • Hostitelský autentizace;
  • Ověření uživatele pomocí veřejného klíče;
  • Ověření odezvy na výzvu ( výzva-odpověď);
  • A nakonec obvyklé ověřování uživatelů pomocí hesla;
V tomto pořadí se používají metody ověřování, ale protokol verze 2 má možnost, Preferovaná autentizace, což vám umožní změnit výchozí pořadí. SSH navíc podporuje další metody ověřování uživatelů v závislosti na konkrétním operačním systému (například bsd_auth nebo PAM). Ověřování uživatelů je obecně založeno na veřejných klíčích. Klient se pokouší nainstalovat vzdáleně SSH připojení, zašifruje data veřejným klíčem serveru, který je mu znám a který obdrží při prvním připojení k serveru, a odešle jej SSH server. Server zase dešifruje data, která jsou mu pouze známá, pomocí tajného klíče, a odešle je klientovi. V takovém schématu si klient může být jistý, že server je tím, za koho se vydává. Nemusíte se tedy spoléhat DNS a směrování, i když se útočníkovi podařilo padělat záznam DNS nebo přesměrovat pakety na vlastního hostitele, ověření se nezdaří, protože zahraniční hostitelé k tomu nemají potřebné klíče. Protože SSH toto je plnohodnotný síťový protokol, samozřejmě je to určitá sada programů nezbytných pro jeho provoz, základní funkce a různé další příležitosti... Protože mluvíme o operačním systému FreeBSD (v jiných verzích Unixu se sada může mírně lišit), hlavní komponenty SSH jsou:
  • sshd je vlastně SSH server, program démona;
  • ssh- klientský program, který se stal náhradou za rlogin a telnet;
  • scp- program pro vzdálené kopírování protokolem SSH, náhrada za rcp;
  • sftp- zabezpečený ftp klient;
  • sftp-server- subsystém zajišťující přenos souborů protokolem SSH;
  • ssh-keygen- generátor klíčů
  • ssh-keycan- „sběratel“ veřejných klíčů hostitele;
  • ssh-agent- autentizační agent pro držení soukromých klíčů;
  • ssh-add- malý program pro přidávání klíčů do ssh-agent;
Jak je uvedeno výše, sshd, toto je program zodpovědný za funkčnost serveru SSH, spustí se při spuštění operačního systému. Chcete -li použít protokol SSH hned po instalaci FreeBSD musíte povolit spuštění démona sshd v instalačním programu Sysinstall... Ačkoli to lze provést později, za předpokladu, že máte přístup k terminálu serveru. Nechte démona spustit sshd, můžete přes úvodní skript /etc/rc.conf, napsáním následujícího řádku: Přirozeně to nemůžete udělat, ale stačí spustit démona z konzoly / usr / sbin / sshd, ale při příštím restartu se nespustí sám, respektive přístup na server pomocí protokolu SSH nebudete jej mít, ale pokud se server nachází v datovém centru poskytovatele hostingu, nebudete jej moci spravovat vzdáleně. Z tohoto důvodu, pokud hodláte server spravovat vzdáleně, sshd součástí fáze instalace.

SSH umožňuje výběr různých šifrovacích algoritmů. Klienti SSH a servery SSH jsou k dispozici pro většinu síťových operačních systémů.

SSH
název Zabezpečená skořepina
Úroveň (model OSI) Aplikovaný
Rodina TCP / IP
Port / ID 22 / TCP
Účel protokolu Vzdálený přístup
Specifikace RFC 4251
Hlavní implementace (klienti)
  1. Nejběžnější je autentizace heslem. S každým připojením, jako je https, je generován sdílený tajný klíč k šifrování provozu.
  2. Pro autentizaci pomocí páru klíčů je pro konkrétního uživatele předem vygenerován pár veřejného a soukromého klíče. Stroj, se kterým se chcete připojit, je uložen soukromý klíč a otevřete na vzdáleném počítači. Tyto soubory se při ověřování nepřenášejí, systém pouze ověří, že vlastník veřejného klíče vlastní i ten soukromý. S tímto přístupem je zpravidla nakonfigurováno automatické přihlášení jménem konkrétního uživatele do operačního systému.
  3. Ověřování pomocí IP adresy je nezabezpečené; tato funkce je nejčastěji deaktivována.

Algoritmus Diffie-Hellman (DH) se používá k vytvoření sdíleného tajemství (klíč relace). K šifrování přenášených dat se používá symetrické šifrování, algoritmy AES, Blowfish nebo 3DES. Integrita přenosu dat se kontroluje pomocí CRC32 v SSH1 nebo HMAC -SHA1 / HMAC -MD5 v SSH2.

Šifrovaná data lze komprimovat pomocí algoritmu LempelZiv (LZ77), který poskytuje stejnou úroveň komprese jako archivátor ZIP. Komprese SSH je povolena pouze na žádost klienta a v praxi se používá jen zřídka.

Standardy a implementace softwaru

První verzi protokolu SSH-1 vyvinul v roce 1995 výzkumník Tatu Ulönen z Helsinské technické univerzity (Finsko). SSH-1 byl napsán tak, aby poskytoval více soukromí než protokoly rlogin, telnet a rsh. V roce 1996 byla vyvinuta bezpečnější verze protokolu SSH-2, která byla nekompatibilní s SSH-1. Protokol získal ještě větší popularitu a do roku 2000 měl zhruba dva miliony uživatelů. V současné době termín „SSH“ obvykle znamená přesně SSH-2, protože první verze protokolu se kvůli významným nedostatkům nyní prakticky nepoužívá.

Pro použití SSH v Pythonu existují moduly jako python-paramiko a python-twisted-conch.

SSH tunelování

Tunel SSH je tunel vytvořený prostřednictvím připojení SSH a používaný k šifrování tunelovaných dat. Slouží k zabezpečení přenosu dat na internetu (IPsec má podobný účel). Při odesílání přes tunel SSH je nešifrovaný provoz jakéhokoli protokolu šifrován na jednom konci připojení SSH a dešifrován na druhém.

Praktickou implementaci lze provést několika způsoby:

  • Vytvoření proxy serveru Socks pro aplikace, které nemohou fungovat prostřednictvím tunelu SSH, ale mohou fungovat prostřednictvím serveru Socks proxy
  • Používání aplikací, které mohou fungovat přes tunel SSH.
  • Vytváření VPN tunelu, vhodné téměř pro každou aplikaci.
  • Pokud aplikace pracuje s jedním konkrétním serverem, můžete nakonfigurovat klienta SSH tak, aby umožňoval připojení TCP přes tunel SSH na konkrétní port TCP počítače, na kterém je klient SSH spuštěn. Například klienti Jabber se ve výchozím nastavení připojují na port 443. Poté, aby bylo možné nastavit připojení k serveru Jabber prostřednictvím tunelu SSH, je klient SSH nakonfigurován tak, aby přesměroval připojení z libovolného portu místního počítače (například z portu 4430 ) na vzdálený server (například jabber .example.com a port 443):

$ ssh -L 4430: jabber.example.com: 443 somehost

PROTI tento případ Klient Jabber je nakonfigurován pro připojení k portu 4430 serveru localhost (pokud klient ssh běží na stejném počítači jako klient Jabber).

K vytvoření tunelu ssh potřebujete počítač s běžícím serverem ssh a přístupem na jabber.example.com. Tuto konfiguraci lze použít, pokud je přístup na jabber.example.com z místního počítače uzavřen bránou firewall, ale existuje přístup k některému serveru ssh, který nemá žádná omezení přístupu k internetu.

SSH (Secure Shell) je síťový protokol vzdálený přístup který používá šifrování a kompresi pro přenášená data. Jednoduše řečeno, je to velmi užitečný a účinný nástroj, který vám umožní autentizaci v systému a plnou práci jménem místní uživatel je mnoho kilometrů daleko od běžícího stroje. Na rozdíl od telnetu a rsh - SSH šifruje veškerý provoz, takže všechny přenášené informace zůstávají důvěrné.

Takže již máme nainstalovaný ssh a ssh-daemon je přidán ke spuštění při spuštění systému. Můžete jej ovládat příkazem:

služba ssh stop | start | restart

Na Ubuntu nebo:

/etc/init.d/ssh (start | stop | reload | force-reload | restart | status)

Na Debianu nebo:

systemctl start | stop | restart sshd.service

V ArchLinuxu (po každé úpravě konfigurace je třeba restartovat). Sada obsahuje klienta a server.

Zkusme to v akci! Nejprve vytvořte složku ~ / .ssh

mkdir ~ / .ssh

Vygenerujte klíče pro daný uživatel server s příkazem:

ssh-keygen (jako běžný uživatel).

Při generování můžete pro klíč nastavit přístupové heslo (je vhodné nastavit dlouhé - poté, co se klíč dostal, ale neznal heslo od klíče, se útočník nebude moci přihlásit), nebo můžete přeskočte to jednoduše stisknutím „Enter“ - v tomto případě nebude heslo nikdy požádáno. Ve složce ~ / .ssh se objevily stejné veřejné a soukromé klíče.

Najděte si jiný stroj (i smartphone to zvládne - v systému Android existuje několik skvělých klientů SSH, jako je ConnectBot nebo JuiceSSH), nainstalujte na něj ssh a připojte se k serveru pomocí příkazu:

ssh [chráněno emailem]

Pokud je vše provedeno správně, budete vyzváni k zadání hesla uživatele a po zadání se ocitnete ve svém systému s pohledem z příkazového řádku.

Mimochodem, pro Windows existují také ssh servery a klienti.

Když jsme si užili výsledek naší práce, přejdeme k ještě nudnější části - nastavení klienta / serveru.

Konfigurace na straně klienta je v / etc / ssh / ssh_config, a ten serverový - / etc / ssh / sshd_config... Většina úplné vedení pro konfiguraci pravděpodobně existuje stránka v man - man ssh a man sshd_config, takže doporučujeme si ji přečíst. A v tomto článku budeme zvažovat nejnutnější věci.

Přizpůsobení

Standardní ssh port je 22. Lze jej změnit na jakýkoli nestandardní (což ztěžuje hackování z důvodu zabezpečení prostřednictvím nejasností nebo přilákání pozornosti potenciálních útočníků :) - za tímto účelem odkomentujte řádek:

#Přístav 22

A přidejte cokoli, co chcete, až 65535 (ujistěte se, že port není v konfliktu s jinými službami pomocí příkazu #netstat -tupln | grep POSLECHNĚTE).

Nyní, když se klient připojuje k serveru, bude muset napsat pomocí klíče:

ssh -p [port]:

Ve výchozím nastavení je přístup root povolen. Je velmi vhodné jej omezit (a místo toho správně vymezit místní uživatelská práva pomocí sudo). Chcete -li to provést, najděte řádek „PermitRootLogin“ a změňte hodnotu na „ne“. Můžete jej také změnit na „bez hesla“ - v tomto případě bude přihlášení pod root povoleno pouze z počítačů s důvěryhodným klíčem.

Ověření heslem můžete zakázat a pracovat pouze s klíči - najděte řádek: „PasswordAuthentication“ a změňte hodnotu na „no“. K čemu? Pokud někdo opravdu chce získat přístup k vašemu systému, může buď hrubě vynutit heslo při pokusu o autorizaci, nebo poslouchat a dešifrovat vaše připojení. Pokud zakážete ověřování heslem a přidáte ke klíčům ~ / .ssh / authorized_keys na serveru veřejný klíč vašeho, například pracovního notebooku, pak, jak si pamatujeme, budeme okamžitě povoleni na server. Ale co když pracujete na počítači někoho jiného a potřebujete naléhavě získat přístup k serveru ssh, ale podle očekávání nás nepustí dovnitř? Pak nemůžete zakázat ověřování heslem, ale použít nástroj fail2ban. Stačí jej nainstalovat ze svého úložiště, poté použije výchozí nastavení a minimálně ochrání váš kanál ssh před útoky hrubou silou. Více o fail2ban - http://putty.org.ru/articles/fail2ban-ssh.html.

V případě, že jsou klíče pro odpalování jaderných raket uloženy na vašem serveru, můžete udělat něco takového:

PermitRootLogin ne - přihlášení pod rootem je zakázáno.

PasswordAuthentication no - přihlášení bez hesla

Pojďme vygenerovat dlouhý klíč na vzdáleném počítači (-t encryption_type, -b bit length):

ssh -keygen -t rsa -b 4096

Se stejně složitým přístupovým heslem (obnovit Zapomenuté heslo, mimochodem, nemůžete. Můžete to změnit příkazem „ssh -keygen -p“, ale stejně budete požádáni o starý). Přeneseme veřejný klíč vzdáleného místního počítače do ~ / .ssh / authorized_keys na serveru a voila - přístup lze nyní získat z jednoho počítače pomocí přístupového hesla soukromého klíče. SSH vám umožňuje nastavit mnoho konfigurací zabezpečení a má pro to spoustu specifických nastavení - přečtěte si o nich v člověku.

Dvě možnosti sshd_config slouží ke stejnému účelu:

PřihlášeníGraceTime- nastavuje čas, po kterém bude připojení odpojeno, pokud nedojde k autentizaci.

MaxAuthTries- nastavuje počet nesprávných pokusů o zadání přihlášení, po jejichž dosažení bude připojení ukončeno.

MaxSessions- počet simultánních relací (pokud je server vaším domácím počítačem, ke kterému se chystáte připojit z univerzity nebo z práce, pak by bylo rozumné omezit počet relací na jednu - odmítnuté přihlášení v tomto případě bude stát důvodem ke zvýšení paranoie, generování nových klíčů a změně hesla). Pokud jste však pozorní, možná jste si všimli, že se při každém přihlášení na server zobrazuje řádek „Poslední přihlášení“. Kromě toho můžete přidat vlastní uvítací zprávu - najděte řádek „Banner“ a místo žádného nastavte cestu k souboru s textem, který se bude číst a zobrazovat při přihlášení.

Mimo jiné můžete povolit přihlášení pouze určitým uživatelům nebo povolit každému kromě určitých uživatelů:

AllowUsers user1- povolit vstup pouze uživateli1.

Uživatel DenyUsers1- umožnit všem kromě user1.

A podobné parametry pro přístup určité skupiny- AllowGroups a DenyGroups.

Můžete také poslat relaci X11 přes SSH. Chcete -li to provést, najděte řádek „ForwardX11“ a změňte hodnotu na „ano“.

Najděte podobný řádek v konfiguraci klienta - / etc / ssh / ssh_config a také změňte na „ano“.

Nyní se musíte připojit k serveru pomocí ssh s argumentem -X:

ssh -X [chráněno emailem]>

Po připojení můžete aplikaci okamžitě spustit:

ssh -X [chráněno emailem]"aplikace"

Takto vypadá spuštěný GIMP v relaci ssh:

Nebo můžete získat výstup z webové kamery notebooku nic netušícího uživatele :)

Výpočty jsou prováděny přímo na serveru a výstup je odeslán na klientský počítač (to znamená, že i když samotný server nemá X11, lze grafické aplikace vykreslovat na vašem vzdáleném počítači). Toto schéma funguje poměrně pomalu (nezapomeňte, že veškerý provoz je dynamicky šifrován) - ale tato funkce je velmi užitečná.

Soubory můžete také kopírovat přes relaci SSH - na to existuje jednoduchý nástroj „scp“. Soubory můžete přenášet přímo v relaci ze serveru na klienta:

scp [chráněno emailem]: / cesta / k / souboru / na / server / kde / uložit / na / místní / stroj

Takže z klienta na server:

cesta scp / do / souboru / klienta [chráněno emailem]: / cesta / na / server

To je docela výhodné, pokud potřebujete zkopírovat učebnici nebo fotografii, ale co když musíte pracovat s mnoha soubory? K tomu existuje velmi pohodlná věc - sshfs (k dispozici pro instalaci do úložišť většiny systémů * nix).

Stačí nastavit cestu jako scp:

sshfs [chráněno emailem]: / home / user / mnt /

A složka server / home / user se objeví v místě připojení / mnt místního počítače!

Odpojení se provádí pomocí umount.

A nakonec si promluvme o jedné málo známé funkci. Pokud vytvoříte soubor /.ssh/config a vyplňte jej takto:

Hostitel [jméno]

Název hostitele

Uživatel [uživatelské jméno serveru]

požadované možnosti

jako

ForwardX11 ano

Port 30 000

Poté se můžeme přihlásit pomocí:

ssh [jméno]

ssh -X -p 30 000 [chráněno emailem]

A všechny možnosti budou vyzvednuty automaticky. Díky častému ověřování na konkrétním serveru tedy tento proces zjednodušíte na několik okamžiků.

Pokryli jsme vše (a ještě více), co potřebujete vědět o SSH pro jeho každodenní použití - naučili jsme se používat autentizaci klíčem, chránili server před útoky hrubou silou a obecně opravili většinu potenciálních děr. Ve skutečnosti může SSH dělat mnohem více věcí - například tunelování a přesměrování portů prostřednictvím relace ssh, ale je nepravděpodobné, že byste to jako nejběžnější uživatel někdy použili. Dodatečné zdroje

Úvod

V předchozím čísle, v článku o zabezpečení internetových serverů, byly diskutovány problémy související s výběrem platformy a operačního systému internetového serveru, zabezpečení serveru obecně, o práci s uživateli a také o pracovní a nastavení brány firewall... Krátce připomenu, že uvažujeme o správě malé kanceláře nebo domácí sítě, pokud máte jeden nebo dva vyhrazené počítače. V prvním případě, kdy je jeden počítač bránou firewall plus poštovní server, webový server a možná i server ftp. Jednoduše řečeno, vyhrazený počítač se používá jako druh sdíleného zdroje. V druhém případě, což znamená velkou síť, je jeden počítač používán jako brána plus brána firewall a druhý je používán jako poštovní server, webový server atd. V zásadě je upřednostňován druhý způsob, protože bránu fyzicky oddělíte jako předmět prvního možného útoku hackerů a od sdílený server sítí. Každopádně v budoucnu můžete z počtu vyhrazených počítačů abstrahovat a pamatovat si, že i když jsou dva, je nerozumné je načítat dalšími úkoly.

Všechny následující navazují na řádek předchozího článku, předpokládají, že jako server je použit počítač Linux a uživatel je obeznámen s Linuxem a sítí na základní úrovni. Nápady pro tyto příklady jsou vypůjčené z různých výukových programů pro Linux. Na jaké otázky se tedy tentokrát podíváme? Nejprve serverové aplikace, které budete chtít nainstalovat na server. Za druhé, síťové útoky (včetně typů virů v Linuxu a trojských koních) a způsoby jejich řešení. Proč jsou tyto otázky spojeny do jednoho článku? Faktem je, že k hackování obvykle dochází buď z nedbalosti správce, nebo z důvodu nedostatků v ochraně serverových aplikací. Klient, jak samo slovo napovídá, nekontroluje prostředky systému, takže je zřejmé, že právě servery mohou být předmětem útoku.

Ochrana serverové aplikace

Každý, kdo zná UNIX, si uvědomuje, že téměř jakýkoli síťový program lze použít jako klient i jako server. V prvním případě používáte služby, ve druhém je poskytujete. Je zřejmé, že obě části jsou v síťové službě potřeba. Otázkou je, jaký druh serverových programů je potřeba na serveru ve vaší síti. Při instalaci Linuxu si samozřejmě můžete vybrat alespoň vše, protože instalace na disk neznamená ještě začít. Které ale aktivovat později? Existuje jednoduchý recept, kterého se sám při práci se servery vždy držím - čím méně aktivovaných serverů, tím lépe (obecněji: čím je věc složitější, tím je snazší ji rozbít). Bez ohledu na to, jak moc mluvíte o spolehlivosti systému UNIX, jsou zde pravidelně objevovány a opravovány otvory. Čím méně programů tedy spustíte, tím méně jich budete muset sledovat. V reálném životě by se to samozřejmě nemělo omezit na skutečnost, že uživatelům zakazujete doslova všechno. Je to samozřejmě bezpečné, ale proč se trápit se správcem? Zbytečné věci, jako například wais, by však rozhodně neměly být umístěny.

Telnet a ssh

Nyní se podívejme blíže na to, co skutečně potřebují interní i externí uživatelé. Potřebujeme telnet a ssh (zabezpečený shell). Možná to není příliš pohodlný přístup, ale je to nutné, alespoň pro správce. Jedná se o program, který poskytuje přístup v terminálovém režimu, když se na vašem počítači objeví okno o rozměrech 80 x 25, které zcela odráží volaný server. Můžete spustit libovolný příkaz a spustit programy, které nepoužívají grafiku - obecně se jedná o běžný vzdálený terminál. Rozdíl mezi telnetem a ssh vyplývá z názvů, ale přesto si to vysvětlíme: telnet přenáší informace nechráněné, dokonce i heslo se přenáší po síti v čistém textu a ssh šifruje všechny přenášené informace. Pokud si chcete být více či méně jisti ochranou, pak vypněte používání telnetu nebo jej vůbec nespouštějte. Pokud ho přesto chcete používat, musíte samozřejmě použít bránu firewall. Standardní příkazy mohou být následující:

pro ipfwadm -

Ipfwadm -I -a přijmout -P tcp -S 10.0.0.0/8 -D 0.0.0.0/0 23 ipfwadm -I -a přijmout -P tcp -S some.trusted.host -D 0.0.0.0/0 23 ipfwadm - I -a popřít -P tcp -S 0,0.0.0/0 -D 0,0.0.0/0 23

pro ipchains -

ipchains -A vstup -p all -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 23

Ipchains -A vstup -p all -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 23 ipchains -A vstup -p all -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 23

Můžete také použít soubory /etc/hosts.allow a /etc/hosts.deny, pro které byste měli psát:

v prvním souboru -

In.telnetd: 10.0.0.0/255.0.0.0, some.trusted.host

ve druhém souboru -

In.telnetd: VŠE

Všimněte si, že i když jsou tato pravidla povolena, jakýkoli program naslouchající v síti někde podél cesty paketu s heslem jej může zachytit.

Dva další důležité soubory s informacemi souvisejícími se zabezpečením systému jsou / etc / securetty a / etc / shells. První určuje terminály, ze kterých se může uživatel root přihlásit. Na většině systémů se ve výchozím nastavení může uživatel root přihlásit pouze z konzoly. Druhý soubor určuje seznam platných obálek, které lze spustit, když se uživatel přihlásí. Pěkný příklad, který jsem vzal z manuálu Linuxu, je použití passwd jako shellu. To poskytuje uživatelům snadnou změnu hesla a také zajišťuje, že v režimu terminálu nedělají nic jiného. Chcete -li to provést, zadejte samotný program passwd do souboru / etc / shells, tj. Zadejte řádek:

/ usr / bin / passwd

a do souboru / etc / passwd napište o uživateli:

Uživatelské jméno: x: 1000: 1000 :: / home / uživatelské jméno: / usr / bin / passwd

Nyní, když se uživatel přihlásí do sítě, může změnit pouze heslo. Výstup na terminál vypadá takto:

Probíhá pokus 1.2.3.4 ... Připojeno k localhost. Úniková postava je „^]“. Red Hat Linux release 5.2 (Apollo) Kernel 2.2.5 na i586 přihlášení: tester Heslo: Změna hesla pro tester (aktuální) Heslo UNIX: Nové heslo UNIX: Znovu zadejte nové heslo UNIX: passwd: všechny ověřovací tokeny byly úspěšně aktualizovány Připojení uzavřeno cizími hostitel.

I když byl pokus o změnu hesla neúspěšný, bude odpojen od systému. Při připojování byste měli také věnovat pozornost spouštěcímu výstupu: telnet poctivě zapisuje název a verzi systému. Obecně je to výhodné, ale v tomto případě potenciálnímu hackerovi poskytnete informace, které může použít pro své vlastní účely. Jak se tomu můžete vyhnout? Když se uživatel přihlásí, telnet zobrazí soubor /etc/issue.net vytvořený při spuštění systému. Je vytvořen příkazy v souboru rc.local:

# Toto přepíše / etc / issue při každém spuštění. Proveďte zde # změny, které chcete provést v / etc / issue, nebo je ztratíte při restartu. echo ""> / etc / issue echo "$ R" >> / etc / issue echo "Kernel $ (uname -r) on $ a $ (uname -m)" >> / etc / issue cp -f / etc / problém /etc/issue.net echo >> / etc / issue

Pokud tedy nepřetěžujete systém, můžete jednoduše upravit soubor /etc/issue.net, v opačném případě upravit samotný rc.local. V každém případě je telnet doporučován pouze v případě, že je opravdu potřeba, a nelze jej nahradit ssh.

Ssh je z pohledu uživatele podobný telnetu. Na rozdíl od telnetu, který používá port 23, používá 22, ale hlavní vnitřní rozdíl je v tom, že veškerý provoz je šifrován. Ve všech ostatních ohledech jsou si podobní. Pro ssh můžete použít stejná pravidla brány firewall (s nahrazeným číslem portu) a nastavení v souborech /etc/hosts.allow, /etc/hosts.deny. Příjemnou funkcí je přítomnost vlastního konfiguračního souboru / etc / sshd / sshd_config obsahující následující konfigurační řádky:

Port 22 # číslo portu, které může být více než 22 ListenAddress 0,0.0.0 # jaké adresy démon HostKey obsluhuje / etc / ssh / ssh_host_key # soubor kódů klientů RandomSeed / etc / ssh / ssh_random_seed # soubor náhodných čísel slouží ke generování kódů ServerKeyBits 768 # délka kódu v bitech LoginGraceTime 300 # čas zadání jména a hesla KeyRegenerationInterval 3600 # frekvence regenerace kódů PermitRootLogin ne # bez ohledu na to, zda se uživatel root může přihlásit pomocí ssh IgnoreRhosts ano # Ignorovat nebo ne informace ze souboru uživatele rhosts StrictModes ano # přísný režim, blokování uživatelských chyb, například zadání hesla 5krát # nebo náhodný stisk zadejte QuietMode ne # ano - soubor protokolu nezapisovat vůbec a ne - jinak X11Předávání ne # přenáší informace ze serveru X přes kanál ssh FascistLogging ne # stupeň úplnosti souborů protokolu PrintMotd ano # zobrazit nějakou frázi dne KeepAlive ano # udržovat komunikaci poskytnutím standardního odpojení SyslogFacility DAEMON # který je zodpovědný za generování protokolů RhostsAuthentication ne # povolit autentizaci uživatele prostřednictvím rhostů RhostsRSAAuthentication ne # bez ohledu na to, zda ověřování pomocí rhostů nebo /etc/hosts.equiv # je ve výchozím nastavení nastaveno na ano yes # use only RSA authentication PasswordAuthentication yes # use users their normal passwords or not PermitEmptyPasswords no # allow users without password or not

Existuje také několik užitečných nastavení, zejména:

AllowGroups, DenyGroups, AllowUsers, DenyUsers, AllowHosts, DenyHosts, IdleTimeout time (time after which the connection will be interrupted in case of inaktivity).

Jak vidíte z výše uvedeného, ​​obecně má ssh tolik možností, že můžete přesně řídit, kdo a jak se může přihlásit. Jde ale o server a uživatelé sítě musí spouštět ssh klienty. Na rozdíl od telnetu, který je k dispozici ve Windows, ssh není součástí standardní distribuce. Linux tento problém nemá - klient je také tam. Je důležité si uvědomit, že démon ssh je k dispozici v první i druhé verzi. Je samozřejmě nepříjemné, že neexistuje zpětná kompatibilita, ale jsem si jist, že vy jako správce poskytnete uživatelům klienty, kteří budou schopni komunikovat se serverem. Zde je několik klientů ssh pro Windows:

  • Čerstvé bezplatné FiSSH. http://www.massconfusion.com/ssh/
  • Tera Term. http://hp.vector.co.jp/authors/VA002416/teraterm.html klient telnetu. http://www.zip.com.au/~roca/ttssh.html - další dll pro podporu ssh
  • Tmel. http://www.chiark.greenend.org.uk/~sgtatham/putty.html - jen asi 200 tis.
  • Mindterm http://www.mindbright.se/mindterm/ - klient ssh Java
  • Aplikace Java Telnet. http://www.mud.de/se/jta/ - existuje podpora ssh
  • Zabezpečte CRT. http://www.vandyke.com/ - komerční klient

Je nutné zmínit terminálový přístup v souvislosti s programy jako rlogin, rexec, rsh. Jejich použití postrádá jakoukoli ochranu a někdy dokonce umožňuje uživatelům přejít z počítače na stroj bez zadání hesla. Ačkoli je to výhodné, z hlediska zabezpečení to prostě není k ničemu dobré. Tyto služby jsou obvykle spuštěny ve výchozím nastavení. Chcete -li je vrátit zpět, musíte upravit soubor /etc/inetd.conf a restartovat démona inetd. Telnet a ssh obecně vyčerpávají možnosti koncového přístupu do systému. Přejdeme tedy k dalším serverovým aplikacím, které jsou pro uživatele užitečné.

Poštou nebo e-mailem

Co je potřeba k tomu, aby lidé měli poštu, bez níž si komunikaci mezi lidmi často již nelze představit? Poměrně běžným způsobem je instalace poštovního serveru, vytvoření poštovní schránky pro každého uživatele a konfigurace pop-daemona, aby si lidé mohli tuto poštu vyzvednout. Aby však server mohl přijímat a odesílat dopisy, je nutné na něj nainstalovat poštovní program jako sendmail, postfix nebo qmail, který zpracovává poštu na počítači se systémem UNIX. K tomuto účelu byl tradičně používán sendmail. Nyní se také používá na většině strojů, ale další dva zmíněné programy jsou dobré a dokonce vylepšené náhrady. Jako obvykle však hlavní obavy souvisejí s ochranou nejnovější verze sendmail (8.9.x) jsou docela robustní.

Sendmail je k dispozici na všech systémech Linux, přičemž nejnovější distribuce pravděpodobně obsahují verzi 8.9.x. Program používá několik konfiguračních souborů, které v tomto procesu analyzuje. Než však budeme hovořit o konfiguraci, všimneme si, že program lze spustit jak jako démon, tak v pohotovostním režimu. V prvním případě bude neustále poslouchat port a ve druhém bude aktivován jednou a jednoduše zpracuje všechny příchozí informace. Druhá metoda je vhodnější z hlediska zabezpečení. Chcete -li to provést, stačí odebrat parametr -bd ze spouštěcího řádku.

Nyní o konfiguraci. Hlavním souborem je sendmail.cf, který může, ale nemusí mít odkazy na jiné soubory. Analyzuje se také přístupový soubor, kam můžete vložit adresy, ze kterých (nebo na která) nebudou odesílána písmena. Například položky:

10.0.0 RELÉ spam.com ODMÍTNOUT

znamená, že e -maily z adres .spam.com nebudou přijímány a e -maily z interní sítě lze přijímat a odesílat.

Dalším užitečným a používaným souborem jsou aliasy. Určuje, která jména budou interpretována jako název dané poštovní schránky. Například pokud nastavíte

Petrov: hvězda

dopisy přicházející Petrovovi na adresu [chráněno emailem] bude odesláno do schránky [chráněno emailem] i když někdo nezná skutečnou adresu. To je užitečné zejména v případě, že chcete, aby e -maily přicházely manažerovi, který chce mít schránku nikoli se správcem jmen, ale se svým vlastním. To znamená, že manažer poskytne svou adresu pouze těm, které uzná za vhodné, a správce bude viset na webové stránce. Očividně to přinese maximální pohodlí v případě změny manažera. Do stejné schránky lze přesměrovat libovolný počet jmen.

Soubor Virtusertable specifikuje mapování jedné adresy na jinou, například:

[chráněno emailem] manažer

Pomocí těchto dvou souborů (aliasů a Virtusertable) lze implementovat duplikaci pošty, která uloží veškerou příchozí poštu. Trik spočívá v tom, že je nejprve zkontrolován soubor Virtusertable a poté aliasy. Pokud s posledním záznamem v Virtusertable zapíšete do souboru aliasů:

Správce: hvězdička, " / var / spool / mail2 / star"

pak pošta přicházející na adresu správce i hvězdu bude zapsána do normálního adresáře / var / spool / mail a / var / spool / mail2.

Jedním z hlavních rozdílů mezi postfixem a sendmailem je modularita (kterou má také qmail). Na rozdíl od sendmailu běží jen malá část kódu, jen jeden modul, jako root a všechny ostatní části běží podle potřeby a mají svá vlastní nastavení. Konfigurační soubory postfixu se obvykle nacházejí v / etc / postfix. Soubor manager.cf spravuje provoz různých modulů s uvedením uživatelů, pod kterými běží, a počtu procesů. Soubor main.cf je hlavním konfiguračním souborem a nastavuje základní parametry samotné pošty. Zde je jeho přibližná podoba s vysvětlením (přesněji ty komponenty, které bude s největší pravděpodobností nutné upravit):

# název počítače myhostname = mail.example.org # doména mydomain = example.org # ze které adresy odesíláte e -maily myorigin = $ mydomain # na kterých rozhraních spouštíte program inet_interfaces = vše # soubor virtuálních jmen virtual_maps = hash: / etc / postfix / virtuální # soubor nahrazení názvu alias_maps = hash: / etc / postfix / aliases # adresář, kam má být umístěna pošta, když ji uživatel obdrží home_mailbox = Maildir / # kam uložit poštu mail_spool_directory = / var / spool / mail # příkaz načíst mail mailbox_command = / usr / sbin / scanmails # soubor udávající adresy, ze kterých a na které by měla být pošta odesílána # relay_domains = / etc / postfix / relaydomains # local machines mynetworks = 10.0.0.0/24, 127.0.0.0/8 # co na výstup, pokud se uživatelé připojí k portu 25 smtpd_banner = $ myhostname ESMTP $ mail_name

Program postfix lze získat na adrese http://www.postfix.org.

Nyní si promluvme o protokolech POP a IMAP. První funguje na 110. portu, druhý - na 143. místě. V zásadě oba sledují stejný cíl, ale jsou implementovány různými způsoby. POP (post office protocol) je poměrně starý a špatný protokol. Vše, co umožňuje, je připojit se k serveru, přijímat poštu a mazat ji ze schránky na serveru. Protokol IMAP pokročilejší. Umožňuje vám spravovat poštu přímo na serveru. Nemusíte stahovat veškerou poštu, ale vezměte si pouze záhlaví dopisů, vytvářejte adresáře na serveru a distribuujte mezi nimi poštu. Z hlediska zabezpečení jsou tyto protokoly stejné, proto je vhodné použít bránu firewall, aby se předešlo problémům. Můžete také dát provoz těchto protokolů do ssh. Je velmi důležité zkontrolovat poštu, zda neobsahuje viry. Ačkoli viry nejsou v systému UNIX děsivé, protože mnoho uživatelů používá systém Windows, je moudré spouštět e -maily pomocí skenerového programu, jako je AMAVIS. Nejjednodušší způsob, jak to provést (samozřejmě se předpokládá, že program AMAVIS je již nainstalován), pokud je v konfiguračním řádku v postfixu

Mailbox_command = / usr / bin / procmail

Mailbox_command = / usr / sbin / scanmails

Stručně o tom, jak uživatel přijímá a odesílá poštu na pracovišti. Naštěstí všechny populární programy jsou klienti POP nebo IMAP (myslím tím alespoň Netscape a Outlook). Navíc, pokud správce dal možnost přístupu k serveru prostřednictvím telnetu nebo ssh, můžete si poštu prohlížet a pracovat s ní v terminálovém režimu (vyzvednutí v tomto případě je obtížnější). Chcete -li to provést, musíte se připojit k serveru a v terminálu spustit nějaký poštovní program, například poštu nebo borovici. Ten je mnohem pohodlnější a je to program na celou obrazovku s nabídkou, pouze v textovém režimu.

Přístup k souborům a síťový tisk

V systému UNIX existují dva standardní nástroje- NFS a LPD. První vám umožňuje vytvořit síťové systémy souborů, druhý - tisk na tiskárně. Pokud jde o využití prostředků stroje UNIX z Windows, Samba (SMB) je pro to, jak to vidím, nejvhodnější. Tento program vám umožňuje přístup k souborům a také poskytuje možnost síťového tisku z počítače se systémem Windows prostřednictvím serveru UNIX. Protože je tento článek hlavně o zabezpečení serveru, je třeba poznamenat, že sdílení zdrojů v síti není při běžné konfiguraci pravidel externího firewallu nebezpečné. Zde mohou nastat problémy jiného plánu spojené s tím, že ne každý by měl mít přístup k těm či oněm informacím, ale to je zcela regulováno nastavením atributů souborů a adresářů. Bez ohledu na to, jak jste vychytralý správce, nemůžete zabránit situaci, kdy například někdo zapomene zavřít relaci ssh a opustí počítač. Je to jiná věc, pokud některým souborům udělíte přístup pro čtení, ale to jsou příliš zjevné věci na to, abychom se nad tím pozastavovali. Proto se nyní zaměříme na zvážení serverových aplikací, které jsou užitečné nejen pro interní uživatele, ale také pro externí. Mám na mysli především webový server a možná ftp. Nyní je těžké si představit nejmenší společnost nebo dokonce jen síť bez první a přítomnost druhé závisí na tom, zda máte skutečnou potřebu samostatně nahrát některá data na server ftp.

Webové a ftp servery

Apache je nesporným lídrem mezi několika dnes existujícími webovými servery, pokud jde o popularitu a výkon. Tento server kombinuje rychlost, stabilitu, vysoké zabezpečení a zároveň je zdarma. Není vždy možné najít takový program pro vlastní účely, ale tady je. A musíme přiznat, že autoři programu vynakládají velké úsilí, aby dosáhli maximální efektivity a spolehlivosti. Nejprve si uvědomte, že pokud používáte svůj webový server pouze pro interní účely, jako je správa systému nebo sdílení souborů, měli byste jej rozhodně firewallovat z vnějšího světa. Pokud je to server pro každého, pak musíte pochopit, že je otevřen pro každého. Proto je nutné jej řádně sledovat, a to: pečlivě a správně jej nakonfigurovat a sledovat soubory protokolu, aby bylo možné předem určit případný útok. Pokud jde o zabezpečení, samotný server má velmi malý přístup k systému, protože pouze jeho první kopie běží jako root a ostatní jsou obvykle spuštěny jako nikdo. V nastavení serveru, tj. V souborech httpd.conf, smr.conf, access.conf, je navíc jasně uvedeno, ke kterým adresářům má server přístup a ke kterým nikoli. Pokud do souboru httpd.conf napíšete například:

Možnosti Žádné Povolit Přepsat Žádné Možnosti Rejstříky FollowSymLinks Obsahuje AllowOverride None

pak výslovně uvedete, že server má přístup pouze do adresáře / WWW, kam potřebujete umístit veškerý materiál webu (nebo webů), jehož práci zajišťuje server. Pokud chcete mít jistotu, že nikdo nezmění přístupová práva, například zahrnutím souboru .htaccess do nějakého adresáře, pak do souboru srm.conf zadejte:

rozkaz povolit, popřít odepřít od všech

Z bezpečnostního hlediska nemá smysl hovořit podrobněji o dalších nastaveních, zejména proto, že instalace a minimální konfigurace serveru Apache byla popsána v předchozím čísle v článku věnovaném tomuto tématu.

Je nutné se samostatně pozastavit nad používáním protokolu https (zabezpečený http). Tento protokol obvykle běží na portu 443 (na rozdíl od standardního http běžícího na portu 80). Existují nejméně dva způsoby, jak obohatit Apache o zabezpečený http. Prvním je použití doplňku z open-ssl, druhým je použití modulu mod_ssl. Obě možnosti vedou k téměř stejným výsledkům. Obecně je možné navázat připojení pomocí https na portu 443. Tím se vytvoří certifikát pro server, který bude ověřen klienty po připojení. Tím se vyloučí (samozřejmě ne s absolutní zárukou) odposlechy provozu. Chcete -li vytvořit certifikát při použití openssl, musíte zadat příkazy:

Openssl genrsa -des3> httpsd.key openssl req -new -key httpsd.key> httpsd.csr

soubory navíc musí být ve stejném adresáři, kde jsou umístěny konfigurační soubory serveru. Aby server správně fungoval s portem 443, budete muset také změnit konfigurační soubory. Potřebují napsat něco podobného

# poslech na portu 443 (ve výchozím nastavení server poslouchá pouze na 80. portu) Naslouchat 443 # zakázat globální využití ssl SSLDisable # místo, kam bude server ukládat dočasné informace během ssl připojení. Bez # tohoto nastavení nebude server fungovat SSLCacheServerPath / usr / bin / gcache # port, přes který server komunikuje s CashServer SSLCacheServerPort 12345 # CashServer timeout SSLSessionCacheTimeout 300

Po těchto nastaveních je váš server v zásadě připraven pracovat s protokolem https, ale prozatím je tento protokol zakázán. Je vhodné vytvořit virtuálního hostitele, který má stejný název jako váš výchozí, ale s výslovným uvedením portu 443, jinými slovy, nyní máte spuštěný webový server. Běží na portu 80 a používá protokol http. Přidáním apache-ssl a výše popsaných nastavení jste uživatelům poskytli možnost komunikovat s vaším serverem prostřednictvím protokolu https. Je nepravděpodobné, že by všechny informace na vašem serveru byly tak utajované, že je budete chtít rozdávat pouze v režimu zabezpečeného připojení. Server Apache vám umožňuje vytvářet virtuální počítače, to znamená, že můžete pro hostitele deklarovat kořenový podadresář, pojmenovat jej, napsat sadu konfiguračních souborů a vše ostatní, co je nutné, ale fyzicky bude umístěn ve vašem počítači. a bude řízen vaším vlastním serverem ... V našem případě není ani nutné uvádět jiný název, protože je stejný, pouze jiný port. Takto může vypadat toto nastavení:

DocumentRoot / www / secure / ServerName www.example.com ServerAdmin [chráněno emailem] Protokoly ErrorLog /https_error.log Protokoly TransferLog /https_access.log # Povolit ssl pro tohoto virtuálního hostitele SSLEnable # Vyžadovat pouze ssl SSLRequireSSL SSLCertificateFile /usr/conf/httpsd.crt SSLCertificateKeyFile /usr /conf /httpskeyClient

Kromě http existuje ještě ftp - užitečná a praktická služba, zvláště pokud máte spoustu souborů, které si uživatelé potřebují stáhnout (například poskytnete data z nějakého výzkumu). Výhodou ftp oproti http je rychlost. Protokol ftp má minimální režii. Je s ním však mnoho problémů. Hlavní je jeho „věk“: ftp je starý jako telnet. Odtud okamžitě vyvstanou komplikace související se zabezpečením: uživatelské jméno a heslo se přenáší jasně a provoz přenášených informací není ničím chráněn. Kromě ftp lze přenášet pouze soubory. Pokud tedy máte nějaké informace, které jsou dostupné každému, pak je rozumné vytvořit jednoho uživatele, pod jehož jménem každý zadá. V takovýchto ftp-archivech se tento uživatel nazývá anonymní a jako heslo zadává svou e-mailovou adresu. V tomto případě je mnohem méně bezpečnostních problémů. Navíc v případě, že potřebujete poskytnout přístup ftp několika uživatelům, udělejte krok, aby mohli vkládat soubory pouze do svých vlastních adresářů. Pokud jde o servery, jsou samozřejmě k dispozici ve standardních balíčcích, ale možná nebudete chtít nainstalovat standardní ftpd, ale nějaký jiný.

Jedním z populárních serverů ftp je proftpd. Jeho konfigurační soubory jsou podobné souborům Apache, což jim usnadňuje přizpůsobení, protože s největší pravděpodobností je vaším webovým serverem Apache. Hlavní konfigurační soubor je /etc/proftpd.conf. Jeho přibližná podoba může vypadat takto:

Název_serveru „ProFTPD Výchozí instalace“ ServerType inetd DefaultServer na Port 21 Umask 022 MaxInencies 30 Uživatel nikdo Skupina nikdo Povolit přepsání zapnuto

Výše uvedený seznam naznačuje, že server je spuštěn pomocí inetd, na standardním portu 21 je maximální počet kopií 30 a je spuštěn jako skupina a uživatel nikdo. 022 - maska ​​atributů souboru při vytváření, která bude zpočátku použita jako standardní. Tato konfigurace nedává přístup anonymnímu uživateli. Chcete -li to provést, musíte napsat přibližně následující nastavení konfigurace:

Uživatel ftp Group ftp RequireValidShell off UserAlias ​​anonymní ftp MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir .message DenyAll

Po tomto přidání je možné pracovat jako anonymní a pouze číst, tj. Stahovat soubory. Uvedu ještě jeden příklad nastavení práv k používání adresářů:

Povolit vše DenyAll

Takový záznam v konfiguračním souboru poskytuje přístup pro zápis, ale nedává právo stahovat soubory. To je užitečné, pokud chcete, aby uživatelé mohli nahrávat soubory, ale neviděli, co vložili ostatní.

Tím je téma serverových aplikací ukončeno. Samozřejmě je třeba poznamenat, že existuje mnohem více serverových aplikací: existuje také DNS, zpravodajské servery, servery NIS, server X a mnoho dalších zajímavých a užitečných aplikací. Pokusil jsem se však zaměřit na to, co může být ve skutečnosti potřeba při provozu sítě, která o sobě netvrdí, že je globální kyberpolis nebo poskytovatel. Nyní přejdeme k druhé otázce, zmíněné na začátku článku - k síťovým útokům a hackům.

Síťové útoky a hacky

Nejprve několik obecných slov. V UNIXu, na rozdíl od Windows, není problém s viry. Vnitřní struktura přidělování paměti a oprávnění k souborům si sama poradí s tím, co viry obvykle dělají ve starém DOSu nebo Windows. Hlavní bariérou pro viry (v jejich standardním smyslu) je nedostatečný přístup k fyzickým zařízením pro programy spuštěné jménem běžného uživatele a také skutečnost, že atributy souborů nejsou nastaveny obecně, ale pro uživatele, skupinu a všichni uživatelé. V systému Windows nic takového neexistuje (toto je částečně implementováno v systému Windows 2000). Přestože je obtěžování způsobené tradičními viry téměř nemožné, systémy UNIX jsou stále hacknuty a zničeny. Může za to přítomnost zcela odlišných technologií, které lze zhruba rozdělit do dvou kategorií. První jsou takzvaní trojští koně, což jsou programy, které zdánlivě, a možná i ve skutečnosti, provádějí celkem rozumné a právní kroky. Souběžně však vykonávají další „práci“: poslouchají síť nebo shromažďují informace o heslech a odesílají je do sítě atd. Tyto programy samy o sobě pravděpodobně nepoškodí - budou spíše prostředníky mezi vaším systémem a externím útočníkem. Druhou kategorií jsou síťové hacky. Tyto akce zpočátku nelákají na interní obsah počítače, ale snaží se zničit systém nebo k němu získat přístup odesláním některých informací, například záměrně nesprávných síťových paketů, nebo pokusem „nalákat“ některá skrytá data pomocí speciálně vytvořených požadavků. . Proč vůbec hackovat systémy? Toto je spíše psychologická než praktická otázka. Faktem je, že ve skutečnosti poměrně velká část hackování do strojů nepochází ze sobeckých účelů, ale jednoduše ze zájmu o samotný proces. Mezi lidi, kterým se obvykle říká hackeři, nejsou jen ti, kteří hackují pro nějaký skutečný prospěch, ale také „nadšenci“, kteří hackují síť kvůli samotnému hackování. Zdá se to neočekávané, ale je to tak a statistiky to ukazují. Kromě toho je často docela obtížné obvinit člověka za to, co udělal, protože někdy není možné prokázat, že to byl on a bylo to z tohoto počítače, který prováděl určité nezákonné akce. V tomto článku však diskutujeme o hackech samotných, a nikoli o jejich psychologických a právních aspektech, a proto přejdeme ke konkrétním věcem.

Hackování sítě, bez ohledu na to, jak pečlivě se provádí a bez ohledu na použité metody, nevyhnutelně vede k určitým změnám v systému. Může to být nový seznam naslouchajících portů, neznámé programy, změna velikosti stávajících programů, zejména ps nebo netstat, nebo dokonce noví uživatelé. Tak či onak, jde o to, že se něco musí změnit, a to je nevyhnutelné. Proto první rozumnou akcí, kterou doporučuji provést bezprostředně po instalaci a konfiguraci systému, je vytvoření souboru s informacemi o systému. Něco jako fotografie ve chvíli, kdy všechno, co se stane, považujete za správné. Konkrétněji mám na mysli informace dané programy netstat, vmstat, free, du, df. Druhým tipem je zálohovat konfigurační soubory systému a počáteční nastavení. Jejich vzájemné porovnání může také poskytnout určité informace o tom, co se v systému v poslední době stalo.

Začněme sledováním systému souborů, který zahrnuje nejen sledování používání systému souborů (což lze provést pomocí příkazů du a df), ale také kontrolu neměnnosti určitých souborů (například systémových souborů). Existuje řada programů, které tyto funkce provádějí:

  • AIDE - program, který vám umožňuje vytvářet kontrolní součty pro soubory, a tím kontrolovat jejich integritu; umožňuje použití více algoritmů. http://www.cs.tut.fi/~rammer/aide.html. (Zbytek programů plní podobné funkce, všechny jsou zdarma.)
  • Gog & Magog - vytváří seznam atributů a vlastníků souborů, umožňuje automatické porovnávání. http://www.multimania.com/cparisel/gog/
  • Sentinel - tvoří kontrolní součty pomocí algoritmu RIPEMD-160bit MAC má grafické rozhraní... http://zurk.netpedia.net/zfile.html
  • SuSEauditdisk je program umístěný na disketě, který umožňuje provádět kontrolu systému zcela autonomně, bootovat přímo z diskety. Standardně dodáván se SuSELinux. http://www.suse.de/~marc
  • ViperDB - Kontroluje vlastníky a atributy souborů vytvářením souborů protokolu, které zaznamenávají změny, ke kterým došlo. Program má tři parametry: -init - vytváří databáze podle souborů, -check - kontroluje soubory proti databázi a provádí změny v databázi, pokud k nim došlo na disku, -checkstrict - kontroluje soubory proti databázi a vrací staré parametry, pokud mají změny došlo. http://www.resentment.org/projects/viperdb
  • Sxid - Vytváří kontrolní součty souborů a ověřuje atributy a vlastníky. ftp://marcus.seva.net/pub/sxid/
  • nannie - pamatuje si čas vytvoření souboru. ftp://tools.tradeservices.com/pub/nannie/
  • confcollect - pamatuje si systémové informace, například nainstalované software, směrovací tabulky atd. http://www.skagelund.com/confcollect/
  • Pikt je nástroj obsahující interní skriptovací jazyk pro vytváření programů, které provádějí standard, ale nejsou implementovány ve formě konkrétních příkazů, funkcí (sledování hodinového používání systému, eliminace dlouhotrvajících procesů, nastavení velikosti schránka atd.). K dispozici pro různé platformy: Solaris, Linux a FreeBSD. http://pikt.uchicago.edu/pikt/

Můžete také mluvit o programech, které provádějí funkce zálohování, ale podle mého názoru to přímo nesouvisí se zabezpečením systému a kromě toho jsou v distribuci UNIX zahrnuty různé standardní nástroje. Zabezpečení souvisí pouze s tím, že jsou nutné zálohy, ale to již bylo zmíněno výše.

Nyní pojďme zjistit, co dělat, aby se zabránilo síťovým útokům. Na bránu je samozřejmě nutné nainstalovat firewall. Tak či onak je nutná ochrana na úrovni paketů. Pokud je brána firewall jakkoli obejita, jsou vyžadovány následující programy:

  • DTK - emuluje standardní služby a programy a v případě nestandardních požadavků zasílaných do těchto programů jsou záměrně vydávány nepravdivé informace, aby útočníka zmátly. http://all.net/dtk/
  • Psionic PortSentry - monitoruje skenování portů. Hlavním úkolem je zkontrolovat skenování portů a zobrazit vše v souboru protokolu. http://www.psionic.com/abacus/portsentry/
  • Psionic HostSentry - Vytvoří databázi informací o používání stroje uživateli a při nestandardním využití prostředků zobrazí zprávu. http://www.psionic.com/abacus/hostsentry/
  • Scanlogd - skenuje síťové pakety a generuje soubory protokolu na základě nastavení. http://www.openwall.com/scanlogd/
  • Firewalls je souhrnný název pro programy brány firewall.
  • TCP -WRAPPERS - programy, které omezují přístup k určitým prostředkům jménem nebo číslem počítače. Některé z těchto programů jsou k dispozici na. ftp://ftp.porcupine.org/pub/security/
  • NFR je program podobný konstrukci jako sniffer (sniffer je program pro poslech síťového provozu). Zaznamenává soubory protokolu a v reálném čase detekuje útoky a skenování portů. http://www.nfr.com/
  • Podrobné a užitečné často kladené dotazy týkající se síťových útoků a jejich detekce lze nalézt na adrese http://www.robertgraham.com/pubs/network-intrusion-detection.html.

Je těžké jednoznačně odpovědět na otázku, co a jak by se mělo při síťových útocích dělat. Zde hodně závisí na specifikách konkrétní sítě i organizace, ve které se nachází. I při útoku stejného typu budete v jednom případě chtít nejprve uložit data a ve druhém budete chtít zablokovat zdroj útoku, to znamená, že vše závisí na prioritách. Útoky jsou velmi obtížným problémem v organizacích, kde jsou prostoje sítě nepřijatelné. Tam budete muset provádět všechny operace online, a to v maximální možné míře v kontaktu s vnějším světem. Docela hodně také závisí na povaze útoku. Hackování kvůli hackování je jedna věc a účelové krádeže utajovaných dat druhá. Možná je to pravda a sofistikovanější verze, kdy je útok prováděn s cílem odvést pozornost správce od sofistikovanějšího a promyšlenějšího hackování prováděného souběžně. Ale nemyslete si, že útok může přijít jen zvenčí. Může to začít zevnitř. Možným scénářem je spuštění trojského koně na počítači se systémem Windows ve vnitřní síti. Očividně to lze provést jednoduše zasláním dopisu poštou. Nyní se podívejme blíže na programy sniffer.

Čichat obecně znamená čichat. Sniffers jsou tedy programy, které tak či onak naslouchají síti a všem informacím, které přes ni procházejí. Názorným příkladem je heslo, které jde z čistého textu z interního počítače na server. Protože pakety cestují po síti, dokud nenajdou příjemce, instalace sniffer na alespoň jeden počítač ve vnitřní síti (například pomocí písmene, jak je uvedeno výše) je pohodlný nástroj pro externí cracker. Ve většině případů jsou čichači velmi pasivní, což ztěžuje jejich detekci. Níže je uveden seznam několika programů sniffer, které lze použít ke sledování dění v síti:

  • Tcpdump je nejstarší program dodávaný se všemi systémy UNIX.
  • Sniffit - má schopnost filtrovat pakety a překládat informace do textového formátu; vybavené grafickým rozhraním. http://sniffit.rug.ac.be/~coder/sniffit/sniffit.html
  • Ethereal je analyzátor síťových protokolů.
  • Snort - navržen tak, aby monitoroval síť, dokáže detekovat skenování portů. http://www.clark.net/~roesch/security.html
  • SPY je sniffer, ale není zdarma. K dispozici je bezplatná síťová licence pro jednoho uživatele až pro pět počítačů. http://pweb.uunet.de/trillian.of/Spy/

Nemělo by se však zapomínat, že kromě softwaru existuje i poslech hardwaru, například jednoduché připojení jiného počítače nebo prosté připojení ke kabelu. Je zvláštní, že pokud používáte tenký ethernet (koaxiální kabel), můžete jej poslouchat, aniž byste jej museli otevírat.

  • AntiSniff je program, který prohledává v síti pachy. Princip jeho fungování je velmi jednoduchý: odešle požadavek a podle odezvy a doby odezvy určí, zda je zpracováván jiným programem nebo ne. http://www.l0pht.com/antisniff/

Podrobný a užitečný FAQ často najdete na. http://www.robertgraham.com/pubs/sniffing-faq.html.

Další technikou, která může zabránit útokům, je otestovat systém pomocí programů, které emulují útoky, nebo samotných programů, pomocí kterých jsou tyto útoky prováděny. Tak trochu kontrolujete systém v bojových podmínkách. Pokud je ochrana pro tento konkrétní stroj opravdu nejvyšší prioritou, pak je kontrola konfigurace systému před připojením velmi důležitým krokem. Upozorňuji na některé z těchto programů.

Programy, které samy prohledávají systém zevnitř:

  • Tiger je program, který se stále vyvíjí. ftp://net.tamu.edu/pub/security/TAMU/
  • check.pl je skript Perl, který kontroluje strom adresářů a soubory v něm a upozorňuje na různé diskutabilní atributy a jména vlastníků. http://opop.nols.com/proggie.html

Síťové skenery ukazující na snadno dostupné služby v jiném systému (dobrý nápad například pro kontrolu nastavení brány firewall):

  • Strobe je starý, ale rychlý a stále účinný síťový skener. Někdy součástí UNIX. ftp://suburbia.net/pub/
  • Nmap je program, který využívá nové metody skenování portů a je vysoce konfigurovatelný. Umožňuje získat parametry operačního systému (název, verze). http://www.insecure.org/nmap/index.html
  • Portscanner je malý skener portů, který má mnoho formátů pro výstup zpracovaných informací. http://www.ameth.org/~veilleux/portscan.html
  • Queso není ve skutečnosti skener; je to program určený k určení typu operačního systému na vzdáleném počítači. http://www.apostols.org/projectz/queso/

Skenovací software pro potenciální bezpečnostní díry je bezpochyby krokem vpřed od skenerů portů. Zde je aplikována vyšší úroveň analýzy informací a nejsou určeny samotné otevřené porty, ale ty zranitelnosti systému, ke kterým je cesta přes tyto porty otevřená. Jmenuji několik takových programů:

  • Nessus je software pro sledování útoků klient-server. Existují servery pro Linux, FreeBSD, NetBSD a Solaris a klienti pro Linux a Windows. Kromě skenování portů a sledování útoků může program provádět vyhledávání DNS za účelem nalezení počítačů spojených s ohroženým počítačem. http://www.nessus.org/
  • Svatý je potomkem satanského programu, který byl dříve jedním z nejpopulárnějších pro sběr informací o autech. Svatý používá architekturu klient-server, ale nahrazuje klienta webovým programem. Hlavním cílem je shromažďovat informace o zranitelnostech při ochraně systému. http://www.wwdsi.com/saint/
  • Cheops je program, který vytváří mapu síťového prostředí IP s uvedením operačního systému běžícího na počítačích. http://www.marko.net/cheops/
  • SARA (Research Auditor's Research Assistant) je program podobný programu Saint. Může skenovat několik strojů současně, navíc produkuje výsledek práce ve formátu HTML. http://home.arc.com/sara/
  • BASS (Bulk Auditing Security Scanner) je program, jehož ideologie vychází ze skutečnosti, že internet není chráněn. Hlavním úkolem je skenovat systémy na přítomnost „bezpečnostních děr“ v nich. http://www.securityfocus.com/data/tools/network/bass-1.0.7.tar.gz

Program pro skenování brány firewall a kontrolu, zda je správně nakonfigurován, je Firewalk. Odesíláním různých paketů se program snaží vypočítat pravidla, podle kterých firewall funguje. http://www.packetfactory.net/firewalk/

Archiv na adrese http://www.rootshell.com/ obsahuje známá data o chybách v ochraně systému a odkazy na doplňky od výrobců operačních systémů, které tyto chyby opravují. Je pravda, že někdy místo takového odkazu můžete vidět zprávu „Upgradovat na další verzi“, což je urážlivé, zvláště pokud je systém komerční. To je například případ IBM AIX.

Tímto bych chtěl ukončit popis problémů souvisejících s bezpečností systémů pro Internetové servery... Je to popis, nikoli návod k akci, a ne podrobný odkaz. Mým hlavním cílem bylo poskytnout představu o tom, co je třeba udělat pro ochranu systému. Je pravděpodobné, že v některých případech se některé tipy budou zdát nadbytečné nebo prostě zbytečné a odkazy na uvedené programy možná nebudou stačit. Zdá se mi však, že hlavní body související s ochranou systémů a sítí UNIX byly v té či oné míře reflektovány. Některá soukromá témata budou možná probrána v příštích číslech časopisu.

ComputerPress 3 "2001

  • Administrativní nátlak a jeho odlišnost od ostatních typů státního nátlaku je systém opatření administrativního donucení.
  • Adresa instituce, která vyplnila protokol ___________________________________________________________
  • Akty, protokoly. Složení podrobností aktu a protokolu. Umístění náležitostí na formuláři A4. Požadavky na registraci aktu a protokolu. Poskytnutí dokumentu právní moci.
  • Amnesty: koncept a znaky. Prominutí: koncept, právní důsledky, rozdíl od amnestie.
  • Rozhodčí soudní systém Ruské federace. Úloha soudního systému při řešení ekonomických sporů, včetně sporů souvisejících s aplikací daňové legislativy.
  • SSH - (Secure Shell) - síťový protokol, který vám umožňuje dálkové ovládání počítač a přenos souborů. Funkce je podobná funkcím protokolů Telnet a rlogin, ale pro přenášené informace používá šifrovací algoritmy.
    Nedostatky telnetu vedly k velmi rychlému vyřazení protokolu ve prospěch bezpečnějšího a funkčnějšího protokolu SSH. SSH to všechno poskytuje funkčnost které byly prezentovány v telnetu, s přidáním efektivního kódování, které zabrání zachycení dat, jako jsou uživatelská jména a hesla. Systém ověřování veřejného klíče SSH to zajišťuje vzdálený počítač opravdu je tím, za koho se vydává.

    Kryptografické zabezpečení protokolu SSH není pevné; je možné zvolit různé šifrovací algoritmy. Klienti a servery podporující tento protokol jsou k dispozici pro různé platformy. Protokol navíc umožňuje nejen použití zabezpečeného vzdáleného shellu na počítači, ale také tunelování grafického rozhraní - X Tunneling (pouze pro unixový OS nebo aplikace využívající grafické rozhraní X Window System). SSH je také schopen přenášet jakýkoli jiný síťový protokol prostřednictvím zabezpečeného kanálu (přesměrování portů), což poskytuje (se správnou konfigurací) možnost bezpečně předávat nejen rozhraní X, ale také například zvuk.
    SSH však neřeší všechny problémy se zabezpečením sítě. Soustředí svou pozornost pouze na poskytování bezpečná práce aplikace, jako jsou emulátory terminálu. Použití implementací protokolu SSH na serverech a klientských aplikacích pomáhá chránit data pouze při přenosu. SSH v žádném případě nenahrazuje brány firewall, systémy detekce vniknutí, síťové skenery, ověřovací systémy nebo jiné nástroje, které pomáhají chránit informační systémy a sítě před útoky.
    39. Role a úkoly serveru v místní síti.

    V obecném smyslu je server počítač, který má zpravidla vysoký výkon a další výpočetní prostředky, navržené tak, aby poskytovalo určité funkce pro počítače v místní nebo globální síti. Těmto příležitostem se říká síťové služby.

    Úkoly serveru:

    1. poskytování přístupu k datům uloženým na discích organizace organizace;

    2. ukládání, zpracování a přístup k databázím společnosti;

    3. naprogramované zpracování dat, která mu uživatel pošle, a poskytne tomuto uživateli konečné výsledky;

    4. doručení webové stránky uživateli, který o to požádá;

    5. odesílání, přijímání, ukládání a distribuce e -maily které jsou zasílány všemi uživateli místní sítě.


    Síťové služby.

    Pro koncového uživatele nejsou sítí počítače, kabely a rozbočovače nebo dokonce informační toky, pro něj je síť v první řadě sadou síťových služeb, pomocí kterých si může prohlížet seznam počítačů v síti, číst dálkové ovládání soubor, vytiskněte dokument na „cizí“ tiskárně nebo odešlete poštovní zprávu. Vzhled konkrétní sítě pro uživatele určuje souhrn poskytovaných schopností - jak široký je jejich výběr, jak pohodlné, spolehlivé a bezpečné jsou.
    Kromě skutečné výměny dat musí síťové služby řešit další, konkrétnější úkoly, například úkoly generované distribuovaným zpracováním dat. Mezi takové úkoly patří zajištění konzistence více kopií dat umístěných na různých počítačích (služba replikace) nebo organizování provádění jedné úlohy paralelně na několika počítačích v síti (služba volání vzdálených procedur). Mezi síťovými službami lze rozlišit administrativní, tj. Služby, které nejsou zaměřeny hlavně na jednoduchého uživatele, ale na správce a slouží k organizaci správného provozu sítě jako celku.
    Síťové služby jsou implementovány v softwaru. Primární služby - souborová služba a tisková služba - jsou obvykle poskytovány síťovým operačním systémem, zatímco podpůrné služby, jako je databáze, fax nebo hlasová služba, jsou poskytovány systémovými síťovými aplikacemi nebo nástroji, které úzce spolupracují s síťový OS. Obecně lze říci, že distribuce služeb mezi OS a utilitami je spíše libovolná a liší se v konkrétních implementacích OS.
    Termín „transparentnost“ se často používá k definování pohodlí sdíleného zdroje. Transparentní přístup je takový přístup, při kterém si uživatel nevšimne, kde se nachází zdroj, který potřebuje - na svém počítači nebo na vzdáleném. Poté, co ve svém adresářovém stromu připojí vzdálený souborový systém, přístup k smazané soubory se pro něj stává zcela transparentním. Samotná operace připojení může mít také jiný stupeň průhlednosti - v sítích s menší transparentností musí uživatel znát a zadat v příkazu název počítače, na kterém je uložen vzdálený souborový systém; v sítích s vyšším stupněm průhlednosti , odpovídající softwarová komponenta sítě vyhledá sdílené svazky souborů bez ohledu na jejich umístění. úložiště a poté je poskytne uživateli ve formě, která je pro něj vhodná, například ve formě seznamu nebo sady ikon.
    Způsob adresování (pojmenovávání) sdílených síťových prostředků je důležitý pro transparentnost. Názvy sdílených síťových prostředků by neměly záviset na jejich fyzickém umístění na konkrétním počítači. V ideálním případě by uživatel neměl na své práci nic měnit, pokud správce sítě přesunul svazek nebo adresář z jednoho počítače do druhého. Sám správce a síť operační systém mít informace o poloze souborové systémy, ale je to uživateli skryto. Tento stupeň transparentnosti je v sítích stále málokdy vidět - obvykle, abyste získali přístup ke zdrojům konkrétního počítače, musíte s ním nejprve navázat logické spojení. Tento přístup se používá například v Sítě Windows NT