Palvelimen alkuasennus Ubuntu 20.04/18.04 ja 16.04 kanssa


Tämä opetusohjelma opastaa sinua ensimmäisissä perusvaiheissa, jotka sinun on määritettävä uudelle asennetulle Ubuntu-palvelimelle palvelimesi turvallisuuden ja luotettavuuden lisäämiseksi.

Tässä aiheessa selostetut kokoonpanot ovat lähes samat kaikissa Ubuntu-palvelinjärjestelmissä taustalla olevan käyttöjärjestelmäalustan osalta, onko Ubuntu asennettu paljasmetallipalvelimelle, yksityiseen virtuaalikoneeseen vai virtuaalikoneeseen kehrätty VPS:n julkisessa pilvessä.

Vaatimukset

  • Ubuntu 20.04 -palvelimen asennus
  • Ubuntu 18.04 -palvelimen asennus
  • Ubuntu 16.04 -palvelimen asennus

Päivitä ja päivitä Ubuntu-järjestelmä

Ensimmäinen vaihe, joka sinun on huolehdittava, jos Ubuntu-palvelin asennetaan uudelleen tai uusi käyttöön otettu Ubuntu VPS, on varmistaa, että järjestelmä ja kaikki järjestelmän komponentit, kuten ydin, apt-paketinhallinta ja kaikki muut asennetut paketit ovat ajan tasalla uusimpien julkaistujen versioiden ja tietoturvakorjausten kanssa.

Päivittääksesi Ubuntu-palvelimen, kirjaudu sisään palvelimen konsoliin pääkäyttäjätilillä tai suoraan pääkäyttäjänä ja suorita alla olevat komennot päivitys- ja päivitysprosessin suorittamiseksi.

sudo apt update 

Päivityskomennon suorittamisen jälkeen näet päivitysprosessissa käytettävissä olevien pakettien määrän ja pakettien päivitysten luetteloimiseen käytetyn komennon.

sudo apt list --upgradable

Kun olet tutustunut päivitettävien pakettien luetteloon, anna alla oleva komento aloittaaksesi järjestelmän päivitysprosessin.

sudo apt upgrade

Poistaaksesi kaikki paikallisesti ladatut deb-paketit ja kaikki muut apt-get-välimuistit, suorita alla oleva komento.

sudo apt autoremove
sudo apt clean

Luo uusi tili Ubuntuun

Oletusarvoisesti päätili on turvatoimenpiteenä kokonaan poistettu käytöstä Ubuntussa. Luodaksesi järjestelmään uuden tilin, kirjaudu sisään järjestelmään tilin käyttäjällä, jolla on pääkäyttäjän oikeudet, ja luo uusi tili alla olevalla komennolla.

Tälle uudelle tilille myönnetään pääkäyttäjän oikeudet sudo-komennon kautta, ja sitä käytetään järjestelmän hallintatehtävien suorittamiseen. Varmista, että määrität vahvan salasanan tämän tilin suojaamiseksi. Määritä käyttäjätiedot ja salasana noudattamalla adduser-kehotetta.

sudo adduser ubuntu_user

Jos tämä tili osoitetaan toiselle järjestelmänvalvojalle, voit pakottaa käyttäjän vaihtamaan salasanansa ensimmäisellä kirjautumisyrityksellä antamalla seuraavan komennon.

sudo chage -d0 ubuntu_user

Toistaiseksi uusi lisätty käyttäjä ei voi suorittaa hallinnollisia tehtäviä sudo-apuohjelman kautta. Jos haluat myöntää tälle uudelle käyttäjätilille järjestelmänvalvojan oikeudet, sinun tulee lisätä käyttäjä sudo -järjestelmäryhmään antamalla alla oleva komento.

sudo usermod -a -G sudo ubuntu_user

Oletuksena kaikki sudo-ryhmään kuuluvat käyttäjät voivat suorittaa komentoja pääkäyttäjän oikeuksin sudo-apuohjelman kautta. Sudo-komentoa on käytettävä ennen suorittamiseen tarvittavan komennon kirjoittamista alla olevan esimerkin mukaisesti.

sudo apt install package_name

Testaa, onko uudella käyttäjällä myönnetty pääkäyttäjän oikeudet kirjautumalla järjestelmään ja suorittamalla apt update -komento, jonka etuliite on sudo.

su - ubuntu_user
sudo apt update

Määritä järjestelmän isäntänimi Ubuntussa

Yleensä koneen isäntänimi määritetään järjestelmän asennuksen aikana tai kun VPS luodaan pilveen. Sinun tulisi kuitenkin muuttaa koneesi nimeä, jotta se kuvastaisi paremmin palvelimesi kohdetta tai kuvaa paremmin sen lopullista tarkoitusta.

Suuressa yrityksessä koneet nimetään monimutkaisten nimeämisjärjestelmien mukaan, jotta kone voidaan helposti tunnistaa palvelinkeskuksen telineissä. Jos Ubuntu-koneesi käyttää esimerkiksi sähköpostipalvelinta, koneen nimen tulee kuvastaa tätä tosiasiaa ja voit määrittää koneen isäntänimeksi esimerkiksi mx01.omaverkkotunnus.lan.

Näytä koneen isäntänimen tiedot suorittamalla seuraava komento.

hostnamectl

Jos haluat muuttaa koneesi nimeä, anna hostnamecl-komento uudella nimellä, jonka määrität koneellesi, kuten alla olevassa otteessa näkyy.

sudo hostnamectl set-hostname tecmint

Tarkista järjestelmäsi uusi nimi jollakin alla olevista komennoista.

hostname
hostname -s
cat /etc/hostname 

Asenna SSH julkisen avaimen todennuksella Ubuntussa

Ubuntu-palvelimen järjestelmän suojausasteen parantamiseksi sinun tulee määrittää SSH-julkisen avaimen todennus paikalliselle tilille. Luodaksesi SSH-avainparin, julkinen ja yksityinen avain määrittävät avaimen pituuden, kuten 2048 bittiä, suorittamalla seuraavan komennon palvelinkonsolissasi.

Varmista, että olet kirjautunut sisään järjestelmään sillä käyttäjällä, jolla määrität SSH-avainta.

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

Kun avainta luodaan, sinua pyydetään lisäämään salasana avaimen suojaamiseksi. Voit kirjoittaa vahvan tunnuslauseen tai jättää sen tyhjäksi, jos haluat automatisoida tehtäviä SSH-palvelimen kautta.

Kun SSH-avain on luotu, voit kopioida julkisen avaimen etäpalvelimelle suorittamalla alla olevan komennon. Julkisen avaimen asentamiseksi SSH-etäpalvelimeen tarvitset etäkäyttäjätilin, jolla on oikeat oikeudet ja tunnistetiedot kirjautuaksesi etäpalvelimeen.

ssh-copy-id remote_user@remote_server

Sinun pitäisi pystyä kirjautumaan automaattisesti SSH:n kautta etäpalvelimelle käyttämällä julkisen avaimen todennusmenetelmää. Sinun ei tarvitse lisätä etäkäyttäjän salasanaa, kun käytät julkisen SSH-avaimen todennusta.

Kun olet kirjautunut sisään etäpalvelimelle, voit alkaa suorittaa komentoja, kuten w-komento, joka luettelee sisäänkirjautuneita ssh-etäkäyttäjiä alla olevan kuvakaappauksen mukaisesti.

Sulje SSH-etäistunto kirjoittamalla konsoliin exit.

ssh remote_user@remote_server
w
exit

Jos haluat nähdä julkisen SSH-avaimesi sisällön ja asentaa avaimen manuaalisesti SSH-etäpalvelimeen, anna seuraava komento.

cat ~/.ssh/id_rsa.pub

Suojattu SSH-palvelin Ubuntussa

SSH-daemonin suojaamiseksi sinun tulee muuttaa SSH-portin oletusnumero arvosta 22 satunnaiseksi portiksi, joka on suurempi kuin 1024, ja estettävä SSH-etäkäyttö juuritilille salasana tai avain avaamalla SSH-palvelimen pääasetustiedosto ja tekemällä seuraavat muutokset.

sudo vi /etc/ssh/sshd_config

Hae ensin kommentoidulta riviltä #Port22 ja lisää sen alle uusi rivi (vaihda kuunteluportin numero vastaavasti):

Port 2345

Älä sulje tiedostoa, vieritä alas ja etsi rivi #PermitRootLogin yes, poista rivin kommentti poistamalla #-merkki (hashtag) rivin alusta ja muuta riviä näyttämään alla olevan otteen mukaiselta.

PermitRootLogin no

Tämän jälkeen käynnistä SSH-palvelin uudelleen ottaaksesi käyttöön uudet asetukset ja testaa kokoonpanoa yrittämällä kirjautua sisään etäkoneelta tälle palvelimelle juuritilillä uuden porttinumeron kautta. Pääsyä root-tilille SSH:n kautta tulisi rajoittaa.

sudo systemctl restart sshd

Suorita myös netstat tai ss-komento ja suodata tulos grep-komennon avulla, jotta näet SSH-palvelimen uuden kuunteluportin numeron.

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

Joissakin tilanteissa saatat haluta katkaista automaattisesti kaikki palvelimellesi muodostetut SSH-etäyhteydet, kun olet ollut käyttämättömänä.

Ota tämä ominaisuus käyttöön suorittamalla alla oleva komento, joka lisää TMOUT bash-muuttujan tilisi piilotettuun tiedostoon .bashrc ja pakottaa kaikki SSH-yhteydet, jotka on muodostettu käyttäjä katkaistaan tai keskeytetään 5 minuutin käyttämättömyyden jälkeen.

echo 'TMOUT=300' >> .bashrc

Suorita tail-komento tarkistaaksesi, onko muuttuja lisätty oikein .bashrc-tiedoston loppuun. Kaikki seuraavat SSH-yhteydet suljetaan automaattisesti 5 minuutin käyttämättömyyden jälkeen.

tail .bashrc

Alla olevassa kuvakaappauksessa SSH-etäistunto drupal-koneelta Ubuntu-palvelimelle ubuntu_user-tilin kautta on aikakatkaissut ja automaattinen uloskirjautuminen 5 minuutin kuluttua.

Määritä Ubuntu Firewall UFW

Jokainen palvelin tarvitsee hyvin konfiguroidun palomuurin järjestelmän turvaamiseksi verkkotasolla. Ubuntu-palvelin käyttää UFW-sovellusta palvelimen iptables-sääntöjen hallintaan.

Tarkista UFW-palomuurisovelluksen tila Ubuntussa antamalla alla olevat komennot.

sudo systemctl status ufw
sudo ufw status

Yleensä UFW-palomuuridaemon on päällä ja käynnissä Ubuntu-palvelimessa, mutta sääntöjä ei sovelleta oletusarvoisesti. Ennen kuin otat UFW-palomuurikäytännön käyttöön järjestelmässäsi, sinun tulee ensin lisätä uusi sääntö, joka sallii SSH-liikenteen kulkea palomuurin läpi muuttuneen SSH-portin kautta. Sääntö voidaan lisätä suorittamalla alla oleva komento.

sudo ufw allow 2345/tcp

Kun olet sallinut SSH-liikenteen, voit ottaa käyttöön ja tarkistaa UFW-palomuurisovelluksen seuraavilla komennoilla.

sudo ufw enable
sudo ufw status

Jos haluat lisätä uusia palomuurisääntöjä muille palvelimellesi myöhemmin asennetuille verkkopalveluille, kuten HTTP-palvelimelle, sähköpostipalvelimelle tai muille verkkopalveluille, käytä alla olevia palomuurin komennon esimerkkejä oppaana.

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

Luettele kaikki palomuurisäännöt suorittamalla alla oleva komento.

sudo ufw status verbose

Aseta Ubuntu-palvelimen aika

Voit hallita Ubuntu-palvelimen kelloa ja muita siihen liittyviä aikaasetuksia tai tehdä kyselyitä suorittamalla timedatectl-komento ilman argumentteja.

Jos haluat muuttaa palvelimesi aikavyöhykeasetuksia, suorita ensin timedatectl-komento list-timezones-argumentilla listataksesi kaikki käytettävissä olevat aikavyöhykkeet ja aseta sitten järjestelmäsi aikavyöhyke alla olevan otteen mukaisesti.

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

Uutta systemd-timesyncd systemd-daemon-asiakasta voidaan käyttää Ubuntussa, jotta se tarjoaa tarkan ajan palvelimellesi verkossa ja synkronoidaksesi ajan ylemmän ajan vertaispalvelimen kanssa.

Voit käyttää tätä Systemdin uutta ominaisuutta muokkaamalla systemd-timesyncd-daemon-määritystiedostoa ja lisäämällä lähimmät maantieteellisesti NTP-palvelimet NTP-lauseriville alla olevan tiedostootteen mukaisesti:

sudo nano /etc/systemd/timesyncd.conf

Lisää seuraavat asetukset timesyncd.conf-tiedostoon:

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

Jos haluat lisätä lähimmät maantieteellisesti NTP-palvelimesi, tutustu NTP pool -projektipalvelinluetteloon seuraavassa osoitteessa: http://www.pool.ntp.org/en/

Tämän jälkeen käynnistä Systemd timeync -daemon uudelleen muutosten huomioimiseksi ja tarkista demonin tila suorittamalla alla olevat komennot. Uudelleenkäynnistyksen jälkeen demoni alkaa synkronoida aikaa uuden ntp-palvelimen kanssa.

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

Poista käytöstä ja poista tarpeettomat palvelut Ubuntussa

Suorita ss- tai netstat-komento saadaksesi luettelon kaikista TCP- ja UDP-verkkopalveluista, jotka ovat oletuksena käynnissä Ubuntu-palvelimessasi.

sudo netstat -tulpn
OR
sudo ss -tulpn

Ubuntu 16.10 -julkaisun mukaan DNS-oletusratkaisijaa ohjaa nyt systemd-resolved-palvelu, kuten netstat- tai -tulos paljastaa. >ss-komennot.

Tarkista myös systemd-resolved-palvelun tila suorittamalla seuraava komento.

sudo systemctl status systemd-resolved.service

Järjestelmäratkaisu-palvelu sitoutuu kaikkiin käytössä oleviin verkkoliitäntöihin ja kuuntelee portteja 53 ja 5355 TCP ja UDP.

Järjestelmän ratkaiseman välimuistin DNS-daemonin suorittaminen tuotantopalvelimella voi olla vaarallista, koska haitalliset hakkerit tekevät lukuisia DDOS-hyökkäyksiä suojaamattomia DNS-palvelimia vastaan.

Pysäytä ja poista tämä palvelu käytöstä suorittamalla seuraavat komennot.

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

Tarkista, onko palvelu pysäytetty ja poistettu käytöstä antamalla ss tai netstat-komento. Systemd-resoluutioisia kuunteluportteja, 53 ja 5355 TCP ja UDP, ei pitäisi listata netstat- tai ss-komennon lähdössä, kuten alla on kuvattu.

Sinun tulee myös käynnistää kone uudelleen, jotta voit poistaa kokonaan käytöstä kaikki systemd-resolvoidut demonipalvelut ja palauttaa oletusarvoisen /etc/resolv.conf-tiedoston.

sudo ss -tulpn
sudo netstat -tulpn
sudo systemctl reboot

Vaikka olet poistanut käytöstä joitain ei-toivottuja verkkopalveluita palvelimellasi, järjestelmääsi on asennettu ja käynnissä myös muita palveluita, kuten lxc-prosessi ja snapd-palvelu. Nämä palvelut voidaan tunnistaa helposti ps-, top- tai pstree-komennoilla.

sudo ps aux
sudo top
sudo pstree

Jos et aio käyttää LXC-konttivirtualisointia palvelimellasi tai aloittaa Snap-pakettienhallinnan kautta pakatun ohjelmiston asentamista, sinun tulee poistaa nämä palvelut kokonaan käytöstä ja poistaa ne antamalla alla olevat komennot.

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

Siinä kaikki! Nyt Ubuntu-palvelin on nyt valmis asentamaan lisäohjelmistoja, joita tarvitaan räätälöityihin verkkopalveluihin tai sovelluksiin, kuten verkkopalvelimen, tietokantapalvelimen, tiedostonjakopalvelun tai muiden tiettyjen sovellusten asentamiseen ja konfigurointiin.