Avatar billede tingleff Praktikant
23. marts 2005 - 16:12 Der er 39 kommentarer

hjælp til firewall

Hej derude

Er der nogen som gider hjælpe mig med at lave et firewall script til min linux server.
Det ville være fint som der var nogen der kunne hjælpe mig med starten, hvorefter jeg så selv kunne tilføje flere porte der skulle åbnes for.
derudover selvfølgelig at vide hvordan jeg starter scriptet og stopper det :)
Min server kører med kun 1 interface.

er der nogen der kan hjælpe mig igang med det uden at det bare er henvisninger til andre sites ;)

håber at høre fra nogen

/tingleff
Avatar billede arne_v Ekspert
23. marts 2005 - 16:18 #1
Avatar billede arne_v Ekspert
23. marts 2005 - 16:19 #2
sorry - den virker vist ikke længere
Avatar billede medions Nybegynder
23. marts 2005 - 17:20 #3
Jeg lavede engang denne... måske kan den hjælpe dig lidt:

#!/bin/bash
clear

### GLOBALE VARIABLER ###
source="192.168.1.0/24"                                #Sætter variablen "source"
wanaddress="217.60.180.97"                            #Eksterne IP adresse
chainname="udefra"                                #Sætter kædenavnet

### SLETNING AF GAMLE KONFIGURATIONER ###
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F $chainname
/sbin/iptables -t nat -F POSTROUTING

### OPRETTELSE AF NY KÆDE ###
/sbin/iptables -N $chainname                            #Opretter kæden "udefra"
/sbin/iptables -A INPUT -i eth0 -j $chainname                    #Sender alt trafik videre til udefra kæden
/sbin/iptables -I FORWARD -p tcp --dport 23 -j DROP                #Lukker for alt telnet trafik
/sbin/iptables -I $chainname -m state --state ESTABLISHED,RELATED -j ACCEPT    #Tillader trafik indefra og ud
/sbin/iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT    #Tillader trafik indefra og ud

### NAT ###
/sbin/iptables -t nat -A POSTROUTING -s $source -d ! $source -j SNAT --to $wanaddress #Tilføjer NAT

### OPSTART AF FORWARDING ###
echo "1" > /proc/sys/net/ipv4/ip_forward                    #Starter FORWARDING op.

echo "Jubiiii det virkede, nu kører Firewallen"

//>Rune
Avatar billede bufferzone Praktikant
23. marts 2005 - 17:44 #4
På nedenstående link kan du finde en bestået opgave hvor et af kapitlerne giver og forklare en netfilter script. Kik på det

http://www.giac.org/certified_professionals/practicals/gcfw/0526.php
Avatar billede tingleff Praktikant
23. marts 2005 - 18:34 #5
jeg har kun 1 ip adresse og den er offentlig.
Kan i hjælpe mig?
Avatar billede tingleff Praktikant
23. marts 2005 - 18:39 #6
det er meget vigtigt at der først og fremmest er åbent for SSH for det er den eneste måde jeg har adgang til serveren. Også selvfølgelig at jeg kan starte og stoppe den som det passer mig :)

please hjælp mig...
Avatar billede langbein Nybegynder
23. marts 2005 - 21:55 #7
For server med et enkelt nettverkskort og diverse server funksjoner:


# Flush
iptables -t nat -F
iptables -F
iptables -X
iptables -Z

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# Open ports on router pc for server/services
# Rediger om det som ikke passer !
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT

# STATE RELATED for local processes on firewall machine
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Note: Forward chain skal ikke benyttes etter som denne bare filtrerer i forbindelse med routing funksjon.
Avatar billede langbein Nybegynder
23. marts 2005 - 21:57 #8
Note2: Web mail og en del slike funksjoner med "intern" datatransport kan være avhengig av at denne er med:
iptables -A INPUT -i lo -j ACCEPT
Avatar billede tingleff Praktikant
23. marts 2005 - 23:04 #9
ok.. det ser rigtig godt ud :)
men hvordan starter og stopper jeg det? og hvis jeg bruger det script er der så åbent for SSH?
Avatar billede langbein Nybegynder
23. marts 2005 - 23:09 #10
Kjøres, for eksempel:

"sh <filnavn>" event
"bash <filnavn>"

Hvis problemer med rettigheter: chmod 777 <filnavn> (men da har du gitt alle brukere rett til å eksekvere scriptet.)
Avatar billede tingleff Praktikant
23. marts 2005 - 23:12 #11
ok... kan scriptet ikke laves på en eller anden måde så jeg bare skal skrive ./filnavn start og ./filnavn stop ??
Avatar billede langbein Nybegynder
23. marts 2005 - 23:21 #12
Nei og jo. Det er unødvendig komplisert og ulogisk.

Det er jo ikke snakk om å starte og stoppe en prosess eller server funksjon.

Enklere og mer logisk er to script, for eksempel "fwclosed" og "fwopen"

"fwclosed" over.

"fwopen":

# Flush
iptables -t nat -F
iptables -F
iptables -X
iptables -Z

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT


Kjøres:

"sh fwopen"
"sh fw closed"

Bør også fungere
./fwopen
./fwclosed
Avatar billede tingleff Praktikant
23. marts 2005 - 23:32 #13
hmmm sorry... men det sidste forstår jeg ikke helt :)
Avatar billede langbein Nybegynder
24. marts 2005 - 00:34 #14
To forskjellige script. Det ene soerger for en riktig konfigurert firewall. Det annet for en helt aapen firewall. Er inne fra en Mepis Live Linux og mangle skandinaviske bokstaver :)
Avatar billede langbein Nybegynder
24. marts 2005 - 11:10 #15
Går det bra ? Broblemer ?

Laget ellers i sin tid en kopi av den danske firewall script generatoren, men la også inn en del endringer selve den delen som genererer scriptene, slik at scriptene ikke blir helt de samme. Fortsatt en del småfeil jeg ikke har fått rettet opp, men man har da et minste et "grunnskript" man kan redigere ut i fra:

http://www.im-learning.com/iptables/
Avatar billede tingleff Praktikant
24. marts 2005 - 11:47 #16
skal prøve det nu :)
er der et bestem biblotek det skal ligge i?
Avatar billede tingleff Praktikant
24. marts 2005 - 11:53 #17
den siger bare  "iptables: command not found"  ??
Avatar billede tingleff Praktikant
24. marts 2005 - 12:01 #18
nu får jeg denne her fejl... mangler jeg at installere noget på min server??

modprobe: Can't open dependencies file /lib/modules/2.4.20-021stab022.11.777-enterprise/modules.dep (No such file or directory)
iptables v1.2.6a: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
iptables: No chain/target/match by that name
iptables: Table does not exist (do you need to insmod?)
iptables: Table does not exist (do you need to insmod?)
: command not found
iptables: Bad policy name
iptables: Bad policy name
iptables: Bad policy name
: command not found
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
: command not found
iptables: No chain/target/match by that name
Avatar billede langbein Nybegynder
24. marts 2005 - 15:04 #19
Forsøk først kun å kjøre denne og se hva som skjer:

# Flush
iptables -F
iptables -X
iptables -Z


iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT


Kjør så "iptables -L"

Hva sier den da ?
Avatar billede tingleff Praktikant
24. marts 2005 - 15:09 #20
Den siger:

Chain INPUT (policy ACCEPT)
target    prot opt source              destination       

Chain FORWARD (policy ACCEPT)
target    prot opt source              destination       

Chain OUTPUT (policy ACCEPT)
target    prot opt source              destination
Avatar billede langbein Nybegynder
25. marts 2005 - 00:40 #21
Det over ser 100 % rett ut.

Så kjører du dette skriptet (glemte første linjen forrige gang):


#!/bin/sh

# Flush
iptables -F
iptables -X
iptables -Z

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# Open ports on router pc for server/services
# Rediger om det som ikke passer !
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT

# STATE RELATED for local processes on firewall machine
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Hva sier den når du kjører dette sktiptet over ?

Kjør så til sist:

"iptables -L"

Hva sier den da ?
Avatar billede langbein Nybegynder
30. marts 2005 - 16:56 #22
???
Avatar billede tingleff Praktikant
30. marts 2005 - 17:52 #23
undskyld sent svar.... men har lige haft hacker angreb på den server som jeg prøver at lave firewal'en på :(

men jeg prøvede dog det du forslog, og fik samme resultat...
Avatar billede tingleff Praktikant
03. april 2005 - 17:42 #24
det firewall script... starter det med at lukke alt ude også skal jeg så definere hvilke porte der er åbnet?? fordi jeg synes at når jeg fjerner den med port 80, så kan jeg stadig tilgå web udefra???
Avatar billede langbein Nybegynder
04. april 2005 - 14:24 #25
Det firewall script som jeg la ut lukker i utgangspunktet alle porter inn til server. Så åpner det en og en port.

Status for hva som er åpent sjekkes med "iptables -L"
Avatar billede tingleff Praktikant
04. april 2005 - 19:30 #26
ahhhhh jeg får stadig samme fejl...
det er iptables version 1.2.6a
min kernel er version 2.4.20-021stab022.11.777-enterprise

men får stadig:

: command not found
modprobe: Can't open dependencies file /lib/modules/2.4.20-021stab022.11.777-enterprise/modules.dep (No such file or directory)
iptables v1.2.6a: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
iptables: No chain/target/match by that name
iptables: Table does not exist (do you need to insmod?)
iptables: Table does not exist (do you need to insmod?)
: command not found
iptables: Bad policy name
iptables: Bad policy name
iptables: Bad policy name
: command not found
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
: command not found
'ptables v1.2.6a: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.


HJÆLP MIG PLZZZZ
Avatar billede langbein Nybegynder
04. april 2005 - 20:09 #27
Du må rapportere litt mer nøyaktig hvordan feilmeldingene framkommer, enten det er når du kjører script eller det er når du kjører "iptables -L".

Hvilken linux distribusjon er det egentlig ?

Nøyaktig printout for denne kommando: "ipchains -L"

Nøyaktig printout for denne kommando: "iptables -L"

Det dreier seg ikke om en kernel du har kompilert selv ? (Alle ordnære nyere Linux skal ha støtte for iptables og litt eldre Linux for ipchains.)
Avatar billede tingleff Praktikant
04. april 2005 - 20:15 #28
fejlen kommer når jeg kører dit foreslået fwclosed script

Distrubitionen er Debian 3.0

når jeg skriver ipchains -L kommer:
bash: ipchains: command not found

Når jeg skriver iptables -L fremkommer:
Chain INPUT (policy ACCEPT)
target    prot opt source              destination       

Chain FORWARD (policy ACCEPT)
target    prot opt source              destination       

Chain OUTPUT (policy ACCEPT)
target    prot opt source              destination
Avatar billede langbein Nybegynder
04. april 2005 - 20:18 #29
OK. Da skulle iptables fungere og være på plass.

Hva sier den hvis du kjører dette scriptet:

#!/bin/sh

# Flush
iptables -F
iptables -X
iptables -Z

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Avatar billede tingleff Praktikant
04. april 2005 - 20:23 #30
den siger:

: command not found
iptables: No chain/target/match by that name
iptables: Table does not exist (do you need to insmod?)
iptables: Table does not exist (do you need to insmod?)
: command not found
iptables: Bad policy name
iptables: Bad policy name
iptables: Bad policy name
: command not found
Avatar billede langbein Nybegynder
04. april 2005 - 20:38 #31
Nå opprettet jeg akkurat det samme scriptet og kjørte det også.
Ingen feilmeldinger. Fungerte 100 %

Kjørte det slik:

"bash <scriptnavn>"

Hvis dette ikke fungerer da må det vel være et eller annet grunnleggende feil med installasjonen ?
Avatar billede tingleff Praktikant
04. april 2005 - 21:07 #32
det fatter jeg ikke... det er en lejet linux server på et serverhotel..
hvilken linux dist kører du??
Avatar billede langbein Nybegynder
05. april 2005 - 00:54 #33
Stort sett de fleste distribusjoner, men ikke samtidig. Fedora + Slackware + sme server akkurat nå. Alle Linux distribusjoner av nyere type som jeg har prøvd kan kjøre denne:

#!/bin/sh

# Flush
iptables -F
iptables -X
iptables -Z

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Du får spørre support om hvorfor ikke det fungerer. Det skulle det normalt.
Avatar billede tingleff Praktikant
06. april 2005 - 18:33 #34
hej igen

nu har jeg fået reinstalleret min server med RedHat istedet og nu kørte jeg fwopen scriptet og det virkede... men da jeg kørte fwclosed, så tror jeg den kørte den :
#!/bin/sh
iptables -F
iptables -X
iptables -Z

og derefter blev jeg lukket ude da den den skrev at den chain var forkert.
Men kan det være fordi at netkortet i serveren ikke hedder eth0, men venet0 ??

nu venter jeg lige på at han genstarter serveren så jeg kan komme ind i den igen :)
Avatar billede tingleff Praktikant
06. april 2005 - 18:40 #35
undskyld... mit interface hedder venet0:00 ... kan det passe??
Avatar billede tingleff Praktikant
06. april 2005 - 20:06 #36
har lige fundet ud af at det er den sidste linje i scriptet den ikke kan finde ud af:

# STATE RELATED for local processes on firewall machine
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Så skriver den bare i output:
iptables: No chain/target/match by that name

hvad kan være forkert.... plzzzzzz hjælp mig... den er lige ved at være der :)
Avatar billede langbein Nybegynder
07. april 2005 - 14:34 #37
"venet0:00"  Den har jeg ikke sett før ?? Alle kort skal komme opp når du taster kommando "ifconfig".

At man "låser seg ute" er en ganske "normal" hendelse så man skal tenke seg godt om før man taster enter hvis det dreier seg om en remoote server med problemer med reboot.

Har testet denne på Fedora Core 2 akkurat nå:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Laget ellers også akkurat nå en copy past av dette:

#!/bin/sh

# Flush
iptables -F
iptables -X
iptables -Z

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# Open ports on router pc for server/services
# Rediger om det som ikke passer !
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT

# STATE RELATED for local processes on firewall machine
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Filnavn "firewall"

Kjører: "bash firewall"

Kjører feilfritt her ..

MVH Langbein.
Avatar billede tingleff Praktikant
07. april 2005 - 14:58 #38
hvad gør:
# STATE RELATED for local processes on firewall machine
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

???
Avatar billede langbein Nybegynder
08. april 2005 - 19:44 #39
Den sørger for at "stateful inspection prinsippet" blir ivaretatt for inngangen til serveren, dvs at den åpnet dynamisk for returtrafikk ved behov.

Dette behovet, mener jeg kun vil eksistere når du bruker serveren som klient, slik at den har behov for å åpne for returtrafikk i forbindelse med dette. Det kan være behof for dette, for eksempel ifb med dns opslag.

Det kan vel være at serverens kernel ikke er satt opp til å støtte statefull inspection ? Hvis man ikke har stateful inspection i kernel og man har behov for dynamisk åpning for returtrafikk som er satt opp fra innsiden, så er alternativet å åpne for alle porter over 1024, eventuelt kun udp hvis det dreier seg om dns oppslag. (I noen få tilfeller så behøver dns klienten tcp også, men vanligvis ikke.)

Den siste setningen eller regelen sørger altså for at firewall åpner dynamisk for trafikk satt opp fra innsiden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester