Wutze
Anmeldungsdatum: 16. November 2009
Beiträge: 364
|
Ich muss mich eines Tricks bedienen und einem PPPoE-Einwahlgerät ein PPPoE-Login geben, damit es hinter meiner Firewall bleibt. Die Firewall selbst soll sich weiterhin ganz normal bei meinem Provider anmelden. Das Problem was ich nun habe, beide Dienste - pppoe-server als auch das ppp-login - benutzen die selbe Schnittstellenbezeichnung "ppp". Wer zuerst kommt malt in dem Fall zuerst, mit anderen Worten ist nicht sicher, wer ppp0 bekommt oder ppp1. Das bringt dann natürlich die Firewallregeln durcheinander, denn ich kann nicht der IP des pppoe-servers Dinge verbieten, während ich ppp+ andere erlaube. Das würde sich gegenseitig beeinflussen. Ein "ifrename" funktioniert nicht, da so ein pppoe Adapter keine MAC-Adresse besitzt, die man dem entsprechenden Gerät eindeutig zuordnen könnte. Denn am Ende benennt man das falsche Gerät um und die Probleme wären die gleichen. Ich habe mir auch schon mal die Sourcen angesehen, in der Hoffnung dass man das "ppp" des Servers evtl. in "pppd" umbenennen könnte. Leider habe ich nichts gefunden. Gibt es sonst noch irgendwelche Ideen? Der Server liegt als Open-Source frei zur Verfügung und wurde ohne Probleme installiert. http://www.roaringpenguin.com/files/download/rp-pppoe-3.10.tar.gz
https://www.debian-tutorials.com/install-and-configure-pppoe-server-on-debian-squeeze
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Wutze schrieb: Gibt es sonst noch irgendwelche Ideen?
Ich denke das müsste mit eigenen udev-Regeln gehen. Bin zwar nicht sicher, aber es sollte sich IMHO ein passendes Kriterium finden lassen.
|
Wutze
(Themenstarter)
Anmeldungsdatum: 16. November 2009
Beiträge: 364
|
Habs leider nicht hinbekommen. UDEV bezieht sich ja auf die Hardware-Adresse, die PPPoE-Adapter haben ja keine. Einen anderen Weg habe ich auch nicht gefunden.
|
Wutze
(Themenstarter)
Anmeldungsdatum: 16. November 2009
Beiträge: 364
|
Habe gerade eine Idee gehabt und sie funktioniert. Das mit dem Wald und den Bäumen - ihr kennt das vermutlich ;o) | ip link set ppp0 down
ip link set ppp0 name pppd0
ip link set pppd0 up
|
Jetzt muss ich das nur noch verscripten.
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Wutze schrieb: Habs leider nicht hinbekommen. UDEV bezieht sich ja auf die Hardware-Adresse, die PPPoE-Adapter haben ja keine. Einen anderen Weg habe ich auch nicht gefunden.
Hast du dir die Wiki-Seite mal durchgelesen und verstanden? Die Hardware-Adresse ist nur eins von vielen Kriterien. Versuchs doch mal so:
SUBSYSTEM=="net", KERNEL=="ppp0", NAME="pppd0"
|
Wutze
(Themenstarter)
Anmeldungsdatum: 16. November 2009
Beiträge: 364
|
misterunknown schrieb:
Hast du dir die Wiki-Seite mal durchgelesen und verstanden? Die Hardware-Adresse ist nur eins von vielen Kriterien. Versuchs doch mal so:
SUBSYSTEM=="net", KERNEL=="ppp0", NAME="pppd0"
Habe ich. Das Problem ist ja, das pppoe-Einwahl und pppoe-server zwei unterschiedliche Systeme sind, die sich den selben Schnittstellennamen teilen. Zusätzlich problematisch ist ja, dass die Schnittstelle für den pppoe-server (PPPoE-Einwahlknoten), erst dann erscheint, wenn sich der erste Client damit verbindet. D.h., man kann nicht mal so eben den Dienst starten und mit ihm ein Script verknüpfen, dass die mit pppX vergebene IP-Adresse, die ich fest vergeben habe, auf pppd0 ändern kann. Insbesondere dann wird das nämlich relevant, wenn der Server neu gestartet wird und keine DSL-Verbindung zustande kommt. Dann kommt als erstes der pppoe-server und wird ppp0 belegen. Und durch die dynamische IP-Adressvergabe seitens der Provider, wird das mit der Firewall am Ende ziemlich komplex und unübersichtlich. Ich bin, mit meinen rudimentären Kenntnissen, leider im Quellcode des pppoe-servers bisher noch nicht über den Punkt gestolpert, an dem man unter Umständen den Namen der Schnittstelle verändern könnte. Dann wäre das Problem einfacher zu lösen. ;o)
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Wutze schrieb: Habe ich. Das Problem ist ja, das pppoe-Einwahl und pppoe-server zwei unterschiedliche Systeme sind, die sich den selben Schnittstellennamen teilen.
Ok, und was genau ist da das Problem? Funktioniert die udev-Rule bei dir nicht?
Zusätzlich problematisch ist ja, dass die Schnittstelle für den pppoe-server (PPPoE-Einwahlknoten), erst dann erscheint, wenn sich der erste Client damit verbindet. D.h., man kann nicht mal so eben den Dienst starten und mit ihm ein Script verknüpfen, dass die mit pppX vergebene IP-Adresse, die ich fest vergeben habe, auf pppd0 ändern kann.
Ja, von daher sollte man das Interface per udev benennen, denn das passiert, bevor da irgendwelche IPs konfiguriert werden.
Insbesondere dann wird das nämlich relevant, wenn der Server neu gestartet wird und keine DSL-Verbindung zustande kommt. Dann kommt als erstes der pppoe-server und wird ppp0 belegen. ... Ich bin, mit meinen rudimentären Kenntnissen, leider im Quellcode des pppoe-servers bisher noch nicht über den Punkt gestolpert, an dem man unter Umständen den Namen der Schnittstelle verändern könnte. Dann wäre das Problem einfacher zu lösen. ;o)
Zeige mal
grep -ri "ppp0" /etc/ppp/*
|
Wutze
(Themenstarter)
Anmeldungsdatum: 16. November 2009
Beiträge: 364
|
misterunknown schrieb:
Zeige mal
grep -ri "ppp0" /etc/ppp/*
/etc/ppp/ip-down:# $1 Interface name ppp0
/etc/ppp/ip-up:# $1 Interface name ppp0 Und nun? Steht only in der Erklärung. Und jetzt sag nicht, dass das die Definitionen für die Variablen sind?!
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Wutze schrieb: Und nun? Steht only in der Erklärung. Und jetzt sag nicht, dass das die Definitionen für die Variablen sind?!
Keine Ahnung, ich habe ppp noch nicht selbst im Einsatz gehabt. Ich würde aber wetten, dass die Interfacenamen nicht fix sonder konfigurierbar sind, von daher wären diese Skripte dort ein guter Ansatzpunkt. Besser jedenfalls, als irgendwie eine halbare Umbenennung durchzuführen.
|
Wutze
(Themenstarter)
Anmeldungsdatum: 16. November 2009
Beiträge: 364
|
misterunknown schrieb:
Keine Ahnung, ich habe ppp noch nicht selbst im Einsatz gehabt. Ich würde aber wetten, dass die Interfacenamen nicht fix sonder konfigurierbar sind, von daher wären diese Skripte dort ein guter Ansatzpunkt. Besser jedenfalls, als irgendwie eine halbare Umbenennung durchzuführen.
Die Idee habe ich ja auch, nur wo? In der /etc/ppp/ip-up steht ja folgendes und als Variable $1 drin:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 | #!/bin/sh
#
# This script is run by the pppd _after_ the link is brought down.
# It uses run-parts to run scripts in /etc/ppp/ip-down.d, so to delete
# routes, unset IP addresses etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-down.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
# Arg Name Example
# $1 Interface name ppp0
# $2 The tty ttyS1
# $3 The link speed 38400
# $4 Local IP number 12.34.56.78
# $5 Peer IP number 12.34.56.99
# $6 Optional ``ipparam'' value foo
# The environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH
# These variables are for the use of the scripts run by run-parts
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM
|
Woher aber kommt $1?
Wer/was übergibt den Wert? Unter "man pppd" werde ich zwar fündig mit " IFNAME The name of the network interface being used. ", jedoch unter "Scripts". Der Wald wird wieder dichter ... .o)
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Wutze schrieb: Die Idee habe ich ja auch, nur wo?
Da bin ich überfragt. Ich hab sowas leider noch nicht eingesetzt, und hab auch keine Möglichkeit das irgendwo zu testen.
|