-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathchroot-hapsinde-sftp
53 lines (33 loc) · 2.84 KB
/
chroot-hapsinde-sftp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
== Hedef ==
Bir sanal sunucuda chroot hapsinde bir kullanıcı ekleyeceğiz, ama öncesinde sistemi hazırlayacağız.
Belki de [[Ftp kurulumu]] sie yeterli olabilir. Kurulumu fiziksel makinada calisma gerektirmiyor ve kullanicilarini /etc/passwd dosyasindan almiyor.
=== Gerekli Paketlerin Yüklenmesi ===
Öncelikle scponly paketini yüklememiz gerekiyor.
sudo aptitude install scponly
=== scponly Paketinin konfigürasyonu ===
scponly paketini chroot destekleyecek şekilde konfigüre etmemiz gerekiyor.
sudo dpkg-reconfigure -plow scponly
Bu işlem "yes" diyerek onayalayabileceğimiz sadece bir soru yöneltiyor. Bu aşamadan sonra sadece scp/sftp yapabilecek ve chroot hapsine alınacak bir kullanıcı yaratmamız gerekiyor. Burada yardım alabileceğimiz bir betik var ancak bu betik sadece var olmayan yeni bir kullanıcı ekliyor. Mevcut kullanıcıları chroot hapsine almak için bu betiği kullanamıyoruz.
cd /usr/share/doc/scponly/setup_chroot
sudo gunzip setup_chroot.sh.gz
sudo chmod +x setup_chroot.sh
sudo ./setup_chroot.sh
setup_chroot.sh betiği çalıştığında bize yazılabilir olacak bir klasör oluşturmamızı isteyecek, bu klasörün adını "pub" olarak seçebiliriz. Kullanıcının ev dizinindeki diğer tüm dosyalar root.root haklarıyla yaratılacak ve güvenlik nedeniyle kullanıcının bu dosyaları değiştirme hakkı olmayacak.
Ancak eğer kullanıcının sftp yaptığı zaman bu dizine girmesini istiyorsak /etc/passwd dosyasının düzenleyip ('''sudo vipw''') klasörün adını // (çift düz slash) ile home dizin tanımının sonuna eklememiz gerekiyor.
user@host:~$ sudo vipw
KULLANICI:x:10000:10000::/home/KULLANICI'''<span style="color:#ff0000">//</span>'''pub:/usr/sbin/scponlyc
Bu betiğin yapmadığı, ancak bizim ihtiyacımız bir adım kalıyor. Ancak muhtemelen kısıtlı izinler verilmiş olan sanal sunucumuzdan bu işlemi gerçekleştirmemiz mümkün olmayacaktır. Bu nedenle fiziksel sunucuya geçip, kullanıcının home dizininde bir '''dev''' klasörü oluşturup içine '''null''' aygıtı kurmamız gerekiyor.
ssh FIZIKSELSUNUCU
cd /vserver/VSERVERADI/home/KULLANICI
sudo mkdir dev
cd dev
sudo mknod -m 666 null c 1 3
=== Son Düzenlemeler ===
setup_chroot.sh betiği maalesef parametre olarak UID ve GID girmemizi engelliyor. Muhtemelen standart parkyeri kullanıcısı eklemiyorsak bu kullanıcının UID ve GID değerlerini manuel olarak '''/etc/passwd''', '''/etc/group''' ve '''/home/KULLANICI/etc/passwd''' dosyalarında düzeltmemiz gerekebilecektir. Genel olarak bu kullanicilar icin id vermeye 10000 ile basliyoruz.
sudo vipw
sudo vigr
Bu düzenlemeleri yaptıktan sonra kullanıcının home dizinindeki '''pub''' dizininin de haklarını düzenlemeyi unutmayın.
sudo chown -R KULLANICI.KULLANICI /home/KULLANICI/pub
=== Test ===
Son olarak kurulumumuzu test edebiliz.
sftp KULLANICI@localhost