Sākotnējā servera iestatīšana ar Ubuntu 20.04/18.04 un 16.04


Šī apmācība palīdzēs jums veikt pirmās pamata darbības, kas jākonfigurē jaunam instalētam Ubuntu serverim, lai palielinātu servera drošību un uzticamību.

Šajā tēmā izskaidrotās konfigurācijas visām Ubuntu serveru sistēmām ir gandrīz vienādas attiecībā uz pamatā esošo OS platformu, neatkarīgi no tā, vai Ubuntu ir instalēts tukša metāla serverī, privātā virtuālā mašīnā vai virtuālā mašīnā, kas izvērsta VPS mākonis.

  • Ubuntu 20.04 servera instalēšana
  • Ubuntu 18.04 servera instalēšana
  • Ubuntu 16.04 servera instalēšana

Atjauniniet un jauniniet Ubuntu sistēmu

Pirmais solis, par kuru jums jārūpējas, ja tiek instalēta jauna Ubuntu servera vai jauna izvietota Ubuntu VPS, ir pārliecināties, ka sistēma un visi sistēmas komponenti, piemēram, kodols, drošības ielāpi.

Lai atjauninātu Ubuntu serveri, piesakieties servera konsolē ar kontu ar root tiesībām vai tieši kā root un izpildiet tālāk norādītās komandas, lai veiktu atjaunināšanas un jaunināšanas procesu.

$ sudo apt update 

Pēc atjaunināšanas komandas palaišanas jūs redzēsiet pieejamo pakotņu skaitu jaunināšanas procesam un komandu, kas izmantota pakotņu jauninājumu uzskaitīšanai.

$ sudo apt list --upgradable

Kad esat iepazinies ar jaunināšanai pieejamo pakotņu sarakstu, izsniedziet zemāk esošo komandu, lai sāktu sistēmas jaunināšanas procesu.

$ sudo apt upgrade

Lai noņemtu visas lokāli lejupielādētās deb pakotnes un visas citas apt-get kešatmiņas, izpildiet tālāk norādīto komandu.

$ sudo apt autoremove
$ sudo apt clean

Izveidojiet jaunu kontu Ubuntu

Pēc noklusējuma kā drošības līdzeklis Ubuntu saknes konts ir pilnībā atspējots. Lai sistēmā izveidotu jaunu kontu, piesakieties sistēmā ar konta lietotāju ar root tiesībām un izveidojiet jaunu kontu ar zemāk esošo komandu.

Šis jaunais konts tiks piešķirts ar root pilnvarām, izmantojot sudo komandu, un tiks izmantots administratīvo uzdevumu veikšanai sistēmā. Lai aizsargātu šo kontu, noteikti iestatiet stingru paroli. Izpildiet adduser uzvedni, lai iestatītu lietotāja informāciju un paroli.

$ sudo adduser ubuntu_user

Ja šis konts tiks piešķirts citam sistēmas administratoram, varat piespiest lietotāju mainīt paroli jau pirmajā reģistrēšanās mēģinājumā, izsniedzot šādu komandu.

$ sudo chage -d0 ubuntu_user

Pagaidām jaunais pievienotais lietotājs nevar veikt administratīvos uzdevumus, izmantojot sudo utilītu. Lai piešķirtu šim jaunajam lietotāja kontam administratīvās privilēģijas, jums jāpievieno lietotājs “sudo” sistēmu grupai, izsniedzot tālāk norādīto komandu.

$ sudo usermod -a -G sudo ubuntu_user

Pēc noklusējuma visiem lietotājiem, kas pieder grupai “sudo”, ir atļauts izpildīt komandas ar root tiesībām, izmantojot sudo utilītu. Sudo komanda jāizmanto pirms izpildei nepieciešamās komandas rakstīšanas, kā parādīts zemāk esošajā piemērā.

$ sudo apt install package_name

Pārbaudiet, vai jaunajam lietotājam ir piešķirtas root tiesības, piesakoties sistēmā, un palaidiet komandu apt update ar sudo.

$ su - ubuntu_user
$ sudo apt update

Konfigurējiet sistēmas resursdatora nosaukumu Ubuntu

Parasti mašīnas resursdatora nosaukums tiek iestatīts sistēmas instalēšanas procesā vai tad, kad VPS tiek izveidots mākonī. Tomēr, lai labāk atspoguļotu servera galamērķi vai labāk aprakstītu tā galīgo mērķi, jums jāmaina ierīces nosaukums.

Lielā uzņēmumā mašīnas tiek nosauktas pēc sarežģītām nosaukšanas shēmām, lai mašīnu varētu viegli identificēt datu centra statīvos. Piemēram, ja jūsu Ubuntu mašīna darbosies ar pasta serveri, iekārtas nosaukumam ir jāatspoguļo šis fakts, un jūs varat iestatīt mašīnas resursdatora nosaukumu, piemēram, mx01.mydomain.lan.

Lai parādītu informāciju par jūsu datora resursdatora nosaukumu, izpildiet šo komandu.

$ hostnamectl

Lai mainītu datora nosaukumu, izsniedziet komandu hostnamectl ar jauno nosaukumu, kuru konfigurēsit savai mašīnai, kā parādīts zemāk esošajā fragmentā.

$ sudo hostnamectl set-hostname tecmint

Pārbaudiet jauno sistēmas nosaukumu, izmantojot kādu no šīm komandām.

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

Iestatiet SSH ar publiskās atslēgas autentifikāciju Ubuntu

Lai palielinātu Ubuntu servera sistēmas drošības pakāpi, vietējam kontam ir jāiestata SSH publiskās atslēgas autentifikācija. Lai ģenerētu SSH atslēgu pāri, publiskā un privātā atslēga, norādot atslēgas garumu, piemēram, 2048 bitus, servera konsolē izpilda šo komandu.

Pārliecinieties, vai esat pieteicies sistēmā ar lietotāju, kuram iestatāt SSH atslēgu.

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

Kamēr atslēga tiek ģenerēta, jums tiks lūgts pievienot ieejas frāzi, lai atslēgu aizsargātu. Varat ievadīt stingru ieejas frāzi vai izvēlēties atstāt ieejas frāzi tukšu, ja vēlaties automatizēt uzdevumus, izmantojot SSH serveri.

Kad SSH atslēga ir ģenerēta, varat kopēt publisko atslēgu uz attālo serveri, izpildot tālāk norādīto komandu. Lai instalētu publisko atslēgu attālajā SSH serverī, lai pieteiktos attālajā serverī, būs nepieciešams attāls lietotāja konts ar atbilstošām atļaujām un akreditācijas datiem.

$ ssh-copy-id [email _server

Jums vajadzētu būt iespējai automātiski pieteikties, izmantojot SSH, attālajā serverī, izmantojot publiskās atslēgas autentifikācijas metodi. Lietojot SSH publiskās atslēgas autentifikāciju, jums nebūs jāpievieno attālā lietotāja parole.

Kad esat pieteicies attālajā serverī, varat sākt izpildīt komandas, piemēram, komandu w, lai uzskaitītu ssh attāli reģistrētos lietotājus, kā parādīts zemāk esošajā ekrānuzņēmumā.

Lai aizvērtu attālo SSH sesiju, konsolē ierakstiet exit.

$ ssh [email _server
$ w
$ exit

Lai redzētu savas publiskās SSH atslēgas saturu un manuāli instalētu atslēgu attālā SSH serverī, izsniedziet šādu komandu.

$ cat ~/.ssh/id_rsa.pub

Drošs SSH serveris Ubuntu

Lai nodrošinātu SSH dēmonu, jānomaina noklusējuma SSH porta numurs no 22 uz nejaušu portu, kas lielāks par 1024, un jāaizliedz attāla SSH piekļuve saknes kontam, izmantojot paroli vai atslēgu, atverot SSH servera galveno konfigurācijas failu un veicot sekojošās izmaiņas.

$ sudo vi /etc/ssh/sshd_config

Vispirms meklējiet komentējamo rindiņu # Port22 un zem tās pievienojiet jaunu rindu (attiecīgi nomainiet klausīšanās porta numuru):

Port 2345

Neaizveriet failu, ritiniet uz leju un meklējiet līniju #PermitRootLogin jā, noņemiet komentāru no līnijas, noņemot # zīmi (mirkļbirku) no rindas sākuma un modificējiet līniju tā, lai tā izskatās zemāk esošajā fragmentā.

PermitRootLogin no

Pēc tam restartējiet SSH serveri, lai lietotu jaunos iestatījumus, un pārbaudiet konfigurāciju, mēģinot pieteikties no attālās mašīnas uz šo serveri ar saknes kontu, izmantojot jauno porta numuru. Piekļuve saknes kontam, izmantojot SSH, būtu jāierobežo.

$ sudo systemctl restart sshd

Arī palaidiet komandu grep, lai parādītu jauno klausīšanās porta numuru SSH serverim.

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

Ir situācijas, kad pēc neaktivitātes perioda, iespējams, vēlēsities automātiski atvienot visus jūsu serverī izveidotos attālos SSH savienojumus.

Lai iespējotu šo funkciju, izpildiet zemāk redzamo komandu, kas jūsu kontam .bashrc pievieno slēpto failu TMOUT bash mainīgo un piespiež katru SSH savienojumu, kas izveidots ar lietotāja vārdu, atvienot vai atcelt pēc 5 minūšu neaktivitātes.

$ echo 'TMOUT=300' >> .bashrc

Palaidiet komandu tail, lai pārbaudītu, vai mainīgais ir pareizi pievienots .bashrc faila beigās. Visi turpmākie SSH savienojumi tiks automātiski slēgti pēc 5 minūšu neaktivitātes.

$ tail .bashrc

Tālāk redzamajā ekrānuzņēmumā ir noildze no SSD attālās sesijas no drupal mašīnas uz Ubuntu serveri, izmantojot ubuntu_user kontu, un automātiska atteikšanās pēc 5 minūtēm.

Konfigurējiet Ubuntu ugunsmūri UFW

Katram serverim ir nepieciešams labi konfigurēts ugunsmūris, lai nodrošinātu sistēmas drošību tīkla līmenī. Ubuntu serveris izmanto UFW lietojumprogrammu, lai pārvaldītu iptables kārtulas serverī.

Pārbaudiet UFW ugunsmūra lietojumprogrammas statusu Ubuntu, izsniedzot tālāk norādītās komandas.

$ sudo systemctl status ufw
$ sudo ufw status

Parasti UFW ugunsmūra dēmons darbojas un darbojas Ubuntu serverī, taču noteikumi pēc noklusējuma netiek lietoti. Pirms iespējojat UFW ugunsmūra politiku savā sistēmā, vispirms jums jāpievieno jauna kārtula, lai ļautu SSH trafikam iziet caur ugunsmūri, izmantojot mainīto SSH portu. Noteikumu var pievienot, izpildot zemāk esošo komandu.

$ sudo ufw allow 2345/tcp

Kad esat atļāvis SSH trafiku, varat iespējot un pārbaudīt UFW ugunsmūra lietojumprogrammu ar šādām komandām.

$ sudo ufw enable
$ sudo ufw status

Lai pievienotu jaunus ugunsmūra noteikumus citiem tīkla pakalpojumiem, kas vēlāk instalēti jūsu serverī, piemēram, HTTP serverim, pasta serverim vai citiem tīkla pakalpojumiem, izmantojiet zemāk norādītos ugunsmūra komandu piemērus.

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

Lai uzskaitītu visus ugunsmūra noteikumus, izpildiet tālāk norādīto komandu.

$ sudo ufw status verbose

Iestatiet Ubuntu servera laiku

Lai kontrolētu vai vaicātu Ubuntu servera pulksteni un citus saistītos laika iestatījumus, izpildiet komandu timedatectl bez argumentiem.

Lai mainītu servera laika joslas iestatījumus, vispirms izpildiet komandu timedatectl ar argumentu list-timezones, lai uzskaitītu visas pieejamās laika zonas, un pēc tam iestatiet savas sistēmas laika joslu, kā parādīts zemāk esošajā fragmentā.

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

Jauno systemd-timesyncd systemd dēmonu klientu var izmantot Ubuntu, lai nodrošinātu precīzu servera laiku visā tīklā un sinhronizētu laiku ar vienādranga serveri, kas darbojas augšējā laikā.

Lai lietotu šo jauno Systemd funkciju, modificējiet systemd-timesyncd dēmona konfigurācijas failu un pievienojiet NTP pārskatu rindai vistuvāk ģeogrāfiski NTP serverus, kā parādīts zemāk esošajā faila fragmentā:

$ sudo nano /etc/systemd/timesyncd.conf

Pievienojiet failam timesyncd.conf šādu konfigurāciju:

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

Lai pievienotu savus tuvākos ģeogrāfiski NTP serverus, skatiet NTP pūla projekta serveru sarakstu šajā adresē: http://www.pool.ntp.org/en/

Pēc tam restartējiet dēmonu Systemd timesync, lai atspoguļotu izmaiņas, un pārbaudiet dēmona statusu, izpildot tālāk norādītās komandas. Pēc restartēšanas dēmons sāks sinhronizēt laiku ar jauno ntp servera vienaudžu.

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

Atspējojiet un noņemiet nevajadzīgos pakalpojumus Ubuntu

Lai iegūtu visu TCP un UDP tīkla pakalpojumu sarakstu, kas pēc noklusējuma darbojas un darbojas jūsu Ubuntu serverī, izpildiet komandu ss vai netstat.

$ sudo netstat -tulpn
OR
$ sudo ss -tulpn

Skatoties ar Ubuntu 16.10 izlaidumu, noklusējuma DNS risinātāju tagad kontrolē pakalpojums systemd atrisināts, kā to atklāj netstat vai ss komandu izvade.

Jums jāpārbauda arī sistēmas statusā atrisinātā pakalpojuma statuss, izpildot šo komandu.

$ sudo systemctl status systemd-resolved.service

Systemd risinātais pakalpojums saistās ar visām iespējotajām tīkla saskarnēm un klausās 53. un 5355. portā TCP un UDP.

Sistēmas atrisinātas kešatmiņas DNS dēmona palaišana ražošanas serverī var būt bīstama, jo ļaunprātīgi hakeri ir veikuši daudzus DDOS uzbrukumus pret nedrošiem DNS serveriem.

Lai apturētu un atspējotu šo pakalpojumu, izpildiet šādas komandas.

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

Pārbaudiet, vai pakalpojums ir apturēts un atspējots, izsniedzot komandu ss vai netstat. Systemd atrisinātās klausīšanās porti, 53 un 5355 TCP un UDP, nav jāuzskaita netstat vai ss komandu izvadā, kā parādīts zemāk.

Jums arī jāpārstartē mašīna, lai pilnībā atspējotu visus sistēmas atrisinātos dēmonu pakalpojumus un atjaunotu noklusējuma failu /etc/resolv.conf.

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

Lai gan jūs esat atspējojis dažus nevēlamus tīkla pakalpojumus, lai tie darbotos jūsu serverī, jūsu sistēmā ir instalēti un darbojas arī citi pakalpojumi, piemēram, lxc process un snapd service. Šos pakalpojumus var viegli noteikt, izmantojot augšējās vai pstree komandas.

$ sudo ps aux
$ sudo top
$ sudo pstree

Ja jūs savā serverī neizmantojat LXC konteineru virtualizāciju vai nesākat instalēt programmatūru, kas ir iepakota, izmantojot Snap pakotņu pārvaldnieku, jums pilnībā jāatspējo un jānoņem šie pakalpojumi, izsniedzot tālāk norādītās komandas.

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

Tas ir viss! Tagad Ubuntu serveris tagad ir gatavs instalēt papildu programmatūru, kas nepieciešama pielāgotiem tīkla pakalpojumiem vai lietojumprogrammām, piemēram, tīmekļa servera, datu bāzes servera, failu koplietošanas pakalpojuma vai citu specifisku lietojumprogrammu instalēšanai un konfigurēšanai.