SFTP (Secure File Transfer Protocol) ir failu pārsūtīšanas protokols, kas nodrošina failu pārsūtīšanu, pārvaldību un piekļuvi. SFTP izmanto SSH (Secure Shell) kanālu, lai nodrošinātu augstu drošības līmeni. SFTP izmanto vienu portu (pēc noklusējuma 22/tcp). OpenSSH instalācija uzstāda arī SFTP serveri. Ir nepieciešama SFTP klienta programma, lai izveido savienojumu ar SFTP serveri.
SFTP servera noklusētā konfigurācija.
Lietotājs ar SFTP klienta programmu var pieslēgties pie servera un piekļūt visiem failiem, kuriem viņam ir atļauja. Tā pat lietotājs var pieslēgties pie servera ar SSH. Lietotāja shell ir jābūt “/bin/bash” vai līdzīgs.
Lietotājs ar SFTP piekļuvi un aizliegtu SSH.
Komandas izpilda kā root lietotājs vai izmantojot “sudo”.
1. Lietotāja shell maiņa uz “/usr/sbin/nologin”.
usermod -s /usr/sbin/nologin <username>
2. SFTP apakšsistēmas maiņa no “sftp-server” uz “internal-sftp” konfigurācijas failā “/etc/ssh/sshd_config”.
sed -i.bak \
'/\/usr\/lib\/openssh\/sftp-server/s/.*/#&\nSubsystem sftp internal-sftp/' \
/etc/ssh/sshd_config

3. Servisa atkārtota ielāde.
systemctl reload ssh
Lietotājam ir piekļuve visiem failiem, kuriem viņam ir atļauja.
Lietotājs ar SFTP piekļuvi un ierobežošana mājas direktorijā (chroot).
Komandas izpilda kā root lietotājs vai izmantojot “sudo”.
1. Lietotāja shell maiņa uz “/usr/sbin/nologin”.
usermod -s /usr/sbin/nologin <username>
2. Jaunas grupas “sftponly” izveidošana.
SFTP konfigurācija darbosies tiem lietotājiem, kuri būs šajā grupā. Ja grupas nosaukums ir cits, tad to ņemt vērā turpmākajās komandās un konfigurācijās.
Grupas izveidošana.
addgroup sftponly
Lietotāja pievienošana grupā.
adduser <username> sftponly
3. SFTP apakšsistēmas maiņa no “sftp-server” uz “internal-sftp” konfigurācijas failā “/etc/ssh/sshd_config”.
sed -i.bak \
'/\/usr\/lib\/openssh\/sftp-server/s/.*/#&\nSubsystem sftp internal-sftp/' \
/etc/ssh/sshd_config

4. SFTP papildus konfigurācijas pievienošana failā “/etc/ssh/sshd_config”. Pievieno faila beigās.
sed -i.bak -e '$a\
\
# Rules for sftponly group.\
Match group sftponly\
ChrootDirectory %h\
X11Forwarding no\
AllowTcpForwarding no\
ForceCommand internal-sftp' \
/etc/ssh/sshd_config

Vairāk par SFTP konfigurācijas parametriem.
man sshd_config
5. Servisa atkārtota ielāde.
systemctl reload ssh
6. Lietotāja mājas direktorijas atļaujas.
Priekš chroot ir jāuzstāda speciālas atļaujas lietotāja mājas direktorijai. Lietotājs nevar būt mājas direktorijas īpašnieks un jābūt tikai lasīšanas atļaujai. Mājas direktorijas īpašnieks ir root lietotājs. Savukārt mājas direktorijā izveidotiem failiem un apakšdirektorijam lietotājs var būt īpašnieks un rakstīšanas atļauja.
Atļauju maiņa.
chown root:<user group> <path to user home dir>
chmod 750 <path to user home dir>
Piemēram:
chown root:demo /home/demo
chmod 750 /home/demo
Administrators izveido apakšdirektoriju, kur lietotājam saglabāt failus.
Piemēram:
mkdir /home/demo/filedir
chown demo:demo /home/demo/filedir
chmod 755 /home/demo/filedir
Problēmu gadījumā skatīt žurnālfailu “/var/log/auth.log”.
Rakstā sniegtā informācija tiek sniegta “tāda, kāda tā ir” (“as is”) bez jebkādas garantijas.
