Behövs en brandvägg, och hur sätter man upp den?

Permalänk

Behövs en brandvägg, och hur sätter man upp den?

Jag har funderat lite på att installera en brandvägg på min "Arch Linux"-server, och har i samband med det några frågor.

1) Behöver man använda en brandvägg?
2) I konfigurationen av kärnan hittade jag "Network packet filtering (replaces ipchains)". Vad är det? Hur skall alternativen under "IP: Netfilter Configuration" konfigureras?
3) Jag hittade ett program vid namn Shorewall som verkar vara ett GUI till iptables. Är iptables samma sak som ipchains? Går Shorewall i så fall att använda även med "Network packet filtering (replaces ipchains)"?

Permalänk

Re: Behövs en brandvägg, och hur sätter man upp den?

1 Jag rekommenderar i alla fall det...

2. Enklast är det om du kompilerar in iptables in i kärnan och resterande delar som moduler. "<*> IP tables support (required for filtering/masq/NAT)" (därefter alla underliggande "val" som <M>)...

Därefter behöver du också installera user-space-programmet "iptables". Med andra ord: brandväggen i Linux består av två delar: en kernel-del och en user-space-del...

3. Om du måste köra ett GUI så tycker jag Firestarter är enklare. Dock får man en massa "fulregler" om man kör de flesta GUI:n. Alltså en massa onödiga regler som inte direkt åstakommer mer än att slösa klockcykler. Bäst är att konfigurera för hand, men det är dessvärre rätt krångligt till en början...

Exempel:

#!/bin/sh #Flush and delete all iptable rules /sbin/iptables -F /sbin/iptables -X #Block all (most) communication /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD DROP #Allow all established and related incoming connections /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #Allow all connections to localhost so that for example Gnome applications can communicate using gconfd /sbin/iptables -A INPUT -i lo -j ACCEPT #Open up ports for the BitTorrent client /sbin/iptables -A INPUT -p tcp --dport 6881:6889 -j ACCEPT #Open up ports to enable the SSH server /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Web server /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT # r-sync server /sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT

o.s.v...

Permalänk
Medlem

Jag tycker brandvägg inte är ett måste på ett POSIX-system, men det känns tryggare om man har en.

Har personligen aldrig konfigurerat iptables, bara PF, och jag måste säga att PF verkar hästlängder trevligare.

Visa signatur

qw q b

Permalänk
Medlem

Men det där verkar ju mer va portfiltrering än riktig firewall?
Iallafall för mitt otränade öga

Jag menar, firewalls i windows där sätter man ju regler för individuella program.
Tex att BitTorrent ska få använda den och den porten, men för det behöver inte porten vara öppen för andra program. Brandväggen känner alltså av vilka program som vill in/ut.

Linuxbrandväggarna verkar ju inte direkt så kraftfulla.
Och just detta exempel verkar ju som PAT-reglerna i en router....eller missar jag något?

Visa signatur

CCNA sedan juni 2006

Permalänk

Hmm, jag hittar inte "IP tables support (required for filtering/masq/NAT)". Kärnan är version 2.6.12.3 från www.kernel.org Är det bara jag som missar något, eller har den blivit utbytt mot "Network packet filtering (replaces ipchains)"? Namnet antyder i alla fall det...

[EDIT] Måste man göra något speciellt för att få brandväggen att startas när man bootar, eller räcker det att kompilera in det i kärnan?

Permalänk
Medlem

lim och träplugg

Visa signatur

Man får vad man betalar för...

Permalänk

Sachankara: Skall det där skriptet köras när man bootar? Det verkar så, eftersom alla inställningar återställdes när jag bootade om.

Permalänk
Citat:

Ursprungligen inskrivet av Seb74
Men det där verkar ju mer va portfiltrering än riktig firewall?
Iallafall för mitt otränade öga

Jag menar, firewalls i windows där sätter man ju regler för individuella program.
Tex att BitTorrent ska få använda den och den porten, men för det behöver inte porten vara öppen för andra program. Brandväggen känner alltså av vilka program som vill in/ut.

Linuxbrandväggarna verkar ju inte direkt så kraftfulla.
Och just detta exempel verkar ju som PAT-reglerna i en router....eller missar jag något?

Varenda gång jag ser en av dina poster så gnäller du om hur mycket bättre du tycker Windows är. Varför envisas med Linux i så fall? Kryp tillbaka till Windows-delen på forumet så är du schyst...

Jag är som sagt lite trött på dina poster. Det är ju en viss skillnad mellan konstruktiv kritik och rent gnäll.

För övrigt finns det paketfiltrering för iptables som kan ta bort programberoende paket. T.ex. så man kan hindra all CS- och DC-kommunikation...

Citat:

Ursprungligen inskrivet av Isbjörnen Igor
Sachankara: Skall det där skriptet köras när man bootar? Det verkar så, eftersom alla inställningar återställdes när jag bootade om.

Jag har ingen koll på hur Arch Linux fungerar, men kolla om det inte finns ett iptables-rc-skript för att spara och återställa reglerna per automatik...

T.ex. i Gentoo gör man följande:
/etc/init.d/iptables save
rc-update add iptables default

Annars får de väl göra ditt egna rc-skript. Vetefan hur det skulle bli, men kanske i stil med detta:

#!/sbin/runscript depend() { before net } start() { einfo "Startar iptables" /sbin/iptables-restore -c < /root/iptables-regler eend $? } stop() { einfo "Stänger ner iptables" /sbin/iptables-save -c > /root/iptables-regler /sbin/iptables -F /sbin/iptables -X eend $? }

Permalänk

[root@firebolt ~]# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:ssh Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Verkar detta bra? Raden "ACCEPT all -- anywhere anywhere" oroar mig en aning. Den dök upp i och med detta:

/usr/sbin/iptables -A INPUT -i lo -j ACCEPT

Permalänk
Citat:

Ursprungligen inskrivet av Isbjörnen Igor

[root@firebolt ~]# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:ssh Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Verkar detta bra? Raden "ACCEPT all -- anywhere anywhere" oroar mig en aning. Den dök upp i och med detta:

/usr/sbin/iptables -A INPUT -i lo -j ACCEPT

Vissa program kommunicerar lokalt med TCP/UDP genom loopback-interface:t i stället för "Unix sockets". Du behöver inte öppna upp det, men var då beredd på att en hel del grafiska applikationer slutar fungera...

Du kan kontrollera reglerna bättre med verbose-flaggan. "iptables -L -v"

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Seb74
Linuxbrandväggarna verkar ju inte direkt så kraftfulla.

Och detta baserar du på vad?

Permalänk

Tack för hjälpen! Det verkar fungera nu.

Citat:

Ursprungligen inskrivet av Seb74:

Men det där verkar ju mer va portfiltrering än riktig firewall?
Iallafall för mitt otränade öga

Jag menar, firewalls i windows där sätter man ju regler för individuella program.
Tex att BitTorrent ska få använda den och den porten, men för det behöver inte porten vara öppen för andra program. Brandväggen känner alltså av vilka program som vill in/ut.

Linuxbrandväggarna verkar ju inte direkt så kraftfulla.
Och just detta exempel verkar ju som PAT-reglerna i en router....eller missar jag något?

Jag tror att linuxbrandväggarna är kraftfullare än vad som hittills kommit fram i tråden.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nillon
Och detta baserar du på vad?

Att man måste strula så här mycket för att få enkel portfiltrering....typ.
Medans i windows kör man en exe-fil och installerar en fullfjädrad brandvägg med smarta regler för alla program.

Det var det jag baserade det på, men jag är inte säker på min sak.

Visa signatur

CCNA sedan juni 2006

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Seb74
Att man måste strula så här mycket för att få enkel portfiltrering....typ.
Medans i windows kör man en exe-fil och installerar en fullfjädrad brandvägg med smarta regler för alla program.

Det var det jag baserade det på, men jag är inte säker på min sak.

Enkelhet och kraftfullhet är två rätt olika saker. Iptables eller PF är nog bra mycket säkrare, kraftfullare och konfigurerbart än någon brandvägg du hittar till windows.

Visa signatur

Hur man installerar program i *nix | There is no Swedish conspiracy

these days you can't use the Web at 2400 baud because the ads are 24KB - Bill Joy

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Seb74
Att man måste strula så här mycket för att få enkel portfiltrering....typ.
Medans i windows kör man en exe-fil och installerar en fullfjädrad brandvägg med smarta regler för alla program.

Det var det jag baserade det på, men jag är inte säker på min sak.

Definierar du "kraftfull" som detsamma som "enkel"?
Allvarligt, dina antaganden utan att kolla upp fakta börjar bli rätt tröttsamma. Är det verkligen så jobbigt att googla lite innan man häver ur sig det ena och det andra?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nillon
Definierar du "kraftfull" som detsamma som "enkel"?
Allvarligt, dina antaganden utan att kolla upp fakta börjar bli rätt tröttsamma. Är det verkligen så jobbigt att googla lite innan man häver ur sig det ena och det andra?

Jag förstår inte varför en windowsbrandvägg skulle vara dålig?
Kan man sätta exakta regler för vilka program som ska få ha vilken typ av trafik på vilken port åt vilket håll, till vilken/vilka hosts.....tja, vad mer kan man behöva?
Att man dessutom kan få det väldigt enkelt (enkelt = mindre risk för farliga misstag, men ni gör väl aldrig fel när ni skriver såna där regler för hand) och gratis är ju ingen nackdel.

Tycker JAG, men oliksinnade är inte så välkommna här, och har man inte hållit på med Linux i 5+ år och kan allt så har man heller inte rätt att komma med åsikter.....enligt vissa.

Visa signatur

CCNA sedan juni 2006

Permalänk
Medlem

Var har jag påstått att det inte skulle finnas bra Windowsbrandväggar? Det är jag övertygad om att det gör. Jag stör mig bara på att du säger att "brandväggarna för Linux inte verkar vara särskillt kraftfulla" när du uppenbarligen inte har koll på vad du pratar om.
Vill man ha peka-och-klicka-GUI:n till iptables finns det också. Vill man hacka med scriptfiler för hand kan man göra det. Det är bara att välja.

(Nej, jag har inte heller hållit på med Linux i 5+ år)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nillon
Jag stör mig bara på att du säger att "brandväggarna för Linux inte verkar vara särskillt kraftfulla" när du uppenbarligen inte har koll på vad du pratar om.

Jag skrev "Linuxbrandväggarna verkar ju inte direkt så kraftfulla.
Och just detta exempel verkar ju som PAT-reglerna i en router....eller missar jag något?"

Det var ett påstående och en fråga på samma gång.

"Jag förstår inte varför en windowsbrandvägg skulle vara dålig?" var mer menat till Lunke.

Orkar hålla på och tjafsa med er längre....
I fortsättningen ska jag inte klaga när jag hittar något jag ogillar med Linux utan knipa igen istället.
Det ger ju ändå inget, jag menar, Linux blir ju inte bättre av att jag eller nån annan gnäller här inne. Bara retar upp vissa, vilket inte är min mening.

Visa signatur

CCNA sedan juni 2006

Permalänk
Medlem
Visa signatur

Jag är inte vegetarian för att jag älskar djur, jag är vegetarian för att jag hatar växter.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Beyonder
Seb74: Kolla Firewall Builder, KMyFirewall eller Guard Dog

http://www.fwbuilder.org/
http://kmyfirewall.sourceforge.net/
http://www.simonzone.com/software/guarddog/

Intressant. Tack för ett konstruktivt inlägg
Antar att dom kan va rätt bökiga att installera och konfigurera ändå, men kanske testar nån av dom senare.
Bra att veta att dom finns iallafall.

Visa signatur

CCNA sedan juni 2006

Permalänk
Medlem

Re: Behövs en brandvägg, och hur sätter man upp den?

Citat:

Ursprungligen inskrivet av Isbjörnen Igor
Jag har funderat lite på att installera en brandvägg på min "Arch Linux"-server, och har i samband med det några frågor.

1) Behöver man använda en brandvägg?
2) I konfigurationen av kärnan hittade jag "Network packet filtering (replaces ipchains)". Vad är det? Hur skall alternativen under "IP: Netfilter Configuration" konfigureras?
3) Jag hittade ett program vid namn Shorewall som verkar vara ett GUI till iptables. Är iptables samma sak som ipchains? Går Shorewall i så fall att använda även med "Network packet filtering (replaces ipchains)"?

Jag rekommenderar att du håller dig till shorewall - det är grymt smidigt när man väl lär sig syntaxen (som iofs inte är så överdrivet svår).

Jag skrev faktiskt en guide om hur man kan använda shorewall förut, hoppas den hjälper något iaf
http://unix.se/Brandv%E4gg_i_Linux

Visa signatur

There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

@oscar:prutt.party / monotux@freenode

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Lunke
Enkelhet och kraftfullhet är två rätt olika saker. Iptables eller PF är nog bra mycket säkrare, kraftfullare och konfigurerbart än någon brandvägg du hittar till windows.

förutsatt att personen som sitter med skiten vet vad dom gör.. spelar ingen roll hur kraftfullt verktyget är om personen som jobbar med det är en idiot

Visa signatur

as it was in the beginning so it shall be in the end

Permalänk
Medlem

Igor din gamle isbjörn! Får du planera på att installera om din Arch-Linux server, och fortfarande skall använda den som router. Så kan jag rekomendera OpenBSD + PF. Där har du logik, kraftfullhet, enkelhet, säkerhet!

Permalänk
Medlem

Om man bara ska ha en enkel linux brandvägg med 2 eller fler nätverkskort som är enkel att underhålla osv så kan jag rekomendera ipcop (www.ipcop.org) det finns addons och VPN stöd, samba stöd m.m och det mesta går att administrera via deras webbgränssnitt eller så faller mitt andra val på m0n0wall som bygger på freebsd (http://www.m0n0.ch/wall/) men jag använder personligen ipcop hellre för jag är mer van vid att fixa saker i linux än i bsd miljöer om det skulle krävas.

Visa signatur

Ryzen 9 5900X, Asus TUF X570-PLUS, XFX 6950XT, 48GB G.Skill 3600Mhz, Corsair HX650, Samsung 840 EVO 250Gb, Kingston A2000 M.2 500GB, 1+2 Tb HDD, MSI Optix MPG321UR-QD

Permalänk
Medlem

iptalbes script kopierat från Håkans underbara slackwaresida, funkar utmärkt.

#!/bin/bash # # Namn: ipt.sh # Version: 0.5 # Beskrivning: Iptables init script för att på ett # enkelt sätt blocka inkommande trafik # som inte är initierad från lokala datorn. # Jag tar det för givet att datorn enbart # har ett nätverkskort och inte använder ppp, # Alltså en dator kopplad via bredband. # # Av: _--- Rodrigo Hidalgo ---_ # PATH=/bin:/sbin:/usr/bin:/usr/sbin #kolla om vi fått med argument if [[ "$1" = "" ]] ;then echo "Usage: ipt.sh <start>/<stop>" exit fi echo -e " --___ Startar lokal firewall ___--\n" logger Startar lokal firewall # -- -- Fas1 -- -- # IPT="/usr/sbin/iptables" # iptables binär IF="eth0" # första näteverks interfacet #Ta reda på ip adress. För att kunna få dhcp_ip så kör denna script efter dhcp init ETH0_IP=`ifconfig eth0|grep inet|awk '{print $2}'|tr -d addr:` # Sätt kernel inställningar #ingen ip_forwarding echo "0" > /proc/sys/net/ipv4/ip_forward #inga redirects echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects #inga source route echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route #logga ovanliga paket echo "1" > /proc/sys/net/ipv4/conf/all/log_martians # -- -- Fas2 -- -- # # Kontrollera att iptables finns och att vi har ett ip på eth0 if [[ -f $IPT && -x $IPT ]];then echo -e "Fint vi har iptables och vi kan exekvera den!\n" else echo -e "Hum jag kan inte hitta iptables eller så kan man inte exekvera den" exit fi if [[ "$ETH0_IP" = "" ]];then echo -e "Vi fick inte tag på eth ip, sorry" exit else echo -e "Du har ip $ETH0_IP\n" fi start() { #rensa nuvarande regler och kedjor $IPT -F $IPT -X #sätt standard policyn $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT ACCEPT $IPT -A INPUT -i lo -j ACCEPT $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #det här är för dcgui-qt #$IPT -A INPUT -i eth0 -d $ETH0_IP -p tcp --dport 9176 -j ACCEPT #$IPT -A INPUT -i eth0 -d $ETH0_IP -p udp --dport 9176 -j ACCEPT #det här är loggen #$IPT -A INPUT -m limit --limit 5/minute --limit-burst 3 -j LOG --log-prefix "MAIN_DROP" #det här är bit-torrent #$IPT -A INPUT -i eth0 -d $ETH0_IP -p tcp --dport 6881:6889 -j ACCEPT #OBS! Ta bort "#" ovan om du vill att det ska gälla. } stop() { #rensa alla regler och kedjor $IPT -F $IPT -X #sätt accept regel $IPT -P INPUT ACCEPT } if [[ "$1" = "start" ]];then start fi if [[ "$1" = "stop" ]];then stop fi exit

Visa signatur

Gula tankar sover bäst