|
| Hjælp til en sikker FW (Iptables) Fra : Mike |
Dato : 02-09-02 11:16 |
|
Hey.. Jeg har en testserver som jeg vil forsøge at forvandle til produktions
server. Det sidste jeg mangler er at få tweaket mit Iptables script. Som det
ser ud nu afslører en portscanning af det vist mere eller mindre er
tilfældigt hvilke porte som er åbne og hvilke som er lukkede.
I mit script ville jeg gerne:
Forwarde port 21,22,80 til $WEBSERVER
Åbne port 8080, 3000, 10001
Tillade alt trafik på $LAN_NET
Som i kan se på scriptet så er der lidt mange ACCEPT? - ville være rart hvis
de var DROP istedet. Er der nogen der kan hjælpe mig lidt på vej? Her er
scriptet:
------------------
EXT_IP="80.111.111.111"
LAN_NET="192.168.0.0/24"
WEBSERVER="192.168.0.163"
# Disable routing inden regler påføres
echo 0 > /proc/sys/net/ipv4/ip_forward
# Regler flushes og policies sættes
iptables -t nat -F
iptables -F
# Accepter alt pr. Default
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
# Source NAT alle LAN connections til vores externe IP, hvis
# trafikken fra disse ikke er til en af vores LAN IP net.
iptables -t nat -A POSTROUTING -s $LAN_NET -d ! $LAN_NET -j SNAT --to
$EXT_IP
# Tillad derefter trafik vi selv har sat igang at komme igennem
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Forwarding startes.
echo 1 > /proc/sys/net/ipv4/ip_forward
-------------------
Tak for hjælpen
p.s. Jeg har læst og læst på en del websider om emnet. Også prøvet en hel
del forskelligt, uden det har virket. Derfor håber jeg nogen kan hjælpe
Med Venlig Hilsen
| |
Martin Dalum (02-09-2002)
| Kommentar Fra : Martin Dalum |
Dato : 02-09-02 13:35 |
|
"Mike" <nospam@nospam.com> writes:
> # Accepter alt pr. Default
> iptables -P FORWARD ACCEPT
> iptables -P OUTPUT ACCEPT
> iptables -P INPUT ACCEPT
Det smarteste er at sætte disse tre defaults til DROP. Så kan du åbne
op for det du har brug for med regler senere. Det giver en overall
bedre sikkerhed.
--
Venlig hilsen / Regards from,
Martin Dalum
| |
Mike (02-09-2002)
| Kommentar Fra : Mike |
Dato : 02-09-02 14:29 |
|
"Martin Dalum" <garfield@sunsite.dk> wrote in message
news:8665xo603f.fsf@webz.dk...
> "Mike" <nospam@nospam.com> writes:
>
> > # Accepter alt pr. Default
> > iptables -P FORWARD ACCEPT
> > iptables -P OUTPUT ACCEPT
> > iptables -P INPUT ACCEPT
>
> Det smarteste er at sætte disse tre defaults til DROP. Så kan du åbne
> op for det du har brug for med regler senere. Det giver en overall
> bedre sikkerhed.
Kan du give et eksempel på en ultrasimpel opsætning med 3xDROP + åbning af 1
port + åbning/forwarding af 1 port til $SERVER
Så ville jeg blive glad
Mvh
| |
Martin Dalum (02-09-2002)
| Kommentar Fra : Martin Dalum |
Dato : 02-09-02 15:05 |
|
"Mike" <nospam@nospam.com> writes:
> Kan du give et eksempel på en ultrasimpel opsætning med 3xDROP + åbning af 1
> port + åbning/forwarding af 1 port til $SERVER
OK.. Her er et eksempel.. Det er på INGEN måde testet, så jeg kan ikke
garantere at det virker eller det ikke er fuld af huller. Gør dig
venligst den tjeneste at forstå hvad der sker, så du er fortroligt med
det.
#! /bin/sh
# Configuration options
WAN=eth0
LAN=eth1
LAN_IP=192.168.0.1
WAN_IP=80.111.111.111
LAN_NET=192.168.0.0/24
WEBSERVER=192.168.0.163
#
# flush all the rules in the filter and nat tables.
#
iptables -F
iptables -t nat -F
#
# erase all chains that's not default in filter and nat table.
#
iptables -X
iptables -t nat -X
# Finished flushing.. Now to the configuration.
#############################################################
#
# Set the default policies to DROP
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Allow trafic on loopback interface
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Turn on IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Drop invalid packages
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Allow all outgoing traffic
iptables -A OUTPUT -j ACCEPT
# Allow established connections on input from WAN and forward
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow all input traffic on LAN
iptables -A INPUT -i $LAN -j ACCEPT
# Allow port 8080 to localhost
iptables -A INPUT -m state --state NEW -i $WAN -p tcp --dport 8080 -j ACCEPT
# Allow port 3000 to localhost
iptables -A INPUT -m state --state NEW -i $WAN -p tcp --dport 3000 -j ACCEPT
# Allow port 10001 to localhost
iptables -A INPUT -m state --state NEW -i $WAN -p tcp --dport 10001 -j ACCEPT
# Enable source NAT
iptables -t nat -A POSTROUTING -o $WAN -s $LAN_NET -j SNAT --to $WAN_IP
iptables -t nat -P POSTROUTING ACCEPT
# Enable destination NAT
# Forward port 21, 22, 80 to WEBSERVER
iptables -A FORWARD -i $WAN -m state --state NEW -d $WEBSERVER -p tcp --dport 21 -j ACCEPT
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 21 -j DNAT --to-destination $WEBSERVER:21
iptables -A FORWARD -i $WAN -m state --state NEW -d $WEBSERVER -p tcp --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 22 -j DNAT --to-destination $WEBSERVER:22
iptables -A FORWARD -i $WAN -m state --state NEW -d $WEBSERVER -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 80 -j DNAT --to-destination $WEBSERVER:80
iptables -t nat -P PREROUTING ACCEPT
--
Venlig hilsen / Regards from,
Martin Dalum
| |
Mike (02-09-2002)
| Kommentar Fra : Mike |
Dato : 02-09-02 15:25 |
|
"Martin Dalum" <garfield@sunsite.dk> wrote in message
news:86sn0s4hdl.fsf@webz.dk...
> OK.. Her er et eksempel.. Det er på INGEN måde testet, så jeg kan ikke
> garantere at det virker eller det ikke er fuld af huller. Gør dig
> venligst den tjeneste at forstå hvad der sker, så du er fortroligt med
> det.
Ok jeg kigger på det.. Det undrer mig iøvrigt at det skulle være nødvendigt
at have
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Hvis man skal sikre sig "udefra" er det så ikke kun INPUT DROP der behøver
at være sat?
og mange tak for hjælpen!
Mvh
| |
Kent Friis (02-09-2002)
| Kommentar Fra : Kent Friis |
Dato : 02-09-02 20:54 |
|
Den Mon, 2 Sep 2002 16:25:07 +0200 skrev Mike:
>"Martin Dalum" <garfield@sunsite.dk> wrote in message
>news:86sn0s4hdl.fsf@webz.dk...
>> OK.. Her er et eksempel.. Det er på INGEN måde testet, så jeg kan ikke
>> garantere at det virker eller det ikke er fuld af huller. Gør dig
>> venligst den tjeneste at forstå hvad der sker, så du er fortroligt med
>> det.
>
>Ok jeg kigger på det.. Det undrer mig iøvrigt at det skulle være nødvendigt
>at have
>
>iptables -P FORWARD DROP
>iptables -P OUTPUT DROP
>
>Hvis man skal sikre sig "udefra" er det så ikke kun INPUT DROP der behøver
>at være sat?
Hvad OUTPUT skal være sat til afhænger af om man stoler på brugerne
på maskinen.
Både INPUT (maskinen selv) og FORWARD (hvis maskinen agerer router /
hardware firewall) bør være DROP.
Mvh
Kent
--
NT er brugervenligt - det er bare brugerne der ikke kan finde ud af det
- en NT-administrator
| |
|
|