Besseres Script?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Nemo
Beiträge: 20
Registriert: 04.03.2004 15:31:56
Wohnort: Hamburg
Kontaktdaten:

Besseres Script?

Beitrag von Nemo » 10.03.2004 15:40:02

Tachens,

ich habe von zwei Seiten, folgende Router/Firewall Scripte gefunden..
Da ich noch Neuling bin würde ich gerne wissen, welches der beiden "am besten" ist.
ich habe beide soweit auf meine Bedürfnisse angepasst, allerdings noch nicht ausprobiert (geht erst ab 18:00, wenn ich zu hause bin)

Script 1 http://www.debianforum.de/wiki/?page=in ... bianmanier

Code: Alles auswählen

#/bin/bash
EXTDEV=ppp0 # External device pointing to the internet
INTDEV=eth1 # Internal device pointing to the local net

INTLAN=192.168.42.0/24
# Muss hier oben eventuell 192.168.0.0/24 stehen?
# Da alle Rechner im Bereich 192.168.42.1-254 liegen nehme ich
# an, das es mit 192.168.42.0/24 klappen müsste.

IPTABLES=/usr/sbin/iptables

#############################################################################
# Lade Module
#
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp ports=7771,21
modprobe ip_nat_ftp
modprobe ip_tables
modprobe ipt_MASQUERADE
modprobe ipt_REJECT
#############################################################################


#############################################################################
# Forwarding und DynamicIP aktivieren
#
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
#############################################################################


#############################################################################
# iptables leeren und erstmal alles droppen
#
$IPTABLES -t filter -F INPUT
$IPTABLES -t filter -F OUTPUT
$IPTABLES -t filter -F FORWARD
$IPTABLES -t filter -P INPUT ACCEPT
$IPTABLES -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P FORWARD ACCEPT 
#############################################################################


#############################################################################
# Masquerading
#
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -t nat -A POSTROUTING -o $EXTDEV  -s $INTLAN -j MASQUERADE
#############################################################################

#############################################################################
# Auf localhost alles erlauben
#
$IPTABLES -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT
#############################################################################

#############################################################################
# Bestimmte Ports öffnen
#

# SSH
$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 22 --syn -j ACCEPT

#[...] weitere...

#############################################################################

#############################################################################
# Ports, an denen verbindungen abgelehnt werden sollen.
# 

# TELNET
$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp --dport 23 --syn -j DENY
#############################################################################

#############################################################################
# Restliche Ports schliessen
#

$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp -s 0/0 -d 0/0 --dport 1:1024 --syn -j REJECT
$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp -s 0/0 -d 0/0 --dport 901 --syn -j REJECT
$IPTABLES -t filter -A INPUT -i $EXTDEV -p tcp -s 0/0 -d 0/0 --dport 139 --syn -j REJECT
#############################################################################

#############################################################################
# Portforwarding

# FTP
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 22 -j DNAT --to-dest 192.168.42.73
#############################################################################

Script 2 http://www.linuxhelpline.org/index.php? ... =39&page=1

Code: Alles auswählen

#!/bin/bash
IPTABLES=/sbin/iptables
IF_INTERN=eth1
IF_EXTERN=ppp0


###################################################################
# standardmäßig alles droppen
#
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
###################################################################


###################################################################
# Interne Kommunikation erlauben
#
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
###################################################################


###################################################################
# Kommunikation im LAN voll erlauben
#
$IPTABLES -A OUTPUT -o $IF_INTERN -j ACCEPT
$IPTABLES -A INPUT -i $IF_INTERN -j ACCEPT
###################################################################


###################################################################
# Router vollen Zugriff auf das internet gestatten
#
$IPTABLES -A OUTPUT -o $IF_EXTERN -j ACCEPT
###################################################################


###################################################################
# Nur Verbindungen von aussen erlauben, die 
# von "drinnen" gestartet wurden
#
$IPTABLES -A INPUT -i $IF_EXTERN -m state --state ESTABLISHED,RELATED -j ACCEPT
###################################################################


###################################################################
# Ports erlauben
#

# FTP
$IPTABLES -A INPUT -i $IF_EXTERN -p tcp --dport 21 -j ACCEPT
$IPTABLES -A INPUT -i $IF_EXTERN -p tcp --dport 20 -j ACCEPT

# SSH
$IPTABLES -A INPUT -i $IF_EXTERN -p tcp --dport 22 -j ACCEPT
###################################################################


###################################################################
# Bestimmte Ports forwarden
$IPTABLES -A FORWARD -p TCP --sport 6003 -i $IF_EXTERN -j ACCEPT
###################################################################


###################################################################
# Absichern, das routing aktiv ist und
# Masquerading aktivieren
#
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTABLES -t nat -A POSTROUTING -o $IF_EXTERN -j MASQUERADE
###################################################################


###################################################################
# Verbindungen an allen Ports ablehnen, die 
# oben nicht definiert wurden
#
$IPTABLES -A INPUT -j DROP
$IPTABLES -A OUTPUT -j DROP
$IPTABLES -A FORWARD -j DROP
###################################################################

Ich kann leider nicht beurteilen, welches von den beiden besser ist.
Soweit ich es verstehe, lässt Script 1 standardmäßig alle Verbindungen zu, während Script 2 erstmal alles dichtmacht. Sehe ich das so richtig?
Würde mich interessieren, welches der beiden "sicherer" ist.
Es geht mir hauptsächlich darum, das alles dicht ist, bis auf bestimmte Ports, und das auch nur bestimmte Ports zu meinem Clientrechner weitergeleitet werden..

mastermind_the_real_one
Beiträge: 644
Registriert: 16.12.2003 15:44:51

Beitrag von mastermind_the_real_one » 10.03.2004 16:11:42

Ich hab leider keine Zeit mir die Scripte anzuschauen, aber erstmal alles dicht machen ist meiner Meinung nach auf jeden Fall der bessere/sichere Weg. Danach dann explizit die Dinge erlauben, die man braucht. Das kann je nach Größe des Netzwerks und der Applikationen die man benötigt allerdings sehr aufwendig werden. Trotzdem lohnt es sich.

greetz
mastermind

Antworten