Kullanıcıları hapse atmanın basit ve kolay yolu


33

Kullanıcıları Oneiric'teki ev dizinlerinde hapse atmak için basit ve kolay bir yola ihtiyacım var. Kayıp kullanıcılar için, tam yardımla veya bazı iyi web bağlantılarıyla basit bir yapılandırmanız var mı?

10 - 20 GB boş alana sahip çevrimiçi ücretsiz bir kamu sunucusunu sunuyordum. Kaç tane kullanıcı bilmiyorum. FileZilla ile bağlanabilmeleri için onlara SSH ve SFTP vermek istiyorum.


Kullanıcıların ev dizinleri kilitli değilse 2 güncelleme
Bir Zero

sonra size inanıyorum @Marco tarafından belirtildiği gibi SSH için ChrootDirectory'i denemek istediğinizde 2- 2- "çok fazla" depolama alanını işlemek için gereken bu işleri yapmanın standart yöntemlerinin ötesine geçmek isteyebilirsiniz ... 3- En iyi seçim SSH mı? insanların hizmetinizde SSH'ye ihtiyacı var mı? 4- İyi şanslar
Ali,

1
i normal kullanıcılar için biz sunan olacağını .... de diğer planı var sadece SFTP ile MY çok kolay 2 sap var SHELL, SECURE
Bir Sıfır

Bu hapishaneyi nasıl kaldırabilirim, örneğin (ev / hapishane)? <br> Ve bazı hapishane kısımlarını eklediğimde örneğin jk_init -v -f / home / hapishane ağları, bunu nasıl kaldıracağım?

Yanıtlar:


23

Jailkit, kullanıcı hesaplarını belirli bir dizin ağacı ve belirli komutlarla sınırlandırabilecek bir dizi yardımcı programdır. Hapishane kurmak, 'elle' yapılan Jailkit araçlarını kullanarak çok daha kolaydır. Bir hapis, dosya sisteminizde oluşturduğunuz bir dizin ağacıdır; kullanıcı, hapishane dizini dışındaki dizinleri veya dosyaları göremez. Kullanıcı bu dizinde ve alt dizinlerinde hapsedilir.

Indirin ve yükle:

http://olivier.sessink.nl/jailkit/index.html#download

VERSION=2.20 # from November 2018
cd /tmp
wget https://olivier.sessink.nl/jailkit/jailkit-$VERSION.tar.gz
tar -zxvf jailkit-$VERSION.tar.gz
cd jailkit-$VERSION/
./configure
make
su -
make install

Hapishaneyi kurmak

Şimdi hapishane dizini kurma zamanı. Ceza kullanan kullanıcılar bu dizini sunucunun kök dizini olarak göreceklerdir. / Home / jail kullanmayı seçtim:

mkdir /home/jail
chown root:root /home/jail

jk_init, belirli bir görev veya profil için gereken birkaç dosya veya dizini içeren bir hapishaneyi hızlıca oluşturmak için kullanılabilir (üzerine tıklayın ve tüm detayları okuyun).

jk_init -v /home/jail basicshell
jk_init -v /home/jail netutils
jk_init -v /home/jail ssh
jk_init -v /home/jail jk_lsh

Bir kullanıcı ekle

Giriş dizini ve bash kabuğu ile yeni bir kullanıcı ekleyin ve şifreyi ayarlayın:

useradd -d /home/jailtest -m jailtest -s /bin/bash
passwd jailtest

Şimdi bu kullanıcıyı hapse atma zamanı

aşağıdaki komutu kullanın:

jk_jailuser -m -j /home/jail jailtest

Sizin /etc/passwdşimdi böyle bir şey içermelidir:

jailtest:x:1001:1001::/home/jail/./home/jailtest:/usr/sbin/jk_chrootsh

Bash'ı etkinleştir

Kullanarak jk_cp bash kütüphaneleri hapse kopyalanır:

jk_cp -v -f /home/jail /bin/bash

Düzenle /home/jail/etc/passwd

bu satırı değiştir:

jailtest:x:1001:1001::test:/usr/sbin/jk_lsh

Bununla:

jailtest:x:1001:1001::/home/jailtest:/bin/bash

Bakım

jk_updateGerçek sistemdeki güncellemeleri kullanarak hapishanede güncellenebilir.

Dry-run, neler olduğunu gösterecek:

jk_update -j /home/jail -d

-D argümanı olmadan gerçek güncelleme yapılır. Daha fazla bakım işlemi burada bulunabilir.

( /home/jail/optEksikse, mkdir -p /home/jail/opt/ And ile jk_update -j /home/jailtekrar çalıştır )

Diğer dizinlere erişim izni ver

Hapishane kullanıcısının şimdi erişebileceği özel klasörler ekleyebilirsiniz. Örneğin:

mount --bind /media/$USER/Data/ /home/jail/home/jailtest/test/

Alınan Yardım

http://olivier.sessink.nl/jailkit/howtos_chroot_shell.html

http://olivier.sessink.nl/jailkit/index.html#intro (çok iyi bir yardım)

Bu da

Bu kontrol edildi ve doğrulandı, Düzgün Çalışıyor


+1 çok iyi. yukarıda belirtilen "Yardım Alma" bölümünde de verilen bağlantıları okumanızı tavsiye ederim
cwd

2
Bu Ubuntu 13.10'da çalışmıyor. Nihayet giriş yapmaya çalıştığınızda, hemen bağlantıyı izleyen hoş geldiniz mesajını alırsınız.
Matt H,

Matt H: Son iki adımı takip ettiğinizden emin olun; bash ikili dosyalarının kopyalanması ve / home / jail / etc / passwd dosyasının düzenlenmesi.
ONOZ

2
Bu ya artık işe yaramıyor ya da bu eğitimin uygulanmasından bu yana bir şey değişti. Matt'le tamamen aynı sorunları yaşıyorum.
James Heald

Ayrıca hoşgeldin mesajından hemen sonra bağlantıyı kapattım. Chroot passwd dosyasındaki oturum açma kabuğunu jk_lsh'den bash olarak değiştirdim, burada okunduğu gibi linuxquestions.org/questions/linux-software-2/… Bu bir çözüm değil, geçici bir çözüm!
Attila Fulop,

6

Bunları / home ile sınırlayamazsınız çünkü sistem ikili dosyalarına ve / etc içindeki bash ve yapılandırma dosyalarına erişmeleri gerekir

IMO kullanıcıları güvence altına almanın en kolay yolu apparmor kullanmaktır.

Sert bir bağlantı kuruyorsun

ln /bin/bash /usr/local/bin/jailbash

/ Etc / shells dizinine jailbash ekliyorsunuz

Daha sonra jailbash'ı kullanıcı kabuğuna atarsınız ve sonra jailbash için minimum erişim sağlayan bir apparmor profili yazarsınız.

sudo chsh -s /usr/local/bin/jailbash user_to_confine

Kendiniz bir apparmor profili yazmanız gerekecek, ancak potansiyel olarak başlayabileceğiniz bir profilim var

http://bodhizazen.com/aa-profiles/bodhizazen/ubuntu-10.04/usr.local.bin.jailbash


You can not confine them to /home as they need access to the system binaries and bash and configuration files in /etcİhtiyacınız olduğunu düşündüğünüz dosyaları birbirine bağlamanıza / kopyalamanıza engel olacak hiçbir şey yoktur.
user606723

1
Evet, kullanıcı606723'ün önerdiği gibi "yapabilirsiniz", ancak o kadar kolay değildir ve tüm olası çözümlerin IMO'su en az pratik veya kolaydır. Bir chroot yapabilir ya da lxc kullanabilirsiniz. Bir ikili kopyalayın, sonra libleri. Çoğunlukla kütüphaneleri manuel olarak ldd ile tanımlamanız gerekir. Bu yöntem ayarlamak için bir ton iş gerektirir. Daha sonra hapishaneyi güncel tutmalısınız, ikili dosyaları / kütüphaneleri manuel olarak güncellemeniz (kopyalamanız) gerekir. Bağlantılar güncellemeler açısından daha iyi çalışabilir, ancak yine de hepsini ayarlamanız gerekir. Her nasılsa OP'nin aklında olan şeyin bu olduğunu sanmıyorum. O zaman onları kapalı tutmak için nasıl?
Panter

1
Sanırım sorunun asıl amacı, bu süreci otomatikleştiren araçları ... jailkitOP'nin bahsettiği bir araç gibi göstermekti .
user606723

@ bodhi.zazen. Bunun hakkında ne düşünüyorsunuz .. debootstrap (oneiric) sonra lxc kullanarak bir kap yapın. hapishane kitini kullanmak şu ana kadar yaptığım en az bir kere borçlu
biri

Bu görev için LXC'yi kullanabilirsiniz, izolasyonun bazen LXC ile eksik olduğuna dikkat edin. Kullanıcılar kapta kök erişimi olmadıkça, Tamam olmanız gerekir ve LXC posta listesine abone olmak isteyebilirsiniz.
Panter

1

Hangi amacı başarmak istediğinizi tahmin etmek zor. FTP üzerinden hapsedilmiş erişim sağlarken ssh / sftp'yi inkar etmek istiyorsanız ... kolay:

/ Etc / shells'e yeni bir kabuk ekle:

sudo -e /etc/shells

Bir satır ekle:

/bin/false

Kayıt etmek. Ssh / sftp'yi reddetmek istediğiniz her kullanıcı için, kullanıcının kabuğunu değiştirin:

sudo chsh -s /bin/false userx

Şimdi userx ssh / sftp ile giriş yapamaz.

Vsftpd'yi kurun:

sudo apt-get install vsftpd

Config dosyasını düzenleyin:

sudo -e /etc/vsftpd.conf

Ve bazı değişiklikler ....

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES

Kayıt etmek. Vsftpd'yi yeniden başlat:

sudo /etc/init.d/vsftpd restart

iyi s onları ssh + sftp (filezilla ile bağlayın) vermek istiyorum
Bir Sıfır

0

rbashKullanıcılarınız için bir kabuk olarak kontrol edebilirsiniz.

man bash

RESTRICTED SHELLBölüm için ara

Veya bu sayfaya bakınız http://linux.die.net/man/1/bash


3
Sadece rbash konusunda çok dikkatli olun, kırılması ve modası geçmiş sayılması çok kolaydır. Bkz blog.bodhizazen.net/linux/how-to-restrict-access-with-rbash
Panther

@ bodhi.zazen Yani rbash?
Karlson

evet, üzgünüm bunu düzelttim. Birkaç yıl önce, birinin kurduğum bir hapishane hapishanesinden kırdığı bir blog vardı. Onları 5 dakikadan az sürdü. Kimse hapishaneden ayrılmadı.
Panter

nasıl yapılandırabilirim bana söyleyebilir misiniz .... jailbash
One Zero

evet, adam bash yardımcı olur, bash sınırlı kabuk yeteneklerini kullanmak daha basit
c4f4t0r
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.