User Tools

Site Tools


openssh_chroot

Ovde se nadovezujemo na tekst o podešavanju CHROOT-a na FreeBSD:FreeBSD OpenSSH CHROOT

OpenBSD zahteva za nijansu drugačije korake. Iako su rekli da je zakrpa koja omogućava chroot ubačena to nije tačno jer čitanje ”.” u putanji ne radi dok sami ne dodate zakrpu koja sledi. No, to nije teško. Pretpostavimo da imate najnoviji OpenBSD (4.1). Vreme je da stavimo novu verziju OpenSSH-a na njega. Svoj paket možete naći na http://www.openssh.org/openbsd.html Tamo ćete naći i uputstvo koje kaže sledeće:

cd /usr/src/usr.bin
tar xvfz .../openssh-4.6.tar.gz
cd ssh
make obj
make cleandir
make depend
make
make install

I dodajte ispred funkcije do_setusercontext sledeći kod:

/* do chroot */

void
do_chroot(struct passwd *pw){
char *user_dir;
char *new_root;
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 directory %s", user_dir);
      pw->pw_dir = new_root;
      break;
  }
  new_root += 2;
}
} 
/* do_chroot */

Zatim dodajte:

/* Set login name, uid, gid, and groups. */
void
do_setusercontext(struct passwd *pw)
{
/* OVO DODAJETE */
do_chroot(pw);
/* OVO DODAJETE */
if (getuid()  0 || geteuid()  0) {
#ifdef HAVE_LOGIN_CAP

Naznačio sam vam šta tačno dodajete. Ono ispred i iznad mog komentara je tu da lakše nađete tačnu lokaciju za dodatnu funkciju.

I sad se vratite koracima za instalaciju OpenSSH-a. Sve bi trebalo da prođe OK. Restartujete OpenSSH server a ostatak je isti kao kod FreeBSD-a.

NAPOMENA: Ovo ima smisla samo ako je korisnik na sistem ušao preko SSH veze. Ukoliko ima fizički pristup mašini onda chroot ne radi.

Autor: Marko Milenović http://rehash.eccegeek.info

openssh_chroot.txt · Last modified: 2017/04/28 10:25 (external edit)