Android

Sftp chroot hapis nasıl kurulur

CentOS 7 - Setup SFTP with Chroot jail

CentOS 7 - Setup SFTP with Chroot jail

İçindekiler:

Anonim

Bu derste, kullanıcıları ev dizinleriyle sınırlandıracak bir SFTP Chroot Jail ortamının nasıl kurulacağını açıklayacağız. Kullanıcıların yalnızca SFTP erişimi olacak, SSH erişimi devre dışı bırakılacak. Bu talimatlar Ubuntu, CentOS, Debian ve Fedora dahil olmak üzere herhangi bir modern Linux dağıtımı için çalışmalıdır.

SFTP Grubu Oluşturma

OpenSSH sunucusunu her kullanıcı için ayrı ayrı yapılandırmak yerine yeni bir grup oluşturacağız ve tüm köklü kullanıcılarımızı bu gruba ekleyeceğiz.

sftponly kullanıcı grubunu oluşturmak için aşağıdaki groupadd komutunu çalıştırın:

sudo groupadd sftponly Grubu istediğiniz gibi adlandırabilirsiniz.

SFTP Grubuna Kullanıcı Ekleme

Bir sonraki adım, kısıtlamak istediğiniz kullanıcıları sftponly grubuna sftponly .

Bu yeni bir kurulumsa ve kullanıcı mevcut değilse şunu yazarak yeni bir kullanıcı hesabı oluşturabilirsiniz:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • -g sftponly seçeneği kullanıcıyı sftponly grubuna ekler. -s /bin/false seçeneği kullanıcının oturum açma kabuğunu ayarlar. Oturum açma kabuğunu /bin/false ayarlayarak, kullanıcı sunucuya SSH üzerinden oturum açamaz. -m -d /home/username seçenekleri bize kullanıcı ana dizinini oluşturmasını söyler.

Yeni oluşturulan kullanıcı için güçlü bir şifre belirleyin:

sudo passwd username

Aksi takdirde, kısıtlamak istediğiniz kullanıcı zaten varsa, kullanıcıyı sftponly grubuna ekleyin ve kullanıcının kabuğunu değiştirin:

sudo usermod -G sftponly -s /bin/false username2

Kullanıcı giriş dizini root'a ait olmalı ve 755 izinleri olmalıdır:

sudo chown root: /home/username sudo chmod 755 /home/username

Kullanıcılar ana dizinleri kök kullanıcıya ait olduğundan, bu kullanıcılar ana dizinlerinde dosya ve dizin oluşturamazlar. Kullanıcının evinde hiç dizin yoksa, kullanıcının tam erişime sahip olacağı yeni dizinler oluşturmanız gerekir. Örneğin, aşağıdaki dizinleri oluşturabilirsiniz:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

Bir web uygulaması kullanıcının public_html dizinini belge kökü olarak kullanıyorsa, bu değişiklikler izin sorunlarına yol açabilir. Örneğin, WordPress çalıştırıyorsanız, dosyalara sahip olan kullanıcı olarak çalışacak bir PHP havuzu oluşturmanız ve web sftponly grubuna eklemeniz gerekir.

SSH'yi Yapılandırma

SFTP, SSH'nin bir alt sistemidir ve tüm SSH kimlik doğrulama mekanizmalarını destekler.

Metin düzenleyicinizle /etc/ssh/sshd_config SSH yapılandırma dosyasını açın:

sudo nano /etc/ssh/sshd_config

Subsystem sftp ile başlayan satırı, genellikle dosyanın sonunda arayın. Satır bir karma # ile başlıyorsa, karma # kaldırın ve aşağıdaki gibi görünecek şekilde değiştirin:

/ Etc / SSH / sshd_config

Subsystem sftp internal-sftp

Dosyanın sonuna doğru aşağıdaki ayar bloğu:

/ Etc / SSH / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

ChrootDirectory yönergesi, chroot dizininin yolunu belirtir. %h , kullanıcı giriş dizini anlamına gelir. Bu dizinin sahibi kök kullanıcı olmalıdır ve başka bir kullanıcı veya grup tarafından yazılamaz.

SSH yapılandırma dosyasını değiştirirken çok dikkatli olun. Yanlış yapılandırma SSH hizmetinin başlamamasına neden olabilir.

İşiniz bittiğinde dosyayı kaydedin ve değişiklikleri uygulamak için SSH hizmetini yeniden başlatın:

sudo systemctl restart ssh

CentOS ve Fedora'da ssh hizmeti sshd olarak adlandırılır:

sudo systemctl restart sshd

Yapılandırmayı Test Etme

SFTP krootunu yapılandırdığınıza göre, artık köklü kullanıcının kimlik bilgilerini kullanarak SFTP üzerinden uzak makinede oturum açmayı deneyebilirsiniz. Çoğu durumda, FileZilla gibi bir masaüstü SFTP istemcisi kullanırsınız, ancak bu örnekte sftp komutunu kullanacağız.

Sftp komutunu ve ardından uzak sunucu kullanıcı adını ve sunucu IP adresini veya etki alanı adını kullanarak bir SFTP bağlantısı açın:

sftp [email protected]

Kullanıcı şifresini girmeniz istenir. Bağlandıktan sonra, uzak sunucu bir onay mesajı ve sftp> istemi görüntüler:

[email protected]'s password: sftp>

Aşağıda gösterildiği gibi pwd komutunu çalıştırın ve her şey beklendiği gibi çalışıyorsa komut / döndürmelidir.

sftp> pwd Remote working directory: /

Ayrıca, ls komutunu kullanarak uzak dosyaları ve dizinleri de listeleyebilirsiniz ve daha önce oluşturduğumuz dizinleri görmelisiniz:

sftp> ls public_html uploads

Sonuç

Bu öğreticide, Linux sunucunuzda bir SFTP Chroot Jail ortamının nasıl kurulacağını ve kullanıcıların ana dizinlerine erişiminin nasıl kısıtlanacağını öğrendiniz.

Varsayılan olarak, SSH 22 numaralı bağlantı noktasını dinler. Varsayılan SSH bağlantı noktasını değiştirmek, otomatik saldırı riskini azaltarak sunucunuza fazladan bir güvenlik katmanı ekler. Ayrıca bir SSH anahtar tabanlı kimlik doğrulaması ayarlamak ve parola girmeden sunucuya bağlanmak isteyebilirsiniz.

ssh sftp güvenliği