|
| Fedora Core 4 som NAT-enhed Fra : Jacob Jensen |
Dato : 30-01-06 22:04 |
|
Hvordan sætter jeg en Fedora Core 4 op som nat-enhed?
Jeg vil gerne have mulighed for at forwarde indkommende pakker med bestemte
port-numre til interne PC'er.
Jeg har efterhånden læst mig frem til at det er noget med ipmasqadm og
portfw (sådan ca.) men ingen af disse pakker findes tilsyneladene i min
distribution.
Hvad er forskellen egentligt på IP masq. og port forwarding? Jeg er lidt ny
til linux på mange områder, og har ikke helt kunne forstå forskellen.
Kan man benytte port forwarding uden ip masq?
Jacob
| |
Kent Friis (30-01-2006)
| Kommentar Fra : Kent Friis |
Dato : 30-01-06 22:14 |
|
Den Mon, 30 Jan 2006 22:04:19 +0100 skrev Jacob Jensen:
> Hvordan sætter jeg en Fedora Core 4 op som nat-enhed?
>
> Jeg vil gerne have mulighed for at forwarde indkommende pakker med bestemte
> port-numre til interne PC'er.
>
> Jeg har efterhånden læst mig frem til at det er noget med ipmasqadm og
> portfw (sådan ca.) men ingen af disse pakker findes tilsyneladene i min
> distribution.
Hvor har du læst det? Teknisk museum? ipmasqadm var det man brugte
i gamle dage (Linux 2.2). Nutildags klarer iptables det hele. Og den
har du sikkert allerede installeret.
"man iptables"
Portfw lyder som noget BSD-noget.
> Hvad er forskellen egentligt på IP masq. og port forwarding? Jeg er lidt ny
> til linux på mange områder, og har ikke helt kunne forstå forskellen.
Masquerading er et subset af SNAT - Source NAT - der piller ved
afsender-adressen. Det er det man bruger når man skal have flere
computere til at se ud som om de alle kommer fra samme IP-nummer.
Forwarding er derimod DNAT - Destination NAT - der piller ved modtager-
adressen. Det er den man bruger når indgående trafik skal dirigeres
videre til et andet IP-nummer.
I dit tilfælde har du så vidt jeg kan se brug for begge dele -
SNAT eller Masquerading bruger du nok allerede (hvis du da bruger
Fedora-boksen som gateway) og forwarding / DNAT er det du gerne
vil.
Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.
| |
Claus Rasmussen (31-01-2006)
| Kommentar Fra : Claus Rasmussen |
Dato : 31-01-06 00:56 |
|
Jacob Jensen wrote:
> Hvordan sætter jeg en Fedora Core 4 op som nat-enhed?
Brug en pakke, som tager sig af de mere hardcore ting i firewall opsætningen
for dig. Jeg kan anbefale shorewall ( http://www.shorewall.net/).
> Jeg vil gerne have mulighed for at forwarde indkommende pakker med
> bestemte port-numre til interne PC'er.
I Shorewall er det nemt. F.eks:
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL
# PORT PORT(S) DEST
DNAT net loc:192.168.1.1 tcp 1001
DNAT net loc:192.168.1.2:80 tcp 1002
Den første regel forwarder al indkommende trafik på port 1001 til
192.168.1.1. Den anden forwarder al indkommende trafik på port 1002 til
port 80 på 192.168.1.2 .
> Jeg har efterhånden læst mig frem til at det er noget med ipmasqadm og
> portfw (sådan ca.) men ingen af disse pakker findes tilsyneladene i min
> distribution.
Det er noget gammelt noget. Glem det.
> Hvad er forskellen egentligt på IP masq. og port forwarding? Jeg er lidt
> ny til linux på mange områder, og har ikke helt kunne forstå forskellen.
Masquerading kaldes også NAT'ting (NAT = Network Address Translation). Du
bruger masquerading når du sidder med en lokal adresse (f.eks 192.168.*.*)
bag en firewall og gerne vil ud på nettet.
Du bruger port-forwarding, når du gerne vil sende trafik mod en bestemt port
videre til en anden maskine og evt. en anden port. De to eksempler ovenfor,
laver portforwarding.
> Kan man benytte port forwarding uden ip masq?
Ja.
-Claus
| |
Kent Friis (31-01-2006)
| Kommentar Fra : Kent Friis |
Dato : 31-01-06 18:05 |
|
Den Tue, 31 Jan 2006 00:55:44 +0100 skrev Claus Rasmussen:
> Jacob Jensen wrote:
>
>> Hvordan sætter jeg en Fedora Core 4 op som nat-enhed?
>
> Brug en pakke, som tager sig af de mere hardcore ting i firewall opsætningen
> for dig. Jeg kan anbefale shorewall ( http://www.shorewall.net/).
Da jeg startede med iptables (og ipchains) kom jeg hurtigt til den
konklusion at den type scripts kun er egnede hvis man ikke *vil* vide
hvad der egentlig foregår. Hvis man er bare det mindste interesseret
i hvad der foregår (og om scriptet gør det man ønsker), er det
nemmere at starte fra bunden af og skrive de relevante 5-10 linier,
end at finde uf af sammenhængen i et 50-100 liniers script.
Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.
| |
Mogens Kjaer (01-02-2006)
| Kommentar Fra : Mogens Kjaer |
Dato : 01-02-06 08:32 |
|
Kent Friis wrote:
....
> Da jeg startede med iptables (og ipchains) kom jeg hurtigt til den
> konklusion at den type scripts kun er egnede hvis man ikke *vil* vide
> hvad der egentlig foregår. Hvis man er bare det mindste interesseret
> i hvad der foregår (og om scriptet gør det man ønsker), er det
> nemmere at starte fra bunden af og skrive de relevante 5-10 linier,
> end at finde uf af sammenhængen i et 50-100 liniers script.
En god start er Henrik Størners script:
http://www.sslug.dk/sikkerhed/netfilter.html
- det virker både til 2.4 og 2.6 kerner.
Og der er ikke så mange linier,
hvis man ser bort fra kommentarerne.
Mogens
--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: mk@crc.dk Homepage: http://www.crc.dk
| |
Kent Friis (01-02-2006)
| Kommentar Fra : Kent Friis |
Dato : 01-02-06 18:21 |
|
Den Wed, 01 Feb 2006 08:31:41 +0100 skrev Mogens Kjaer:
> Kent Friis wrote:
> ...
>> Da jeg startede med iptables (og ipchains) kom jeg hurtigt til den
>> konklusion at den type scripts kun er egnede hvis man ikke *vil* vide
>> hvad der egentlig foregår. Hvis man er bare det mindste interesseret
>> i hvad der foregår (og om scriptet gør det man ønsker), er det
>> nemmere at starte fra bunden af og skrive de relevante 5-10 linier,
>> end at finde uf af sammenhængen i et 50-100 liniers script.
>
> En god start er Henrik Størners script:
>
> http://www.sslug.dk/sikkerhed/netfilter.html
>
> - det virker både til 2.4 og 2.6 kerner.
>
> Og der er ikke så mange linier,
124.
> hvis man ser bort fra kommentarerne.
53.
Så jo, der er *så* mange linier - eller flere.
Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.
| |
Mogens Kjaer (02-02-2006)
| Kommentar Fra : Mogens Kjaer |
Dato : 02-02-06 08:47 |
|
Kent Friis wrote:
....
>>hvis man ser bort fra kommentarerne.
>
>
> 53.
>
> Så jo, der er *så* mange linier - eller flere.
Jeg får det nu til 28, men nevermind, det er bedre
at starte med dette script end "man iptables".
Mogens
--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: mk@crc.dk Homepage: http://www.crc.dk
| |
Kent Friis (02-02-2006)
| Kommentar Fra : Kent Friis |
Dato : 02-02-06 18:07 |
|
Den Thu, 02 Feb 2006 08:46:47 +0100 skrev Mogens Kjaer:
> Kent Friis wrote:
> ...
>>>hvis man ser bort fra kommentarerne.
>>
>>
>> 53.
>>
>> Så jo, der er *så* mange linier - eller flere.
>
> Jeg får det nu til 28,
wc -l sagde 125.
grep -v '^#' | wc -l sagde 53.
> men nevermind, det er bedre
> at starte med dette script end "man iptables".
Hvis man er script-nørd måske. Det troede jeg ellers jeg var, men
iptables[1] var stadig nemmere at starte med end den slags scripts.
Selv en iptables -L efter man har kørt scriptet ender med hele
skærmen fuld af komplet uforståelige regler, som man ikke aner hvad
de åbner for.
Mvh
Kent
[1] Faktisk var det ipchains, og iptables er *meget* nemmere end
ipchains.
--
Hard work may pay off in the long run, but laziness pays off right now.
| |
Mogens Kjaer (03-02-2006)
| Kommentar Fra : Mogens Kjaer |
Dato : 03-02-06 09:40 |
|
Kent Friis wrote:
....
> grep -v '^#' | wc -l sagde 53.
grep -v '^#' netfilter.sh | grep -v '^$' | wc -l
27
Jeg skrev 28, fordi man skal fjerne kommentarmærket på to
af linierne for at få NAT med, og #!/bin/sh er vel ikke
en "rigtig" kommentar.
Mogens
--
Mogens Kjaer, Carlsberg A/S, Computer Department
Gamle Carlsberg Vej 10, DK-2500 Valby, Denmark
Phone: +45 33 27 53 25, Fax: +45 33 27 47 08
Email: mk@crc.dk Homepage: http://www.crc.dk
| |
Claus Rasmussen (01-02-2006)
| Kommentar Fra : Claus Rasmussen |
Dato : 01-02-06 23:08 |
|
Kent Friis wrote:
> Den Tue, 31 Jan 2006 00:55:44 +0100 skrev Claus Rasmussen:
>> Jacob Jensen wrote:
>>
>>> Hvordan sætter jeg en Fedora Core 4 op som nat-enhed?
>>
>> Brug en pakke, som tager sig af de mere hardcore ting i firewall
>> opsætningen for dig. Jeg kan anbefale shorewall
>> ( http://www.shorewall.net/).
>
> Da jeg startede med iptables (og ipchains) kom jeg hurtigt til den
> konklusion at den type scripts kun er egnede hvis man ikke *vil* vide
> hvad der egentlig foregår...
Jeg er faktisk enig. Men lige med hensyn til firewalls har jeg det bedst med
at stole på folk, der ved mere om sikkerhed end jeg, og bruge deres arbejde
som udgangspunkt.
I shorewall er der f.eks en default regel, der filtrerer indkommende trafik
fra IP adresser, der ikke burde eksistere på internettet (192.168.*.*). En
anden regel filtrerer fuskede pakker. En tredje regel beskytter mod DOS
osv. osv. Al sammen ting, jeg ikke ville have fundet på selv at lave med
mindre jeg havde meget mere viden om firewalls, end jeg har.
Så som en første indtroduktion til folk uden megen firewall erfaring mener
jeg, man skal anbefale et værktøj som Shorewall i stedet for rå iptables.
-Claus
| |
Kent Friis (02-02-2006)
| Kommentar Fra : Kent Friis |
Dato : 02-02-06 18:04 |
|
Den Wed, 01 Feb 2006 23:07:58 +0100 skrev Claus Rasmussen:
> Kent Friis wrote:
>
>> Den Tue, 31 Jan 2006 00:55:44 +0100 skrev Claus Rasmussen:
>>> Jacob Jensen wrote:
>>>
>>>> Hvordan sætter jeg en Fedora Core 4 op som nat-enhed?
>>>
>>> Brug en pakke, som tager sig af de mere hardcore ting i firewall
>>> opsætningen for dig. Jeg kan anbefale shorewall
>>> ( http://www.shorewall.net/).
>>
>> Da jeg startede med iptables (og ipchains) kom jeg hurtigt til den
>> konklusion at den type scripts kun er egnede hvis man ikke *vil* vide
>> hvad der egentlig foregår...
>
> Jeg er faktisk enig. Men lige med hensyn til firewalls har jeg det bedst med
> at stole på folk, der ved mere om sikkerhed end jeg, og bruge deres arbejde
> som udgangspunkt.
>
> I shorewall er der f.eks en default regel, der filtrerer indkommende trafik
> fra IP adresser, der ikke burde eksistere på internettet (192.168.*.*).
Og hvad er pointen i det? Hvad med en regel der filtrerer alle ip-numre
over 255 fra nu vi er igang?
Det kunne selvfølgelig være at vedkommende der har fået den ide har
gået ud fra at man selv bruger 192.168.* lokalt, men så bliver de jo
droppet når man slår rp_filter til, og dermed er reglen helt overflødig.
> En
> anden regel filtrerer fuskede pakker.
Definer "fuskede" pakker... Ligesom gamle versioner af Cisco PIX der
blokerer legitim trafik de ikke forstår (fx TCP ECN)?
> En tredje regel beskytter mod DOS
Blev vi ikke lige enige om i en anden tråd at det ikke kan lade sig
gøre?
> osv. osv. Al sammen ting, jeg ikke ville have fundet på selv at lave
Det lyder umiddelbart som en god ting.
> med mindre jeg havde meget mere viden om firewalls, end jeg har.
"Enough knowledge to be dangerous"?
> Så som en første indtroduktion til folk uden megen firewall erfaring mener
> jeg, man skal anbefale et værktøj som Shorewall i stedet for rå iptables.
Jeg får nemt den opfattelse at den slags værktøjer bevirker at
folk de tror de har en fornuftig sikkerhed, uden at ane hvad der
foregår, og i virkeligheden står systemet piv-åbent.
Lidt ligesom ZoneAlarm & co.
Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.
| |
Claus Rasmussen (02-02-2006)
| Kommentar Fra : Claus Rasmussen |
Dato : 02-02-06 19:01 |
|
Kent Friis wrote:
>> I shorewall er der f.eks en default regel, der filtrerer indkommende
>> trafik fra IP adresser, der ikke burde eksistere på internettet
>> (192.168.*.*).
>
> Og hvad er pointen i det?
At de fleste firewalls faktisk står åbne på ydersiden for den slags
adresser. Brækker jeg ind på den sidste router før din firewall, vil jeg,
hvis du ikke har været påpasselig med din opsætning, snyde din firewall til
at tro, at jeg kommer fra indersiden. Og jeg har faktisk set filteret i
aktion nogle gange.
>> En
>> anden regel filtrerer fuskede pakker.
>
> Definer "fuskede" pakker... Ligesom gamle versioner af Cisco PIX der
> blokerer legitim trafik de ikke forstår (fx TCP ECN)?
Pakker med falsk afsenderadresse f.eks. Eller pakker der er håndlavede til
at brække ind på maskiner med et hul i IP stakken.
>
>> En tredje regel beskytter mod DOS
>
> Blev vi ikke lige enige om i en anden tråd at det ikke kan lade sig
> gøre?
"Vi" har vist ikke diskuteret dette emne før. Men selvom DOS ikke kan
forhindres, kan det hæmmes.
> Jeg får nemt den opfattelse at den slags værktøjer bevirker at
> folk de tror de har en fornuftig sikkerhed, uden at ane hvad der
> foregår, og i virkeligheden står systemet piv-åbent.
Man kan komme til skade med alt. Men jeg mener, at når emnet er sikkerhed er
det en fornuftig politik at basere sig på eksperternes arbejde. Lidt
ligesom man ikke skriver sin egen krypteringsalgoritme.
-Claus
| |
Kent Friis (02-02-2006)
| Kommentar Fra : Kent Friis |
Dato : 02-02-06 19:09 |
|
Den Thu, 02 Feb 2006 19:00:53 +0100 skrev Claus Rasmussen:
> Kent Friis wrote:
>
>>> I shorewall er der f.eks en default regel, der filtrerer indkommende
>>> trafik fra IP adresser, der ikke burde eksistere på internettet
>>> (192.168.*.*).
>>
>> Og hvad er pointen i det?
>
> At de fleste firewalls faktisk står åbne på ydersiden for den slags
> adresser. Brækker jeg ind på den sidste router før din firewall, vil jeg,
> hvis du ikke har været påpasselig med din opsætning, snyde din firewall til
> at tro, at jeg kommer fra indersiden. Og jeg har faktisk set filteret i
> aktion nogle gange.
Du klippede lige den del væk med hvorfor det ikke er nødvendigt. Det
kunne tyde på at firewall'en så log'er de pakker inden rp_filter
smider dem væk...
>>> En
>>> anden regel filtrerer fuskede pakker.
>>
>> Definer "fuskede" pakker... Ligesom gamle versioner af Cisco PIX der
>> blokerer legitim trafik de ikke forstår (fx TCP ECN)?
>
> Pakker med falsk afsenderadresse f.eks.
Og det ved man hvordan?
"Den her pakke påstår den kommer fra USA, men det passer ikke,
den kommer rent faktisk fra Kina" - det kan man ikke se på den.
> Eller pakker der er håndlavede til
> at brække ind på maskiner med et hul i IP stakken.
Den regel vil jeg godt se. Enten snakker vi forbi hinanden, eller
også kan iptables noget jeg ikke vidste.
På den anden side, hvor mange har stadig Linux-2.0 eller ikke
opdaterede Win95-maskiner stående?
>>> En tredje regel beskytter mod DOS
>>
>> Blev vi ikke lige enige om i en anden tråd at det ikke kan lade sig
>> gøre?
>
> "Vi" har vist ikke diskuteret dette emne før. Men selvom DOS ikke kan
> forhindres, kan det hæmmes.
Ikke hvis det er gjort ordentligt.
>> Jeg får nemt den opfattelse at den slags værktøjer bevirker at
>> folk de tror de har en fornuftig sikkerhed, uden at ane hvad der
>> foregår, og i virkeligheden står systemet piv-åbent.
>
> Man kan komme til skade med alt. Men jeg mener, at når emnet er sikkerhed er
> det en fornuftig politik at basere sig på eksperternes arbejde. Lidt
> ligesom man ikke skriver sin egen krypteringsalgoritme.
Når det drejer sig om firewalls, kan eksperterne genkendes på at de
enten leverer en blank konfiguration eller starter med at spørge
hvilken sikkerhedspolitik firewall'en skal implementere.
Mit umiddelbare indtryk af det ovennævnte script er at det absolut
ikke er skrevet af eksperter.
Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.
| |
Ukendt (31-01-2006)
| Kommentar Fra : Ukendt |
Dato : 31-01-06 11:01 |
|
Jacob Jensen wrote:
>
> Hvordan sætter jeg en Fedora Core 4 op som nat-enhed?
Du laver en passende /etc/sysconfig/iptables fil.
Her er lidt inspiration (ikke testet):
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/8 -j DROP
-A INPUT -d 127.0.0.0/8 -j DROP
-A INPUT -i eth0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 127.0.0.0/8 -j DROP
-A FORWARD -d 127.0.0.0/8 -j DROP
-A FORWARD -p tcp --dport 80 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.42
-A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
COMMIT
--
Kasper Dupont -- Rigtige mænd skriver deres egne backupprogrammer
#define _(_)"d.%.4s%."_"2s" /* This is my new email address */
char*_="@2kaspner"_()"%03"_("4s%.")"t\n";printf(_+11,_+6,_,6,_+2,_+7,_+6);
| |
|
|