====== Serwer SFTP ======
===== Jak uruchomić serwer SFTP ? =====
Na ogół nic nie trzeba robić, gdyż jeśli jest uruchomiony serwer SSH, to uruchomiony jest też serwer SFTP. Możesz się o tym przekonać łącząc się z hostem po protokole SFTP za pomocą programu WinSCP i podając ten sam login i hasło co łącząc się z serwerem SSH, np. w Putty.
===== Chrooting =====
Teraz zajmiemy się kwestią jak zabezpieczyć konto SFTP, gdy chcemy je udostępnić innym osobom do wymiany plików. Na potrzeby niniejszej dokumentacji zakładamy, że jest już utworzony użytkownik z własnym katalogiem domowym.
**Po pierwsze ograniczamy mu dostęp tylko do katalogu domowego.**
''/etc/ssh/sshd_config''
Subsystem sftp internal-sftp # Wykomentowujemy istniejący Subsystem
Match User [użytkownik]
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
Dodatkowo katalog użytkownika musi być własnością roota. Może to trochę nieintuicyjne, ale inaczej nie zadziała.
chown root /home/[użytkownik]
chmod og-w /home/[użytkownik]
Użytkownik ''root'' musi być właścicielem katalogu nawet, jeżeli jest to katalog domowy użytkownika. Ponadto uprawnienia nie mogą być szersze niż 755. W innym przypadku serwer w ogóle nie pozwoli się zalogować. Dlatego zaleca się utworzenie podkatalogu, którego użytkownik będzie właścicielem, np. ''ftp'' z pełnymi uprawnieniami dla użytkownika.
**Po drugie zabraniamy korzystania z konsoli.**
usermod --shell /bin/false [użytkownik]
service ssh restart
I to wszystko, żadnych dodatkowych instalacji, czy konfiguracji. Artykuł oparty na [[https://programowo.net/2014/07/zamykanie-uzytkownikow-sftp-w-ich-katalogach-domowych-czyli-chroot-dla-sftp,120.html|Programowo]].
===== Tematy pokrewne =====
**Program ''rssh'' (restricted shell)**
apt-get install rssh
usermod --shell /usr/bin/rssh [użytkownik]
''/etc/rssh.conf''
#Użytkownik:maska plików:uprawnienia:katalog chroot (opcjonalny)
user=[użytkownik]:022:111111:/home/[użytkownik]
**Program ''vsftpd''.**
apt-get install vsftpd # Instalacja
service vsftpd restart # Restart
Plik konfiguracyjny znajduje się w ''/etc/vsftpd.conf''. Po instalacji włączamy następujące opcje:
local_enable=YES
write_enable=YES
chroot_local_user=YES
#pam_service_name=vsftpd
''pam_service_name=vsftpd'' należy wykomentować, żeby zezwolić na logowanie użytkowników nie-shellowych.