Ubuntu 10.10 server 32-bit
Установил сабж из репов, вот конфиг:
$ cat /etc/proftpd/proftpd.conf
UseIPv6 off
AllowOverwrite on
AuthAliasOnly on
UserAlias ftp_user ftp
ServerName "server"
ServerType standalone
DeferWelcome on
MultilineRFC2228 on
DefaultServer on
ShowSymlinks off
TimeoutNoTransfer 600
TimeoutStalled 100
TimeoutIdle 2200
DisplayChdir .message
ListOptions "-l"
RequireValidShell on
TimeoutLogin 20
RootLogin off
ExtendedLog /var/log/ftp.log
TransferLog /var/log/xfer.log
SystemLog /var/log/syslog.log
#DenyFilter \*.*/
UseFtpUsers on
AllowStoreRestart on
Port 21
MaxInstances 8
User ftp
Group ftp
Umask 022 022
PersistentPasswd off
MaxClients 8 "Достигнут предел на количество клиентов"
MaxClientsPerHost 8 "Достигнут предел на количество клиентов с Вашего хоста"
MaxClientsPerUser 8 "Достигнут предел на количество подключений (%m)"
MaxHostsPerUser 8 "Больше нельзя"
AccessGrantMsg "Добро пожаловать!!!"
ServerIdent on "Сервер FTP"
DefaultRoot /home/ftp
DefaultRoot ~
MaxLoginAttempts 5 "Количество попыток входа исчерпано - придется подождать, ничего не поделаешь, безопасность превыше всего"
#VALID LOGINS
<Limit LOGIN>
AllowUser ftp
DenyALL
</Limit>
<Directory /home/ftp/>
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
DenyAll
</Limit>
</Directory>
<Directory /home/ftp/public/*>
Umask 022 022
AllowOverwrite off
<Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>
DenyAll
</Limit>
</Directory>
<Directory /home/ftp/upload/>
Umask 022 022
AllowOverwrite on
<Limit READ RMD DELE>
DenyAll
</Limit>
<Limit STOR CWD MKD>
AllowAll
</Limit>
</Directory>
# # анонимный доступ
#<Anonymous /папка/для/доступа>
# User ftp
# Group ftp
# UserAlias anonymous ftp
# MaxClients 8 "Извините, максимум %m пользователей - попробуйте подключиться позже"
# DisplayChdir .message
#
# <Directory *>
# <Limit WRITE>
# DenyAll
# </Limit>
# </Directory>
#</Anonymous>
Папки /home/ftp, /home/ftp/public, /home/ftp/upload сделал, дал им права:
$ ls -l /home
drwxr-xr-x 4 ftp ftp 4096 2010-11-11 11:47 ftp
$ ls -l /home/ftp
drwxr-xr-x 2 ftp ftp 4096 2010-11-10 11:53 public
drwxrwxrwx 2 ftp ftp 4096 2010-11-10 11:54 upload
-rw-r--r-- 1 ftp ftp 170 2010-06-15 14:24 welcome.msg
Юзер ftp входит в группу ftp
$ cat /etc/passwd
ftp:x:105:65534::/home/ftp:/bin/sh
$ cat /etc/group
ftp:x:1003:ftp
Юзеру ftp дан пароль больше 6-ти символов.
Юзера ftp в файле /etc/ftpusers нет.
Стартую сервер
$ sudo /etc/init.d/proftpd start
* Starting ftp server proftpd [ OK ]
При попытке коннекта к серверу получаю следующее:
Статус: Соединяюсь с 1.2.3.4:21...
Статус: Соединение установлено, ожидание приглашения...
Ответ: 220 Сервер FTP
Команда: USER ftp_user
Ответ: 331 Необходим пароль для пользователя ftp_user
Команда: PASS ********
Ответ: 530 Некорректные данные аутентификации.
Ошибка: Критическая ошибка
Ошибка: Невозможно подключиться к серверу
Причем не важно, что юзером ftp, что ftp_user - результат одинаков.
Уже весь мозг себе проел. В гугл ходил. Маны читал. Но видать от переизбытка инфы решить проблему не могу
Требуется совет специалиста
P.S. Вот лог
$ cat /var/log/ftp.log
5.6.7.8 UNKNOWN ftp [11/нояб./2010:17:56:41 +0300] "USER ftp_user" 331 -
5.6.7.8 UNKNOWN ftp [11/нояб./2010:17:56:44 +0300] "PASS (hidden)" 530 -
$ cat /var/log/syslog.log
нояб. 11 17:56:28 server proftpd[4102] server: ProFTPD 1.3.2e (maint) (built Tue Jun 15 10:22:54 UTC 2010) standalone mode STARTUP
нояб. 11 17:56:41 server proftpd[4104] server (5.6.7.8[5.6.7.8]): FTP session opened.
нояб. 11 17:56:44 server proftpd[4104] server (5.6.7.8[5.6.7.8]): USER ftp_user (Login failed): Incorrect password.
нояб. 11 17:56:44 server proftpd[4104] server (5.6.7.8[5.6.7.8]): FTP session closed.
нояб. 11 17:56:51 server proftpd[4102] server: ProFTPD killed (signal 15)
нояб. 11 17:56:51 server proftpd[4102] server: ProFTPD 1.3.2e standalone mode SHUTDOWN
$ cat /var/log/auth.log
Nov 11 17:56:41 server proftpd: pam_unix(proftpd:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/ftpd4104 ruser=ftp rhost=5.6.7.8 user=ftp
Upd: Пока писал, обратил внимание, что IP по которому я стучусь на FTP-сервер, совсем не тот, который отражается в логах. Тут вот какая штука. У нас два внешних IP, на двух разных машинах. Эти машины объединены локалкой. Получается так, что когда я из локалки набираю внешний IP 1.2.3.4 (который мне и нужен), то (судя по логам) я попадаю с другой машины, у которой внешний IP 5.6.7.8! Как такое возможно, мне не понять...
На искомой машине порты открыты так:
# Открываем FTP
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 1.2.3.4 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 1.2.3.4 --sport 21 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 1.2.3.4 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -s 1.2.3.4 --sport 1024:65535 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 1.2.3.4 --sport 20 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 1.2.3.4 --dport 20 -m state --state ESTABLISHED -j ACCEPT
Upd2: Совсем уже затупил к вечеру
Все правильно, я же выхожу в интернет через вторую машину, поэтому в логах и появляется ее IP 5.6.7.8, как источника. Тут все верно.
И тем не менее, вопрос остается открытым - что я делаю не так?