Esmane serveri seadistamine Ubuntu versioonidega 20.04/18.04 ja 16.04


See õpetus juhendab teid esimeses uues installitud Ubuntu serveris konfigureerimise põhisammudes, et suurendada oma serveri turvalisust ja töökindlust.

Selles teemas selgitatud konfiguratsioonid on kõigi Ubuntu serverisüsteemide jaoks peaaegu samad, arvestades põhiosa platvormi, sõltumata sellest, kas Ubuntu on installitud paljasmetalliserverisse, privaatsesse virtuaalsesse masinasse või virtuaalsesse masinasse, mis on VPS-is välja tõmmatud pilv.

  • Ubuntu 20.04 serveri installimine
  • Ubuntu 18.04 serveri installimine
  • Ubuntu 16.04 serveri installimine

Värskendage ja uuendage Ubuntu süsteemi

Esimene samm, mille peate Ubuntu serveri või uue juurutatud Ubuntu VPS-i värske installimise korral hoolitsema, on veenduda, et süsteem ja kõik süsteemi komponendid, näiteks kernel, turvapaigad.

Ubuntu serveri värskendamiseks logige serveri konsooli sisse root-õigustega kontoga või otse juurkasutajana ja käivitage värskendamis- ja täiendamisprotsessi teostamiseks järgmised käsud.

$ sudo apt update 

Pärast värskenduskäsu käivitamist näete värskendamisprotsessis saadaolevate pakettide arvu ja pakettide värskenduste loendamiseks kasutatavat käsku.

$ sudo apt list --upgradable

Kui olete tutvunud täiendamiseks pakutavate pakettide loendiga, väljastage süsteemi täiendamise alustamiseks järgmine käsk.

$ sudo apt upgrade

Kõigi kohapeal alla laaditud deb-pakettide ja kõigi muude apt-get-vahemälude eemaldamiseks käivitage järgmine käsk.

$ sudo apt autoremove
$ sudo apt clean

Looge Ubuntu uus konto

Vaikimisi on turvameetmena juurkonto Ubuntu täielikult keelatud. Uue konto loomiseks süsteemis logige süsteemi juurkasutajaga kasutajaga süsteemi sisse ja looge alloleva käsuga uus konto.

Sellele uuele kontole antakse root-õigused sudo käsu kaudu ja seda kasutatakse süsteemi haldusülesannete täitmiseks. Selle konto kaitsmiseks seadistage kindlasti tugev parool. Kasutajaandmete ja parooli seadistamiseks järgige lisakasutaja käsku.

$ sudo adduser ubuntu_user

Kui see konto määratakse teisele süsteemiadministraatorile, saate sundida kasutajat parooli muutma esimesel sisselogimiskatsel, väljastades järgmise käsu.

$ sudo chage -d0 ubuntu_user

Praegu ei saa uus lisatud kasutaja sudo utiliidi kaudu administraatori ülesandeid täita. Selle uue administraatoriõigustega kasutajakonto andmiseks peaksite lisama kasutaja\"sudo \" süsteemigruppi, väljastades alltoodud käsu.

$ sudo usermod -a -G sudo ubuntu_user

Vaikimisi on kõigil sudo rühma kuuluvatel kasutajatel sudo utiliidi kaudu lubatud käske täita root õigustega. Enne käivitamiseks vajaliku käsu kirjutamist tuleb kasutada Sudo käsku, nagu on näidatud allpool toodud näites.

$ sudo apt install package_name

Kontrollige, kas uuel kasutajal on juurõigused antud, logides süsteemi sisse ja käivitage sudo eesliitega käsk apt update.

$ su - ubuntu_user
$ sudo apt update

Konfigureerige süsteemi hostinimi Ubuntu

Tavaliselt seadistatakse masina hostinimi süsteemi installiprotsessi käigus või siis, kui pilves luuakse VPS. Serveri sihtkoha paremaks kajastamiseks või selle lõppeesmärgi paremaks kirjeldamiseks peaksite siiski oma masina nime muutma.

Suures ettevõttes nimetatakse masinaid keerukate nimetamisskeemide järgi, et masinat andmekeskuse riiulites hõlpsalt tuvastada. Näiteks kui teie Ubuntu masin haldab meiliserverit, peaks selle nimi kajastuma masina nimi ja saate masina hosti nime seadistada näiteks mx01.mydomain.lan.

Masina hosti nime üksikasjade kuvamiseks käivitage järgmine käsk.

$ hostnamectl

Masina nime muutmiseks väljastage käsk hostnamectl uue nimega, mille seadistate oma masinale, nagu on näidatud allpool olevas katkendis.

$ sudo hostnamectl set-hostname tecmint

Kontrollige oma süsteemi uut nime ühe alloleva käsu abil.

$ hostname
$ hostname -s
$ cat /etc/hostname 

SSH seadistamine avaliku võtme autentimisega Ubuntu

Ubuntu serveri süsteemi turvalisuse taseme tõstmiseks peaksite seadistama kohaliku konto SSH avaliku võtme autentimise. SSH-võtmepaari loomiseks täidab avalik ja privaatne võti, määrates võtme pikkuse, näiteks 2048-bitised, oma serveripuldis järgmise käsu.

Veenduge, et oleksite süsteemi sisse loginud selle kasutajaga, kellega seadistate SSH-võtit.

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

Võtme loomise ajal palutakse teil võtme kindlustamiseks lisada parool. Kui soovite ülesandeid SSH-serveri kaudu automatiseerida, võite sisestada tugeva parooli või jätta parool tühjaks.

Pärast SSH-võtme genereerimist saate avaliku võtme kaugserverisse kopeerida, käivitades alloleva käsu. Avaliku võtme SSH-serverisse installimiseks vajate kaugserverisse sisselogimiseks kaugkasutajakontot, millel on õiged õigused ja mandaadid.

$ ssh-copy-id [email _server

Teil peaks olema võimalik SSH kaudu automaatselt kaugserverisse sisse logida, kasutades avaliku võtme autentimismeetodit. SSH avaliku võtme autentimise ajal ei pea te lisama kaugkasutaja parooli.

Pärast kaugserverisse sisselogimist võite hakata täitma käske, näiteks käsk w kaugsisseloginud ssh-i kasutajate loendamiseks, nagu on näidatud alloleval ekraanipildil.

SSH kaugseansi sulgemiseks tippige konsoolis exit.

$ ssh [email _server
$ w
$ exit

Avaliku SSH-võtme sisu nägemiseks ja võtme käsitsi SSH-serverisse installimiseks väljastage järgmine käsk.

$ cat ~/.ssh/id_rsa.pub

Turvaline SSH-server Ubuntu

SSH-deemoni turvalisuse tagamiseks peaksite muutma SSH-i vaikepordi numbri 22-st juhuslikuks porti, mis on suurem kui 1024, ja keelama SSH-i kaugjuurdepääs juurkontole parooli või võtme kaudu, avades SSH-serveri peamise konfiguratsioonifaili ja tehes järgmised muudatused.

$ sudo vi /etc/ssh/sshd_config

Esmalt otsige kommenteeritud rida # Port22 ja lisage selle alla uus rida (asendage vastavalt kuulamisporti number):

Port 2345

Ärge sulgege faili, kerige alla ja otsige rida #PermitRootLogin jah, tühjendage rida, eemaldades märgi # (räsimärk) rea algusest ja muutke rida nii, nagu see on näidatud allpool olevas katkendis.

PermitRootLogin no

Seejärel taaskäivitage SSH-server, et rakendada uusi sätteid ja testida konfiguratsiooni, proovides uue pordi numbri kaudu kaugmasinast juurkontoga sellesse serverisse sisse logida. Juurdepääs juurkontole SSH kaudu peaks olema piiratud.

$ sudo systemctl restart sshd

Samuti käivitage käsk grep, et näidata SSH-serveri uut kuulamisporti.

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

On olukordi, kus pärast mõnda tegevusetust võiksite automaatselt kõik serveriga loodud SSH-kaugühendused katkestada.

Selle funktsiooni lubamiseks käivitage järgmine käsk, mis lisab teie kontole .bashrc peidetud faili TMOUT bash muutuja ja sunnib iga kasutaja nimega loodud SSH-ühenduse katkestama või pärast 5-minutist tegevusetust katkestama.

$ echo 'TMOUT=300' >> .bashrc

Käivitage saba käsk, et kontrollida, kas muutuja on õigesti lisatud .bashrc faili lõppu. Kõik järgnevad SSH-ühendused suletakse pärast 5-minutist tegevusetust automaatselt.

$ tail .bashrc

Alloleval ekraanipildil on SSH kaugseanss drupali masinast ubuntu_useri konto kaudu Ubuntu serverini aegunud ja automaatne väljalogimine 5 minuti pärast.

Seadistage Ubuntu tulemüüri UFW

Iga server vajab süsteemi turvaliseks võrgutasandil hästi konfigureeritud tulemüüri. Ubuntu server kasutab serveris iptables-i reeglite haldamiseks UFW-rakendust.

Kontrollige Ubuntu UFW tulemüüri rakenduse olekut, väljastades järgmised käsud.

$ sudo systemctl status ufw
$ sudo ufw status

Tavaliselt töötab UFW tulemüüri deemon Ubuntu serveris ja töötab, kuid reegleid vaikimisi ei rakendata. Enne oma süsteemis UFW tulemüüri poliitika lubamist peate kõigepealt lisama uue reegli, mis võimaldab SSH-liiklusel läbida tulemüüri muudetud SSH-pordi kaudu. Reegli saab lisada alloleva käsu käivitamisega.

$ sudo ufw allow 2345/tcp

Pärast SSH-liikluse lubamist saate UFW tulemüürirakenduse lubada ja kontrollida järgmiste käskudega.

$ sudo ufw enable
$ sudo ufw status

Uute tulemüürireeglite lisamiseks teistele teie serverisse installitud võrguteenustele, näiteks HTTP-serverile, meiliserverile või teistele võrguteenustele, kasutage juhendina allolevaid tulemüüri käskude näiteid.

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

Kõigi tulemüüri reeglite loetlemiseks käivitage järgmine käsk.

$ sudo ufw status verbose

Määrake Ubuntu Serveri aeg

Ubuntu serveri kella ja muude seotud aja seadete juhtimiseks või päringute teostamiseks käivitage käsk timedatectl ilma argumendita.

Serveri ajavööndi sätete muutmiseks käivitage kõigepealt käsk timedatectl koos argumendiga loetelu-ajavööndid, et loetleda kõik saadaolevad ajavööndid, ja seejärel määrake oma süsteemi ajavöönd, nagu on näidatud allpool väljavõttes.

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

Uut systemd-timesyncd systemd deemoni klienti saab kasutada Ubuntus, et pakkuda oma serveri jaoks kogu võrgus täpset aega ja sünkroonida aega ülemise aja sarnase serveriga.

Selle Systemdi uue funktsiooni rakendamiseks muutke süsteemi de-timesyncd deemoni konfiguratsioonifaili ja lisage NTP-lause reale lähimad geograafiliselt NTP-serverid, nagu on näidatud allpool olevas faili väljavõttes:

$ sudo nano /etc/systemd/timesyncd.conf

Lisage failile timesyncd.conf järgmine konfiguratsioon:

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

Lähimate geograafiliselt NTP-serverite lisamiseks vaadake NTP-i poolte projektiserverite loendit järgmisel aadressil: http://www.pool.ntp.org/en/

Seejärel taaskäivitage Systemd timesynci deemon, et kajastada muudatusi ja kontrollida deemoni olekut, käivitades allpool olevad käsud. Pärast taaskäivitamist hakkab deemon aega sünkroonima uue ntp-serveri eakaaslasega.

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

Keelake ja eemaldage Ubuntu mittevajalikud teenused

Kõigi TCP- ja UDP-võrguteenuste loendi saamiseks, mis on teie Ubuntu serveris vaikimisi toimivad, käivitage käsk ss või netstat.

$ sudo netstat -tulpn
OR
$ sudo ss -tulpn

Ubuntu 16.10 väljalasega jõllitades juhib DNS-i vaikeregulaatorit nüüd süsteemd-lahendatud teenus, nagu näitab netstat- või ss-käskude väljund.

Samuti peaksite kontrollima systemd lahendatud teenuse olekut, käivitades järgmise käsu.

$ sudo systemctl status systemd-resolved.service

Systemd-lahendusega teenus seob kõiki lubatud võrguliideseid ja kuulab porte 53 ja 5355 TCP ja UDP.

Süsteemiga lahendatud vahemällu salvestatud DNS-deemoni käitamine tootmisserveris võib olla ohtlik arvukate DDOS-rünnakute tõttu, mille pahatahtlikud häkkerid teevad turvamata DNS-serverite vastu.

Selle teenuse peatamiseks ja keelamiseks täitke järgmised käsud.

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

Kontrollige, kas teenus on peatatud ja keelatud, väljastades ss või netstat käsu. Systemd-lahendusega kuulamisportid 53 ja 5355 TCP ja UDP ei tohiks olla loetletud netstat ega ss käskude väljundis, nagu allpool illustreeritud.

Kõigi süsteemiga lahendatud deemoniteenuste täielikuks keelamiseks ja vaikefaili /etc/resolv.conf taastamiseks peaksite masina taaskäivitama.

$ sudo ss -tulpn
$ sudo netstat -tulpn
$ sudo systemctl reboot

Ehkki olete keelanud mõned soovimatud võrguteenused oma serveris töötamiseks, on teie süsteemis installitud ja töötab ka muid teenuseid, näiteks lxc-protsess ja snapd-teenus. Neid teenuseid saab hõlpsasti tuvastada käskude top või pstree abil.

$ sudo ps aux
$ sudo top
$ sudo pstree

Juhul, kui te ei kavatse oma serveris kasutada LXC konteinerite virtualiseerimist ega hakka installima tarkvara Snap pakettihaldurit, peaksite need teenused täielikult keelama ja eemaldama, väljastades alltoodud käsud.

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

See on kõik! Nüüd on Ubuntu server nüüd valmis lisatarkvara installimiseks, mis on vajalik kohandatud võrguteenuste või rakenduste jaoks, näiteks veebiserveri, andmebaasiserveri, failijagamisteenuse või muude konkreetsete rakenduste installimiseks ja konfigureerimiseks.