LINUX.ORG.RU
ФорумAdmin

vsftpd


0

1

Здравствуйте!Прошу консультации.Всё делал по ману из /usr/share/doc/vsftpd/examples/virtual_users/readme.gz (debian). Создал базу с виртуалами

db_load -T -t hash -f logins.txt /etc/vsftpd_login.db

Создал PAM файл.Создал юзера с необходимым каталогом

useradd -d /home/ftpsite virtual

Сам конфиг

anonymous_enable=NO

local_enable=YES

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

guest_enable=YES

guest_username=virtual

listen=YES

listen_port=10021

pasv_min_port=30000

pasv_max_port=30999

При попытке подцепиться плюётся

Trying 127.0.0.1...

Connected to localhost.

220 (vsFTPd 2.3.5)

Name (localhost:tom): friend

331 Please specify the password.

Password:

530 Login incorrect.

Login failed.

Никак не могу понять что не так делаю,вроде настроек минимум...

не будет работать. это какой-то баг. я как раз вчера весь вечер протрахался, пытаясь настроить виртуальных пользователей vsftpd, и тоже установлен debian с последними обновлениями на vps'ке.

на моем локалхосте с арчиком все работает, на дебьяне я пробовал другие конфируации виртуальных пользователей (postgresql, /etc/passwd) и все работает, но не этот вариант с Berkeley DB, - это получается баг исключительно pam_userdb, посему за основу возьми что-нибудь другое. я использовал pam_pwdfile.

без лишних слов, я написал заметку о сборке vsftpd из исходников на debian и настройке виртуальных пользователей, поэтому просто копипасти команды и вставляй в консоль: http://spfng.com/blog/vsftpd-configure-and-make-and-make-install/

спрашивай если что непонятно.

Spoofing ★★★★★ ()
Ответ на: комментарий от Spoofing

Сборка тормозиться с такой ошибкой

root@mail2:/tmp/vsftpd-3.0.2# make gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o seccompsandbox.o -Wl,-s -fPIE -pie -Wl,-z,relro -Wl,-z,now `./vsf_findlibs.sh`

sysdeputil.o: In function `vsf_sysdep_check_auth':

sysdeputil.c:(.text+0xea8): undefined reference to `pam_start'

sysdeputil.c:(.text+0xed6): undefined reference to `pam_set_item

sysdeputil.c:(.text+0xefe): undefined reference to `pam_set_item'

sysdeputil.c:(.text+0xf2c): undefined reference to `pam_set_item'

sysdeputil.c:(.text+0xf4a): undefined reference to `pam_authenticate'

sysdeputil.c:(.text+0xf70): undefined reference to `pam_get_item'

sysdeputil.c:(.text+0xfa2): undefined reference to `pam_acct_mgmt'

sysdeputil.c:(.text+0xfbc): undefined reference to `pam_setcred'

sysdeputil.c:(.text+0xff6): undefined reference to `pam_open_session'

sysdeputil.c:(.text+0x1026): undefined reference to `pam_end'

sysdeputil.c:(.text+0x104e): undefined reference to `pam_end'

sysdeputil.c:(.text+0x107a): undefined reference to `pam_setcred'

sysdeputil.o: In function `vsf_auth_shutdown':

sysdeputil.c:(.text+0x10b5): undefined reference to `pam_close_session'

sysdeputil.c:(.text+0x10cb): undefined reference to `pam_setcred'

sysdeputil.c:(.text+0x10e1): undefined reference to `pam_end'

collect2: error: ld returned 1 exit status

make: *** [vsftpd] Ошибка 1

den777 ()
Ответ на: комментарий от den777

разобрался,в./vsf_findlibs.sh закоментировал несколько строчек.

den777 ()
Ответ на: комментарий от den777

В общем не осилил vsftpd.Сделал proftpd.По нему вопрос.В локалке всё работает.Снаружи сервис недоступен,ни телнетом,вообще никак. Пассивные порты в proftpd.conf указаны.Правила iptables

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 1.1.1.1 --dport 21 -j DNAT --to-destination 192.168.0.2:21

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 1.1.1.1 --dport 49152:65534 -j DNAT --to-destination 192.168.0.2:49152-65534

iptables -A FORWARD -p tcp -d 192.168.0.2 --dport 21 -j ACCEPT

iptables -A FORWARD -p tcp -d 192.168.0.2 --dport 49152:65534 -j ACCEPT

Прошу совета,как отстроить сервис.

den777 ()
Ответ на: комментарий от den777

Решил,нужно было так

iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 21 -j DNAT --to-destination 192.168.0.2:21

iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 21 -j SNAT --to-source 192.168.0.2

iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1. --dport 49152:65534 -j DNAT --to-destination 192.168.0.2:49152-65534

iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 49152:65534 -j SNAT --to-source 192.168.0.2

iptables -A FORWARD -i eth0 -d 192.168.0.2 -p tcp --dport 21 -j ACCEPT

iptables -A FORWARD -i eth0 -d 192.168.0.2 -p tcp --dport 49152:65534 -j ACCEPT

И в proftpd.conf указать Masquarade address 1.1.1.1

Щас всё работает,но только как подтормаживает ftp (каталоги с задержкой открываются),или кажется...

den777 ()

Если не хочешь геморроя с вирт юзерами - есть pure-ftpd, простой как орех и все работает. А вообще лучше sftp, и никаких проблем с натом.

invokercd ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.