Hur blockera alla portar utom webbläsaren?

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Okt 2007

Hur blockera alla portar utom webbläsaren?

Jag har försökt förstå hur iptables fungerar men får inte riktigt det jag vill att fungera. Hur blockerar jag så att alla portar är blockerade in och ut förutom de som behövs för firefox?

Trädvy Permalänk
Medlem
Plats
Jönköping
Registrerad
Mar 2011

@Tallrot: Du vill alltså bara tillåta webbtrafik? Tillåt port 80(HTTP) och 443(HTTPS).

Acer 32" Predator XB321HK 4K G-sync | Corsair Obsidian 350d | i7 6700k @4.5ghz | MSI GTX 1080 Gaming X | Corsair Dominator 32GB @3200mhz | Asus Maximus VIII Gene | Samsung 950 PRO 256GB | Corsair AX860 | Corsair Hydro H105

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Okt 2007

Jag provar att skriva såhär men kan ändå inte surfa. Någon som kan se vad som är fel?

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

Trädvy Permalänk
Rekordmedlem
Plats
Salstad
Registrerad
Feb 2009

Du lär väl åtminstone behöva dns också ? (53) eller ska du navigera hardcore med bara ipnummer

Ryzen 5 2400G, Asus ROG STRIX B350-F Gaming, 500GB Samsung 970EVO NVMe M.2 och en väldig massa masslagring. Seasonic Focus+ Gold 650W, Antec P 180 med Schyte o Sharkoon fläktar via en t-balancer, Tittar på en Acer ET430Kbmiippx 43" 4K
Främre ljudkanalerna återges via Behringer DCX2496, högtalare Truth B3031A, Truth B2092A Har också Oscilloskop, mätmikrofon och en Colorimeter.

Trädvy Permalänk
Medlem
Plats
Sthlm
Registrerad
Apr 2002
Skrivet av mrqaffe:

Du lär väl åtminstone behöva dns också ? (53) eller ska du navigera hardcore med bara ipnummer

DNS är för n00bs! "Eliten" surfar med IP-adresser enbart ;D

..:: trickeh2k ::.. https://youtube.com/c/trickeh2k Windows 10 Pro - i7 8700k (delid) @ 5Ghz - ASUS Prime Z370-A - 16GB G.Skill Trident Z DDR4 CL14 3000Mhz - Corsair AX860i - EVGA GTX 1080Ti FTW3 Hydrocopper - Acer Predator XB271HU - ASUS VG248QE - QPAD MK-85 (MX-Brown)/SteelSeries Sensei RAW Rubberized - Samsung 960 EVO 250GB, Samsung EVO 860 500GB, SanDisk Ultra II 480GB, 3TB Seagate Barracuda - ASUS Xonar DX - ASUS Strix 7.1 Gaming Headset - Corsair 750D - Custom water loop

Trädvy Permalänk
Medlem
Plats
Câmara de Lobos, Madeira, Portugal
Registrerad
Nov 2005

Du har gjort reglerna anpassade för en webbserver. Webbläsaren behöver port 80 för att kunna ansluta sig till servern. På vilken port inkommande trafik går varierar. Använd istället:
iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED -j ACCEPT
Observera att klienten använder godtycklig hög port för inkommande svarstrafik. När förbindelsen etableras så kommer server och klient överens om vilka övriga portar skall användas. Port 80 är standardport för inkommande trafik till en http-server. Utgående trafik går via andra portar.

Fagerja

Trädvy Permalänk
Medlem
Plats
Câmara de Lobos, Madeira, Portugal
Registrerad
Nov 2005
Skrivet av mrqaffe:

Du lär väl åtminstone behöva dns också ? (53) eller ska du navigera hardcore med bara ipnummer

Om TS möjligen vill begränsa till enbart webbläsning av ett fåtal tillåtna platser så kan DNS ersättas med att lägga in tillåtna platser i /etc/hosts.

Fagerja

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Okt 2007

Tack fagerja, nu funkar det fast bara om jag skriver in ip nummer för websidor. Hur öppnar jag för dns?

Trädvy Permalänk
Medlem
Registrerad
Apr 2013

Varför inte proxy istället för att få mer trevliga features som protokoll enforcement/antivirus/adblock/privacy enforcement/... om man nu skall blocka ner till bara webbsurf?
Vad är syftet?

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Okt 2007

Bara ett enkelt test av öppna portar mm för en skoluppgift där jag bara vill ha så att firefox kan komma åt internet men inget annat.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003

Här har du min standard brandvägg som jag använder på alla mina Linux maskiner.

#!/bin/bash

# INTERFACE WAN
INTEX="eth0"

# IPTABLES FOR IPV4
IPT="/sbin/iptables"

# IPTABLES FOR IPV6
IPT6="/sbin/ip6tables"

# FLUSH RULES IPV4
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X

# FLUSH RULES IPV6
$IPT6 -F
$IPT6 -X

# DEFAULT POLICY IPV4
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP

# DEFAULT POLICY IPV6
$IPT6 -P INPUT DROP
$IPT6 -P FORWARD DROP
$IPT6 -P OUTPUT DROP

# STATES
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# ALLOW LOOPBACK
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

Sedan öppnar du portar som du behöver

| Citera för svar! | Gilla bra inlägg! |

Trädvy Permalänk
Medlem
Plats
/bin/bash
Registrerad
Mar 2002
Skrivet av Tallrot:

Tack fagerja, nu funkar det fast bara om jag skriver in ip nummer för websidor. Hur öppnar jag för dns?

Du borde kunna lista ut det med reglerna som du redan fått presenterade för dig.

# http är tcp och port 80, du har redan denna regel.
iptables -A OUTPUT -o eth0 -p tcp--dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# dns är via udp, och porten 53.
iptables -A OUTPUT -o eth0 -p udp--dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT

Cisco - Linux - VMWare
-- Citera mig om ni vill få återkoppling --

Trädvy Permalänk
Medlem
Registrerad
Dec 2003

Jag försöker konfigurera GUFW så att endast Firefox och inget annat ska tillåtas utgående trafik. Jag har förstått det som att man löser detta genom att neka all utgående trafik och lägga till en regel som tillåter utgående trafik på portarna 80 och 443. Men detta fungerar inte, all utgående trafik blockeras. Förstår inte varför det inte går, men jag fattar i och för sig inte allt som sägs i den här tråden heller Någon som kan förklara på ett enkelt sätt vad jag måste göra mer?

Trädvy Permalänk
Medlem
Plats
Câmara de Lobos, Madeira, Portugal
Registrerad
Nov 2005

Har du reglerna i rätt ordning? Regeln som tillåter utgående trafik på portarna 80 och 443 måste ligga före regeln som blockerar.Vill du att endast Firefox skall tillåtas utgående trafik blir det komplicerat då du först måste köra ett skript som tar reda på Firefoxs process ID. Men har du ingen annan webbläsare installerad så är det onödigt.

Fagerja

Trädvy Permalänk
Medlem
Registrerad
Dec 2003
Skrivet av fagerja:

Har du reglerna i rätt ordning? Regeln som tillåter utgående trafik på portarna 80 och 443 måste ligga före regeln som blockerar.Vill du att endast Firefox skall tillåtas utgående trafik blir det komplicerat då du först måste köra ett skript som tar reda på Firefoxs process ID. Men har du ingen annan webbläsare installerad så är det onödigt.

Tack för ditt svar och ursäkta mitt sena svar. Jag har inte gjort någon regel som blockerar all utgående trafik utan jag har ställt in GUFW på den inställningen ("utgående: neka"). Är det alltså så att det tar överhanden och blockerar alla andra regler? Om jag förstår det rätt kan en lösning alltså vara att skapa en manuellt inställd regel som blockerar allt och som föregås av en regel som tillåter de portar jag vill använda? Hur ser regeln som blockerar ut?

Jag har inte någon annan webbläsare utan bara Firefox, men jag vill inte att något annat program ska få ha tillgång till utgående trafik. Måste jag ha ett sådant där skript du talar om då också?

Trädvy Permalänk
Medlem
Registrerad
Dec 2003

Tror jag har fått detta att fungera nu. Jag har följt stegen på den här sidan: http://ubuntuforums.org/showthread.php?t=1876124

All inkommande trafik nekas. All utgående trafik blockeras. Sedan har jag lagt till följande regler:

- En som tillåter port 53, 80 OCH 443 utgående (TCP)
- En som tillåter port 53 utgående (UDP)

Allt jag vill är att kunna surfa med Firefox och inget annat program eller bakgrundsprocess ska tillåtas trafik. Gör ovanstående inställningar det möjligt?

Trädvy Permalänk
Medlem
Registrerad
Apr 2015

@Mysterium:

Nej, vilket program som helst kan kommunicera via de portarna också. T.ex. om du har en annan webbläsare installerad.

Trädvy Permalänk
Medlem
Registrerad
Dec 2003
Skrivet av Boombaaz:

@Mysterium:

Nej, vilket program som helst kan kommunicera via de portarna också. T.ex. om du har en annan webbläsare installerad.

Jag har ingen annan webbläsare än Firefox. Så även program som inte är webbläsare kan också kommunicera via de portarna? Hur ska man då på ett effektivt sätt kontrollera utgående trafik, det låter ju som om det inte är möjligt då?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004
Skrivet av Mysterium:

Jag har ingen annan webbläsare än Firefox. Så även program som inte är webbläsare kan också kommunicera via de portarna? Hur ska man då på ett effektivt sätt kontrollera utgående trafik, det låter ju som om det inte är möjligt då?

"Vad som helst" kan använda port 80, inte bara HTTP. Det är upp till servern och klienten VAD som snackas på porten.
Vill du "garantera" att HTTP snackas så får du köra exempelvis en proxy.

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Feb 2006
Skrivet av Mysterium:

Jag har ingen annan webbläsare än Firefox. Så även program som inte är webbläsare kan också kommunicera via de portarna? Hur ska man då på ett effektivt sätt kontrollera utgående trafik, det låter ju som om det inte är möjligt då?

Det man får göra är "deep package inspection". Där man helt enkelt läser av alla bitarna i varje paket och bedömmer om man gillar dem eller inte. Inte omöjligt, men ohyggligt jobbigt.

Trädvy Permalänk
Medlem
Registrerad
Dec 2003
Skrivet av iXam:

"Vad som helst" kan använda port 80, inte bara HTTP. Det är upp till servern och klienten VAD som snackas på porten.
Vill du "garantera" att HTTP snackas så får du köra exempelvis en proxy.

Skrivet av Killbom:

Det man får göra är "deep package inspection". Där man helt enkelt läser av alla bitarna i varje paket och bedömmer om man gillar dem eller inte. Inte omöjligt, men ohyggligt jobbigt.

På min Windows-dator kör jag Kaspersky internet security och det programmet varnar när varje enskilt program vill ansluta till nätet och då kan man enkelt tillåta eller neka vart och ett av dessa anslutningsförsök. Varför ska det vara så svårt att få till en motsvarande enkel lösning i Ubuntu där man kan kontrollera enskilda program? Är jag ute och far efter något helt orimligt?

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Feb 2006
Skrivet av Mysterium:

På min Windows-dator kör jag Kaspersky internet security och det programmet varnar när varje enskilt program vill ansluta till nätet och då kan man enkelt tillåta eller neka vart och ett av dessa anslutningsförsök. Varför ska det vara så svårt att få till en motsvarande enkel lösning i Ubuntu där man kan kontrollera enskilda program? Är jag ute och far efter något helt orimligt?

Ge min 1 minut ensam med din dator så surfar jag precis exakt var jag vill. Har du dessutom satt upp kaspersky är det inga problem för mig att via Chrome göra ungefär exakt vad jag vill, utöver att surfa hemsidor.

Jag trodde TS försökte göra inställningar på sin router. Att blockera detta på samma sätt som du gör med kaspersky på linux är trivialt.

Trädvy Permalänk
Medlem
Registrerad
Dec 2003
Skrivet av Killbom:

Ge min 1 minut ensam med din dator så surfar jag precis exakt var jag vill. Har du dessutom satt upp kaspersky är det inga problem för mig att via Chrome göra ungefär exakt vad jag vill, utöver att surfa hemsidor.

Förutsätter inte detta att du har tillgång till datorn rent fysiskt? Jag menar attacker där obehöriga tar sig in utifrån och installerar programvara på min dator som sedan skickar iväg information olovligen.

Skrivet av Killbom:

Jag trodde TS försökte göra inställningar på sin router. Att blockera detta på samma sätt som du gör med kaspersky på linux är trivialt.

Vilken är då den triviala lösningen? Om jag förstod dig rätt var din lösning väldigt komplicerad?

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Feb 2006
Skrivet av Mysterium:

Vilken är då den triviala lösningen? Om jag förstod dig rätt var din lösning väldigt komplicerad?

Ja kör man Ubuntu är det ju bara att öppna brandväggen (ser lite olika ut beroende på vilken version man kör). Blockera all utgående trafik och sedan vitlista exempelvis webbläsaren.

Googla på "Ubuntu 15.04 (eller annan version) firewall" för mer detaljer.,

Trädvy Permalänk
Medlem
Registrerad
Dec 2003
Skrivet av Killbom:

Ja kör man Ubuntu är det ju bara att öppna brandväggen (ser lite olika ut beroende på vilken version man kör). Blockera all utgående trafik och sedan vitlista exempelvis webbläsaren.

Men det konstaterades ju ovan att det regleras via portarna, och att vitlista en viss port förhindrar ju inte att andra program också använder den porten. Om det finns något annat sätt att vitlista program på får gärna du, eller någon annan, upplysa mig om det.

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Feb 2006
Skrivet av Mysterium:

Men det konstaterades ju ovan att det regleras via portarna, och att vitlista en viss port förhindrar ju inte att andra program också använder den porten. Om det finns något annat sätt att vitlista program på får gärna du, eller någon annan, upplysa mig om det.

Det konstaterades inte alls ovan. Det som konstaterades var att det finns metoder för att blockera portar. Jag menade att du skulle blockera applikationer du inte vill tillåta. Dessutom kan du blockera portarna. Då är du rätt säker.

Vill du vara mer säker kan du göra så att alla anslutningarna från datorn går via en proxy, varpå proxyn bara tillåter anslutningar till vissa sidor du definerat.

Trädvy Permalänk
Medlem
Registrerad
Dec 2003
Skrivet av Killbom:

Det konstaterades inte alls ovan. Det som konstaterades var att det finns metoder för att blockera portar. Jag menade att du skulle blockera applikationer du inte vill tillåta. Dessutom kan du blockera portarna. Då är du rätt säker.

Det förutsätter väl att jag vet vilka applikationer det gäller och blockerar ju inte alla potentiella skadliga program som kan installeras utan min vetskap och som vill ha kontakt med nätet?

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Feb 2006
Skrivet av Mysterium:

Det förutsätter väl att jag vet vilka applikationer det gäller och blockerar ju inte alla potentiella skadliga program som kan installeras utan min vetskap och som vill ha kontakt med nätet?

Jag tänker mig att du blockerar samtliga program och enbart tillåter vissa. Det kallas whitelisting.
Här finns ett litet GUI för att jobba med brandväggen https://help.ubuntu.com/community/Gufw Det kanske är enklare än terminalen.

Det verkar också lite oklart vad målet är jämfört med vad som står i texten. Är det så att du enbart vill låta användaren använda webbläsaren för att ansluta till nätet, men man får besöka alla hemsidor?

Trädvy Permalänk
Medlem
Registrerad
Dec 2003
Skrivet av Killbom:

Jag tänker mig att du blockerar samtliga program och enbart tillåter vissa. Det kallas whitelisting.
Här finns ett litet GUI för att jobba med brandväggen https://help.ubuntu.com/community/Gufw Det kanske är enklare än terminalen.

Jag tycker att jag har läst ganska mycket om detta men ingenstans hittar jag hur man vitlistar enstaka program, annat än fliken för prekonfigurerade inställningar när man lägger till regler. Men där finns ju inte ens något så trivialt som Firefox med.

Skrivet av Killbom:

Det verkar också lite oklart vad målet är jämfört med vad som står i texten. Är det så att du enbart vill låta användaren använda webbläsaren för att ansluta till nätet, men man får besöka alla hemsidor?

Ja. Men är det även möjligt att precisera exakt vilka hemsidor man får besöka vore det bra. Målet är att jag vill kunna surfa (på de vanliga, säkra sidor jag regelbundet besöker) och att inget annat program på datorn ska få skicka iväg utgående trafik (någon annanstans) utan att jag har godkänt det.

Jag ber om ursäkt om jag har missat något totalt uppenbart, men du får gärna peka ut det för mig i så fall.

Trädvy Permalänk
Medlem
Registrerad
Maj 2003

Släpp hela idén med att blockera trafik per program istället för typ av trafik, skulle jag säga. Det är inte bättre, och det är inte säkrare.

Om du blockerar allt utom det du förstår behöver åtkomst, så kommer du blockera en hel massa bakgrundsprocesser som behöver nätverk, men som du inte känner till. Och du kommer sluta med ett operativsystem som inte fungerar som det ska. Och blockerar du apt eller motsvarande säkerhetsuppdateringar så kommer du sluta med ett system med sämre säkerhet.

"Brandväggar" i Windows som blockerar trafik per program ger inte ökad säkerhet. Det är bara ett sätt att hindra användaren från att göra saker han eller hon inte förstår. Det är trivialt för virus och annan skadlig mjukvara att ta sig genom, och skyddar enbart mot fall där användaren själv installerar ett program som inte försöker göra något fult, som han eller hon inte vill ska kunna komma åt nätverket. Och då är frågan varför han eller hon installerar det programmet till att börja med.

Det finns möjlighet att blockera trafik baserat på vilket program som genererat trafiken. Jag tror inte det finns något så bra system för det än dock.

Brandväggen i Linux är ganska vettigt konfigurerad från början, och vanliga användare behöver aldrig röra det, annat än att möjligtvis öppna ett par portar för något program.

Läs gärna på mer om brandväggar, och hur de egentligen fungerar. Det är ett ganska simpelt verktyg egentligen, som tillåter att man sätter upp väldigt komplexa system om man så vill.
GUFW och liknande är ganska dåliga om man vill förstå. De döljer en massa för en, och försöker göra det lätt för slutanvändaren. iptables, eller säg webmins grafiska skal till iptables, är ett bättre val om man verkligen vill förstå. Det håller en inte i handen, utan förväntar sig att användaren är kunnig. Men så får man också rå lågnivå-kontorll över exakt allt.
Och är det inte intressant, släpp det helt, och lita på standardkonfigurationen. Och använd GUFW eller liknande och bara öppna en port när det behövs. Och rör det inte mer än så.

Mina 2 cent i alla fall...