[FONT="]Bisher habe ich hier keine Debian korrekte Anleitung gefunden. Deswegen hier mal eine Anleitung, wie man das richtig mit debian macht:
Installation der Debian Helper[/FONT]
[FONT="]apt-get install debian-builder[/FONT]
[FONT="]Source und Abhängigkeiten holen[/FONT]
[FONT="]apt-get build-dep openssh-server[/FONT]
[FONT="]apt-get source openssh-server[/FONT]
[FONT="]Erst einmal in das Verzeichnis wechseln und bauen[/FONT]
[FONT="]dpkg-buildpackage[/FONT]
[FONT="]Dann Patchen - Datei chroot-51.patch[/FONT]
Patchen
[FONT="]patch –I chroot-51.patch session.c[/FONT]
[FONT="]Erneut Bauen[/FONT]
[FONT="]./debian/rules clean[/FONT]
[FONT="]./debian/rules build[/FONT]
[FONT="]./debian/rules binary[/FONT]
[FONT="]Das dann im übergeordneten Ordner entstandene openssh-server*.deb installieren.[/FONT]
dpkg -i ../openssh-server*.deb
Für ISPConfig ist weiter nichts zu tun - in /etc/passwd sollten Benutzer mit Shell Zugriff am Ende mit /./ versehen sein, was den chroot Patch veranlasst in das "Gefängnis" zu wechseln.
[FONT="]Grüße,
Andreas
[/FONT]
Installation der Debian Helper[/FONT]
[FONT="]apt-get install debian-builder[/FONT]
[FONT="]Source und Abhängigkeiten holen[/FONT]
[FONT="]apt-get build-dep openssh-server[/FONT]
[FONT="]apt-get source openssh-server[/FONT]
[FONT="]Erst einmal in das Verzeichnis wechseln und bauen[/FONT]
[FONT="]dpkg-buildpackage[/FONT]
[FONT="]Dann Patchen - Datei chroot-51.patch[/FONT]
Code:
--- orig/session.c 2009-05-19 16:46:39.000000000 +0200
+++ session.c 2009-05-19 16:38:07.000000000 +0200
@@ -91,6 +91,8 @@
#include "monitor_wrap.h"
#include "sftp.h"
+#define CHROOT
+
#if defined(KRB5) && defined(USE_AFS)
#include <kafs.h>
#endif
@@ -1451,6 +1453,11 @@
void
do_setusercontext(struct passwd *pw)
{
+#ifdef CHROOT
+ char *user_dir;
+ char *new_root;
+#endif /* CHROOT */
+
char *chroot_path, *tmp;
#ifdef WITH_SELINUX
@@ -1500,6 +1507,25 @@
exit(1);
}
endgrent();
+#ifdef CHROOT
+ user_dir = xstrdup(pw->pw_dir);
+ new_root = user_dir + 1;
+
+ while((new_root = strchr(new_root, '.')) != NULL) {
+ new_root--;
+ if(strncmp(new_root, "/./", 3) == 0) {
+ *new_root = '\0';
+ new_root += 2;
+
+ if(chroot(user_dir) != 0)
+ fatal("Couldn't chroot to user's directory %s",user_dir);
+ pw->pw_dir = new_root;
+ break;
+ }
+
+ new_root += 2;
+ }
+#endif /* CHROOT */
# ifdef USE_PAM
/*
* PAM credentials may take the form of supplementary groups.
@@ -1691,7 +1717,6 @@
display_loginmsg();
#endif /* HAVE_OSF_SIA */
}
-
#ifdef USE_PAM
if (options.use_pam && !options.use_login && !is_pam_session_open()) {
debug3("PAM session not opened, exiting");
[FONT="]patch –I chroot-51.patch session.c[/FONT]
[FONT="]Erneut Bauen[/FONT]
[FONT="]./debian/rules clean[/FONT]
[FONT="]./debian/rules build[/FONT]
[FONT="]./debian/rules binary[/FONT]
[FONT="]Das dann im übergeordneten Ordner entstandene openssh-server*.deb installieren.[/FONT]
dpkg -i ../openssh-server*.deb
Für ISPConfig ist weiter nichts zu tun - in /etc/passwd sollten Benutzer mit Shell Zugriff am Ende mit /./ versehen sein, was den chroot Patch veranlasst in das "Gefängnis" zu wechseln.
[FONT="]Grüße,
Andreas
[/FONT]
Zuletzt bearbeitet: