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 10186×
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
.
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.
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.
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í.
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
- /etc/fetchmailrc (překopíroval jsem a přejmenoval na /home/pepa/.fetchmailrc)
- /usr/bin/maildrop
- /etc/maildroprc
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:pepa$ fetchmail -f /home/pepa/.fetchmailrc -F -v
franta$ fetchmail -f /home/franta/.fetchmailrc -F -v
#! /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 .)
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.
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ě.
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.