Avatar billede ibhansen Nybegynder
02. november 2004 - 22:13 Der er 23 kommentarer og
1 løsning

iptables til firewall i linux

Jeg har nu brugt flere uger på at få iptables til at virke, og nu kommet så langt (synes jeg selv:D) at jeg skal have sat nogle regler op, men må indrømme jeg ikke forstår ret meget af hvordan det gøres. Så hvis nogle skulle kende en god artikel til hvordan det sættes op, er jeg meget interesseret, og med god mener jeg selvfølgelig nem.

Foreslag til scripts er også velkommen, men spørgsmålet går hovedsageligt ud på at få noget viden om iptables, da jeg gerne vil vide hvad jeg har til at køre.

Nu til facts:
Jeg bruger Redhat fedora Core 2 (Hvis det skulle have nogen betydning)

Jeg skal bruge iptables til at lave en firewall, som skal placeres lige før min router, routeren understøtter NAT. Serveren med linux har 2 netkort, hvor det ene så er forbundet til netværket og det andet til routeren. Der skal ind til videre ikke køre nogen betydelige services på serveren til at starte med, men meningen er at der nok kommmer en Counter-strike server, samt FTP, så dette burde måske tages med i overvejningen når sådan et script laves?

På forhånd mange tak for hjælpen.
Avatar billede bufferzone Praktikant
02. november 2004 - 22:28 #1
På nedenstående link kan du hente en rapport skrevet af Protegos tekniske chef. Den indeholder bl.a. en rigtig god tutorial til hvordan du kan opsætte en NetFilter firewall (IPTables)

http://www.giac.org/practical/Peter_Vestergaard_GCFW.zip

ellers kan du få hjælp her, jeg arbejder selv en del med netfilter
Avatar billede ibhansen Nybegynder
02. november 2004 - 22:46 #2
Har før haft skimtet den rapport, men vil da lige prøve igen. Skriver tilbage engang i morgen igen.
Avatar billede bufferzone Praktikant
02. november 2004 - 22:52 #3
Kik på tutorial delen, hvis du nærlæser den er den faktisk rigtig god og giver dig en firewall med god sikkerhed
Avatar billede ibhansen Nybegynder
02. november 2004 - 23:20 #4
Har nærlæst tutorial delen, og må da ærligt indrømme at det ikke hjalp mig meget, det virker stadig alt for indviklet for mig.
Avatar billede bufferzone Praktikant
02. november 2004 - 23:35 #5
OK hvad med at paste de af scriptet du har lavet, så kikker vi på det eller beskrive hvad det er du gerne vil have hjælp til
Avatar billede kama Nybegynder
03. november 2004 - 08:42 #6
Hvis du vil prøve noget nemt, så kan du med en standardinstallation af FC2 installere Webmin og herigennem opsætte iptables-regler. Hent en rpm her: http://prdownloads.sourceforge.net/webadmin/webmin-1.160-1.noarch.rpm
Avatar billede langbein Nybegynder
03. november 2004 - 12:40 #7
"Jeg skal bruge iptables til at lave en firewall, som skal placeres lige før min router, routeren understøtter NAT."

Det blir jo litt spesielt, å plassere en netfilter firewall foran en nat router.

Litt av hengig av hva slags internettilkopling du har så kan det tenkes at den eneste måten å sette opp dette vil være ved å sette opp en netfilter firewall som kjører i bridge mode. De aller fleste guides og slikt omhandler jo kun oppsett i routing mode som er "standardmåten" ved konfigurering av Linux firewall.

Dersom du eventuelt hadde satt opp i motsatt rekkefølge, så ville det faktisk ha vært vesentlig enklere, først adsl router modem ut mot internett og så Linux router firewall på innsiden av denne. Å kjøre to slike routere eller routing firewalls i serie på denne måten er faktisk ganske like til.

(Har testet den varianten med Linux routing firewall på innsiden mange ganger. Har også laget og testet ut en Linux bridge firewall som for så vidt, kanskje kunne stå utenfor et adsl router/modem, men jeg har så langt regnet en slik løsning som så spesiell at jeg ikke har sett noen grunn til å teste det.)

Mener at dersom man ønsker å ha to routere eventuelt routing firewalls i serie, så bør Linux varianten av denne stå på innsiden på grunn av pålogging og slike ting.

Bruker selv denne for å huske etter og friske opp iptables syntaks:
http://iptables-script.dk/

Det er forholdsvis enkelt å lese ut funksjonene fra de scripts som genereres.
Avatar billede langbein Nybegynder
03. november 2004 - 12:42 #8
Eller kan det være at du mener "før" sett fra innsiden, dvs fra lan, slik at det allikevell dreier seg om en firewall som skal stå på innsiden av adsl router/modem ?
Avatar billede ibhansen Nybegynder
03. november 2004 - 14:58 #9
Bufferzone: Har sådan set ikke andet end de 3 linier af scriptet der lukker for alt:D

langbein: Jeg har måske ikke skrevet det helt så forståeligt, men det jeg mener er:

WAN - Router - linux firewall - LAN

Altså skal linux firewallen være på indersiden af routeren, hvilket i mit tilfælde i hvertfald er en nødvendighed, da routeren har indbygget modem.
Avatar billede ibhansen Nybegynder
03. november 2004 - 15:04 #10
#!/bin/sh

# Diable forwarding
echo 0 > /proc/sys/net/ipv4/ip_forward

LAN_IP_NET='10.0.0.1/8'
LAN_NIC='eth1'
WAN_IP='10.0.0.1'
WAN_NIC='eth0'

# load some modules (if needed)
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

# Flush
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F

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

# Open ports on router for server/services
iptables -A INPUT -j ACCEPT -p tcp --dport 21
iptables -A INPUT -j ACCEPT -p tcp --dport 22

# STATE RELATED for router
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# Enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

Ovenstående er hvad jeg for ud af scriptgeneratoren. Jeg synes bare det ser ret simpelt ud, er den så sikker? Der skal somsagt køre ftp på serveren, og jeg vil gerne kunne fjernstyre den over ssh.
Avatar billede bufferzone Praktikant
03. november 2004 - 16:41 #11
De tre linier der lukker for alt, er god firewall script kultur. Da du efterfølgende appender regler til reglsættet, bør du altid starte med at flushe kæderne og lukke alt, så risikere du ikke at et eller andet er åbent før resten appentes.


Hvis alt er åbent fra starten, vil de andre regler aldrig komme i brug.
Avatar billede langbein Nybegynder
03. november 2004 - 22:42 #12
Tja, jo, men dette scriptet har jo ikke de tre linjene.

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

Her står jo den siste policy til ACCEPT, dvs den står åpen.

"Hvis alt er åbent fra starten, vil de andre regler aldrig komme i brug."

Nei det er jo feil (forkert ?) ! (Kommer litt ann på hva man mener med "åpent fra starten".)

Hvis åpent fra starten betyr "policy rules" så blir dette feil.

Man kan godt lage firewall rules som fungerer ut fra disse innledende regler:

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

Firewall kan fremdeles lukkes helt eller delvis ved hjelp av de påfølgende rules.
(Men firewall logikken blir noenlunde motsatt.)

Eksempel:

iptables -P INPUT ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP

Dette vil for eksempel åpne alle porter med unntak av port 80 som vil være lukket.
Avatar billede langbein Nybegynder
03. november 2004 - 22:52 #13
Når det gjelder det scriptet som står over og som er hentet ut fra firewall script generatoren så kan dette ikke benyttes til å beskytte et lan som ligger bak denne firewall.

Skriptet mangler postrouting rule, dvs det kan ikke ivareta source nat eller en delt utgående internettforbindelse. (Hvis det var meningen.) Det mangler dessuten firewall filtering rules som åpner for trafikk fra lan til wan (internett). (Og her står policy til drop.)

Scriptet fra firewall script generatoren er et meget simpelt script som til en viss grad vil kunne beskytte firewall maskinen selv, dersom den brukes som work station. Ved siden av å kunne fungere som workstation så vil den også kunne kjøre som ftp server.

Det vil være helt lukket av for trafikk til PC'er på lan bak firewall. 

Lastingen av disse kernelmoduler er meningsløs:

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

Fuksjonen til disse er å støtte en nat funksjon som ikke står definert i dette scriptet i det hele tatt. (På den annen side så er det heller ingen stor ulykke å laste dem, selv om de ikke har noen fornuftig funksjon.)
Avatar billede langbein Nybegynder
03. november 2004 - 23:14 #14
"Jeg synes bare det ser ret simpelt ud, er den så sikker ?"

De scriptene som kommer ut fra script generatoren er script i iptables på nesten aller enkleste nivå. De inneholder blandt annet følgende begrensninger:

1. Er bare beregnet for å kunne fungere som routing eller filtering firewall. Er ikke beregnet for bridge mode. Må fungere som en router i forhold til et bakenforliggende lan. (Med de ulemper og spesialiteter som følger av dette.)

2. Har full åpning for utgående trafikk. Ingen begrensninger for trojanere, ormer, og hva det skulle være, for eksempel de som måtte befinne seg på Windowsmaskinene bak firewall. Her er det full åpning ut. (Slik at det vil kunne være en fordel å kombinere med en personal firewall på Windows maskinene.)

3. Har ingen beskyttelse mot spoofede, dvs forfalskede ip pakker som benyttes i mange hacker programmer.

4. Har ingen ting som kan beskytte mot dos eller ddos angrep (overbelastingsangrep).

5. Har ingen ting som kan beskytte mot buffer overflow.

6. Ingen beskyttelse mot virus, trojanere, osv, osv.

7. Statefull inspection "mekanisme" har tidligere vist seg å være mulig å "spoofe" dvs å trenge gjennom. (Det har kommet kernel upgrades i forbindelse med dette.)

8. Ingen setting av systemvariabler som bidrar til å "hardne" det bakenforliggende Linux operativsystemet.

De firewall scripts som genereres ut fra web siden er ikke spesielt sofistikerte eller spesielt avanserte, men til daglidags hjemmebruk, så kan det i praksis holde bra allikevell. Scriptene kan lages vesentlig mye mer avansert enn dette,  men det er på den annen side bedre å ha et meget enkelt lett overskulig script der man vet eksakt hva scriptet gjør, enn et meget avansert og uoverskuelig script som i realiteten kan ha store sikkerhetsmangler som følge av at man ikke kan overskue hvordan scriptet egentlig fungerer.

Man må vurdere totalen og helheten i det hele.

Dersom Linux firewall står bak en annen Nat router (som i realiteten også vil fungere som en firewall), og dessuten personal firewall på arbeidsstasjonene så skal det ikke særlig mye til før at Linux firewall blir sikker nok.

Med litt en litt mer utfyllende beskrivelse av hva firewall i dette tilfellet faktisk skal gjøre, dvs oppgaven den skal utføre, så går det ann å legge noen flere tips (hvis de kan brukes.)
Avatar billede ibhansen Nybegynder
05. november 2004 - 19:43 #15
Undskyld det lidt sene svar.

Det lyder meget fornuftigt det du siger langbein.

Ved ikke rigtig hvordan jeg bedre kan beskrive hvad den skal bruges til. Men firewallen skal bruges til at beskytte 3-4 pc'er på mit lan. Så alt trafik på LAN'et skal igennem Linux firewallen. Grunden til dette er mine forholdsvis "dumme" familliemedlemmer der ikke kan administrerer en personlig firewall på deres pc ordenligt.

Jeg har tegnet en lille tegning af mit LAN i paint, men man burde kunne se meningen med det: http://upit.dk/files/lan.JPG
Avatar billede langbein Nybegynder
06. november 2004 - 09:53 #16
Hei !

Tegningen viser et oppsett med faktisk to firewall/routere i serie.
Ut i fra et slikt oppsett så må vel en standard Linux firewall a la iptables script dk holde i lange baner.

Men skal det ikke være noen server funksjoner i dette oppsetet ?

Slik som du har tegnet tingene så finnes det jo flere muligheter. En av dem er et ganske avansert oppsett med dmz basert på 2 separate firewalls, ettersom det jo allerede er to firewall tegnet inn på tegningen.
Avatar billede langbein Nybegynder
06. november 2004 - 09:57 #17
Pr dags dato, dvs før du har satt opp noen Linux firewall, mon om du da bruker lokale ip adresser på lan ? Hvis du i linux taster "ifconfig" eller i Windows "ipconfig" hva slags ip adresser finner du da at det er på lan ? (Dersom dette er lokale adresser, da er sannsynligvis den eksisterende router en nat router, dvs en router som i praksis også har innebygget firewall funksjon.)
Avatar billede ibhansen Nybegynder
06. november 2004 - 12:55 #18
Det er en NAT router, for tildelt ip-adresserne 10.0.0.1 og op af
Avatar billede ibhansen Nybegynder
06. november 2004 - 12:59 #19
Og der skal være et par server funktionen, glemte dem bare. Jeg regner med at PC'en, som skal køre linux firewall, og skal køre FTP, og CS-server. Som det er nu kører den faktisk FTP.
Avatar billede langbein Nybegynder
06. november 2004 - 15:14 #20
All den tid at det hele skal stå bak en nat router og det dreier seg om et hjemme pc nettverk, så holder det fint med en Linux firewall av den type man kan sette opp ved hjelp av script generatoren .. dvs, det kan vel diskuteres om hvirvidt dette er overkill allerede.

Har selv prøvd ut stort sett alle de prinsipp variantene som jeg har lest om på internett, men med opp til 5 bokser for å ivareta firewall og serverfunksjoner, i et vanlig hjem så bli liksom dette litt vel mye mht plass og støy.

Har nå endt opp med å kjøre en enkelt hardware nat router (Netopia) som inngang og så alle servere og arbeidsstasjoner på et felles lan. Det er i grunnen det som jeg synes gir "passende sikkerhet" for meg. Brukte div personal firewalls på arbeidsstasjonene, men nøyde meg etterhvert med XP sin innebygde. Selvfølgelig så ville det jo gi litt ekstra såkalt "sikkerhet", men ut i fra mitt "sikkerhetsbehov" så synes jeg ikke det har så mye for seg. Kjører forresten alltid input firewall på Linux serverne, fordi dette er enkelt å sette opp og ulempene nesten ingen.
Avatar billede langbein Nybegynder
06. november 2004 - 15:27 #21
Hvis man ønsker å sette opp en nat gateway med div serverfunksjoner, så kan man selvfølgelig det. (Har testet med 2 og 3 nat routere i serie og det har fungert helt ok).

Hvis man skal bruke script generatoren til å lage en slik firewall/gatway/server så blir det vel omtrent noe slikt:
#!/bin/sh

# iptables script generator: V0.1-2002
# Comes with no warranty!
# e-mail: michael@1go.dk

# Diable forwarding
echo 0 > /proc/sys/net/ipv4/ip_forward

LAN_IP_NET='10.0.1.0/255.255.255.0'
LAN_NIC='eth1'
WAN_IP='10.0.0.2'
WAN_NIC='eth0'

# load some modules (if needed)
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

# Flush
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F

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

# enable Masquerade and forwarding
iptables -t nat -A POSTROUTING -s $LAN_IP_NET -j MASQUERADE
iptables -A FORWARD -j ACCEPT -i $LAN_NIC -s $LAN_IP_NET
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Open ports on router for server/services
iptables -A INPUT -j ACCEPT -p tcp --dport 21

# STATE RELATED for router
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# Enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
Avatar billede langbein Nybegynder
06. november 2004 - 15:32 #22
Hvis man event setter ftp serveren på lan, så blir det vel noe slikt:

#!/bin/sh

# iptables script generator: V0.1-2002
# Comes with no warranty!
# e-mail: michael@1go.dk

# Flush
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F

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

# Open ports on router for server/services
iptables -A INPUT -j ACCEPT -p tcp --dport 20
iptables -A INPUT -j ACCEPT -p tcp --dport 21

# STATE RELATED for router
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Ser at script generatoren bare forwarder port 21. Ville egentlig trodd at port 20 også behøves, så jeg la inn den.
Avatar billede langbein Nybegynder
09. november 2004 - 00:11 #23
Går det bra !? :)
Avatar billede ibhansen Nybegynder
09. november 2004 - 14:07 #24
Ja, har ikke haft så meget tid til at se på det, men det lader til at virke, tak for hjælpen.
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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