![]() |
Tu ein wenig googeln mit IPTables als Suchwort :D
Sloter |
@Sloter
Du hast ja geschrieben das des Masq im script akriviert wurde, der Kernel müsste bei mir auch passen glaube ich, muß ich dann nur noch die anderen Rechner mit der Richtigen IP-Adresse und dem Richtigen Gateway konfigurieren oder gehe ich da falsch in der annahme? |
Stimmt
Beim Clienten den Server als Gateway angeben und die DNS nicht vergessen auch anzugeben. Sloter |
@Arti:
http://www.wcm.at/vb2/showthread.php?s=&threadid=53337 Lies bitte das letzte Post @ Ulraich: Gratulation, hast es geschafft! mfg Excalibur:bier: |
Linux rechner ist im Internet und firewall is aktiviert 2. Netzwerkkarte is da und installiert hat die IP-Adresse: 192.168.0.1; Netzwerkkarte mit switch mit einen Win Rechner(192.168.0.2) verbunden. Kann aber nicht einmal hin und her pingen Was könnte da net passen?
|
@Ulraich
Hast die 2.NIC am Linux aktiviert? gib mal ein: ifconfig da solltest die eth1 sehen! mfg |
Hab jetzt noch nen 2 win-rechner(192.168.0.29) eingeschalten und der kann den Linux Rechner(192.168.0.1) auch nicht pingen. Aber der 1. Win Rechner(192.168.0.2)kann den 2. Win Rechner pingen. Beim Linux-Rechner ist mit "ifconfig" ein eth0, eth1, lo und das ppp0 vorhanden. Beim Switch leuchten die lichter für die verbindung aller 3 Rechner.
|
Stoppe die Firewall "firewall stop" und probier ob du so pingen kannst.
Überall die selbe Subnetmask? Sloter |
Hast du nach dem Eintragen der NIC-Daten (eth1) am Linux das Netzwerk restartet ? sonst übernimmt er nicht die Daten!
|
@Sloter
Ja ohne firewall gehts pingen. Subnetmask is überall(255.255.255.0) @Excalibur33 Ja hab schon neu gestartet |
Probier zuerst mal eine Verbindung vom W -rechner ins I-net, ohne FW, mal schaun obs geht ! Gib auf der Linux mal ein:
/sbin/iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE dann: echo 1>/proc/sys/net/ipv4/ip_forward dann probier vom W -rechner: Eigenschaften vom IE: Verbindung herstellen: Keine Verbindung anhaken, LAN Eigenschaften: alle Häkchen weg ,wenn welche da sind . Dann irgendeine Seite anwählen, wenn sie kommt, dann geht mal die Verbindung |
Hab scho probleme mit dem
"/sbin/iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE". Bei mir is des unter /usr/sbin/iptables oder /usr/local/sbin/iptabels wenn i des dann eingib antwortet er bei beiden: iptables v1.2.6a: Couldn't load target 'MASQERADE': usr/local/sbin/iptabels libipt_MASQERADE.so: cannot open shared object file: No such file or directory |
OK, Firewall hast abgestellt, dann mal eingeben:
iptables -F die Verbindung soll aber schon noch am Laufen sein; dann probier: /usr/sbin/iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE danach: echo 1>/proc/sys/net/ipv4/ip_forward dan den Rest von vorher machen |
@excalibur :
Ich sags nochmal - diesmal deutlicher weil du anscheinend die höfliche Art nicht verstehst : RED KEINEN SCHEISS !! Er hat hier KEIN NAT PROBLEM ! Das heisst dieses ganze MASQ Zeug kannst du dir ganz normal IN DIE HAARE SCHMIERN ! Zitat:
Davon abgesehen dass diese Rule NULL bringt weil hier nicht NAT das Problem ist.......*grrrrr* Sein Problem liegt noch im internen Netzwerk - die Firewall blockiert den Zugriff der lokalen Rechner auf den Linux Router... Deswegen sagte ich : Vergiss die vorgefertigen Scripts - alles GEQUIRLTE SCHEISSE ! So - einigermaßen abreagiert - jetzt zu Ulraichs Problem : Ist bei dir das Interface fürs LAN eth1 -> 192.168.0.1 ? Wenn ja : /usr/sbin/iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j ACCEPT so - damit gehts... und wenn du noch wissen willst wo dein Problem lag : diese Rule hier : ##Allow unlimited traffic from internal network using legit addresses to firewall-box ##If protection from the internal interface is needed, alter it $IPTABLES -A INPUT -i $INTIF -s $INTLAN -j ACCEPT wenn du die Variablen überprüfst wirst du bemerken dass : ## Get internal interface from command-line ## If no interface is specified then set $DEFAULT_INTIF as INTIF if [ "x$3" != "x" ]; then INTIF=$3 else INTIF=$DEFAULT_INTIF fi echo Internal Interface: $INTIF anscheinend tritt hier die else Abfrage in Kraft und dein INTIF wird zu DEFAULT_INTIF , siehe weiter oben (einer der shell freaks wird bestimmt wissen was die if Abfrage genau macht - ich weiss es nicht und bin zu faul nachzulesen ;) ): ## Default internal interface (used, if INTIF isn't specified on command line) DEFAULT_INTIF="eth0" Damit steht für dein INTIF eth0 und nicht eth1 - so - und darum gehts net.... Lad die Firewall - und gib nachher das iptables kommando ein dass ich dir angegeben hab - dann probier nochmal zu pingen. Wenn wir das ordentlich hinbringen wollen müssen wir das Firewall Script wieder umschreiben. Deswegen sagte ich ja - und sags nochmal - es führt kein Weg an einem eigenen Script vorbei, wennst ein fertiges verwendest hast immer genau die scheiss Fehlersuche die wir hier jetzt veranstalten..... --qu |
Nachtrag :
Mit dem "Nicht-Stimmen" von INTIF stimmt natürlich der ganze Schmarrn mit INTNET auch nicht.....wie ich sagte - Script umschreiben....iptables lernen....blahblah....vielleicht schreibt dirs jemand um.......oder du lernst es selbst.... --qu |
Zitat:
hier wird ein alter trick der shell programmierung angewendet. man kann nicht direkt auf einen leerstring prüfen, daß verursacht eine fehlermeldung. es gibt zwar noch andere möglichkeiten, aber aus der born shell programmierung stammt dieses sinnige konstrukt: gefragt wird, ob die zeichenkette "x$3" ungleich der zeichenkette "x" ist. das ist nur dann der fall, wenn die variable $3 nicht leer ist. also mit anderen worten, existiert ein dritter kommandozeilenparameter, erhält die variable intif diesen wert. im anderen fall erhält intif ein defaultwert. greetz artemisia |
@Quaylar: Dies steht im FW -script,das im gepostet wurde:
Zitat:
Was ich vergessen hab, war, das er SUSE benutzt!!!!! Bei mir läufts mit der Eingabe,weil RH 7.1!! Sein Problem ist = zu viele Köche verderben den Brei! Der arme Kerl sieht sich NOCH weniger ausse als i! Ausserdem bin ich grad dabei, ne Mini FW zu schreiben, damit wir wenigstens Minimalschutz haben. Ne 100% FW gibts nur, wenns dein Rechner abdrehst,das will keiner einsehen! mfg Excalibur33 |
und ausserdem,wenn schon
## Default internal interface (used, if INTIF isn't specified on command line) DEFAULT_INTIF="eth0" ="eth1" dass braucht er nur in der FW fürs erste zu ändern, und abspeichern! und da ist gleich am Anfang nach den Komments!° |
excalibur, bittschön sei so lieb, mach einen neuen thread auf und erklär uns mit deinen worten, was eine firewall ist.
hier scheint es, mal wieder einige mißverständnisse zu geben. greetz artemisia @ulraich wenn du magst, maile mir dein prob. ich verwende selber SuSE und weiß so einigermassen damit umzugehen. |
Hmmm - ich versteh da ein paar Dinge nicht :
1) Zitat:
Abhängig von diesem werden die in den case Abfragen aufgelisteten Kommandos ausgeführt. Jedoch - müsste doch das gesamte Script in jeder case Abfrage beendet werden oder nicht ? Wenn er jetzt eingibt "firewall2 start" - gibt er mit echo die Meldungen aus und fängt dann an das Script nach unten hin abzuarbeiten. Wenn er eingibt "firewall2 stop" - passiert doch genau dasselbe - er flusht die rules - gibt die Meldung aus - und arbeitet das Script weiter ab, ich versteh nicht wie das funktioniert. Denn wenn er "firewall2 stop" eingibt - muss das Script nach Abarbeiten des "stop case" beendet werden. 2)Worauf beziehen sich diese Abfragen hier : Zitat:
Ausserdem : wer sagt dass ich später den Interfacenamen als 3. Argument verwende - kann doch auch als 2. oder 4. nehmen.... Zitat:
Hmmm - wenn ich annehme dass "x" für "String" steht - müsste es dann nicht heissen wie folgt: gefragt wird, ob die zeichenkette "x$3" ungleich der zeichenkette "x" ist. das ist nur dann der fall, wenn die variable $3 NICHT leer ist. ??? Denn der "x" String ist ja leer wie du sagtest - also kann "x$3" nur dann ungleich "x" sein wenn in $3 was drinnsteht. Oder hab ich da jetzt was falsch verstanden ? --qu |
@excal :
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Poste doch dann mal das Ergebnis.... Zitat:
--qu |
Zitat:
danach verläßt der interpreter den case block. ein extra "break" wie in c ist nicht nötig. Zitat:
Zitat:
greetz artemisia |
Zitat:
Und fährt fort das Script abzuarbeiten - oder etwa nicht ? Zitat:
Oder ? Und wenn ich das nicht tu - sondern zB als 2. oder 4. dann wird IMMER der default Wert geladen ? btw.: Woher soll das script wissen dass das 3. Argument das Interface ist ? es wird ja nur Abgefragt ob ein 3. Argument existert - wenn dieses 3. Argument nun irgendwas andres als das Interface angibt wird ein falscher Wert in der Variable INTIF gespeichert oder ? --qu |
Zitat:
Zitat:
Zitat:
greetz artemisia |
Zitat:
er arbeitet hinter esac weiter - wenn es ein dahinter gibt. Und in diesem fall (das ist das firewall2 script aus einem der vorigen Postings http://www.onlinetravel.at/firewall2 ) - gibt es eben ein "dahinter". Nun - und in diesem Fall (wenn du dir das Script ansiehst) - dann wird, so wie ich das verstehe, alles was hinter der "case-esac" Abfrage steht IMMER verarbeitet - egal mit welchem der 4 Paramter ich firewall2 aufrufe. Und auf das will ich hinaus - denn wenn er "firewall2 stop" eingibt - dann soll ja das ganze Zeug dass hinter dem case Block kommt NICHT mehr abgearbeitet werden. Was aber in diesem Fall geschieht weil ja nirgends eine Anweisung drinn ist dass er das Script nach dem "stop-case" beenden soll. Verstehst was ich mein ? Zitat:
Zitat:
Nur was mir immer noch nicht klar ist, ist worauf sich diese if-else Schleife bezieht....auf die Argumente welchen Scripts oder Befehls bezieht sich diese Abfrage ? Auf die nachfolgenden iptables Befehle die im Script kommen ? --qu |
Nachtrag :
Vergiss meine ersten 2 Absätze - ich hab mir das Script nochmal angesehen - das esac kommt erst ganz am Ende - hatte ich übersehen, sorry. Die case-esac Geschichte ist mir jetzt klar.... Nur das andere noch nicht... --qu |
die if-else kondition (oder bedingung, keine schleife!) entscheidet nur darüber, welchen wert die variable INTIF enthält. je nachdem, ob du beim aufruf einen 3.kommandozeilenparameter angegeben hast, erhält die variable INTIF diesen wert. d.h überall dort wo etwas in der art $INTIF im weiteren verlauf des scriptes steht, wird entweder der default wert oder der 3.kommandozeilenparameter eingesetzt.
beispiel: if [ "x$1" != "x" ]; then GRUSS=$1 else GRUSS="guten morgen" fi echo $GRUSS echi "Ein zweiter Gruss: $GRUSS" führst du ein solches script mit dem parameter "gute nacht" aus wird, überall wo $GRUSS steht "gute nacht" eingesetzt. ansonsten enthält gruss "guten morgen" ansonsten "gute nacht" greetz artemisia |
Bin jetzt wieder da und hab wies aussieht ja einiges versäumt(hoff ihr habt euch nicht gegenseitig aufgespießt *g*) Naja hab jetzt des mit dem /usr/sbin/iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j ACCEPT(Internet gestartet, Firewall geladen und nachher das iptables kommando eingegeben) habs ausprobiert funktioniert leider nicht. eth1 ist auf 192.168.0.1. Kann pingen wenn die firewall net an is, wenn i sie starte gehts net und wenn is stop gehts wieder.
|
War ne schlechte idee mit dem /usr/sbin/iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j ACCEPT, weil wenn i jetzt versuch den Konqueror zu offnen u ne seite laden will schreibt er host not found oder so was in der art, kommt aber nur wenn i die firewall starte oder gestartet u beendet habe wenn ich die firewall überhauptnicht starte gehts internet!!!
|
@ulraich
eine frage: was soll diese regel bewirken? /usr/sbin/iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j ACCEPT greetz artemisia |
@ arte :
Danke dir für deine Erklärung - habs jetzt verstanden...:) @ ulraich : versuch DEFAULT_INTIF auf eth1 zu setzen wie excal sagte, weiß schon warum das Kommando nicht ging, hab diese catch-all rule fürs local net übersehen : $IPTABLES -A INPUT -s $INTLAN -j LREJECT Damit war meine rule nutzlos..... --qu |
@arti
Ich hab ihm die gesagt - sollte eine quick n´dirty Lösung sein um dem lokalen Netz den Zugriff zur Linux Box zu gewähren. Ging aber aus genanntem Grund nicht, da war eine Rule noch vor dieser die die Pakete bereits ablehnte. --qu |
@Ulraich:
Wennst mit der FW probieren willst, gib nach dem stoppen der FW ein: iptables -F Damit bewirkst du ein Löschen der IP-Regeln der FW! Ansonsten hast schon probiert, wie ich es dir vormittag gepostet hab? ich würd gern wissen, ob du eine Verbindung kriegst ohne FW vom Win über Linux! mfg Excalibur |
Wenn er die firewall stopped, werden die Rules automatisch geflusht..>>>
case "$1" in stop) echo "Shutting down firewall..." $IPTABLES -F $IPTABLES -F -t mangle $IPTABLES -F -t nat $IPTABLES -X $IPTABLES -X -t mangle $IPTABLES -X -t nat $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT echo "...done" ;; --qu |
Ich wil nur auf Nummer sicher gehen ,bei diesem Script, und ein 2. Mal flushen, schadet nicht!
mfg |
nur so nebenbei ...
... hat mir die Stimmung im Linuxforum schon mal besser gefallen :(
@Ulraich Irgendwann hast Du das SuSE iptables-rpm installiert, das war Version 1.2.2. Ich hab den ganzen Thread nicht so aufmerksam verfolgt (siehe oben) aber Du dürftest auch die Sourcen kompiliert haben, deshalb /usr/sbin (default bei SuSE); /usr/local/sbin => default bei tar.gz Welche Version gibt iptables -V aus? Manx |
@MANX
V1.2.2 SO hab im script des DEFAULT_INTIF auf eth1 gesetzt. Jetzt hab ich glaube ich genau das Problem das Excalibur33 vorher schon hatte u zwar das er sobald ich die Firewall starte die Verbindung mit dem Internet abbricht: Terminating on signal 15. cbcp_lowerdown Script /etc/ppp/ip-down started (pid 1100) sent [LCP TermReq id=0x2 "User request"] Script ?? finished (pid 892), status = 0x0 Script /etc/ppp/ip-down finished (pid 1100), status = 0x0 sent[LCP TermReq id=0x3 "User request"] Connection terminated. Connect time 3.2 minutes. Sent97974 bytes, received 138720 bytes. Couldn't release PPP unit: Inappropriate ioctl for device (unknown)[891]: log[pptp_conn_close:pptp_ctrl.c:275] Closing PPTP connection Soll ich jetzt so vorgehen wie Excalibur oder hab ihr bessere ideen oder hab ich doch ein anderes Problem? |
@Manx:
Zitat:
@Ulraich: du kannst es wenigsten probieren, wenn schon keine FW, dann kannst einstweilen surfen, und dann die VERbindung kappen,damir nix passiert! mfgExcalibur |
@Excalibur33
Wollte des mit dem: iptables -F Verbindung am Laufen sein; /usr/sbin/iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE aber er gibt mir wieder die antwort: iptables v1.2.2: Couldn't load target 'MASQERADE': usr/local/sbin/iptabels libipt_MASQERADE.so: cannot open shared object file: No such file or directory ??? |
@ulraich
Wenn wer kochen lernen will, beginnt er auch mit einer Eierspeis' und nicht mit einer Bouillabaisse. Meine Meinung: 1.) Das ist jedem zumutbar, wenn nicht wird's auch nix werden. 2.) Für den Anfang, um ein LAN ins Internet zu NATten (bitte tut's ned i-tüpferlreiten mit masquerading und so ...) reicht es auf dem Router Masquerading aufzudrehen. Code:
Quelle: http://netfilter.samba.org/unreliabl...c-4.html#ss4.13.) Firewalling ohne zumindest Grundkenntnisse der TCP/IP Protokolle geht ned. 4.) Für basic-security reicht's von außen alle SYNs zu blockieren (auf die Gefahr hin FTP-Probs zu haben!) So long Manx @excalibur zahlst leicht :bier:? |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 03:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag