Firewall Verständnisfrage
Firewall Verständnisfrage
Hallo,
ich befasse mich mich gerade mit dem Einstieg in Linux. Nach etlichem Herumprobieren habe ich ein Debian System mit einem Apache incl. einem virtuellen Server, ProFTP usw. das sehr gut läuft. Die Internetverbindung macht ein kleiner Router, bei dem praktisch nicht einstellbar ist ausser der EIngabe der Vebindungseinstellungen
Daran hängt ein Switch mit Windows-PCs und der Debian-PC.
Später sollte noch ein kleiner Mailserver dazukommen.
Jetzt müsste aber eigentlich erst mal eine Firewall her und da verstehe ich die Logik nicht ganz.
Der Linix-PC hat nur eine Netzwerkkarte und die Firewall soll einfach aufpassen, das nichts Feindliches/Unerwünschtes reinkommt. Dabei müsste der Apache, der FTP und normaler, von mir initiierter Internettraffik weiter möglich sein.
Mich irritieren die Einstellungen zwischen Source und Destination. Destination ist ja wohl der Linux-PC (feste IP), Source müsste eigentlich der Internet"router" sein, der alles in den Switch schaufelt. Diesen kann ich als Interface aber nicht angeben, weil er eben nicht in dem Linux-PC steckt oder genügt dessen (ebenfalls feste) IP?
Ich habe schon diverse How-Tos angesehen aber verstehe im Moment nicht so richtig, was da läuft. Ich wäre sehr dankbar, wenn mir wenigstens bei dieser Verständnisfrage jemand weiterhelfen könnte. Ich will ja eigentlich nichts routen sondern lediglich unerwünschte Pakete abfangen, klar das die an eth0 ankommen, also woezu dieser ganze Source/Destination Aufwand? Eigentlich müsste ich doch nur definieren, was mit Paketen passieren soll, die bei der Netzkarte des Linux-PC auflaufen, egal woher die kommen, oder?
Mit der Bitte um Nachsicht und vielen Dank:
deb-top
ich befasse mich mich gerade mit dem Einstieg in Linux. Nach etlichem Herumprobieren habe ich ein Debian System mit einem Apache incl. einem virtuellen Server, ProFTP usw. das sehr gut läuft. Die Internetverbindung macht ein kleiner Router, bei dem praktisch nicht einstellbar ist ausser der EIngabe der Vebindungseinstellungen
Daran hängt ein Switch mit Windows-PCs und der Debian-PC.
Später sollte noch ein kleiner Mailserver dazukommen.
Jetzt müsste aber eigentlich erst mal eine Firewall her und da verstehe ich die Logik nicht ganz.
Der Linix-PC hat nur eine Netzwerkkarte und die Firewall soll einfach aufpassen, das nichts Feindliches/Unerwünschtes reinkommt. Dabei müsste der Apache, der FTP und normaler, von mir initiierter Internettraffik weiter möglich sein.
Mich irritieren die Einstellungen zwischen Source und Destination. Destination ist ja wohl der Linux-PC (feste IP), Source müsste eigentlich der Internet"router" sein, der alles in den Switch schaufelt. Diesen kann ich als Interface aber nicht angeben, weil er eben nicht in dem Linux-PC steckt oder genügt dessen (ebenfalls feste) IP?
Ich habe schon diverse How-Tos angesehen aber verstehe im Moment nicht so richtig, was da läuft. Ich wäre sehr dankbar, wenn mir wenigstens bei dieser Verständnisfrage jemand weiterhelfen könnte. Ich will ja eigentlich nichts routen sondern lediglich unerwünschte Pakete abfangen, klar das die an eth0 ankommen, also woezu dieser ganze Source/Destination Aufwand? Eigentlich müsste ich doch nur definieren, was mit Paketen passieren soll, die bei der Netzkarte des Linux-PC auflaufen, egal woher die kommen, oder?
Mit der Bitte um Nachsicht und vielen Dank:
deb-top
-
- Beiträge: 2186
- Registriert: 18.09.2005 15:52:02
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Source und Destination brauchst du, weil eine Firewall oft in einem Router sitzt, der durchaus mehrere Interfaces hat. Außerdem willst du evtl. im LAN mehr erlauben als im Netz und sowas. In deinem Fall geht es ja aber nur um deinen einen Rechner, der abgesichert werden soll, oder?
Da könntest du die Policies für INPUT und FORWARD auf DROP setzen, OUTPUT auf ACCEPT. Und dann setzt du einzelne INPUTs frei; z.B. auf Port 80 für den Webserver. Source ist dann 0.0.0.0/0 und Destination deine IP. Und ganz wichtig ist natürlich, alle Verbindungen mit state established oder related auf ACCEPT zu setzen. Jetzt logischer?
jhr
Da könntest du die Policies für INPUT und FORWARD auf DROP setzen, OUTPUT auf ACCEPT. Und dann setzt du einzelne INPUTs frei; z.B. auf Port 80 für den Webserver. Source ist dann 0.0.0.0/0 und Destination deine IP. Und ganz wichtig ist natürlich, alle Verbindungen mit state established oder related auf ACCEPT zu setzen. Jetzt logischer?
jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13
Jetzt verstehe ich das nicht: Da hängt ein kleiner "Router" vor dem Debian, und auf dem kann man keine Firewall einrichten? Was ist das denn für ein Router?
Wer macht denn das NAT: Der Linux-Rechner oder der Router?
Soll die Firewall nur den Linuxrechner schützen oder auch den Windows-Rechner?
Grüße
Heiner
Wer macht denn das NAT: Der Linux-Rechner oder der Router?
Soll die Firewall nur den Linuxrechner schützen oder auch den Windows-Rechner?
Grüße
Heiner
Präzisierung der Konfiguration
Hallo!
Danke zunächst für die Stellungnahmen.
Zur Klarstellung:
Der kleine "Router" ist ein Netopia, der lediglich die Einwahl ins Internet bewerkstelligt. Damit verändert oder filtert der garnichts sondern leitet nur vom und ins Internet und zwar alles, was kommt oder geht, von der Funktion eigentlich ein besseres Modem.
Der Kleine hängt dann an einem Switch. An dem Switch hängen einige Windows PCs, gegliedert in VLANS, aber das ist hier egal.
Die Einzelrechner werden durch auf den PCs installierten Virenscanner/Firewalls geschützt.
Zusätzlich kommt nun der Linux-PC dazu. Er soll per dynamischer DNS einen kleinen Apache Server bereitstellen und ggf, später als Mailserver dienen.
Auf diesem soll nun die Firewall installiert werden, die nichts weiter zu tun hätte, als auf diesen Rechner aufzupassen.
Für mein Verständnis müsste sie bestimmt Sachen zulassen bzw. sperren die reinkommen (egal woher, es ist ja nur eine Netzwerkkarte da) und einige Sachen (eigentlich alle) rauslassen, egal wohin. Deshalb habe ich diese Schwierigkeiten mit dem Source, das kann der Firewall in diesem Fall doch eigentlich egal sein, es gibt ja nur einen Ausgang.
Ich hoffe, ich konnte das etwas mehr erhellen.
Grüsse
deb-top
Danke zunächst für die Stellungnahmen.
Zur Klarstellung:
Der kleine "Router" ist ein Netopia, der lediglich die Einwahl ins Internet bewerkstelligt. Damit verändert oder filtert der garnichts sondern leitet nur vom und ins Internet und zwar alles, was kommt oder geht, von der Funktion eigentlich ein besseres Modem.
Der Kleine hängt dann an einem Switch. An dem Switch hängen einige Windows PCs, gegliedert in VLANS, aber das ist hier egal.
Die Einzelrechner werden durch auf den PCs installierten Virenscanner/Firewalls geschützt.
Zusätzlich kommt nun der Linux-PC dazu. Er soll per dynamischer DNS einen kleinen Apache Server bereitstellen und ggf, später als Mailserver dienen.
Auf diesem soll nun die Firewall installiert werden, die nichts weiter zu tun hätte, als auf diesen Rechner aufzupassen.
Für mein Verständnis müsste sie bestimmt Sachen zulassen bzw. sperren die reinkommen (egal woher, es ist ja nur eine Netzwerkkarte da) und einige Sachen (eigentlich alle) rauslassen, egal wohin. Deshalb habe ich diese Schwierigkeiten mit dem Source, das kann der Firewall in diesem Fall doch eigentlich egal sein, es gibt ja nur einen Ausgang.
Ich hoffe, ich konnte das etwas mehr erhellen.
Grüsse
deb-top
- herrchen
- Beiträge: 3257
- Registriert: 15.08.2005 20:45:28
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
Re: Präzisierung der Konfiguration
source=quelledeb-top hat geschrieben:Deshalb habe ich diese Schwierigkeiten mit dem Source, das kann der Firewall in diesem Fall doch eigentlich egal sein, es gibt ja nur einen Ausgang.
damit gibst du an, wo die pakete herkommen.
da sie nur aus dem LAN kommen, kannst damit den einzelnen rechnern im LAN zugriff auf den dienst erlauben, oder nicht.
herrchen
Ich versuch's mal
Hallo!
Es klärt sich, es klärt sich ...
Ich werde jetzt im wesentlichen anfangen mit dem Tipp vom jhr-online, indem ich grundsätzlich alles sperre, was reinkommt und alles erlaube, was rausgeht.
Zusätzlich noch die Ausnahmen für einkommende 80,20,21 usw.
Unklar ist mir noch, wo und wie ich "Verbindungen mit state established oder related" erlaube ??? Sind das Verbindungen, die ich initiiere und wären die nicht sowieso ebenfalls über die eingereichteten Portregeln mit erfasst?
Wahrscheinlich schleiche ich mich damit an eine vernünftige Lösung heran.
Herzlichen Dank an alle!
Grüsse
deb-top
Es klärt sich, es klärt sich ...
Ich werde jetzt im wesentlichen anfangen mit dem Tipp vom jhr-online, indem ich grundsätzlich alles sperre, was reinkommt und alles erlaube, was rausgeht.
Zusätzlich noch die Ausnahmen für einkommende 80,20,21 usw.
Unklar ist mir noch, wo und wie ich "Verbindungen mit state established oder related" erlaube ??? Sind das Verbindungen, die ich initiiere und wären die nicht sowieso ebenfalls über die eingereichteten Portregeln mit erfasst?
Wahrscheinlich schleiche ich mich damit an eine vernünftige Lösung heran.
Herzlichen Dank an alle!
Grüsse
deb-top
-
- Beiträge: 2186
- Registriert: 18.09.2005 15:52:02
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Ich weiß ja nicht, wie du deine Firewall machst, aber mit iptables sähe das in etwa so aus:Das ist dafür gedacht, dass zwar alle Pakete von außen gedropt werden (s. Policies), aber nicht die, die zu einem Dienst gehören, den du gestartet hast. Wär auch irgendwie doof sonst
jhr
Code: Alles auswählen
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13
Die Regel fuer ESTABLISHED,RELATED ist nur so ne Art catch-all. Damit du nicht einzelne Regeln fuer Antwortpakete einbauen musst.
Damit das klappt, musst du halt die Pakete, die Verbindungen aufbauen in State NEW packen:
Damit wuerden dann Verbindungsanfragen an den Webserver durchgelassen werden. Ausserdem merkt sich der Kernel nun die Verbindung, sprich, Pakete die dazugehoeren koennen nun auch passieren, wenn du die Regel von jhr drin hast. Fuer OUTPUT musst du ja nix machen, da du dort die Policy ACCEPT hast.
Btw, bei FTP musst du aufpassen. Das ist manchmal etwas tricky zu handhaben...
Damit das klappt, musst du halt die Pakete, die Verbindungen aufbauen in State NEW packen:
Code: Alles auswählen
iptables -A INPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
Btw, bei FTP musst du aufpassen. Das ist manchmal etwas tricky zu handhaben...
AHA!
Hallo!
Praktisch!
Wunderwelt Linux, es ist faszinierend.
Für mich als alten Windows-Leidtragenden tur sich hier wirklich eine neue Welt auf.
Ich bin inzwischen mit meiner Firewall zweimal furchtbar hängengeblieben...
Sowas schafft wohl nur ein Umsteiger.
Ich werde Eure Tipps einbauen, mal sehen, ob er dann am Leben bleibt.
Danke und Grüsse
deb-top
Praktisch!
Wunderwelt Linux, es ist faszinierend.
Für mich als alten Windows-Leidtragenden tur sich hier wirklich eine neue Welt auf.
Ich bin inzwischen mit meiner Firewall zweimal furchtbar hängengeblieben...
Sowas schafft wohl nur ein Umsteiger.
Ich werde Eure Tipps einbauen, mal sehen, ob er dann am Leben bleibt.
Danke und Grüsse
deb-top
So langsam wird's
Hallo!
Ich habe es mir etwas einfacher gemacht und unter webmin die shorewall installiert. Jetzt habe ich es mit der Einrichtung der Regeln etwas einfacher, weil ich mich auf den Inhalt konzentrieren kann ohne ständig auf die richtigen iptables-Befehle und die Syntax achten zu müssen.
Nach jeder neuen Regel ein kleiner Test und es läuft immer noch alles )
Vielen Dank für die Starthilfe nochmals!
Grüsse
deb-top
Ich habe es mir etwas einfacher gemacht und unter webmin die shorewall installiert. Jetzt habe ich es mit der Einrichtung der Regeln etwas einfacher, weil ich mich auf den Inhalt konzentrieren kann ohne ständig auf die richtigen iptables-Befehle und die Syntax achten zu müssen.
Nach jeder neuen Regel ein kleiner Test und es läuft immer noch alles )
Vielen Dank für die Starthilfe nochmals!
Grüsse
deb-top