Den här artikeln visar hur du installerar och använder UFW på din Ubuntu 20.04 LTS-system.
Installation
UFW levereras förinstallerat på de flesta Ubuntu-system. Om programmet inte redan har det här programmet installerat kan du installera det med antingen snap eller apt-pakethanteraren.$ sudo snap install ufw
$ sudo apt installera ufwJag föredrar personligen att använda apt-pakethanteraren för att göra detta eftersom snap är mindre populärt och jag vill inte ha denna extra komplexitet. När detta skrivs är versionen publicerad för UFW 0.36 för de 20.04 släpp.
Inkommande vs. Utgående trafik
Om du är nybörjare i nätverksvärlden är det första du behöver klargöra skillnaden mellan inkommande och utgående trafik.
När du installerar uppdateringar med apt-get, surfar på internet eller kontrollerar din e-post, vad du gör är att skicka "utgående" förfrågningar till servrar, som Ubuntu, Google, etc. För att komma åt dessa tjänster behöver du inte ens en offentlig IP. Vanligtvis tilldelas en enda offentlig IP-adress för exempelvis en bredbandsanslutning hemma, och varje enhet får sin egen privata IP. Routern hanterar sedan trafiken med något som kallas NAT eller Network Address Translation.
Detaljerna för NAT och privata IP-adresser ligger utanför denna artikel, men videon som länkas ovan är en utmärkt utgångspunkt. Kommer tillbaka till UFW, tillåter UFW som standard all vanlig utgående webbtrafik. Dina webbläsare, pakethanterare och andra program väljer ett slumpmässigt portnummer - vanligtvis ett nummer över 3000 - och det är så varje applikation kan hålla reda på sin anslutning (ar).
När du kör servrar i molnet kommer de vanligtvis med en offentlig IP-adress och ovanstående regler för att tillåta utgående trafik kvarstår. Eftersom du fortfarande kommer att använda verktyg, som pakethanterare, som pratar med resten av världen som en "klient" tillåter UFW detta som standard.
Det roliga börjar med inkommande trafik. Program, som OpenSSH-servern som du använder för att logga in på din virtuella dator, lyssnar på specifika portar (som 22) för inkommande begäranden, liksom andra applikationer. Webbservrar behöver åtkomst till port 80 och 443.
Det är en del av jobbet med en brandvägg att låta specifika applikationer lyssna på viss inkommande trafik samtidigt som alla onödiga blockeras. Du kan ha en databasserver installerad på din virtuella dator, men den behöver vanligtvis inte lyssna på inkommande förfrågningar i gränssnittet med en offentlig IP. Vanligtvis lyssnar det bara på loopback-gränssnittet för förfrågningar.
Det finns många bots ute på webben, som ständigt bombarderar servrar med falska förfrågningar om att tvinga sig in eller göra en enkel Denial of Service-attack. En välkonfigurerad brandvägg ska kunna blockera de flesta av dessa shenanigans med hjälp av tredjeparts plugins som Fail2ban.
Men för tillfället kommer vi att fokusera på en mycket grundläggande installation.
Grundläggande användning
Nu när du har UFW installerat på ditt system kommer vi att titta på några grundläggande användningsområden för detta program. Eftersom brandväggsregler tillämpas hela systemet körs kommandona nedan som rotanvändare. Om du föredrar kan du använda sudo med rätt behörighet för denna procedur.
# ufw-statusStatus: inaktiv
Som standard är UFW i inaktivt tillstånd, vilket är bra. Du vill inte blockera all inkommande trafik på port 22, som är standard SSH-port. Om du är inloggad på en fjärrserver via SSH och blockerar port 22 kommer du att vara utesluten från servern.
UFW gör det enkelt för oss att skjuta ett hål bara för OpenSSH. Kör kommandot nedan:
[e-postskyddad]: ~ # ufw applistaTillgängliga applikationer:
OpenSSH
Observera att jag fortfarande inte har aktiverat brandväggen. Vi lägger nu till OpenSSH i vår lista över tillåtna appar och aktiverar sedan brandväggen. För att göra det, ange följande kommandon:
# ufw tillåter OpenSSHRegler uppdaterade
Regler uppdaterade (v6)
# ufw aktivera
Kommandot kan störa befintliga SSH-anslutningar. Fortsätt med operation (y | n)? y.
Brandväggen är nu aktiv och aktiverad vid systemstart.
Grattis, UFW är nu aktivt och igång. UFW tillåter nu endast OpenSSH att lyssna på inkommande förfrågningar i port 22. För att kontrollera status för din brandvägg när som helst, kör följande kod:
# ufw-statusStatus: aktiv
Till handling från
-- ------ ----
OpenSSH ALLOW Överallt
OpenSSH (v6) ALLOW Anywhere (v6)
Som du kan se kan OpenSSH nu ta emot förfrågningar var som helst på Internet, förutsatt att den når den i port 22. V6-raden indikerar också att reglerna tillämpas för IPv6.
Du kan naturligtvis förbjuda vissa IP-intervall eller tillåta endast ett visst IP-intervall, beroende på de säkerhetsbegränsningar du arbetar inom.
Lägga till applikationer
För de mest populära applikationerna uppdaterar ufw-applistan automatiskt sin lista över policyer efter installationen. Till exempel, vid installationen av Nginx-webbservern ser du följande nya alternativ visas:
# apt install nginx# ufw applista
Tillgängliga applikationer:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Fortsätt och försök experimentera med dessa regler. Observera att du helt enkelt kan tillåta portnummer snarare än att vänta på att en applikations profil ska visas. För att till exempel tillåta port 443 för HTTPS-trafik, använd bara följande kommando:
# ufw tillåter 443# ufw-status
Status: aktiv
Till handling från
-- ------ ----
OpenSSH ALLOW Överallt
443 TILLÅT Överallt
OpenSSH (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Slutsats
Nu när du har sorterat grunderna i UFW kan du utforska andra kraftfulla brandväggsfunktioner, från att tillåta och blockera IP-intervall. Att ha tydliga och säkra brandväggspolicyer håller dina system säkra och skyddade.