Súborové servery

Ak máme viac ako jeden počítač v sieti, v určitom momente si uvedomíme, že potrebujeme prenášať a zdieľať súbory medzi nimi. V tejto časti si povieme ako sa inštalujú a konfigurujú systémy FTP, NFS, a CUPS.

FTP server

File Transfer Protocol (FTP) je TCP protokol na nahrávanie a sťahovanie súborov medzi počítačmi. FTP pracuje na princípe klient/server. Serverová časť sa volá FTP démon. Tento démon neustále čaká na požiadavky vzdialených FTP klientov. Ak príde požiadavka, riadi prihlásenie a nastavenie spojenia. Počas trvania spojenia vykonáva príkazy odoslané FTP klientom.

Prístup na FTP server môže byť vykonaný dvoma spôsobmi:

  • Anonymne

  • S autentifikáciou

Pri anonymnom móde môžu vzdialení klienti pristupovať k FTP serveru pomocou predvoleného konta z názvom "anonymous" alebo "ftp" a ako heslo použiť svoju emailovú adresu. V móde s prihlásením musí mať každý používateľ svoje konto s heslom. Prístup používateľa k priečinkom FTP servera je riadený podľa prístupových práv definovaných pre konto používateľa. Všeobecným pravidlom je, že FTP démon skryje kmeňový priečinok systému a nahradí ho domovským priečinkom FTP Home. Týmto sa skryje zvyšok súborového systému pred pripojeným používateľom.

Inštalácia FTP Servera - vsftpd

vsftpd je FTP démon dostupný v Ubuntu. Je jednoduché ho nainštalovať, nastaviť a udržiavať. Ak chceme nainštalovať vsftpd, zadáme nasledujúci príkaz:

sudo apt-get install vsftpd

Konfigurácia anonymného FTP

V predvolenom stave je vsftpd nakonfigurované tak, aby umožňovalo len anonymné sťahovanie. Počas inštalácie je vytvorený používateľ ftp s domovským priečinkom /home/ftp. Toto je predvolený FTP priečinok.

Keby sme chceli zmeniť toto umiestnenie napríklad na /srv/ftp, jednoducho vytvoríme priečinok na novom mieste a zmeníme domovský priečinok používateľa ftp:

sudo mkdir /srv/ftp
sudo usermod -d /srv/ftp ftp

Po vykonaní zmien reštartujeme vsftpd:

sudo /etc/init.d/vsftpd restart

Nakoniec do priečinka /srv/ftp nakopírujeme súbory, ktoré majú byť viditeľné pri anonymnom FTP prístupe.

Konfigurácia FTP s autentifikáciou

Ak chceme vsftpd nakonfigurovať tak, aby autentifikoval systémových používateľov a umožnil im nahrávať súbory na server, upravíme súbor /etc/vsftpd.conf:

local_enable=YES
write_enable=YES

Reštartujeme vsftpd:

sudo /etc/init.d/vsftpd restart

Teraz sa môžu používatelia prihlasovať k FTP a po prihlásení sa im zobrazí ich domovský priečinok, v ktorom si môžu súbory sťahovať, nahrávať, vytvárať podpriečinky, atď.

V predvolenom stave anonymný používateľ nemôže nahrávať súbory na FTP server. Ak to chceme zmeniť, stačí odkomentovať nasledujúci riadok a reštartovať vsftpd:

anon_upload_enable=YES
[Warning]

Povolenie nahrávania na FTP server anonymnému používateľovi predstavuje veľké bezpečnostné riziko. Najlepšie je, ak túto možnosť nezapnete na serveroch, ktoré sú dostupné z Internetu.

Konfiguračný súbor obsahuje mnoho ďalších konfiguračných parametrov. Informácie o jednotlivých parametroch sa nachádzajú priamo v konfiguračnom súbore. Druhou možnosťou je pozrieť si ich význam na man stránkach: man 5 vsftpd.conf.

Zabezpečenie FTP

V konfiguračnom súbore /etc/vsftpd.conf sa nachádzajú aj nastavenia, ktoré nám pomôžu vsftpd urobiť bezpečnejším. Napríklad prístup používateľov môžeme obmedziť len na ich domovský priečinok odkomentovaním nastavenia:

chroot_local_user=YES

Používateľov, ktorých chceme takto obmedziť, môžeme vypísať do osobitného súboru:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

Po odkomentovaní predchádzajúceho riadka, vytvoríme súbor /etc/vsftpd.chroot_list tak, že meno každého používateľa zapíšeme na nový riadok. Potom reštartujeme vsftpd:

sudo /etc/init.d/vsftpd restart

Do súboru /etc/ftpusers môžeme zasa napísať zoznam používateľov, ktorým zakážeme FTP prístup. V predvolenom zozname sa nachádzajú aj používatelia root, daemon, nobody, atď. Ak by sme chceli FTP prístup zakázať ďalším používateľom, stačí ich dopísať do zoznamu.

FTP sa dá aj zašifrovať použitím FTPS. Na rozdiel od SFTP je FTPS FTP cez Secure Socket Layer (SSL). SFTP je FTP pripojenie cez šifrované SSH spojenie. Hlavným rozdielom je to že používatelia SFTP musia mať v systéme aj shell konto (konto pre príkazový riadok), namiesto nastavenia nologin (zákaz prihlásenia). Poskytnutie prístupu k príkazovému riadku všetkým používateľom nemusí byť ideálnym riešením pre rozhrania zdieľané cez web.

Ak chceme povoliť FTPS, otvoríme súbor /etc/vsftpd.conf a na jeho koniec pridáme:

ssl_enable=Yes

Tiež bude potrebné upraviť nastavenia certifikátu a kľúča:

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

V predvolenom stave je tento certifikát a kľúč poskytnutý balíkom ssl-cert. V ostrej prevádzke by sme však mali tieto súbory nahradiť certifikátom a kľúčom vygenerovaným pre konkrétnu stanicu. Viac informácií o certifikátoch sa nachádza v časti "Certifikáty".

Teraz reštartujeme vsftpd, a neanonymný používatelia budú nútený použiť FTPS:

sudo /etc/init.d/vsftpd restart

Ak chceme používateľom s príkazovým riadkom /usr/sbin/nologin (zákaz prihlásenia) povoliť prístup k FTP, ale nechceme aby mali prístup k príkazovému riadku, otvoríme súbor /etc/shells a pridáme druh príkazového riadka nologin:

# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/usr/sbin/nologin

Toto je nevyhnutné, pretože vsftpd v predvolenom stave používa na atentifikáciu PAM a konfiguračný súbor /etc/pam.d/vsftpd obsahuje:

auth    required        pam_shells.so

Modul PAM s názvom shells zakazuje prístup k príkazovým riadkom vypísaným v súbore /etc/shells.

Najpopulárnejší FTP klienti sa dajú nakonfigurovať tak, aby sa pripájali pomocou FTPS. Ako klient sa dá tiež použiť príkaz príkazového riadka lftp, ktorý sa tiež pripája cez FTPS.

Zdroje

Sieťový súborový systém NFS

NFS umožňuje zdieľanie priečinkov a súborov s ostatnými systémami v sieti. Pri použití NFS používatelia a programy môžu pristupovať k súborom, ako keby pristupovali k súborom na lokálnom počítači.

Medzi najväčšie výhody, ktoré NFS poskytuje patrí toto:

  • Lokálne stanice môžu použiť menej diskového priestoru, pretože spoločne využívané dáta môžu byť uložené na jednom počítači a všetkým dostupné cez sieť.

  • Nie je potrebné každému používateľovi vytvoriť vlastný domovský priečinok na každej stanici. Domovské priečinky sa môžu nachádzať na NFS serveri a môžu byť dostupné cez sieť.

  • Rôzne zariadenia ako disketové mechaniky, CDROM mechaniky a USB mechaniky môžu byť používané aj ostatnými počítačmi v sieti, čo môže znížiť počet potrebných mechaník pre prenosné média.

Inštalácia

NFS server nainštalujeme tak, že do príkazového riadka zadáme nasledujúci príkaz:

sudo apt-get install nfs-kernel-server

Konfigurácia

Priečinky, ktoré majú byť zdieľané môžeme, pridať do súboru /etc/exports. Napríklad:

/ubuntu  *(ro,sync,no_root_squash)
/home *(rw,sync,no_root_squash)

Znak * môžeme nahradiť maskou názvu staníc. Deklaráciu názvu staníc urobme tak konkrétnu, ako sa len dá, aby neoprávnené systémy nemohli pristupovať k zdieľaným NFS priečinkom.

Po dokončení spustíme NFS server zadaním nasledujúceho príkazu:

sudo /etc/init.d/nfs-kernel-server start

Konfigurácia NFS Clienta

Zdieľaný NFS priečinok z inej stanice pripojíme pomocou príkazu mount, zadaním príkazu, ktorý bude podobný ako tento:

sudo mount menopc.nieco.sk:/ubuntu /local/ubuntu

[Warning]

Cieľový priečinok /local/ubuntu musí existovať. Nemali by v ňom byť žiadne súbory ani podpriečinky.

Iný spôsob, akým sa dajú pripojiť zdieľané NFS priečinky z iných staníc, je pridanie záznamu do súboru /etc/fstab. Riadok musí obsahovať meno stanice NFS servera, zdieľaný priečinok a priečinok na lokálnej stanici, do ktorého sa zdieľaný priečinok má pripojiť.

Všeobecná syntax riadka v súbore /etc/fstab je takáto:

menopc.nieco.sk:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr

Ak sa nám nedarí zdieľaný NFS priečinok pripojiť, uistíme sa, či je na klientskom počítači nainštalovaný balík nfs-common. Balik nfs-common nainštalujeme zadaním nasledujúceho príkazu do príkazového riadka:

sudo apt-get install nfs-common

CUPS - Tlačový server

Hlavný mechanizmus pre tlač a tlačové služby v Ubuntu zabezpečuje Common UNIX Printing System (CUPS). Tento tlačový systém je voľne dostupná, prenositeľná tlačová vrstva, ktorá sa stala novým štandardom pre tlač skoro vo všetkých Linuxových distribúciách.

CUPS spravuje tlačové úlohy a požiadavky a umožňuje sieťovú tlač prostredníctvom štandardného protokolu Internet Printing Protocol (IPP) a ponúka podporu pre široký rozsah tlačiarní od ihličkových až po laserové. CUPS tiež podporuje PostScript Printer Description (PPD), automatickú detekciu sieťových tlačiarní a funkcie pre jednoduchú konfiguráciu cez webové administračné rozhranie

Inštalácia

Ak chceme nainštalovať CUPS na počítač so systémom Ubuntu, použijeme príkaz sudo spolu s príkazom apt-get a pridáme názov balíka, ktorý chceme nainštalovať. Kompletná inštalácia CUPS má mnoho závislostí, ale všetky sa nainštalujú zadaním jedného príkazu. CUPS teda nainštalujeme zadaním príkazu:

sudo apt-get install cupsys

Po autentifikácii heslom používateľa sa balíky stiahnu a nainštalujú. Po skončení inštalácie by sa mal server CUPS automaticky naštartovať.

Ak nastanú problémy, chybové hlásenia servera CUPS si môžeme pozrieť v súbore: /var/log/cups/error_log. Ak súbor záznamov neposkytuje dostatočné informácie pre vyriešenie problému, môžeme zvýšiť podrobnosť záznamov systému CUPS pomocou direktívy LogLevel v konfiguračnom súbore (viď nižšie) z predvolenej hodnoty "info" na "debug" alebo dokonca "debug2", pri ktorom sa bude zaznamenávať všetko. Po vyriešení problému by sme nemali zabudnúť vrátiť pôvodné nastavenie, aby sa súbor so záznamom nestal príliš veľký.

Konfigurácia

Správanie servera CUPS sa konfiguruje prostredníctvom direktív v súbore /etc/cups/cupsd.conf. Konfiguračný súbor systému CUPS má rovnakú sysntax ako hlavný konfiguračný súbory servera Apache, preto používateľom, ktorí poznajú konfiguračný súbor servera Apache, nebude robiť problém ani konfiguračný súbor systému CUPS. Teraz si ukážeme niekoľko základných konfiguračných možností.

[Tip]

Pred úpravou akéhokoľvek konfiguračného súboru by ste si mali vytvoriť kópiu originálneho súboru a nastaviť ho iba na čítanie, aby ste mohli nastavenia porovnať s pôvodnými hodnotami a v prípade potreby ich vrátiť späť.

Vytvorte kópiu súboru /etc/cups/cupsd.conf a nastavte ju iba na čítanie zadaním nasledujúcich príkazov:

sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
sudo chmod a-w /etc/cups/cupsd.conf.original
  • ServerAdmin: Ak chceme zmeniť emailovú adresu administrátora servera CUPS, jednoducho v obľúbenom textovom editore upravíme riadok ServerAdmin v súbore /etc/cups/cupsd.conf na príslušnú hodnotu. Napríklad, ak sme administrátorom servera CUPS a naša emailova adresa je 'jhrasko@nieco.sk', zmeníme riadok ServerAdmin takto:

    ServerAdmin jhrasko@nieco.sk
  • Listen: V predvolenom stave v Ubuntu po inštalácii server CUPS načúva iba na rozhraní spätnej väzby s IP adresou 127.0.0.1. Ak chceme aby server CUPS načúval na IP adrese adaptéra pripojeného k sieti, musíme zadať ku nemu priradené meno stanice alebo IP adresu, alebo voliteľne pár IP adresa/port ako ďalšiu direktívu Listen. Napríklad, ak je server CUPS v lokálnej sieti na počítači s IP adresou 192.168.10.250 a chceme, aby bol prístupný aj pre ostatné počítače v sieti, otvoríme súbor /etc/cups/cupsd.conf a pridáme nasledujúcu Listen direktívu:
    Listen 127.0.0.1:631           # existujúce nastavenie pre spätnú väzbu
    Listen /var/run/cups/cups.sock # existujúce nastavenie pre socket
    Listen 192.168.10.250:631 # nové nastavenie pre LAN rozhranie a port 631 (IPP)

    V predchádzajúcom príklade môžeme zapoznámkovať alebo vymazať nastavenie pre spätnú väzbu (127.0.0.1), ak nechceme, aby cupsd načúval na tomto rozhraní, ale chceme, aby načúval iba na Ethernetovom rozhraní lokálnej siete (LAN). Ak chceme aby načúval na všetkých rozhraniach, ktoré sú na danom počítači, vrátanie zariadenia spätnej väzby Loopback, môžeme vytvoriť záznam Listen s názvom stanice - napríklad socrates:

    Listen socrates:631  # nastavenie pre všetky rozhrania na stanici s názvom 'socrates'

    alebo použitím direktívy Port miesto direktívy Listen:

    Port 631  # Načúva na porte 631 na všetkých rozhraniach

Viac informácií o direktívach konfiguračného súboru servera CUPS si môžeme pozrieť na manuálových stránkach zadaním nasledujúceho príkazu do príkazového riadka:

man cupsd.conf
[Note]

Vždy, keď urobíte zmeny v konfiguračnom súbore /etc/cups/cupsd.conf, je potrebné reštartovať server CUPS zadaním nasledujúceho príkazu:

sudo /etc/init.d/cupsys restart

Webové rozhranie

[Tip]

CUPS sa dá konfigurovať a monitorovať cez webové rozhranie, ktoré je dostupné na adrese http://nazovstanice:631/admin. Webové rozhranie sa dá použiť na vykonanie všetkých správcovských úloh týkajúcich sa tlačiarní.

Aby sme mohli vykonávať správcovské úlohy cez webové rozhranie, musíme mať buď povolené konto používateľa root na serveri alebo sa prihlásiť ako používateľ patriaci do skupiny lpadmin. Kvôli bezpečnosti CUPS odmieta autentifikovať používateľov bez hesla.

Keď chceme pridať používateľa do skupiny lpadmin, spustíme nasledujúci príkaz:

sudo usermod -aG lpadmin menopozivatela

Ďalšia dokumentácia je dostupná z webového rozhranie na karte Documentation/Help.

Zdroje

CUPS Website

Ubuntu Wiki CUPS page