Wraz z wydaniem OpenSSH 4.9p1 nie musisz już polegać na hakach innych firm lub skomplikowanych konfiguracjach chroot, aby ograniczyć użytkowników do ich domowych katalogów lub dać im dostęp do usług SFTP.
edytuj / etc / ssh / sshd_config (/ etc / sshd_config w niektórych dystrybucjach) i ustaw następujące opcje:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Upewnij się, że dyrektywa „Dopasuj” znajduje się na końcu pliku. Mówi to OpenSSH, że wszyscy użytkownicy w grupie sftp mają być chrootowani do swojego katalogu domowego (który% h reprezentuje w poleceniu ChrootDirectory)
Dla wszystkich użytkowników, których chcesz chrootować, dodaj ich do grupy sftp, używając:
# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe
Powyższe polecenie usermod doda użytkownika Joe do grupy sftp i ustawi ich powłokę na / bin / false, aby absolutnie nigdy nie mogli uzyskać dostępu do powłoki. Polecenia chown i chmod ustawią wymagane uprawnienia do katalogu. Po ustawieniu tych uprawnień użytkownik będzie mógł przesyłać i pobierać pliki, ale nie będzie mógł tworzyć katalogów ani plików w katalogu głównym
Chrootowanie kont powłoki jest nieco bardziej skomplikowane, ponieważ wymaga, aby niektóre pliki urządzeń i powłoki były dostępne w katalogu domowym użytkownika. Następujące polecenia skonfigurują bardzo podstawowy system chroot w Mandriva Linux:
# mkdir /chroot
# cd /chroot
# mkdir {bin,dev,lib}
# cp -p /bin/bash bin/
# cp -p /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libtermcap.so.2} lib/
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# chmod 0666 dev/{null,zero}
# mkdir -p /chroot/home/joe
W związku z powyższym użytkownik Joe może ssh i będzie ograniczony do chroot. Niestety niewiele to robi, ale daje wyobrażenie o tym, jak można to skonfigurować. W zależności od tego, co chcesz dostarczyć, będziesz musiał zainstalować dodatkowe biblioteki i pliki binarne.
Tworzenie chroot
Zainstaluj pakiety dchroot i debootstrap.
Jako administrator (tj. Używając sudo) utwórz nowy katalog dla chroot. W tej procedurze /var/chroot
zostanie wykorzystany katalog . Aby to zrobić, wpisz sudo mkdir /var/chroot
w wierszu polecenia.
Jako administrator otwórz
/etc/schroot/schroot.conf
w edytorze tekstu. Wpisz cd /etc/schroot
, a następnie gksu gedit schroot.conf
. Umożliwi to edycję pliku.
Dodaj następujące wiersze do, schroot.conf
a następnie zapisz i zamknij plik. Zastąp
your_username
swoją nazwą użytkownika.
[lucid] description = Ubuntu Lucid location = / var / chroot priorytet = 3 użytkowników = twoja_nazwa_użytkownika groups = sbuild root-groups = root
Otwórz terminal i wpisz:
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \
http://mirror.url.com/ubuntu/
Spowoduje to utworzenie podstawowej „instalacji” Ubuntu 10.04 (Lucid Lynx) w chroot. Pobieranie pakietów może chwilę potrwać. Uwaga: możesz zastąpić przejrzystą wybraną wersją Ubuntu. Uwaga: musisz zmienić powyższe, mirror.url.com
podając adres URL prawidłowego lokalnego kopii zapasowej archiwum. Powinien zostać utworzony podstawowy chroot. Wpisz, sudo chroot /var/chroot
aby zmienić na skorupę roota w chroocie.
Konfigurowanie chroota
Istnieje kilka podstawowych kroków, które możesz podjąć, aby skonfigurować chroot, zapewniając takie funkcje, jak rozpoznawanie DNS i dostęp do niego /proc
.
Uwaga: Wpisz te polecenia w powłoce, która znajduje się poza chroot.
Wpisz następujące polecenie, aby zamontować /proc
system plików w chroot (wymagany do zarządzania procesami):
sudo mount -o bind /proc /var/chroot/proc
Wpisz następujące polecenie, aby zezwolić na rozpoznawanie DNS z poziomu chroot (wymagane do uzyskania dostępu do Internetu):
sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
Bardzo niewiele pakietów jest instalowanych domyślnie w chroot (nawet sudo nie jest zainstalowane). Służy apt-get install package_name
do instalowania pakietów.