Eigenes Repository vor Fremdzugriff schützen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
guenni81
Beiträge: 295
Registriert: 30.11.2006 22:26:48
Lizenz eigener Beiträge: GNU General Public License

Eigenes Repository vor Fremdzugriff schützen

Beitrag von guenni81 » 23.02.2007 12:38:48

Hallo zusammen,
wir entwickeln hier eine Websoftware die später vetrieben werden soll.
Wir haben uns wegen dem Updaten der Software überlegt diese als .deb Dateien in einem eigenen Repository anzubieten. Hier kommt dann die Frage auf ob mein ein Repository schützen und nur gewissen Leuten (Lizenznehmern) einen Zugriff auf das Repository erlauben kann? Falls ja, wie wäre dies möglich?

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 23.02.2007 12:47:51

Sowas zu machen ist nicht ganz einfach. Insbesondere besteht die Gefahr die Kunden zu verärgern wenn das System unnötig umständlich oder unzuverlässig ist.

Eine Möglichkeit wäre z.B. dass sich die Kunden erst via Webbrowser einloggen müssen und dann für die IP für eine gewisse Zeit Zugriff gewährt wird.
Aber schon das ist recht mühsam weil z.B. der Kunde an einer anderen Maschine sitzen kann als die auf der die Software soll (-> geht nicht); der Kunde sich jedes Mal einloggen muss wenn er ein apt-get update machen will (mühsam), ...

Dinge die nach meiner Erfahrung gut laufen sind (was nicht heiss dass ich sie mag ;)):
- zentrale Lizenzserver (wie das Zeugs von macrovision) oder Lizenzfiles und die Repo nicht einschränken
- update Mechanismus in die Software integrieren (wobei unter Linux sowas nicht so gut geht weil die Software zum Updaten ja root-Rechte bräuchte...)

Am Ende leider alles irgendwie mühsam.

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

guenni81
Beiträge: 295
Registriert: 30.11.2006 22:26:48
Lizenz eigener Beiträge: GNU General Public License

Beitrag von guenni81 » 23.02.2007 13:44:32

Da es sich dabei um eine Webanwendung handelt wäre es völlig ausreichbar dies auf die IP des Servers zu legen.
Wie könnte ich das realisieren?

Benutzeravatar
dopehouse
Beiträge: 452
Registriert: 01.09.2005 12:02:16
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Hildesheim (Niedersachsen)
Kontaktdaten:

Beitrag von dopehouse » 23.02.2007 14:03:20

guenni81 hat geschrieben:Da es sich dabei um eine Webanwendung handelt wäre es völlig ausreichbar dies auf die IP des Servers zu legen.
Wie könnte ich das realisieren?
Ein kleines Script bauen, dass der Admin vor dem Update einmal kurz ausführen muss. Das Script fragt dabei einen Benutzernamen und Passwort ab, und sendet beides (natürlich verschlüsselt) an ein kleines PHP-, Perl- oder sonstwas-Script auf einem Webserver. Das Script auf der Serverseite gibt dann einfach nur noch die IP frei, von wo die Anfrage kommt. Das ganze hat allerdings dann auch wieder einen Nachteil, wenn da irgendwo ein Proxy zwischen steht und das APT auf dem Server des Kunden die Updates über einen Proxy holt, der im schlimmsten Fall für die breite Öffentlichkeit zur Verfügung steht.

Hört sich beim ersten Gedanken allerdings auch wieder aufwendig an.

guenni81
Beiträge: 295
Registriert: 30.11.2006 22:26:48
Lizenz eigener Beiträge: GNU General Public License

Beitrag von guenni81 » 23.02.2007 14:11:32

dopehouse hat geschrieben:
guenni81 hat geschrieben:Da es sich dabei um eine Webanwendung handelt wäre es völlig ausreichbar dies auf die IP des Servers zu legen.
Wie könnte ich das realisieren?
Ein kleines Script bauen, dass der Admin vor dem Update einmal kurz ausführen muss. Das Script fragt dabei einen Benutzernamen und Passwort ab, und sendet beides (natürlich verschlüsselt) an ein kleines PHP-, Perl- oder sonstwas-Script auf einem Webserver. Das Script auf der Serverseite gibt dann einfach nur noch die IP frei, von wo die Anfrage kommt. Das ganze hat allerdings dann auch wieder einen Nachteil, wenn da irgendwo ein Proxy zwischen steht und das APT auf dem Server des Kunden die Updates über einen Proxy holt, der im schlimmsten Fall für die breite Öffentlichkeit zur Verfügung steht.

Hört sich beim ersten Gedanken allerdings auch wieder aufwendig an.
Das ein Proxy hier zwischendrin steht ist ausgeschlossen, da nur eine Verbindung von einem Webserver zu einem anderen aufgebaut wird.
Das Skript wäre nicht das Problem, aber wie kann ich nur diese IP freigeben?
Eigentlich wäre das Skript ebenfalls überflüssig, da der Webserver eine feste IP hat und die somit bekannt ist. Die frage ist dann halt nur noch, wie man das ganze für diese IP freigeben kann.

guenni81
Beiträge: 295
Registriert: 30.11.2006 22:26:48
Lizenz eigener Beiträge: GNU General Public License

Beitrag von guenni81 » 12.04.2007 23:12:20

Hallo zusammen,
hier ne kleine Lösung meines Problems falls mal jemand vor dem gleichen Problem steht.
Ihr müsst auf dem Server einfach nur ein Repository anlegen und dies über einen Webserver nach außen zur Verfügung stellen. Das begrenzen auf bestimmte IP`s ist dann über eine .htaccess Datei oder einen direkten Eintrag in der Konfigurationsdatei der Webseiteneinstellungen möglich.
# Beispiel für IP-Sperren
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.0.1

Benutzeravatar
ckoepp
Beiträge: 1409
Registriert: 11.06.2005 20:11:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nähe Heidelberg

Beitrag von ckoepp » 13.04.2007 11:23:37

Theoretisch kannst du jedes beliebiges Script mittels mod_rewrite zum Repository "umwandeln". Ob nun wirklich mod_index oder Java/PHP/Python dahinter steckt ist nicht ersichtlich. Die URL kannst du ja passend umbiegen und das Programm entscheidet was es zeigt.

Dadruch kannst du ne bequeme Verwaltung mittels Datenbank fahren. Möglich sind Laufzeit, Einmalpasswörter (und Benutzer) als htaccess-Fake, IP Sperrungen/Freischaltungen, eMail Registrierung und und und

Finde ich jetzt etwas schönes als simple htaccess-Dateien anzulegen. Das ist doch wirklich eine eher schlechte als rechte Lösung. Zumal die Skriptlösung ja eigentlich überall so eingesetzt wird, ob bei IBM oder Mircosoft.
"Es gibt kein Problem, das man nicht mit einem doppelten Scotch lösen könnte!"
Ernest Hemingway

guenni81
Beiträge: 295
Registriert: 30.11.2006 22:26:48
Lizenz eigener Beiträge: GNU General Public License

Beitrag von guenni81 » 13.04.2007 12:09:51

ckoepp hat geschrieben:Theoretisch kannst du jedes beliebiges Script mittels mod_rewrite zum Repository "umwandeln". Ob nun wirklich mod_index oder Java/PHP/Python dahinter steckt ist nicht ersichtlich. Die URL kannst du ja passend umbiegen und das Programm entscheidet was es zeigt.

Dadruch kannst du ne bequeme Verwaltung mittels Datenbank fahren. Möglich sind Laufzeit, Einmalpasswörter (und Benutzer) als htaccess-Fake, IP Sperrungen/Freischaltungen, eMail Registrierung und und und

Finde ich jetzt etwas schönes als simple htaccess-Dateien anzulegen. Das ist doch wirklich eine eher schlechte als rechte Lösung. Zumal die Skriptlösung ja eigentlich überall so eingesetzt wird, ob bei IBM oder Mircosoft.
Ja, deine genannte Lösung hört sich wirklich um einiges besser an. Für uns reicht aber die kleine Lösung mittels der .htaccess Datei. Vielleicht ändern wir dies später mal zu deiner genannten Lösung.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Beitrag von ThorstenS » 18.04.2007 22:05:22

Hier werden Möglichkeiten genannt:
http://www.debian-administration.org/articles/513

guenni81
Beiträge: 295
Registriert: 30.11.2006 22:26:48
Lizenz eigener Beiträge: GNU General Public License

Beitrag von guenni81 » 19.04.2007 09:31:20

ThorstenS hat geschrieben:Hier werden Möglichkeiten genannt:
http://www.debian-administration.org/articles/513
Sieht sehr interessant aus. Dank dir!
mfg
Günni

Antworten