abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Sledujte AbcLinuxu.cz na:
facebook favicon logo  Facebooku twitter favicon logo  Twitteru,   identi.ca favicon logo  Identi.ca,   rss logo  RSS
Rozšířené hledání
×
dnes 13:24 | Komunita
Byla spuštěna možnost registrovat se na letošní ročník konference InstallFest, který proběhne o víkendu 3. a 4. března na Strahově v Praze. Registrace je nepovinná, přijít můžete i bez ní. Podtématem tohoto ročníku je programování a hardware, program naleznete na webu konference.
Tomáš Heger (geckon) | Komentářů: 0
dnes 07:19 | Komunita
Carol Smith oznámila letošní osmý ročník Google Summer of Code. Podle plánu se zájemci o mentoring studentů mohou hlásit od 27. února do 9. března, studenti samotní mohou zasílat své přihlášky od 26. března. Pokud vás zajímají statistiky, podívejte se na některé údaje z minulých let.
Tomáš Heger (geckon) | Komentářů: 0
dnes 06:37 | Komunita
Po zhruba roce a půl došlo k další změně na pozici Fedora Project Leader. Ze zatím neznámých důvodů na tuto pozici rezignoval Jared Smith, který ji v červnu 2010 převzal po Paulu W. Frieldsovi. Novým vedoucím projektu Fedora se stala Robyn Bergeronová z Red Hatu. Ta dříve zastávala pozici Fedora Program Manager a podílela se také na organizaci FUDConu.
Migilenik | Komentářů: 5
dnes 06:23 | Komunita
Komunitní manažer Canonicalu Jono Bacon na svém blogu vyzývá členy komunity kolem Ubuntu, aby organizovali akce v rámci Ubuntu Global Jam, který proběhne od 2. do 4. března. Podrobnější informace o této události naleznete na webu loco.ubuntu.com nebo na Ubuntu wiki.
Tomáš Heger (geckon) | Komentářů: 0
dnes 06:18 | Nasazení Linuxu
Společnost SDG Systems oznámila vydání „terénního“ tabletu Yuma. Ten pochází z modelové řady Trimble, jejíž součástí je řada dalších „handheld“ zařízení s Linuxem. Zařízení jsou určena pro terénní sběr dat a vojenské a průmyslové nasazení, kvůli čemuž splňují i americký vojenský standard MIL-STD-810F.
Migilenik | Komentářů: 0
včera 22:22 | Zajímavý software
Webový prohlížeč Chrome v budoucnu asi nebude mít podporu pro online ověřování, zda nebyl HTTPS certifikát revokován (CRL). V odkazovaném článku je uvedeno několik důvodů pro tento krok, zejména pak to, že toto ověřování nemusí být spolehlivé a zpomaluje načítání stránek. Namísto toho je navrhována distribuce revokovaných klíčů přes aktualizační mechanismus prohlížeče.
Luboš Doležel (Doli) | Komentářů: 5
včera 22:18 | Zajímavý projekt
Grafický server Wayland, možný nástupce současného X Serveru, se své první stabilní verze 1.0 dočká možná už v druhé polovině tohoto roku, nejpozději však za rok. Tento plán prezentoval tvůrce Waylandu Kristian Høgsberg na konferenci FOSDEM, která během uplynulého víkendu probíhala v Bruselu.
Migilenik | Komentářů: 9
včera 22:17 | Pozvánky

Ve středu 15.2. od 18:00 proběhne na Fakultě informatiky Masarykovy univerzity v Brně únorové setkání Czech JBoss User Group. Tentokrát bude tématem vytváření opravdových Java EE aplikací s JBoss AS. Zahraničním hostem bude Pete Muir, který posluchačům ukáže, jak se taková aplikace vytváří. Více informací na wiki stránce akce.

Sešívaný | Komentářů: 0
včera 22:17 | Zajímavý projekt
Díky pomoci ze strany Google se v posledních pár dnech podařilo sepsat příručku pro začínající vývojáře v prostředí KDE. Tato kniha je dostupná nejen v podobě PDF/ePub, ale i v tištěné podobě.
Luboš Doležel (Doli) | Komentářů: 3
včera 22:14 | Zajímavý projekt
První hromadně vyráběné kousky laciného ARM minipočítače Raspberry Pi budou zhotoveny 20. února. Hned poté se započne s přepravou do Velké Británie, takže prodej by měl začít do konce měsíce. Druhou novinkou je zveřejnění datasheetu k SoC BCM2835, které je hlavním stavebním kamenem Raspberry Pi.
Luboš Doležel (Doli) | Komentářů: 0
Servery pro sdílení souborů (typu MegaUpload)
 (40%)
 (49%)
 (11%)
Celkem 516 hlasů
 Komentářů: 29, poslední včera 08:38
Rozcestník
Reklama
Autoškola testy online Levný benzín

IPSec v kernelu 2.6 - I

3. 6. 2004 | Marek Červenka | Systém | 16747×

Nový seriál, jenž vám předvede principy šifrované komunikace na bázi IPSec a naučí vás jeho základům pod Linuxem.

Úvodem

Cílem tohoto článku je zasvětit běžného administrátora do možností, které nabízí kernel 2.6 v oblasti tvorby VPN. Zaměříme se na protokol IPSec, který je silnější a bezpečnější alternativou k protokolu pptp (www.poptop.org) a také umožňuje použít nativního klienta Windows XP/2000 pro přístup do intranetu.

Předpokládají se běžné znalosti z oblasti linuxu a síťování. Naopak neočekávejte vysoce sofistikované popisy protokolu, rozebírání jednotlivých hashovacích a šifrovacích algoritmů apod. Článek ani není koncipován jako detailní porovnání s ostatními IPSec implementacemi. Pro budování šifrovaných tunelů máme i další možnosti. Od CIPE, OpenVPN až po nějaké ssh tunelování.

PPTP

Kromě toho, že pptp je v oblasti šifrování slabší a méně bezpečné než IPSec, existuje také patentový problém, který nedovolí začlenit pptp přímo do distribucí.

Kompresní protokol MPPC (Microsoft Point-to-Point Compression) je patentován firmou Hifn Inc.. Protokol MPPE(Microsoft Point-to-Point Encryption) používá algoritmus RC4, který sice není patentovaný, ale je obchodní značkou firmy RSA Data Security Inc.

IPSec

Původní návrh IP protokolu neobsahoval žádné bezpečnostní prvky. Nový návrh IPv6 obsahuje zabezpečení jako součást protokolu. Pro toto zabezpečení se vžil název IPSec (IP Security). IPSec je dostupný i pro protokol IPv4.

IPSec obsahuje 2 základní služby:

  • AH (Authentication Header) - autentizace hlaviček paketů
  • ESP (Encapsulating Security Payload) - šifrování

přičemž nemusíme nutně používat obě (ESP navíc dokáže zastat i funkce AH).

IPSec můžeme používat ve 2 režimech:

  • transport (host - host)
  • tunnel (lan - host - host - lan)

Dalším pojmem, se kterým se u IPSec setkáme, je SAD (Security Association Database). SA nám vznikne ustanovením spojení a jsou v ní obsaženy veškeré informace o spojení (bezpečnostní protokol, šifrovací algoritmus, countery, atd.). SA jsou identifikovány pomocí SPI (Security Parametr Index), ten je obsažen v každém z paketů.

SPD (Security Policy Database) obsahuje pravidla, podle kterých se buď na pakety IPSec aplikuje, nebo jsou pakety zahazovány, nebo propouštěny.

Protože manuální správa SAD by byla ve větších sítích velmi problematická, byl navržen protokol, který se snaží tento problém eliminovat. ISAKMP (Internet Security Association and Key Management Protocol) je popsán v RFC2408.

Zjednodušeně můžeme říci, že obě strany se snaží dohodnout na stejných parametrech spojení (tzv. proposal). Iniciátor pošle sadu navrhovaných parametrů a responder si z nich vybere tu, která vyhovuje jeho konfiguraci. Pokud se obě strany neshodnou, spojení není možné navázat.

ISAKMP komunikace probíhá na UDP portu 500, ten je třeba mít povolený ve firewallu.

Ustanovení IPSec spojení je dvoufázové. V první fázi (Phase 1) se vytvoří základní ISAKMP SA, která se dále používá pro druhou fázi (Phase 2) a ustanovení dalších SA pro ESP/AH. Tyto SA jsou zaváděny do kernelu.

Průběh komunikace (winXP - Linux[racoon] )

2004-05-17 18:00:10: INFO: respond new phase 1 negotiation: 192.168.0.226[500]<=>192.168.0.227[500]
2004-05-17 18:00:10: INFO: begin Identity Protection mode.
2004-05-17 18:00:10: INFO: received Vendor ID: MS NT5 ISAKMPOAKLEY
2004-05-17 18:00:10: INFO: ISAKMP-SA established 192.168.0.226[500]-192.168.0.227[500]spi:dcd3d3d25bc29952:a14e34a6864a095f
2004-05-17 18:00:10: INFO: respond new phase 2 negotiation:192.168.0.226[0]<=>192.168.0.227[0]
2004-05-17 18:00:11: INFO: IPsec-SA established: ESP/Transport 192.168.0.227->192.168.0.226 spi=174567934(0xa67b1fe)
2004-05-17 18:00:11: INFO: IPsec-SA established: ESP/Transport 192.168.0.226->192.168.0.227 spi=3143250583(0xbb5a3297)

O výměnu klíčů v rámci ISAKMP frameworku se stará IKE (Internet Key Exchange) RFC2409. Jedním z kroků při navazování spojení je autentizace.

Autentizace může probíhat pomocí:

  1. sdíleného klíče
  2. X.509 certifikátů
  3. kerberosu
  4. plain RSA
  5. ...

NAT

Problémem ve stávajících IPv4 sítích je pro IPSec NAT. Řešením tohoto problému je návrh draft-ietf-ipsec-nat-t-ike-08.txt. Otázkou kompatibility se zabývá RFC3715.

Implementace IPSecu na Linuxu

Kernel

My se budeme dále zabývat druhou jmenovanou implementací, protože ta je standardně přítomna v kernelu 2.6 a enterprise distributoři provedli její downport i pro kernel řady 2.4 (např. RHEL3).

Pokud si kompilujeme vlastní jádro, musíme mít v konfiguraci následující položky:

CONFIG_NET_KEY=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_XFRM_USER=m

CRYPTO=y
CRYPTO_HMAC=m
CRYPTO_MD5=m
CRYPTO_NULL=m
CRYPTO_SHA1=m
CRYPTO_DES=m
CRYPTO_AES=m

IPSec-tools

Pokud máme připravený kernel, vrhneme se na instalaci ipsec-tools. Pokud máme distribuci SuSE 9.1, Fedora Core 2, Mandrake 10 nebo další aktuální distribuci, jsou tam již ipsec-tools většinou přítomné. IPSec-tools jsou sponzorovány společností SuSE (Novell). Pokud je v distribuci nemáme, stáhneme si je z http://ipsec-tools.sf.net a nainstalujeme standardní trojkombinací:

./configure
make
make install

ipsec-tools obsahují:

  • racoon - IKE daemon
  • setkey - nástroj na manipulaci a výpis kernelové SPD a SAD
  • libipsec - knihovna implementující PF_KEY_V2 socket interface (rfc2367)

Ukázka manuální konfigurace transport módu

Konečně se dostáváme k něčemu trochu užitečnému, i když ne příliš používanému. Mějme následující topologii:

router kryton (192.168.0.226) ---- Internet ---- router lister (192.168.0.227)

a chceme mít komunikaci mezi těmito routery šifrovanou.

Použijeme manuální konfiguraci pouze s ESP a jako šifrovací algoritmus použijeme 3des.

výpis souboru ipsec-kryton.cfg pro router "kryton"

#!/sbin/setkey -f
flush;
spdflush;

# ESP SAs using 192 bit long keys (168 + 24 parity)
add 192.168.0.226 192.168.0.227 esp 0x201 -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831;
add 192.168.0.227 192.168.0.226 esp 0x301 -E 3des-cbc 0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df;

# Security policies
spdadd 192.168.0.226 192.168.0.227 any -P out ipsec
           esp/transport//require;
spdadd 192.168.0.227 192.168.0.226 any -P in ipsec
           esp/transport//require;

Pro router "lister" prohodíme v konfiguračním souboru v sekci "security policies"(prikazy spdadd) ip adresy na řádcích (tzn. tam kde je 192.168.0.226, dáme 192.168.0.227 a naopak) a uložíme jako ipsec-lister.cfg.

Na obou routerech potom aktivujeme nastavení pomocí příkazů

kryton#setkey -f ipsec-kryton.cfg
lister#setkey -f ipsec-lister.cfg

SAD a SPD můžeme vypsat pomocí příkazu

bash#setkey -D
192.168.0.227 192.168.0.226
        esp mode=transport spi=769(0x00000301) reqid=0(0x00000000)
        E: 3des-cbc  f6ddb555 acfd9d77 b03ea384 3f265325 5afe8eb5 573965df
        seq=0x00000000 replay=0 flags=0x00000000 state=mature
        created: Jun  1 01:13:14 2004   current: Jun  1 01:13:17 2004
        diff: 3(s)      hard: 0(s)      soft: 0(s)
        last:                           hard: 0(s)      soft: 0(s)
        current: 0(bytes)       hard: 0(bytes)  soft: 0(bytes)
        allocated: 0    hard: 0 soft: 0
        sadb_seq=1 pid=21880 refcnt=0
192.168.0.226 192.168.0.227
        esp mode=transport spi=513(0x00000201) reqid=0(0x00000000)
        E: 3des-cbc  7aeaca3f 87d060a1 2f4a4487 d5a5c335 5920fae6 9a96c831
        seq=0x00000000 replay=0 flags=0x00000000 state=mature
        created: Jun  1 01:13:14 2004   current: Jun  1 01:13:17 2004
        diff: 3(s)      hard: 0(s)      soft: 0(s)
        last:                           hard: 0(s)      soft: 0(s)
        current: 0(bytes)       hard: 0(bytes)  soft: 0(bytes)
        allocated: 0    hard: 0 soft: 0
        sadb_seq=0 pid=21880 refcnt=0

Tady vidíme dvě SA pro router kryton. První SA nám říká, že paket jdoucí z 192.168.0.227 na 192.168.0.226 se SPI=769 je dešifrován tímto klíčem: 0x0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df. Druhé SA nám říká, že paket jdoucí z 192.168.0.226 na 192.168.0.227 se SPI=513 je šifrován tímto klíčem: 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831.

bash#setkey -DP
192.168.0.227[any] 192.168.0.226[any] any
        in ipsec
        esp/transport//require
        created: Jun  1 01:13:14 2004  lastused:
        lifetime: 0(s) validtime: 0(s)
        spid=1856 seq=1 pid=21881
        refcnt=1
192.168.0.226[any] 192.168.0.227[any] any
        out ipsec
        esp/transport//require
        created: Jun  1 01:13:14 2004  lastused:
        lifetime: 0(s) validtime: 0(s)
        spid=1849 seq=0 pid=21881
        refcnt=1

Tyto dvě SP na routeru kryton nastavují policy. První SP nám říká, že pro příchozí pakety jdoucí ze 192.168.0.227 na 192.168.0.226 má aplikovat ESP. U druhé SP je to analogické. Že je provoz šifrovaný se můžeme přesvědčit např. tcpdumpem na rozhraní, kterým pakety odchází do sítě.

Jak si můžeme domyslet, nebylo by zrovna ideální udržovat větší počet takovýchto manuálních SA a politik. Proto si příště ukážeme jak nám může pomoci IKE daemon. Také si povíme něco o L2TP, ukážeme si konfigurace pro sdílené klíče a X.509 certifikáty.

Za konzultace bych chtěl poděkovat jednomu z hlavních vývojářů ipsec-tools Michalu Ludvigovi.

Autor externě spolupracuje se společností IPEX a.s., která mu částečně umožnila práci na tomto článku.

O společnosti IPEX a.s.

Společnost IPEX a.s. (http://www.ipex.cz) je jedním z nejsilnějších poskytovatelů internetu a telekomunikačních služeb v České Republice. Celorepublikově nabízí bezdrátové i pevné připojení, ADSL, WiFi. Společnost IPEX a.s. poskytuje komplexní telekomunikační řešení.

Zdroje:

  • Pavel Satrapa - IPv6 (ISBN 80-86330-10-9)
  • www.ipsec-howto.org
  • www.kame.net
  • archív ipsec-tools-devel at list.sf.net
       

Hodnocení: 38 %

        špatnédobré        

Nástroje: Tisk bez diskuse

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

3.6.2004 09:15 JR
Rozbalit Rozbalit vše Paradni clanek
Dekuji autorovi za tento clanek. Uz se tesim na dalsi pokracovani. Jeste bych se chtel zeptat, zda jde pomoci ipsec prokolu udelat prihlasovani na zaklade prihlasovacich udaju. Tj. ne na zaklade IP adresy, ale na zaklade toho, ze zadam jmeno a heslo (tak jak je to v PPTP). Pokud ano, pak jestli se bude serial timto take zabyvat?
3.6.2004 09:59 Pavel
Rozbalit Rozbalit vše Re: Paradni clanek
IPSEC ve firmě uspěšně používáme více než rok (OpenSwan). Ověřování na základě jména a hesla patrně nastavit nelze, lze ale použít ověřování na základě certifikátů - certifikát je jiný pro každého oprávněného uživatele. Používáme to pro připojování mobilních klientů s Win2K/XP do fiemní sítě. Do Woken se naimportuje certifikát, nastaví se konfigurační soubor ipsec klienta a už to frčí - ověřování pomocí certifikátu je možná ještě šikovnější než ověřování pomocí uživatelského jména a hesla. Sice jsem to ještě nezkoušel, ale určitě to jde nastavit i pro komunikaci net - gateway - gateway1 - net1 s OpenSwan na obou branách.
3.6.2004 15:24 Kosac
Rozbalit Rozbalit vše Re: Paradni clanek
Nechcete sepsat jednoduche howto na to jak jste zprovoznili připojování mobilních klientů s Win2K/XP do fiemní sítě? Treba jen v bodech jak postupovat. Zkousim to s openvpn a nejak se tim nemuzu prokousat...
3.6.2004 15:41 Pavel
Rozbalit Rozbalit vše Re: Paradni clanek
Celkem povedený návod je na http://vpn.ebootis.de Pokud budete mít problémy (a budu znát řešení), rád Vám poradím.
3.6.2004 10:17 cervajs | skóre: 14
Rozbalit Rozbalit vše Re: Paradni clanek
IPSec jako takovy tuhle vec neumoznuje. Mozne to je pomoci protokolu l2tp, ktery bezi nad IPSecem a napr. winxp ho pouzivaji k tunelovani. Informace budou v dalsim dilu.
3.6.2004 09:34 AB
Rozbalit Rozbalit vše autentifikace???
IMHO slovo "autentifikace" neexistuje v ceskem slovniku
3.6.2004 10:05 B0biN | skóre: 21 | blog: B0biN bloguje
Rozbalit Rozbalit vše Re: autentifikace???
(lol) take neni v ceskem slovniku a casto se pouziva ...!!! kua ze si musi vzdycky nekdo rypnout ... grr
cd /pub | more beer
3.6.2004 10:25 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: autentifikace???
LOL není slovo, ale akronym ;) Česky je autentizace, a nevidím důvod, proč psát babydžka, když můžeme psát babička...
3.6.2004 10:22 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Dobrý článek.
Díky.
3.6.2004 12:00 petrxh
Rozbalit Rozbalit vše GPRS, t-mobile, NAT-T
Je IPSec pouzitelny i pro pristup z GPRS site T-Mobile? Pokud vim, zakaznici jsou pripojeni v jakesi "lokalni siti", ktere je umoznen pristup na internet pres NAT.
3.6.2004 15:48 Pavel
Rozbalit Rozbalit vše Re: GPRS, t-mobile, NAT-T
Na Eurotelu to funguje, kdysi (1.5 roku zpet) jsem to zkousel i na T-mobile, tusim ze byla potreba nekaka "pridana" sluzba od operatora. Nicmene mi to fungovalo.
4.6.2004 08:51 Hermelin
Rozbalit Rozbalit vše Re: GPRS, t-mobile, NAT-T
A povedlo se nekomu rozhejbat nat-t pres racoon ? ja uz se s tim peru docela dlouho a ne a ne to zprovoznit.
3.6.2004 12:33 While Noise Junkie | skóre: 7
Rozbalit Rozbalit vše Skvelej clanek
Skvelej clanek, proc jsem si ho jenom nevsiml driv nez na nej nekdo dal odkazl v linux@linux.cz ? :(

Doufam ze pokracovani bude brzo :)
3.6.2004 15:13 While Noise Junkie | skóre: 7
Rozbalit Rozbalit vše Re: Skvelej clanek
ehm, on je dnesni. tka nic :)
3.6.2004 17:58 While Noise Junkie | skóre: 7
Rozbalit Rozbalit vše Chybne odkazy
kdyztak pridejte tem odkazum na konci clanku http:// na zacatek, protoze adresa http://www.abclinuxu.cz/clanky/show/www.kame.net neni zrovna koser :)
6.6.2004 13:37 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše internet ???
Zdravim

Ponekud mi neni jasne jak mezi 192.168.0.226 a 192.168.0.227 muze byt internet. Ale to jiste chapavy ctenar dokaze prelousknout.

Ja budu za cas resit tunel skrz internet mezi dvema rozsahlyma sitema (verejna vs. verejna IP), doufam ze to bude v nasledujicim dilu. GRE tunel na tohle asi vhodny neni.

Zdenek
www.ceskapiratskastrana.cz - s piráty do parlamentu www.gavanet.org - czfree varnsdorf
18.6.2004 22:20 Predseda
Rozbalit Rozbalit vše POKRACOVANI ????
Zdravim, kdy se muzeme tesit na dalsi pokracovani ??? Zda se mi to uz docela dlouho. Diky
21.6.2004 12:24 cervajs | skóre: 14
Rozbalit Rozbalit vše Re: POKRACOVANI ????
clanek maji od konce minuleho tydne v redakci
24.6.2004 23:02 javes | skóre: 8 | Ostrava Poruba
Rozbalit Rozbalit vše Re: POKRACOVANI ????
Bomba clanek, vsimnul jsem si ho az ted, ale to je dobre, nebude se mi zdat, ze pokracovani je za dlouho :)

Diky Autorovi!

Založit nové vláknoNahoru

ISSN 1214-1267   Powered by Hosting 90 Server hosting
© 1999-2011 Argonit s. r. o. Všechna práva vyhrazena.