[INFO] Authentifizierungs-Server (work in progress)

Ich wusste die Frage kommt :D

Ich checke verschiedene boxen und revs aus. Das mach ich fast jeden Monat neu deshalb die Monatsangabe hinten und trunk für trunk halt... Ich baue auch Images für Kumpels die nicht so gut mit Linux bewandert sind und gebe dann entsprechend Support... Ist nur für mich zur logischen Aufteilung ;)

Das Verzeichnis gibt es und es schaut so aus:
Code:
root@linux:~/.dev/7270-freetz-trunk-201010/make$ ls -l fbcauth/
total 32
-rw-r--r-- 1 root root  111 2010-10-10 02:47 Config.in
-rw-r--r-- 1 root root  111 2010-10-10 02:47 Config.in.orig
-rw-r--r-- 1 root root  264 2010-10-12 18:53 Config.in.rej
drwxr-xr-x 2 root root 4096 2010-10-12 18:53 fbcauth-0.1
-rw-r--r-- 1 root root 1712 2010-10-14 17:51 fbcauth-0.1.tar.gz
-rw-r--r-- 1 root root  851 2010-10-10 02:47 fbcauth.mk
-rw-r--r-- 1 root root  851 2010-10-10 02:47 fbcauth.mk.orig
-rw-r--r-- 1 root root 1029 2010-10-12 18:53 fbcauth.mk.rej
root@linux:~/.dev/7270-freetz-trunk-201010/make$

anscheinend ist doch was drin aber nicht das Makefile!

Code:
root@linux:~/.dev/7270-freetz-trunk-201010$ ls -l make/fbcauth/fbcauth-0.1
total 24
-rw-r--r-- 1 root root 5323 2010-10-10 02:47 fbcauth.c
-rw-r--r-- 1 root root 5323 2010-10-10 02:47 fbcauth.c.orig
-rw-r--r-- 1 root root 7797 2010-10-12 18:53 fbcauth.c.rej
 
...
anscheinend ist doch was drin aber nicht das Makefile!

Code:
root@linux:~/.dev/7270-freetz-trunk-201010$ ls -l make/fbcauth/fbcauth-0.1
total 24
-rw-r--r-- 1 root root 5323 2010-10-10 02:47 fbcauth.c
[COLOR="Red"]-rw-r--r-- 1 root root 5323 2010-10-10 02:47 fbcauth.c.orig
-rw-r--r-- 1 root root 7797 2010-10-12 18:53 fbcauth.c.rej[/COLOR]

OK, beim Patchen hat etwas nicht richtig funktioniert. Lösche das Verzeichnis make/fbcauth und patche erneut bzw. schau dir den output von "patch -p0 < ..." an.

EDIT:
Code:
-rw-r--r-- 1 root root 5323 2010-10-[B][COLOR="Red"]10[/COLOR][/B] 02:47 fbcauth.c.orig
-rw-r--r-- 1 root root 7797 2010-10-[COLOR="red"][B]12[/B][/COLOR] 18:53 fbcauth.c.rej
Am 10.10.2010 gepatcht und am 12.10.2010 gepatcht? Warum hast Du vor dem Patchen am 12.10., das Verzeichnis make/fbcauth nicht gelöscht?;)
 
Zuletzt bearbeitet:
Das schien zu funktionieren. Ich baue mal neu!
Code:
root@linux:~/.dev/7270-freetz-trunk-201010$ patch -p0 < fbcauth_101010.patch
patching file make/fbcauth/Config.in
patching file make/fbcauth/external.files
patching file make/fbcauth/external.in
patching file make/fbcauth/fbcauth-0.1/fbcauth.c
patching file make/fbcauth/fbcauth-0.1/Makefile
patching file make/fbcauth/fbcauth.mk
patching file make/fbcauth/files/var.tar/.directory
patching file make/fbcauth/files/var.tar/var/tmp/ipt.rul
patching file make/fbcauth/Makefile.in
root@linux:~/.dev/7270-freetz-trunk-201010$ ls -l make/fbcauth/
total 28
-rw-r--r-- 1 root root  112 2010-10-14 19:26 Config.in
-rw-r--r-- 1 root root   85 2010-10-14 19:26 external.files
-rw-r--r-- 1 root root  174 2010-10-14 19:26 external.in
drwxr-xr-x 2 root root 4096 2010-10-14 19:26 fbcauth-0.1
-rw-r--r-- 1 root root  845 2010-10-14 19:26 fbcauth.mk
drwxr-xr-x 3 root root 4096 2010-10-14 19:26 files
-rw-r--r-- 1 root root   68 2010-10-14 19:26 Makefile.in
root@linux:~/.dev/7270-freetz-trunk-201010$ ls -l make/fbcauth/fbcauth-0.1/
total 12
-rw-r--r-- 1 root root 7371 2010-10-14 19:26 fbcauth.c
-rw-r--r-- 1 root root   84 2010-10-14 19:26 Makefile
root@linux:~/.dev/7270-freetz-trunk-201010$
 
Wenn Du eine neue Version patcht, dann musst Du vorher das Verzeichnis make/fbcauth, immer löschen.;) Siehe EDIT im Beitrag #22.
 
Ok ich lerne noch. ;) Das mit dem löschen kannte ich noch nicht! Dank dir für den Tipp. Ich vermute jetzt wirds laufen. Ich gebe aber nochmal Resonanz ob es funzt!

:keks:
 
So FBCAUTH läuft. Ich sehe auf dem angegeben Port auch die LogIn Maske und mit dem Passwort welches in in der fbcauth.pwd angegeben habe kann ich mich auch anmelden. Blos was nützt mir das jetzt sodass ich eine Anmeldung erzwingen kann? Bisher kann ich ja immer im Internet surfen ohne Anmeldung. Wenn man das jetzt noch mit einer richtigen Benutzeranmeldung koppel könnte wäre das genial... Vielleicht erwarte ich auch zu viel von meiner kleinen FBF 7270 ;)

Dennoch danke für die Idee das gefällt mir echt gut! :groesste:
 
... Vielleicht erwarte ich auch zu viel von meiner kleinen FBF 7270 ;)
...
Nein, Du erwartest nicht zuviel von deiner Box.;) Du bist ja auch noch nicht am Ziel. Jetzt kommt iptables (genauer die FORWARD chain) ins Spiel. Poste mal die anonymisierte Ausgabe von "iptables -L -n -v".
 
Ok alles klar. Wunder dich bitte nicht über meine Regeln ich arbeite gerade an einem Konzept ;) Mir fehlt teilweise noch das Verständnis welche Chain wann greift!

Code:
Chain INPUT (policy ACCEPT 9017K packets, 667M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       x.x.x.x              0.0.0.0/0           tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       x.x.x.x/24           0.0.0.0/0           tcp dpt:22
81133 5618K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           source IP range 192.168.178.1-192.168.178.20
    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 566K packets, 360M bytes)
 pkts bytes target     prot opt in     out     source               destination
  396 23000 ACCEPT     tcp  --  *      *       x.x.x.x              0.0.0.0/0           tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       x.x.x.x/24           0.0.0.0/0           tcp dpt:22
 242K   28M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           source IP range 192.168.178.1-192.168.178.20
   38  2092 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 reject-with icmp-port-unreachable
    0     0 ACCEPT     tcp  --  *      *       192.168.178.20       0.0.0.0/0           multiport dports 80,443

Chain OUTPUT (policy ACCEPT 9608K packets, 1179M bytes)
 pkts bytes target     prot opt in     out     source               destination

Die .20 ist indem Fall mein PC und alles von 1 - 19 sind Server oder Technische Endgeräte und keine User. Ich vermute der letzte Eintrag (Port 80,443) ist von deinem Script? D. h. ich muss eine Reject Regel erstellen die nach der Accept Regel greift? Port 80 und 443 finde ich auch etwas wenig. So könnte man ja dennoch FTP, ICQ und was es sonst noch gibt ohne Authentifizierung durchführen. Oder kann ich die Ports anpassen?
 
Im Paket fbcauth (d. h. im Build-System) befindet sich ein iptables-Skript (.../make/fbcauth/files/var.tar/var/tmp/ipt.rul), das vor dem Compilieren des FREETZ-Images, an deine Bedürfnisse/Box angepasst werden soll. Die default policy der FORWARD chain ist auf DROP eingestellt. D. h. Du musst manuell deine Regeln für die INPUT chain und deine Regeln für die FORWARD chain (Server oder Technische Endgeräte) eintragen (Reihenfolge beachten), speichern und das Skript ausführbar machen. Die default policy für die INPUT chain bleibt auf ACCEPT (d. h. Du kannst dich nicht aussperren von der Box). Vom Internet bist Du durch die auf DROP gestellte default policy der FORWARD chain, erstmal ausgesperrt:
Code:
#!/bin/sh

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

iptables -P FORWARD [COLOR="Red"]DROP[/COLOR]

# ab hier Regeln fuer INPUT chain eintragen

# ab hier Regeln fuer FORWARD chain eintragen

# ab hier Regeln für OUTPUT chain eintragen
Durch FBCauth wird dein Weg (d. h. der Weg der user) durch die FORWARD chain frei geschaltet. FBCauth macht aber nur dann Sinn, wenn mehrere user die Box benutzen. Wenn Du die Box allein benutzt brauchst Du ja keine Authentifizierung bzw. kein Logging. Es sei denn Du willst erst mal testen wie das mit FBCauth so funktioniert. Wenn Du zusätzliche Ports (zu 80 und 443) freigeben willst, dann musst sie in die iptables-Regeln im Quellcode (Datei fbcauth.c) vor dem Compilieren des FREETZ-Images, eintragen und speichern:
Code:
system(" /usr/sbin/iptables -[COLOR="Red"]D[/COLOR] FORWARD -p tcp -s \"$(cat /tmp/fbcauth.aut 2>/dev/null)\" \
    -d 0/0 -m multiport --dports [COLOR="Red"]80,443[/COLOR] -j ACCEPT ");
    system(" /usr/sbin/iptables -[COLOR="Red"]A[/COLOR] FORWARD -p tcp -s \"$(cat /tmp/fbcauth.aut 2>/dev/null)\" \
    -d 0/0 -m multiport --dports [COLOR="Red"]80,443[/COLOR] -j ACCEPT ");
Code:
system(" /usr/sbin/iptables -[COLOR="Red"]D[/COLOR] FORWARD -p tcp -s \"$(cat /tmp/fbcauth.aut 2>/dev/null)\" \
    -d 0/0 -m multiport --dports [COLOR="Red"]80,443[/COLOR] -j ACCEPT ");
 
Ok das habe ich soweit verstanden. Ich nutze das nhipt script von cando hier im Board und möchte dahingehend ungern auf dein ipt.rul script umsteigen. Ich hoffe ich habe das soweit verstanden das ich das ipt.rul script von dir nicht nutzen muss sondern die Regeln für fbcauth selbst über nhipt bestimmen kann. Die Freigabe für die ports in der fbcauth.c habe ich auch verstanden. Viel schöner wäre doch aber eine edit funktion zur Laufzeit der Box!? Klar kann ich das per iptables anpassen.

Über die fbcauth.c kann ich dann auch die Optik der LogIn Seite anpassen. So sieht es für mich i den Sources aus. Liege ich da richtig? Ist ein anpassen überhaupt erwünscht? Ich will dir sicher nicht auf die Füße treten ;)

Ich werden mit dem Script, den Quellen und den IPtables Regeln ein wenig heraumspielen. Mir geht es natürlich darum das die Leute die über mich surfen geloggt werden. Das bin in dem Fall nicht nur ich allein. Daher macht das Projekt an sich für mich einen Großen Sinn.

Ich kene Produkte bei denen wird man direkt auf eine Website umgeleitet auf der man sich Authetifizieren muss sobald man versucht im Netz zu surfen. Kann man das in dein Script auch implementieren? So wie bei Messen oder in Hotels!?

Grüße...
 
Ok das habe ich soweit verstanden. Ich nutze das nhipt script von cando hier im Board und möchte dahingehend ungern auf dein ipt.rul script umsteigen. Ich hoffe ich habe das soweit verstanden das ich das ipt.rul script von dir nicht nutzen muss sondern die Regeln für fbcauth selbst über nhipt bestimmen kann.
Ja, Du musst das iptables-Skript (ipt.rul) nicht nutzen. Dann solltest Du es vor dem Compilieren des FREETZ-Images, besser löschen. Mit nhipt von cando solltest Du dann die default policy der FORWARD chain auf DROP einstellen. Die iptables-Regeln in der FORWARD chain, die das target -j DROP oder -j REJECT haben, werden dann aber nicht mehr benötigt.
Die Freigabe für die ports in der fbcauth.c habe ich auch verstanden. Viel schöner wäre doch aber eine edit funktion zur Laufzeit der Box!?
OK, das hat was mit der Konfiguration von FBCauth zu tun. Den Quellcode könnte man ändern, so dass man die erlaubten Ports als Parameter übergibt. Kann man auf die todo-Liste setzen.
Über die fbcauth.c kann ich dann auch die Optik der LogIn Seite anpassen. So sieht es für mich i den Sources aus. Liege ich da richtig? Ist ein anpassen überhaupt erwünscht? Ich will dir sicher nicht auf die Füße treten ;)
Klar kann jeder den Quellcode ändern bzw. an seine Wünsche und Befürfnisse anpassen. Und den Erfolg oder Misserfolg hier mitteilen, so dass auch andere Interessenten was davon haben.;)
Ich kene Produkte bei denen wird man direkt auf eine Website umgeleitet auf der man sich Authetifizieren muss sobald man versucht im Netz zu surfen. Kann man das in dein Script auch implementieren? So wie bei Messen oder in Hotels!?
Das weiss ich noch nicht, da bin ich zu wenig Fachmann. Aber vielleicht findet sich noch jemand der da helfen kann.

EDIT: (zu Beitrag #28 )
...Ich vermute der letzte Eintrag (Port 80,443) ist von deinem Script?
...
Nein, der Eintrag dieser Regel (mit den Ports 80, 443) ist nicht von meinem Script. Das Script wird nicht automatisch ausgeführt. Diese Regel hast Du, duch deine Anmeldung, eingetragen. Das ist ja die Freigabe für deinen PC (als Client) durch die gedropte FORWARD chain. Mit logout kann die Regel (Freigabe) gelöscht werden. Das funktioniert aber nur von dem PC (Client), von dem auch die Anmeldung erfolgt ist. FBCauth erkennt automatisch die IP-Adresse des Clienten (und die Regel beinhaltet ja die aktuelle interne IP-Adresse des Clienten).
 
Zuletzt bearbeitet:
EDIT: (zu Beitrag #28 )

Nein, der Eintrag dieser Regel (mit den Ports 80, 443) ist nicht von meinem Script. Das Script wird nicht automatisch ausgeführt. Diese Regel hast Du, duch deine Anmeldung, eingetragen. Das ist ja die Freigabe für deinen PC (als Client) durch die gedropte FORWARD chain. Mit logout kann die Regel (Freigabe) gelöscht werden. Das funktioniert aber nur von dem PC (Client), von dem auch die Anmeldung erfolgt ist. FBCauth erkennt automatisch die IP-Adresse des Clienten (und die Regel beinhaltet ja die aktuelle interne IP-Adresse des Clienten).

So meinte ich das auch das die Regel aufgrund meiner Authentifizierung eingetragen wurde. Wie kann ich mich denn ausloggen?

Klar kann jeder den Quellcode ändern bzw. an seine Wünsche und Befürfnisse anpassen. Und den Erfolg oder Misserfolg hier mitteilen, so dass auch andere Interessenten was davon haben.

Kann man das auch mit CSS erweitern/aufpeppen?
 

Anhänge

  • fbcauth_221010.patch.txt
    10.7 KB · Aufrufe: 8
Zuletzt bearbeitet:
Hallo,
ich habe mir den Thread jetzt 2x durchgelesen und versucht, das Image für meine 7170 zu erstellen.

Leider erhalte ich folgende Fehlermeldung:
Keine Regel vorhanden, um das Target »source/fbcauth-0.1/.unpacked«,
benötigt von »source/fbcauth-0.1/.configured«, zu erstellen. Schluss.

Ich verwende freetz-1.1.3 und den fbcauth-Patch vom 22.10.10...

Könnt ihr mir vllt. weiterhelfen?

Vielen Dank!
 
Zuletzt bearbeitet:
...
Ich verwende freetz-1.1.3 und den fbcauth-Patch vom 22.10.10...

Könnt ihr mir vllt. weiterhelfen?
Das Paket fbcauth ist für den trunk vorgesehen. Wenn ich Zeit habe, kann ich evtl. versuchen es so zu ändern, dass es auch unter Freetz-1.1.3 funktioniert. Meine Änderungen kann ich leider nicht testen, da ich kein Freetz-1.1.3 haben. Das müsstest Du dann machen.;)
 
Das Paket fbcauth ist für den trunk vorgesehen. Wenn ich Zeit habe, kann ich evtl. versuchen es so zu ändern, dass es auch unter Freetz-1.1.3 funktioniert. Meine Änderungen kann ich leider nicht testen, da ich kein Freetz-1.1.3 haben. Das müsstest Du dann machen.;)

Danke für die schnelle Antwort :)

Dann versuch ich mein Glück mit der trunk-version...
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.