Kategorie

Online teploměr Brno

Aktuální teplota:

Uživatelské menu

Archiv

 «  březen 2010  » 
Po18152229
Út29162330
St310172431
Čt4111825 
5121926 
So6132027 
Ne7142128 

Ostatní

Kategorie: Linux Ubuntu

Jak na linuxový server? Kompletní návod krok za krokem

Vlastní linuxový server nemusí být doménou pouze znalých, zvládne to opravdu každý

Nedávno jsem slíbil, že napíšu článek o tom, jak si postavit jednoduchý linuxový server. Když jsem instaloval server já, tak jsem prolezl stovky internetových stránek a diskusních fór, na kterých jsem hledal různé odpovědi. Abyste tuto časově náročnou a otravnou proceduru nemuseli podstoupit, rozhodl jsem se vytvořit kompletní návod krok za krokem na instalaci linuxového serveru, který bude stabilní, jednoduchý na instalaci a bezpečný (nevím o žádných bezpečnostních chybách).

Náš výsledný linuxový server bude založen na:
Operační systém: Linux Ubuntu 8.04.4LTS Hardy Heron
Webový server: Apache 2.2 s podporou PHP 5
Databázový server: MySQL 5
Mailový server: sSMTP spojený s účtem Seznam.cz
FTP server: Žádný
Vzdálená správa: SSH + Webmin

Raději připomenu mé upozornění, že za žádné škody, které vám může tento návod jakkoliv způsobit, neručím. Doporučuji generovat silná hesla, která budou obsahovat VELKÁ i malá písmena a číslice. Hesla by měl být alespoň 8 znaků dlouhá. Hesla si můžete generovat třeba u kuřátka.

I. Volba HW

Na náš jednoduchý server by měl v pohodě postačit počítač, který bude stejný nebo výkonnější než CPU 750MHz, RAM 256MB (opravdové minimum, doporučuji 512MB), GK 4MB, HDD min. 10GB (zapojením více disků do RAIDu se nyní zabývat nebudeme) a CD mechanika. Myslím si, že opravdu není moc těžké si někde podobnou "vykopávku" sehnat. Jelikož chci tento návod osvěžit o screenshoty, budu pracovat ve VirtualBoxu. Někteří si nebývají jistí připojením k internetu, při používání serveru nás nebude zajímat hodnota download, ale hodnota upload. Takovým minimem pro provoz serveru by měl upload mít hodnotu alespoň 4MBit (pro méně navštěvované servery, většinou kolem 40 návštěvníků denně), doporučuji alespoň 8Mbit (spojení je pak rychlé, hodí se pro servery s návštěvností do 200 návštěvníků denně). Nepředpokládám, že by si pro svůj server někdo zařídil serverhousing. Nezapomeňte na statickou a hlavně veřejnou IP adresu!

II. Předpokládám ...

V tomto návodu budu předpokládat s tím, že server budeme mít nejprve připojen například k domácímu routeru, který přiděluje IP adresy dynamicky (DHCP), a po kompletní instalaci bude server připojen k internetu se statickou a veřejnou IP. V návodu budu uvádět různé zástupné informace, budete zřetelně upozorněni, co a kde máte čím nahradit. Dále víceméně (není to však žádnou podmínkou) předpokládám, že pracujete na Windows XP a novějších systémech.

III. Stáhnutí a vypálení linuxu

Jak jsem psal výše, budeme instalovat operační systém Linux Ubuntu 8.04.3LTS Hardy Heron. Některým z vás může přijít podivné, proč budeme instalovat starší verzi i přes to, že za vrátky je verze 9.10. Verzi 8.04.3 jsem vybral z důvodu, že to je verze s dlouhou podporou, aktualizace pro serverovou edici by měly od uvedení vycházet po dobu 5ti let (tedy cca do 4/2013). Pokud byste se přeci jenom rozhodli instalovat novější verzi, tak vám v tom nic nebrání, ovšem návod pak může obsahovat některé nepřesnosti způsobené rozdílnými verzemi. Stáhneme si tedy ISO obraz CD 32 bit systému nebo ISO obraz 64bit verze (pokud nevíte, kterou vybrat verzi, stáhněte 32bit, nic tím nezkazíte). ISO obraz doporučuji stáhnout programem, který umí pokračovat v rozestahovaném souboru (například při výpadku el. energie). ISO obraz pak můžeme na Windows vypálit jednoduchým prográmkem DeepBurner. Program je intuitivní, budeme potřebovat jedno CD.

IV. Instalace systému

Dostáváme se tedy už na začátek života našeho linuxového serveru. Doufám, že jste správně nastavili BIOS (popř. ho ochránili heslem). Nyní se ujistěte, že máte CD mechaniku nastavenou jako první bootovací možnost a až poté pevný disk, na který budeme instalovat. Vložte vypálené CD do mechaniky a po chvíli by se vám mělo ukázat něco takového:

Výběr jazyka systému

Vyberte do 30 vteřin možnost Čeština a potvrďte entrem, poté zvolte možnost Install Ubuntu server:

Install Ubuntu Server

Nastavuje se síť přes DHCP

Vložte jméno počítače, můj počítač se bude jmenovat server.mojedomena.tld, napíšu tedy server:

Nastavit síť - jméno počítače

Nyní rozdělíme a naformátujeme disk (pozor, ztratí se všechna na něm uložená data!). Pro jednoduchost jsem zvolil jednu velkou oblast, zvolíme tedy první možnost Asistované - použít celý disk:

Rozdělit disky - Asistované (použít celý disk)

Dále vyberte disk, který chcete rozdělit, pokud máte v počítači pouze jeden, tak máte pouze jednu možnost:

Rozdělit disky - Vyberte disk pro rozdělení

Jakmile jsme si opravdu jistí, že chceme disk naformátovat a vše jsme zvolili tak, jak jsme chtěli, potvrdíme možnost Ano:

Rozdělit disky - Zapsat změny na disk?

Po dokončení formátování disku se začne instalovat základní systém:

Instaluje se základní systém

Nyní vytvoříme nového uživatele, který bude mít celé jméno Správce, uživatelské jméno spravce a který bude mít heslo o délce alespoň 8 znaků s kombinací VELKÝCH a malých písmen a číslic:

Nastavit užiatele - Celé jméno nového uživatele

Nastavit užiatele - Uživatelské jméno pro nového uživatele

Nastavit uživatele - Zadejte heslo pro nového uživatele

Pokud nepoužíváte HTTP proxy pro přístup k internetu, nic nevyplňujte, v opačném případě vyplňte potřebné údaje:

Nastavit správce balíků - HTTP Proxy

V tomto kroku instalace nevyužijeme nabídnutých balíčků, této možnosti využijeme později, až bude potřeba:

Software selection

Od dokončení instalace základního systému nás dělí vyndání CD se systémem z mechaniky a odentrování Pokračovat.

Dokončit instalaci - Instalace je kompletní

IV. Aktualizace systému

Po restartu našeho počítače by se nám měl začít načítat základní systém našeho linuxového serveru. Měli bychom vidět něco takového:

Přihlašovací obrazovka

Nyní se přihlásíme jako uživatel, kterého jsme vytvořili při instalaci - spravce, a potvrdíme jeho heslem. Většina návodů, které jsou na internetu k nalezení, nepočítají s tím, že průměrný člověk, který instaluje server, ho instaluje doma a pak ho připojí, až je server hotov. Většina návodů začíná konfigurací sítě a dalšími důležitými věcmi. V tomto návodu se vám může zdát, že půjdu tak nějak od konce. Nejdříve si upravíme zdroje pro správce balíků a následně provedeme aktualizaci systému. V celém návodu budu používat podle mého názoru jednoduchý a všestranný editor nano.

sudo nano /etc/apt/sources.list

Potvrdíme naším heslem a poté zde odkomentujeme 2 řádky url adres, které by měli končit na slovo partner. Odkomentujeme křížek a mezeru a uložíme CTRL+X, potvrdíme, že chceme uložit změny. Pak provedeme samotnou aktualizaci systému.

sudo apt-get update
sudo apt-get upgrade

Když bude potřeba, tak opět potvrdíme našim heslem a potvrdíme, že chceme nainstalovat aktualizace. Stáhnutí a instalace aktualizací zabere asi 15 minut (podle rychlosti připojení k internetu).

V. Povolení účtu root

Protože pro téměř všechny kroky potřebujeme oprávnění uživatele root a v každém příkazu psát na začátek sudo a následně vše potvrzovat heslem by bylo zdlouhavé, nepohodlné a celkově otravné, tak za tímto účelem povolíme účet uživatele root, na který se budeme moci přihlásit. Zde bych jen upozornil, že pod účtem root si musíte být opravdu jistí, co děláte. Root je pro *nix systémy něco jako bůh, můžete udělat úplně vše bez omezení, tzn. můžete toho také hodně zkazit nebo vylepšit. Přidělíme tedy uživateli root nové heslo následujícím příkazem:

sudo passwd root

Potvrdíme naším heslem, zadáme nové heslo a nové heslo pro kontrolu zopakujeme. Nyní se můžeme zkusit přihlásit jako uživatel root, nejprve se tedy odhlásíme:

logout

A znovu přihlásíme jako root.

VI. Příprava síťového rozhraní

Protože stále pravděpodobně jedeme přes náš domácí router, není tedy moc vhodné nyní měnit konfiguraci síťového rozhraní. Nastavení síťového rozhraní si připravíme pro pozdější použití. Nejprve si vytvoříme kopie souborů se síťovou konfigurací a tyto soubory si poté upravíme. Kopie vytvoříme takto:

cp /etc/network/interfaces /etc/network/interfaces_new
cp /etc/resolv.conf /etc/resolv.conf_new

Nyní si soubory postupně upravíme. Zadáme tedy:

nano /etc/network/interfaces_new

Měli bychom vidět něco podobné tomuto:

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp

Soubor upravíme tak, aby vypadal následovně:

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1  dns-server 208.67.222.222

Místo mých smyšlených údajů u address, netmask, broadcast, gateway si doplňte síťové údaje, které budou na místě připojení serveru k internetu. IP adresu u dns-server můžete ponechat, je to IP adresa OpenDNS, můžete si ovšem doplnit i jinou IP adresu DNS serveru. Vše uložíme, tak jak jsme si již jednou ukázali, a budeme pokračovat úpravou druhého souboru takto:

nano /etc/resolv.conf_new

V souboru naleznete zřejmě 3 řádky (search, nameserver, nameserver). Soubor upravíme podobně tomuto příkladu:

search mojedomena.tld nameserver 208.67.222.222 nameserver 208.67.220.220

Mojedomena.tld si samozřejmě upravte podle své domény, IP adresy nameserverů si můžete také změnit, opět jsem použil DNS servery OpenDNS, se kterými mám vcelku dobrou zkušenost, můžete si je tam ponechat. Vše opět nezapomeneme uložit.

VII. Drobná úprava serverových síťových nastavení

Nyní si upravíme soubor /etc/hosts:

nano /etc/hosts

Měl by se podobat tomuto:

127.0.0.1 localhost.localdomain localhost 192.168.0.1 server.mojedomena.tld server # 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

Mojedomena.tld si upravíme podle naší domény a IP adresu 192.168.0.1 si také upravíme podle naší budoucí IP adresy.

Nyní si spustíme 2 příkazy, ve kterých mojedomena.tld opět upravíme podle svého:

echo server.mojedomena.tld > /etc/hostname
/etc/init.d/hostname.sh start

Potom spusťte:

hostname
hostname -f

A v obou případech bychom měli dostat stejný výsledek, tedy server.mojedomena.tld. Pokud vám nejde napsat znak >, tak nevěste hlavu. Stačí spustit tyto příkazy a při rekonfiguraci vybrat Vybrat mapu ze seznamu architektury, potom qwerty nebo qwertz, následně Czech a nakonec standard:

apt-get install console-data console-common
dpkg-reconfigure console-data

Nyní se zkuste přepnout do anglické klávesnice pomocí klávesy Pause/Break a zkuste znovu příkaz výše, ve kterém vám znak napsat nešel. Při jakémkoliv problému se ozvěte v komentářích.

VIII. Drobné úpravy serveru

Nyní si vyměníme /bin/dash za /bin/bash, spustíme tedy:

ln -sf /bin/bash /bin/sh

Dále vypneme a odstraníme jakýsi bezpečnostní program AppArmor, tento program nám může způsobit více problémů než užitku. Vypneme ho a odstraníme takto:

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

IX. Instalace Apache, MySQL a PHP5

Nyní si už nainstalujeme hlavní část našeho serveru, kterým je webový server Apache, asi nejpouživanější databázový server MySQL a podporu pro zpracování jazyka PHP. Pamatujete si ještě, jak jsme na začátku instalace systému měli na výběr, jaké programy chceme nainstalovat a my žádný nevybrali? Tak nyní si výběr spustíme dodatečně takto:

tasksel

Nyní uvidíme asi tento seznam, ve kterém máme mnohem více možností než při instalaci. Najedeme si tedy na LAMP server (Linux+Apache+MySQL+PHP), zaškrtneme ho mezerníkem a dáme OK.

Nastavení balíků - Výběr programů

Po stažení a instalaci balíků nás program začne vyzývat k zadávání různých informací. Jako asi první informací, na kterou se nás zeptá, bude heslo pro uživatele root do MySQL databáze.

Nastavuji mysql-server-5.0

X. Nastavení a zabezpečení webového serveru Apache

Při používání různých redakčních systémů a dalších skriptů se můžete ve výchozím nastavení setkat s různými problémy a nefunkčností. Většinu problémů opravíme takto:

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Nyní si ještě upravíme pár konfiguračních souborů serveru Apache. Nejprve budeme upravovat nastavení serveru pro náš web.

nano /etc/apache2/sites-available/default

Tady u hodnoty ServerAdmin upravíme výchozí emailovou adresu na náš email, pod tuto hodnotu doplníme další řádek ServerName mojedomena.tld (mojedomena.tld samozřejmě upravíme podle naší domény). Dále u Directory / upravíme AllowOverride none na AllowOverride All. To stejné uděláme i u Directory /var/www/. Tady ještě jen smažeme u hodnoty Options část Indexes. Soubory tedy bude vypadat nějak podobně jako:

NameVirtualHost * <VirtualHost *> ServerAdmin nas-mail@treba-seznam.cz ServerName mojedomena.tld DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>

Server Apache je podle mých informací sám o sobě bezpečný, ale stejně bychom rádi předešli možným útokům a jejich následkům. Při těchto útocích hrají důležité informace pro útočníky informace. Čím více informací mají, tím jsou na tom lépe a mohou třeba využít některé chyby, kterou disponuje jen určitá verze. Teď si tedy trochu zabezpečíme náš Apache.

nano /etc/apache2/apache2.conf

Tímto si opět otevřeme konfigurační soubor pro následnou editaci. Je poměrně dlouhý, takže budete chvíli hledat nebo využijete všech možností editoru nano (například CTRL+W).

Najdeme řádek, kde bude zapsáno ServerTokens Full, a změníme na ServerTokens Prod. Dále najdeme ServerSignature On a změníme na ServerSignature Off. Nesmíme zapomenout vše uložit.

Ve výchozím nastavení nemá normální uživatel ani webové aplikace možnost zapisovat do kořenového adresáře webu, toto změníme zapsáním:

chown spravce:www-data /var/www
chmod 775 /var/www

XI. Zabezpečení a nastavení PHP

Webový server Apache bychom měli vcelku zabezpečený, ale na PHP také nesmíme zapomenout. Začneme otevřením a editací konfiguračního souboru PHP.

nano /etc/php5/apache2/php.ini

A opět budeme hledat, měnit a zakazovat. Najdeme error_reporting = E_ALL   ~E_NOTICE a zaměníme to za error_reporting = 0. Tímto zakážeme vypisování chyb. Ujistíme se, že najdeme tento řádek register_globals = Off. PHP bychom také mohli zakázat některé fce, které nepotřebujeme, najdeme řádek disable_functions = a za rovnítko doplníme následující fce system,phpinfo,ftp_connect,show_source,exec,passthru,shell_exec,proc_open,popen,curl_exec,
curl_multi_exec,parse_ini_file,php_uname,escapeshellcmd
. Tímto bychom jednoduchým způsobem zabezpečili PHP, protože na samotné autory skriptů se nesmíme spoléhat.

Ještě si doinstalujeme jednu PHP knihovnu pro práci s obrázky:

apt-get install php5-gd

XII. Kontrola MySQL, instalace phpMyAdmin

Databázový server MySQL jsme nainstalovali výše, mrkneme se jen, zda MySQL plně běží. Pro kontrolu zadáme:

netstat -tap

A pokud někde ve výpisu nalezneme řádek podobný následujícímu, tak by mělo vše běžet:

tcp 0 0 localhost:mysql *:* LISTEN 14434/mysqld

Pro pohodlnou administraci MySQL se nejčastěji používá phpMyAdmin. V tomto návodu si ho také zprovozníme, v podstatě na tom není nic těžkého, stačí zadat:

apt-get install phpmyadmin

A vybrat webový server apache2:

Nastavuji phpMyAdmin - webový server Apache 2

Adresa pro phpMyAdmin bude http://mojedomena.tld/phpmyadmin/

XIII. Aktuální čas a synchronizace času

Co by to bylo za server, kdyby měl špatně nastavený čas? Vše ihned napravíme, budeme totiž čas synchronizovat z internetu. Nainstalujeme si tedy pár prográmků, které nám vše potřebné zajistí:

apt-get install ntp ntpdate

XIV. SMTP server pro odesílání pošty

Určitě jste se již setkali například s webovým formulářem, který zašle na předdefinovaný email zprávu, kterou někdo napsal přes stránky v internetovém prohlížeči. Aby tato možnost fungovala, musíte mít nainstalovaný mailový server nebo alespoň jeho podstatnou část, která zajišťuje odesílání pošty. Ze své zkušenosti mohu říci, že nainstalovat právě takový zjednodušený mailový server je obtížné a složité, rozhodl jsem se zde popsat mnohem, ale mnohem jednoduší variantu. Tou variantou je sSMTP, prográmek, který zprostředkuje odeslání emailu přes klasickou emailovou schránku založenou třeba na Seznam.cz. Nic jednoduššího jsem opravdu nenašel. Ovšem je zde jedno velké ALE. Klasicky dělaný server pro odesílání pošty umožňuje odeslat email s "podvrhnutou" adresou. Podvrhnutou emailovou adresou myslím, že email odeslaný právě například z webového formuláře většinou přijde tak, jakoby ho odeslal daný uživatel ze svého emailu. Toto jednoduché řešení s emailovou schránkou od Seznam.cz bude fungovat jen v případě, že email bude odeslán z naší emailové adresy (tedy nejde "podvrhnout"). Když jsem toto řešení zkoušel, neváhal jsem napsat na helpdesk Seznam.cz, abych se zeptal, zda používáním tohoto prográmku nějak neporušuji jejich pravidla a v podstatě jsem to chtěl odsouhlasit. Pracovník a vlastně celý Seznam.cz se s touto otázku vůbec nikdy nesetkal (ano, opět jsem byl první, kdo myslí trochu jinak než ostatní), a tak postoupil moji otázku na nějaká vyšší místa. Přišla mi odpověď v tom smyslu, že mi to nezakazují, že by to mělo teoreticky fungovat (v té době jsem to už měl otestované), a že odeslání emailu je trochu svázané několika způsoby - max. 20 mailů za 5 minut, dále jak jsem psal výše, musí být zpráva odeslána tak, aby odesílatel byl shodný s účtem na Seznamu, apod. To nám ovšem nebrání toto využít, tak tedy dáme se do toho a za 10 minut máme hotovo.

Nejprve si zaregistrujeme emailovou adresu například na zmiňovaném Seznam.cz:

Založení nového uživatele Seznam účtu

A dále budeme již pokračovat opět na našem serveru, nainstalujeme sSMTP a nahradíme tím výchozí sendmail:

apt-get install ssmtp
mv /usr/sbin/sendmail /usr/sbin/sendmail_bak
ln -s /usr/local/ssmtp/sbin/ssmtp /usr/sbin/sendmail

Nyní musíme sSMTP nakonfigurovat tak, aby spolupracovalo s naší emailovou schránkou na Seznam.cz (můžete si vybrat klidně jiného poskytovatele, je to jen na vás):

nano /etc/ssmtp/ssmtp.conf

Soubor upravíme tak, aby vypadal podobně jako příklad:

# # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root=emailova-adresa@seznam.cz # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com mailhub=smtp.seznam.cz # Where will the mail seem to come from? #rewriteDomain= # The full hostname hostname=server.mojedomena.tld # Are users allowed to set their own From: address? # YES - Allow the user to specify their own From: address # NO - Use the system generated From: address FromLineOverride=YES AuthUser=emailova-adresa AuthPass=heslo AuthMethod=LOGIN # UseTLS=YES

Emailova-adresa@seznam.cz nahradíme naší emailovou adresou, smtp.seznam.cz necháme tak, jak je v případě, že jsme si vybrali email od Seznam.cz. Pokud jste si vybrali kohokoliv jiného, vepište sem správný smtp server. Server.mojedomena.tld nahradíme tak, jak je zvykem - naší doménou. Emailova-adresa nahradíme vším, co najdeme před zavináčem. Heslo snad nemusím vysvětlovat, že nahradíme za heslo k naší emailové schránce. Při použití emailové schránky od Googlu odkomentujeme řádek # UseTLS=YES. Pokud jsme vše nastavili, tak je nyní ten správný čas na otestování funkčnosti takto:

ssmtp prijemce@domena.tld

Za prijemce@domena.tld samozřejmě dosadíme existující emailovou adresu příjemce. Nyní možná budete trochu zmateni, neobjeví se vám totiž další řádek terminálu, budeme totiž nyní psát samotnou emailovou zprávu.

To: prijemce@domena.tld
From: emailova-adresa@seznam.cz
Subject: Test email

Mozna tento email dojde prijemcovi

Opět dosadíme správné údaje, za prijemce@domena.tld, emailova-adresa@seznam.cz dosadíme adresu příjemce a naši registrovanou emailovou adresu. Email odešleme podržením CTRL+D, zpráva by měla skoro okamžitě dorazit. V tomto je ta jednoduchost, pár řádku konfiguráku, žádné žádání o reverzní DNS, apod., jen prostě zatížíme servery někoho jiného.

V konfiguračním souboru PHP musíme ještě nastavit, aby se pro odesílání pošty pomocí PHP fce mail() používal sSMTP. To zařídíme takto:

nano /etc/php5/apache2/php.ini

Najdeme zápis podobný tomuto:

[mail function] ; For Win32 only. SMTP = localhost smtp_port = 25 ; For Win32 only. sendmail_from = me@localhost.com ; For Unix only. You may supply arguments as well (default: 'sendmail -t -i'). ;sendmail_path =

A nahradíme tímto:

[mail function] ; For Win32 only. ;SMTP = localhost ;smtp_port = 25 ; For Win32 only. ;sendmail_from = me@localhost.com ; For Unix only. You may supply arguments as well (default: 'sendmail -t -i'). sendmail_path = /usr/sbin/ssmtp -t

Nyní restartujeme náš server:

shutdown -r now

XV. Vzdálená správa - Webmin

Každý správný server musí mít možnost ovládání na dálku. V tomto návodu si nainstalujeme 2 možnosti vzdáleného ovládání, nainstalujeme si vzdálené ovládání přes webový prohlížeč. V další kapitole si nainstalujeme SSH přístup. Nemusíme instalovat obě možnosti, stačí si pouze vybrat, kterou chcete. Ani s jednou neuděláte chybu, pouze verze SSH jede i v tu dobu, kdy je webový server Apache mimo provoz. Začneme tedy instalací webového rozhraní Webmin. Stačí pokračovat v následujících příkazech.

Otevřeme si opět editor a přidáme si repozitář pro Webmin:

nano /etc/apt/sources.list

Na úplný konec tohoto souboru vložíme toto a uložíme:

deb http://download.webmin.com/download/repository sarge contrib

Následně v terminálu pokračujeme zadáváním:

cd /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc
apt-get update
apt-get install webmin

Tímto si zajistíme přístup vždy k nejnovější verzi Webminu a jeho jednoduchou aktualizaci se všemi ostatními programy. Nyní můžete zadat do svého prohlížeče https://mojedomena.tld:10000. Měla by se vám ukázat obrazovka pro přihlášení, případné varování o nebezpečnosti ignorujte. Měli bychom vidět tuto obrazovku:

Login to Webmin

Přihlásit se můžeme platnými údaji, které používáme v systému. Webmin si můžeme přepnout do českého jazyka přes Webmin/Webmin Configuration/Language, nalistováním Czech a potvrzením. Ovládání je pak hračkou.

Webmin úvodní obrazovka

XVI. Vzdálená správa - SSH

Vzdálená správa přes SSH je takovým standardem, má ho nainstalovaný asi každý linuxový server. Nejlepším je, že nejste omezeni operačním systémem, ze kterého se připojujete - Windows, Linux, Mac i mobile systémy. Zatím jsem důkladně zkoumal pouze připojení Windows -> Linux server, uživatelé ostatních systémů si určitě nějak poradí. Pokud ne, tak se ozvěte v komentářích a já to vymyslím a dopíšu. Musíme si nainstalovat tzv. SSH server, ten opět nakonfigurovat a poté se připojit klientem z Windows. Ověření zde nebude probíhat pomocí hesla, ale pomocí klíče, což je mnohem bezpečnější. Při ověřování heslem se posílá heslo přes internet (tedy potencionální bezpečností hrozba), ovšem při ověřování klíčem se klíč pomocí hesla rozšifruje na klientské stanici a rozšifrovaný klíč se porovná se speciálním klíčem na serveru. Neposílá se tedy žádné heslo, nic podobného. Začneme instalací OpenSSH přes námi známou obrazovku:

tasksel

K instalaci označíme mezerníkem položku OpenSSH server:

Nastavení balíků - Výběr programů

Nejprve si vytvoříme zálohu z konfiguračního souboru:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak

Teď začneme editovat a nastavovat samotný SSH server (démon):

nano /etc/ssh/sshd_config

V žádném případě si, prosím, nespleťte sshdssh. Samotným ssh bychom toho moc nenastavili.

Ve výchozím nastavení čeká SSH server 120 vteřin (2 minuty) na přihlášení. Tento čas doporučuji radikálně snížit na půl minuty, tedy 30 vteřin. Toho docílíme upravením LoginGraceTime 120 na LoginGraceTime 30. Nyní se mohou přihlásit všichni uživatelé, tuto možnost bychom měli v rámci bezpečnosti omezit pouze na nezbytné uživatele, stačí na konec souboru vložit následující řádek AllowUsers spravce. Tímto jsme povolili přístup pouze uživateli spravce, kterého jsme si vytvořili při instalaci. Další uživatele oddělujte mezerou. Doporučuji také zakázat vzdálené přihlášení uživatele root upravením PermitRootLogin yes na PermitRootLogin no. Volitelně si můžete změnit port, na kterém SSH server naslouchá (výchozí je port 22). Ovšem mnoho útočníků toho využívá a snaží se tento port různě zahltit a bombardovat jej. Port naslouchání změníme úpravou řádky na tuto Port 2224. Tímto bychom měli základ vzdáleného SSH serveru hotový, ovšem budeme pokračovat i v detailech.

Autentifikace pomocí veřejného klíče není složitá na nastavení, spíše bych řekl pouze velmi zdlouhavá. Začneme vytvořením klíče pod normálním uživatelem:

exit

A znovu se přihlásíme pod uživatelem spravce a pokračujeme:

ssh-keygen -t rsa -b 4096

Budete vyzváni k vybrání umístění klíče, ponechte výchozí umístění, dále budete požádáni o zadání passphrase, jde o takové heslo k tomuto klíči, takže nešetřete na složitosti. Vytvoří se nám 2 klíče - id_rsaid_rsa.pub. Nyní náš klíč trochu upravíme a překopírujeme. Musíme se nejprve dostat do patřičného adresáře:

cd /home/spravce/.ssh

A budeme kopírovat klíč:

cat id_rsa.pub >> authorized_keys

Nastavíme oprávnění pro soubor (jen uživatel bude mít přístup):

chmod 700 authorized_keys

Nyní se musíme přihlásit jako root, abychom mohli nastavit SSH server tak, aby nám klíče přijímal.

sudo su
nano /etc/ssh/sshd_config

Odkomentujeme tyto 3 řády (smažeme křížek a mezeru):

RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys

Nyní restartujeme SSH server:

/etc/init.d/ssh restart

Pro připojení k serveru budeme potřebovat program PuTTYPuTTYgen, který nám převede linuxový klíč na windowsácký. Nyní musíme dostat klíč id_rsa do klientského počítače pravděpodobně s OS Windows. Jako nejjednodušší cestu, kterou bych zvolil, je přihlásit se pomocí Webmin a přes souborového manažera daný klíč stáhnout (najdeme ho v /home/spravce/.ssh/id_rsa), pro další možnosti stažení klíče se ptejte v komentářích. Nyní musíme klíč zkonvertovat z linuxového na windowsácký. Spustíme program PuTTYgen, klíč importujeme a uložíme pomocí Save private key. Nyní spustíme program PuTTY, kde vyplníme IP adresu našeho serveru (můžeme ji zjistit příkazem ifconfig -a). Vyplníme port, který jsme si dříve nastavili. Vlevo klikneme na SSH, vybereme Auth a přiložíme náš privátní klíč. Vše zakončíme kliknutím na Open. Teď by se program měl zeptat na přihlašovací jméno a poté na passphrase a následně nás přihlásit. Je-li vše v pořádku, odhlásíme se pomocí exit, okno zavřeme a budeme pokračovat dále na serveru.

Zakážeme přihlašování pomocí hesla, vynutíme si protokol verze 2 a vypneme pár doplňků, které nevyužijeme:

nano /etc/ssh/sshd_config

Upravíme takto:

PasswordAuthentication no Protocol 2 AllowTcpForwarding no X11Forwarding no

Tímto bychom měli vzdálenou správu vyřešenou. Pro přenos souborů přes SSH můžeme použít program WinSCP (program se nastavuje obdobně jako PuTTY). Můžeme opět restartovat počítač:

shutdown -r now

XVII. Firewall - základní nastavení iptables

Firewall v linuxu není potřeba instalovat, k nejen tomuto účelu slouží velmi mocný nástroj IP TABLES. Abychom zcela pochopili, jak tohoto nástroje využít, potřebovali bychom hodně času. Stačí zadat těchto několik příkazů a měli byste mít takový základní firewall hotov.

/sbin/iptables -F INPUT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED -i eth0 -p icmp
/sbin/iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED -i eth0 -p tcp
/sbin/iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED -i eth0 -p udp
/sbin/iptables -A INPUT -p tcp --dport 2224 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/sbin/iptables -A INPUT -p icmp -j ACCEPT
/sbin/iptables -A INPUT -m limit --limit 3/second --limit-burst 5 -i ! lo -j LOG
/sbin/iptables -A INPUT -i ! lo -j DROP

XVIII. Obarvení příkazového řádku a bootovací obrazovky - volitelně

Pro přehlednost a pohodlnost (a také pro lepší vzhled) si můžeme obarvit výstup bootovací obrazovky a zpřehlednit příkazy v terminálu. Výsledek opravdu stojí za to, to mi věřte.

cp /boot/grub/menu.lst /boot/grub/menu.lst_bak
nano /boot/grub/menu.lst

Najdeme si kernel, který nyní bootujeme, hledáme toto:

kernel /boot/vmlinuz-2.6.24-19-server blablabla....

Na konci tohoto řádku najdeme slovo splash, toto slovo smažeme a nahradíme ho vga=xxx, kde si za xxx dosadíte čísla z této tabulky, číslo 791 by mělo být takové univerzální. Dále si v tomto souboru najdeme toto:

# Pretty colours #color cyan/blue white/blue

Odkomentujeme pouze řádek začínající slovem color, tedy color cyan/blue white/blue. Nezapomene uložit.

Stáhněte si upravený lsb-base-logging.sh a nechte si ho třeba v /home/spravce/. Potom pokračujte:

cp /etc/lsb-base-logging.sh /etc/lsb-base-logging.sh_bak
tar xvfj lsb-base-logging.sh.tar.bz2
chown spravce:spravce lsb-base-logging.sh
cp lsb-base-logging.sh /etc/lsb-base-logging.sh

A teď si doobarvíme zbytek terminálu:

cp /home/spravce/.bashrc /home/spravce/.bashrc_bak
nano /home/spravce/.bashrc

Najdeme tuto část:

# set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color) color_promt=yes;; esac # Uncomment this below for a color prompt #force_color_promt=yes

A upravíme ji takto:

# set a fancy prompt (non-color, unless we know we "want" color) #case "$TERM" in # xterm-color) color_promt=yes;; #esac # Uncomment this below for a color prompt force_color_promt=yes

Nyní již máme s obarvováním hotovo, stačí restartovat server a můžeme se kochat barevným terminálem.

Barevný terminál

XIX. Záloha a případné obnovení systému

Už jsme skoro na konci našeho návodu. Většina lidí nezálohuje vůbec, někteří zálohují jen opravdu důležitá data a někteří zálohují vše. Na serveru bychom měli zálohovat podle uvážení, ale zálohovat bychom měli určitě. Předejdeme tak v případě nějakého problému bezesným nocím a vzteku, že nemáme žádnou zálohu. Před nasazením našeho serveru provedeme kompletní jednoduchou zálohu systému. Před zapsáním následujících příkazů povytahujte ze serveru různá zařízení jako jsou CD v mechanice, flash disky, apod. Vše opět provádíme pod rootem jako většinu příkazů v tomto návodu.

cd /
tar cvzf /backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/media --exclude=/sys --exclude=/backup.tgz /

Tímto nám v kořenovém adresáři / vznikne jeden veliký soubor backup.tgz, který doporučuji přemístit přes síť na jiný počítač a poté vypálit na médium, a nebo si ho klidně nechte tam, kde je. Záloha systému bude trvat pěkně dlouho, takže si uvařte čaj, mrkněte na televizi nebo si běžte zdřímnout. Ke konci procesu se může objevit zpráva tar: Error exit delayed from previous errors nebo něco podobného, tuto zprávu můžete většinou ignorovat.

Popíšu tady, jak obnovit server z této zálohy za chodu systému při vzniknutí nějakého závažného problému, který takto důslednou obnovu potřebuje. Systém po této obnově nemusí být plně funkční. Pokud máte možnost provést obnovu serveru z jiného systému (Ubuntu liveCD), využijte ji. Předpokládám, že náš soubor se zálohou je v kořenovém adresáři. Obnovu musíme provést opět pod rootem:

cd /
tar xvz --same-owner -f backup.tgz -C /
mkdir /proc
mkdir /lost+found
mkdir /mnt
mkdir /sys
mkdir /media

Pokud chcete obnovit server z jiného systému (velmi doporučeno!), nabootujte Ubuntu LiveCD, spusťte si terminál a zadejte následující příkazy:

sudo su
mkdir /media/ubuntu
mount /dev/sdb1 /media/ubuntu

Samozřejmě nahraďte /dev/sdb1 pravým názvem vašeho oddílu, který zjistíte příkazem:

fdisk -l

Pokračujeme dále v obnově:

cd /media/ubuntu
tar xvz --same-owner -f backup.tgz
mkdir /media/ubuntu/proc
mkdir /media/ubuntu/lost+found
mkdir /media/ubuntu/mnt
mkdir /media/ubuntu/sys
mkdir /media/ubuntu/media

Tato sada příkazů vám přepíše každý soubor na oddílu souborem ze zálohy. Obnova bude také trvat dlouhou dobu. Poté restartujte systém a server by měl najet ve stavu, v jakém byl při provádení zálohy. Pokud jste obnovovali systém na jiný disk (například disk odešel), možná budete muset ještě nainstalovat na tento disk GRUB (zavaděč systému).

Zálohu celého serveru máme, dále pravidelně zálohujte /var/www/ a MySQL přes phpMyAdmin do externího souboru.

XX. Dokončení

Tímto se blížíme k samotnému závěru naší instalace serveru. Doufám, že jsem vám představil a názorně ukázal, jak si můžete takový malý linuxový server postavit. Jak je vidět, není to nic těžkého, jen je potřeba umět anglicky, zapojit hlavu a mít fůru času. Nyní již jen doděláme pár drobností.

Zkontrolujeme aktualizace:

apt-get update
apt-get upgrade

Vzpomínáte si, jak jsme si kdesi na začátku připravovali soubory se síťovým nastavením? Až budete připraveni server přemístit, tak než ho odpojíte, spusťte následující řádky:

cp /etc/network/interfaces /etc/network/interfaces_bak
cp /etc/resolv.conf /etc/resolv.conf_bak
cp /etc/network/interfaces_new /etc/network/interfaces
cp /etc/resolv.conf_new /etc/resolv.conf

Tímto jsme se dostali opravdu na úplný závěr, mohu vám pouze doporučit několik rad. Pravidelně aktualizujte aplikace na serveru a kontrolujte logy (třeba přes Webmin nebo přímo v /var/log/). O server se musíte starat, a pokud vám přijde terminál jako španělská vesnice, tak nevěste hlavu, také mi to tak kdysi připadalo, ale postupem času se člověk zorientuje, pro začátek doporučím "Kouzlo příkazové řádky".

print Formát pro tisk

Komentáře rss


Strana:  1 2   další »
avatar -
tasksel
odpovědět

krok číslo 9, ked zadám do príkazového riadku tasksel tak sa nič nestane a rovno mi hodí další príkazový riadok, čo mám teraz robiť prosím? a ešte ak namiesto pevnej IP chcem nastaviť DHCP tak ako to mám nastaviť..

ďakujem

avataricon
odpověděl(a)

Pokud ti tasksel nefunguje, je možné, že ti chybí ->
apt-get install tasksel

Pro nastavení serveru na DHCP (velmi nedoporučeno) stačí zaměnit:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-server 208.67.222.222

za
# The primary network interface
auto eth0
iface eth0 inet dhcp


avatar -
už existujuca IP
odpovědět

Ahojte, keď si chcem zadávať vlastnú už určenú IPčku keďže správca je niekto iný a chcem sa pripojiť na neho lebo mám už aj ja u neho zadanú istú IP ako to mám spraviť?

Vopred ďakujem za odpoveď

avataricon
odpověděl(a)

Nevím přesně, co máš na mysli. Pokud máš od svého správce nějaké síťové údaje, tak je vyplň v bodě VI. V tomto kroku se nastavuje síťové rozhraní.


avatar -
Linux Debian 5
odpovědět

Ahoj chtel bych se zeptat. Mam na servru Linux Debian 5 a jsem uplny zacatecnik. Na servr se pripojim prez webmin a to je asi tak vsechno co umim. Tak se chci zeptet jestli sem neplanujes dat dalsi navod treba jak vytvorit na servru misto pro www stranky. Stahnul jsem si program IspCPOmega a jsem opravdu asi debil protoze ho tam neumim nahrat prez webmin ,za odpoved Ti dopredu dekuji.

avataricon
odpověděl(a)

Tento návod nejde použít jako copy&paste pro Debian, musíš si některé věci odvodit a jiné udělat trochu jinak. Pokud jsi tedy začátečník, tak udělej vše, podle tohoto návodu (Ubuntu 8.04.3) a budeš mít vše připravené pro web. Internetové stránky se pak nahrávají do /var/www. IspCPOmega by měl být takový hostingový panel, pokud mě paměť nešálí, nejdříve bych ale v tvém případě vyřešil samotnou instalaci serveru a až potom nějaký program pro hosting (pro hosting ve větším měřítku tento návod postrádá několik věcí, toto je především základ osobního hostingu nebo pro začátečníky)


avatar -
Linux Debian 5
odpovědět

Ahoj chtel bych se zeptat pude tento navod pouzit na linux Debian 5 ve
virtualnim stroji napr VMware.

avataricon
odpověděl(a)

Pro Debian Lenny 5 návod jde použít, jen je potřeba počítat s tím, že některé věci jsou v Debianu jiné, takže návod si budeš muset přizpůsobit podmínkám Debianu, ale většina věcí je téměř stejných.


avatar -
odkazy na stahování
odpovědět

odkazy na stahování iso souborů jsou na desktopové instalace !! Stáhnul jsem z obou odkazů a je to ubuntu-8.04.3-desktop-i386.iso. Atd. vše desktop

avataricon
odpověděl(a)

Omlouvám se, ano, chyba byla v odkazech na stáhnutí. Nyní je již odkaz opraven, ale divím se, že si této chybičky někdo nevšiml dříve.


avatar -
Problém
odpovědět

Zdravim, mam problem hned pri instalaci,stahl jsem verzi ubuntu, kterou zde uvadite,ale postup instalace se vubec nevyviji podle vasi predlohy.vubec se mi nezobrazi moznost "instalovat ubuntu server".

avataricon
odpověděl(a)

Omlouvám se, byla chyba v odkazech na stáhnutí, stáhněte si prosím ISO obraz znovu.


avatar -
Samba-OpenVpn
odpovědět

Pomohlo by mi kdyby do instalace byla zahrnuta samba server a OpenVpn otevřeno přez internet, zabezpečeno SSH přez certifikaty. Bylo by to celkem dobře použitelné u někoho na návštěvě ze svým NB a možností kdykoli nakouknout do rodinného videoarchívu i na to co zrovna není na NB.

avataricon
odpověděl(a)

Tady se už ovšem ale začínáme vzdalovat od původního plánu - jednoduchý webserver se základními věcmi, které jsou potřeba. Samba server a OpenVPN mi sem stále nesedí, samostatně o tom něco zřejmě napíšu.

Jinak SSH je zde v článku zabezpečeno certifikáty.


avatar -
-
odpovědět

Mohu se zeptat proč tedy nepoužíváte ispconfig 3 ?

Není složitý nastavení, a dle návodu se dá nastavit rychle. Ale pro někoho to může být složité, dostane server s DNS,Antivir , e-mail , Spam , atd. Lamp jsem nikdy nezkoušel a tak nemohu posoudit co je lepší.

A proč to píšu, ispconfig 3 už má nastavené Postfix automaticky , příjem e-mailu stačí zadat mail.neco.tld A 3600 IP a neco.tld A 3600 IP poslední záznám MX @ 3600 10 mail.neco.tld

avataricon
odpověděl(a)

Osobně jsem toto řešení ani nezkoušel. Momentálně si programuji asi něco podobného v PHP. Mimo to, stále tady odpovídám, že pro správnou funkci emailu je potřeba si nechat zřídit reverzní DNS záznam ke své IP adrese, proto jsem to v tomto návodu zjednodušil.


avatar -
nefunkční SSH
odpovědět

Dobrý den, návod je výborný, zkouším podlě něj rozjet malý servřík, ale narazil jsem na problém s přihlášením přes SSH.
Nechal jsem si v nastavení připojení jen přes heslo a pokud se přihlašuji z vnitřní sítě je vše ok. Pokud se však chci připojit z "venku", nedokážu se k serveru připojit.
Dodám jen, že mám nastaveno na routeru NAT tak, abych se konektil k serveru a ne k routeru:)...
Taky mám problém s překladem IP adres, ale to zřejmě nebude ten problém terý mi brání se připojovat z venku..

avataricon
odpověděl(a)

Doporučuji zkontrolovat, zda máte na routeru nastaven forward portu 2224, který jsem v návodu použil jako port SSH, výchozí port je 22 a některá zařízení mají už v základu tato nastavení pro výběr, aby uživatel nemusel nad ničím dlouho přemýšlet. Jinak o jaký se jedná router a jak ho máte přesně nastaven? Pokusím se najít nějaké řešení. Jinak server dostává přidělenou IP ze serveru DHCP nebo jsou na routeru nastaveny IP staticky?


avatar -
odpověděl(a)

Díky za reakci:).. Problém jsem vyřešil, měl jsem špatně nakonfigurované síťové rozhraní. Problém způsoboval řádek dns-server v konfiguráku /etc/network/interfaces...


avatar -
login
odpovědět

Dobrý den nainstaloval jsem si server ubuntu a po dokončení instalace jak mám zadat login a heslo tak se vyskytne problém. Login normálně napíšu a když přejdu k zadání hesla tak nejde nic psát klávesnice je skoro mrtvá (caps lock num a enter normálně jedou). Toto mi bráni k napsání hesla tak prosím o pomoc pro někoho to může být banalita, ale mě to docela štve ......díky

avatar -
odpověděl(a)

vše vyřešeno 4


avataricon
odpověděl(a)

Dobrý den, nechtě mě hádat. Ono se heslo psalo, ale jen to není jako u Windows, že se dělají hvězdičky nebo tečky, že? Toto je známá věc, že lidé si myslí, že klávesnice je mrtvá, ale ono to funguje. Je to kvůli tomu, aby nikdo nemohl zkusit uhádnout heslo na základě počtu znaků, skvělé, ne?


avatar -
IP adresy
odpovědět

Ahoj bezva clanek jen nechapu kde vemu ip adresu a vsechny udaje ktere zadavas na zacatku. Jak si zareistrovat domenu? Predem dekuji a omlouvam se za lamske dotazy.

avataricon
odpověděl(a)

Doménu si můžeš zaregistrovat třeba u Active24 - active24.cz. Pokud jsi připojen k internetu (jakože asi ano), tak máš přidělenou IP - jde jen o to, zda je IP adresa veřejná nebo ne. Pokud není veřejná, tak je potřeba si ji zařídit u poskytovatele (může být zpoplatněna). Všechny údaje zjistíš u poskytovatele internetového připojení nebo u v nastavení svého routeru.



Strana:  1 2   další »