Kategorie
Online teploměr Brno
Aktuální teplota:
Uživatelské menu
Archiv
| « | březen 2010 | » | |||
| Po | 1 | 8 | 15 | 22 | 29 |
| Út | 2 | 9 | 16 | 23 | 30 |
| St | 3 | 10 | 17 | 24 | 31 |
| Čt | 4 | 11 | 18 | 25 | |
| Pá | 5 | 12 | 19 | 26 | |
| So | 6 | 13 | 20 | 27 | |
| Ne | 7 | 14 | 21 | 28 | |
Ostatní
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:
Vyberte do 30 vteřin možnost Čeština a potvrďte entrem, poté zvolte možnost Install Ubuntu server:
Vložte jméno počítače, můj počítač se bude jmenovat server.mojedomena.tld, napíšu tedy server:
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:
Dále vyberte disk, který chcete rozdělit, pokud máte v počítači pouze jeden, tak máte pouze jednu možnost:
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:
Po dokončení formátování disku se začne instalovat 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:
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:
V tomto kroku instalace nevyužijeme nabídnutých balíčků, této možnosti využijeme později, až bude potřeba:
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.
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:
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.
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.
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:
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:
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:
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.
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:
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 sshd s ssh. 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_rsa a id_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 PuTTY a PuTTYgen, 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.
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".
Autor: TomVydáno: 26.6.2009 12:20 Přečteno: 10593x Hodnocení: 1 (hodnoceno 56x) Sdílejte: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
Vaše hodnocení: |
Pomohl (by) vám tento návod?
|

































Formát pro tisk
Komentáře
tasksel
(3.2.2010 21:46) 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
odpověděl(a)
(8.2.2010 22:52)
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
už existujuca IP
(3.2.2010 19:23) 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ď
odpověděl(a)
(8.2.2010 22:56)
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í.
Linux Debian 5
(10.1.2010 13:55) 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.
odpověděl(a)
(11.1.2010 15:37)
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)
Linux Debian 5
(8.1.2010 18:47) odpovědět
Ahoj chtel bych se zeptat pude tento navod pouzit na linux Debian 5 ve
virtualnim stroji napr VMware.
odpověděl(a)
(8.1.2010 23:06)
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.
odkazy na stahování
(3.1.2010 16:47) 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
odpověděl(a)
(6.1.2010 10:09)
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.
Problém
(1.1.2010 22:43) 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".
odpověděl(a)
(6.1.2010 10:07)
Omlouvám se, byla chyba v odkazech na stáhnutí, stáhněte si prosím ISO obraz znovu.
Samba-OpenVpn
(30.11.2009 14:17) 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.
odpověděl(a)
(17.12.2009 23:26)
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.
-
(21.11.2009 5:37) 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
odpověděl(a)
(27.11.2009 15:42)
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.
nefunkční SSH
(12.11.2009 17:47) 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..
odpověděl(a)
(13.11.2009 18:50)
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?
odpověděl(a)
(16.11.2009 8:58)
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...
login
(10.11.2009 14:24) 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
odpověděl(a)
(10.11.2009 15:45)
vše vyřešeno
odpověděl(a)
(11.11.2009 22:04)
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?
IP adresy
(5.11.2009 13:37) 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.
odpověděl(a)
(5.11.2009 23:34)
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.