Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Mam takie pytanie, czy da sie jakos skonfigurowac serwer proftpd aby sesja tls/ssl byla uruchamiania wylacznie dla wybranego uzytkownika?
Powiedzmy ze chce aby uzytkownik z pelnymi prawami uruchamial sie poprzez sesje tls/ssl a goscie mieli dostep swobodny bez tsl/ssl.
W tej chwili mam skonfigurowanego proftpd z sesja tls/ssl dla kazdego uzytkownika.
Offline
Nie, ta opcja jest tylko dostępna dla całego serwera, albo wcale.
Mozeesz ewentualnie puścić drugi serwer z opcję tylko tls na innym portach 989 - 990, i innym typem autoryzacji, dla uprzywilejowanych pacjentów.
Względnie, TSL tylko dla autoryzacji, transfer nie, w rezultacie goście nie przechodząc autoryzacji, nie włażą na kanał szyfrowany.
RTFM:
egrep 'ftps' /etc/services
Choć i tak lepsze są ssh i sftp
Offline
Co masz na myśli mówiąc że lepsze są ssh i sftp?
Edit://
Udało mi się wyczytać w dokumentacji i wykonałem niezaszyfrowaną sesję dla anonymous, a zaszyfrowaną sesję dla "zweryfikowanych" użytkowników.
Nie wiem czy to tak może wyglądać ale stworzyłem Vhosta w <IfModule mod_tls.c> dodając do tego opcję: TLSoptions AllowPerUser, a w sekcji z konfiguracją użytkownika dodałem: TLSRequired off.
Sam nie wiem czy to tak powinno wyglądać ale działa :)
Ostatnio edytowany przez sqrtek (2012-07-24 22:32:08)
Offline
Co masz na myśli mówiąc że lepsze są ssh i sftp?[/quote]
Zapewne bezpieczeństwo.
Offline
Można zamknąć temat :)
Ostatnio edytowany przez sqrtek (2012-07-24 23:55:41)
Offline
Gratuluję, zapomniałem, że w Proftpd da się ustawić kilka VIrtualhostów na jednym adresie i porcie, i każdemu zrobić inną konfigurację.
Co do ssh i sftp, dlaczego lepsze?
Spróbuj w ftp ustawić uwierzytelnienie kluczem dsa/rsa/ecdsa to pogadamy o tym, dlaczego.
I spróbuj zamknąć ftp w jednym porcie, żeby nie potrzebował portu ftp-data, i w trybie pasywnym XXX innych portów.
W ssh i realizowanym w ramach ssh protokole sftp masz tylko jeden port komunikacyjny.
I to wystarcza do: transferu plików, tunelu tcp, zdalnej powłoki, dodatkowo potrafi przeskakiwać proxy http.
Który serwer ftp takie drobiazgi potrafi?
Ostatnio edytowany przez Jacekalex (2012-07-25 00:08:36)
Offline
@jacekalex Dzięki za odpowiedź :)
Tak w ogóle to jak poprawnie skonfigurować te sFTP w proftpd?
Kierowałem się tym poradnikiem: http://www.ehow.com/how_12096427_configure-proftpd-sftp.html
Ale czy do sFTP trzeba najpierw skonfigurować SSL/TSL? Czy to jest "uzależnione" od Siebie do poprawnego funkcjonowania?
Ostatnio edytowany przez sqrtek (2012-07-26 00:14:06)
Offline
Proftpd i sftp, to ciężkie nieporozumienie, choć podobno działa.
Proftpd miał częste wpadki bezpieczeństwa, wlącznie z trojanem trojanem zaszytym w jednej z wersji.
Jeśli koniecznie chcesz stawiać sftp, to ja stawialbym to na sewerze ssh, wtedy masz bezproblemową autoryzację kluczmi kryptograficznymi, i znacznie większe bezpieczeństwo, w dodatku wszystkie dziuy w ssh są w Debianie łatane blyskawicznie, poważne luki nawet w ciagu jednego/dwóch dni.
osobiście nigdy sftp w proftpd nie kondigurowalem, lepiej wziąlbym pure-ftpd w trybie TSL only.
Konfguracja pure jest banalnie prosta, a jest to najbezpieczniejszy serwer z trójki Proftpd, PureFtpd i Vsftpd.
A tu conieco o sftp w ssh:
http://www.howtoforge.com/restricting-users-to-sftp-plus-setting-up-chrooted-ssh-sftp-debian-squeeze
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2012-07-26 00:40:24)
Offline
Dzięki :) a teraz postawiłem sobie serwer ssh(openssh), i mam problem następujący.. robiłem wszystko wg. tego poradnika: http://sieciwpigulce.prv.pl/?p=63
i po skonfigurowaniu folderu chroota itd. chcąc się zalogować na serwer, dostaje komunikat: Connection Closed. Nie wiem czemu ale to przez tego chroota tak mi się wydaje jest spowodowane. Bo jeśli zaloguję się innym użytkownikiem który ma powłokę normalną Bash, to wszystko działa jak należy.
Wszystko ustawione tak jak jest wg. tego poradnika i nie działa, próbowałem reinstall i od nowa wszystko ale to samo.. Warto dodać że rssh mi działał dopóki tego chroota nie zrobiłem tym skryptem..
w /etc/passwd oraz w /home/chroot/etc/passwd zmienione na:
nazwa:x:1006:1006::/home/chroot/home/nazwa:/usr/bin/rssh
Ostatnio edytowany przez sqrtek (2012-07-26 18:04:12)
Offline
Jeśli to serwer dla Ciebie, to IMO nie ma sensu bawić się w chroot. Zablokuj logowanie jako root, wyłącz możliwość logowania hasłem (zostaw tylko wymianę kluczy), ewentualnie zmień port i będziesz miał bezpieczne i wygodne środowisko pracy.
Poza tym, jeśli user może hulać i rozrabiać po całym systemie, to masz większy problem niż konfiguracja ssh ;)
Edit:
jak już ogarnisz sam serwer, to polecam przeczytać jeszcze to:
http://jakilinux.org/uncategorized/sztuczki-z-ssh/
http://jakilinux.org/aplikacje/sztuczki-z-ssh-2-tunele/
np pozwala to korzystać z całego Internetu z sieci korporacyjnej. To najprzydatniejsza dla mnie funkcja ssh ;)
Ostatnio edytowany przez RadekD (2012-07-26 18:52:52)
Offline
Tenporadknik jest niewiele wart moim zdaniem.
Ja ostatnio w ssh załatwiam to następującym wpisem w sshd_config:
Match group sftpgroup ChrootDirectory %h GatewayPorts no X11Forwarding no ForceCommand internal-sftp AllowTcpForwarding no PermitTunnel no
I działa.
Co prawda mialem kłopot z ssh, który nie chcial wpuszczać userów, ale wystarczyło zahashować jedną funkcję w żródłach - plik sessions.c (w przyszłosci zamierzam ją poprawić, ale na razie mam ważniejsze sprawy na głowie), przekompilować ssh, i chodzi.
Ale to chyba raczej błąd w Gentowym ssh.
Rezultat dla biedaczka dodanego do sftpgroup wyglada tak:
ssh pies@localhost This service allows sftp connections only. Connection to localhost closed.
sftp pies@localhost Connected to localhost. sftp> cd /etc/ Couldn't canonicalise: No such file or directory sftp> ls /usr/bin/sudo Couldn't stat remote file: No such file or directory Can't ls: "/usr/bin/sudo" not found sftp>
:DDD
Pozdrawiam
;-)
Ostatnio edytowany przez Jacekalex (2012-07-26 19:06:56)
Offline
@RadekD
Dzięki za linki, dodałem sobie je do zakładek, i w najbliższym czasie przeczytam.
@Jacekalex
Hmm usunąłem tego rssh całkowicie, i skonfigurowałem sshd_config tak jak dałeś, wyskakiwał mi błąd przy dodanym " PermitTunnel no " więc też usunąłem.
Natchomiast jak reszte zostawiłem to wyskakuje błąd:
Write failed: Broken pipe Couldn't read packet: Connection reset by peer
oczywiśćie ten błąd jest przy logowaniu. Zmieniłem uprawnienia do folderu głównego użytkownika, aby był właścicielem, ale to nie pomaga.
Ostatnio edytowany przez sqrtek (2012-07-26 20:12:42)
Offline
A co w logach na ten temat? jakieś komunikaty?
Poza tym żeby wejsć przez ssh do chroota - w tym chroocie musi być aktywna powłoka.
Można ją zrobić jakimś skryptem albo najwygodniej jailkitem, bylo o tym na forum.
Sznurek: http://forum.dug.net.pl/viewtopic.php?pid=169782
Offline
Jul 26 20:23:15 x sshd[2719]: fatal: bad ownership or modes for chroot directory "/home/guest" Jul 26 20:23:15 x sshd[2713]: pam_unix(sshd:session): session closed for user guest
Offline
To samo, co u mnie.
Czyli to jednak chyba nie jest bląd, albo nie tylko Gentowy błąd.
/*if (st.st_uid != 0 || (st.st_mode & 022) != 0) fatal("bad ownership or modes for chroot " "directory %s\"%s\"", cp == NULL ? "" : "component ", component); */
Wyhashowałem tą funkcję, źródla ssh, plik session.c linie (u mnie ) 1452 - 1455.
Teoretycznie można by wywalić [b]st.st_uid != 0 ||[/b] - ale ja wolałbym, zeby sprawdzał, czy pacjent jest właścicielem folderu, do którego wlaźi, albo wypad.
Także troche to potrwa.
;)
Bez żadej kompilacji i tej zmiany można się chrootować do foderu, którego wlaścicielem jest root, czyli np do /home, i tylko root może w nim zapisać cokolwiek.
Ale można folder usera zrobić w w /home/foder/user, chrootować do /home/folder i będzie wilk syty i owca cała.
Ostatnio edytowany przez Jacekalex (2012-07-26 20:44:38)
Offline
Sorki za moją niewiedzę ale gdzie jest ten plik session.c?
Offline
Całkowicie spieprzyłem sprawę.. wkurzyłem się i chciałem od nowa zainstalować openssh-server, więc dałem apt-get remove openssh-server.. ale do tego usunąłem cały folder ssh w etc.. i teraz to próbowałem dpkg-reconfigure debconf, ale sam już nie wiem co zrobić po czymś takim.. :/
logi z terminala:
Konfigurowanie openssh-server (1:5.5p1-6+squeeze2) ... /var/lib/dpkg/info/openssh-server.postinst: 453: cannot create /etc/ssh/sshd_config: Directory nonexistent dpkg: błąd przetwarzania openssh-server (--configure): podproces zainstalowany skrypt post-installation zwrócił kod błędu 2 configured to not write apport reports Wystąpiły błędy podczas przetwarzania: openssh-server E: Sub-process /usr/bin/dpkg returned an error code (1) root@s3ba-host:/home/d3s# dpkg-reconfigure debconf root@s3ba-host:/home/d3s# apt-get install openssh-server Czytanie list pakietów... Gotowe Budowanie drzewa zależności Odczyt informacji o stanie... Gotowe openssh-server jest już w najnowszej wersji. 0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych. 1 nie w pełni zainstalowanych lub usuniętych. Po tej operacji zostanie dodatkowo użyte 0 B miejsca na dysku. Kontynuować [T/n]? T Konfigurowanie openssh-server (1:5.5p1-6+squeeze2) ... /var/lib/dpkg/info/openssh-server.postinst: 453: cannot create /etc/ssh/sshd_config: Directory nonexistent dpkg: błąd przetwarzania openssh-server (--configure): podproces zainstalowany skrypt post-installation zwrócił kod błędu 2 configured to not write apport reports Wystąpiły błędy podczas przetwarzania: openssh-server E: Sub-process /usr/bin/dpkg returned an error code (1)
Nie sądziłem że tak namieszam se z tym ssh.. Pierwszy raz mi się takie coś zdarzyło..
Ostatnio edytowany przez sqrtek (2012-07-26 21:12:06)
Offline
mkdir /etc/ssh
[b]EDIT:[/b] W sumie możesz usunąć pakiety ssh, a potem zainstalować jeszcze raz… Sam katalog /etc/ssh akurat tworzony jest przez openssh-client. Tak na przyszłość używaj opcji [tt]--purge[/tt], służy do usuwania konfigów z /etc właśnie. Zanim usuniesz coś z /etc z palca, sprawdź do jakiego pakietu należy.
Offline
I pomyśleć że przez taką komendę komunikat praktycznie na całą stronę wyskoczył.. że też sam nie mógł mi tego mkdir /etc/ssh wykonać :D ale faktycznie komenda pomogła. Teraz zabieram się dalej do roboty.
Offline
sessions.h - źródła openssh przed kompilacją, w Debianie na oczy ich nie zobaczysz, poza tym chyba nie ma takiej potrzeby.
Przykład bez majstrowania w źródłach:
groupadd -g 1005 bydle mkdir -p /home/bydle useradd bydle -u 1005 -g 1005 -m -d /home/bydle/bydle -s /bin/false
ls -ld /home /home/bydle /home/bydle/bydle drwxr-xr-x 44 root root 4096 07-26 22:19 /home drwxr-x--- 3 root root 4096 07-26 22:19 /home/bydle drwxr-xr-x 3 bydle bydle 4096 07-26 22:19 /home/bydle/bydle
I chrootnąć przez konfig ssh (sftp) możesz do folderu /home/bydle, wszystko powinno ruszyć bez kombinacji w źródlach ssh.
A jak chcesz udostęp[nić powlokę, to jailkitem dodaj w /home/bydle basha i te polecenia, które chcesz mieć w chroocie.
W konfigu ssh
ChrootDirectory /home/%u
Powinno ruszyć.
Ostatnio edytowany przez Jacekalex (2012-07-26 22:34:48)
Offline
Oczywiście, że nie mógł. Ten pakiet ma w zależnościach inny pakiet, który tworzy katalog. W momencie instalowania pakietu katalog ma już istnieć, zapewniają to zależności. Usuwając katalog usunąłeś fragment innego pakietu… Powinieneś go teraz przeinstalować, kilku plików pewnie brakuje.
Offline
@ArnVaker Dla pewnośći przeinstalowałem :)
@jacekalex dokładnie wszystko zrobiłem tam jak pisałeś, zrobiłem te konto bydle itd. A znowu Connection Closed :(
Nie wiem pokazać ten sshd_config lub jakieś logi bo ja już sam nie wiem?
Ostatnio edytowany przez sqrtek (2012-07-26 22:45:23)
Offline
Hmm Dzisiaj rano właczyłem serwer i kompa lokalnego i normalnie udało mi się połączyć na konto bydle !.
Tylko że.. teraz wyskakuje taki komunikat:
remote readdir("/"): Permission denied sftp>
Coś z prawami dostępu nie tak czy co?
Edit://
Naprawione ! Działa.. po prostu pierwszy folder bydle, miał uprawnienia 750, a ustawiając na 755 wszystko ruszyło. !
Ostatnio edytowany przez sqrtek (2012-07-27 11:30:51)
Offline
Czyli chroot na sftp gotowy, tak? ;)
To teraz moezssz powalczyć z shellem w chroocie, o ile jest potrzebny, sam się chętnie dowiem, jak to najlepiej zrobić, bo u mnie coś nie chce zaskoczyć na razie, a dawno nie bawiłem się ssh w takim kontekście.
Tu masz staszą wersję z pam_chroot - wiki Debiana:
http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html
Tu przepis na Squeeze (nowszy):
http://www.howtoforge.com/restricting-users-to-sftp-plus-setting-up-chrooted-ssh-sftp-debian-squeeze
Tylko ostrożnie, to są rózne drogi dojsścia do podobnego celu, takze łatwo się wnich zakręcić jak słoik z konfiturami :D
Ostatnio edytowany przez Jacekalex (2012-07-27 12:04:04)
Offline
Można powiedzieć że gotowy :). Ale to z tym już zacznę zabawę od Poniedziałku bo teraz niestety cały weekend mnie nie będzie.
Zobaczymy co teraz mi z tym shellem w Chroocie powychodzi..
Offline
Time (s) | Query |
---|---|
0.00013 | SET CHARSET latin2 |
0.00008 | SET NAMES latin2 |
0.00180 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.22.42.189' WHERE u.id=1 |
0.00087 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.22.42.189', 1732314447) |
0.00077 | SELECT * FROM punbb_online WHERE logged<1732314147 |
0.00045 | SELECT topic_id FROM punbb_posts WHERE id=207403 |
0.00029 | SELECT id FROM punbb_posts WHERE topic_id=21672 ORDER BY posted |
0.00040 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=21672 AND t.moved_to IS NULL |
0.00036 | SELECT search_for, replace_with FROM punbb_censoring |
0.00229 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=21672 ORDER BY p.id LIMIT 0,25 |
0.00104 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=21672 |
Total query time: 0.00848 s |