ორგანიზაციაში ხშირად sftp სერვისებს თანამშრომლები იყენებენ ფაილების გაცვლა გამოცვლისთვის, ისე რომ შეიძლება გაგონილიც არ ქონდეთ ssh-სა და საერთოდ shell-ზე. ამიტომაც მიზანშენოწინილია ssh-ით წვდომის დახურვა, რათა გაიზარდოს უსაფრთხოების დონე.

ssh gela@XXX.XXX.XX.XX

This service allows sftp connections only.
Connection to xxx.xxx.xx.xx closed

დაახლოებით ასეთი სურათი უნდა გვქონდეს, როდესაც sftp-ს იუზერი შეეცდება ssh-ით სერვერზე შეღწევას.

ნაბიჯი 1. შექმენი იუზერი და ჯგუფი

თუ sftp-ს ეხლა აწყობთ, მაშინ შექმენით იუზერი, თუ არადა მაშინ გადადით ჯგუფის შექმნაზე

useradd -s /sbin/nologin gela

იუზერი შექმნილია, რა თქმა უნდა დავადოთ პაროლი

passwd gela

შევქმნათ ასევე ჯგუფი, დიდი შანსია, რომ sftp-ს ერთი ადამიანი არ გამოიყენებს, შესაბამისად აჯობებს ჯგუფის დონეზე დავაწესებთ შეზუღდვები. შესაბამის მომხარებლებს უბრალოდ ამ ჯგუფში გავაერთიანებთ.

groupadd sftpusers

ვამატებთ შესაბამის იუზერს ამ ჩვენ ჯგუფში დაახლოებით ასეთი ბრძანებით

usermod -aG sftpusers gela

 ნაბიჯი 2. sshd სერვისის კონფიგურაცია

გავხსნათ რედაქტირებისთვის sshd

vim /etc/ssh/sshd_config

კონფიგ ფაილში ვამატებთ ასეთ რამეს

Match group sftpusers
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

რაღა თქმა უნდა ფაილის შენახვის მერე საჭიროა ssh სერვისის რესტარტი

systemctl restart sshd

ნაბიჯი 3. მეტი უსაფრთხოება უსაფრთხოების ღმერთს

ყოველი შემთხვევისთვის შევცვალოთ ჩვენი იუზერის home დირექტორიაზე არსებული უფლებები

chown root:root /home/gela/
chmod 755 /home/gela/

გავაკეთოთ ფოლდერი უშუალოდ sftp მიზნებისთვის და მივანიჭოთ მფლობელის უფლებები შესაბამის იუზერს

mkdir /home/gela/files

chown gela:sftpusers /home/sftpuser/files/