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.