Mam wersję CentOs 6.4 z Digital Ocean i chciałbym z powodzeniem tworzyć użytkowników SFTP i uwięzić ich w katalogu domowym użytkownika chroot, ale obawiam się, że robię z tego bałagan.
Próbowałem wielu rzeczy, o wiele za dużo, aby je tutaj wymienić, ponieważ większość z nich jest prawdopodobnie nieprawidłowa lub nie ma większego sensu, ale uważam, że powinien to być prawidłowy proces i próbowałem: -
Utwórz grupę dla sftp
: -
groupadd sftp
Utwórz użytkownika i ustaw jego katalog domowy: -
useradd -d /var/www/vhosts/domain.com dummyuser
Ustaw hasło dla użytkownika: -
passwd dummyuser
Zmień grupę użytkowników na „sftp”: -
usermod -g sftp dummyuser
Ustaw powłokę użytkownika na /bin/false
: -
usermod -s /bin/false dummyuser
Edytuj podsystem w sshd_config
( /etc/ssh/
): -
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Dodaj następujący tekst na dole sshd_config
pliku: -
Match group sftp
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
Upewniam się, że wszystkie następujące katalogi to root:root
: -
/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com
Jeśli następnie spróbuję zalogować się na serwerze za pomocą SFTP z użytkownikiem dummyuser
(w WinSCP), otrzymam następujące informacje:
Authentication log (see session log for details):
Using username "dummyuser".
Authentication failed.
Wszystko, co chcę osiągnąć, to więzienie użytkownika w jego katalogu domowym. Mam również skonfigurowane i skonfigurowane vsftpd. Użytkownicy mogliby się zalogować, ale mieliby dostęp do całego serwera - po prostu nie udało mi się w ogóle uruchomić więzienia.
Edytować
Zapomniałem wspomnieć, a następnie ponownie uruchomiłem sshd
również:
service sshd restart
Kiedy błąd pojawia się w WinSCP, ich strona pomocy na ten temat jest tutaj .
Wyniki dziennika
/var/log/secure
Rzeczywistą nazwę serwera zastąpiłem server_name
.
Apr 28 14:20:56 server_name sshd[9944]: Accepted password for dummyuser from 80.194.255.4 port 44402 ssh2
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session opened for user dummyuser by (uid=0)
Apr 28 14:20:56 server_name sshd[9946]: fatal: bad ownership or modes for chroot directory component "/var/www/vhosts/"
Apr 28 14:20:56 server_name sshd[9944]: pam_unix(sshd:session): session closed for user dummyuser
sshd
? Co znajduje się w plikach dziennika na serwerze?/var/log/secure
.vhosts
jestroot:root
.Odpowiedzi:
To powszechna pułapka:
wszystkie foldery do domu chroot muszą być własnością i mogą być zapisywane tylko przez
root
użytkownika.Folderów nie można zapisywać w grupie - nawet jeśli grupa jest
root
.źródło
namei -l /var/www/vhosts
Znalazłem i pomyślnie skonfigurowałem sftp na CentOS 6.5: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/
Edytuj konfigurację sshd:
vim / etc / ssh / sshd_config
Wyjdź i zapisz.
Następnie:
W przypadku nowego użytkownika o nazwie „testuser” (członek grupy tylko dla sftp z GID 500):
(używam pustego pliku / etc / skel2, więc domyślnie nie kopiuje się pliku .bashrc itp.)
Dlatego w tym przykładzie zapewniłem bezpieczny dostęp do zewnętrznych firm konsultingowych, które zarządzają stronami internetowymi. Po utworzeniu tego wszystkiego możesz:
Można to wszystko dostroić w razie potrzeby.
Mam nadzieję, że to pomogło!
Guy Boisvert IngTegration inc. http://www.ingtegration.com
źródło
service sshd restart