m0n0wall

pro začátečníky

Q: Co je to m0n0wall?
A: m0n0wall zastává funkci routeru, bridge a firewallu. Vedle toho může fungovat jako DHCP server nebo VPN tunel s autentifikací uživatelů. Tyto a další jeho funkce lze kombinovat podle konkrétní potřeby.

Q: Kolik m0n0wall stojí?
A: m0n0wall je free software, který ke svému chodu vystačí z dnešního pohledu již zastaralým hardwarem, takže k jeho nasazení není zapotřebí vynakládat žádné vysoké náklady. Výchozí konfigurace je určena pro embedded PC postavené na CPU 486, ale je k dispozici i tzv. generic-pc verze pro "běžné" PC.

Q: Jak ho lze získat?
A: Je k dispozici ke stažení na jeho domácí stránce a zde se pomalu rodí dokumentace (neoficiální dokumentace)


možnost zapojení domácí sítě

Q: Mám jen dva počítače a ty mám propojené kříženým kabelem. Potřebuji pro připojení k Internetu také switch?
A: Pokud se přemostí OPT-LAN (viz modrá šipka), funkci switche zastane m0n0wall

Q: Neumím instalovat operační systém, vadí to?
A: Vůbec to nevadí. Stačí umět vypálit ISO na CD-R nebo CD-RW. Systém m0n0wall pak bootuje z CD-ROM a konfiguraci si ukládá disketu (jiné disky nepotřebuje). Uživatel do tohoto procesu nemusí nijak zasahovat a o vlastním OS (kterým je FreeBSD) nic vědět. Při použití Compact Flash jako IDE disku je to podobné: na CF kartu se speciálním programem nahraje image sytému a m0n0wall pak bootuje z CF karty zasunuté přes redukci do MB počítače a konfiguraci si ukládá také na CF.

Q: O funkcích routeru a firewallu nic nevím, vadí to?
A: m0n0wall pro použití v síti Sdružení Klfree.net by mělo jít nakonfigurovat podle tohoto návodu, pokud to nebude chodit hned napoprvé, pak ano, pak neznalost vadí. Co je to IP adresa a maska sítě však musíš vědět v každém případě.

Q: Dá se zajistit bezhlučný chod? Přece jen je to počítač, který poběží pořád.
A: Já používám konfiguraci podle obrázku dole: Počítač je bez harddisku, bezhlučný chod zajišťuje pomaloběžný ventilátor ve zdroji, druhý pomaloběžný ventilátor s teplotním čidlem ochlazuje CPU, chipset a paměť (toto není nezbytně nutné, je to spíš pro jistotu). VGA karta není nutná (pokud se bez ní základní deska obejde), stejně jako klávesnice a monitor (myš není zapotřebí vůbec). Mechanika CD-ROM se po minutě nepoužívání sama zastaví a usne. Tudíž hluk žádný a celková spotřeba je malá. V zatím posledním hardware pro firewall mám procesor Intel Celeron 266MHz, který má mít podle výrobce spotřebu 16,59W a CF kartu.


hardware z roku 1998

Q: Co je lepší, Compact Flash disk nebo disketa+cédéčko?
A: Karta Compact Flash v redukci je lepší pro trvalé nasazení, zatím co na "laciné" vyzkoušení je asi lepší použít FDD+CD (tedy pokud máš FDD, což už dnes není samozřejmostí, nicméně starou FDD i CD mechaniku můžeš sehnat i zadarmo, což se o CF-IDE redukci říct nedá).


CF přímo do IDE na MB

Q: Kolik stojí adaptér na CF kartu pro zasunutí do IDE konektoru?
V roce 2004 jsem takovouto redukci koupil za 500,- Kč. K tomu jsem potřeboval Compact Flash kartu s "miniaturní" kapacitou 16MB, která už se v té době sehnat nedala, protože by musela být zadarmo, takže jsem si za dalších pár stovek koupil 64MB.
Poznámka: CF musí být primary master, jinak m0n0wall nenajde config.xml a nenastartuje.


webové rozhraní: status

Q: Jaké je vytížení procesoru?
A: zanedbatelné. Když m0n0wall nic nedělá, tak je CPU Intel Celeron 266MHz vytížen na 0 až 2% a při přenosu dat (což je pochopitelně jediná významná činnost, kterou může uživatel CPU zaměstnat) procentní vytížení mírně stoupá, viz oba obrázky (na předchozím je CPU USAGE jako BARGRAPH).


webové rozhraní v roce 2007: Status: CPU load

Q: Jaká je propustnost dat z jedné síťové karty na druhou?
A: m0n0wall přenášená data prakticky nezdržuje. Na výkonnější CPU lze nasadit gigabitové karty, ale pokud má m0n0wall sloužit jako brána do internetu přes Wi-Fi (nebo i ADSL), stačí použít 10 megabitové karty, protože reálná propustnost karet je 1200KiB/s zatímco Wi-Fi jen 650KiB/s (a ADSL ještě mnohem méně).
Poznámka: propojil jsem dva počítače (Pentium III 1GHz a Pentium IV 2,8GHz) kříženým kabelem a zkusil přenášet z jednoho na druhý data. Na gigabitových kartách rychlost kolísala od 10MiB/s do 30MiB/s. Potom jsem mezi tyto dva počítače vložil m0n0wall. Přes m0n0wall se 100 megabit kartami se rychlost přenosu pohybovala mezi 8MiB/s až 12MiB/s, přes m0n0wall s gigabit kartami se rychlost přenosu pohybovala od 10MiB/s do 30MiB/s. Ačkoli rychlost různě kolísala, dalo se vypozorovat, že průměrná a nejvyšší rychlost je ovlivněna typem CPU (zkoušel jsem Celerony 333MHz, 533MHz a 1000MHz, čím rychlejší CPU, tím lepší výsledky) a značkou síťových karet (zkoušel jsem Realtek, Intel a 3COM, nejlépe na tom byly 3COM)


propustnost na 100 megabit neznačkových síťových kartách: 8,4 MiB (CPU 333MHz)


propustnost na 1 gigabit síťových kartách: 11,5 MiB (CPU 333MHz)

Q: Jak se m0n0wall konfiguruje?
A: Prvotní konfigurace by se měla provést na konzoli firewallu, tzn. na počítači, na kterém běží m0n0wall - nemusí to být nutně pomocí klávesnice a monitoru, m0n0wall umí konzoli přesměrovat na sériový port. Určitě se musí stanovit, který adaptér je pro WAN, LAN a případně pro OPT1, OPT2, ... dále je žádoucí přiřadit IP adresu k LAN rozhraní (pokud nevyhovuje standardní 192.168.1.1/24). Jakmile se lze dostat na webové rozhraní, není už konzole potřeba, protože přes webové rozhraní se dá nastavit úplně všechno.

Q: Co je to WAN, LAN a OPT?
A: Zkratkou WAN (Wide Area Network) je míněno síťové rozhraní m0n0wallu, které je připojeno do "vnější" sítě. Jinými slovy, je to síťová karta (ethernet adaptér), která je připojená do Internetu nebo jiné nadřazené sítě (v mém případě do intranetu Sdružení Klfree.net). Zkratkou LAN (Local Area Network) je míněno síťové rozhraní m0n0wallu, které je připojeno do "vnitřní" sítě. Jinými slovy, je to síťová karta, ke které je připojen zbytek domácí sítě (nebo firemní). OPT1 a OPT2 (Optional) jsou další síťové karty, kterým lze přiřadit specifické funkce. Například mohou mít vlastní IP adresu nebo mohou sloužit jako můstek (bridge) na LAN nebo WAN rozhraní. Na WAN i LAN lze přemostit jen jednu síťovou kartu, lze zkombinovat například WAN+OPT1 & LAN+OPT2, ale už nelze WAN & LAN+OPT1+OPT2.

Q: Co znamená přemostit?
A: Velmi zjednodušeně: můstek (bridge) zajistí, že se dvě síťové karty chovají identicky a není zapotřebí konfigurovat každou zvlášť.

Q: Potřebuji vědět něco konkrétního o hardwaru, na kterém chci m0n0wall provozovat?
A: Kromě MAC adresy síťových karet nepotřebuješ vědět nic. Hardware samozřejmě musí splňovat minimální požadavky, aby se m0n0wall rozběhl, ale to se tak nějak rozumí samo sebou.


výchozí nastavení


nastavení dle skutečnosti

Q: Jak zjistím MAC adresu síťových karet?
A: Lze to různě, například takto:
  1) vypni počítač, vyndej z něj všechny síťové karty až na jednu, tu tam nech;
  2) zapni počítač, nech nastartovat m0n0wall, v menu napiš 1 a stiskni ENTER. Opiš si MAC adresu (např.: 00:0C:E6:54:7F:BA);
  3) vypni počítač, zasuň další kartu, zopakuj bod 2) s tím, že si opíšeš MAC adresu která tam před tím nebyla;
  4) zopakuj pro všechny karty;

Q: Jak se dozvím, která z karet je WAN a která LAN (případně OPT1 a OPT2)?
A: Nejprve musíš ty sám přiřadit, která karta bude to které rozhraní. Na to slouží bod 1 v menu a potřebuješ vědět, jaké MAC adresy mají síťové karty nebo musíš využít autodetekce (opojíš všechny karty od kabelů a během přiřazování pak připojíš tu, kterou chceš přiřadit - volba [a]). Na otázky odpovíš tak, že pouze vyplníš jen jména karet (třeba xl0), pokud není co, dáš jen ENTER.

Q: WAN rozhraní má jinou IP adresu, než jakou mi přidělilo Sdružení Klfree.net (ev. ISP). Vadí to?
A: Ano vadí. Na WAN rozhraní musíš mít nastaveny přesně ty hodnoty pro adresu, masku, bránu a DNS, jaké jsi dostal přidělené. Pokud je mezi m0n0wallem a Internetem ADSL router, který přiděluje IP adresy (běží na něm DHCP), pak je to jednoduché: nenastavuj WAN jako Type: Static, ale jako Type: DHCP.

Q: LAN rozhraní má jinou IP adresu, než jakou mi přidělilo Sdružení Klfree.net, vadí to?
A: Pokud chceš využít dobrodiní přiděleného routovaného subnetu, pak ano, vadí. Pokud si vystačíš s NATem, pak je to jedno.

Q: Se mi to při konfiguraci ptá na DHCP. Mám ho povolit?
A: Pokud víš, jak ho správně nastavit, pak můžeš. Pro začátek spíš ale ne (nastavit ho můžeš kdykoli dodatečně přes webové rozhraní).

Q: Chci si m0n0wall vyzkoušet ve svém počítači, ale mám jen jednu síťovou kartu. Jde to?
A: Jde, ale oklikou. Setup konzole vyžaduje nejméně dvě síťové karty. Tudíž s jeho pomocí nastav jen IP adresu a konfigurační soubor na disketě pak uprav normálním plain text editorem (např. Poznámkový blok):

  <interfaces>
		<lan>
			<if>rl0</if>
			<ipaddr>192.168.1.1</ipaddr>
			<subnet>24</subnet>
		</lan>
  </interfaces>
Tag if uzavírá jméno ethernet adaptéru, tam napiš ten, který máš v počítači, jež bude v roli routeru. Vrať disketu a restartuj router. Počítače musíš mít pochopitelně dva. Na jednom poběží m0n0wall a na druhém se budeš dívat do m0n0wallu přes webové rozhraní.


webové rozhraní


konfigurace firewallu

Q: Nastaveno, rebootnuto, co dál?
A: Spusť počítač, který máš připojený na LAN rozhraní (kříženým kabelem nebo přes switch či hub), a buď mu nastav mu IP adresu (zpravidla o jedničku větší, než má m0n0wall na LAN rozhraní) a masku nebo pokud jsi správně nastavil DHCP server, nech, ať mu jí přiřadí DHCP sám. Poté spusť internetový prohlížeč a do okénka adresa zadej IP adresu, kterou jsi přiřadil LAN rozhraní. Budeš dotázán na jméno (admin) a heslo (mono), poté můžeš začít pohodlně konfigurovat celý router/firewall.

Q: Jak mám nastavit jednotlivé položky v konfiguraci tak, aby m0n0wall fungoval bez NATu v síti Sdružení Klfree.net, pokud problematice opravdu nerozumím?
A: Stáhni si tento vzorový konfigurační soubor pro KLFREE.NET a uprav ho v poznámkovém bloku tak, že necháš najít znaky *** (tři hvězdičky) a místo nich vyplň:

až soubor upravíš, tak ho ulož na disk a posléze ho načti do m0n0wallu. To se dělá takto: v menu webGUI klepni na "Diagnostics", potom na "Backup/Restore", pak na "Procházet" (Browse), vyber tebou opravený soubor config.xml (Otevřít) a nakonec stiskni "Restore configuration". m0n0wall se sám rebootuje. Tím je konfigurace hotová. Potom si ověř, že je ve webGUI vše správně (nikde by neměla být hvězdička, IP adresy by měly být na správných místech) a že ti funguje přístup na internet.

Q: Jak mám nastavit jednotlivé položky v konfiguraci tak, aby m0n0wall fungoval s NATem v libovolné síti, pokud problematice opravdu nerozumím?
A: udělej to samé co v předchozím bodě s tím rozdílem, že ještě navíc smažeš vše od <advancedoutbound> po </advancedoutbound>

Q: Umožňuje m0m0wall řídit datový tok a případně ho i zobrazovat?
A: Ano, k dispozici je Traffic shaper a Traffic graph. Konfigurovat a zobrazovat lze všechna rozhraní nezávisle na sobě.


graf vytížení rozhraní WAN


m0n0wall

pro pokročilé uživatele

Q: Jak se vypíná NAT?
A: Tak, že se zapne "advanced outbound NAT" a nenadefinují se žádné "mappings"

Q: Nějaké skryté funkce?
A: Spusť webGUI a do URL doplň "status.php" (např.: http://m0n0wall/status.php)

Q: Nějaké další skryté funkce?
A: Spusť webGUI a do URL doplň "exec.php" (např.: http://m0n0wall/exec.php)

Q: A nějaké příkazy pro exec.php?
A: Lze použít implementované příkazy FreeBSD:
[] adjkerntz arp cat clog cp date dd dev_mkdb df dhclient dmesg echo expr fastboot fasthalt gunzip gzip halt hostname chmod chown chroot ifconfig init ipf ipfs ipfstat ipfw ipmon ipnat kill kldload kldunload ldconfig logger ls mkdir mount mount_fdesc mount_kernfs mount_linprocfs mount_mfs mount_msdos mount_null mount_procfs mount_std mount_umap mount_union netstat ngctl nohup nologin pccardd ping ps pw pwd_mkdb reboot rm route setkey sh shutdown sleep stty su sync sysctl syslogd tail tar test top touch umount uptime w wicontrol
ale většině z nich bude lepší se vyhnout, použitelné jsou:
date - vypíše aktuální datum a čas na m0n0wallu;
dmesg - vypíše hlášky, které byly na konzoli;
hostname - vypíše síťové jméno m0n0wallu;
ifconfig - vypíše aktuální stav síťových karet;
ipfstat - vypíše statistiku filtrovaných paketů;
ipmon - odstartuje výpis filtrovaných paketů. Pozor: nejde zastavit, zavření okna prohlížeče proces neukončí! Musí se kill-nout z jiného exec.php (příkazem top zjisti PID druhého běžícího ipmon - první běží standardně - a pak zadej kill PID);
kill číslo - ukončí proces běžící pod PID číslo;
logger hlášení - zapíše hlášení do Diagnostics: System logs: System;
netstat - vypíše aktuální stav síťových spojení;
ping - klasika;
ps - vypíše status procesů;
reboot - restartuje m0n0wall (totéž co fastboot);
shutdown -p now - ukončí m0n0wall a vypne počítač;
sysctl -a - vypíše stav jádra systému (sysctl -ad popisky místo hodnot);
top - vypíše aktuální obsazení paměti;
uptime - vypíše aktuální čas a dobu, jak dlouho je m0n0wallu v chodu;
w - vypíše přihlášené uživatele;
wicontrol - vypíše stav Wi-Fi karet;

cat [filename] - vypíše obsah souboru filename (např.: cat /cf/conf/config.xml);
df - vypíše volné místo na discích (zajímavé je snad jedině volné místo na disketě: df /dev/fd0);
ls [-[a|l]F][directory] - vypíše seznam souborů a složek;
mkdir - založí složku (má význam asi jen pro disketu);
mount - vypíše seznam připojených zařízení;
pwd - vypíše úplnou cestu k aktuální složce;
rm [filename|directory] - smaže soubor nebo složku (má význam asi jen pro disketu);
Bližší popis příkazů hledej tady.

Q: Jak lze zkopírovat soubor z ramdisku na disketu?
A: S pomocí exec.php:
/sbin/umount -f /cf
/sbin/mount -w -o noatime /cf
cp [cesta/]jméno /cf (například log firewallu se zkopíruje takto: cp /var/log/filter.log /cf)
/sbin/umount -f /cf
/sbin/mount -r /cf

Q: Jak lze vynulovat System logy?
A: Nejjednodušší je restartovat m0n0wall. Ale jde to i s pomocí exec.php:
clog -i -s 262144 /var/log/system.log - systémová hlášení
clog -i -s 262144 /var/log/filter.log - firewall
clog -i -s 32768 /var/log/dhcpd.log - DHCP server
poznámka: na mé přání lze od verze 1.0 logy nulovat z webGUI

Q: Nějaké další cipoviny?
A: Při startu počítače (když se objeví hlášní "Hit [Enter] to boot...") stiskni nějakou jinou klávesu než [Enter] nebo [Pause]. Tím se dostaneš do příkazové řádky. ? ti vypíše seznam příkazů, ale protože ještě není zaveden systém, je jich málo a vesměs jsou naprd. Pokračovat ve startu můžeš buď zadáním příkazu reboot nebo boot.

Q: Nějaké další cipoviny?
A: Spusť webGUI, do URL doplň "exec.php" a zkus odeslat příkaz shutdown now a pak na konzoli routeru stiskni ENTER: jsi ve SHELLu! Určitě to jde snáz (killnout správný proces), ale tohle je taky cesta ;-)

Q: Nějaké další cipoviny?
A: Simply add the command, wrapped in a <shellcmd>...</shellcmd> tag, to the <system> section of the config file (download it using config backup, make the change in a text editor and restore it). No need to modify the CD-ROM image.

Q: Nějaké další cipoviny?
A: namísto starého počítače, který přece jen zabírá dost místa, můžete použít jednodeskový počítač (takzvané Embedded PC). Výrobcem takovýchto specializovaných desek je firma Soekris a m0n0wall je pro jejich výrobky přizpůsoben.

evoluce m0n0wallu (1)

pfSense

Router s firewallem pfSense vychází z m0n0wallu a zásadně rozšiřuje možnosti a funkcionalitu routeru. Zatím jsem si s ním moc nehrál, ale pro vaší představu, vypadá asi takhle:


webové rozhraní konfigurátoru


konzole konfigurátoru

Za hlavní plus považuji možnost přidávat balíčky s programy (k dispozici je například několik anti-spamových filtrů a antivirů, Radius server, NTP server, FTP server, Samba server, ntop, uPnP, netio, proxy atd...)

evoluce m0n0wallu (2)

FreeNAS

FreeNAS server je operační systém pro síťové datové úložiště (NAS = Network-Attached Storage). Byť je na světě již docela dlouho, stále je v plenkách. Nicméně pokud máte starší málo-elektřiny-žeroucí počítač, vražte do něj podle potřeby SATA řadič, pak třeba 4x 1TB disk, jednu flešku s FreeNAS a získáte tak bez větší námahy síťový datový server s kapacitou 4TB. FreeNAS umí při nečinnosti disky uspávat, takže se nemusíte obávat velké spotřeby elektrické energie. Data jsou přístupná po síti jak klasickým FTP protokolem, tak přes Windowsí "Síť Microsoft" čili přes Sambu.


© 2003-2007, Roman Štec

Poslední editace: neděle, 11.11.2007 11:11

TopList counter

zpět