Initial säker serverkonfiguration av Ubuntu 18.04

Introduktion

Genom den här handledningen kommer du att lära dig hur du konfigurerar en grundläggande säkerhetsnivå på en helt ny Vultr VC2 virtuell maskin som kör Ubuntu 18.04.

Förutsättningar

  • Ett Vultr-konto, du kan skapa ett här
  • En ny Ubuntu 18.04 Vultr VM

Skapa och ändra en användare

Det första vi ska göra är att skapa vår nya användare som vi kommer att använda för att logga in på den virtuella datorn:

adduser porthorian

Obs: Det rekommenderas att använda ett unikt användarnamn som är svårt att gissa. De flesta bots kommer som standard att prova root, admin, moderator, och liknande.

Du kommer att bli ombedd att ange ett lösenord här. Det rekommenderas starkt att du använder ett starkt alfanumeriskt lösenord. Därefter följer du anvisningarna på skärmen och när den frågar dig om informationen är korrekt trycker du bara på Y.

När den nya användaren har lagts till kommer vi att behöva ge den användaren sudo-behörigheter så att vi kan utföra kommandon från användaren på uppdrag av rotanvändaren:

usermod -aG sudo porthorian

När du har gett din användare sudo-behörigheter byt till din nya användare:

su - porthorian

Generera och konfigurera en SSH-nyckel

För att generera SSH-nyckeln, följ detta dokument .

När du har skapat din nya SSH-nyckel, kopiera din publika nyckel. Det ska se ut så här:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAmB3uRWxAAELNJ8oGBCBmZx7S11vnAp0RG8rdKf6CLdvT7NMbKF55F8Wf0hFPewEryplaH54ibdmaTuheJVKy1lUhHnVi0AcBpkhJiiOQdEtvbYKT/eIkQl/Qm92Gz6aL3lJ0UknO4gO0LzgqI2vYX0b9LHMF+ZvApEDahLCna6RKo3/lffnANUKfExE+dVwOcJwATL3Ld5IkSatm7zBqbJAim0wj/JQ5ejzkL+aYd3YawpW3qf+WsY3HGbK2TIJt3LsiZJ3M7giZo/fVIZCJqsIOyO9NUOEx5/+KE8IniGb7gdRYgquAEJr89poDCNz/8CBODi9z3ukiE1+UnVlhfQ== rsa-key-20190408

Konfigurera din användarkatalog

Navigera till användarens hemkatalog om du inte redan är i den:

cd $HOME

$HOMEär miljövariabeln för dina användares hemkatalog. Detta ställs in automatiskt när den nya användaren skapas.

I vår hemkatalog kommer vi att placera en annan katalog i den. Denna katalog kommer att döljas för andra användare på maskinen, förutom root och användaren som äger katalogen. Skapa den nya katalogen och begränsa dess behörigheter med följande kommandon:

mkdir ~/.ssh
chmod 700 ~/.ssh

Nu ska vi öppna en fil som .sshheter authorized_keys. Detta är den universella filen som OpenSSH letar efter. Du kan ändra namnet på detta i OpenSSH-konfigurationen, /etc/ssh/sshd_config, om behov uppstår.

Använd din favoritredigerare för att skapa filen. Denna handledning kommer att använda nano:

nano ~/.ssh/authorized_keys

Kopiera och klistra in din ssh-nyckel i authorized_keysfilen som vi har öppnat. När den publika nyckeln är inuti kan du spara filen genom att trycka på CTRL+ O.

Se till att rätt filsökväg visas:

/home/porthorian/.ssh/authorized_keys

Om det är rätt sökväg, tryck bara på ENTER, annars gör nödvändiga ändringar för att matcha exemplet ovan. Avsluta sedan filen med CTRL+ X.

Nu ska vi begränsa åtkomsten till filen:

chmod 600 ~/.ssh/authorized_keys

Avsluta vår skapade användare och gå tillbaka till rotanvändaren:

exit

Inaktiverar lösenordsautentisering

Vi kan nu inaktivera lösenordsautentisering till servern, på så sätt kommer inloggning att kräva en ssh-nyckel. Det är viktigt att notera att om du inaktiverar lösenordsautentisering och den offentliga nyckeln inte installerades korrekt kommer du att låsa dig själv från din server. Det rekommenderas att du testar nyckeln först innan du ens loggar ut från din rootanvändare.

Vi är för närvarande inloggade på vår root-användare, så vi kommer att redigera sshd_config:

nano /etc/ssh/sshd_config

Vi kommer att söka efter 3 värden för att se till att OpenSSH är korrekt konfigurerat.

  • PasswordAuthentication
  • PubkeyAuthentication
  • ChallengeResponseAuthentication

Vi kan hitta dessa värden genom att trycka på CTRL+ W.

Värdena bör ställas in på följande:

PasswordAuthentication  no
ChallengeResponseAuthentication  no
PubkeyAuthentication  yes

Om värdena kommenteras bort, ta bort i #början av raden och se till att värdena för dessa variabler är som visas ovan. När du har ändrat dessa variabler, spara och avsluta editorn med CTRL+ O, ENTERoch slutligen CTRL+ X.

Nu ska vi ladda om sshdmed följande kommando:

systemctl reload sshd

Nu kan vi testa inloggningen. Se till att du inte har loggat ut från din root-session ännu och öppna ett nytt ssh-fönster och anslut med din ssh-nyckel som är länkad till anslutningen.

I PuTTY är detta under Connection-> SSH-> Auth.

Bläddra för att hitta din privata nyckel för autentisering, eftersom du borde ha sparat den när du skapade ssh-nyckeln.

Anslut till din server med den privata nyckeln som autentisering. Du kommer nu att loggas in på din virtuella Vultr VC2-maskin.

Obs: Om du lade till en lösenfras medan du genererade ssh-nyckeln kommer du att bli ombedd att ange en. Detta är helt annorlunda än din faktiska användares lösenord på den virtuella maskinen.

Konfigurera en grundläggande brandvägg

Konfigurera UFW

Först ska vi börja med att installera UFW om det inte redan finns på den virtuella maskinen. Ett bra sätt att kontrollera är med följande kommando:

sudo ufw status

Om UFW är installerat kommer det att mata ut Status:inactive. Om den inte är installerad kommer du att bli instruerad att göra det.

Vi kan installera det med detta kommando:

sudo apt-get install ufw -y

Nu kommer vi att tillåta SSH-port 22i vår brandvägg:

sudo ufw allow 22

Alternativt kan du tillåta OpenSSH:

sudo ufw allow OpenSSH

Ett av kommandona ovan kommer att fungera.

Nu när vi har tillåtit porten genom vår brandvägg kan vi aktivera UFW:

sudo ufw enable

Du kommer att tillfrågas om du är säker på att du vill utföra denna operation. Om du skriver yföljt av ENTERaktiveras brandväggen:

porthorian@MEANStack:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation? y

Obs: Om du inte tillät OpenSSH eller Port 22 kommer du att låsa dig själv från din virtuella maskin. Se till att en av dessa är tillåten innan du aktiverar UFW.

När brandväggen är aktiverad kommer du fortfarande att vara ansluten till din instans. Vi kommer att dubbelkolla vår brandvägg nu med samma kommando som tidigare:

sudo ufw status

Du kommer att se något som liknar följande utdata:

porthorian@MEANStack:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)

Konfigurera Vultr-brandväggen

För att ytterligare säkra vår server kommer vi att använda vår Vultr-brandvägg. Logga in på ditt konto . När du väl är inloggad kommer du att navigera till brandväggsfliken längst upp på skärmen:

Initial säker serverkonfiguration av Ubuntu 18.04

Nu ska vi lägga till en ny brandväggsgrupp. Detta gör att vi kan specificera vilka portar som till och med kan nå vår UFW-brandvägg, vilket ger oss ett dubbelt lager av säkerhet:

Initial säker serverkonfiguration av Ubuntu 18.04

Vultr kommer nu att fråga dig vad du ska heta din brandvägg med hjälp av fältet "Beskrivning". Se till att du beskriver vad servrarna under denna brandväggsgrupp kommer att göra, för enklare framtida administration. För den här handledningens skull kommer vi att namnge den test. Du kan alltid ändra beskrivningen senare om du vill.

Först måste vi få vår IP-adress. Anledningen till att vi gör detta direkt är att om din IP-adress inte är statisk och ständigt förändras kan du helt enkelt logga in på ditt Vultr-konto och ändra IP-adressen.

Det är också därför vi inte krävde IP-adressen på UFW-brandväggen. Dessutom begränsar det användningen av din virtuella maskins brandvägg från att filtrera bort alla andra portar och låter bara Vultr-brandväggen hantera det. Detta begränsar belastningen av övergripande trafikfiltrering på din instans.

Använd Vultrs nätverksglas för att hitta din IP-adress.

Så nu när vi har vår IP-adress kommer vi att lägga till en IPV4-regel till vår nyskapade brandvägg:

Initial säker serverkonfiguration av Ubuntu 18.04

När du har angett IP-adressen klickar du på +symbolen för att lägga till din IP-adress i brandväggen.

Din brandväggsgrupp kommer att se ut så här:

Initial säker serverkonfiguration av Ubuntu 18.04

Nu när vi har vår IP ordentligt bunden i brandväggsgruppen måste vi länka vår Vultr-instans. På vänster sida ser du en flik som säger "Länkade instanser":

Initial säker serverkonfiguration av Ubuntu 18.04

Väl på sidan kommer du att se en rullgardinsmeny med en lista över dina serverinstanser:

Initial säker serverkonfiguration av Ubuntu 18.04

Klicka på rullgardinsmenyn och välj din instans. Sedan, när du är redo att lägga till instansen i brandväggsgruppen, klicka på +symbolen.

Grattis, du har framgångsrikt säkrat din Vultr VC2 Virtual Machine. Detta ger dig en bra grund för ett mycket grundläggande säkerhetslager utan att behöva oroa dig för att någon försöker brute-force din instans.


Installera Plesk på CentOS 7

Installera Plesk på CentOS 7

Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser

Installera Cacti på Debian Jessie

Installera Cacti på Debian Jessie

Introduktion Cacti är ett övervaknings- och grafverktyg med öppen källkod som är helt baserat på RRD-data. Genom Cacti kan du övervaka nästan vilken typ av enhet som helst

Installera Lets Encrypt SSL på One-Click WordPress-appen

Installera Lets Encrypt SSL på One-Click WordPress-appen

Introduktion Lets Encrypt är en certifikatmyndighetstjänst som erbjuder gratis TLS/SSL-certifikat. Installationsprocessen förenklas av Certbot,

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Använder du ett annat system? Vad är Tekkit Classic? Tekkit Classic är ett modpack för spelet som alla känner och älskar; Minecraft. Den innehåller några av ver

Konfigurera iRedMail på Debian Wheezy

Konfigurera iRedMail på Debian Wheezy

Använder du ett annat system? Den här handledningen visar dig hur du installerar groupware iRedMail på en ny installation av Debian Wheezy. Du bör använda en serve

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

PHP och relaterade paket är de mest använda komponenterna när du distribuerar en webbserver. I den här artikeln kommer vi att lära oss hur du ställer in PHP 7.0 eller PHP 7.1 o

Hur man installerar Squid Proxy på CentOS

Hur man installerar Squid Proxy på CentOS

Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera

Tre gratis serverkontrollpaneler (snabbinstallation)

Tre gratis serverkontrollpaneler (snabbinstallation)

1. Virtualmin/Webmin Virtualmin är en kraftfull och flexibel kontrollpanel för webbhotell för Linux- och UNIX-system baserad på den välkända Open Source-webbasen

Konfigurera en Yii-applikation på Ubuntu 14.04

Konfigurera en Yii-applikation på Ubuntu 14.04

Yii är ett PHP-ramverk som låter dig utveckla applikationer snabbare och enklare. Att installera Yii på Ubuntu är enkelt, eftersom du kommer att lära dig exakt

Använder skärmen på Ubuntu 14.04

Använder skärmen på Ubuntu 14.04

Screen är ett program som tillåter flera terminalsessioner inom ett fönster. Detta låter dig simulera flera terminalfönster där det ma

Konfigurera din egen DNS-server på Debian/Ubuntu

Konfigurera din egen DNS-server på Debian/Ubuntu

Denna handledning förklarar hur man ställer in en DNS-server med Bind9 på Debian eller Ubuntu. Genomgående i artikeln, byt ut ditt-domännamn.com i enlighet med detta. Vid th

Använda Logrotate för att hantera loggfiler

Använda Logrotate för att hantera loggfiler

Inledning Logrotate är ett Linux-verktyg som förenklar administrationen av loggfiler. Den körs vanligtvis en gång om dagen via ett cron-jobb och hanterar loggbasen

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten

Konfigurera Red5 Media Server på Ubuntu 16.04

Konfigurera Red5 Media Server på Ubuntu 16.04

Använder du ett annat system? Red5 är en mediaserver med öppen källkod implementerad i Java som låter dig köra Flash fleranvändarapplikationer som livestreamin

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

I den här artikeln kommer vi att se hur man kompilerar och installerar Nginx mainline från de officiella källorna för Nginx med PageSpeed-modulen, som låter dig t

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Vanilla Forum på Ubuntu 16.04

Hur man installerar Vanilla Forum på Ubuntu 16.04

Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer