Hur man ställer in en brandvägg på Ubuntu Server
Publicerad: 15 februari 2025 kl. 21:34:33 UTC
Den här artikeln förklarar och ger några exempel på hur man konfigurerar en brandvägg på GNU/Linux med ufw, vilket är en förkortning för Uncomplicated FireWall - och namnet är passande, det är verkligen ett väldigt enkelt sätt att se till att du inte har fler portar öppna än du behöver.
How to Set Up a Firewall on Ubuntu Server
Informationen i det här inlägget är baserad på Ubuntu Server 14.04 x64. Det kan eller kanske inte är giltigt för andra versioner. (Uppdatering: Jag kan bekräfta att informationen i det här inlägget i princip fortfarande är giltig och funktionell från och med Ubuntu Server 24.04, men under de mellanliggande 10 åren har ufw blivit något "smartare" genom att ha profiler för vanliga serverapplikationer (du kan till exempel aktivera "Nginx full" istället för portar 80 och 443 att inaktivera hela brandväggen separat och inte längre avaktivera brandväggen) nödvändigt)
När jag först började med GNU/Linux (Ubuntu)-servrar innebar att sätta upp en brandvägg att manuellt skapa och underhålla en potentiellt komplex konfigurationsfil för iptables. Jag har dock nyligen upptäckt ufw , som är en förkortning för Uncomplicated Firewall – och det är det verkligen :-)
Min installation av Ubuntu Server 14.04 hade redan ufw installerat, men om du inte gör det installerar du det helt enkelt från arkiven:
UFW är faktiskt bara ett verktyg som förenklar iptables-konfigurationen – bakom kulisserna är det fortfarande iptables och Linux-kärnans brandvägg som gör filtreringen, så ufw är varken mindre eller säkrare än dessa. Men eftersom ufw gör det mycket lättare att konfigurera en brandvägg korrekt, kan det minska risken för mänskliga fel och är därför möjligen säkrare för oerfarna administratörer.
Om din server är konfigurerad med IPv6 såväl som IPv4, se till att detta är aktiverat för UFW också. Redigera filen /etc/default/ufw och leta efter en rad som säger IPV6=yes . På min installation fanns den redan där, men om den inte är det eller om den säger nej, bör du redigera den
Använd sedan kommandotolken för att aktivera de portar du vill öppna. Om du är ansluten till din server via ssh, se till att tillåta det också, annars kan det störa din anslutning och eventuellt låsa dig från din server när du aktiverar den – beroende på om du har fysisk åtkomst till servern eller inte, kan detta vara lite obekvämt ;-)
Till exempel, om du använder ssh på standardport 22 och du konfigurerar en webbserver som stöder både okrypterade (HTTP på port 80) och krypterade (HTTPS på port 443) anslutningar, skulle du utfärda följande kommandon för att konfigurera ufw:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Om du behöver fler regler, lägg till dem enligt ovan.
Om du har en statisk IP-adress och bara behöver kunna ansluta via ssh från en plats, kan du också begränsa ssh-anslutningar till en enda ursprungsadress så här:
Ange självklart din egen IP-adress istället.
När du är klar, aktivera ufw genom att ange:
Och du är klar! Brandväggen är igång och startar automatiskt när du startar om din server :-)
Om du gör ändringar i ufw-konfigurationen kan du behöva inaktivera och aktivera den igen för att sätta i kraft, så här:
sudo ufw enable
För att titta på den aktuella konfigurationen anger du bara:
Om ufw inte är aktiverat kommer detta helt enkelt att visa ett "inaktivt" meddelande, annars kommer det att lista de för närvarande definierade reglerna.