Hlavní navigace

Linux jako internetová gateway (7)

3. 3. 2004
Doba čtení: 6 minut

Sdílet

V tomto dílu se krátce zastavíme u změny MAC adresy a začneme se zprovozňováním síťových služeb, dnes dojde na FTP, TFTP a DHCP server.

Změna MAC adresy

Změnu MAC adresy prakticky vůbec není nutné dělat, ale může se to hodit vám, kteří máte přístup od providera omezen na určitou adresu a občas potřebujete připojit jiný počítač. Než se síťová karta bude nahazovat, zadejte:

ifconfig eth0 hw ether 00:00:B4:C7:E0:89

Samozřejmě to může být i eth1 či jiná. MAC se zadává v tomto formátu, já použil pro ukázku MAC z jedné mé karty, formát je nutno dodržet! Jen pro zajímavost, podle začátku MAC adresy lze zjistit výrobce karty, tedy pokud je použitá originální MAC. Ještě aby se to nedalo, když se z identifikace výrobce začátek MAC adresy skládá :-) Ke zjištění nám poslouží třeba tento web, a už víte, že mám edimax :-)

Síťové aplikace

FTP server

Jako FTP server je ve Slackware dodán ProFTP. Nejdříve si ukážeme, jak ho rozběhat jako anonymní ftp server. Může se to hodit pro sdílení dat mezi uživateli ve vnitřní síti, přístup jednoduše omezte pomocí firewallu. Nainstalujte ho (instalace přes installpkg je snad už jasná) a postupujte podle následujících kro­ků:

  1. Vytvořte adresář, který bude pro tento anonymní server určen. Klasicky se vytváří: /home/ftp. Vlastníka a skupinu nastavte na nobody a práva k adresáři na 777. (Pro začátečníky připomínám, že práva jsem ukazoval v části, kde jsme se zabývali přechodem na nový kernel.) Tato práva dáváme proto, aby mohl anonymní uživatel na server i zapisovat. Pokud nechcete, aby mohl zapisovat ani v případě, že by vám ftp server někdo hacknul, nastavte práva 555.
  2. Vytvořte konfigurační soubor, jeden je předpřipraven, stačí ho přejmenovat nebo zkopírovat:  mv /etc/proftpd.conf.new /etc/proftpd.conf
  3. Upravíme konfigurační soubor. Zaměřím se na pár zásadních věcí. Rozhodně by to chtělo změnit defaultní jméno a zde si také můžeme navolit, jakým způsobem budeme server spouštět, zda přes inetd, nebo bude běžet jako daemon sám. Já budu popisovat spouštění přes inetd, je to i defaultní nastavení, necháme tedy řádky ohledně intetd tak, jak byly. Port, na kterém server běží, také můžeme nechat, stejně tak práva, to jsou věci už spíše pro šťouraly. Ale na jednu věc musím upozornit, nezapomeňte, že pokud budete chtít ftp spouštět přes intetd a budete volit jiný než standardní port, musíte tento port nastavit také v /etc/inetd.conf. Zbytek parametrů měnit nemusíte, soubor je dobře komentován, a tak se dá snadno pochopit, co jednotlivé věci dělají, a upravit je tak, jak to bude vyhovovat vám. Já mám kupříkladu vypnuté logování, k čemu také, že, když ftp na tom serveru používám jen já :-) Pokud chcete, aby anonymní uživatel mohl na server i zapisovat (práva adresáře jste tedy zvolili 777), zakomentujte sekci <Limit WRITE> a nebo místo DenyAll dejte AllowAll. No a to je v tomto souboru vše. Další možnosti konfigurace jsou velice pěkně ukázány v dokumentaci ( /usr/doc/proftpd-1.2.8p/).
  4. Server vyžaduje, aby jméno stroje bylo v DNS nebo alespoň v hosttabulce, proto napište hostname serveru do /etc/hosts a přidělte mu IP, klidně i to, co náleží loopbacku.
  5. V souboru /etc/ftpusers je seznam uživatelů, kterým není povoleno se na ftp server přihlásit. Abychom povolili anonymního uživatele, zakomentujte uživatele ftp. Jen pro pořádek doplním, že komentář má v souboru na začátku řádku #.
  6. Upravte konfigurační soubor inetd, zrušte zakomentování řádku s ftp.
  7. Restartuje inetd a podívejte se netstatem, jestli váš server začal poslouchat na portu ftp serveru.

Nyní by se již na server mělo dát přihlásit a také by mělo jít uploadovat a stahovat. Pokud anonymní server nechcete a přejete si, aby tam mohli přistupovat jen uživatelé se jmény a hesly, vytvořte nová uživatelská konta pomocí adduser, tito uživatelé se automaticky na server dostanou i pomocí ftp. Jestliže uživatelé nemají mít přístup telnetem a přes ssh, omezte jim tyto služby firewallem. Jen ještě doplním, že přístup na server pomocí ftp se týká řetězce INPUT. Server je spuštěn v aktivním módu, pamatujte na to při konfiguraci firewallu. Tři na sebe navazující články o teorii tftpdoporučuji přečíst těm, kdo nevědí, co je pasivní a aktivní mód ftp.

TFTP server

Těm, kdo o této službě moc neví, si dovolím trochu rozšířit znalosti. Jedná se o službu přenosu souborů po UDP, port 69. Za úplnost souborů ručí aplikace (jak určitě víte, UDP má negarantovaný přenos) a protokol neužívá uživatelská jména a hesla, není tedy příliš bezpečný. Kde se tedy používá? Užívají ho třeba routery, switche a podobná zařízení, je to totiž jediná možnost, jak do nich nahrát nový operační systém anebo uložit či zálohovat konfiguraci. Možná jste se už s některými případy setkali. Proč se zde používá? Tftp klient je menší a snadněji se do omezeného „prostoru“ takového zařízení vměstná. Tftp klient i server je součástí tcpip balíku, takže na routeru ho určitě nainstalovaný máte. Server nedoporučuji spouštět pomocí inetd, spusťte ho třeba v /etc/rc.d/rc.local  a přístup určitě omezte firewallem. Pokud byste ho chtěli přeci jen spouštět přes inetd, musíte přidat parametr -T a čas v mikrosekundách, jak dlouho čeká server při navazování spojení na klienta. Zde je ukázka spouštění jako standalone:

CS24_early

/usr/sbin/in.tftpd -l -c -s /home/tftp
Tabulka č. 546
-l spustí server v módu standalone
-c umožní i upload na server
-s cesta k adresáři s daty ke stahování nebo k uploadu, práva k adresáři: uživatel a skupina nobody (defaultně se pod tímto uživatelem spouští), práva 711

A zde je spouštění přes inetd, nepíšu to celé, jen parametry:

in.tftpd -c -T 2000000 -s /home/tftp

DHCP server

Návod na stavbu DHCP serveru již na Rootu také před časem proběhl, ale při zprovozňování jsem narazil na pár problémů, na které zde chci upozornit. Zprovozňujte podle následujících kro­ků:

  1. Naistalujte si DHCP server, pozor, balíček dcdpcd je jen klient
  2. Vytvořte konfigurační soubor, můžete opět přejmenováním, ale vzorový soubor je bohužel prázdný :-( Soubor musí obsahovat následující položky (doménová jména atd. nutná nejsou):

    option routers 192.168.1.1;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 1.1.1.1, 192.168.1.1;
    ddns-update-style none;
    subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.2 192.168.1.3;}
    
    host pocitacik {hardware ethernet 00:b0:c2:8a:c1:d2;
                    fixed-address 192.168.1.5;} 

    Syntaxi je nutno dodržet. Routers znamená defaultní gateway, maska je jasná a DNS servery také, stačí i jen jeden. Adresa sítě a IP adresy přidělované počítačům také popisovat nemusím, podle příkladu se přidělují jen dvě.

  3. Pozastavím se u dns update style, je to vymoženost, která je teprve ve vývoji, a proto ji vypneme, bohužel bez tohoto řádku DHCP server nepoběží!
  4. Pokud někomu chceme přidělit pevnou IP adresu, dělá se to v sekci host, pocitacik je název PC. Pevná IP adresa nemusí být v rozsahu adres, co má přidělovat DHCP server. Klient pak používá také DHCP, ale na základě MAC dostává od DHCP serveru stále stejnou IP. Jestliže pevné IP nepotřebujete přidělovat, sekci úplně vynechte.
  5. DHCP server se nespouští přes inetd, proto si ho dáme třeba do rc.local, spouští se příkazem dhcpd a při spuštění vám vypíše, ze kterých ethernetů bude akceptovat dotazy a jaká IP bude poskytovat.
  6. Přidělené IP adresy si server zaznamenává do souboru  /var/state/dhcp/dhcpd.leases.
  7. Jak se ve zmíněném článku píše o tom, že Windows se chovají ohledně DHCP nekorektně, je to pravda, ale týká se to jen verze XP a možná výše, 2003 jsem netestoval. Pokud máte ve své síti stanice s Win XP, musíte přidat řádek ohledně routovnání: route add -host 255.255.255.255 dev eth0 (samozřejmě předpokládám, že počítače, které DHCP server používají, jsou v tomto případě na eth0 :-)
  8. Nakonec ještě trocha faktů pro BFU, vše vychází z principu fungování IP:
    1. Pokud máte na ethernetu síť 192.168.1.0/24, brána musí být z této sítě, například 192.168.1.1
    2. DNS servery lze zadat libovolné, třeba i cizího providera, ale volí se ty, ke kterým máte nejrychlejší přístup
    3. Pokud má váš vnitřní ethernet IP adresu 192.168.1.1, klientům nemůžete přidělovat IP třeba 172.16.1.2, a to ani pevnou, ani dynamickou.

Byl pro vás článek přínosný?

Autor článku

V současné době pracuje jako správce linuxových systémů na Univerzitě Pardubice.