Я установил Debian Squeeze на компьютер Windows с Oracle Virtualbox. Затем я перенаправил порт 21 на адаптере NAT.
В Debian я запустил:
apt-get install proftpd
Затем я раскомментировал PassivePorts, так что у меня есть порты с 49152 по 49155, доступные как пассивные. Затем я раскомментировал MasqueradeAddress и установил для него значение 127.0.0.1
Затем, после попытки быстрого подключения в FileZilla, я получил:
Status: Connecting to 127.0.0.1:21...
Status: Connection established, waiting for welcome message...
Response: 220 FTP Server ready.
Command: USER webserver
Response: 331 Password required for webserver
Command: PASS *
Response: 230 User webserver logged in
Command: OPTS UTF8 ON
Response: 200 UTF8 set to on
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is the current directory
Command: TYPE I
Response: 200 Type set to I
Command: PASV
Response: 227 Entering Passive Mode (127,0,0,1,192,3).
Command: MLSD
Error: Connection timed out
Error: Failed to retrieve directory listing
Как это можно исправить? Похоже, что это что-то связано с виртуальной машиной (работающей сейчас на той же машине), потому что все учебники предполагают, что она должна работать после запуска apt-get
.
Вам нужно будет включить PassivePorst
в вашем proftd.conf
-
PassivePorts 35000 40000
Включите модуль ip_conntrack_ftp
modprobe ip_conntrack_ftp
В вашем брандмауэре все порты, связанные с ftp / пассивным ftp, должны быть открыты -
iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 1024: --dport 35000:40000 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 35000:40000 -m state --state ESTABLISHED,RELATED -j ACCEPT