RIS szerver linuxon

Ezt a rövid leírást azon célból készítettem, mert nem nagyon találtam a témához anyagot, angolul se sokat, magyarul meg abszolút nem. A következő lépésekben leírom, hogyan lehet RIS-t (Remote Installation System) beállítani egy linux kiszolgálón Windows (jelen esetben XP) telepítéséhez. (az alapértelmezett fájlnevek módosítása azt a célt szolgálja, hogy egy szerver nem csak egy rendszer RIS szervere lehet, hanem a jelenlegi konfiguráció pici módosításával akárhány)
Amire szükségünk van első lépésben: egy telepített linux, hálózat, és egy PXE bootolásra képes kliens. Gyakorlatilag bármilyen disztribúció megfelel, én OpenSuSE 10.3-on telepítettem.

Készítsük elő a telepítőt:
Az egyszerűség kedvéért most a tűzfalat kapcsoljuk ki, ha van:

# rcSuSEfirewall2 stop
Shutting down the Firewall                                   done

Hozzuk létre a gyökérkönyvtárban egy tftpboot könyvtárat, majd másoljuk egy winxp könyvtárba ide az XP telepítő cdről az i386 könyvtárat. Ezután állítsuk be rá rekurzívan a 777 jogot, majd menjünk be a könyvtárba:

chmod -R 777 /tftpboot
cd /tftpboot

A cabextract alapból nem része a rendszernek. Amennyiben nincs telepítve, egyszerűen felrakhatjuk:

zypper install cabextract
 

Csomagoljuk ki a tömörített pxe betöltőt a cabextract segítségével:

cabextract i386/STARTROM.N1_

A kicsomagolt fájlban módosítsuk az NTLDR fájlnevet XPLDR-re:

sed -i -e 's/NTLDR/XPLDR/gi' startrom.n12

Nevezzük át a fájlt winxp.0 névre:

mv startrom.n12 winxp.0

Tömörítsük ki a telepítés-betöltőt:

cabextract i386/SETUPLDR.EX_

A kitömörített telepítésbetöltőben módosítsuk az információs fájl nevét winxp.sif-re:

sed -i -e 's/winnt.sif/winxp.sif/gi' setupldr.exe

Szintén a telepítésbetöltőben módosítsuk az ntdetect.com nevét ntdetect.wxp-re:

sed -i -e 's/ntdetect.com/ntdetect.wxp/gi' setupldr.exe

Nevezzük át a fájlt XPLDR névre:

mv setupldr.exe XPLDR

Másoljuk át az ntdetect.com-ot az i386 könyvtárból a tftp gyökérbe ntdetect.wxp néven:

cp i386/NTDETECT.COM ntdetect.wxp

Hozzuk létre a winxp.sif fájlt, és írjuk bele a tartalmat:

# cat >> winxp.sif << EOF
[data]
floppyless = "1"
msdosinitiated = "1"
OriSrc = "\xenaxpinstallwinxpi386"
OriTyp = "4"
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = 1
[SetupData]
OsLoadOptions = "/fastdetect"
SetupSourceDevice = "DeviceLanmanRedirectorxenaxpinstallwinxp"
[RemoteInstall]
Repartition = No
UseWholeDisk = No
[UserData]
ComputerName = *
EOF

A xena az a név, amellyel a samba szerver elérhető (lásd később), az xpinstall pedig a tftpboot megosztása (szintén később), szintén módosítható.
Már majdnem készen vagyunk, egy dolog hiányzik még: a kliens gépben lévő hálózati kártya drivere. Én a gépbe egy klasszikus Realtek 8139C kártyát tettem, ennek a gyártó honlapján lévő zipfájlba a WINXP mappában ott van az INF és SYS fájl, több nem is kell. (feltöltöttem ide is azért: http://www.2shared.com/file/4969216/f91cb0cc/relatek-002.html) A SYS fájlt másoljuk be az i386 mappába, az INF fájlt érdemes külön könytárban gyűjteni, pl. i386/inf (több hálózati kártya driverét is berakhatjuk természetesen, nem biztos hogy homogén a kliens környezet). Tegyük be ide az INF fájlt.
Ezzel a résszel megvagyunk.


Következik a DHCP szerver beállítása.
Először is telepítsük fel, ha még nem lenne fent:

zypper install dhcp-server

Szerkesszük a /etc/dhcpd.conf fájlt. Minden jelenleg benne lévő subnet bejegyzést kommenteljünk ki, majd írjuk be az alábbiakat:

subnet 192.168.33.0 netmask 255.255.255.0 {
  range 192.168.33.10 192.168.33.30;
  option domain-name-servers 192.168.33.4;
  option domain-name "hnsz";
  option routers 192.168.33.4;
  option broadcast-address 192.168.33.255;
  default-lease-time 43200;
  max-lease-time 86400;
  filename "winxp.0";
  server-name "xena";
  next-server xena;
}

A subnetet, dns szervert, gatewayt persze mindenki igazítsa a saját hálózatához. A server-name és next-server résznél a xena nevet a ris szerver ip címére kell cserélni abban az esetben, ha nincs dns, vagy ezt nem oldja fel. Ha van belső dns, akkor megadható a ris szerver dns neve is. (Nálam a bind a xena nevet is a 192.168.33.4 ip címre oldja fel)
Mentsük el a fájlt, majd indítsuk újra a dhcp szervert:

# rcdhcpd restart
Shutting down DHCP server                                             done
Starting DHCP server [chroot]                                         done

Ezzel beállítottuk a dhcp-t is.


Következik a samba beállítása.
Telepítsük ezt is, ha nem lenne fent:

zypper install samba

A jelenlegi konfigot mentsük el valami más néven, majd az smb.conf-ba írjuk bele a következőket:

# cd /etc/samba
# mv smb.conf smb.conf.orig
# cat >> smb.conf << EOF
[global]
    workgroup = HNSZ
    netbios name = Xena
    server string = Xena
    security = share
    interfaces = 192.168.33.4/255.255.255.0
    bind interfaces only = yes
    case sensitive = no
[xpinstall]
    browsable = true
    path = /tftpboot
    read only = no
    guest ok = yes
    null passwords = true
EOF

Ezzel beállítottuk a munkacsoportot, a gép netbios nevét, mellyel elérhető, illetve csináltunk egy xpinstall megosztás, ami a /tftpboot könyvtárat osztja meg, ahol a telepítő található. (az itt megadott nevet és elérést kell a winxp.sif fájlban megadni, lásd fentebb)
Indítsuk újra a netbios és a samba szervert:

# rcnmb restart && rcsmb restart
Shutting down Samba NMB daemon                                        done
Starting Samba NMB daemon                                             done
Shutting down Samba SMB daemon                                        done
Starting Samba SMB daemon                                             done

Ezzel kész a samba beállítása is.


Most jön a tftp szerver beállítása.
Ez az a pont, amivel a legtöbbet küzdöttem, mire rájöttem a titok nyitjára. A probléma alapvetően az (logfájlból egyébként látszik), hogy a windows a saját kis backslash-es elérésével kéri le a fájlokat a tftp-ről (pl. winxpi386txtsetup.sif). Erre ugyebár a szerver válasza a not found. Probléma szintén, hogy kis- és nagybetűs fájlnevek közt a windows nem tesz különbséget (NTFS tárolja, de a rendszer nem tesz különbséget), de a linux igen. Ennél fogva ha a kérés a tftp-nek i386txtsetup.sif akkor nem I386txtsetup.sif és nem I386TXTSETUP.SIF. Ebből érezheti mindenki, hogy egy kis trükközésre van szükség a tftp szervernél. A trükk egy patch alkalmazása.
Tftp szerverünk a tftp-hpa 0.48-as verziója lesz (ehhez találtam patchet; letölthető innen: http://www.2shared.com/file/4969233/bb4026c1/tftp-hpa_048origtar.html). Töltsük le, és mentsük a /usr/src könyvtárba, majd tömörítsük ki:

# cd /usr/src
# tar xzvf tftp-hpa_0.48.orig.tar.gz

Tölsük le hozzá a patchet innen: http://www.2shared.com/file/4969264/58534727/tftp-hpa-filecase.html. Mentsük szintén a /usr/src könyvtárba, majd alkalmazzuk a forrásra:

patch -p1 < tftp-hpa-filecase.diff

Ezután semmi nem tart vissza minket, hogy lefordítsuk kicsiny tftp szerverünket. A fordításhoz szükség van a header fájlokra, a fordítóra, és pár egyéb dologra, tegyük fel ezeket, ha nem lennének fent:

zypper install gcc gcc-c++ make automake autoconf kernel-headers

És akkor a fordítás:

# cd tftp-hpa-0.48
# ./configure && make && make install

Nálam hiba és warning nélkül pöccre lefordult.
A tftp szervert most xinetd-n állítjuk be. Ezt is telepítsük, ha nem lenne fent:

zypper install xinetd

Menjünk a /etc/xinetd.d könyvtárba, és hozzunk létre egy tftp fájlt a következő tartalommal:

# cd /etc/xinetd.d
# cat >> tftp << EOF
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot -v
        disable                 = no
}
EOF

Az argumentumokba a -s kapcsolóval adjuk meg a tftp root könyvtárát. Amennyiben máshova tettük a telepítőt, ezt is a megfelelőre kell módosítanunk. A -v kapcsoló verbose mode… Ami ahogy én láttam nem verbose, úgy fogalmaznék, hogy normális loggolás. Így írja (alapból a /var/log/messages fájlba), hogy ki milyen fájlt kért. Enélkül semmi nincs, csak az xinetd logjában hogy connect, meg majd a végén disconnect.
Akkor indítsuk újra az xinetd szolgáltatást is, hogy mostmár a tftp démonunk is fusson:

# rcxinetd restart
Shutting down xinetd:                                                 done
Starting INET services. (xinetd)                                      done

Ezzel kész a tftp beállítása.


És az utolsó lépés: a hálózati kártya driverének kiszolgálása a kliensgépnek.
Ehhez szükséges az alábbi kis csomag letöltése: http://www.2shared.com/file/4969465/2bd90b03/ris-toolstar.html
A letöltött csomagot tömörítsük ki tetszőleges helyre, lépjünk be ebbe a könyvtárba, majd futtassuk le az inf parsert, amely összegyűjti egy inf fájlba a telepítő számára az összes elérhető drivert:

# ./infparser.py /tftpboot/winxp/i386/inf
Compiled 7 drivers
generated devlist.cache
generated nics.txt

Amennyiben az inf fájlokat ide tettük. Értelemszerűen módosítandó az elérési út.
Ezután indítsuk el a kiszolgáló scriptet, amely kommunikál a telepítővel, és átadja az információt a hálózati driverekről:

./binlsrv.py

Ezzel is megvagyunk.


Kész. 🙂 És az eremény:


Ahhoz, hogy valamilyen módon választani tudjunk az indítandó rendszerek közül, egy segédprogramra van szükség, ez most a pxelinux lesz, amely a syslinuxnak a része, letölthető innen: http://www.2shared.com/file/4973148/33481e03/pxelinux.html. Töltsük le, és másoljuk a /tftpboot könyvtárba.
Ezután módosítsuk a dhcp szerver beállításait, a
filename "winxp.0";
részt módosítsuk erre
filename "pxelinux.0";
Mentsük a fájlt, majd indítsuk újra a dhcp szervert.


Az újonnan hozzáadott rendszer most egy Windows 2000 lesz, de akár egy Windows 2003 Servert vagy egy Vistát is hasonlóan kell elvégezni. Ennek is hozzunk létre egy külön könyvtárat, pl. /tftpboot/win2k, és másoljuk ide a telepítő cdről az i386 mappát, majd ahogyan azt az XP telepítőnél, készítsük elő a fájlokat:

# cd /tftpboot
# cabextract win2k/I386/startrom.n1_
# sed -i -e 's/NTLDR/2KLDR/gi' startrom.n12
# mv startrom.n12 win2k.0
# cabextract win2k/I386/setupldr.ex_
# sed -i -e 's/winnt.sif/win2k.sif/gi' setupldr.exe
# sed -i -e 's/ntdetect.com/ntdetect.w2k/gi' setupldr.exe
# mv setupldr.exe 2KLDR
# cp win2k/I386/ntdetect.com pxelinux.0ntdetect.w2k
# cat >> pxelinux.0win2k.sif << EOF
[data]
floppyless = "1"
msdosinitiated = "1"
OriSrc = "\xenaxpinstallwin2kI386"
OriTyp = "4"
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = 1
[SetupData]
OsLoadOptions = "/fastdetect"
SetupSourceDevice = "DeviceLanmanRedirectorxenaxpinstallwin2k"
[RemoteInstall]
Repartition = No
UseWholeDisk = No
[UserData]
ComputerName = *
EOF

(Az előző howtoban kicsit következetlen voltam, hogy a tftpboot-ot xpinstall néven osztottam meg. Szebb, módosítható más névre a megosztás az smb.conf-ban (pl. risinstall), de akkor minden sif fájlban is javítanunk kell!)
Megjegyzés: A windows 2000 pxe betöltője bugos. Az ntdetect.com (~ntdetect.w2k) és a winnt.sif (~win2k.sif) fájlnév elé hozzáfűzi a dhcp szervertől kapott pxe bootfájl nevét, ezért (jelen esetben) pxelinux.0ntdetect.w2k és pxelinux.0win2k.sif fájlokat fog kérni a tftp szervertől. Ezért van szükség a fájlnevek módosítására (más rendszerrel nincs ilyen bug).


A hálózati kártya drivereket és inf fájlokat ugyanúgy kell hozzáadni, majd futtatni az infparsert és a binlsrv-t.
Azonban mivel ugyanazok a driverek többnyire működnek mind windows 2000 mind windows xp alatt, az inf fájlokat lehet egy közös helyre rakni, pl. /tftpboot/inf, erre futtatni az infparsert, majd a binlsrv-t. Viszont ekkor a SYS fájlokat minden i386 könyvtárba be kell másolnunk.


Kész :). Kliensünket PXE boot-tal indítva a pxelinux fogad minket. Mivel nem adtunk meg semmilyen konfigájlt, nem rendelkezik semmilyen beállítással. A neten rengeteg howtot lehet találni ehhez, hogy hogyan lehet menüt (akár grafikusat) csinálni ehhez. De azt hiszem nekünk ez most elég :).
A kapott promptba a win2k.0
fájlnevet megadva a windows 2000 telepítője, a winxp.0
beírva pedig az XP telepítője indul.


Linuxot is lehet? Persze! 🙂
Ismét pár egyszerű lépésben, hogy hogyan lehet linuxokkal is kibővíteni a skálát. Sokkal egyszerűbben, mint windows esetén :). A példa most egy openSuSE 11.0 x64 és egy CentOS 5.2 x86 lesz.


openSuSE 11.0:
Töltsük le a netinstall imaget: http://download.opensuse.org/distribution/11.0/iso/cd/openSUSE-11.0-NET-x86_64.iso. Mountoljuk a letöltött iso fájlt tetszőleges helyre:

mount -o loop openSUSE-11.0-NET-x86_64.iso /mnt

Csináljunk egy külön könyvtárat, pl. /tftpboot/suse11.0_x64. Másoljuk ide a /mnt/boot/x86_64/loader könyvtárból a linux és initrd fájlokat.
A pxelinux promtjába suse11.0_x64/linux initrd=suse11.0_x64/initrd
lehet indítani.


Memtest:
Aki szeretné, egy memtestet is berakhat… Mindkét cdn megtalálható, a susen pl. /mnt/boot/x86_64/loader/memtest, másoljuk ezt a /tftpboot-ba.
Indítást: memtest


CentOS 5.2:
Töltsük le a netinstall cd imaget: mirror.chpc.utah.edu/pub/centos/5.4/isos/i386/CentOS-5.4-i386-netinstall.iso. Mountoljuk hasonlóképpen, mint a suset.
Hozzunk létre neki is egy külön könyvtárat, pl. /tftpboot/centos5.2. Másoljuk ide a /mnt/isolinux/ könyvtárból a vmlinuz és initrd.img fájlokat.
A pxelinux promtjába centos5.2/vmlinuz initrd=centos5.2/initrd.img
lehet indítani.


És akkor kérésre egy példa pxelinux config:

# cat /tftpboot/pxelinux.cfg/default
default suse11.0_x64
prompt 1
timeout 600
display pxelinux.cfg/boot.msg
label winxp
  kernel winxp.0
label win2k
  kernel win2k.0
label centos5.2
  kernel centos5.2/vmlinuz
  append initrd=centos5.2/initrd.img
label suse11.0_x64
  kernel suse11.0_x64/linux
  append initrd=suse11.0_x64/initrd
label memtest
  kernel memtest
  append -
# cat /tftpboot/pxelinux.cfgboot.msg
?
0b
winxp           - Windows XP Professional
win2k           - Windows 2000 Professional
centos5.2       - CentOS 5.2 x86
suse11.0_x64    - openSuSE 11.0 x64
memtest         - Memtest86
07
0f
A telepiteni kivant rendszer azonositojat ird be, majd nyomd meg az ENTER-t.
10 perc elteltevel automatikusan a suse11.0_x64 lesz kivalasztva.
07

menu
A két fájl letölthető innen: http://www.2shared.com/file/4975240/1abe77b4/pxelinuxcfgtar.html

14 thoughts on “RIS szerver linuxon

  1. hello,
    olyan kerdes hogy, nalunk nem a server mudodik dhcpkent, hanem egy router adja az ip cimet, akkor hogyan tudom beallitani a RIS servert ?

    1. Valószínűleg sehogy, mivel a routerekben nem lehet a DHCP beállításokat módosítani.
      Milyen router?

      1. ööö, valamilyen d-link, de akkor ha jol ertem, az lenne a lenyeg hogy a linux servernek kell osztani az ipt es csak akkor mukodik a dolog

      2. ez esetben igen.
        amúúgy oszthatja más gép vagy router az ip-t, csak az a feltétel, hogy be lehessen állítani a dhcp szervert.
        ugyanis ezek az adatok (melyik gépről és mit töltsön be) sima paraméterek a DHCP-ben, ezért olyan DHCP szerver kell, ahol lehet ezt állítani.

      3. igen, max akkor azt tudom csinalni, hogy teljesen kulon rakok egy gépet ket halokartyaval, errol a meglevo halozatrol kap ipt, ahogy a tobbi, es netet is , a masik halokartyara pedig nyomok egy switchet es kulon halozatot hozok letre ahova kotom a szervizes gepeket, es itt mar mehet a dhcp linux serverrol

      4. akár az is jó.
        csak majd állítsd be jól, hogy melyik hálókártyán fusson a dhcp szolgáltatás.

  2. Üdv!
    Az a gondom, hogy TFTP fail-ed el elszáll.
    Hol kell lenni a fileknak?
    -winxp.0
    -XPLDR
    -ntdetect.wxp
    -winxp.sif
    ,ha az útvonalam:
    /tftpboot/winxp/I386
    samba megosztás [wininstall]
    /tftpboot
    ez van a winxp.sif-be:
    [data]
    floppyless = „1”
    msdosinitiated = „1”
    OriSrc = „\pxelinux2wininstallwinxpI386”
    OriTyp = „4”
    LocalSourceOnCD = 1
    DisableAdminAccountOnDomainJoin = 1
    [SetupData]
    OsLoadOptions = „/fastdetect”
    SetupSourceDevice = „DeviceLanmanRedirectorpxelinux2wininstallwinxp”
    [RemoteInstall]
    Repartition = No
    UseWholeDisk = No
    [UserData]
    ComputerName = *
    valami ötlet?
    Köszi Csaba

  3. Szia!
    Sajnos nem elérhető egyik fájl sem, amit a hivatkozásokban említesz, fel tudnád tenni valahova máshova is?
    Köszi!

  4. Szia,
    Kipróbáltam a pxe xp telepitődet, debian lenny alatt. Odáig jól müködik hogy elkezdi a telepitést betölti a háló drivert, és kb 1 perc után kék halál „PROCESS1_INITIALIZATION_FAILTED” hiba.
    Próbáltam más gépen más hálódriverrel, de nem ez akasztja meg a telepitést. Kérlek ha van valami ötleted ird meg.

  5. Csaba!
    nálam így működött, de megáll, lentebb leírom miért.
    /tftpboot/
    -XPLDR
    -ntdetect.wxp
    -winxp.sif
    nálam:
    /tftpboot/win/i386 (i386 slink a smb share-ból)
    /tftpboot/win/winxp.0 meg az előbb sorolt fileok
    /tftpboot/win/INF ahova a hálókártya drivereket raktam, innen futtatom az infparsert is meg a binlsrvt is.
    „A számítógép vizsgálata…” majd megáll, hogy idézem:
    Az INF file hiányzik vagy hibás.
    és akkor ide rakja a szekciót:
    [SetupData]
    SetupSourceDevice
    a winnt.sif (winxp.sif) file-ban benne van, bár itt a weboldalon hiányoznak a backslash-ek a paraméterekből.
    ezt a két file-t átmásoltam az i386-ba is, de semmi változás…

  6. tfpd ‘-m’ -el tamogat remap file-t:
    rg \\ /
    r ^[^/] /win/
    #r ^[^/] /srv/tftpboot/win/
    rg A a # lower case
    rg B b # lower case
    rg C c # lower case
    rg D d # lower case
    rg E e # lower case
    rg F f # lower case
    rg G g # lower case
    rg H h # lower case
    rg I i # lower case
    rg J j # lower case
    rg K k # lower case
    rg L l # lower case
    rg M m # lower case
    rg N n # lower case
    rg O o # lower case
    rg P p # lower case
    rg Q q # lower case
    rg R r # lower case
    rg S s # lower case
    rg T t # lower case
    rg U u # lower case
    rg V v # lower case
    rg W w # lower case
    rg X x # lower case
    rg Y y # lower case
    rg Z z # lower case
    feltetelezve /tftboot/win/xp_eng_sp2 structurat, es a fenti remap mukodeset az alabbi makefile legyartja az eredeti telepito xp cd-bol a halozatrol bootolo valtozatot, viszont az inf fajlra szuksege van
    all: .rename
    cabextract i386/startrom.n1_
    cabextract i386/setupldr.ex_
    sed -i -e ‘s/NTLDR/ntxe2/gi’ startrom.n12
    sed -i -e ‘s/winnt.sif/winnt.xe2/gi’ setupldr.exe
    sed -i -e ‘s/ntdetect.com/ntdetect.xe2/gi’ setupldr.exe
    mv startrom.n12 winxp.0
    mv setupldr.exe ntxe2
    cp `pwd`/ntxe2 ..
    cp i386/ntdetect.com ../ntdetect.xe2
    cp winnt.sif ../winnt.xe2
    .rename:
    echo „*** it may fail, don’t worry re-run a few times ***”
    echo „*** after done .rename is created”
    find . -mindepth 1 -maxdepth 1 -type d -name ‘*[A-Z]*’ -exec rename ‘y/A-Z/a-z/’ „{}” \;
    find . -mindepth 2 -maxdepth 2 -type d -name ‘*[A-Z]*’ -exec rename ‘y/A-Z/a-z/’ „{}” \;
    find . -mindepth 3 -maxdepth 3 -type d -name ‘*[A-Z]*’ -exec rename ‘y/A-Z/a-z/’ „{}” \;
    find . -mindepth 4 -maxdepth 4 -type d -name ‘*[A-Z]*’ -exec rename ‘y/A-Z/a-z/’ „{}” \;
    find . -mindepth 5 -maxdepth 5 -type d -name ‘*[A-Z]*’ -exec rename ‘y/A-Z/a-z/’ „{}” \;
    find . -mindepth 6 -maxdepth 6 -type d -name ‘*[A-Z]*’ -exec rename ‘y/A-Z/a-z/’ „{}” \;
    find . -mindepth 7 -maxdepth 7 -type d -name ‘*[A-Z]*’ -exec rename ‘y/A-Z/a-z/’ „{}” \;
    find . -mindepth 8 -maxdepth 8 -type d -name ‘*[A-Z]*’ -exec rename ‘y/A-Z/a-z/’ „{}” \;
    find . -mindepth 1 -type f -name ‘*[A-Z]*’ ! -name Makefile -exec rename ‘y/A-Z/a-z/’ „{}” \;
    touch .rename

  7. Visszajelzés: WEB Patch #1 – PXE Boot | Vigh Péter blogja
  8. Visszajelzés: PXE Boot | Vigh Péter blogja
  9. Visszajelzés: dragon beard ドラゴンベアード DBシリーズ

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .