|
| iptables firewall med DMZ ? Fra : Brian Ipsen |
Dato : 04-02-02 22:44 |
|
Hej!
Jeg skal have bygget en firewall med DMZ baseret på iptables... Jeg
er klar over, at klart det bedste er at bygge det hele op fra bunden
selv, men det vil nok tage mig lidt for meget tid... Jeg har overvejet
at bygge lidt på
http://server.ccl.net/cca/software/UNIX/netfilter/lan_and_dmz/ så det
passer til mit formål... Men er ikke selv lige i stand til at se, om
det er lavet optimalt.... Kan en eller anden venlig sjæl checke det og
fortælle mig, om det ser helt tåbeligt ud ??
Regards,
/Brian
| |
Kent Friis (04-02-2002)
| Kommentar Fra : Kent Friis |
Dato : 04-02-02 22:47 |
|
Den Mon, 04 Feb 2002 22:43:43 +0100 skrev Brian Ipsen:
>Hej!
>
> Jeg skal have bygget en firewall med DMZ baseret på iptables... Jeg
>er klar over, at klart det bedste er at bygge det hele op fra bunden
>selv, men det vil nok tage mig lidt for meget tid... Jeg har overvejet
>at bygge lidt på
> http://server.ccl.net/cca/software/UNIX/netfilter/lan_and_dmz/ så det
>passer til mit formål... Men er ikke selv lige i stand til at se, om
>det er lavet optimalt.... Kan en eller anden venlig sjæl checke det og
>fortælle mig, om det ser helt tåbeligt ud ??
Det tager _meget_ længere tid at sætte sig ind i et færdigt script,
end det tager selv at skrive et - og det er blevet meget nemt med
iptables.
Mvh
Kent
--
Happy birthday elgo
http://www.celebrityshine.com/~kfr/grafik/
| |
Brian Ipsen (06-02-2002)
| Kommentar Fra : Brian Ipsen |
Dato : 06-02-02 19:43 |
|
On Mon, 4 Feb 2002 21:47:23 +0000 (UTC), kfr@fleggaard.dk (Kent Friis)
wrote:
>> Jeg skal have bygget en firewall med DMZ baseret på iptables... Jeg
>>er klar over, at klart det bedste er at bygge det hele op fra bunden
>>selv, men det vil nok tage mig lidt for meget tid... Jeg har overvejet
>>at bygge lidt på
>> http://server.ccl.net/cca/software/UNIX/netfilter/lan_and_dmz/ så det
>>passer til mit formål... Men er ikke selv lige i stand til at se, om
>>det er lavet optimalt.... Kan en eller anden venlig sjæl checke det og
>>fortælle mig, om det ser helt tåbeligt ud ??
>
>Det tager _meget_ længere tid at sætte sig ind i et færdigt script,
>end det tager selv at skrive et - og det er blevet meget nemt med
>iptables.
Ok - Når trafik skal forwardes fra internet interfacet (eth0) og ud
til DMZ interfacet (eth1) - skal der så laves en ACCEPT (indkommende)
på eth0 samtidigt med at der skal laves en FORWARD (gennem noget MASQ)
til eth1 interfacet ??
/Brian
| |
Kent Friis (06-02-2002)
| Kommentar Fra : Kent Friis |
Dato : 06-02-02 19:48 |
|
Den Wed, 06 Feb 2002 19:43:19 +0100 skrev Brian Ipsen:
>On Mon, 4 Feb 2002 21:47:23 +0000 (UTC), kfr@fleggaard.dk (Kent Friis)
>wrote:
>
>>> Jeg skal have bygget en firewall med DMZ baseret på iptables... Jeg
>>>er klar over, at klart det bedste er at bygge det hele op fra bunden
>>>selv, men det vil nok tage mig lidt for meget tid... Jeg har overvejet
>>>at bygge lidt på
>>> http://server.ccl.net/cca/software/UNIX/netfilter/lan_and_dmz/ så det
>>>passer til mit formål... Men er ikke selv lige i stand til at se, om
>>>det er lavet optimalt.... Kan en eller anden venlig sjæl checke det og
>>>fortælle mig, om det ser helt tåbeligt ud ??
>>
>>Det tager _meget_ længere tid at sætte sig ind i et færdigt script,
>>end det tager selv at skrive et - og det er blevet meget nemt med
>>iptables.
>
>Ok - Når trafik skal forwardes fra internet interfacet (eth0) og ud
>til DMZ interfacet (eth1) - skal der så laves en ACCEPT (indkommende)
>på eth0 samtidigt med at der skal laves en FORWARD (gennem noget MASQ)
>til eth1 interfacet ??
Med iptables er det kun FORWARD der har noget med forwarding at gøre.
INPUT og OUTPUT gælder kun trafik til/fra firewall-maskinen, ikke
gennemgående trafik.
Mvh
Kent
--
The frozen north will hatch a flightless bird,
who will spread his wings and dominate the earth
And cause an empire by the sea to fall
To the astonishment, and delight of all.
| |
Brian Ipsen (07-02-2002)
| Kommentar Fra : Brian Ipsen |
Dato : 07-02-02 21:27 |
|
On Wed, 6 Feb 2002 18:48:06 +0000 (UTC), kfr@fleggaard.dk (Kent Friis)
wrote:
>>>Det tager _meget_ længere tid at sætte sig ind i et færdigt script,
>>>end det tager selv at skrive et - og det er blevet meget nemt med
>>>iptables.
>>
>>Ok - Når trafik skal forwardes fra internet interfacet (eth0) og ud
>>til DMZ interfacet (eth1) - skal der så laves en ACCEPT (indkommende)
>>på eth0 samtidigt med at der skal laves en FORWARD (gennem noget MASQ)
>>til eth1 interfacet ??
>
>Med iptables er det kun FORWARD der har noget med forwarding at gøre.
>INPUT og OUTPUT gælder kun trafik til/fra firewall-maskinen, ikke
>gennemgående trafik.
Ok, jeg vil gøre et forsøg... For at holde det (u)logisk(?) kan jeg
lave 6 kæder:
Extern -> DMZ
Extern <- DMZ
Intern -> DMZ
Intern <- DMZ
Intern -> Extern
Intern <- Extern
de 2 nederste bliver nok rimeligt nemme (det meste skal sikkert
blokeres) - men hvad gør jeg med de eksisterende (default) 3, INPUT,
OUTPUT og FORWARD ?? Jeg får behov for INPUT & OUTPUT på det interne
interface af hensyn til ssh adgang - men ellers skal der vel bare en
drop/deny på som default ??
Da man ikke kan sætte default policies på user-definerede chains, så
skal jeg vel huske at få en drop ind allersidst - men vil de
user-definerede chains køre uden problemer (jeg mener - de skal vel
ikke hægtes på FORWARD, INPUT eller OUTPUT for at fungere) ?
/Brian
| |
Kent Friis (07-02-2002)
| Kommentar Fra : Kent Friis |
Dato : 07-02-02 22:13 |
|
Den Thu, 07 Feb 2002 21:26:33 +0100 skrev Brian Ipsen:
>On Wed, 6 Feb 2002 18:48:06 +0000 (UTC), kfr@fleggaard.dk (Kent Friis)
>wrote:
>
>>>>Det tager _meget_ længere tid at sætte sig ind i et færdigt script,
>>>>end det tager selv at skrive et - og det er blevet meget nemt med
>>>>iptables.
>>>
>>>Ok - Når trafik skal forwardes fra internet interfacet (eth0) og ud
>>>til DMZ interfacet (eth1) - skal der så laves en ACCEPT (indkommende)
>>>på eth0 samtidigt med at der skal laves en FORWARD (gennem noget MASQ)
>>>til eth1 interfacet ??
>>
>>Med iptables er det kun FORWARD der har noget med forwarding at gøre.
>>INPUT og OUTPUT gælder kun trafik til/fra firewall-maskinen, ikke
>>gennemgående trafik.
>
>Ok, jeg vil gøre et forsøg... For at holde det (u)logisk(?) kan jeg
>lave 6 kæder:
>
>Extern -> DMZ
>Extern <- DMZ
>Intern -> DMZ
>Intern <- DMZ
>Intern -> Extern
>Intern <- Extern
Nemt med iptables kan du angive både source og dest interface (en stor
mangel i ipchains):
iptables -A FORWARD -i eth0 -o eth1 -j int2ext
etc...
>de 2 nederste bliver nok rimeligt nemme (det meste skal sikkert
>blokeres)
Normalt ville jeg lave en simpel SNAT på intern -> extern, og
kun tillade ESTABLISHED,RELATED den anden vej.
>- men hvad gør jeg med de eksisterende (default) 3, INPUT,
>OUTPUT og FORWARD ?? Jeg får behov for INPUT & OUTPUT på det interne
>interface af hensyn til ssh adgang - men ellers skal der vel bare en
>drop/deny på som default ??
OUTPUT ville jeg ikke bekymre mig så meget om. På INPUT skal du
have åben for dport 22 fra
> Da man ikke kan sætte default policies på user-definerede chains, så
>skal jeg vel huske at få en drop ind allersidst - men vil de
>user-definerede chains køre uden problemer (jeg mener - de skal vel
>ikke hægtes på FORWARD, INPUT eller OUTPUT for at fungere) ?
user-defined chains minder om funktionskald, hvis du har programmeret
fx. C - hvis vi genbruger eksemplet fra ovenfor:
1: iptables -P FORWARD DROP
2: iptables -N int2ext
3: iptables -A int2ext -j ALLOW
4: iptables -N ext2int
5: iptables -A ext2int -m state --state ESTABLISHED -j ACCEPT
6: iptables -A FORWARD -i eth0 -o eth1 -j int2ext
7: iptables -A FORWARD -i eth1 -o eth0 -j ext2int
1: forward policy sættes til "DROP"
2: tilføj "intern to extern" (udgående) chain
3: tillad al udgående trafik
4: tilføj "extern to intern" (indgående) chains
5: tillad trafik på eksisterende connections
6: trafik fra eth0 (intern) til eth1 (extern) skal bruge "int2ext".
7: trafik fra eth1 (extern) til eth0 (intern) skal bruge "ext2int".
Udvid selv med de sidste fire chains til DMZ...
Mvh
Kent
--
Windows 2000 service pack 1 will fix 300 bugs - that leaves only 64700
to future service packs.
| |
Brian Ipsen (09-02-2002)
| Kommentar Fra : Brian Ipsen |
Dato : 09-02-02 22:49 |
|
On Thu, 7 Feb 2002 21:13:21 +0000 (UTC), kfr@fleggaard.dk (Kent Friis)
wrote:
>1: iptables -P FORWARD DROP
>2: iptables -N int2ext
>3: iptables -A int2ext -j ALLOW
>4: iptables -N ext2int
>5: iptables -A ext2int -m state --state ESTABLISHED -j ACCEPT
>6: iptables -A FORWARD -i eth0 -o eth1 -j int2ext
>7: iptables -A FORWARD -i eth1 -o eth0 -j ext2int
>
>1: forward policy sættes til "DROP"
>2: tilføj "intern to extern" (udgående) chain
>3: tillad al udgående trafik
>4: tilføj "extern to intern" (indgående) chains
>5: tillad trafik på eksisterende connections
>6: trafik fra eth0 (intern) til eth1 (extern) skal bruge "int2ext".
>7: trafik fra eth1 (extern) til eth0 (intern) skal bruge "ext2int".
>
>Udvid selv med de sidste fire chains til DMZ...
Hmm.. Nyt scebarie (som jeg ikke helt kan gennemskue). Mit eksterne
interface har 1 IP, DMZ-nettet er registredede adresser - og det
interne net er i private-range (192.168.x.x). Jeg skal jo så have
lavet NAT fra Int->Dmz og Int->Ext - men som jeg læser det kan jeg kun
lave NAT (POSTROUTING) på udgående interfaces... skal jeg så (halv
pesudo-kode):
iptables -A POSTROUTING -t nat -s $INTRANET -o $EXTERNAL_INTERFACE -j
MASQUERADE
iptables -A POSTROUTING -t nat -s $INTRANET -o $DMZ_INTERFACE -j
MASQUERADE
eller hvordan løser jeg dette problem ?
/Brian
| |
Kent Friis (09-02-2002)
| Kommentar Fra : Kent Friis |
Dato : 09-02-02 23:11 |
|
Den Sat, 09 Feb 2002 22:49:15 +0100 skrev Brian Ipsen:
>On Thu, 7 Feb 2002 21:13:21 +0000 (UTC), kfr@fleggaard.dk (Kent Friis)
>wrote:
>
>>1: iptables -P FORWARD DROP
>>2: iptables -N int2ext
>>3: iptables -A int2ext -j ALLOW
>>4: iptables -N ext2int
>>5: iptables -A ext2int -m state --state ESTABLISHED -j ACCEPT
>>6: iptables -A FORWARD -i eth0 -o eth1 -j int2ext
>>7: iptables -A FORWARD -i eth1 -o eth0 -j ext2int
>>
>>1: forward policy sættes til "DROP"
>>2: tilføj "intern to extern" (udgående) chain
>>3: tillad al udgående trafik
>>4: tilføj "extern to intern" (indgående) chains
>>5: tillad trafik på eksisterende connections
>>6: trafik fra eth0 (intern) til eth1 (extern) skal bruge "int2ext".
>>7: trafik fra eth1 (extern) til eth0 (intern) skal bruge "ext2int".
>>
>>Udvid selv med de sidste fire chains til DMZ...
>
>Hmm.. Nyt scebarie (som jeg ikke helt kan gennemskue). Mit eksterne
>interface har 1 IP, DMZ-nettet er registredede adresser - og det
>interne net er i private-range (192.168.x.x). Jeg skal jo så have
>lavet NAT fra Int->Dmz og Int->Ext - men som jeg læser det kan jeg kun
>lave NAT (POSTROUTING) på udgående interfaces... skal jeg så (halv
>pesudo-kode):
>
>iptables -A POSTROUTING -t nat -s $INTRANET -o $EXTERNAL_INTERFACE -j
>MASQUERADE
Det burde virke. Du får kun masqueradet 192.168-numrene, så hvis du
en dag finder på at sætte en maskine på indersiden med et officielt
ip-nr, så behøver du ikke ændre noget.
>iptables -A POSTROUTING -t nat -s $INTRANET -o $DMZ_INTERFACE -j
>MASQUERADE
Du behøver umiddelbart ikke at lave masquerading mod DMZ-interfacet -
DMZ-maskinerne har jo firewall'en som gateway, og den kender routen
til 192.168-nettet.
Mvh
Kent
--
"Intelligence is the ability to avoid doing work, yet get the work done"
- Linus Torvalds
| |
|
|