K napsání tohoto návodu mě přivedly špatné zkušenosti s některými specializovanými distribucemi pro bezdrátový router, ale lze jej použít i pro router provozující drátové připojení třeba přes kabel či něco podobného. Nakonec z toho tedy vyšla vlastní instalace a ruční konfigurace založená na Slackware 9.1. Distribuci Slackware jsem zvolil kvůli její jednoduchosti, vše se sice dělá ručně, ale zato mi to přijde velice pohodlné a i třeba startovací skripty jsou jednoduché.
Příprava:
Jako první krok doporučuji si ujasnit, co vlastně chceme s gatewayí dělat a jaké služby bude poskytovat – Linux umí poskytovat snad úplně všechny služby, na které si vzpomenete. A dále budeme potřebovat mapu sítě, je to důležité z hlediska nastavování firewallu, poskytovaných služeb a rozvržení IP adres, a řekl bych, že je to zcela nezbytné v případě, kdy bude počítač mít více rozhraní. Budu zde přímo popisovat svou instalaci a situaci, ta je následující: PC plní funkci routeru a firewallu s překladem adres pro dvě sítě, do internetu je připojen přes wifi, správa se provádí telnetem, přístup je pouze z vnitřní sítě. Jako poslední věc doporučuji těm, kteří s Linuxem teprve začínají, přečíst základní popis Linuxu a jeho mechanismů, aby se dotyčný při zprovozňování nezasekl na tom, že neví, kdo je to root atd. Dobré články k tomu jsou nejen na ROOTu, ale také na www.abclinuxu.cz, dále doporučuji český překlad slabooku (podrobný popis instalace a hlavně použití fdisku). V návodu odbočuji, aby každý, i Linuxu neznalý človíček, toto mohl nainstalovat. K editaci můžete použít program vim a nebo Midnight Commander, má interní editor a je pro začátečníka jednodušší.
Jako hardware stačí poměrně slabý počítač. Moje konfigurace je P120, 32 MB RAM, 2GB HDD (disk stačí i menší, třeba 450MB). Je výhodné použít všechny síťové karty typu PCI, ISA také funguje, ale zde se při zavádění modulů musí dbát na správné nastavení IRQ a I/O. V mém případě se jedná o karty od edimaxu, moduly ne2k-pci.
No a jako poslední věc je třeba si sehnat software, například na ftp.vslib.cz, smontovat pc a zapojit síť. Jen pro ty, co s Linuxem jako serverem nepracují. Instalovat budeme z CD-ROM, ale ta se pak po nainstalovaní může odpojit a vyndat, po instalaci již není vůbec potřeba. Pokud je něco ještě potřeba doinstalovat, tak to nahrajeme na server pres ftp a nainstalujeme se z disku.
Instalace:
Nabootujeme z instalačního CD1 Slackware, na CD2 jsou doplňkové programy pro tento účel zbytečné a je tam ještě live distribuce, má výhodu, že hledá a snaží se naovládat veškerý hardware, co v PC najde, takže je docela dobrá na otestování hardware. Já to použil, když jsem potřeboval zjistit, jestli mi najde moji wifi kartu XI-626. Tuto kartu doporučuji, protože v Linuxu chodí bez nutnosti patchovat a kompilovat jádro.
Po nabootování to chce vybrat mapu klávesnice, necháme defaultní, tudíž enter. Pak už se zalogujeme jako root, bez hesla.
Teď musíme vytvořit diskové oddíly pro instalaci. Budeme vytvářet dva, Linux native – disk, kam se instaluje, a swap – to není třeba vysvětlovat a troufám si tvrdit, že pro naši potřebu při 64MB RAM ani nebude potřeba, ale pokud tam bude někdo provozovat třeba i web, samba server atd., vyplatí se swap mít. Použijeme program fdisk, je textový a připadá mi nejjednodušší a nejmocnější. Popíšu zde variantu vytvoření oddílů na prázdném disku. Pro rušení stávajících oddílů, případně další věci, se podívejte do nápovědy, není to nic složitého. Takže píšeme:
fdisk /dev/hda
n
(n jako nová oblast)
p
(partition primarní)
číslo oblasti dáme 1
počáteční cylinder necháme defaultně 0 (začínáme totiž na začátku disku)
koncový dáme buď číslo, nebo velikost, třeba +640M (tím máme vytvořenou oblast pro instalaci systému)
a ještě tuto oblast musíme nastavit jako bootovatelnou, číslo oblasti samozřejmě 1 (ve výpisu disků se u ní zobrazí *)
n
p
2
počáteční stopa teď není 0, ale ta, kde končí datová oblast vytvořená před chvílí
koncovou stopu můžeme nechat jako konec disku, tedy defaultní hodnotu (tím máme oddíl pro swap, pro naše potřeby bude bohatě stačit 64MB prostoru, tak s tím kalkulujte už při vytváření datové oblasti)
t
(změna typu oddílu, defaultně je to linux native – datová oblast Linuxu, my z toho musíme udělat linux swap)
2
(swapovací oddíl je v našem případě ten druhý)
82
(číslo typu, které je přiřazeno pro Linux swap, schválně se podívejte, kolik jich fdisk umí :-)
p
(ještě si pro jistotu zkontrolujte výpis tabulky oddílů)
w
(uloží nastavení tabulky a ukončí fdisk)
Teď jsme připraveni na kopírování souborů. Spustíme program setup a vybereme první pložku ADDSWAP, další položky následují automaticky po úspěšném dokončení této, takže po přípravě swapu se automaticky spustí položka TARGET s formátováním disků.
ADDSWAP – připojuje se a formátuje swapovací oddíl, ukáže všechny swapovací oddíly na připojených hdd
TARGET – určuje, kam se má Linux instalovat, a také se formátuje datová oblast. Doporučuji použít filesystem RaiserFS, je to žurnálovací filesystem a pro nás má výhodu, že při výpadku napájení a následném spuštění nepotřebuje uživatelův zásah pro kontrolu disku tak, jako se to stává u EXT2. Tento filesystem podporuje výchozí jádro bare.i (bootovali jsme pomocí něj při instalaci).
SOURCE – vybíráme zdroj, odkud se má instalovat, a necháme si tedy najít CD-ROM
SELECT – výběr kategorií instalačních balíčků, my kvůli úspoře zaškrtneme pouze A, AP a N, více není potřeba
INSTALL – vybereme instalaci expert a budeme vybírat následující balíčky:
A – základ | |
kernel-ide | jádro |
aaa base | naprostý základ, adresářová struktura |
bash 2.05b | příkazový interpret Bash, základ |
bin 8.5.0 | základní příkazy, ls, copy… |
bzip2 | komprimační program, doporučuji instalovat |
coreutils | pokračování základních příkazů |
cxxlibs | knihovny nutné pro chod systému |
dcron | cron daemon, plánovač opakujících se úloh |
devfsd | správa filesystemu, nutné pro provoz |
devs | soubory device – jejich seznam, nutné pro provoz systému |
e2fsprogs | nástroje pro kontrolu filesistémů, nutno instalovat |
elflibs | knihovny pro spouštění programů, nutné |
etc | konfigurační adresář etc, nutné |
gawk | program pro práci s textovým výstupem, budeme potřebovat |
gettext | programy pro hlášky při logování na systém |
getty | konzole pro logování do systému, nutné |
glibc-solibs | knihovny nutné pro chod systému |
glibc-zoneinfo | knihovny nutné pro chod systému |
grep | program pro práci s textovým výstupem, budeme potřebovat |
gzip | pakovací program, nutné pro chod systému |
hdparm | utility pro disky |
infozip | vypisuje informace o zip souborech |
isapnptools | utility pro ISA karty, pokud ISA nepoužíváte, není nutno instalovat |
kernel-modules | moduly/drivery, nutné |
less | prohlížeč souborů |
lilo | zavaděč Linuxu |
module-init-tools | utility pro práci s moduly |
pciutils | utility pro práci s PCI sběrnicí |
pkgtools | nástroj pro instalování a rušení balíčků |
procps | utility pro práci s procesy, kill… |
rieserfsprogs | utility pro ReiserFS |
sed | program pro práci s textovým výstupem |
shadow | utility pro hesla, nutné pro přihlašování |
slocate | utilita pro cron |
sysklogd | syslog daemon pro logování hlášek |
sysvinit | spouštěcí skripty |
tar | pakovací program |
util-linux | provozní utility pro Linux |
AP – aplikace | |
groff | program nutný pro manuály |
man | program zobrazující manuály |
man-pages | manuálové stránky |
mc | Midnight Commander, souborový manažer |
vim 6.2 | editor Vi |
N – síť | |
apache | www server, není nutný |
bind | dns server, není nutný |
dhcp | DHCP server |
dhcpcd | DHCP klient |
fetchmail | SMTP server, není nutný |
inetd | program pro spouštění síťových daemonů, nutný |
iptables | firewall, nat…, nutné |
iptraff | program s menu pro sledování provozu, není nutný |
links a linx | textové www prohlížeče, není nutné |
ncftp | vylepšené řádkové ftp, není nutné |
nfs-utils | network file system, unixová síť, není nutné |
ntp | network time protokol, řízení času přes Internet, není nutné |
open-ssh | ssh server a klient, pozor, nutno aplikovat patch, není nutné |
php | php skripty pro apache, není nutné |
ppp | ppp utility, hodí se při připojování seriáku, nutné pro modem |
proftpd | ftp server, není nutné |
samba | utility pro vytvoření serveru a klienta MS sítě, není nutná |
sendmail | SMTP server, není nutný |
stunnel | program pro ssl tunely, není nutný |
tcpdump | program pro zachytávání paketů na ethernetu, není nutný, ale hodí se |
tcpip | základní podpora tcp/ip, nutné |
traceroute | nepotřebuje vysvětlení |
wget | vysosávač webů, není nutné |
wireless-tools | utility pro wifi, pokud budete wifi používat, pak je to nutné |
Teď se nám budou kopírovat soubory. Tato instalace bez apache, bindu a samby (tedy věci pouze na router) se vejde do 128MB.
CONFIGURE – po nakopírování souborů se spustí závěrečná dokonfigurace v několika krocích.
Linuxový kernel dáme z cdrom a vybereme jádro bare.i, má podporu všeho v modulech, není sice nejvýkonnější, ale určitě dostačuje pro naše potřeby.
Bootdisk opustíme, ten nepotřebujeme.
Nainstalujeme lilo, stačí automatická instalace (tedy simply a v dalších dvou krocích to chce výběr rozlišení konzole, stačí standardní a SCSI tu taky asi nemáme, takže enter) a instalujeme ho do MBR.
Zvolíme root heslo (root je správce systému, superuživatel).
Modem asi potřebovat nebudeme. Ze sítě nás pouze zajímá název počítače. Nakonec si ještě můžeme vybrat spuštění některých daemonů, nechám to už na vás, ale inetd určitě budeme potřebovat spuštěný. Nepopisuji zde úplně všechno, jsme přece lidi a myslíme :-)
Pokud vše proběhlo dobře, opustíme konfigurační program a počítač restartujeme buď příkazem reboot, nebo trojhmatem ctrl+alt+del a necháme ho nabootovat náš právě nainstalovaný Linux.
Jistě jste si všimli, že při startu trvaly dost dlouhou dobu dvě věci. Timeout u lila a závislosti modulů. Můžeme si start trochu urychlit:
- Snížíme timeout u lila, editujte soubor
/etc/lilo.conf
, zde je parametr timeout v sekundách a dejte třeba 10, ničeho jiného si nevšímejte. Ppo ukončení editace souboru zadejte příkazlilo
, aby se ta změna času projevila při bootování. - Vypneme hledání závislostí u modulů, to se totiž provádí jen tehdy, když s moduly něco uděláte, třeba přidáte nový. K tomu slouží příkaz
depmod -a
. Pro vypnutí při startu editujte soubor/etc/rc.d/rc.modules
a zakomentujte vše, co je hned pod nadpisem Update module dependencies. Teoreticky můžete zakomentovat vše v tomto souboru a moduly zavádět ručně vrc.local
nebo v/etc/modules.conf
, přijde mi to přehlednější.