Титла: Конфигуррация на proftpd server
Публикувано от: senser в Sep 19, 2006, 23:53
Привет, имам инсталиран ftp server - "proftpd-1.3.0". Това, което искам да направя е следното: в системата има "реален" потребител с username="user & password="*****", който се логва и работи нормално в домашната си директория с ProFtpd, и искам да позволя на анонимнити логвания (без user&pass) да четат въпросната домашна директория. По този начин ако се логнеш анонимно имаш права само за четене в тази директория, а ако се логнеш с username="user & password="*****" имаш и за писане. Ето тук има описан такъв пример. При мен проблема е, че с "реалния" потребител няма проблем, но опита за свързване, като анонимен такъ завършва с Примерен код | USER anonymous
331 Anonymous login ok, send your complete email address as your password. PASS xxxx 530-Unable to set anonymous privileges. 530 Login incorrect.
|
Ето какви са правата в за съответната директория:
Примерен код | ls -la /home/ total 2 drwxr-xr-x 5 root root 128 Sep 20 01:11 . drwxr-xr-x 19 root root 472 May 31 14:42 .. -rw-r--r-- 1 root root 0 Mar 11 2005 .keep drwxr-xr-x 22 user user 1424 Sep 20 02:38 user
|
Ето и конфигурационния файл на ProFtpd:
Примерен код | ServerName "Senser ProFTPD server" ServerType standalone DefaultServer on
RequireValidShell off #AuthPAM on #AuthPAMConfig ftp RootLogin off
# Port 21 is the standard FTP port. Port 21
DebugLevel 3
UseReverseDNS off IdentLookups off
# Umask 022 is a good standard umask to prevent new dirs and files # from being group and world writable. Umask 022
# To prevent DoS attacks, set the maximum number of child processes # to 30. If you need to allow more than 30 concurrent connections # at once, simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service # (such as xinetd). MaxInstances 5
DefaultRoot ~
# Set the user and group under which the server will run. User ftp Group ftp
# Normally, we want files to be overwriteable and resumed. <Directory /> AllowOverwrite on AllowRetrieveRestart on AllowStoreRestart on </Directory>
# A basic anonymous configuration, no upload directories. <Anonymous ~user> User user Group users AnonRequirePassword off MaxClients 5 AuthAliasOnly on
# We want 'welcome.msg' displayed at login, and '.message' displayed # in each newly chdired directory. DisplayLogin welcome.msg DisplayFirstChdir .message
# We want clients to be able to login with "anonymous" as well as "ftp" UserAlias anonymous user
# Limit WRITE everywhere in the anonymous chroot <Limit WRITE> DenyAll </Limit>
<Limit READ DIRS STOR CWD CDUP> AllowAll </Limit>
</Anonymous>
|
Титла: Конфигуррация на proftpd server
Публикувано от: coldy в Sep 20, 2006, 01:27
Здравей, провери да не би да се пише:
<Anonymous ~/user> вместо <Anonymous ~user>
иии ако това не оправи нещата, покажи ни syslog или messages
Титла: Конфигуррация на proftpd server
Публикувано от: senser в Sep 20, 2006, 07:55
Цитат (coldy @ Сеп. 20 2006,01:27) | Здравей, провери да не би да се пише:
<Anonymous ~/user> вместо <Anonymous ~user>
иии ако това не оправи нещата, покажи ни syslog или messages |
за съжаление не е това проблем 
ето и съдържанието на syslog:
Примерен код | Sep 20 10:54:32 al_pacino proftpd[20747]: al_pacino (12.34.56.78[12.34.56.78]) - FTP session opened. Sep 20 10:54:32 al_pacino proftpd[20747]: al_pacino (12.34.56.78[12.34.56.78]) - mod_delay/0.5: delaying for 267 usecs Sep 20 10:54:32 al_pacino proftpd[20747]: al_pacino (12.34.56.78[12.34.56.78]) - user: Directory ~/user/ is not accessible. Sep 20 10:54:32 al_pacino proftpd[20747]: al_pacino (12.34.56.78[12.34.56.78]) - FTP session closed.
|
пропуснал съм да го покажа в пъряи си пост, но заради тези редове в сислог съм дал какви са пермишъните на диреторията "/home/user" ...... макар че като гледам май се мъчи да достъпи друга директория 
Титла: Конфигуррация на proftpd server
Публикувано от: coldy в Sep 20, 2006, 14:12
До колкото си спомням, за да chroot-неш Anonymous като потребител 'user', задаваш в /etc/passwd нещо подобно на:
user:x:107:65534::/home/user:/bin/false
след което
<Anonymous ~user> трябва да свърши работа. А това, което дадох за пример по-рано е грешно.
Титла: Конфигуррация на proftpd server
Публикувано от: Ali Nebi в Sep 20, 2006, 15:14
Ами така като гледам, май проблемът се дължи на това, че не си дал права на другите за четене, т.е. дал си за запис, четене, търсене (изпълнение) за собственика на директорията, след това си дал четене и търсене за тези от групата на собственика и за другите само търсене, я пробвай този пермишън: 755
Титла: Конфигуррация на proftpd server
Публикувано от: senser в Sep 20, 2006, 18:07
Цитат (ferrari_m @ Сеп. 20 2006,15:14) | Ами така като гледам, май проблемът се дължи на това, че не си дал права на другите за четене, т.е. дал си за запис, четене, търсене (изпълнение) за собственика на директорията, след това си дал четене и търсене за тези от групата на собственика и за другите само търсене, я пробвай този пермишън: 755 |
е така като гледам и "/home " и "/home/user" са с права за четене от всички ......
Цитат (coldy @ Сеп. 20 2006,14:12) | До колкото си спомням, за да chroot-неш Anonymous като потребител 'user', задаваш в /etc/passwd нещо подобно на:
user:x:107:65534::/home/user:/bin/false
след което
<Anonymous ~user> трябва да свърши работа. А това, което дадох за пример по-рано е грешно.
|
"user" e реален потребител в системата и не мога да му задам такива параметри в '/etc/passwd', а и честно казано не виждам как това ще помогне. Обясни моля те каква ти е идеята по-подробно да търся друг начин.
Мен лично най ме притеснява ето този ред от лога:
Примерен код | Sep 20 10:54:32 al_pacino proftpd[20747]: al_pacino (12.34.56.78[12.34.56.78]) - user: Directory ~/user/ is not accessible.
|
аз поне си го "превеждам", че не може да се достъпи директория "/home/user/user", като приемем, че "~"="/home/user"
Титла: Конфигуррация на proftpd server
Публикувано от: coldy в Sep 20, 2006, 18:26
Здравей, говоря конкретно за
user:x:107:65534::/home/user:/bin/false
а ~user трябва да съответства на home directory-ата на 'user' ( въпросната Anonymous home directory ) поради което по-горе те упътих към /etc/passwd файла. Т.е. идеята е да провериш дали:
<Anonymous ~user> User user Group users
води до директорията която искаш да задедеш на Anonymous. Провери потребителя 'user' дали може да достъпи собствената си home directory колкото и абсурдно да звучи. Като гледам лога, всичко друго изглежда наред.
Успех!
Титла: Конфигуррация на proftpd server
Публикувано от: senser в Sep 20, 2006, 18:49
въпросния ред в "/etc/passwd" изглежда така: Примерен код | user:x:1000:100:users:/home/user:/bin/bash
|
Потребителя с username="user" може да достъпва домашната си директория, а също и да работи през ftp с username-a си и паролата си.
Относно "<Anonymous ~user>": останах с впечатление че синтаксиса е <Anonymous ~ime_na_potrebitelq>, а не <Anonymous ~home_dir_na_potrebitelja>, за което може и да греша ....
Ако в конф файла се зададе <Anonymous /home/user> грешката при опит за анонимно логване в proftpd e :
Примерен код | Sep 20 21:53:11 al_pacino proftpd[22715]: al_pacino (192.168.0.4[192.168.0.4]) - user: Directory /home/user/ is not accessible.
|
Проверих и потребителя, под който работи proftpd също може да достъпва "/home/user" 
Титла: Конфигуррация на proftpd server
Публикувано от: coldy в Sep 21, 2006, 01:41
Ок, а какво казва /var/log/proftpd/proftpd.log при вход на аnonymous като в същия момент е генериран запис и в syslog ?
Титла: Конфигуррация на proftpd server
Публикувано от: senser в Sep 21, 2006, 08:40
Цитат (coldy @ Сеп. 21 2006,01:41) | Ок, а какво казва /var/log/proftpd/proftpd.log при вход на аnonymous като в същия момент е генериран запис и в syslog ? |
Такъв лог при мен няма, а и в документацията навсякъде пише, че се използва "system log facility". Има възможност да се билдне модул ExtendLog, който да записва в отделен лог, но честно казано не мисля, че ще даде по-поезна информация за проблема
За синтаксиса на "<Anonymous >" си прав - задава се път до директория за достъп, даже в няколко форума, където търсих решение на проблема, задаването на обсолютен път без тилда "~" решава проблема. Мислех да пиша и във форума на proftpd, но докато ползвах търсачката на форума им повечето теми, на които попаднах бяха без отговор и се отказах......
Експериментирах с различни конфигурации, но без успех - грешката винаги е:
Примерен код | Sep 21 11:34:24 al_pacino proftpd[31303]: al_pacino (12.34.56.78[12.34.56.78]) - user: Directory /home/user/ is not accessible.
|
П.П. Ето тук ппопаднах на същия проблем, но отново без решение.....
Титла: Конфигуррация на proftpd server
Публикувано от: coldy в Sep 21, 2006, 21:21
Предполагам ръководството което си следял за да стартираш ftp услугата е за различна от твоята версия, ето при мен как изглежда proftpd.conf файла идващ с дистрибуцията Цитат | Include /etc/proftpd/modules.conf
ServerName "Debian" ServerType standalone DeferWelcome off
MultilineRFC2228 on DefaultServer on ShowSymlinks off
TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200
DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l"
DenyFilter \*.*/
Port 21 MaxInstances 30
# Set the user and group that the server normally runs at. User proftpd Group nogroup
Umask 022 022 AllowOverwrite on
TransferLog /var/log/proftpd/xferlog # Тук е причината за отсъствието на proftpd.log при теб SystemLog /var/log/proftpd/proftpd.log
<IfModule mod_tls.c> TLSEngine off </IfModule>
<IfModule mod_quota.c> QuotaEngine on </IfModule>
<IfModule mod_ratio.c> Ratios on </IfModule> <IfModule mod_delay.c> DelayEngine on </IfModule>
<IfModule mod_ctrls.c> ControlsEngine on ControlsMaxClients 2 ControlsLog /var/log/proftpd/controls.log ControlsInterval 5 ControlsSocket /var/run/proftpd/proftpd.sock </IfModule>
<IfModule mod_ctrls_admin.c> AdminControlsEngine on </IfModule>
# A basic anonymous configuration, no upload directories.
<Anonymous ~ftp> User ftp Group nogroup # We want clients to be able to login with "anonymous" as well as "ftp" UserAlias anonymous ftp # Cosmetic changes, all files belongs to ftp user DirFakeUser on ftp DirFakeGroup on ftp
RequireValidShell off
# Limit the maximum number of anonymous logins MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed # in each newly chdired directory. DisplayLogin welcome.msg DisplayFirstChdir .message <Directory *> <Limit WRITE> DenyAll </Limit> </Directory>
# Uncomment this if you're brave. # <Directory incoming> # # Umask 022 is a good standard umask to prevent new files and dirs # # (second parm) from being group and world writable. # Umask 022 022 # <Limit READ WRITE> # DenyAll # </Limit> # <Limit STOR> # AllowAll # </Limit> # </Directory>
</Anonymous>
|
така описан, proftpd.conf разрешава на anonymous да влезе в /home/ftp
Цитат | coldy@coldy:~$ ftp 192.168.10.22 Connected to 192.168.10.22. 220 ProFTPD 1.3.0 Server (Debian) [::ffff:192.168.10.22] Name (192.168.10.22:coldy): anonymous 331 Anonymous login ok, send your complete email address as your password. Password: 230-Welcome, archive user anonymous@::ffff:192.168.10.22 ! 230- 230-The local time is: Thu Sep 21 21:13:42 2006 230- 230-This is an experimental FTP server. If have any unusual problems, 230-please report them via e-mail to <root@unknown.bounceme.net>. 230- 230 Anonymous access granted, restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" is current directory. ftp> dir 200 PORT command successful 150 Opening ASCII mode data connection for file list -rw-r--r-- 1 ftp ftp 166 Jun 1 18:29 welcome.msg 226 Transfer complete. ftp>
|
Обърни внимание че стандартния proftpd.conf използва за Anonymous:
Цитат | <Anonymous ~ftp> User ftp Group nogroup |
Ето и частта от /etc/password за "ftp":Цитат | ftp:x:107:65534::/home/ftp:/bin/false |
Надявам се, че след добавянето на реда с който можеш да следиш proftpd.log ще се ориентираш в ситуацията.
Успех!
|