Linuxové řešení pro laiky v malé firmě III.

V dnešním díle seriálu se podíváme na konfiguraci sítě, servery, služby a programy na Linuxu.

26.3.2009 06:00 | Dalibor Smolík | přečteno 9828×

11. Konfigurace připojení k síti a konfigurace proxy serveru


Nyní se podíváme blíž na možnost připojení každého počítače na internet, přestože máme k dispozici pouze jeden stroj, který je připojen na internet.

Pokud si pořídíme běžný router, můžeme jej konfigurovat přes webové rozhraní, výrobce nám sdělil, že adresa je např. http://192.168.0.1. Tam určíme, zda máme pevnou vnější adresu nebo zda je dynamická (DHCP server). Pro vnitřní síť můžeme povolit DHCP nebo nikoliv, ve druhém případě pak musíme nastavit fixní vnitřní adresy strojů. Když je router nakonfigurovaný, přistupujeme k nastavení adresy. Ta se pohybuje v rozmezí 192.168.0.1 – 192.168.0.254.

Soubor /etc/networking/interfaces upravíme např. takto:

allow-hotplug eth0 iface eth0 inet static address 192.168.0.2 netmask 255.255.255.0 network 192.168.0.1 broadcast 192.168.0.255 gateway 192.168.0.1 # dns-* options are imp leckage, if installed dns-nameservers 77.48.254.254 77.48.100.254

Na každém stroji měníme jen adresu. Poslední řádek je DNS, přidělený od poskytovatele připojení.

Pak dáme příkaz /etc/init.d/networking restart.

Popřípadě ještě příkaz ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up a pokud to nepomůže tak reboot.

Upozorňuji však, že příkaz ifconfig je zastaralý a nově by se měl používat příkaz ip.

Pokud máme pevnou IP adresu (od UPC za mírný příplatek) je možné na routeru nastavit některý z počítačů jako viditelný zvenku. Stačí si vybrat nějaký volný port (např. 5000) a zadat vnitřní IP adresu příslušného stroje.

Na počítači, který budeme chtít zobrazit z dálky, přidáme v konfigurakčním souboru ssh (/etc/ssh/sshd_config) pod řádek Port 22 ještě řádek Port 5000. Tím povolíme vzdálený přístup pro počítač na portu 5000.

Kdekoliv na světě pak lze zadat příkaz do konzole (ve Windows přes putty) např. ssh -p 5000 root@10.20.30.40 a máme k dispozici vzdálený počítač.

(10.20.30.40 je pevná IP adresa, viditelná zvenku). Samozřejmě je možné do souboru /etc/hosts na lokálním stroji definovat název vzdáleného serveru, aby se nemusela zadávat IP adresa.


Další možnost připojení více stanic k internetu je proxy server, což může být některý z počítačů připojených přímo k internetu (nejlépe náš server) Většina čtenářů může tuto kapitolu přeskočit, je jen pro informaci.

Jako proxy server může posloužit balíček tinyproxy.

Nejdříve si balíček na server nainstalujeme, mírně upravíme konfigurační soubor tohoto programu a v prohlížeči internetu určíme, že se bude přistupovat k internetu přes proxy server a nastavíme číslo portu podle konfiguračního souboru.

Nyní zpět k tomu konfiguračnímu souboru:

jde o soubor /etc/tinyproxy/tinyproy.conf a upravíme jej takto – vypisuji jen tu část, která se upravuje:

... ... # Name of the user the tinyproxy daemon should switch to after the port # has been bound. # User root Group root # # Port to listen on. # Port 3128 # . a v další části – téměř již na konci souboru: # Also the order of the controls are important. The incoming connections # are tested against the controls based on order. # Allow 127.0.0.1 Allow 192.168.1.0/24 Allow 192.168.0.0/25
# The "Via" header is required by the HTTP RFC, but using the real host name # is a security concern. If the following directive is enabled, the string # supplied will be used as the host name in the Via header; otherwise, the # server's host name will be used. # ViaProxyName "tinyproxy"

pokud jsou adresy pracovních stanic 192.168.0.1 až 192.168.0.254 (nám bude stačit těch 10 – 15 čísel na konci) O principu číslování IP adres se nemá smysl rozpovídat tady, ale lze si něco o nich přečíst:

http://cs.wikipedia.org/wiki/IP_adresa
http://www.security-portal.cz/clanky/rozdelovani-ip-siti.html
V každém případě lze pro naše účely přiřazovat IP adresy od 192.168.255.255, což jsou povolené rozsahy pro internet (třída C) – tolik adres určitě potřebovat nebudeme.

Adres tohoto typu je v současném internetu nedostatek – proto je velmi obtížné získat přímou pevnou IP adresu pro vnitřní i vnější použití. Všechny adresy ve vnitřní síti se „slévají“ v jednu adresu, která je vidět z venku na internetu.

Pro upřesnění: tato popisovaná situace je aktuální pro protokol IPv4, které v současné době funguje.

V budoucnu – u protokolu IPv6 – bude IP adres dostatek pro všechny stroje.

Jakmile máme nainstalovanou tinyproxy, nezapomeneme ji uvést do provozu příkazem /etc/init.d/tinyproxy start.



Ještě zbývá zdůraznit jednu důležitou věc:

Při instalaci pracovní stanice je potřeba instalačnímu programu sdělit, že se bude připojovat počítač přes proxy server. Pokud to neuděláme, nic hrozného se neděje. Jen pokud chceme jít do konzole a spouštět program vyžadující internet (jako je např. update systému), musíme po zadání hesla roota ještě napsat příkaz export http_proxy='http://192.168.0.2:3128' (IP adresa proxy serveru, což nemusí být – ale může být náš server) Výše uvedený příkaz může být ale uveden ve skriptu, takže není nutné jej složitě zapisovat vždy po otevření konzole a před přístupem na internet.


12. Jaké programy máme v Linuxu k dispozici?


Dnes lze již konstatovat, že většina běžných programů, které se ve firmě používají, jsou v Linuxu k dispozici. Je to především kancelářský program (Open Office), internetový prohlížeč a poštovní klient, program pro úpravu fotografií (Gimp), vektorový kreslicí program (Inkscape) a mnoho dalších. K nahlédnutí třeba zde. http://www.abclinuxu.cz/software/alternativy V některých případech program pro Linux neexistuje nebo není vyhovující pro danou situaci ve firmě, poté je třeba sáhnout k jinému operačnímu systému. Ale jak jsem již poznamenal, kombinace operačních systémů v jedné síti není vůbec žádný problém.


13. Úprava fotografií a práce s obrázky


Fotografie a obrázky vůbec budeme také potřebovat při práci v kanceláři, proto jim věnujeme samostatnou kapitolu. Nejde o to pouze obrázky stáhnout z internetu nebo z fotoaparátu, ale i poslat e-mailem zákazníkovi. To není tak jednoduchá záležitost, jak to na první pohled vypadá.

Běžný obrázek z fotoaparátu ve formátu .jpg, což je nejběžnější komprimovaný formát má velikost kolem 500 kB, což při množství 10 obrázků již běžně nelze poslat e-mailem. Někdy partnerovi nezáleží až na té nejlepší kvalitě obrázku - jde třeba jen o určitou informaci, ale potřebuje těch obrázků více. Je sice pravda, že je možné obrázky uložit do komprimovaného formátu (např. tar, zip nebo rar) a poslat přes specializovaný server, jako je např. www.uschovna.cz, ale řada partnerů tuto techniku neovládá a proto je nepoužitelná.

Z tohoto důvodu se naučíme obrázky hromadně zmenšovat, abychom je mohli najednou poslat a příjemce s tím nebude mít žádnou práci tyto obrázky zobrazit.

Nejprve si obrázky uložíme do speciálního adresáře, který si pro ně vytvoříme.

Budeme mít nainstalovaný program imagemagick a vytvoříme si tento skript, uložíme např. do adresáře /home/uzivatel a pojmenujeme „zmensit“.:

#!/bin/bash mkdir picture; cp *.* ./picture; cd picture; for file in *.jpg; do convert $file -filter Cubic -resize 900x600 $file; done

for file in *.JPG; do convert $file -filter Cubic -resize 900x600 $file; done

Když jsme v adresáři s obrázky, zadáme příkaz /home/uzivatel/zmensit Tento skript vytvoří nový podadresář s název picture, ve kterém budou uloženy stejné obrázky jako ty původní, jenže v mnohem menším rozlišení a bude možné je poslat e-mailem.

Samozřejmě je možné ovlivnit velikost obrázku změnou parametru -resize na jiné číslo, ale nejlépe ve stejném poměru.

Jinak na prohlížení obrázků jsem si oblíbil program gqview, je možné použít však i jiné (např. KView ). Na hromadné přejmenování obrázků lze použít program Krename, pokud to potřebujeme, program je velmi intuitivní.


14. Instalace poštovního serveru


Pokud máme nainstalovány základní programy a máme propojený server s pracovními stanicemi, je čas nainstalovat poštovní server.

Cílem tohoto návodu je vytvořit server s nejmenším množstvím instalace programů a co s nejjednodušším nastavováním – ostatně jako všechny ostatní programy v tomto návodu. Podotýkám, že je to návod pro málo zkušené administrátory, takže se vyhýbám napojením na databáze adres, filtrování zpráv a jiné sofistikované činnosti - pro firmu s 50 stroji se tento způsob rozhodně nehodí.
Tak čím začít?
Budeme mít dvě e-mailové adresy, adresa1@volny.cz a adresa2@volny.cz.

Nejdříve nainstalujeme příslušné programy - vybral jsem následující:
a) pro stahování pošty ze serveru poskytovatele - fetchmail
b) pro ukládání pošty v počítači: courier-maildrop
c) pro zobrazení adresářů pošty v Thunderbirdu - courier-imap a courier-authlib

Nyní musíme upravit práva pro spouštění.fetchmailrc: chown pepa /home/pepa/.fetchmailrc. Důležité!!
Při spouštění musí uživatel totiž tento soubor vlastnit. Pro druhou adresu máme v uživateli franta totéž, jen místo "pepa" bude všude uvedeno "franta" adresa2 a heslo2. Nyní musíme spustit příslušné programy:

Na pozadí spusíme /usr/bin/maildrop
/etc/init.d/courier-imap start
/etc/init.d/courier-authdaemon start

V tomto případě jsem neinstaloval postfix ani sendmail. Jakmile mám programy nainstalované, vytvoříme si nové uživatele určené pro poštu, uživatele franta a uživatele pepa. (adduser franta ..) V každém z nich si vytvoříme adresář pro poštu Maildir takto: (uvádím příklad jen pro pepu, platí to analogicky i pro frantu)

maildirmake Maildir /home/pepa/Maildir
Do adresáře /home/pepa zkopírujeme následující soubory:
- /etc/fetchmailrc (překopíroval jsem a přejmenoval na /home/pepa/.fetchmailrc) - /usr/bin/maildrop - /etc/maildroprc
V uživateli pepa budeme mít toto nastavení:
.fetchmailrc

set postmaster "pepa" poll "pop3.seznam.cz" protocol pop3 username "adresa1" password "heslo1" //heslo od poskytovatele internetu is user "pepa" here mimedecode mda "/home/pepa/maildrop -f $HOME/Maildir" maildroprc # Global maildrop filter file # Uncomment this line to make maildrop default to ~/Maildir for # delivery- this is where courier-imap (amongst others) will look. DEFAULT="$HOME/Maildir" Dále povolíme naši IP adresu v souboru /etc/courier/imapd: # Address to listen on, can be set to a single IP address. # # ADDRESS=127.0.0.1 ADDRESS=192.168.10.21 ##NAME: PORT:1 Poznámka: Hlavní domovský adresář uživatele (/home/pepa) nesmí mít práva k zápisu u nikoho jiného než u vlastníka. Soubor maildrop v příslušném adresáři má mít vlastníka a skupinu root a povoleno vše. Nyní můžeme směle přidat účet do Thunderbirdu, Vaše jméno a název účtu adresa1, nastavení serveru:
192.168.10.21, port 143, jméno uživatele pepa.
Při připojení to žádá heslo - je to heslo uživatele na serveru, nikoliv to od providera. Nyní jsme připraveni přijímat zprávy. Přijmeme je vždy pod příslušným uživatelem takto:
pepa$ fetchmail -f /home/pepa/.fetchmailrc -F -v franta$ fetchmail -f /home/franta/.fetchmailrc -F -v
Přepínač -F způsobí, že zprávy nezůstanou u poskytovatele a stáhnou se k uživateli. Teď se Thunderbirdu klikneme na doručenou poštu, vyzve nás to k zadání hesla uživatele a již přijímáme zprávy.
Ale teď to máme trochu nepohodlné, že. Chtěli bychom, aby se každých 5 minut spouštěly všechny "klony" .fetchmailrc a spolehlivě šla pošta do serveru. Jedním z řešení je spouštění přes crontab.
Takže do každého uživatele přibude ještě jeden skript, např. pepaspustit a frantaspustit, bude vypadat takto:
#! /bin/sh # pepaspustit fetchmail -f /home/pepa/.fetchmailrc -v -F Do souboru /etc/crontab přidáme dva řádky: */5 * * * * pepa /home/pepa/pepaspustit */5 * * * * franta /home/franta/frantaspustit

a zadáme příkaz /etc/init.d/cron restart. A je hotovo! Mělo by to fungovat. Doporučuji si posílat občas zkušební poštu, zda-li server funguje, jak má. Jak jsem již psal, jedná se o nejzákladnější nastavení. Ve spolupráci s dalšími programy je možné snadno přidávat další e-mailové adresy a uživatele, je možné použít spamový filtr spamassassin, antivirový program kontrolující došlou poštu, automatické odpovědi v době nepřítomnosti apod. Tyto služby jdou nainstalovat později a v počáteční fázi by to byla dost velká psychická zátěž. Prozatím lze využít antispamový proram, který dává k dispozici firma, u které máme zřízenou internetovou adresu (Volný, Seznam, Gmail .)

Poznámka na závěr:

Pokud vlastníme notebook, můžeme efektivně stahovat poštu uloženou na poštovním serveru před cestou mimo kancelář a nemáme-li k dispozici vzdálené připojení k poště. Na notebooku si nainstalujeme courier-imap a courier authdaemon (bez fetchmailu a maildropu), vytvoříme si stejné uživatele jako na poštovním serveru. Skriptem nebo ručně zkopírujeme adresář Maildir pro každého uživatele zvlášť. Povolíme práva pro tento adresář a pak můžme si vytvořit v Thunderbirdu nový účet. Z tohoto účtu je třeba poslat alespoň jedinou zprávu kamkoliv a vytvoří se příslujšné složky pro došlou a odeslanou poštu. Před cestou provedeme kopírování zpráv a na cestách máme potřebnou poštu k dispozici.

Vzdálený přístup pro příjem pošty Pokud máme pevnou vnější IP adresu, můžeme se z poštovního klienta připojit kdekoliv na světě na firemní poštu. Podobně jako u zobrazení serveru si na routeru nastavíme ve virtuálním serveru nějaký port, např. 5001. Na počítači, kde je poštovní server povolíme tento port – a to připsáním číslice 5001 v konfiguračním souboru /etc/courier/imapd v sekci, kde je uvedeno port 143. Zápis pak bude PORT=143,5001 (Port č. 143 je určen pro místní přístup).

V Thunderbirdu pak vytvoříme další účet pro vzdálený přístup, nastavíme port 5001 a postupujeme obvyklým způsobem pro vytvoření nového účtu.



15. Ovládání serveru z pracovní stanice

Již jsme si řekli, že počítač „na dálku“ můžeme ovládat pomocí programu ssh a to spuštěním programu v konzoli nebo jejím emulátoru na pracovní stanici.

Přihlásíme se příkazem ssh root@server nebo uzivatel@server (záleží na tom, co potřebujeme upravovat) a po zadání hesla pro server se nám objeví v konzoli hláška něco jako root@server: ~#, což je neklamné znamení toho, že jsme ve skutečnosti na serveru, nikoliv na svém počítači a jsme pod rootem. Abychom však mohli použít názvy počítačů, musíme je mít nastavené v tabulce /etc/hosts.

Tato tabulka by měla obsahovat názvy všech strojů v síti včetně serveru a vlastního názvu svého stroje a měla by být stejná na všech strojích.

Příklad, jak taková tabulka vypadá:



root@server:~# cat /etc/hosts

127.0.0.1 localhost.localdomain localhost

10.20.28.104 server

10.20.28.105 notebook

10.20.28.101 debian

10.20.28.103 brave

# The following lines are desirable for IPv6 capable hosts

::1 ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

ff02::3 ip6-allhosts

Program ssh zapisuje přihlášení stroje do souboru /home/uzivatel/.ssh nebo /root/.ssh (podle toho, zda se připojujeme pod uživatelem nebo rootem) a pokud přeinstalujeme některý z počítačů nebo provedeme větší zásah do softwaru, může se stát, že spojení s tímto strojem nebude fungovat. Je proto nutné na vzdáleném stroji, ze kterého se k tomu změněnému chceme připojit musí vymazat řádku týkající se tohoto stroje v souboru .ssh, případně ten soubor vyprázdnit úplně.


16. Další možné služby, provozované na serveru


Dalšími službami se detailněji zabývat nebudeme, protože to je předmětem dalšího zkoumání a studia - ale pro informaci: je to především webový server Apache, který může sloužit jako základ pro vnitřní intranetovou aplikaci. Pokud je na serveru spuštěn, ozývá se na adrese: http://server. a základní adresář je ve složce /var/www.

Tento server Apache může být využit pro zobrazení databázových sestav, generovaných některým databázovým nástrojem (MySQL, Postgre), pro zájemce je též hodně materiálu na internetu.

Zajímavým projektem, který může usnadnit správu vzdáleného stroje, především serveru je webmin. Ten má několik modulů (dostupné jsou ve verzi pro Debian Etch), pracuje na adrese https://server:10000 a dá se s ním konfigurovat grafickými prostředky téměř vše, včetně databáze.


Online verze článku: http://www.linuxsoft.cz/article.php?id_article=1597