I’m trying to connect to a server to download an POS (Point of sale) application. For now, I’m trying to make work on the PC to adapt to the POS. (The POS doen’t have a FTP API, just socket)
Trying to connect to ftp://ftp.inf.puc-rio.br/ (139.82.16.194). I also tried ftp.dca.fee.unicamp.br with the same result.
I’m using sys/socket.h. I’m getting this:
220 Bem Vindo ao Servidor do DI / PUC-Rio.
USER anonymous
Response: 331 Please specify the password.
PASS 123
Response: 530 Please login with USER and PASS
I tried another passowords like email, guest but no sucess. In Filezilla I use the same values (IP, user, password 123 and port 21) and I get this:
Response: 331 Please specify the password.
Response: 230 Login successful.
Trying to understand why the server don’t accept the PASS command.
Here is my code:
The code are not downloading anything. I’m trying to athenticate frist. Some includes and variables are not used because belongs to the FTP application’s exemple that have the rest of code to download.
1 Answer 1
The most central problem with the code is that the lengths given to write() come from sizeof . If you change those to calls to strlen() , the anonymous login works. Using sizeof for the length sends 256 bytes to the server.
At least the one ftp-server I tried this with (vsftpd), did not like the password otherwise. I did not check the RFC to see if it was the length or the zeros that made it clash. For development you might also want to install some ftpd software locally. I think it might be more prudent to experiment against servers you run yourself.
NIT: I dont know what system you are compiling that code on, but on a Linux/Posix system it would require some more includes. I added
I suggest you compile with either the clang compiler or use the flags -Wall -Werror -Wextra to gcc.
I also suggest using strerror() or similar instead of just printing the errno, when something fails.
I’m reading this RFC and just for exercise I am trying to connect to a FTP site. I’m trying to connect to ftp.freebsd.org via terminal. However as I’ve read in the RFC, an anonymous user is allowed to list files. But strangely if I use the ls command it asks me to login with user and pass:
If I try to login with the USER command it tells me this:
That sounds like contradictory to me. How do I get a non anonymous connection to that site?
migrated from serverfault.com Jan 15 ’13 at 22:54
This question came from our site for system and network administrators.
Привет всем. Подскажите, где я мог ошибиться? Возникла непонятная проблема. Стоит CentOS 6, решил поставить vsftpd для ftp редактирования кода. Но не могу приконектиться ни рутом? ни другими локальными пользователями ( в /etc/vsftpd/vsftpd.conf стоит local_enable=YES ).
Лог конекта от PSPADа
Если разрешить анонимных пользователей, то через браузер конектиться нормально. А если запретить то и через браузер не получается.
Подскажите, как посмотреть лог vsftpd или где он находится?
Где могут быть подводные камни?
Ну и сам вопрос — Где я ошибся? И как всё правильно настроить?
Заранее большое спасибо.
Прикладываю свой конфиг файл vsftpd.
- Вопрос задан более трёх лет назад
- 11593 просмотра
А мне подскажешь, ubuntu 12.04 vsfptd, конфигурация обычная (понимаю, что бред сморозил), захожу хромом на FTP, спрашивает пароль и логин — ввожу и всё вроде хорошо, но логах пишет, что анонима не пускает, а пользователя пускает и это каждый «клик». А у меня стоит fails2ban и он банит.
Аноним был выключен, если включить, то пишет что пароль не подходит от хрома или оперы.
Задача, нормально заходить на FTP по логину (пользователю), аноним не нужен.
@Manevant у вас таки vsftpd с дурацким security-патчем — .
Как чинить — хрен его знает. То, что в статье предлагают — чушь.
Единственный «правильный» способ — сделать chown root:root /home/*
но тогда пользователи не смогут создавать каталоги в хомяке (только писать в ранее созданные).
Логи где то в районе /var/log/vsftpd.log и /var/log/xfer.log ищите.
Про ошибку ничего подсказать отсюда не могу — надо глазами смотреть. Скорее всего, какая-нибудь centos-specific дребедень. Они вообще любят какую-то херню сделать молча и радоваться)
Логи находятся либо в /var/log/vsftpd.log, смотреть можно или редактором, например nano, vim, либо tail — выводит последние 10 строк файла, либо tail /var/log/vsftpd.log -n 30 — выводит 30 строк нашего лога
Антон Маневский, обратите внимание на данный комментарий и комментарий который написан в самом начале файла /etc/vsftpd.conf .
Чётко и ясно написано «. This example file is an ex. «, т.е. этот этот файл стандартно содержит НЕ рабочий (вообще рабочий) пример, но его (пример) нельзя использовать. Прочитайте vsftpd.conf.5 «познающую страничку» где вы полностью осознаете все опции vsftpd.
Короче, в терминале (у меня Ubuntu 14.04.1 LTS на VPS) пишем:
man vsftpd.conf 5
После жмём Enter и получаем список всех опций а так же общее описание к этому конфигурационному файлу.
У меня всё на английском, но знаний моего английского достаточно чтобы установить нужные мне опции.