WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Linux, UNIX, Open Source (http://www.wcm.at/forum/forumdisplay.php?f=13)
-   -   oc.at firewall script und inode adsl per linux router (http://www.wcm.at/forum/showthread.php?t=146754)

_THE_LAW_ 06.10.2004 15:07

oc.at firewall script und inode adsl per linux router
 
Zitat:

Code:
#!/bin/sh
# Kleine Paketfilterfirewall von Sebastian Heinlein
# 2003 - glatzor at pimpzkru.de

# GRUNDKONFIGURATION

# Schnittstelle zum lokalen Netzwerk
IFACE_INT=eth0

# Internetschnittstelle
IFACE_EXT=ppp+

# Loopback device
IFACE_LO=lo

# SERVERKONFIGURATION

# Ports auf dem Router aus dem Internet zugänglich machen
SERVER_PORTS_TCP="" # Falls dies nicht gewünscht ist, leer Klammer angeben
SERVER_PORTS_UDP="" # Falls dies nicht gewünscht ist, leer Klammer angeben

# Ports an einen Rechner im lokalen Netz weiterleiten
DEST_HOST="10.1.1.2" # Durch die IP-Adresse des Rechner ersetzen
PORTS_TCP="" # Falls dies nicht gewünscht ist, leer Klammer angeben
PORTS_UDP="" # Falls dies nicht gewünscht ist, leer Klammer angeben

# Ab hier nichts mehr editieren!

case "$1" in

start)
echo -n "Starting firewall: iptables"

# Alte Regeln löschen
iptables -F
iptables -F -t mangle
iptables -F -t nat
iptables -X
iptables -X -t mangle
iptables -X -t nat

# ************
# * POLICIES *
# ************

# Default-Policies setzen - alles fliegt raus
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Einschalten von ip-Forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward

# ***********************
# * EINGEHENDER VERKEHR *
# ***********************

# Soll nicht sein
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

# Aus dem internen Netz: alles erlauben
iptables -A INPUT -i $IFACE_INT -j ACCEPT

# Über das Loopback: Alles erlauben
iptables -A INPUT -i $IFACE_LO -j ACCEPT

# Vom Internet: Darf nicht sein
iptables -A INPUT -i $IFACE_EXT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i $IFACE_EXT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i $IFACE_EXT -s 192.168.0.0/24 -j DROP

# Verkehr aus dem Internet auf bereits initialisierten Verbindungen erlauben
iptables -A INPUT -i $IFACE_EXT -m state \
--state ESTABLISHED,RELATED -j ACCEPT

# Falls Serverdienste vom Internet zugänglich sein sollen, diese erlauben
if [ "$SERVER_PORTS_TCP" != "" ]; then
iptables -A INPUT -i $IFACE_EXT -m multiport \
--dport $SERVER_PORTS_TCP -j ACCEPT
fi
if [ "$SERVER_PORTS_UDP" != "" ]; then
iptables -A INPUT -i $IFACE_EXT -m multiport \
--dport $SERVER_PORTS_UDP -j ACCEPT
fi


# ****************************
# * WEITERGELEITETER VERKEHR *
# ****************************

# Lokal -> Internet: Alles erlauben
iptables -A FORWARD -i $IFACE_INT -o $IFACE_EXT -j ACCEPT


# Internet -> Lokales: Nur Verkehr über bereits bestehende Verbindungen erlauben
iptables -A FORWARD -i $IFACE_EXT -o $IFACE_INT -m state \
--state ESTABLISHED,RELATED -j ACCEPT

# Internet -> Lokales Netz: Ports die weitergeleitet werden sollen
if [ "$PORTS_TCP" != "" ]; then
iptables -A FORWARD -i $IFACE_EXT -o $IFACE_INT -p tcp -m multiport \
--dport $PORTS_TCP -j DNAT --to $DST_HOST
fi
if [ "$PORTS_UDP" != "" ]; then
iptables -A FORWARD -i $IFACE_EXT -o $IFACE_INT -p udp -m multiport \
--dport $PORTS_UDP -j DNAT --to $DST_HOST
fi

# **********
# * OUTPUT *
# **********

# Ins lokale Netzwerk: Alles erlauben
iptables -A OUTPUT -o $IFACE_INT -j ACCEPT

# Ans Loopback: Alles erlauben
iptables -A OUTPUT -o $IFACE_LO -j ACCEPT

# Ins Internet : Alles erlauben
iptables -A OUTPUT -o $IFACE_EXT -j ACCEPT

# ***********
# * ROUTING *
# ***********

# Umleiten der Ports
if [ "$PORTS_TCP" != "" ]; then
iptables -A PREROUTING -i $IFACE_EXT -p tcp -m multiport \
--dport $PORTS_TCP -j DNAT --to $DST_HOST
fi
if [ "$PORTS_UDP" != "" ]; then
iptables -A PREROUTING -i $IFACE_EXT -p udp -m multiport \
--dport $PORTS_UDP -j DNAT --to $DST_HOST
fi

# Masquerading
iptables -A POSTROUTING -o $IFACE_EXT -t nat -j MASQUERADE

# ***********
# * LOGGING *
# ***********

# Alles was bis hier kommt, mitprotokollieren
iptables -A OUTPUT -j LOG --log-prefix "Nicht raus: "
iptables -A FORWARD -j LOG --log-prefix "Nicht durch: "
iptables -A INPUT -j LOG --log-prefix "Nicht rein: "
echo "."
;;

stop)
echo -n "Stopping firewall: iptables"

# Alte Regeln löschen
iptables -F
iptables -F -t mangle
iptables -F -t nat
iptables -X
iptables -X -t mangle
iptables -X -t nat

# ************
# * POLICIES *
# ************

# Default-Policies setzen - alles bis auf Weiterleitung erlaubt
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Deaktivierung des ip-Forwarding
echo "0" > /proc/sys/net/ipv4/ip_forward

echo "."
;;

restart)
$0 start
;;

status)
iptables -L
;;

*)
echo "Usage: /etc/init.d/firewall start|stop|restart|status"
exit 1
;;

esac


Das Skript muss nun ausführbar gemacht werden:

Code:
chmod 0755 /etc/init.d/firewall


Und dem Benutzer root zugeordnet werden:

Code:
chown root:root /etc/init.d/firewall
ich habe dieses Firewall script am laufen habe als interne netzwerkschnittstelle eth1 mit 192.168.25.1 und internet schnittstelle ist ppp0( über eth0 10.0.0.140, logisch da ich adsl benutz)
ich benutz das package von

Inode

doch wenn ich die firewall aktiviert habe kann ich mich nicht mehr ins internet einwählen.

und mein andere problem ist das wenn ich auf meinem router ( dieser pc oben) mich ins internet einwähle. komm ich von meinem windows rechner nicht ins internet nicht mal mit pingen. ob wohl ich als gate die ip 192.168.25.1 vom router angegeben habe. was kann da der fehler sein ? dns hab ich von inode eingestellt.

ich weiß fragen über fragen:rolleyes:

Dumdideldum 06.10.2004 17:31

Wenn das ein dedicated router ist, dann solltest womöglich gleich eine fertige Distri nehmen, ala IPCop.

1.4 final release ;)

Sloter 06.10.2004 18:08

Oder das Script, ist für ADSL :-)

http://www.onlinetravel.at/firewall2

Sloter


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag