PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : firewall einrichten für lan und i-net



Double HeliX
10.01.03, 11:05
hallo zusammen!

ich hab ein mandrake 9.0 system mit 2 netzwerkarten, eine (eth0) für die internetverbindung zum kabel-modem und an die andere (eth1) häng ich immer wieder mal meinen w2k laptop...

ich hab auf dem rechner einen samba und apache laufen...

wie muß ich jetzt iptables einrichten, damit man von eth1 auf die beiden server zugreifen kann von eth0 jedoch nicht...

hab von firewalls eigentlich keinen schimmer, hab bisher immer nur die einstellungen im mandrake kontroll-zentrum vorgenommmen, aber damit komm ich jetzt irgendwie nicht weit ;-)

danke im vorraus für die hilfe....

mfg max

ps: ich bin mir ziemlich sicher hier schon mal einen thread zu dem thema gelesen zu haben, aber ich find ihn nicht mehr *snief*

Toff
10.01.03, 14:20
Original geschrieben von Double HeliX
hallo zusammen!

hab von firewalls eigentlich keinen schimmer, hab bisher immer nur die einstellungen im mandrake kontroll-zentrum vorgenommmen, aber damit komm ich jetzt irgendwie nicht weit ;-)

Schau dir dochmal diesen Firewall Generator an. Anhand des dadurch entstandenen Scripts kannst du lernen und dir (wenn du willst) dein eigenes erstellen:

http://www.morizot.net/firewall/gen/

CU
Toff

cane
14.01.03, 13:29
Oder google mal nach firewall und harry, da ist auch ein sehr guter generator...

cane

HangLoose
15.01.03, 11:48
moin moin


set int = eth1 # internes interface

set intern = 192.168.1.0/24 # internes netz

set p_high = 1024:65535 # highports

set smb = 137:139 # samba ports


#httpd - zugriff nur vom lan erlauben

iptables -A INPUT -i $int -s $intern -p tcp --sport $p_high --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -i $int -d $intern -p tcp --dport $p_high --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT



#samba - zugriff nur vom lan erlauben

iptables -A INPUT -i $int -s $intern -p tcp --sport $p_high --dport $smb -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i $int -s $intern -p udp --sport $p_high --dport $smb -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -i $int -d $intern -p tcp --dport $p_high --sport $smb -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -i $int -d $intern -p udp --dport $p_high --sport $smb -m state --state ESTABLISHED,RELATED -j ACCEPT


wobei ich mir bei samba nicht ganz sicher bin, ob die anfragen von den highports kommen, hab kein samba laufen.


Gruß HL

SorcFun
15.01.03, 12:25
Kann mir einer mal das wiedergeben mit einer Netzwerkkarte.

Also:

/---- PC 1 (Windows XP)
I-Net ---- Router (Hardware)-
\---- PC 2 (Suse Linux 8.1)


Ich möchte gerne eine Firewall auf PC 2 einrichten.
Zwischen PC 1 und 2 sollte eine Verbindung bestehen und auch I-Net-Zugriff sollte sein.

Aber wie?

THX für das Zeitnehmen

Thorsten

HangLoose
15.01.03, 13:34
@SorcFun

ich hab mir mal teile des script's von Jinto ausgeliehen => http://www.harry.homelinux.org/modules.php?name=News&file=article&sid=2&mode=&order=0&thold=0


#!/bin/bash
# Autor: Lutz Heinrich
# Description: Stand-alone PC mit direkter Internetanbindung, keinerlei Logging
# Voraussetzung: Kernel 2.4, iptables
#
# letzte Aenderung: 02.11.2002

IPT="/sbin/iptables"

# deaktivieren der Paketweiterleitung
echo "0">/proc/sys/net/ipv4/ip_forward

# keine Annahme von Broadcast-Echo-Requests
echo "1" >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# setzen der Default Parameter
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP

# löschen aller bereits vorhandenen Regeln
$IPT -F
$IPT -t nat -F
$IPT -X

# verwerfen aller "ungültigen" Pakete
$IPT -A INPUT -m state --state INVALID -j DROP

# erlauben aller lokal erzeugten Pakete
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -i lo -j ACCEPT

# erlauben aller ausgehenden Verbindungen
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# erlauben eingehender, der zu den ausgehenden Verbindung gehörenden, Pakete
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# der Fairness und zum Verhindern von erhöhtem Traffic noch die Zurückweisung unerwünschter Pakete
$IPT -A INPUT -j REJECT
$IPT -A OUTPUT -j REJECT

# EndOfScript


damit sind alle ausgehenden verbindungen erlaubt, rein gelassen wird nur, was zu einer bestehenden verbindung gehört. eine anfrage von deinem winpc => linpc würde also abgelehnt werden. dafür müßte man eine extraregel setzen.


aus deiner *net-skizze* werd ich allerdings nicht ganz schlau. seh ich das richtig, das dein hardwarerouter das masquerading übernimmt?

Gruß HL

SorcFun
15.01.03, 13:57
das liegt daran das das Original nicht aussieht wie die Kopie

Also nochmal:

I-NET
/
/
/
Router......PC 1
/
------PC 2


PC1= Windows XP
PC2= Suse Linux 8.1

HangLoose
15.01.03, 14:10
jo

so ist es verständlicher :)

wie gesagt, mit dem script oben sicherst du nur pc 2 ab. alles andere => routing, masquerading muss dein hardware-router übernehmen. wie das geht, kann ich dir leider nicht sagen.

wenn das dein router nicht kann, kannst du alternativ auch den linux pc als router/firewall einsetzen.


Gruß HL

cane
15.01.03, 14:21
@HangLoose

Versteh ich sowieso nicht das die Leute sich Hardware Router kaufen.
Die meisten haben zu wenig Funktionen und wenn was nicht funktioniert steht man da...

@SorcFun

Um das ganze abzusichern mußt Du auf beiden Pc's eine Firewall installieren.
Nimm für Linux das oben gepostete Script und lies Dich ein bisschen in Iptables ein;
und für den XP Rechner die Kerio Firewall (Nachfolger von Tiny Personal Firewall und Freeware).

Damit die Rechner untereinander kommunizieren können mußt Du wie HangLoose schon sagte den Router konfigurieren.

Gruß
cane

HangLoose
15.01.03, 14:30
@cane


Versteh ich sowieso nicht das die Leute sich Hardware Router kaufen.

ich hab nen alten p 133 als router/firewall hier stehen. bin schonmal auf die stromrechnung gespannt am jahresende ;) also der geringere stromverbrauch ist schon ein argument für einen hardware-router.


Gruß HL

SorcFun
15.01.03, 16:21
Da bin ich auch der Meinung. Denn alles wird teurer und da ist ein Hardware-Router für 80? billig.
DAnke! Aber wie soll ich das einlesen. Habe wie gesagt Suse 8.1 und das mit dieser Page zu automatischen Einstellen geht nicht. Denn das ist für Redhat gedacht. Denn ich bekomme die Meldung das dieses Verzeichnis nicht existiert.

Also wie jetzt?

THX
CU
Thorsten

HangLoose
15.01.03, 17:09
DAnke! Aber wie soll ich das einlesen. Habe wie gesagt Suse 8.1 und das mit dieser Page zu automatischen Einstellen geht nicht. Denn das ist für Redhat gedacht. Denn ich bekomme die Meldung das dieses Verzeichnis nicht existiert.

ich versteh nur bahnhof.

1. was willst du wo einlesen?

2. bei was genau bekommst du die meldung "dieses verzeichnis existiert nicht"


Gruß HL

SorcFun
15.01.03, 17:25
Was soll ich mit den Script machen?
Ich dachte als auführbare Datei erstellen und dann ... .
Und da kommt die Meldung im Terminal das dieses Verzeichnis nicht existiert:

IPT="/sbin/iptables"



linux:/ # ./fire.d
./fire.d: line 17: /sbin/iptables: No such file or directory
./fire.d: line 18: /sbin/iptables: No such file or directory
./fire.d: line 19: /sbin/iptables: No such file or directory
./fire.d: line 22: /sbin/iptables: No such file or directory
./fire.d: line 23: /sbin/iptables: No such file or directory
./fire.d: line 24: /sbin/iptables: No such file or directory
./fire.d: line 27: /sbin/iptables: No such file or directory
./fire.d: line 30: /sbin/iptables: No such file or directory
./fire.d: line 31: /sbin/iptables: No such file or directory
./fire.d: line 34: /sbin/iptables: No such file or directory
./fire.d: line 37: /sbin/iptables: No such file or directory
./fire.d: line 40: /sbin/iptables: No such file or directory
./fire.d: line 41: /sbin/iptables: No such file or directory


So sieht es aus. Oder ?? Ich bin in dieser Sache Anfänger. Sonst würde ich nicht Fragen.


THX
Thorsten

HangLoose
15.01.03, 17:30
hi


Ich bin in dieser Sache Anfänger. Sonst würde ich nicht Fragen.

ist ja auch kein problem. nur solltest du deine fragen schon verständlich stellen. ;)


zu deiner fehlermeldung => hast du das script als root gestartet?


Gruß HL

SorcFun
15.01.03, 17:37
Ja das habe ich gemacht. Denn so weit bin ich schon mit den Wissen.

HangLoose
15.01.03, 17:40
ok

kann ich mir zwar irgendwie schwer vorstellen. aber nöglich das iptables noch nicht installiert ist. was ergibt ein whereis iptables in der konsole?

Gruß HL

SorcFun
15.01.03, 18:25
linux:/ # whereis iptables
iptables: /usr/sbin/iptables /usr/lib/iptables /usr/share/man/man8/iptables.8.gz
linux:/ #

Das kommt!

HangLoose
15.01.03, 18:29
aha

du mußt den pfad zu iptables im script ändern.

IPT="/sbin/iptables" ==> IPT="/usr/sbin/iptables"


Gruß HL

SorcFun
15.01.03, 18:35
Jetzt bin schon wenigstens ein Schritt weiter aber:

linux:/ # ./fire.d
iptables v1.2.7a: Can't use -i with OUTPUT

Try `iptables -h' or 'iptables --help' for more information.

linux:/ #


---
Skript:


#!/bin/bash
# Autor: Lutz Heinrich
# Description: Stand-alone PC mit direkter Internetanbindung, keinerlei Logging
# Voraussetzung: Kernel 2.4, iptables
#
# letzte Aenderung: 02.11.2002

IPT="/usr/sbin/iptables"

# deaktivieren der Paketweiterleitung
echo "0">/proc/sys/net/ipv4/ip_forward

# keine Annahme von Broadcast-Echo-Requests
echo "1" >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# setzen der Default Parameter
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP

# löschen aller bereits vorhandenen Regeln
$IPT -F
$IPT -t nat -F
$IPT -X

# verwerfen aller "ungültigen" Pakete
$IPT -A INPUT -m state --state INVALID -j DROP

# erlauben aller lokal erzeugten Pakete
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -i lo -j ACCEPT

# erlauben aller ausgehenden Verbindungen
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# erlauben eingehender, der zu den ausgehenden Verbindung gehörenden, Pakete
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# der Fairness und zum Verhindern von erhöhtem Traffic noch die Zurückweisung unerwünschter Pakete
$IPT -A INPUT -j REJECT
$IPT -A OUTPUT -j REJECT

# EndOfScript


THX
Thorsten

HangLoose
15.01.03, 18:39
ups das ist die einzige zeile, die ich zu Jinto's script zugefügt habe und dann gleich falsch :D:D

ändere mal folgende zeile

$IPT -A OUTPUT -i lo -j ACCEPT => $IPT -A OUTPUT -o lo -j ACCEPT

SorcFun
15.01.03, 18:45
ok und wo kann ich jetzt gucken wo er es eingetragen hat und wie kann ich den Status nachgucken und läuft jetzt die Firewall?

Sonst ein Extra Danke!
Wenn alles so schnell gehen würde und man nicht immer Dumme antworten bekommt.

THX
Thorsten

HangLoose
15.01.03, 18:57
hi


ok und wo kann ich jetzt gucken wo er es eingetragen hat und wie kann ich den Status nachgucken und läuft jetzt die Firewall?

mit iptables -Lv kannst du dir deine rules ansehen und ja die firewall läuft jetzt. allerdings wird nichts geloggt. das müßte man noch extra *einbauen*.

wenn du möchtest, das die firewall gleich beim booten (sinnvoll) mit hochgefahren wird, mußt du noch einen link in deinen defaultrunlevel setzen.

ln -s /ort/wo/script/liegt/myfirewall /etc/init.d/rc3.d/S30myfirewall

unter der annahme du hast das script myfirewall genannt, ansonsten anpassen.


Wenn alles so schnell gehen würde und man nicht immer Dumme antworten bekommt.

also in diesem forum sind dumme antworten ziemlich selten, meistens liegt es an der fragestellung. wobei mir klar ist, das man als newbie meistens so seine schwierigkeiten hat, die probleme in vernünftige fragen zu packen ;)


Gruß HL

Jinto
15.01.03, 19:09
ups das ist die einzige zeile, die ich zu Jinto's script zugefügt habe und dann gleich falsch
Kann mal passieren :D
Aber die Zeile ist unnötig, sie ist in der nächsten enthalten :)

HangLoose
15.01.03, 19:14
Hi Jinto


Kann mal passieren :D

besonders mir :D


Aber die Zeile ist unnötig, sie ist in der nächsten enthalten :)

jaja wenn der lehrling dem meister .... :D, hast aber recht und ich war mir sicher das ich irgendwas übersehen habe, jetzt weiß ich auch was ;)


Gruß HL

SorcFun
15.01.03, 19:21
Bei iptables -Lv bekomme ich nur die Meldung:

linux:/home/firewall # iptables -Lv
iptables: Table does not exist (do you need to insmod?)
linux:/home/firewall #



THX
Thorsten

SorcFun
15.01.03, 19:45
Ok. Ich sollte auch ein bißchen lesen.

iptable -L -v

so gehts.

Das war alles für Heute.

THX

Thorsten