Ergebnis 1 bis 20 von 37

Thema: [INFO] Authentifizierungs-Server (work in progress)

Baum-Darstellung

  1. #1
    IPPF-Fünftausend-VIP Avatar von sf3978
    Registriert seit
    02.12.2007
    Beiträge
    6.397

    [INFO] Authentifizierungs-Server (work in progress)

    Im Anhang ein Patch für einen einfachen, leichtgewichtigen und ausbaufähigen Authentifizierungsserver, für die FritzBox (mit Freetz).
    Code:
    2976  2849 root     S      980   3%   0% fbcauth root admin freetz
    Die Passwörter werden als Argumente zum binary, angegeben.

    EDIT:
    Kleine Ergänzungen: Der Port auf dem der Server lauscht ist nicht mehr hardcodiert. Er wird mit dem 1. Argument (argv[1]) übergeben:
    Code:
    serverinfo.sin_port = htons(atoi(argv[1]));
    Code:
    2960 root       980 S    fbcauth 33333 freetz root admin
    Im syslog wird jetzt auch der Port der Servers und die IP Adresse des Clienten eingetragen:
    Code:
    Sep 12 08:38:06 fritz user.info syslog: fbcauth : the authentication was successful! Server port: 33333; Client IP address: 192.168.122.33
    Sep 12 08:38:11 fritz user.info syslog: fbcauth : the authentication was n o t successful! Server port: 33333; Client IP address: 192.168.122.33
    EDIT 2:
    Die Passwörter müssen mindestens 6 Zeichen lang sein und sollen maximal 8 Zeichen lang sein, denn mehr als 8 Zeichen werden nicht berücksichtigt:
    Code:
    if((strlen(argv[j])>=6) && (i = strncmp(argv[j],position,8))==0)
    In die Datei "/tmp/fbcauth.aut" wird jetzt auch die IP Adresse des Clienten geschrieben. Das eingegebene Passwort wird auch eingetragen, so wie es eingegeben wird, richtig oder falsch:
    Code:
    /var/mod/root # cat /tmp/fbcauth.aut
    192.168.122.33 admin12
    EDIT 3:
    Der neue Patch beinhaltet ein einfaches iptables-Skript (setzt die default policy der FORWARD chain auf DROP), iptables-Regeln und andere Kommandos im Quelltext:
    Code:
    for(m=0,j=5;j<=6;j++)
          {
        if((strlen(argv[j])>=6) && (i = strncmp(argv[j],position,8))==0)
        {
        strcat(transmit,"authentication was successful!");
        syslog(LOG_INFO, "%s : the authentication was successful! Server port: %s; Client IP address: %s",\
        argv[0], argv[1], client_ip);
        system(" /usr/sbin/iptables -D FORWARD -p tcp -s \"$(cat /tmp/fbcauth.aut 2>/dev/null)\" \
        -d 0/0 -m multiport --dports 80,443 -j ACCEPT ");
        system(" /usr/sbin/iptables -A FORWARD -p tcp -s \"$(cat /tmp/fbcauth.aut 2>/dev/null)\" \
        -d 0/0 -m multiport --dports 80,443 -j ACCEPT ");
        m=1;
        break;
        }
          }
    Code:
    if(m==0 && (i = strncmp(argv[2],position,6))!=0 && (i = strncmp(argv[3],position,6))!=0 && \
        (i = strncmp(argv[4],position,6))!=0)
          {
          strcat(transmit,"authentication was not successful!");
          syslog(LOG_INFO, "%s : the authentication was n o t successful! Server port: %s; Client IP address: %s",\
          argv[0], argv[1], client_ip);
          /* ab hier eintragen */
          fp=fopen("/tmp/fbcauth.aut","w+");
          fputs(client_ip,fp);
          fputs("\t",fp);
          fputs(position,fp);
          fclose(fp);
          fp=NULL;
          /* ende eintragen */
          }
    Code:
    if((i = strncmp(argv[2],position,6))==0)
        {
        strcat(transmit,"logout was successful!");
        syslog(LOG_INFO, "%s : the logout was successful! Server port: %s; Client IP address: %s",\
        argv[0], argv[1], client_ip);
        /* hier eintragen */
        system(" /usr/sbin/iptables -D FORWARD -p tcp -s \"$(cat /tmp/fbcauth.aut 2>/dev/null)\" \
        -d 0/0 -m multiport --dports 80,443 -j ACCEPT ");
        /* ende eintragen */
        }
    Code:
    if((i = strncmp(argv[3],position,6))==0)
        {
        strcat(transmit,"flush was successful!");
        syslog(LOG_INFO, "%s : the flush was successful! Server port: %s; Client IP address: %s",\
        argv[0], argv[1], client_ip);
        /* hier eintragen */
        system(" /usr/sbin/iptables -F FORWARD ");
        /* ende eintragen */
        }
    Code:
    if((i = strncmp(argv[4],position,6))==0)
        {
        strcat(transmit,"rules setup was successful!");
        syslog(LOG_INFO, "%s : the rules setup was successful! Server port: %s; Client IP address: %s",\
        argv[0], argv[1], client_ip);
        /* hier pfad fuer script eintragen */
        system(" sh /tmp/ipt.rul ");
        /* ende eintragen */
        }
    Angehängte Grafiken Angehängte Grafiken
    Angehängte Dateien Angehängte Dateien
    Geändert von sf3978 (03.10.2010 um 12:35 Uhr) Grund: Ergänzungen
    FRITZ!Box Fon WLAN 7240 (ata-Modus, replaced kernel, automatic kernel module loading); FW: 7240_7270_v3_04.88freetz-devel- 7 2 9 3 - 7 5 6 1 M klick
    Prosody (ein XMPP/HTTP-Server) mit bzw. fuer Freetz
    FreeBSD; FBCauth (authentication server); iptables (alle iptables Module aus Freetz); trickle; ADC; sshguard
    BS: gcc 4.5.3 20110428

Ähnliche Themen

  1. [INFO] IRC-Server auf FB7170
    Von sf3978 im Forum Freetz
    Antworten: 73
    Letzter Beitrag: 01.03.2012, 22:03
  2. [INFO] icecast server für die FritzBox
    Von sf3978 im Forum Freetz
    Antworten: 3
    Letzter Beitrag: 24.04.2010, 14:51
  3. [INFO] ample - MP3-Server für die FritzBox
    Von sf3978 im Forum Freetz
    Antworten: 0
    Letzter Beitrag: 11.04.2010, 12:14
  4. FBF ATA dhcp server doesn't work when connected to a router
    Von jimmi61 im Forum FRITZ!Box Fon als ATA
    Antworten: 5
    Letzter Beitrag: 30.04.2005, 06:46
  5. FBF ATA dhcp server doesn't work when connected to a router
    Von jimmi61 im Forum FRITZ!Box Fon: DSL, Internet und Netzwerk
    Antworten: 3
    Letzter Beitrag: 02.01.1970, 09:18

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •