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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<span style="color: #339966;">option domain-name "gyakorlat.and"; option domain-name-servers 192.168.1.1, 8.8.8.8; default-lease-time 600; max-lease-time 7200; ddns-update-style none; authoritative; log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.25.200; option subnet-mask 255.255.255.0; option routers 192.168.1.1; option broadcast-address 192.168.1.255; }</span> |
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:
1 |
iptables -I INPUT -p tcp --destination-port 40000:50000 -j ACCEPT |
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:
1 |
write_enable=YES |
Indítsa újra a vsftpd démont:
1 2 |
<span class="cmd command" style="color: #0000ff;">sudo systemctl restart vsftpd.service </span> |
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.
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:
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