nixp.ru v3.0

25 января 2017,
среда,
04:22:00 MSK

Аутсорсинг Linux с компанией «Флант»
fedor87 написал 14 февраля 2009 года в 16:25 (12154 просмотра) Ведет себя неопределенно; открыл 2 темы в форуме, оставил 8 комментариев на сайте.

Нужно было сделать ftp сервер на SLES 10.2 (SuSE).

Поставил ftp сервер vsftpd, идущий в дистрибутиве.

Нашел инструкцию, начал настраивать точно по ней.

Задача, ftp с аутентификацией по имя пользователя,пароль. Каждый польховтаель может работать только в своей папке.

Это мой первый ftp сервер, поэтому предпочитаю действовать по максимально подробной инструкции.

www.opennet.ru/base/net/vsftpd_fedora7.txt.html

Итак, все по шаг сделал, но не работает. При попытке входа, пишет, что ошибка — 530. Похоже, я ошибся при копировании  файлов и прописывании библиотек. Файрволл пока отключен.

Я делал так.

1. Установил  vsftpd и нашел папку с примерами его конфигурации (EXAMPLE/VIRTUAL_USERS).

2. Вот тут я похоже не так понял.

«копируем необходимые файлы в нужные каталоги

vsftpd.pam /etc/pam.d/ftp»

Я должен создать папку ftp в /etc/pam.d/ и скопировать файл  vsftpd.pam в

нее или должнен создать просто файл  ftp и скопировать в него содержимое  vsftpd.pam ? Я создал папку ftp и копировал файл в нее.

Дальше Скопировал файл logins.txt в папку vsftpd, и скопировал файл  vsftpd.conf в папку vsftpd.

Далее все по инструкции.

Но в файле /etc/vsftpd/vsftpd.conf вместо

             local_root=/data

я написал local_root=/srv/ftp/vsftpb (ественно ее сначла создав)

+ в скрипте для внесения пользователей

я написал  db_load вместо  db42_load (но скрипт работает, файл login.db создается в папке /etc/vsftpd/ ).

Тем не менее, — «530 this ftp server is anonymous only»

Возможно проблема в том, что нужно дописать в дистрибутивах x86_64 в /etc/pam.d/ftp нужны такие вот строки

auth required /lib64/security/pam_userdb.so crypt=none db=/etc/vsftpd/login

account required /lib64/security/pam_userdb.so crypt=none db=/etc/vsftpd/login

Но если ftp это папка, то куда именно это дописывать ?

И откуда взялось

«далее в /etc/pam.d/vsftpd

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login»

 Помогите, плиз. Пардон за такой вопрос, но  я Linux ровно 3 недели изучаю.

metal

Первая ссылка в google:

http://www.google.com/search?q=%22530+this+ftp+server+is+anonymous+only%22&ie=utf-8&oe=utf-8&aq=t&rls=org.debian:en:unofficial&client=iceweasel-a

fedor87

там всего навсего о том, что нужно прописывать vsftpd в xinetd. Это я сделал. На сегодня ситуация такая.

1. Как написано, в инструкции 'виртуальные юзеры' -создаю базу данных пользователей из файла logins.txt базу vsftpd_logins.db

2. Пытаюсь создать PAM файл, похоже здесь я и ошибся. В папке etc/pam.d я создал файл ftp.

фот его содержимое.

ftp[codebox]# Uncomment this to achieve what used to be ftpd -A.

# auth required pam_listfile.so item=user sense=allow file=/etc/ftpchroot onerr=fail auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

# Uncomment the following line for anonymous ftp.

#auth sufficient auth required

auth required

account required password required session required

pam_ftp.so pam_unix2.so pam_shells.so pam_unix2.so pam_unix2.so pam unix2.so[/codebox]

Но файл etc/pam.d/vsftpd.pam я не удалил, а просто закоментировал в нем все строки.

3.Создал папку для виртуальных пользователей и сделал ее владельцем пользователя -virtual. Но вместо /home/ftpsite, написал /srv/ftp/vsftpd/

[codebox]Step 3) Set up the location of the files for the virtual users.

useradd -d /home/ftpsite virtual

Is -Id /home/ftpsite

(which should give):

drwx——— 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite

We have created a user called «virtual» with a home directory «/home/ftpsite». Let’s add some content to this download area:

cp /etc/hosts /home/ftpsite

chown virtual.virtual /horoe/ftpsite/hosts[/codebox]

4. Заменил оригинальный /etc/vsftpd.conf на

[codebox]anonymous_enable=NO

local_enable=YES

wr ite_enable=YES

anon_upload_enable=YES

anon_mkd i r_wr ite_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

guest_enable=YES

guest_usernaroe=virtual

listen=YES

listen_port=21

pasv_min_port=30000

pasv_max_port=30999

xferlog_std_format=YES

xferlog_file=/var/log/vsftpd.log

dirmessage_enable=YES

ftpd_banner=Welcoroe to Rost FTP[/codebox]

5. Сконфигурировал xinetd.

[codebox]If you are running xinetd, do the following:

Redhat users:

vi /etc/xinetd.d/vsftpd

# default: off

# description: The vsftpd FTP server serves FTP connections. It uses \

# normal, unencrypted usernames and passwords for authentication.

service ftp

{

disable = no

socket_type = stream

wait = no

user = root

server = /usr/sbin/vsftpd

nice = 10

}

Save and exit.

Now stop and restart xinetd…

/etc/rc.d/init.d/xinetd restart[/codebox]

Итого, пытаюсь подключится, ввожу логин, ввожу пароль и меня выкидывает — «Login incorrect».

metal
Итого, пытаюсь подключится, ввожу логин, ввожу пароль и меня выкидывает — «Login incorrect».

Ну вот это уже совсем другая ошибка явно указывающая на проблемы с авторизацией.

Во-первых, что пишеться в лог?

Во-вторых, я в твоем конфиге не вижу вообще никаких намеков, на то как проводить авторизацию, как минимум там должен быть указан pam-модуль.

fedor87

Почти доделал. Похоже осталось настроить права на доступ к файлам.

Вот фраза из логов клиента:

Статус: Соединение установлено, ожидание приглашения…

Ответ: 220 Wazzup

Команда: USER rost

Ответ: 331 Please specify the password.

Команда: PASS *****

Ответ: 530 Login incorrect.

При попытке анонимного подключения -

Статус: Соединение установлено, ожидание приглашения…

Ответ: 220 Wazzup

Команда: USER anonymous

Ответ: 331 Please specify the password.

Команда: PASS ************

Ответ: 500 OOPS: cannot change directory:/srv/ftp/ftp

Пробовал там тоже поставить 755 — не помогло.

Есть мысли как исправить? ¶

Вот мои конфиги -весят 25 килобайт.

slil.ru/26787617

Копия depositfiles.com/files/xmlt96u51@

metal

Попробуй добавить.

userlist_enable=YES

guest_username=ftp

У тебя действительно есть такой пользователь в системе?

И ещё у тебя в конфигах ^M встречается, скорее всего ты его правил под виндой, не думаю, что это может влиять, но мало ли.

fedor87

это я уже добавил.

Было дело, гадости ^M были, но когда они были vsftpd не стартовал, ругался на строчки где они были. Я там все ручками почистил, теперь vsftpd стартует и перезапускается нормально, значит больше гадости там нет.

Вот последний конфиг, где все исправлено

http://slil.ru/26877960

ИМХО. дело с правами.

Т.к поменял права на доступ к :/srv/ftp/ftp на 400.

анонимные уже заходят, но нифига не видят там. Хотя файлы я туда положил.

Ответ: 227 Entering Passive Mode (192,168,0,150,213,52)

Команда: LIST -a

Ответ: 150 Here comes the directory listing.

Ответ: 226 Transfer done (but failed to open directory).

Пробовал все логичные варианты — 400 (dr), 740(drwxr), 750(drwxr-x)

эффект тот же. входит номально, но нифига не видно.

Может дело файле в файле /etc/ passwd

который сейчас выглядит

всякое разное

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

r2:x:500:500:r24:/home/r2:/bin/bash

vsftpd:x:502:501:vsftpd ftp user:/srv/ftp/chroot/empty:/bin/

всякое разное

Может стоит поменять x:502:501 на x:14:50 ?

Но что тогда делать с

/srv/ftp/ftp/ftpriv ?

metal

Возможно, тут уж не подскажу. Анонимусы скорее всего не имеют прав на команду ls.

fedor87

Да вроде нет.

В cmds_allowed=ABOR,ACCT,ALLO,APPE,CDUP,CWD,DELE,EPRT,EPSV,FEAT,HELP,LIST,MDTM,MKD,MODE,NLST,NOOP,OPTS,PASS,PASV,PORT,PWD,QUIT,REIN,REST,RETR,RMD,RNFR,RNTO,SITE,SIZE,SMNT,STAT,STOR,STOU,STRU,SYST,TYPE,USER,XCUP,XCWD,XMKD,XPWD,XRMD

По идее LIST — это она.

metal

Убери listen=yes из конфига, ведь ты его запускаешь из под xinted.

fedor87

Сейчас ситуация следующая -анонимные юзеры заходят без проблем.

После исправления прав на каталоги.

Но нормальные юзеры все еще зайти не могут. Все тоже — логин инкоррект.

+Логи не пишутся.

Про listen=yes -это все таки надо, т.к без этого — не стартует.

fedor87

Логи уже пишутся, но в них ничего интересного нет.

Поставил vftpd таким же образом на CentOS.

Не прокатило. точно такая же фигня.

при этом pam работает. Вот мой текущий конфиг.

http://slil.ru/26997836

Кто нибудь может выслать заведомо рабочии конфиги с аутентификацией юзеров и ответить на вопросы, если они будут?

metal

Попробуй использовать pam_service_name=login и залогиниться под реальным пользователем.

fedor87

хм. Непомогло. Анонимные лазют, а нормальные фиг. Значит пам тут ни причем.

но в чем тогда может быть проблема?

Thu Feb 26 08:02:39 2009 [pid 14661] CONNECT: Client

«192.168.0.53»

Thu Feb 26 08:02:39 2009 [pid 14661] FTP response: Client

«192.168.0.53», «220 Wazzup»

Thu Feb 26 08:02:39 2009 [pid 14661] FTP command: Client

«192.168.0.53», «USER root»

Thu Feb 26 08:02:39 2009 [pid 14661] [root] FTP response:

Client «192.168.0.53», «331 Please specify the password.»

Thu Feb 26 08:02:39 2009 [pid 14661] [root] FTP command:

Client «192.168.0.53», «PASS »

Thu Feb 26 08:02:42 2009 [pid 14660] [root] FAIL LOGIN: Client

«192.168.0.53»

Thu Feb 26 08:02:43 2009 [pid 14661] [root] FTP response:

Client «192.168.0.53», «530 Login incorrect.»

metal

root — это не удачная попытка, для него скорее всего нужна дополнительная опция попробуй обычного пользователя.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.