Szerver Otthonra Linux alapon – III. Rész

A sorozat előző részeiben eljutottunk odáig, hogy van egy szerverünk a helyi hálózaton. Ami nagy valószínűséggel teszi a dolgát. Ez elég lehet örömre és boldogságra. Azonban ha már 24/7-ben járatunk egy gépet, akkor esetleg jó lenne munkahelyről/suliból is elérni a szerverünket, időközönként ránézni, fájljainkhoz hozzáférni.

Az interneten való elérés biztosítása igazából a router-ünk feladata. Ezért írtam is egy kiegészítést a router beállításos írásomhoz, amiből kiderül, hogy miként lehet kiengedni az internetre egy szervert, fix porton futó szolgáltatással. Azonban nem tanácsos megfelelő biztonsági intézkedések nélkül kiengedni akármit is az internetre. Hiszen azt senki sem szeretné, hogy feltörjék a szerverét, amin fontos adatok vannak. (megjegyzem 100%-os védelem nincs, azonban pár lépéssel minimalizálható a támadási felület.

SSH

Mivel az SSH biztosít távoli hozzáférési lehetőséget, valamint fájl átvitelt is, méghozzá titkosított módon ezért ezt a szolgáltatást célszerű kiengedni az internetre. Azonban ez hatalmas biztonsági kockázatot is hordoz. Úgyhogy az alapértelmezett konfiguráción változtatunk egy kicsit.

Erős jelszó a felhasználóknak

Első körben nem árt jó erős jelszavakat beállítani a felhasználóknak. (kisbetű, nagybetű, szám, speciális karakter, legalább 10 karakteres jelszó) Mivel a lustaság nagy úr, itt egy online jelszó generátor erre a célra. Ezen jelszavak megjegyezhetőségével gondok vannak, tény, de legalább biztonságosak.

Megjegyezhető, erős jelszavakat én úgy szoktam csinálni, hogy fogok egy dalszöveg részletet amit fejből tudok. Majd a szöveg részlet minden egyes szavának kezdő betűjét írom csak le. Így elég véletlen szerű szövegek szoktak keletkezni, amit ha mondjuk leetspeak formában ír le az ember garantáltan egyedi, és biztonságos jelszava lesz 🙂

Példa:

  1. “Take this life
    I’m right here
    Stay a while and breathe me in”
    In Flames – Take this Life-ból
  2. kimenet: ttlirhsawabmi
  3. Leet Speak konverzió után: 77L1r|-|$4\/\/4B/\/\1

SSH szerver konfiguráció

mcedit-el megnyitva az ssh démon konfigurációs állományát módosítunk pár dolgot

mcedit /etc/ssh/sshd_config

Alapértelmezetten az SSH a 22-es porton fut. Ezt tanácsos megváltoztatni, mondjuk egy 10000 feletti értékre. (összes kiengedett szolgáltatásra igaz, ami 10000 alatti vagy ismert portot használ) Ugyanis, így egy gyors port tesztel nem látszik egyből, hogy SSH is elérhető a gépen, csak egy teljes port tesztel, ami több időt vesz igénybe. A port megadásához a következő sort kell módosítani:

Port 22

Az SSH 2db protokoll verziót is definiál. A 2. változat jóval biztonságosabb, úgyhogy csak a második verzióval engedjünk klienseket csatlakozni. (a 2 verzió közötti különbségekről itt egy összehasonlítás) A módosításra szoruló sor az alábbi:

Protocol 2, 1

itt a , 1 tagot kell kitörölni. Továbbá tanácsos a root felhasználó bejelentkezését tiltani. Ez nem azt jelenti, hogy nem használható a root felhasználó, mivel bármelyik felhasználó root módra válthat az su parancs segítségével. Ez az tiltás csupán a root felhasználónév használatát tiltja. Ez azért tanácsos, mivel a belépéshez kell egy név és jelszó. root felhasználó minden gépen van, míg mondjuk egy gabor nevű nem feltétlenül. Ezért ha a konfigurációs fájlunkban nem szerepel az alábbi sor akkor adjuk hozzá, vagy ha az értéke no, módosítsuk yes-re:

PermitRootLogin yes

Továbbá érdemes csak 1-2 felhasználót engedélyezni bejelentkezésre (akiknek nagyon szükséges) Ezt az alábbi sor hozzáadásával, módosításával érhetjük el: (A felhasználókat szóközzel elválasztva kell megadni)

AllowUsers gabor

A fájl mentése után (F2)  az SSH újraindítása után életbe lépnek a módosítások:

/etc/init.d/ssh restart

Az SSH újraindítása után automatikusan a Putty nem fog lekapcsolódni, ezért ki kell lépni, majd újra csatlakozni.

Fail2Ban

A legtöbb esetben a támadók kulcs generátorok segítségével próbálnak bejelentkezni a szerverre. Ezek másodpercenként akár több ezer kulcs generálására és kipróbálására is képesek. A kedvüket a próbálkozástól 10-15 perces kitiltással igen gyorsan el lehet venni. Erre a dologra szolgál a Fail2Ban program. Telepítéséhez az alábbi parancsot kell kiadni:

apt-get install fail2ban

Ezután konfigurálni kell a szolgáltatást, amihez a következő fájlt kell szerkesztenünk:

/etc/fail2ban/jail.conf

A kitiltási idő a konfigurációs fájl [Default] szekciójában található bantime néven. Az érték másodpercben van megadva. Alapértelmezetten 600. (10 perc) Az SSH szolgáltatás védése alapértelmezetten be van kapcsolva (SSH szekció), a maximális rossz próbálkozások számát a maxretry sor módosításával szabályozhatjuk. Alapértelmezetten 6, de én le szoktam venni 3-ra.

Ezen módosításokkal be is van védve az SSH szolgáltatásunk.

WinSCP

A WinSCP egy windows alatt futó SCP kliens, amelyet a Putty-hoz hasonlóan nem kötelező telepíteni, ugyanis van telepítés nélkül működő változata is. Ez vállalati környezetben tud jól jönni. A program az alábbi címről szerezhető be: http://winscp.net/eng/download.php

Kinézetileg a program hasonló a Total Commanderhez, mivel lényegében ez is egy kétpaneles fájlkezelő, ahol az egyik panelen a távoli gép látható, a másik panelen meg a helyi gép fájlrendszere.

A Program indítása után egy a PuTTY indítása után látható ablakhoz hasonlót kapunk, ahol meg kell adnunk a szerverünk nevét (vagy IP címét), valamint a használt portot. A felhasználónév és jelszó megadására kapcsolódás közben is lehetőség van. Szintén menthetőek a kapcsolat beállításai, hogy később ne kelljen manuálisan beírogatni.

Ezután a program főablakában említett módon egyik panel a távoli fájlrendszer lesz, míg a másik a helyi fájlrendszer.

Végszó

A titkosítás némileg több CPU-t igényel, valamint lassabb egy picivel, mint a titkosítatlan adatátvitel, azonban ez a mai átlagos internet kapcsolatok és CPU sebességek mellet elenyésző plusz terhelésnek számít. Lehetett volna sima FTP szervert is felállítani, azonban ez több, mint valószínű nem a legjobb ötlet, mivel személyes, egyénenként fontos adatokról beszélünk. Amely nem lenne jó, ha nem jó kézbe kerülne. Szituációtól függően ennek az esélye elenyésző is lehet, azonban az ördög sosem alszik.