OpenSSH 4.9p1'in piyasaya sürülmesiyle, artık kullanıcıları ev dizinleriyle sınırlamak veya SFTP hizmetlerine erişimlerini sağlamak için üçüncü taraf korsanlara veya karmaşık chroot kurulumlarına güvenmek zorunda değilsiniz.
/ etc / ssh / sshd_config dosyasını (bazı dağıtımlarda / etc / sshd_config) düzenleyin ve aşağıdaki seçenekleri ayarlayın:
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Dosyanın sonunda “Maç” direktifinin olduğundan emin olun. Bu, OpenSSH'ye sftp grubundaki tüm kullanıcıların ev dizinlerine chroot edilmesi gerektiğini söyler (% h, ChrootDirectory komutunda
Chroot yapmak istediğiniz tüm kullanıcılar için bunları kullanarak sftp grubuna ekleyin:
# usermod -G sftp joe
# usermod -s /bin/false joe
# chown root:root /home/joe
# chmod 0755 /home/joe
Yukarıdaki usermod komutu, sftp grubuna kullanıcı joe ekler ve kabuklarını / bin / false olarak ayarlar, böylece kesinlikle kabuk erişimini alamazlar. Chown ve chmod komutları, dizin için gerekli izinleri ayarlayacaktır. Bu izinler ayarlandığında, kullanıcının dosya yüklemesine ve indirmesine izin verilir, ancak kök dizinde dizinler veya dosyalar oluşturamaz
Chrooting kabuk hesapları, belirli aygıt dosyalarının ve bir kabuğun kullanıcının giriş dizininde bulunmasını gerektirdiğinden biraz daha karmaşıktır. Aşağıdaki komutlar Mandriva Linux'ta çok basit bir chroot sistemi kuracak:
# 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
Yukarıdakilerle, kullanıcı joe ssh içerisine girebilir ve chroot ile sınırlandırılır. Ne yazık ki, bu pek bir şey yapmıyor, ancak size nasıl kurulabileceği konusunda bir fikir veriyor. Ne vermek istediğinize bağlı olarak, ek kitaplıklar ve ikili dosyalar kurmanız gerekecektir.
Chroot oluşturma
Dchroot ve debootstrap paketlerini kurun.
Yönetici olarak (yani sudo kullanarak), chroot için yeni bir dizin oluşturun. Bu prosedürde, dizin /var/chroot
kullanılacaktır. Bunu yapmak sudo mkdir /var/chroot
için komut satırına yazın.
Yönetici
/etc/schroot/schroot.conf
olarak bir metin düzenleyicide açın. Yazın cd /etc/schroot
, ardından gksu gedit schroot.conf
. Bu dosyayı düzenlemenizi sağlar.
Aşağıdaki satırları ekleyin schroot.conf
ve ardından dosyayı kaydedin ve kapatın. your_username
Kullanıcı adınızla değiştirin
.
[lucid] Description = Ubuntu Lucid konumu = / var / chroot önceliği = 3 kullanıcı = kullanıcı_adı grupları = sbuild root-groups = root
Bir terminal açın ve şunu yazın:
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ \
http://mirror.url.com/ubuntu/
Bu, chroot'ta Ubuntu 10.04 (Lucid Lynx) 'in temel bir kurulumunu yaratacaktır. Paketlerin indirilmesi biraz zaman alabilir. Not: Lucid'i seçtiğiniz Ubuntu sürümüyle değiştirebilirsiniz. Not: Yukarıdakileri mirror.url.com
, sizin için yerel olan geçerli bir arşiv aynasının URL’si ile değiştirmeniz gerekir . Şimdi temel bir chroot oluşturulmalıydı. Tip sudo chroot /var/chroot
chroot'dan içinde bir kök kabuğu geçmek için.
Chroot'u kurma
DNS çözümlemesi ve erişim gibi özellikler sağlayan chroot'u ayarlamak için atabileceğiniz bazı temel adımlar vardır /proc
.
Not: Bu komutları chroot'un dışındaki bir kabuğa yazın.
/proc
Dosya sistemini chroot'a monte etmek için aşağıdakini yazın (işlemleri yönetmek için gereklidir):
sudo mount -o bind /proc /var/chroot/proc
DNS çözünürlüğüne chroot içinden izin vermek için aşağıdakini yazın (Internet erişimi için gereklidir):
sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
Bir chroot'a varsayılan olarak çok az paket yüklenir (sudo bile kurulmaz). apt-get install package_name
Paketleri kurmak için kullanın .