2013. október 18., péntek

proxy squid

83

Ezen  beállítások  után  már  van  két  működő  hálózati  kártyánk  eth0  egy  belső  hálózatra
kapcsolódik, eth1 pedig a fizikai gépünkön keresztül az Internetre.
A  könnyebb  követhetőség  kedvéért  egyszerre  csak  egy  kártyával  foglalkozunk,  közben  a
másikat  letiltjuk.  Telepítésékor  az  eth0  kártyát  tiltjuk  majd  le,  teszteléskor,  vagy  mikor  a
klienssel kívánunk kommunikálni, akkor pedig az eth0 kártyát.
A tiltást az $ ifconfig ethX down az engedélyezést pedig az  $ ifconfig ethX
up parancsokkal végezzük, ahol X a kérdéses kártya száma.

9.1.1. Telepítés Ubuntu serverre
Az alábbi műveleteket, mindig rendszergazda parancssorban ( $ sudo -s ) végezzük.

frissítsük a csomaglistát

$ apt-get update

csomagkezelővel telepítsük a squid csomagot

$ apt-get insatll squid -y

sikeres telepítés után a konfigurálás előtt készítsünk biztonsági másolatot az eredeti fájlról

$ cp /etc/squid3/squid.conf /etc/squid3/squid.conf.original

ezen a ponton már tesztelhető a beállítás az alábbi lépésekkel
engedélyezzük a belső csatolós kártyát

$ ifconfig eth0 up

a desktop  gépen indítsuk  el  a  Firefox böngészőt,  majd a Szerkesztés->Beállíátsok->Haladó
ablak  Hálózat  fülén  a  Kapcsolat  rész  alatt  kattintsunk  a  beállítások  gombra,  és  állítsuk  be
proxykiszolgálónak  a  szervert,  majd  zárjuk  be  a  beállításokat  és  írjunk  be  a  címsorba  egy
tetszőleges címet pl.: www.google.com. Erre egy a proxy serverünk által generált megtagadó
üzenetet kell kapnunk. 9. SQUID proxy szerver konfigurálása
(Kovács Péter)

84

65. ábra.
9.2. Telepítés és konfigurálás
Engedélyezzük a hozzáférést a kliensünk számára, a /etc/squid/squid.conf fájl szerkesztésével

$ nano /etc/squid3/squid.conf

keressük meg a fájlban az acl kezdetű sorokat, és utánuk egy új sorba adjuk hozzá az alábbi
bejegyzést

acl internal_network src 192.168.1.0/24

majd keressük meg a http_access kezdetű sorokat, és ezek elé egy új sorba vegyük fel az
alábbi sort

http_access allow internal_network

Ezen a ponton ismét tesztelhetjük a beállításokat a kliens web böngészőjében, ha mindent jól
csináltunk, akkor eltűnik a tiltó üzenet, ám a weboldal nem jelenik meg, helyette egy DNS
szerver hibát kapunk.

ip

auto eth1
iface eth1 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.253

Mentsük  el  a  konfigurációs  állományt  (Ctrl+O),  és  zárjuk  be  a  szerkesztőt  (Ctrl+X).  A
beállítások  nem  érvényesülnek  automatikusan,  ezért  vagy  az  érintett  interfész
leállítása/újraengedélyezése  (ifdown/ifup)  vagy  a  hálózati  alrendszer  újraindítása
szükséges.  A dinamikusan (DHCP) és  statikusan megadott alapértelmezett átjáróbeállítások
közötti konfliktus elkerülése érdekében a fenti beállítások érvényesítése előtt először állítsuk
le az eth0 interfészt.

$ sudo ifdown eth0

Ennek elmaradása esetén az eth1 újraengedélyezését követően a konfliktust „RTNETLINK
answers:  File  exist”  hibaüzenetet  jelzi.  Mivel  most  csak  a  különböző  beállítási  módokat
szeretnénk  kipróbálni,  ezért  az  eth0  ideiglenes  kikapcsolásával  nem  vesztünk  semmit.  A
beállítások érvényesítése érdekében az eth1 interfészt ki és bekapcsoljuk:

$ sudo ifdown eth1 && sudo ifup eth1

dns / bind

52
Hálózati maszk:  255.255.255.0
Hálózat:  192.168.1.0
Üzenetszórási cím:  192.168.1.255

A munkaállomás eth0 interfészének konfigurációja az alábbi lesz:

IPv4 cím:  192.168.1.2
Hálózati maszk:  255.255.255.0
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ányok:  gyakorlat.gamf.hu gamf.hu kefo.hu
4.2. Telepítés és konfigurálás
A  DNS  kiszolgálóként  a  BIND9  (Berkeley  Internet  Name  Domain)  szoftvert  használjuk.
Ehhez  a  bind9  és  a  dnsutils  csomagokat  kell  telepítenünk.  Elsőként  frissítjük  gépünkön  a
csomag adatbázist, majd telepítjük a csomagokat.

$ sudo apt-get update
$ sudo apt-get install bind9 dnsutils

Telepítés  után  automatikusan  elindul  a  szerver.  Az  alap  konfiguráció  egy  csak  gyorstárazó
szervert ad egy egyszerű konfigurálást követően, a jelen gyakorlatban azonban egy elsődleges
mestert kell létrehoznunk, ezért leállítjuk a kiszolgálót

$ sudo service bind9  stop

majd elkezdhetjük a konfigurálást. A konfigurációs állományok az /etc/bind könyvtárban
vannak. A fontosabb állományok az alábbiak:

named.conf   –  itt  szerepelnek  a  további  konfigurációs  állományok
befűzésére vonatkozó utasítások, tartalmát nem változtatjuk.
named.conf.options   –  itt  állítjuk  be  a  lekérdezés  továbbítást,  rekurzív  lekérdezést,
stb.
named.conf.local   –   itt definiáljuk a zónákat.
db.root   –   gyökérszintű névkiszolgálók listája

Szerverünkkel a következő szolgáltatásokat szeretnénk nyújtani:
  Autoritatív (mérvadó) névfeloldás a saját zóna számára (mester).
  Gyorstárazó (caching) névszolgáltatás a többi domén gépeiről. A gyorstárazó szerver más
kiszolgálóktól szerzi be az információt, és lokálisan (gyorstárban) tárolja azt.
  Rekurzív  lekérdezés  a  saját  alhálózat  rezolverei  által  kezdeményezett  névfeloldási
kéréseknél.  Rekurzív  névfeloldásnál  a  DNS  kiszolgáló  teljes  mértékben  megválaszolja
keresési kérdést vagy hibaüzenetet ad. Ennek alternatívája az iteratív névfeloldás, amikor
a  kiszolgáló  részleges  választ  ad  (az  adott  zónához  közelebbi  felelős  DNS  kiszolgáló
címe). Pl. ha a www.iit.uni-miskolc.hu IPv4 címét keressük egy külső hálózat névszervere
segítségével, akkor, ha az adott kiszolgáló rekurzívra van konfigurálva, akkor visszaküldi
rezolverünknek  a  célgép  címét,  egyébként  pedig  rezolverünk  visszakapja  az  uni-Johanyák Zsolt Csaba, Kovács Péter, Göcs László: Linux hálózati adminisztráció a gyakorlatban

53
miskolc.hu  névkiszolgálójának  címét.  Ez  utóbbi  esetben  gépünk  rezolvere  fog  további
kérést küldeni az uni-miskolc.hu névkiszolgálójához.

Első  lépésként  a  /etc/bind/named.conf.options  állományban  szükséges
módosításokat, beállításokat készítjük el. Ehhez nyissuk meg szerkesztésre az állományt.

$ sudo nano /etc/bind/named.conf.options

A kéréstovábbítás beállításához vegyük ki megjegyzésből a forwarders blokkot, és adjuk
meg a névszervereink azonosítóit.

forwarders{
  10.1.51.23;
  10.1.51.25;
};

Itt megadtuk, hogy hova továbbítsa a DNS szerver azokat a névfeloldási kéréseket, amelyeket
nem tudott kiszolgálni a saját adatbázisa alapján. Mentsük el az állományt. Amennyiben nem
a főiskolai hálózatban hajtjuk végre a jelen gyakorlatot, akkor ez a lépés elhagyható. Ilyenkor
az  általunk  konfigurált  névszerver  a  rekurzív  névfeloldási  folyamat  során  közvetlenül  a
gyökérszintű névkiszolgálóknál kezdi a keresést.

A  rekurzív  névfeloldás  engedélyezése  érdekében  a  forwarders  blokkot  követően
helyezzük el a

recursion yes;

bejegyzést,  majd  szabályozzuk,  hogy  mely  gépek  vehetik  igénybe  a  névszolgáltatást  és  a
rekurzív névfeloldást az alábbi sorokkal

allow-query { belso; };
allow-recursion { belso; };

A  belso  egy  címke,  aminek  definiálásához  az  options  blokkot  követően  egy  külön
blokkot hozunk létre, amiben a helyi gépet és a saját alhálózatot nevezzük meg.

acl belso {
  127.0.0.1;
  192.168.1.0/24;
};

Mivel IPv6 hálózatunk nincs ezért a

listen-on-v6 { any; };

sort tegyük megjegyzésbe (//).

A  gamf.hu  alatt  hozzuk  létre  saját  zónánkat  gyakorlat.gamf.hu  néven.  A
névfeloldási zóna mellett címfeloldási zónát (1.168.192.in-addr.arpa) is készítünk. 4. DNS szerver telepítése és beállítása
(Johanyák Zsolt Csaba)

54
Mindkettő mester (master) zóna lesz. A zónák deklarálásához nyissuk meg szerkesztésre a
/etc/bind/named.conf.local állományt.

$sudo nano /etc/bind/named.conf.local

Az állomány végére begépeljük a két zóna definícióját:

zone "gyakorlat.gamf.hu" {
    type master;
    file "/etc/bind/gyakorlat.gamf.hu";
};

zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/1.168.192";
};

Elmentjük  az  állományt,  majd  létrehozzuk  először  a  névfeloldáshoz  szükséges  zónafájt.
Kiindulásként  (mintaként)  használhatjuk  a  db.local  állományt  vagy  létrehozhatunk  egy
teljesen üres állományt is a

$ sudo nano /etc/bind/gyakorlat.gamf.hu

paranccsal. Begépeljük az alábbiakat:

$TTL 604800
@  IN  SOA  9-szerver.gyakorlat.gamf.hu.  
hallgato.9-szerver.gyakorlat.gamf.hu. (
            1  ; Sorszám
       604800  ; Frissítés
        86400  ; Újrapróbálkozás
      3600000  ; Lejárat
      2419200 ) ; Negatív gyorstárazási idő
;
@  IN  NS  9-szerver.gyakorlat.gamf.hu.
9-szerver  IN A  192.168.1.254
belzebub  IN A  192.168.1.2
posta  IN CNAME  9-szerver

A  fentiekben  szereplő  második  és  harmadik  sor  az  állományban  egyetlen  sorként  kell
szerepeljen, és a hallgato előtt szóköz vagy tabulátor jel kell álljon! Az utolsó sor után
nyomjuk meg az Enter billentyűt, ugyanis az állomány végén újsor jel kell álljon.
Magyarázat:
  TTL (sec): a zóna rekordjaira érvényes alapértelmezett elavulási idő (Time To Live)
  SOA (Start Of Authority) rekord: tartalmazza a névkiszolgáló FQDN-jét
(9-szerver.gyakorlat.gamf.hu.)  ponttal  lezárva,  a  levelezésért  felelős
felhasználó postafiók címét úgy, hogy a @ jelet ponttal helyettesítjük
(hallgato.9-szerver.gyakorlat.gamf.hu.)  és  az  alábbi  érvényességi
időadatokat. Johanyák Zsolt Csaba, Kovács Péter, Göcs László: Linux hálózati adminisztráció a gyakorlatban

55
  Sorszám: hányadik változata ez a zónaállománynak, ennek alapján tudják beazonosítani a
slave szerverek, hogy történt-e módosítás a zónaállományban.
  Frissítés (sec): mennyi időnként kell a slave szervereknek a master-től megkérdezni, hogy
a zóna sorszáma mennyi.
  Újrapróbálkozás (sec): ha a frissítés nem sikerült, akkor a slave ennyi időt vár, mielőtt
újra próbálkozik.
  Lejárat (sec): ha nem sikerül a master-rel kommunikálniuk, ennyi ideig szolgáltatják a
zónát a világ számára
  Használható a 1W2D3H alak is

Úgy a szerver (9-szerver), mint az asztali (belzebub) operációs rendszerrel futó virtuális gépet
felvettük,  valamint  készítettünk  egy  álnevet  (posta)  is  a  szervernek.  Mentsük  el  a
gyakorlat.gamf.hu  állományt,  majd  hozzuk  létre  az  inverz  feloldáshoz
(címfeloldáshoz)  szükséges  /etc/bind/1.168.192  zónafájlt.  Itt  sablonként
használhatjuk  a  db.127 állományt. A jelen  gyakorlat  során  az üres  állomány létrehozását
választjuk

$ sudo nano /etc/bind/1.168.192

majd begépeljük az alábbi konfigurációt

$TTL 604800
@  IN  SOA  9-szerver.gyakorlat.gamf.hu.
hallgato.9-szerver.gyakorlat.gamf.hu. (
            1  ; Sorszám
       604800  ; Frissítés
        86400  ; Újrapróbálkozás
      2419200  ; Lejárat
       604800 ) ; Negatív gyorstárazási idő
;
@  IN  NS  9-szerver.gyakorlat.gamf.hu.
254  IN  PTR  9-szerver
2  IN  PTR  belzebub

A  fentiekben  szereplő  második  és  harmadik  sor  az  állományban  egyetlen  sorként  kell
szerepeljen, és a hallgato előtt szóköz vagy tabulátor jel kell álljon! Az utolsó sor után
nyomjuk meg az Enter billentyűt, ugyanis az állomány végén újsor jel kell álljon. Mentsük el
a 1.168.192 állományt.

A  zónafájlok  létrehozását  követően  a  helyi  gépet  (127.0.0.1)  kell  beállítanunk  DNS
szerverként. Ennek érdekében az /etc/network/interfaces állományban a

dns-nameservers 10.1.51.23

sort lecseréljük az alábbi sorra

dns-nameservers 127.0.0.1

majd újraindítjuk a hálózati alrendszert 4. DNS szerver telepítése és beállítása
(Johanyák Zsolt Csaba)

56

$ sudo /etc/init.d/networking restart

A DNS kiszolgáló alapból IPv6-on próbálkozik a névfeloldással. Mivel csak IPv4 hálózatunk
van  a  szerver  indítási  opciói  között  ezt  jeleznünk  kell  az  /etc/defaults/bind9
állományban. Nyissuk meg szerkesztésre az állományt:

$ sudo /etc/defaults/bind9

és egészítsük ki az OPTIONS sort a -4 kapcsolóval az alábbiakban megfelelően:

OPTIONS=”-u bind -4”
4.3. Tesztelés
A névkiszolgálót az előtérben futtatva teszteljük:

$ sudo named –g -4

Amennyiben  a  megjelenő  egyoldalas  outputban  rndc.key:  permission  denied
hibaüzenet  jelenik  meg,  akkor  gondoskodjunk  arról,  hogy  az  rndc.key  állomány
tulajdonosa  legyen  a  root  felhasználó  és  csoportja  legyen  a  bind  csoport,  valamint  a
hozzáférési engedélyek legyenek a következők szerint beállítva: - rw- -r- ---. Amikor
a kiszolgáló hibamentesen elindul, akkor váltsunk át egy új terminálra, jelentkezzünk ott be,
majd teszteljük a szerver működését az név- és címfeloldási lekérdezésekkel úgy a helyi zóna
gépei, mint távoli gépek esetén.

$ host 9-szerver.gyakorlat.gamf.hu
$ host belzebub
$ host posta
$ host 192.168.1.2
$ host 192.168.1.254
$ nslookup ubuntu.hu
$ nslookup kefodok

Teszteljük  a  szerver  működését  a  munkaállomás  gépről  is  a  fenti  vagy  hasonló
lekérdezésekkel.  Amennyiben  kiszolgálónk  hibamentesen  működik,  akkor  váltsunk  arra  a
terminálra, ahol elindítottuk a névszervert, majd állítsuk le azt Ctrl+C-vel. Végül indítsuk a
szolgáltatást tartós használatra a

$ sudo service bind9 start

paranccsal.  Indítsuk  újra  a  virtuális  gépet,  majd  a  bejelentkezést  követően  ellenőrizzük  a
kiszolgáló működési állapotát pl. a

$ service bind9 status

dhcp

60
Hálózati maszk:  255.255.255.0
Hálózat:  192.168.1.0
Üzenetszórási cím:  192.168.1.255

Az Ubuntu Desktop munkaállomás (neve legyen belzebub) eth0 interfészét úgy állítjuk be
hogy DHCP-vel fogadja a beállításokat. A Windows 7 munkaállomás Helyi kapcsolat
interfészét úgy állítjuk be hogy DHCP-vel fogadja a beállításokat.
5.2. Telepítés és konfigurálás
Az  alábbi  beállításokat  a  szerver  virtuális  gépen  kell  végrehajtani.  Elsőként  frissítjük
gépünkön a csomag adatbázist, majd telepítjük a kiszolgálót.

$ sudo apt-get update
$ sudo apt-get install isc-dhcp-server

A telepítő megkísérli elindítani a kiszolgálót, de az a megfelelő konfigurálás hiányában nem
fog működni. Kiszolgálónktól az alábbi konfigurációs adatok nyújtását várjuk el (zárójelben a
konfigurációnál használt kulcsszó szerepel):
  Kiszolgálónk felelős a szolgáltatással megcélzott alhálózatért (authoritative).
  Nem támogatott a dinamikus DNS frissítés (ddns-update-style).
  A DNS tartomány: gamf.hu (option domain-name).
  Két DNS kiszolgálónk címe: 10.1.51.23, 10.1.51.25
(option domain-name-servers).
  Az üzenetszórási cím a kiszolgált alhálózatban: 192.168.1.255
(option broadcast-address).
  Az alapértelmezett átjáró: 192.168.1.254 (option routers).
  Az alhálózati maszk: 255.255.255.0 (option subnet-mask).
  Az alapértelmezett bérleti idő: 10 perc (default-lease-time).
  Maximális idő, amíg használható a konfiguráció: 2 óra (max-lease-time).
  Rögzített 192.168.1.2 IPv4 cím kiosztása a belzebub gép számára (host).
  Dinamikus  IPv4  címkiosztás  a  192.168.1.10-250  tartományból  a  többi  ügyfél  (jelen
esetben a Windows 7) számára (subnet).
  DHCP szolgáltatás nyújtása az eth1 interfészen.

A  DHCP  kiszolgáló  konfigurálásához  nyissuk  meg  szerkesztésre  a
/etc/dhcp/dhcpd.conf állományt:

$ sudo nano /etc/dhcp/dhcpd.conf

Az állomány tartalmát töröljük, majd írjuk be az alábbiakat:

authoritative;
ddns-update-style none;

option domain-name "gamf.hu";
option domain-name-servers 10.1.51.23, 10.1.51.25;
option broadcast-address 192.168.1.255; Johanyák Zsolt Csaba, Kovács Péter, Göcs László: Linux hálózati adminisztráció a gyakorlatban

61
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;

default-lease-time 600; # 10 perc
max-lease-time 7200; # 2 óra

A rögzített IPv4 cím beállításához nézzük meg az asztali Ubuntu operációs rendszert futtató
virtuális gép belső hálózatra kapcsolódó interfészének fizikai címét VirtualBoxban. Az alábbi
példában a 08:00:27:e4:f3:45 fizikai címet feltételezzük.

host belzebub
{ hardware ethernet 08:00:27:e4:f3:45;
  fixed-address 192.168.1.5;
  option host-name belzebub;
}

A  dinamikus  IPv4  cím  kiosztáshoz  egy  címtartományt  (192.168.1.10
192.168.1.250) definiálunk.

subnet 192.168.1.0 netmask 255.255.255.0{
  range 192.168.1.10 192.168.1.250;
}

Következő  lépésként  be  szeretnénk  állítani,  hogy  melyik  interfészen  nyújtson  DHCP
szolgáltatást a szerver. Ehhez nyissuk meg szerkesztésre a
/etc/default/isc-dhcp-server hcp-server állományt, és módosítsuk tartalmát
az alábbiak szerint:

$ sudo nano /etc/default/isc-dhcp-server

INTERFACES="eth1"

Mentsük el az állományt, majd indítsuk el a szolgáltatást.

$ sudo service isc-dhcp-server start

A  szerverkonfiguráció  próbájaként  először  az  asztali  gépen  (belzebub)  állítsuk  be,  hogy
fogadja  DHCP-vel  a  IPv4  konfigurációt,  majd  parancssorból  ellenőrizzük  a  beállítások
meglétét. Amennyiben nem jelenik meg a kívánt cím azonnal, akkor futtassuk a DHCP kliens
programot:

$ sudo dhclient

A próba második lépéseként állítsuk be VirtualBox-ban, hogy a Windows 7-es gép hálózati
kártyája  a  belső  hálózatra  (intnet)  csatlakozzon,  majd  indítsuk  el  a  Windows  7-es  gépet.
Ellenőrizzük le, hogy megkapja-e a beállításokat a Linuxos DHCP kiszolgálótól. A szerver a
/var/lib/dhcp/dhcpd.leases  állományban  tartja  nyilván  a  „bérletbe”  kiadott
konfigurációs adatokat. Tekintsük meg az állomány tartalmát
 5. DHCP szerver telepítése és konfigurálása
(Johanyák Zsolt Csaba)

62
$ more /var/lib/dhcp/dhcpd.leases

nfs


64 
 
A  munkaállomás  eth0  interfészének  konfigurációja  megegyezik  a  szerver  eth0 
interfészének  konfigurációjával.  A  munkaállomás  eth1  interfészének  konfigurációja  az 
alábbi lesz: 
 
IPv4 cím:  192.168.1.2 
Hálózati maszk:  255.255.255.0 
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ányok:  gyakorlat.gamf.hu gamf.hu kefo.hu 
6.2. NFS szerver telepítése és beállítása 
Az  alábbi  beállításokat  a  szerver  virtuális  gépen  kell  végrehajtani.  Frissítsük  a  csomag 
adatbázist, majd telepítsük az NFS szolgáltatáshoz szükséges programcsomagokat: 
 
$ sudo apt-get update 
$ sudo apt-get install nfs-kernel-server nfs-common portmap -y 
 
Tegyük fel, hogy a /home/megosztas könyvtárat szeretnénk megosztani. Először hozzuk 
létre a könyvtárat, majd állítsuk be, hogy bárki olvashassa, írhassa vagy futtathasson benne. 
 
$ sudo mkdir /home/megosztas 
$ sudo chmod 777 /home/megosztas 
 
A megosztott könyvtárakat az /etc/exports konfigurációs állományban kell felsorolnunk. 
Nyissuk meg szerkesztésre az állományt. 
 
$ sudo nano /etc/exports 
 
Az állományban minden megosztáshoz egy sor tartozik. A sor a megosztani kívánt könyvtár 
teljes elérési útvonalával kezdődik, ez a mi esetünkben /home/megosztas. A könyvtárat 
teljes hozzáféréssel (írható/olvasható) szeretnénk megosztani a 192.168.1.0 alhálózat összes 
gépe számára. A megosztást leíró sor a következő: 
 
/home/megosztas 
192.168.1.0/24(rw,sync,root_squash,no_subtree_check) 
 
A  fenti  konfiguráció  valójában  egy  sor,  csak  az  oldalszélesség  korlát  miatt  jelenik  meg 
fentebb két sorban. A hálózati IPv4 cím helyett egy csillagot megadva az összes számítógép 
számára megoszthatjuk könyvtárunkat. A megosztás kedvezményezettje lehet egyetlen gép is, 
ilyenkor az adott gép IP címét vagy nevét kell itt megadnunk. Figyeljünk oda arra, hogy a 
nyitó zárójel előtt nem állhat szóköz és minden könytármegosztás külön sorban kell álljon. 
Mintaként nézzünk meg néhány példát: 
 
/home  192.168.1.1/255.255 255 0 rw   
/segedlet  belzebub(rw)  pandora ro   Johanyák Zsolt Csaba, Kovács Péter, Göcs László: Linux hálózati adminisztráció a gyakorlatban 
 
65 
/ubuntu    ro sync no root s  ash    
 
A  zárójelben  megadott  jellemzőkkel  szabályozhatjuk  a  könyvtárhoz  történő  hozzáférést. 
Jelentésük a következő. 
 
ro   csak olvasható 
rw   olvasható és írható 
root_squash  a kliens root felhasználója semmiképp nem kaphat root jogokat erre 
a fájlrendszerre 
sync  a  szerver  szinkron  módon  hajtja  végre  a  változtatásokat  (csak  a 
végrehajtás után jelez vissza)  
link_absolute  a szimbolikus hivatkozások változatlanok maradnak 
subtree_check  a  kérés  beérkezése  után  a  szerver  leellenőrzi,  hogy  a  cél  a 
fájlrendszeren belül van-e illetve az exportált könyvtárstruktúrában 
található-e – biztosági probléma: a kliens kap egy leírót és infót a 
fájlrendszerről, ezért csak ro könyvtárakra használjuk! 
no_subtree_check  rw könyvtárakra 
 
Mentsük el a konfigurációs állományt, és lépjünk ki a szövegszerkesztő programból. Indítsuk 
újra az NFS kiszolgáló programot. 
 
$ sudo /etc/init.d/nfs-kernel-server restart 
$ sudo exportfs –a -v 
 
Az  exportfs  parancs  segítségével  karbantartható  a  közzétett  (exportált)  könyvtárak 
táblázata.  A  –a  parancs  hatására  a  konfigurációs  állományban  megadott  összes  állományt 
exportáljuk, míg a –v kapcsoló hatására részletes információt kapunk a parancs eredményéről 
6.3. NFS kliens telepítése és beállítása 
Az  alábbi  beállításokat  a  kliens  virtuális  gépen  kell  végrehajtani.  Frissítsük  a  csomag 
adatbázist,  majd  telepítsük  fel  az  NFS  megosztás  igénybe  vételéhez  szükséges 
programcsomagokat: 
 
$ sudo apt-get update 
$ sudo apt-get install nfs-common portmap 
 
A  megosztás  igénybevétele,  azaz  a  megosztott  könyvtár  használata  úgy  lehetséges,  hogy  a 
kliens  gép  könyvtárrendszerében  egy  könyvtárhoz  felcsatoljuk  a  szerver  által  megosztot 
könyvtárat. Ezt követően a felhasználó számára a távoli könyvtár ugyanúgy jelenik meg és 
ugyanúgy használható, mint egy helyi könyvtár.  
 
Hozzuk  létre  a  könyvtárfában  azt  a  mappát,  ahova  fel  kívánjuk  csatolni  a  kiszolgáló  által 
megosztott könyvtárat. 
 
$mkdir /home/hallgato/megosztas 
 
Következő lépésként felcsatoljuk (importáljuk) a kiszolgáló által megosztott könyvtárat: 
 6. Megosztás NFS segítségével 
(Johanyák Zsolt Csaba) 
 
66 
$ sudo mount –t nfs 192.168.1.254:/home/megosztas 
/home/hallgato/megosztas 
 
A  fenti  konfiguráció  valójában  egy  sor,  csak  az  oldalszélesség  korlát  miatt  jelenik  meg 
fentebb két sorban.  
 
A kliens gép leállításakor a felcsatolás megszűnik. Amennyiben azt szeretnénk, hogy minden 
indításkor automatikusan csatolódjon fel a könyvtár, akkor az /etc/fstab állományba egy 
új sort kell írnunk. Ehhez nyissuk meg az állományt. 
 
$ sudo nano /etc/fstab 
 
Helyezzük el a következő sort (egyetlen sorba írva, és a sor végén az Enter-t lenyomva): 
 
192.168.1.254:/home/megosztas  /home/hallgato/megosztas  nfs 
rw,hard,intr  0  0 
 
Mentsük el az állományt, majd próbáljuk ki a beállítást. 
$ sudo mount /home/hallgato/megosztas 
 
6.4. Tesztelés 
 
Hozzunk  létre  a  kliens  gépen  egy  állományt  a  megosztas  könyvtárban,  írjunk  bele 
valamilyen szöveget. Ellenőrizzük le a kiszolgálón az állomány meglétét. 
 
Lépjünk ki a könyvtárból, majd csatoljuk azt le. 
 
$sudo umount /home/hallgato/megosztas 

ufw

A tűzfal engedélyezése:

$ sudo ufw enable

A különböző portok megnyitásához, engedélyezéséhez az allow utasítás szükséges:

$ sudo ufw allow 80 – a http port engedélyezése


A deny parancsal lehet a nyitott portot bezárni:

$ sudo ufw deny 80 – a http port tiltása

A tűzfal szabályokat számozott rendben is föl tudjuk venni:

$sudo ufw insert 1 allow 631/tcp – nyomtató megosztás

A tűzfal szabály eltávolításához a delete parancs szükséges:

$ sudo ufw delete deny 80

Engedélyezni  lehet  egy  adott  hálózatról  vagy  kiszolgálóról  a  hozzáférést  egy  porthoz.  Az
alábbi példával megadjuk az SSH hozzáférést a 192.168.1.10 IP-című gép számára bármely
IP-címhez ezen a kiszolgálón:

$ sudo ufw allow proto tcp from 192.168.1.10 to any port 22

Engedélyezhető az SSH hozzáférés egy teljes alhálózatból is:

$ sudo ufw allow proto tcp from 192.168.1.0/24 to any port 22


NAT

93
10.3. A NAT telepítése és konfigurálása

Az IP álcázás célja, hogy a privát, nem közvetíthető IP címekkel rendelkező gépek elérjék az
internetet  az  álcázást  végző  gépen  keresztül.  A  magánhálózatból  az  internetre  irányuló
forgalmat úgy kell módosítani, hogy visszairányítható legyen a kérést küldő gépre. Ehhez a
kernelnek módosítania kell minden csomag forrás IP címét, hogy a válaszok hozzá legyenek
visszairányítva, a kérést küldő gép IP címe helyett, különben a válaszok nem érkeznének meg.
A Linux a kapcsolatkövetést (conntrack) használja a gépek és a hozzájuk tartozó kapcsolatok
nyilvántartására,  és  a  visszaküldött  csomagok  ennek  megfelelő  átirányítására.  A  hálózatát
elhagyó forgalom így „álcázva” lesz, mintha az átjáró gépről indult volna.

Az  IP  álcázást  ufw  szabályok  segítségével  valósítjuk  meg.  Ezek  aszerint  vannak  két
állományra különválasztva, hogy a parancssori ufw szabályok előtt (before.rules) vagy
után (after.rules) kerülnek-e végrehajtásra.

Első  lépésként  engedélyezzük  a  csomagtovábbítást.  Ehhez  nyissuk  meg  szerkesztésre  a
/etc/default/ufw állományt:

$ sudo nano /etc/default/ufw

A fájlban a

DEFAULT FORWARD POLICY=”DROP”

beállítást cseréljük

DEFAULT FORWARD POLICY=”ACCEPT”

-ra,  és  mentsük  az  állományt.  Ezt  követően  nyissuk  meg  szerkesztésre  a
/etc/ufw/sysctl.conf állományt,

$ sudo mcedit /etc/ufw/sysctl.conf

vegyük  ki  a  megjegyzésből  a  net/ipv4/ip_forward=1  sort.  Amennyiben  az  IPv6
csomagtovábbítást  is  engedélyezni  kívánjuk,  akkor  a
net/ipv6/conf/default/forwarding=1 sort is vegyük ki megjegyzésből. Mentsük
az állományt.

Második  lépésként  konfigurálnunk  kell  a  nat  táblát,  mivel  alapértelmezés  szerint  csak  a
filter  tábla  konfigurált.  Ehhez  nyissuk  meg  szerkesztésre  a
/etc/ufw/before.rules állományt

$ sudo mcedit /etc/ufw/before.rules

A bevezető megjegyzés (#) sorokat követően helyezzük el az alábbiakat

# nat tábla szabályai
*nat 10. A hálózati címfordítás (NAT) megvalósítása
(Göcs László)

94
:POSTROUTING ACCEPT [0:0]

# Továbbítsa az eth1-ről érkező forgalmat az eth0-n keresztül
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

COMMIT

Utolsó lépésként letiltjuk, és újra engedélyezzük az ufw szoftver működését

$ sudo ufw disable
$ sudo ufw enable

samba

70

A  munkaállomás  eth0  interfészének  konfigurációja  megegyezik  a  szerver  eth0
interfészének  konfigurációjával.  A  munkaállomás  eth1  interfészének  konfigurációja  az
alábbi lesz:

IPv4 cím:  192.168.1.2
Hálózati maszk:  255.255.255.0
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ányok:  kefo.hu
7.2. Samba kiszolgáló
Az  alábbiakban  két  megosztást  hozunk  létre.  Az  első  egy  mindenki  által  írható-olvasható
megosztás  lesz,  míg  a  második  csak  egy  adott  felhasználó  (hallgato)  számára  nyújt
hozzáférést  egy  könyvtárhoz.  Először  áttekintjük  a  telepítés  lépéseit  és  az  általános
konfigurációs elemeket, majd ismertetjük a két megosztás létrehozását.
7.2.1. Telepítés és általános konfigurációs lépések
A  szerver  virtuális  gépen  frissítsük  a  csomag  adatbázist,  majd  telepítsük  a  Samba
kiszolgálóhoz szükséges csomagokat.

$ sudo apt-get update
$ sudo apt-get install samba smbfs -y

Nyissuk meg a szerkesztésre konfigurációs állományt.

$ sudo nano /etc/samba/smb.conf

Az általános, minden megosztás esetén érvényes beállításokkal kezdjük. Ezek a [global]
szakaszban  találhatóak.  Elsőként  állítsuk  be  a  munkacsoport  nevét.  Ehhez  megkeressük  a
megfelelő sort (workgroup), majd az egyenlőség jel utáni részt megváltoztatjuk.

workgroup=GYAKORLAT

Az  alábbiakban  a  legtöbb  beállítás  esetében  hasonlóképpen  fogunk  eljárni.  Amennyiben
valamelyik kulcs (pl. netbios name) nem szerepel a kezdeti konfigurációs állományban,
akkor  a  teljes  sort  begépeljük,  egyébként  csak  az  egyenlőség  jel  utáni  részt  módosítjuk.
Néhány  esetben  a  kulcs  (pl.  security)  kezdetben  megjegyzésben  áll,  ilyenkor  el  kell
távolítani a sor elején álló pontosvesszőt.

Második beállításunk a gép NetBIOS neve lesz (ezt be kell gépelni):

netbios name=ubuntu-server

Ezt  követően  a  megosztások  biztonsági  modelljét  (szintjét)  felhasználóira  állítjuk.  Ez  azt
jelenti,  hogy  egyedi  felhasználói  névvel  és  jelszóval  férhetnek  hozzá  a  megosztott
erőforrásokhoz, illetve felhasználónként szabályozhatjuk a jogosultságokat. Johanyák Zsolt Csaba, Kovács Péter, Göcs László: Linux hálózati adminisztráció a gyakorlatban

71

security=user

Bekapcsoljuk  a  Samba  szerver  WINS  szolgáltatását,  ami  azt  jelenti,  hogy  szerverünk  egy
Windows  Internet  Name  Service  kiszolgáló  feladatait  is  el  fogja  látni.  A  kulcs  kezdetben
megjegyzésben van.

wins support=yes

Engedélyezzük,  hogy  a  Samba  szerver  megkísérelje  a  megváltoztatott  Samba  jelszavakat  a
Linux jelszó adatbázisban is érvényesíteni.

unix password sync=yes

Mentsük el a konfigurációs állományt, majd teszteljük azt.

$ sudo testparm

7.2.2. Nyilvános írható-olvasható megosztás
Első  lépésként  definiálunk  egy  vendég  felhasználót  a  Linux  rendszerben.  Sikertelen
autentikáció vagy vendég típusú bejelentkezés esetén ezen felhasználóként vehetjük igénybe a
Samba  szolgáltatásokat.  Az  Ubuntuba  azért  kell  regisztrálnunk  ezt  a  fiókot,  mert  a  Samba
adatbázisába  csak  olyan  fiókok  vehetők  fel,  amelyek  a  Linux  rendszer  adatbázisában  már
szerepelnek.  A  felhasználói  fiókot  úgy  hozzuk  létre,  hogy  nem  jelentkezhet  be  és  nem
rendelkezik saját könyvtárral.

$ sudo vendeg useradd –c "Samba vendég" –d /dev/null
  –s /bin/false

A fiókot felvesszük a Samba felhasználók közé jelszó nélküli fiókként

$ sudo smbpasswd -an vendeg

Ellenőrzésként listázzuk ki a bejegyzett Samba felhasználókat

$ sudo pdbedit  -L

Hozzuk létre a megosztani kívánt könyvtárat, és állítsuk be, hogy minden felhasználó teljes
hozzáférést kapjon hozzá.

$ sudo mkdir /srv/samba/kozos
$ sudo chmod 777 /srv/samba/kozos

A  könyvtárat  szeretnénk  megosztani  az  összes  felhasználó  számára.  Nyissuk  meg  a
szerkesztésre konfigurációs állományt.

$ sudo nano /etc/samba/smb.conf
 7. Megosztás Samba segítségével
(Johanyák Zsolt Csaba)

72
A  globális  beállítások  részben  adjuk  meg  a  vendég  felhasználót,  és  azt,  hogy  sikertelen
autentikáció esetén a felhasználót tekintse vendégnek a rendszer.

guest account=vendeg
map to guest=bad user

A konfigurációs állomány végén hozzunk létre egy új szakaszt az új megosztás számára.

[kozos]

Adunk hozzá egy rövid magyarázó szöveget.

comment=Ez egy nyilvános írható-olvasható megosztás

Beállítjuk az elérési útvonalát és a hozzáférés szabályozást. Legyen a könyvtár írható.

path/srv/samba/kozos
read only=no

Jelszó nélkül lehessen hozzáférni

public=yes

Ne legyen rejtett, jelenjen meg a megosztások listájában

browseable=yes

Minden  felhasználó  kapjon  teljes  hozzáférést  a  benne  létrehozott  könyvtárakhoz  és
állományokhoz  Linux  klienseken  is.  Az  alábbi  beállításpáros  kikényszeríti,  hogy  Linux
klienseken  az  újonnan  létrehozott  állományok  és  könyvtárak  az  rwxrwxrwx
jogosultságszabályozással rendelkezzenek.

force directory mode=0777
force create mode=0777

Mentsük el a konfigurációs állományt, majd teszteljük azt (szintaktikai ellenőrzés).

$ sudo testparm

7.2.3. Megosztás egy adott felhasználó számára
Hozzuk létre a megosztani kívánt könyvtárat, és állítsuk be, hogy a hallgato felhasználó
legyen a tulajdonos és a csoporttulajdonos legyen a hallgato csoport.

$ sudo mkdir /srv/samba/hallgato
$ sudo chown hallgato /srv/samba/hallgato
$ sudo chgrp hallgato /srv/samba/hallgato
 Johanyák Zsolt Csaba, Kovács Péter, Göcs László: Linux hálózati adminisztráció a gyakorlatban

73
Megj.:  A  Filesystem  Hierarchy  Standard  ajánlása  szerint  a  megosztott  könyvtárakat  a
/srv/samba könyvtár alá ajánlott elhelyezni.

Az  általános  beállítások  után  létrehozunk  egy  megosztást.  A  könyvtárat  szeretnénk
megosztani  a  hallgato  nevű  felhasználó  számára.  Nyissuk  meg  a  szerkesztésre
konfigurációs állományt.

$ sudo nano /etc/samba/smb.conf

A konfigurációs állomány végén hozzunk létre egy új szakaszt az új megosztás számára.

[hallgato]

Adunk hozzá egy rövid magyarázó szöveget.

comment=Ez egy megosztás a hallgato fiók számára

Beállítjuk az elérési útvonalát és a hozzáférés szabályozást. Legyen a könyvtár írható.

path/srv/samba/hallgato
writeable=yes

Jelszó nélkül ne lehessen hozzáférni

public=no

Ne legyen rejtett, jelenjen meg a megosztások listájában

browseable=yes

A hallgato felhasználó írhatja és olvashatja.

read list=hallgato
write list=hallgato

Mentsük el a konfigurációs állományt, majd teszteljük azt (szintaktikai ellenőrzés).

$ sudo testparm

A rendszer adatbázisai a /var/lib/samba könyvtárban találhatóak
Vegyük fel a hallgato felhasználót a Samba adatbázisba.

$ sudo smbpasswd -a hallgato

A jelszó legyen „hallgato”.

7.2.4. A szolgáltatás elindítása és tűzfalszabályok
Indítsuk el/újra a szervert. 7. Megosztás Samba segítségével
(Johanyák Zsolt Csaba)

74

$ sudo service smbd restart

Amennyiben  szerverünkön  működik  tűzfal,  akkor  a  Samba  telepítésekor  kapott
(/etc/ufw/applications.d  könyvtárban  található)  UFW-s  profil  engedélyezésével
nyithatjuk meg a szükséges portokat.

$ sudo ufw allow Samba

Megj.:  A  profil  előírja  a  137-es  és  138-as  portok  megnyitását  az  UDP  protokoll  számára,
valamint a 139-es és a 445-ös portok megnyitását a TCP protokoll számára. Néhány esetben a
fenti  tűzfalmegnyitás  nem  bizonyult  elégségesnek,  és  csak  az  érintett  négy  port  mindkét
protokoll  számára  történő  megnyitását  követően  sikerült  a  kliensnek  csatlakozni  a
megosztáshoz. A megnyitáshoz szükséges utasítások a következőek.

$ sudo ufw allow from 192.168.1.0/24 to any port 137
$ sudo ufw allow from 192.168.1.0/24 to any port 138
$ sudo ufw allow from 192.168.1.0/24 to any port 139
$ sudo ufw allow from 192.168.1.0/24 to any port 445

7.3. Samba kliens és konfigurálása
7.3.1. Kliens telepítése
Az  asztali  Ubuntu  operációs  rendszert  futtató  virtuális  gépen  telepítsük  fel  a  megosztás
eléréséhez szükséges csomagokat.

$ sudo apt-get update
$ sudo apt-get install smbfs smbclient -y

Nyissunk meg egy terminált, és kérdezzük le a kiszolgáló által megosztott könyvtárakat.

$ smbclient -L ubuntu-server -N

A Sharename oszlopban meg kell jelenjen a hallgato és a kozos sor.

7.3.2. A nyilvános megosztás elérése
A megosztást kliens oldalról kétféleképpen érhetjük el: az smbclient parancs segítségével
vagy  felcsatolva  azt  a  könyvtárrendszerünkbe.  Elsőként  próbáljuk  ki  az  smbclient-tel
történő elérést. Mivel ez egy nyilvános megosztás jelszó megadás nélkül csatlakozunk.

$ smbclient //ubuntu-server/kozos  -N

Sikeres  csatlakozást  követően  az  smb:\>  készenléti  jel  jelenik  meg.  A  ?  paranccsal
kérdezhetjük le az elérhető utasítások listáját. Hozzunk létre egy könyvtárat a megosztáson
belül

smb:\> mkdir proba Johanyák Zsolt Csaba, Kovács Péter, Göcs László: Linux hálózati adminisztráció a gyakorlatban

75

Lépjünk  át  a  szerver  virtuális  gépbe,  hozzuk  létre  ott  a  valami  nevű  szöveges  állományt  a
kozos  könyvtárban,  majd  lépjünk  vissza  a  munkaállomás  virtuális  gépbe  és  töltsük  le  az
állományt (másoljuk le a munkaállomásra).

smb:\> get valami

Lépjünk  ki  az  smbclient-ből  az  exit  parancs  segítségével.  A  letöltött  állomány  az
aktuális könyvtárban található.

A megosztás elérésének gyakrabban alkalmazott módszere az, hogy a megosztott könyvtárat
felcsatoljuk  az  ügyfélgép  állományrendszerébe.  Ehhez  hozzunk  létre  egy  kozos  nevű
könyvtárat.

$ sudo mkdir /mnt/kozos

Hajtsuk végre a felcsatolást vendégként kapcsolódva a megosztáshoz.

$ sudo smbmount //192.168.1.254/kozos    
  /mnt/kozos -o guest

Ellenőrizzük  le  állománylétrehozással,  másolással,  módosítással  a  felcsatolás  sikerességét,
majd csatoljuk le a könyvtárat.

$ sudo umount /mnt/kozos

Ha azt szeretnénk, hogy minden indításkor automatikusan csatolódjon fel a könyvtár, akkor az
/etc/fstab állományba egy új sort kell írnunk. Ehhez nyissuk meg az állományt.

$ sudo nano /etc/fstab

Helyezzük el a következő sort (egyetlen sorba írva, és a sor végén az Enter-t lenyomva):

//192.168.1.254/kozos  /mnt/kozos  smbfs  rw,guest  0 0

Mentsük el az állományt, majd próbáljuk ki a beállítást.

$ sudo mount /mnt/kozos

Lépjünk be a felcsatolt könyvtárba, ellenőrizzük a csatolást. Indítsuk újra a virtuális gépet az
automatikus felcsatolás ellenőrzése érdekében.
7.3.3. Felhasználó számára megosztott könyvtár elérése
Hozzunk  létre  egy  smbkliens  nevű  könyvtárat,  ide  fogjuk  felcsatolni  a  szerver  által  a
hallgato felhasználó számára megosztott mappát.

$ mkdir /home/hallgato/smbmegosztas

Hajtsuk végre a felcsatolást. 7. Megosztás Samba segítségével
(Johanyák Zsolt Csaba)

76

$ sudo smbmount //192.168.1.254/hallgato    
  /home/hallgato/smbmegosztas -o username=hallgato%hallgato

Lépjünk  be  a  könyvtárba,  és  hozzunk  létre  ott  egy  új  szöveges  állományt.  Lépjünk  ki  a
könyvtárból, majd csatoljuk azt le.

$ sudo umount /home/hallgato/smbmegosztas/

Ha azt szeretnénk, hogy minden indításkor automatikusan csatolódjon fel a könyvtár, akkor az
/etc/fstab állományba egy új sort kell írnunk. Ehhez nyissuk meg az állományt.

$ sudo nano /etc/fstab

Helyezzük el a következő sort (egyetlen sorba írva, és a sor végén az Enter-t lenyomva):

//192.168.1.254/hallgato  /home/hallgato/smbmegosztas  smbfs
username=hallgato,password=hallgato,umask=000 0 0

Mentsük el az állományt, majd próbáljuk ki a beállítást.

$ sudo mount /home/hallgato/smbmegosztas