V tomto příspěvku si blíže představíme hardware a software navrhovaného zařízení, které by mělo plnit nejen úlohu bezpečnostní, ale mělo by být také plnohodnotným routerem s pokročilými funkcemi.
Operační systém
Pro vývoj operačního systému pro embedded zařízení je dnes možností první volby Linux. Má velmi dobrou podporu existujícího hardwaru, výbornou síťovou vrstvu, je v této oblasti široce rozšířený a v neposlední řadě je svobodný. Často navíc není třeba implementovat ani zbytek systému na zelené louce, ale je možné najít existující svobodný projekt, který je blízký zamýšlenému využití. To je výhoda svobodného softwaru.
CZ.NIC už také provozuje Katalog routerů
V našem případě bylo hned několik projektů, které byly svým zaměřením blízké našemu záměru. Z nich jsme nakonec vybrali jako základ pro další práci systém OpenWrt. Pro ty z vás, kteří se s ním dosud nesetkali, stručně zmíním, že se jedná o specializovanou linuxovou distribuci určenou právě pro domácí routery a vyladěnou pro jejich specifické potřeby. Systém tedy obsahuje výbornou podporu pro síťové technologie a je optimalizovaný pro malé paměťové kapacity běžných domácích routerů.
Jako základ vývoje operačního systému pro „CZ.NIC router” jsme tedy použili systém OpenWrt, který upravujeme a rozšiřujeme o potřebnou funkcionalitu. V případech, kdy to bude dávat smysl, počítáme s poskytnutím úprav zpět do OpenWrt, aby z nich mohla profitovat jeho poměrně rozsáhlá uživatelská komunita.
Software
Jednou z výhod Linuxu jako jádra pro embedded operační systém je dostupnost velkého množství kompatibilního softwaru. OpenWrt navíc obsahuje balíčkovací systém, který umožňuje velice pohodlně do systému doinstalovat aplikace podle vlastní potřeby. Zároveň je možné si pomocí tohoto systému sestavit základ operačního systému na míru.
V našem případě se jedná např. o použití validujícího DNS resoveru Unbound namísto výchozího DNSMasq nebo výměna minimalistického SSH serveru Dropbear za OpenSSH.
Uživatel si pak může sám doinstalovat např. server pro sdílení souborů v domácí síti nebo třeba BitTorrent klienta.
Hardware
Jednou ze zajímavých částí projektu „CZ.NIC router” je vývoj vlastního hardwaru. K tomuto kroku jsme se odhodlali poté, co jsme prozkoumali na trhu dostupná zařízení a zjistili, že žádné plně nevyhovuje našemu záměru. Pro analýzu síťového provozu v reálném čase je přece jen třeba výkonnější hardware a větší množství paměti než jen pro běžné routování. Do budoucna navíc počítáme s dalším vývojem softwaru pro bezpečnostní sondu a potřebujeme tedy dostatečnou výkonnostní rezervu.
Zde je krátký výčet důležitých komponent a vlastností navrhovaného systému:
- procesor Freescale P2020 se dvěma jádry architektury PPC taktovaný až na 1,2 GHz
- dedikovaný WAN port (s nezávislým připojením do procesoru)
- 4× LAN porty připojené přes výkonný switch chip
- SO-DIMM slot pro DDR3 paměť (osazený pravděpodobně 2 GB paměti)
- 2× miniPCIe sloty, z nichž jeden bude obsazen výkonnou Wi-Fi kartou kompatibilní s 802.11a/b/g/n
- externí Wi-Fi antény
- flash paměť minimálně 128 MB
- slot na micro SD kartu
- 2× USB 2.0
Při návrhu hardwaru jsme se snažili myslet také na jeho možnou rozšiřitelnost. Samozřejmostí tak budou dva USB 2.0 porty pro připojení disků nebo tiskárny. K dispozici bude ale také např. sériový UART výstup přístupný jednoduše přes USB rozhraní a na desce zařízení budou vyvedeny také další sběrnice (GPIO, I2C a SPI) do tzv. pinheaderu, který umožní případné připojení dalších zařízení, podobně jako třeba u platformy Arduino.
Celkově se tedy bude jednat o poměrně slušně vybavené zařízení, které by mělo svým výkonem výrazně předčit cokoli, co je dnes na trhu domácích routerů k dispozici, a poskytnout tak dostatek výkonu ke všem potřebným bezpečnostním analýzám.
Co je na něm ale asi nejzajímavější z mého pohledu – bude to plně otevřené řešení, jehož návrh bude zveřejněn pod open source licencí, a které bude moci nést nálepku „Made in Czech Republic”. A takového hardwaru dnes moc nenajdete…
Článek původně vyšel na blog.nic.cz, autorem je Bedřich Košata. Zde jej uveřejňujeme pod licencí CC BY-SA.