Ubuntu server 18.04.2 III. rész

Ubuntu 18.04.2

DHCP szerver beállítása

Most, hogy már működik a DNS szolgáltatás, beállítjuk a DHCP-t is, ne kelljen a klienseknek kézzel beállítgatni mindent…

Telepítsük fel a dhcp szolgáltatást: sudo apt install isc-dhcp-server

Következő lépésben meg kell adni, melyik hálókártyán szeretnénk dhcp-t szolgáltatni. Ehhez nyissuk meg az /etc/default/isc-dhcp-server fájlt is, majd módosítsuk:
sudo nano /etc/default/isc-dhcp-server

Korábbi verzióknál a /etc/default/dhcpd.conf fájlban kellett ugyanezt elvégezni. Most következik a tulajdonképpeni konfigurálás, ehhez nyissuk meg a /etc/dhcp/dhcpd.conf fájlt! Itt az alábbi beállításokat módosítjuk: (mivel nincs második dns szerverünk azt el is hagyhatjuk, de élesben érdemes egy tartalékot is beírni!)
sudo nano /etc/dhcp/dhcpd.conf

Mentés után újraindítjuk a szolgáltatást, és engedélyezzük. Nem árt ellenőrizni is! Ha minden rendben akkor zöld színnel jelzi.

sudo systemctl restart isc-dhcp-server
sudo systemctl enable isc-dhcp-server
sudo systemctl status isc-dhcp-server

Célszerű kipróbálni a kliens gépen is, ne felejtsük el átállítani statikus beállításról dhcp-re!
A tűzfalon nem kell engedélyezni most semmit.

Útválasztó, routing

Tegyük fel, hogy szeretnénk, ha a szerverünk internet elérést is biztosítana a belső hálózatnak. Ehhez nekünk kell beállítani az iptables-ben mit-merre továbbítson.

Három konfigurációs fájlt kell beállítani:

sudo nano /etc/default/ufw 
DEFAULT_FORWARD_POLICY=”ACCEPT”

sudo nano /etc/ufw/sysctl.conf 

ki kell venni a kommenteket:
net/ipv4/ip_forward=1
net/ipv4/conf/all/forwarding=1
net/ipv6/conf/default/forwarding=1 # if using IPv6

Adjuk hozzá az új szabályt a /etc/ufw/before.rules fájlhoz, a tetejére a kommentes rész után:

sudo nano /etc/ufw/before.rules

# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Forward traffic from enp0s8 to enp0s3
-A POSTROUTING -s 192.168.1.0/24 -o enp0s3 -j MASQUERADE
COMMIT

plusz #allow all on loopback-hez: -A ufw-before-input -i enp0s8 -j ACCEPT

Webkiszolgáló

Az Apache webkiszolgáló telepítése. Elég sok egyéb szolgáltatásnak is az alapja, pl: levelezés, webes adminisztráció…

Telepítés: sudo apt install apache2

Sikeres telepítés után a kliensen már meg is tekinthető az alap Apache weblap. (böngészőben: gyakorlat.and vagy 192.168.1.1)

Szerveren teszt: service apache2 status

Ne felejtsük el a tűzfalban is engedélyezni! sudo ufw allow apache

PHP telepítése:
sudo apt install php libapache2-mod-php

PHP tesztelése, írunk egy egy soros php scriptet:

sudo nano /var/www/html/info.php
<?php phpinfo(); ?>

Nyissuk meg böngészőben: gyakorlat.and/info.php

FTP kiszolgáló

Szerverünkön beállítunk egy ftp kiszolgálót is. Telepítés:
sudo apt install vsftpd

Ne feletsük el a tűzfalon átengedni: sudo ufw allow ftp plusz sudo ufw allow ftp-data
Plusz fel kell venni azt a port tartományt, amit használni szeretnnénk:

Anonymus ftp 

Létrehozunk egy mappát az ftp számára, amelyet bárki megtekinthet. Egy test.txt nevű fájlt is beleteszünk a példa kedvéért.

sudo mkdir -p /var/ftp/pub
sudo chown nobody:nogroup /var/ftp/pub
echo „vsftpd teszt, szöveges fájl” | sudo tee /var/ftp/pub/teszt.txt

Következik az ftp beállítása, ehhez a konfigurációs fájlt kell szerkeszteni:
sudo nano /etc/vsftpd.conf

Ezt a két értéket kell beállítani:anonymous_enable=Yes, local_enable=NO
A következő bejegyzéseket bárhová írhatjuk a fájlba:
# Ftp könyvtár megadása
anon_root=/var/ftp/
#
# nem fog ftp jelszót kérni
no_anon_password=YES
#
# Show the user and group as ftp:ftp, regardless of the owner.
hide_ids=YES
#
# A passzív módhoz használható portok megadása. Ezt kell a tűzfalnál is engedélyezni…
pasv_min_port=40000
pasv_max_port=50000

Végül mentés után az ftp szolgáltatás újraindítása:
sudo systemctl restart vsftpd

———————————————————————-

Az ftp szerver teszteléséhez használhatunk böngészőt vagy parancssort/terminalt a kliensen. Böngészőben: ftp://szerverneve

Parancssorban Windowson: ftp szerverneve, utána felhasználói név: anonymous

Ha beengedett, az ls paranccsal ki lehet listázni a könyvtárait, a cd parancs segítségével be lehet lépni adott könyvtárba. A get paranccsal pedig leölthetünk például egy txt fájlt.

A telepítés során létrejön egy ftp felhasználó, a saját könyvtára pedig a /srv/ftp. Ez az alapértelmezett FTP könyvtár. Ha meg szeretné változtatni ezt a helyet, akkor egyszerűen hozza létre a könyvtárat (például: /srv/files/ftp), és módosítsa az ftp felhasználó saját könyvtárát.

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

alapértelmezésben névtelen felhasználók nem tölthetnek fel fájlokat az FTP-kiszolgálóra. Ezen beállítás módosításához vegye ki a következő sort megjegyzésből, és indítsa újra a vsftpd démont: anon_upload_enable=YES

A módosítás után indítsa újra a vsftpd démont: sudo systemctl restart vsftpd.service
Végül másoljon át minden, a névtelen FTP-n megosztani kívánt fájlt és könyvtárat az /srv/files/ftp könyvtárba, vagy az /srv/ftp könyvtárba, ha az alapértelmezettet szeretné használni.

A névtelen ftp nem ajánlott, mert biztonsági kockázattal jár. Névtelen feltöltést lehetőleg soha ne engedélyezzünk!

Felhasználókat hitelesítő FTP konfigurálása

Alapértelmezésben a vsftpd be van állítva a rendszer felhasználóinak hitelesítésére, és számukra engedélyezi a fájlok letöltését. Ha a feltöltést is szeretné engedélyezni, akkor szerkessze az /etc/vsftpd.conf fájlt:

Indítsa újra a vsftpd démont:

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.

60

Tesztelés: ftp kapcsolathoz használhatjuk a Midnight Commandert például. F9, jobb/ftp kapcsolat. Itt a felhasználói nevet és a szerver címét kell megadnunk. A szerveren van például egy kapitany nevű felhasználóm:
kapitany@192.168.1.1 vagy kapitany@gyakorlat.and

Parancssorból: ftp gyakorlat.and ezután fogja kérni a felhasználói nevet, jelszót.

5 most common options are:

cd foldername #e.g. cd /downloads/recent
get filename #e.g. get thisisthefileiwant.text
put filename #e.g. put sendthistotheserver.txt
mget filenameregex #e.g mget * to get every file in a directory
mput filemameregex #e.g. mput *.txt to upload every txt file to the server

FTP biztonságossá tétele
Az /etc/vsftpd.conf tartalmazza a vsftpd biztonságosabbá tételét segítő beállításokat is. A felhasználók például saját könyvtárukra korlátozhatók a következő bejegyzéssel:

chroot_local_user=YES
Korlátozhatja felhasználók adott csoportját is a saját könyvtárukra:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

A fenti beállítások megjegyzésből való kivétele után hozzon létre egy /etc/vsftpd.chroot_list nevű fájlt, amely tartalmazza a felhasználók listáját, soronként egy felhasználót. Ezután indítsa újra a vsftpd démont:
sudo systemctl restart vsftpd.service

Az /etc/ftpusers fájl azon felhasználók listáját tartalmazza, akiknek nem engedélyezett az FTP elérése. Az alapértelmezett lista a root, daemon, nobody stb. felhasználókat tartalmazza. További felhasználók FTP-használatának megtiltásához egyszerűen vegye fel őket erre a listára.

FTPS: Ftp over Secure Socket LAyer (SSL) 

Az FTPS beállításához szerkesszük az /etc/vsftpd.conf fájlt, és vegyük ki a kommentet az  ssl_enable=Yes sor elől!

A módosítás érvényesítéséhez indítsuk újra a vsftpd-t:
sudo systemctl restart vsftpd.service

Ezután hozzunk létre egy scriptet a kliensen, mert nem fogja beengedni a szerver

sudo nano .lftprc

set ftp:ssl-auth TLS
set ftp:ssl-force true
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
set ftp:ssl-protect-fxp yes
set ssl:verify-certificate no

Mentés, majd kapcsolódás a szerverhez:
lftp username@hostname vagyis:
lftp kapitany@gyakorlat.and

Email küldése és fogadása

DNS beállítása, mx rekord felvétele

Utána ne felejtsük el újraindítani a szolgáltatást!
sudo systemctl restart bind9.service

Levélküldésre a postfix programot, a levél letöltésére a popa3d programot fpgjuk használni. Természetesen lehetne mást is, hiszen több fajta levelező szolgáltatás is elérhető.

apt-get install postfix
apt-get install popa3d

Postfix konfigurálása: telepítés közben pár dolgot be kell állítanunk. Ha esetleg valami kifelejtünk, vagy szeretnénk később módosítani, akkor: sudo dpkg-reconfigure postfix

General type of mail configuration?: Internet Site
System mail name: gyakorlat.and
Root and postmaster mail recipient: rendszergazda
Other destinations to accept mail for:
64
Force synchronous updates on mail queue?: No
Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Mailbox size limit: 0
Local address extension character: +
Internet protocols to use: all

A postfix konfigurációs fájl itt található: /etc/postfix/main.cf

Ne felejtsük el a tűzfalnál az engedélyezést: sudo ufw allow Postfix

Ezzel a két programmal most minden linuxos felhasználónak küldhető levél és mindegyiknek a levelei letölthetők. Nézzünk egy tesztet:

Levél küldés
Az alábbi paranccsal kapcsolódunk a levélküldő szerverhez: (a szerveren is tesztelhető)

telnet 192.168.1.25 25
(telnet gép ip címe, port Az árbrán eltérő ip látszik, mert akkor még más volt a gép címe.)

Ezek után a szerver válaszaival együtt a következőket kell beírnunk:

mail from:küldő email címe
rcpt to: címzett email címe
data
Subject: üzenet tárgya
Az üzenet szövege
. (lezárás)

Levél fogadás

telnet 192.168.1.25 110
(telnet gép ip címe, port Az ábrán itt is másik ip cím szerepel, ne zavarjon meg!)

+OK
user rendszergazda /* egy létező felhasználónév a szerveren */
+OK
pass jelszó /*a felhasználó jelszava*/
+OK
list 
1 397
.
quit

Levél olvasás: retr utána pedig a levél sorszáma.
Levél törlése: dele utána a levél sorszáma

Kipróbálhatjuk Thunderbird-del is. Adjuk meg a felhasználó nevét, email címét, jelszavát. Egyelőre nincs semmilyen hitelesítés.

Hibakeresés

Ha nem sikerül levelet küldeni, mert pl. a DNS szervernél nem adtunk meg MX rekodrot, vagy hiányzik a relay cím beállítása… A postfix log fájlt célszerű megnézni, ami itt található: /var/log/mail.log