• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Mit Webmin FireWall eingestellt?

Ok ich habe meine FireWall jetzt Mittels Webmin eingestellt.
Das fand ich sehr schön und komfortabel.

Meine Frage an euch:
1. Ist es in Ordnung wenn man seine Firewall mit webmin einstellt?

Ist meine Firewall soweit in Ordnung?
(Ich hab erst alles zugelassen was nötig ist und als letztes Drop ich alles andere richtig?) Mein Auszug aus IPtables -L
Code:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain mywall (0 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:ssh:telnet
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:echo dpt:echo
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:2703 dpt:2703
ACCEPT     udp  --  anywhere             anywhere            udp spt:6277 dpt:6277
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:24441 dpt:24441
DROP       tcp  --  anywhere             anywhere            tcp
DROP       udp  --  anywhere             anywhere            udp
 
Die Ausgabe zeigt nicht an ob auf "mychain" wirklich umgeleitet wird - geschweige den wo - von INPUT, OUTPUT und FORWARD auf mychain umzuleiten macht nicht wirklich Sinn.

Wenn Du SuSE am laufen hast kannst Du die Firewall über YaST konfigurieren, da brauchst Du webmin nicht. Für den lokalen PC ist Webmin ok, für einen rootserver würde ich es nicht empfehlen.
 
och nö :(

Ne das ist mein Problem: Ich habe keine grafische oberfläche; ist ein Minimalsystem; (Debian netinstall)

Also ich habs jetzt wie folgt gemacht:

Code:
antispam:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:echo
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:2703
ACCEPT     udp  --  anywhere             anywhere            udp dpt:6277
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:24441
DROP      !tcp  --  anywhere             anywhere
DROP      !udp  --  anywhere             anywhere
DROP       tcp  --  anywhere             anywhere            tcp
DROP       udp  --  anywhere             anywhere            udp

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain mywall (0 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ftp
ACCEPT     tcp  --  anywhere             anywhere            tcp dpts:ssh:telnet
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:www
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:echo dpt:echo
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:2703 dpt:2703
ACCEPT     udp  --  anywhere             anywhere            udp spt:6277 dpt:6277
ACCEPT     tcp  --  anywhere             anywhere            tcp spt:24441 dpt:24441
DROP       tcp  --  anywhere             anywhere            tcp
DROP       udp  --  anywhere             anywhere            udp
DROP       icmp --  anywhere             anywhere
DROP      !tcp  --  anywhere             anywhere
DROP      !udp  --  anywhere             anywhere

Jetzt kann ich doch mywall ohne nachzudenken löschen, richtig?

Die Firewall funktioniert jetzt aber auch nicht richtig :(
 
Theoretisch könntest du mywall löschen - da aber immer noch nicht klar ist von wo auf mywall verwiese wird ist das ein wenig gefährlich. Du siehst das Du Dir mit Webmin in dem Fall keinen Gefallen tust. Mach das besser über ein Shellscript - ist wesentlich übersichtlicher und Du hast die Möglichkeit die Firewall wenigstens automatisiert wieder abzuschalten wenn Du dich ausgeschlossen hast. Achja - in der Firewallkonfig steht nirgendwo was von Port 10000 auf den Webmin normalerweise hört.
 
Ob die Chain mywall von anderen Chains aufgerufen wird kannst Du am Eintrag (0 references) sehen.

Du mußt mit stafeul filtering arbeiten.
Verschiedenen Regeln machen auch überhaupt keinen Sinn in Deinem Script

Grundsätzlicher Aufbau für INPUT
default policy auf DROP (d.h. ich muß alles explizit erlauben)
ESTABLISHED, RELATED ACCEPT
NEW -p tcp --dport 25 ACCEPT
NEW -p tcp --dport 80 ACCEPT
usw.
Zum Schluß dann noch für Pakete aus dem LAN ein reject, das ist sauber und verhindert lästige timeouts

Bei iptables -L sieht man nie die interfaces, die sind aber ein wirksames Mittel um zu filtern.
 
Noch zu Deiner Frage ob man mit Webmin seine Firewall einstellen sollte.

Wenn das Ergebnis von Webmin das ist was Du hier gepostet hast dann NEIN.

Da macht die Yast Filrewall einen besseren Job.
 
Ok! nehmen wir an ich würde es per Scipt versuchen.

Sähe das Ergebniss dann ungefähr wie folgt aus?:

Code:
IPTABLES=/sbin/iptables 
HIGHPORT=1024:65535 

//Policy setzen - es wird alles verworfen 
$IPTABLES -P INPUT DROP 
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD ACCEPT

//Eingehende SSH Verbindung erlauben 
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 22 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 22 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende Telnet Verbindung erlauben 
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 23 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 23 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende SMTP Verbindung erlauben 
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 25 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 25 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende FTP Verbindung erlauben 
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 21 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 21 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende DNS Verbindung erlauben 
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 53 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 53 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende HTTP Verbindung erlauben (Zum download spezifischer SARules)
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 80 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 80 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende Razor Verbindung erlauben 
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 7 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 7 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 2703 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 2703 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende DCC Verbindung erlauben
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p udp --dport 6277 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p udp --sport 6277 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende pyzor Verbindung erlauben
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 24441 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 24441 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende Webmin Verbindung erlauben
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 10000 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 10000 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

//Eingehende Syslog Verbindung erlauben
//Pakete vom Client zum Server 
$IPTABLES -A INPUT -p tcp --dport 514 --sport $HIGHPORT -m state --state NEW,ESTABLISHED -j ACCEPT; 
//Pakete vom SErver zum Client 
$IPTABLES -A OUTPUT -p tcp --sport 514 --dport $HIGHPORT -m state --state ESTABLISHED -j ACCEPT;

Wären diese akzeptabel?
Das scipt pack ich in /etc/init.d/ ,nicht?
Das script mache ich ausführbar mit chmod a+x ,nicht?
thx für deine Hilfe
 
Aber nur so ungefähr.
Hast Du nur eine Netzwerkkarte? Wenn zwei mußt Du die auch zum filtern nehmen?
Wo steht der Server, im LAN im Internet?

OUTPUT Filterung ist in de Regel sinnlos.
Ist der Rechner Router, wenn nein FORWARD auf DROP stellen.
 
Hast Du nur eine Netzwerkkarte?

Jep

Wo steht der Server, im LAN im Internet?

Im Lan

Sieht wie folgt aus

Internet -> router -> firewall -> Switch -> *Meinspamfilter* -> Mailserver

Da (*Meinspamfilter*) steht die Linux maschine wo die Regeln drauf sollen;

OK Forward = drop

Aber wieso nur ungefähr?
Ich sags mal so, es soll keine hightech Panzergeschossaufhaltende :) Firewall werden es müssen halt nur die Regeln/Ports klappen die ich brauch :)
 
Output Filtern macht durchaus Sinn und sei es nur zur Schadensbegrenzung.

Angenommen man hat ein PHP Board welches über eine noch nicht bekannte Sicherheitslücke hackbar ist. Dann könnte ein Angreifer einen Trojaner einschleusen der versucht Daten nachzuladen. Wenn die Firewall nun HTTP oder auch IRC Zugriff die von der Maschine starten blockt kann man immerhin verhindern das schlimmeres passiert.

Klar, schlimm genug wenn ein Trojaner auf der Kiste ist (Neuinstallation, etc.) aber wenigstens hat man die Chance, dass man keine 100 GB Traffic bezahlen muss.

Auf einem ordentlich konfigurierten Server wäre die Outputfilterung zugegebenermaßen zwecklos. Auch auf einer reinen Firewall (wie einer Pix oder sowas) macht es wenig Sinn. Auf einem Multifunktionsserver ist das Outputfiltering als "Backupsicherheit" bestimmt nicht von Nachteil.
 
Wenn Du nur eine einfache Firewall machen möchtest dann keine Filterung im OUTPUT.

Lösche am Anfang des Scriptes erst mal die ganzen Regeln. Ansonsten wird bei jedem Aufruf des Scriptes die Regelkette wird immer länger

Mach eine Regel die established, related durchläßt und dann
einzelne Regeln für status NEW.

Dann wird das ganze schön übersichtlich und man kann jede einzelne Regel optimieren.
 
Ok. Ich bin ein Leicht zu verwirrender Mensch :)
Und ihr habt es geschafft.

Also meine Mails kommen mit den und auch verschiedenen anderen Einstellungen nicht durch.

Muss ich eigentlich Regeln für ereignisse definieren, die innerhalb der Maschiene passieren?
Sprich Postfix übergibt die mail an Amavis (Port 10024) und wieder zurück (Port 10025)
 
Sry das mit dem localhost freigabe wusste ich bisher nicht.

Jetzt bin ich ein ganzes Stück weiter.

Mein Mailprogramm Log sagt mir aber immer noch
Code:
Mar 22 12:12:26 spamgirl postfix/smtp[6359]: connect to 192.168.100.53[192.168.100.53]: Connection timed out (port 25)

Ich Versteh dass nicht, die Mail ist reingekommen. Von postfix an amavis übergeben, dort abgearbeitet, wieder zurück an postfix.
So jetzt gibt es kein Input mehr (es kommt nix mehr rein) wieso verschickt er die Mail dann nicht Raus? Connection timed out (port 25)
Oder ist der Port 25 in dem Moment blockiert, da er noch offen für input ist? nicht oder?
 
Ich kann Dir nicht ganz folgen.
Wer schickt was dahin?
Wenn Du einen INPUT Port 25 Accept macht wird alles reingenommen. Was der Prozess damit macht hat nichts mehr mit der Firewall zu tun.
 
Schon klar, jedoch

Wenn ich INPUT = DROP
Port 25 = ACCEPT mache
Dann kommen meine Mail nicht mehr aus Postfix raus.

Wenn ich INPUT = ACCEPT
also port 25 = ACCEPT mache

Dann funktioniert alles Prima, jedoch habe ich keine Firewall ^^

Daher kommt die frage warum der Port 25 beim Rausschicken gesperrt ist?
 
Die fehlt dann die Regel für INPUT established, related ACCEPT.

Wenn der lokale Prozess eine Verbindung zu einen anderen Rechner aufbaut schickt er das erste Paket durch OUTPUT
.
Der andere Rechner antwortet und das Paket landet in der INPUT CHAIN. Ohne die established Regel wird das Paket weggeworfen.
 
Hi nbkr,

zugegeben, es gibt schon Anwendungsfälle wo eine Filterung im OUTPUT Chain helfen kann.
Hilft aber grundsätzlich nicht, wenn der Angreifer root Rechte erlangt. Deswegen hat man ja eine unabhängige Filterung an der Grenze LAN/WAN in der FORWARD CHAIN (entspricht der OUTPUT Chain auf eine single-Maschine)

Und wenn man es benutzt muß man es sauber konfigurieren.
Falls man DNS, SMTP, NTP, usw. nutzen möchte muß man die Ziele auf vertrauenswürdige Rechner beschränken, usw.

Für den Treadschreiber und seinen LAN Server für heute sicher noch zuviel des Guten.
 
Hi Frankie777,

dann sind wir uns ja einig ;-). Outputfilterung kann nicht schaden - wenn mans richtig macht.

Auf meinen Kisten habe ich es so eingestellt das die sich nur zum Backup- und zum Updateserver verbinden dürfen. Der Rest ist dicht.

Musst Du Dich eigentlich beruflich mit den Brandmauern beschäftigen?
 
Hi nbkr,

im allgemeinen route und filtere ich den OUTPUT auch auf sichere Rechner. Da kann man denn regulieren und vor allem loggen um Unregelmäßigkeiten erkennen.

Brandschutz ist bei mir nur eine "Nebensache"...

Gruß

Frank
 
Oben