PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Firewall Script



debian-climber
29.10.02, 10:51
Hallo zusammen,

ich bräuchte ein kleines Firewall Script was mir folgendes realisiert.

Router (debian woody 2.4.19)
eth0= 192.168.1.1
eth1= 208.216.129.67 (öffentliche oder feste ip)
eth2= 192.168.2.1
Webserver,Mailserver (debian woody)
eth0= 192.168.2.2

Interne Clients
192.168.1.5 192.168.1.20 192.168.1.22 usw.

ich bräuchte ein Portforwarding von router port 80 auf webserver port 80 sowohl von draus als auch von innen.

ebenfals ein portforwarind von router port 22 ssh auf 192.168.1.5 port 22.
von innen sollte alles erlaubt sein.
der reste sollte alles abgeblock werden.

Ist das viel Aufwand so ein Script zu schreiben?
Wäre wirklich sehr wichtig? Muss das script heute noch zum laufen bringen.

Viele Grüsse

Matthias

Harry
29.10.02, 16:21
Hallo,

ich empfehle Dir zunächst einen Blick in die iptables-FAQ unter http://www.harry.homelinux.org/modules.php?name=FAQ&myfaq=yes&id_cat=4&categories=Netfilter%2Fiptables.
Im wesentlichen werden dort alle Themen angeschnitten, mit denen Du Dich gerade auseinandersetzt (Masquerading, NAT).

Wenn Du dann noch Fragen hast, nur zu :D

Harry

debian-climber
30.10.02, 11:10
Stimmt das soweit?

cat firewall-neu
#!/bin/sh
# __
# (ww) (Innternet)
# /
# /-(eth1)
# / router(eth2) caribic(webserver)
# ||--------------||
# \
# \-(eth0)
# \
# ||(Switch)______
# / \ \ \ \ \
# ||----||----||----||----||
# Clients 192.168.1.2-30


# Variabeln _INT = Interface

INET=214.123.220.123
LAN1=192.168.1.0/24
LAN2=192.168.2.0/24
LAN1_INT=eth0
INET_INT=eth1
INET_INT=eth1
LAN2_INT=eth2
ANYWHERE=0.0.0.0/0
CARIBIC=192.168.2.2

# Löscht alle Regeln
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

iptables -A INPUT DROP
iptables -A OUTPUT DROP

# Loopback Interface aktivieren
iptables -A input -i lo -j ACCEPT
iptables -A output -o lo -j ACCEPT


# HTTP fürs LAN zulassen
iptables -A forward -p tcp -s $LAN1 --dport 80 -i $LAN1_INT -m state --state NEW -j ACCEPT
iptables -A forward -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A forward -p tcp -s $LAN2 --dport 80 -i $LAN2_INT -m state --state NEW -j ACCEPT
iptables -A forward -m state --state ESTABLISHED,RELATED -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -p tcp -s $ANYWHERE -d $192.168.1.1 \
--dport 80 -j DNAT --to-destination $CARIBIC

iptables -A FORWARD -p tcp -s $ANYWHERE -d 192.168.1.1 --dport 80 -j \
ACCEPT

#Masquerading
iptales -t nat -A POSTROUTING -o $INET_INT -j MASQUERADE

Viele Grüsse

Matthias

Harry
30.10.02, 19:38
Hallo,

ich denke, das ganze läßt sich etwas vereinfachen und damit übersichtlicher gestalten:


#!/bin/bash
INET_INT=eth1
CARIBIC=192.168.2.2

# Löscht alle Regeln
iptables -F

iptables -A INPUT DROP
iptables -A OUTPUT DROP

# Loopback Interface aktivieren
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# HTTP zulassen
iptables -A FORWARD -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# NAT zum Webserver
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination $CARIBIC

# Masquerading
iptales -t nat -A POSTROUTING -o $INET_INT -j MASQUERADE

# Forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward


Harry

debian-climber
31.10.02, 09:38
vielen dank harry.

hab es noch ein wenig umgestellt -> funktioniert!

aber anstatt iptables -A input usw. muss es iptables -P input DROP usw. heissen

Viele Grüsse

Matthias

Jinto
31.10.02, 10:35
In Harry´s Script ist ein kleiner Fehler:
Es muss statt:


iptables -A INPUT DROP
iptables -A OUTPUT DROP

folgendermaßen heissen:


iptables -P INPUT DROP
iptables -P OUTPUT DROP


Deswegen frage ich mich gerade, wieso hat da überhaupt irgendwas funktioniert?

Jasper
31.10.02, 11:44
Original geschrieben von Jinto
In Harry´s Script ist ein kleiner Fehler:
Es muss statt:


iptables -A INPUT DROP
iptables -A OUTPUT DROP

folgendermaßen heissen:


iptables -P INPUT DROP
iptables -P OUTPUT DROP


Deswegen frage ich mich gerade, wieso hat da überhaupt irgendwas funktioniert?

ich frag mich, warum kein 'iptables -P FORWARD DROP'. ansonsten sind doch die forward-regeln nutzlos.

-j

Harry
31.10.02, 15:15
Hallo,

ich find das Forum hier immer wieder Klasse, da auch meine eigenen Fehler korrigiert werden :D
Danke Jinto, danke Jasper :)

Harry

Jasper
31.10.02, 15:34
Original geschrieben von Harry
ich find das Forum hier immer wieder Klasse, da auch meine eigenen Fehler korrigiert werden :D


dito. jederzeit wieder, jederzeit gern :)

-j