8. WebDAV kiszolgáló konfigurálása A WebDAV (Web Distributed Authoring and Versioning) a HTTP protokoll kiterjesztéseként lehetővé teszi a fájl és dokumentum szintű együttműködést a felhasználók között egy webkiszolgálón keresztül. Ezt oly módon éri el, hogy a HTTP hét műveletéhez továbbiakat definiál. A HTTP csak megnevezett erőforrások lekérdezését és egy-az-egyben feltöltését teszi lehetővé. A WebDAV a következő témakörökben újít:
Szöveges metainformáció (properties) hozzáadása/lekérdezése: PROPFIND, PROPPATCH műveletek, illetve néhány XML-elem a név-érték párok számára. Erőforrások gyűjteményekbe (collections) szervezése: gyakorlatilag könyvtárakba szervezett fájlokról van szó. A MKCOL művelet új könyvtárat hoz létre, a COPY és MOVE műveletek másolatot készítenek, illetve átmozgatják a megnevezett erőforrást. Ha meggondoljuk, hogy a HTTP-ben már van GET, PUT és DELETE művelet, akkor FTPszerverünket máris helyettesíthetjük egy HTTP+WebDAV összeállítással. Zárolás (locking): LOCK és UNLOCK műveletek, DAV fejléc, erre a konkurenciakazelés miatt van szükség
Webszervereken lévő mappákat a WebDAV protokoll segítségével megoszthatunk a kliens oldali alkalmazások számára. A megosztást követően ugyanúgy elérhetők lesznek, mintha a helyi gépen lennének: fájlokat lehet feltölteni, letölteni egyetlen egérmozdulattal. Mindezt a HTTP protokollal a 80-as porton keresztül, tetszőlegesen helyileg vagy az Interneten keresztül történhet, ezért gyakorlatilag az összes forgalomszabályozó hálózati eszközön (proxy, tűzfal, útválasztók, stb.) minden különösebb konfiguráció nélkül használható. A fejezetben megismerkedünk a szerver telepítés, konfigurálás és tesztelés alapjaival, valamint teszteljük a kiszolgáló működését a kliens gépről.
8.1. Előkészítés A M0n0wallt úgy állítsuk be, hogy a belső hálózatra csatlakozó interfésze 192.168.1.254/24 IPv4 címmel rendelkezzen, továbbá NAT és DHCP szolgáltatást nyújtson a LAN1 belső hálózat számára. A dinamikusan kiosztott címtartomány a 192.168.1.1-192.168.1.240 legyen. Az LAN1 belső hálózat célja az, hogy a két virtuális gép közvetlenül kapcsolódhasson egymáshoz. Mindkét Ubuntu virtuális gépet úgy konfiguráljuk, hogy egy hálózati interfésszel (eth0) rendelkezzen, és az a LAN1 nevű belső hálózatra csatlakozzon (57. ábra). A belső hálózat célja az lesz, hogy a két virtuális gép közvetlenül kapcsolódhasson egymáshoz. ÁBRA!!!
A szerver gép TCP/IP konfigurációját úgy alakítjuk ki, hogy statikus beállításokat kapjon az alábbiak szerint. IPv4 cím: 192.168.1.1 Hálózati maszk: 255.255.255.0 Alapértelmezett átjáró: 192.168.1.254 Hálózat: 192.168.1.0 Üzenetszórási cím: 192.168.1.255 DNS kiszolgáló: 192.168.1.254 Névkeresési tartomány: kefo.hu A munkaállomás hálózati interfésze (eth0) DHCP protokollal fogadja a beállításokat.
8.2. Telepítés és konfigurálás Az alábbi műveleteket, mindig rendszergazda parancssorban ( sudo -s ) végezzük. Frissítsük az elérhető csomagok listáját $ apt-get update Telepítsük az Apache webkiszolgálót $ apt-get install apache2 –y Készítsünk egy könyvtárat, melyet majd tárterületként használhatunk $ mkdir /var/www/webdav Állítsuk be, hogy a mappa tulajdonosa az Apache felhasználó (www-data) legyen $ chown –R www-data:www-data /var/www/ Engedélyezzük a WebDAV modulokat $ a2enmod dav $ a2enmod dav_fs
Módosítsuk a konfigurációs állományunkat: $ mcedit /etc/apache2/sites-available/000-default.conf Az állomány elejére írjuk be: DavLockDB /var/www/DavLock
Majd a elé: Alias /webdav /var/www/webdav
DAV On
Indítsuk újra az Apache kiszolgálót $ service apache2 restart
Teszteljük a konfigurációt a kliens gépről is, az előtelepített Firefox böngészővel vagy a fájlkezelővel. Firefox: Írjuk be a http://192.168.1.1/webdav/ címet a címsorba, majd üssünk entert. Fájlkezelő: Kapcsolódás kiszolgálóhoz -> dav://192.168.1.1/webdav
Belépés azonosítással $ apt-get install apache2-utils Hozzuk létre a felhasználót és a jelszó fájlt: $ adduser webdavuser (jelszó: 12345) $ usermod –aG sudo webdavuser $ htdigest -c /etc/apache2/users.password webdav webdavuser $ chown www-data:www-data /etc/apache2/users.password
Módosítsuk a konfigurációs állományunkat: $ mcedit /etc/apache2/sites-available/000-default.conf Alias /webdav /var/www/webdav
DAV On AuthType Digest AuthName "webdav" AuthUserFile /etc/apache2/users.password Require valid-user Mentsük el az állományt, majd engedélyezzük a Digest modult: $ a2enmod auth_digest Indítsuk újra az Apache kiszolgálót $ service apache2 restart
Jelszó nélküli tallózáshoz: Hozzunk létre a /var/www/ mappába egy public könyvtárat, majd a konfigurációs állományunkhoz adjuk hozzá az alábbi sorokat: Alias /public /var/www/public
DAV On AuthType None AuthName "public" Require all granted Satisfy Any
Töltsük újra az Apache beállításokat $ service apache2 restart
8.3. Tesztelés Teszteljük a konfigurációt egy parancssoros WebDAV klienssel. Ehhez telepítsük fel a cadaver-t:
$ apt-get install cadaver -y Próbáljuk elérni a helyi WebDAV-ot $ cadaver http://szerverIP/webdav
Böngészőben:
8.4. Vonatkozó irodalomjegyzék 1. Ubuntu documentation https://help.ubuntu.com/community/UsingTheTerminal 2. HowtoForge – linux dokumentum gyűjtemény http://www.howtoforge.com/ 3. Apache http server honlapja http://httpd.apache.org/ 4. WebDAV Resources http://www.webdav.org/
13. FTP kiszolgáló telepítése
A fájlátviteli protokoll (FTP) egy TCP protokoll fájlok számítógépek közti fel- és letöltésére. Az FTP kliens/szerver modell alapján működik. A kiszolgáló összetevőt FTP démonnak hívják. Folyamatosan figyeli a távoli kliensek FTP-kéréseit. Kérés fogadásakor kezeli a bejelentkezést, és létrehozza a kapcsolatot. A munkamenet időtartama alatt végrehajtja az FTP kliens által küldött parancsokat. Az FTP-kiszolgáló elérése kétféleképp kezelhető:
Névtelenül Hitelesítve
Névtelen módban a távoli kliensek az „anonymous” vagy „ftp” nevű alapértelmezett felhasználói fiók használatával, és jelszóként egy e-mail cím küldésével érhetik el az FTPkiszolgálót. Hitelesített módban a felhasználónak rendelkeznie kell fiókkal és jelszóval. Az FTP kiszolgáló könyvtárainak és fájljainak elérése a bejelentkezéshez használt fiók jogosultságaitól függ. Általánosságban az FTP-démon elrejti az FTP-kiszolgáló gyökérkönyvtárát, és az FTP home könyvtárára változtatja. Ez elrejti a fájlrendszer többi részét a távoli munkamenetek elől.
13.1. Előkészítés A M0n0wallt úgy állítsuk be, hogy a belső hálózatra csatlakozó interfésze 192.168.1.254/24 IPv4 címmel rendelkezzen, továbbá NAT és DHCP szolgáltatást nyújtson a LAN1 belső hálózat számára. A dinamikusan kiosztott címtartomány a 192.168.1.1-192.168.1.240 legyen. Az LAN1 belső hálózat célja az, hogy a két virtuális gép közvetlenül kapcsolódhasson egymáshoz. Mindkét Ubuntu virtuális gépet úgy konfiguráljuk, hogy egy hálózati interfésszel (eth0) rendelkezzen, és az a LAN1 nevű belső hálózatra csatlakozzon (57. ábra). A belső hálózat célja az lesz, hogy a két virtuális gép közvetlenül kapcsolódhasson egymáshoz. ÁBRA!!! A szerver gép TCP/IP konfigurációját úgy alakítjuk ki, hogy statikus beállításokat kapjon az alábbiak szerint. IPv4 cím: 192.168.1.1 Hálózati maszk: 255.255.255.0 Alapértelmezett átjáró: 192.168.1.254 Hálózat: 192.168.1.0 Üzenetszórási cím: 192.168.1.255 DNS kiszolgáló: 192.168.1.254 Névkeresési tartomány: kefo.hu A munkaállomás hálózati interfésze (eth0) DHCP protokollal fogadja a beállításokat.
13.2. Telepítés és konfigurálás Telepítsük a csomagot: apt-get install vsftpd Módosítsuk a konfigurációs állományunkat: $ mcedit /etc/vsftpd.conf (23. sor) anonymous_enable=YES A módosítás után indítsa újra a vsftpd démont: service vsftpd restart Ezzel a névtelen (anonymous) felhasználóval lehet FTP-zni. Böngészőben:
FileZilla alkalmazással:
Felhasználókat hitelesítő FTP konfigurálása Módosítsuk a konfigurációs állományunkat: $ mcedit /etc/vsftpd.conf # nincs anonymous bejelentkezés anonymous_enable=NO # helyi felhasználok bejelentkezhetnek local_enable=YES # feltölthetnek a felhasználok write_enable=YES Miután a rendszer felhasználói bejelentkeznek az FTP-re, a saját könyvtáraikba fognak belépni, és onnan tölthetnek le illetve fel, hozhatnak létre könyvtárakat stb.
Próbáljuk ki egy új felhasználóval, vegyünk fel egy ftpuser felhasználót a szerverre is: useradd ftpuser –c „FTP felhasználó” –g users –m –d /home/ftpuser passwd ftpuser Filezilla alkalmazással:
További beállítási lehetőségek Ha azt szeretnénk, hogy az FTP felhasználóink csak a saját tárhelyüket érjék el (tehát ne lássák a másét), akkor a következőt kell módosítani: chroot_local_user=YES chroot_list_enable=NO Ha nem minden felhasználót szeretnénk a saját mappájában tartani, akkor: chroot_local_user=NO chroot_list_enable=YES Majd hozzuk létre a /etc/vsftpd.chroot_list fájlt, amibe írjuk be azokat a felhasználókat, akik nem mehetnek ki a kezdőkönyvtárukból. Ha mindenki kiléphet a kezdőkönyvtárából, kivéve: chroot_local_user=YES chroot_list_enable=YES Majd hozzuk létre a /etc/vsftpd.chroot_list fájlt, amibe írjuk be azoknak a felhasználóknak a nevét, akik kiléphetnek a kezdőkönyvtárból. Felhasználók tiltása, engedélyezése Ha néhány felhasználónak nem szeretnénk engedélyezni az FTP elérést, akkor: userlist_deny=YES userlist_file=/etc/vsftpd.denied_users Majd hozzuk létre a /etc/vsftpd.denied_users fájlt, ahová a kitiltott felhasználókat írhatjuk. Egy felhasználónevet egy sorba írjunk! Ha csak néhány felhasználónak szeretnénk engedélyezni az FTP hozzáférést: userlist_deny=NO userlist_enable=YES userlist_file=/etc/vsftpd.allowed_users Majd a /etc/vsftpd.allowed_users fájlba írjuk be azokat a felhasználókat, akik elérheti az FTP szervert. Azok a felhasználók akik ki vannak tiltva, egy hibaüzenetet kapnak, ha megpróbálnak csatlakozni. Egyéb beállítások Még néhány beállítás, ha akarjuk, módosítsuk, de alapvetően nem szükséges. Látszódjanak a rejtett fájlok (azok, melyeknek neve . – pont – jellel kezdődik):
force_dot_files=YES A fájl információinak elrejtése (tulajdonos, csoport) hide_ids=YES Hányan csatlakozhatnak egy IP címről max_per_ip=5 Hány kliens lehet fent egyszerre a szerveren max_clients=20 Mentsük el a konfigurációs fájlt, majd indítsuk újra a kiszolgálót: /etc/init.d/vsftpd restart
13.1. Vonatkozó irodalomjegyzék https://security.appspot.com/vsftpd.html http://sugo.ubuntu.hu/10.04/html/serverguide/hu/ftp-server.html http://ubuntuforums.org/showthread.php?t=518293