Weboldal keresés

Kiszolgáló kezdeti beállítása az Ubuntu 20.04/18.04 és 16.04 verziójával


Ez az oktatóanyag elvezeti Önt az első alapvető lépésekhez, amelyeket egy új telepített Ubuntu szerveren kell konfigurálnia, hogy növelje szervere biztonságát és megbízhatóságát.

Az ebben a témában ismertetett konfigurációk szinte azonosak az összes Ubuntu szerverrendszerben, az alapul szolgáló operációs rendszer platformját illetően, függetlenül attól, hogy az Ubuntu csupasz kiszolgálóra, privát virtuális gépre vagy virtuális gépre van-e telepítve. egy VPS nyilvános felhőben pörgetve ki.

Követelmények

  • Ubuntu 20.04 kiszolgáló telepítése
  • Ubuntu 18.04 kiszolgáló telepítése
  • Ubuntu 16.04 kiszolgáló telepítése

Frissítse és frissítse az Ubuntu rendszert

Az Ubuntu szerver friss telepítése vagy egy újonnan telepített Ubuntu VPS esetén az első lépés, amelyre ügyelnie kell, hogy megbizonyosodjon arról, hogy a rendszer és az összes rendszerelem, mint pl. a kernel, az apt csomagkezelő és az összes többi telepített csomag naprakész a legújabb kiadott verziókkal és biztonsági javításokkal.

Az Ubuntu szerver frissítéséhez jelentkezzen be a szerver konzoljába root jogosultságokkal rendelkező fiókkal vagy közvetlenül root felhasználóként, és futtassa az alábbi parancsokat a frissítési és frissítési folyamat végrehajtásához.

sudo apt update 

A frissítési parancs futtatása után látni fogja a frissítési folyamathoz rendelkezésre álló csomagok számát és a csomagfrissítések listázásához használt parancsot.

sudo apt list --upgradable

Miután elolvasta a frissíthető csomagok listáját, adja ki az alábbi parancsot a rendszerfrissítési folyamat elindításához.

sudo apt upgrade

Az összes helyileg letöltött deb csomag és az összes többi apt-get gyorsítótár eltávolításához hajtsa végre az alábbi parancsot.

sudo apt autoremove
sudo apt clean

Hozzon létre új fiókot az Ubuntuban

Alapértelmezés szerint biztonsági intézkedésként a root fiók teljesen le van tiltva az Ubuntuban. Ha új fiókot szeretne létrehozni a rendszeren, jelentkezzen be a rendszerbe a root jogosultságokkal rendelkező felhasználói fiókkal, és hozzon létre egy új fiókot az alábbi paranccsal.

Ez az új fiók root jogosítványokkal lesz megadva a sudo paranccsal, és a rendszer adminisztrációs feladatainak végrehajtására szolgál majd. A fiók védelme érdekében erős jelszót állítson be. Kövesse az adduser utasítást a felhasználói adatok és a jelszó beállításához.

sudo adduser ubuntu_user

Ha ez a fiók egy másik rendszergazdához lesz hozzárendelve, a következő parancs kiadásával kényszerítheti a felhasználót a jelszó megváltoztatására az első bejelentkezési kísérletkor.

sudo chage -d0 ubuntu_user

Az új hozzáadott felhasználó egyelőre nem tud adminisztrációs feladatokat végrehajtani a sudo segédprogramon keresztül. Ha adminisztrátori jogosultságokkal szeretné megadni ezt az új felhasználói fiókot, vegye fel a felhasználót a „sudo” rendszercsoportba az alábbi parancs kiadásával.

sudo usermod -a -G sudo ubuntu_user

Alapértelmezés szerint a „sudo” csoporthoz tartozó összes felhasználó végrehajthat parancsokat root jogosultságokkal a sudo segédprogramon keresztül. A Sudo parancsot a végrehajtáshoz szükséges parancs megírása előtt kell használni, amint az az alábbi példában látható.

sudo apt install package_name

Tesztelje, hogy az új felhasználó rendelkezik-e root jogosultságokkal, jelentkezzen be a rendszerbe, és futtassa az apt update parancsot sudo előtaggal.

su - ubuntu_user
sudo apt update

Állítsa be a rendszergazda nevét az Ubuntuban

A gép gazdagépneve általában a rendszertelepítési folyamat során vagy a VPS felhőben történő létrehozásakor kerül beállításra. Azonban meg kell változtatnia a gép nevét, hogy jobban tükrözze a kiszolgáló rendeltetési helyét, vagy jobban leírja a végső célt.

Egy nagyvállalatnál a gépeket bonyolult elnevezési sémákról nevezik el, hogy könnyen azonosítható legyen a gép az adatközpont rackjein. Például, ha az Ubuntu gépe levelezőkiszolgálót fog üzemeltetni, a gép nevének tükröznie kell ezt a tényt, és beállíthatja a gép gazdagépnevét például mx01.mydomain.lanként.

A gép gazdagépnevének részleteinek megjelenítéséhez futtassa a következő parancsot.

hostnamectl

A gép nevének megváltoztatásához adja ki a hostnamectl parancsot azzal az új névvel, amelyet a gépéhez konfigurál, az alábbi kivonat szerint.

sudo hostnamectl set-hostname tecmint

Ellenőrizze a rendszer új nevét az alábbi parancsok egyikével.

hostname
hostname -s
cat /etc/hostname 

Állítsa be az SSH-t nyilvános kulcsú hitelesítéssel az Ubuntuban

Az Ubuntu-kiszolgáló rendszerbiztonsági szintjének növelése érdekében be kell állítania az SSH nyilvános kulcsú hitelesítést egy helyi fiókhoz. Az SSH-kulcspár létrehozásához a nyilvános és a privát kulcsot kulcshosszal, például 2048 bittel, hajtsa végre a következő parancsot a kiszolgálókonzolon.

Győződjön meg arról, hogy azzal a felhasználóval jelentkezett be a rendszerbe, akivel beállítja az SSH-kulcsot.

su - ubuntu_user
ssh-keygen -t RSA -b 2048

Amíg a kulcs létrejön, a rendszer kéri, hogy adja meg a jelszót a kulcs biztonsága érdekében. Ha az SSH-kiszolgálón keresztül szeretné automatizálni a feladatokat, megadhat erős jelmondatot, vagy üresen hagyhatja a jelszót.

Az SSH-kulcs létrehozása után az alábbi parancs végrehajtásával átmásolhatja a nyilvános kulcsot egy távoli szerverre. A nyilvános kulcs távoli SSH-kiszolgálóra történő telepítéséhez szükség van egy távoli felhasználói fiókra a megfelelő engedélyekkel és hitelesítési adatokkal a távoli kiszolgálóra való bejelentkezéshez.

ssh-copy-id remote_user@remote_server

SSH-n keresztül automatikusan be kell jelentkeznie a távoli kiszolgálóra a nyilvános kulcsú hitelesítési módszer használatával. SSH nyilvános kulcsú hitelesítés használata közben nem kell megadnia a távoli felhasználói jelszót.

Miután bejelentkezett a távoli szerverre, elindíthatja a parancsok végrehajtását, például a w parancsot a bejelentkezett ssh távoli felhasználók listázásához, amint az az alábbi képernyőképen látható.

A távoli SSH-munkamenet bezárásához írja be az exit parancsot a konzolba.

ssh remote_user@remote_server
w
exit

Ha meg szeretné tekinteni a nyilvános SSH-kulcs tartalmát, és kézzel szeretné telepíteni a kulcsot egy távoli SSH-kiszolgálóra, adja ki a következő parancsot.

cat ~/.ssh/id_rsa.pub

Biztonságos SSH-kiszolgáló az Ubuntuban

Az SSH-démon biztonsága érdekében módosítsa az alapértelmezett SSH-portszámot 22-ről egy véletlenszerű portra, amely magasabb, mint 1024, és tiltsa le a távoli SSH-hozzáférést a gyökérfiókhoz a következőn keresztül: jelszót vagy kulcsot, nyissa meg az SSH-kiszolgáló fő konfigurációs fájlját, és hajtsa végre a következő módosításokat.

sudo vi /etc/ssh/sshd_config

Először keressen a megjegyzésben szereplő #Port22 sorban, és adjon hozzá egy új sort (a figyelési port számát ennek megfelelően cserélje ki):

Port 2345

Ne zárja be a fájlt, görgessen le, és keresse meg a #PermitRootLogin yes sort, törölje a sor megjegyzését a # jel (hashtag) eltávolításával a sor elejéről, és módosítsa a sort az alábbi kivonatban látható módon.

PermitRootLogin no

Ezután indítsa újra az SSH-kiszolgálót az új beállítások alkalmazásához, és tesztelje a konfigurációt úgy, hogy egy távoli gépről próbál bejelentkezni erre a kiszolgálóra a root fiókkal az új portszámon keresztül. A root fiókhoz való hozzáférést SSH-n keresztül korlátozni kell.

sudo systemctl restart sshd

Ezenkívül futtassa a netstat vagy az ss parancsot, és szűrje ki a kimenetet a grep paranccsal, hogy megjelenítse az SSH-kiszolgáló új figyelési portszámát.

sudo ss -tlpn| grep ssh
sudo netstat -tlpn| grep ssh

Vannak olyan helyzetek, amikor bizonyos tétlenség után automatikusan meg kell szakítania a kiszolgálóval létrehozott távoli SSH-kapcsolatokat.

A funkció engedélyezéséhez hajtsa végre az alábbi parancsot, amely hozzáadja a TMOUT bash változót a fiókja .bashrc rejtett fájljához, és kényszerít minden SSH-kapcsolatot a fiók nevével. a felhasználót 5 perc inaktivitás után le kell választani vagy ki kell hagyni.

echo 'TMOUT=300' >> .bashrc

Futtassa a tail parancsot, hogy ellenőrizze, hogy a változó megfelelően lett-e hozzáadva a .bashrc fájl végéhez. Ezentúl minden további SSH-kapcsolat 5 perc inaktivitás után automatikusan bezárul.

tail .bashrc

Az alábbi képernyőképen a távoli SSH munkamenet a drupal gépről az Ubuntu szerverre az ubuntu_user fiókon keresztül lejárt, és 5 perc után automatikusan kijelentkezett.

Állítsa be az Ubuntu Firewall UFW-t

Minden szervernek szüksége van egy jól konfigurált tűzfalra a rendszer hálózati szintű biztonsága érdekében. Az Ubuntu szerver UFW alkalmazást használ az iptables szabályok kezelésére a szerveren.

Ellenőrizze az UFW tűzfalalkalmazás állapotát az Ubuntuban az alábbi parancsok kiadásával.

sudo systemctl status ufw
sudo ufw status

Általában az UFW tűzfaldémon működik és fut az Ubuntu kiszolgálón, de a szabályok alapértelmezés szerint nem érvényesek. Mielőtt engedélyezné az UFW tűzfal házirendjét a rendszerben, először fel kell vennie egy új szabályt, amely lehetővé teszi az SSH-forgalom áthaladását a tűzfalon a megváltozott SSH-porton keresztül. A szabályt az alábbi parancs végrehajtásával adhatjuk hozzá.

sudo ufw allow 2345/tcp

Miután engedélyezte az SSH forgalmat, engedélyezheti és ellenőrizheti az UFW tűzfalalkalmazást a következő parancsokkal.

sudo ufw enable
sudo ufw status

Ha új tűzfalszabályokat szeretne hozzáadni a kiszolgálóra később telepített egyéb hálózati szolgáltatásokhoz, például HTTP-kiszolgálóhoz, levelezőszerverhez vagy más hálózati szolgáltatásokhoz, használja az alábbi példákat a tűzfalparancsokra útmutatóként.

sudo ufw allow http  #allow http traffic
sudo ufw allow proto tcp from any to any port 25,443  # allow https and smtp traffic

Az összes tűzfalszabály felsorolásához futtassa az alábbi parancsot.

sudo ufw status verbose

Állítsa be az Ubuntu szerver idejét

Az Ubuntu szerver órájának és egyéb kapcsolódó időbeállításainak vezérléséhez vagy lekérdezéséhez adja ki a timedatectl parancsot argumentum nélkül.

A szerver időzóna-beállításainak módosításához először hajtsa végre a timedatectl parancsot list-timezones argumentummal az összes elérhető időzóna listázásához, majd állítsa be a rendszer időzónáját az alábbi kivonat szerint.

sudo timedatectl 
sudo timedatectl list-timezones 
sudo timedatectl set-timezone Europe/Vienna

Az új systemd-timesyncd systemd démon kliens használható az Ubuntuban, hogy pontos időt biztosítson a szervere számára a hálózaton keresztül, és szinkronizálja az időt egy felsőbb idejű társszerverrel.

A Systemd új funkciójának alkalmazásához módosítsa a systemd-timesyncd démon konfigurációs fájlt, és adja hozzá a földrajzilag legközelebbi NTP-kiszolgálókat az NTP utasítássorához, ahogy az alábbi fájlrészletben látható:

sudo nano /etc/systemd/timesyncd.conf

Adja hozzá a következő konfigurációt a timesyncd.conf fájlhoz:

[Time]
NTP=0.pool.ntp.org 1.pool.ntp.org
FallbackNTP=ntp.ubuntu.com

A legközelebbi földrajzilag NTP-kiszolgálók hozzáadásához tekintse meg az NTP pool projektkiszolgálók listáját a következő címen: http://www.pool.ntp.org/en/

Ezután indítsa újra a Systemd timesync démont, hogy tükrözze a változásokat, és ellenőrizze a démon állapotát az alábbi parancsok futtatásával. Újraindítás után a démon elkezdi szinkronizálni az időt az új ntp szerverrel.

sudo systemctl restart systemd-timesyncd.service 
sudo systemctl status systemd-timesyncd.service

Tiltsa le és távolítsa el a szükségtelen szolgáltatásokat az Ubuntuban

Az Ubuntu-kiszolgálón alapértelmezés szerint működő TCP- és UDP-hálózati szolgáltatások listájának megtekintéséhez hajtsa végre az ss vagy a netstat parancsot.

sudo netstat -tulpn
OR
sudo ss -tulpn

Az Ubuntu 16.10 kiadást tekintve az alapértelmezett DNS-feloldót mostantól a systemd-resolved szolgáltatás vezérli, amint azt a netstat vagy kimenete mutatja. >ss parancsok.

A következő parancs futtatásával ellenőrizze a systemd-resolved szolgáltatás állapotát is.

sudo systemctl status systemd-resolved.service

A rendszer által feloldott szolgáltatás az összes engedélyezett hálózati interfészen kötődik, és az 53 és az 5355 TCP és UDP portokon figyel.

A rendszer által feloldott gyorsítótárazó DNS-démon futtatása egy éles kiszolgálón veszélyes lehet a rosszindulatú hackerek által a nem biztonságos DNS-kiszolgálók ellen végrehajtott számos DDOS-támadás miatt.

A szolgáltatás leállításához és letiltásához hajtsa végre a következő parancsokat.

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved

Az ss vagy a netstat parancs kiadásával ellenőrizze, hogy a szolgáltatást leállították-e és letiltották-e. A rendszer által feloldott figyelőportok, az 53-as és az 5355-ös TCP és UDP, nem szerepelhetnek a netstat vagy az ss parancs kimenetében, amint az alább látható.

A rendszer által feloldott démonszolgáltatások teljes letiltásához és az alapértelmezett /etc/resolv.conf fájl visszaállításához is újra kell indítania a gépet.

sudo ss -tulpn
sudo netstat -tulpn
sudo systemctl reboot

Bár letiltott néhány nem kívánt hálózati szolgáltatást a szerverén, más szolgáltatások is telepítve vannak és futnak a rendszeren, például az lxc folyamat és a snapd szolgáltatás. Ezek a szolgáltatások könnyen észlelhetők ps, top vagy pstree parancsokkal.

sudo ps aux
sudo top
sudo pstree

Abban az esetben, ha nem használja az LXC konténervirtualizációt a szerverén, vagy nem kezdi el a Snap csomagkezelőn keresztül csomagolt szoftverek telepítését, akkor az alábbi parancsok kiadásával teljesen le kell tiltania és el kell távolítania ezeket a szolgáltatásokat.

sudo apt autoremove --purge lxc-common lxcfs
sudo apt autoremove --purge snapd

Ez minden! Mostantól az Ubuntu szerver felkészült az egyéni hálózati szolgáltatásokhoz vagy alkalmazásokhoz szükséges további szoftverek telepítésére, például webszerver, adatbázis-kiszolgáló, fájlmegosztó szolgáltatás vagy más speciális alkalmazások telepítésére és konfigurálására.