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/.
Witam,
Od paru dni próbuje aktywować JAILA w vsftpd na najnowszym świeżym Debianie 7.6 wheezy.
Niestety za cholerę nie mogę uwięzić użytkowników..
Konfiguracja wygląda następująco:
# MAIN anonymous_enable=NO check_shell=NO chmod_enable=YES connect_from_port_20=YES dirmessage_enable=YES idle_session_timeout=3600 listen_address=IP_ADDR listen=YES local_enable=YES local_umask=027 user_sub_token=$USER local_root=/var/www/$USER.pl/ file_open_mode=0640 write_enable=YES pasv_enable=YES pasv_min_port=50000 pasv_max_port=50200 pasv_address=IP_ADDR # SECURITY: chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot # tutaj lokalni userzy ktorzy nie moga sie logowac passwd_chroot_enable=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd # SSL ssl_enable=YES force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO ssl_ciphers=HIGH require_ssl_reuse=NO rsa_cert_file=/etc/ssl/private/vsftpd.pem # LOGING log_ftp_protocol=NO syslog_enable=NO xferlog_enable=YES xferlog_std_format=YES dual_log_enable=YES vsftpd_log_file=/var/log/vsftpd.log
No i wszystko fajnie, ftp działa, TLS tez, userzy tez.. Ale cały czas mogą wyjść ze swojego katalogu..
Dodam, ze selinux jest jeszcze nie zainstalowany. Apparmor również. Manuala już chyba na pamięć znam..
Będę bardzo zobowiązany za wypowiedzi i jakiekolwiek rozsądne :)
Offline
za: man vsftpd.conf
chroot_list_enable
If activated, you may provide a list of local users
who are placed in a chroot() jail in their home
directory upon login. [b]The meaning is slightly dif_
ferent if chroot_local_user is set to YES. In this
case, the list becomes a list of users which are
NOT to be placed in a chroot() jail.[/b] By default,
the file containing this list is
/etc/vsftpd.chroot_list, but you may override this
with the chroot_list_file setting.[/quote]
*wink wink*
BTW: Przed SELinuxem polecam wdrożenie grseca :)Ostatnio edytowany przez enether (2014-10-14 00:10:58)
Offline
Tak jak pisałem w komentarzu:
chroot_local_user=YES # chrootuj lokalnych userow chroot_list_enable=YES # aktywuje liste lokalnych userow ktorzy nie moga sie logowac chroot_list_file=/etc/vsftpd.chroot # tutaj lokalni userzy ktorzy nie moga sie logowac
Wiec wsio wyglada dobrze..
Offline
[quote=Grzeslaw]Witam,
Od paru dni próbuje aktywować JAILA w vsftpd na najnowszym świeżym Debianie 7.6 wheezy.
Niestety za cholerę nie mogę uwięzić użytkowników..
[...]
# SECURITY: chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot # tutaj lokalni userzy ktorzy nie moga sie logowac
No i wszystko fajnie, ftp działa, TLS tez, userzy tez.. Ale cały czas mogą wyjść ze swojego katalogu..[/quote]
Powiedz nam czy użytkownicy na których testujesz znajdują się w pliku vstfpd.chroot
W aktualnej konfiguracji wygląda to raczej tak, że logować się może każdy użytkownik i każdy z nich zostanie zchrootowany ZA WYJĄTKIEM tych wymienionych w vsftpd.chroot.
Ponieważ jak podaje wklejony przeze mnie fragment man'a w sytuacji w której aktywujesz chroot_list_enable ORAZ chroot_local_users plik vsftpd.chroot definiuje listę userów którzy restrykcjami chroota objęci nie będą.
Offline
Może być Pure-ftpd?
IMHO jest 57 razy łatwiejszy w konfiguracji.
http://www.howtoforge.com/pureftpd_mysql_virtual_hosting
http://www.howtoforge.com/virtual-hosting-with-pureftpd-mysql-on-ubuntu-8.10
Jak ostatnio robiłem taki na Debianie, to był gotowy w 3 minuty.
I oczywiście skanowanie lub inne akcje z pakowanymi na serwer plikami:
http://www.howtoforge.com/how-to-integrate-clamav-into-pureftpd-for-virus-scanning-on-debian-lenny
Ostatnio edytowany przez Jacekalex (2014-10-14 23:51:59)
Offline
[quote=Jacekalex]Może być Pure-ftpd?
IMHO jest 57 razy łatwiejszy w konfiguracji.[/quote]
Popieram ;) konfiguracja pure-ftpd to czysta przyjemność, do tego jest bardzo elastyczny.
Offline
I w przeciwieństwie do Proftpd i Vsftpd nie miał w ostatnich latach zaszytego backdoora:
http://www.exploit-db.com/exploits/17491/
http://www.aldeid.com/wiki/Exploits/proftpd-1.3.3c-backdoor
Dlatego też jest warty uwagi. :D
Ostatnio edytowany przez Jacekalex (2014-10-15 00:23:36)
Offline
[b]enether[/b]: Użytkownicy których testuje nie znajdują sie w pliku /etc/vsftpd.chroot.
[b]Jacekalex[/b]: Ok, być może jest lepszy, ale jak jest problem, to chce go rozwiązać, a nie znaleźć alternatywę ;)
Inna sprawa: Udało mi się schrotować użytkowników w /var/www/ poprzez ustawienie opcji: local_root=/var/www , jednakże problem jest taki, że każdy może czytać dane stron innych, co mija się z celem ;/ Każdy user jest w głównej grupie www-data, aby mógł pisać via ftp bezpośrednio kod stronki. Tak więc plik wrzucany na ftp jest ownowany przez usera, i grupa defaultowa to www-data, uprawienia są 660/770. Wczoraj spróbowałem ustawić /var/www/user_domain/ uprawnienia user:user, a pliki w środku user:www-data - i super! FTP działa pięknie w takiej konfiguracji, jednakże stronka nie działa i jest permission denied, bo główny katalog /var/www/user_domain/ nie jest w grupie www-data, a inni go czytać nie mogą ;/ Tak sobie kombinuje może jakoś od strony uprawnień do tego podejść...
Offline
Przy kilku pacjentach stronki mają trzymać w [b]$HOME/public_html/[/b] każdy u siebie a nie w /var/www.
Widzę tu problem między krzesłem a klawiaturą ;)
Rzuć okiem na to:
http://lazowski.wordpress.com/2009/07/28/konfiguracja-vsftpd-very-secure-ftp-server/
Ostatnio edytowany przez Jacekalex (2014-10-15 09:50:36)
Offline
[b]Jacekalex[/b]: To jest produkcyjny serwer www, na którym FTP pełni bardzo ważną rolę, także jest tylu użytkowników, ile stron - czyli koło 5ciu. Wszystkie strony są w /var/www/*, także konfiguracja jak najbardziej poprawna.
Co do stronki, którą wysłałeś, to nic nowego. Naprawdę przerobiłem masę opcji już i przewertowałem ostro dokumentacje. Jeśli używam nawet przykładowych configów z tej stronki, to dostaje taki msg:
Response: 500 OOPS: vsftpd: refusing to run with writable root inside chroot() Error: Critical error: Could not connect to server
Jest to issue typowy dla obecnego pakietu vsftpd w Debianie, w wersji debiana latest - stable. Tutaj jest to całkiem nieźle opisane:
https://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/
Sugestie są trzy, co zrobić:
Dmitriy January 13, 2012 at 12:51 pm you can choose one of 3 ways: 1. Define option local_root= in configuration file. must by /home or other path to directory with users folders. In this way vsftpd chrooting to /home directory. 2. Define option passwd_chroot_enable=yes in configuration file and change in /etc/passwd file user home directory from «/home/user» to «/home/./user» (w/o quotes). In this way vsftpd chrooting to /home directory. 3. Download sources of vsftpd-ext, compile and overwrite exist vsftpd binaries or take it from repositories and add to configuration file option allow_writeable_root=yes.
1. local_root - dziala calkiem fajnie, jednakze w moim przypadku uzytkownicy moga wchodzic do swoich katalogow, poniewaz kazdy jest w grupie www-data a foldery w /var/www maja prawa 0700 username:www-data.
2. Opcja druga niestety nie dziala mi nie wiem czemu, probowalem kilka razy
3. vsftpd-ext - odpada, jako ze nowa paczka vsftpd jest jeszcze w testowym debianie, wiec nie zamierzam wprowadzać testowych pakietów na produkcji.
Swoja droga taki sam watek zalorzylem na innym forum, i wciaz nie ma koncepcji:
http://www.linuxquestions.org/questions/linux-server-73/vsftpd-chroot-issue-4175521842/
Offline
Na produkcji taka papranina?
Na każdym serwerze produkcyjnym bezpieczniej dać równocześnie dwa działające serwery, z których jeden włączasz, a drugi, skonfigurowany czeka w rezerwie, jakby tamten pierwszy się zjebał.
I oba pakujesz do jednakowego systemu autoryzacji, żeby nie było problemu z przełączaniem między serwerami.
Ja bym wziął Proftpd i Pure-ftpd równocześnie w takim zastosowaniu.
W każdym razie postawienie obu z autoryzacją PAM-*SQL, to jest roboty na 15 minut, licząc dwie butelki piwa w komplecie.
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2014-10-16 17:15:07)
Offline
[quote=Grzeslaw]To jest produkcyjny serwer www, (...)Wszystkie strony są w /var/www/*, także konfiguracja jak najbardziej poprawna.[/quote]
Ośmielam się być innego zdania.
Ja tam bym zaczął od prawidłowej konfiguracji Apacza, a potem (jak już się nauczę jednego) brał się za FTP (z Pure-ftpd na czele). Ale wiesz, ja to się nie znam na tych nowomodnych wynalazkach...
Offline
Jacekalex: Na "przyszłej produkcji" - buduje jeden serwerek, i ot taki issue.. A to chyba troszkę perwersja z tymi dwoma FTP ;) Nigdy nie miałem problemów a nim coś zupdatuje, zmienie na produkcji, robie to w Dev. Anyway, wciąż nie ma żadnych konkretnych pomysłów co z tym zrobić.. (oprócz najprostszego - nie działa jedno, weź drugie) :)
BTW:(Off Topic) ethanak:
1. to gdzie wrzucę stronki to chyba moja sprawa co?
Ale z chęcią wysłucham Twojej wypowiedzi na temat, tego:
- "dlaczego" jak to mówisz "nie umiem" konfigurować apache? Wydedukowałeś to na podstawie tego gdzie wrzucam stronki, czy może tez uprawnień jakie daje?
- Co jest złego w trzymaniu stron w /var/www/ (dodam, iz jest to osobna partycja) ?
Ale aby nie robie OT, napisz mi to na priv, z chęcią przedyskutuje i wysłucham Twoich argumentów i poddam sie dyskusji :)
Offline
Time (s) | Query |
---|---|
0.00014 | SET CHARSET latin2 |
0.00007 | SET NAMES latin2 |
0.00129 | 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='18.219.15.112' WHERE u.id=1 |
0.00077 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.219.15.112', 1732235971) |
0.00062 | SELECT * FROM punbb_online WHERE logged<1732235671 |
0.00090 | SELECT topic_id FROM punbb_posts WHERE id=277561 |
0.00215 | SELECT id FROM punbb_posts WHERE topic_id=26548 ORDER BY posted |
0.00067 | 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=26548 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00130 | 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=26548 ORDER BY p.id LIMIT 0,25 |
0.00094 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26548 |
Total query time: 0.00892 s |