Mam konfigurację tylko dla użytkowników sftp:
Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
W moim pliku secure.log pojawia się następujący komunikat:
fatal: bad ownership or modes for chroot directory
Ze słowem kluczowym match są pewne zabezpieczenia ... katalogi muszą być własnością root, a katalogi chmod 755 (drwxr-xr-x). Uniemożliwia to użytkownikowi uprawnienia do zapisu do folderów, jeśli jest to zapis tylko dla użytkownika root i ustawiony na ben, który nie jest możliwy do zapisu dla grup ze względu na bezpieczeństwo ssh.
Ktoś wie o dobrej pracy?
chroot
użytkownicy ed mają swojeChrootDirectory
? Czy mogą uzyskać do niego dostęp?Odpowiedzi:
Mam takie same ustawienia na naszym serwerze. Używamy tej samej konfiguracji SSHD. Katalogi domowe użytkowników są root i wewnątrz nich znajdują się foldery
documents
ipublic_html
własnością odpowiednich użytkowników. Użytkownicy następnie logują się przy użyciu SFTP i zapisują w tych folderach (nie bezpośrednio w domu). Ponieważ SSH nie jest dla nich dozwolony, działa idealnie. Możesz dostosować, które katalogi będą tworzone dla nowych użytkowników w / etc / skel / (przynajmniej w openSUSE, nie znam się na innych dystrybucjach).Inną możliwością może być ACL ( dokumentacja openSUSE ) - może dodać uprawnienia do zapisu dla danego użytkownika dla jego katalogu domowego.
źródło
packet_write_wait: Connection to 10.0.0.42 port 22: Broken pipe
Niedawno znaleźliśmy obejście, które wygląda następująco:
/ etc / ssh / sshd_config:
uprawnienia do katalogu:
Teraz
/home
spełnia wymaganiaChrootDirectory
i nie może być wymieniony przez ograniczonych użytkowników, alesftponly
użytkownicy nie będą mogli się zalogować, jeśli ich katalogi domowe są skonfigurowane jak zwykle (/home/$LOGNAME
): w środowisku chroot ich katalogi domowe nie znajdują się w środku,/home
ale bezpośrednio pod root (/
).obejście 1
Ustaw domy użytkowników z ograniczonym dostępem do wyglądu pod chroot:
zastrzeżenie 1
Jeśli którykolwiek z nieograniczonych użytkowników lub jakiś skrypt administracyjny używa rozszerzenia tylda bash, tak jak
~username
będzie się rozwijało do/username
teraz, to nie jest to, co należy rozumieć.Również administrator tworzący
sftponly
użytkowników musi pamiętać o używaniu domu innego niż domyślny. Rozwiązany za pomocą skryptu. Z których administrator musi pamiętać.obejście 2
Jest to alternatywa dla poprzedniej, którą wykorzystaliśmy:
To jest utworzenie dowiązania symbolicznego
/home
do własnego katalogu. Teraz pod chroot/home/username
wskazuje na ten sam katalog, co bez chroot. Dla ograniczonego użytkownika zalogowanego za pomocą sftp wyglądałoby to jak/username
. Ten katalog jest zapisywalny dla jego właściciela (ograniczony użytkownik). Użytkownik z ograniczonym dostępem nie może wymienić swoich katalogów macierzystych ani domowych żadnego z rodzeństwa według nazwy.Jedyną wyjątkową cechą
sftponly
użytkownika jest jego udział wsftponly
grupie. Okazało się, że łatwiej sobie z tym poradzić niż obejście 1.zastrzeżenia 2
/home/home
/home
hierarchię i podążające za dowiązaniami symbolicznymi.źródło
Musisz stworzyć strukturę w katalogu domowym użytkownika, na przykład katalogi wejściowe i wyjściowe. Te katalogi powinny być własnością użytkownika i tam będzie mógł umieszczać i pobierać pliki.
źródło
Powinieneś utworzyć następującą strukturę katalogów:
/ home / user
/ home / user / home / user <- prawdziwy katalog, do którego użytkownik będzie miał dostęp
Opcjonalnie:
/home/user/.ssh/authorized_keys <- jeśli chcesz uwierzytelnić się za pomocą klucza publicznego
źródło
W odniesieniu do sekcji „uprawnienia do katalogu” w odpowiedzi od @artm (którą właśnie przetestowałem) .. Znalazłem:
Nie pozwala, aby połączenie sftp działało na Ubuntu, wykonując tylko uprawnienia do wszystkiego, tj. 111.
Znalazłem to:
Działa z połączeniem z sftp z uprawnieniami do odczytu i wykonywania, tj. 555. Nie jestem pewien, czy debian vs. inne smaki są różne, ale to działa na moich instalacjach Ubuntu.
źródło
Tworząc użytkownika, musisz ustawić własność za pomocą
chown
każdego katalogu dla każdego użytkownika.Na przykład:
źródło